Add support for conditional reductions using SVE CLASTB
[official-gcc.git] / gcc / testsuite / gcc.target / aarch64 / sve / loop_add_4_run.c
blob00495a1477fa45902819ab556205d0fd921e3e35
1 /* { dg-do run { target aarch64_sve_hw } } */
2 /* { dg-options "-O2 -ftree-vectorize" } */
4 #include "loop_add_4.c"
6 #define N 131
7 #define BASE 41
9 #define TEST_LOOP(TYPE, NAME, STEP) \
10 { \
11 TYPE a[N]; \
12 for (int i = 0; i < N; ++i) \
13 { \
14 a[i] = i * i + i % 5; \
15 asm volatile ("" ::: "memory"); \
16 } \
17 test_##TYPE##_##NAME (a, BASE, N); \
18 for (int i = 0; i < N; ++i) \
19 { \
20 TYPE expected = i * i + i % 5 + BASE + i * STEP; \
21 if (a[i] != expected) \
22 __builtin_abort (); \
23 } \
26 int __attribute__ ((optimize (1)))
27 main (void)
29 TEST_ALL (TEST_LOOP)