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