1 /* { dg-do run { target { aarch64_sve_hw } } } */ 2 /* { dg-options "-O2 -ftree-vectorize" } */ 3 4 #include "cond_uxt_7.c" 5 6 #define TEST_LOOP(TYPE1, TYPE2, CONST, N) \ 7 { \ 8 TYPE1 a[N]; \ 9 TYPE2 r[N], b[N]; \ 10 for (int i = 0; i < N; ++i) \ 11 { \ 12 a[i] = (i & 1 ? -20 - i : 20 + i); \ 13 b[i] = -5 - i; \ 14 asm volatile ("" ::: "memory"); \ 15 } \ 16 test_##CONST##_##TYPE1##_##TYPE2 (r, a, b); \ 17 for (int i = 0; i < N; ++i) \ 18 if (r[i] != (TYPE2) (a[i] > 20 ? b[i] & CONST : 127)) \ 19 __builtin_abort (); \ 20 } 21 main()22int main () 23 { 24 TEST_ALL (TEST_LOOP) 25 return 0; 26 } 27