(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
aarch64/
sve/
cond_arith_2_run.c
       1  /* { dg-do run { target aarch64_sve_hw } } */
       2  /* { dg-options "-O2 -ftree-vectorize" } */
       3  
       4  #include "cond_arith_2.c"
       5  
       6  #define N 99
       7  
       8  #undef TEST
       9  #define TEST(DATA_TYPE, PRED_TYPE, NAME, OP)			\
      10    {								\
      11      DATA_TYPE x[N], y[N], z[N];					\
      12      PRED_TYPE pred[N];						\
      13      for (int i = 0; i < N; ++i)					\
      14        {								\
      15  	y[i] = i * i;						\
      16  	z[i] = ((i + 2) % 3) * (i + 1);				\
      17  	pred[i] = i % 3;					\
      18        }								\
      19      test_##DATA_TYPE##_##PRED_TYPE##_##NAME (x, y, z, pred, N);	\
      20      for (int i = 0; i < N; ++i)					\
      21        {								\
      22  	DATA_TYPE expected = i % 3 != 1 ? y[i] OP z[i] : y[i];	\
      23  	if (x[i] != expected)					\
      24  	  __builtin_abort ();					\
      25  	asm volatile ("" ::: "memory");				\
      26        }								\
      27    }
      28  
      29  int
      30  main (void)
      31  {
      32    TEST_ALL
      33    return 0;
      34  }