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()22 int main ()
23 {
24   TEST_ALL (TEST_LOOP)
25   return 0;
26 }
27