Add support for conditional reductions using SVE CLASTB
[official-gcc.git] / gcc / testsuite / gcc.target / aarch64 / sve / slp_13_run.c
blob9799e3b59fb67656355f828c1116f5049d295caa
1 /* { dg-do run { target aarch64_sve_hw } } */
2 /* { dg-options "-O2 -ftree-vectorize" } */
4 #include "slp_13.c"
6 #define N1 (103 * 2)
7 #define N2 (111 * 2)
9 #define HARNESS(TYPE) \
10 { \
11 TYPE a[N2]; \
12 TYPE expected = 0; \
13 for (unsigned int i = 0; i < N2; ++i) \
14 { \
15 a[i] = i * 2 + i % 5; \
16 if (i < N1) \
17 expected += a[i] * (i & 1 ? 5 : 3); \
18 asm volatile (""); \
19 } \
20 if (vec_slp_##TYPE (a, N1 / 2) != expected) \
21 __builtin_abort (); \
24 int __attribute__ ((optimize (1)))
25 main (void)
27 TEST_ALL (HARNESS)