(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
cond_op_addsubmuldiv_double-1.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -march=skylake-avx512 -fdump-tree-vect" } */
       3  /* { dg-final { scan-tree-dump ".COND_ADD" "vect" } } */
       4  /* { dg-final { scan-tree-dump ".COND_SUB" "vect" } } */
       5  /* { dg-final { scan-tree-dump ".COND_MUL" "vect" } } */
       6  /* { dg-final { scan-tree-dump ".COND_RDIV" "vect" } } */
       7  
       8  #ifndef NUM
       9  #define NUM 800
      10  #endif
      11  #ifndef TYPE
      12  #define TYPE double
      13  #endif
      14  
      15  TYPE a[NUM], b[NUM], c[NUM], d[NUM], e[NUM], j[NUM];
      16  
      17  #define BIN(OPNAME, OP)				\
      18    void						\
      19    __attribute__ ((noipa,optimize ("O3")))	\
      20    foo_##OPNAME ()				\
      21    {						\
      22      for (int i = 0; i != NUM; i++)		\
      23        if (b[i] < c[i])				\
      24  	a[i] = d[i] OP e[i];			\
      25    }
      26  
      27  
      28  BIN (add, +);
      29  BIN (sub, -);
      30  BIN (mul, *);
      31  BIN (div, /);