(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
vector-compare-3.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2" } */
       3  
       4  typedef int v4i __attribute__((vector_size(4*sizeof(int))));
       5  
       6  // fold should not turn (vec_other)(x<y) into (x<y)?vec_other(-1):vec_other(0).
       7  
       8  void use (v4i const *z);
       9  
      10  void
      11  f (v4i *x, v4i *y)
      12  {
      13    v4i const zz = *x < *y;
      14    use (&zz);
      15  }
      16  
      17  // Optimizations shouldn't introduce a boolean type in there
      18  
      19  void
      20  g (v4i *x, v4i const *y, v4i *z, v4i *t)
      21  {
      22    *z = *x < *y | *x == *y;
      23    *t = *x < *y & *x > *y;
      24  }
      25