1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-ifcombine -Wno-psabi" } */
6 #define vector __attribute__((vector_size(sizeof(unsigned)*2)))
8 vector
signed and1(vector
unsigned x
, vector
unsigned y
)
10 /* (x > y) & (x != 0) --> x > y */
11 return (x
> y
) & (x
!= 0);
14 vector
signed and2(vector
unsigned x
, vector
unsigned y
)
16 /* (x < y) & (x != UINT_MAX) --> x < y */
17 return (x
< y
) & (x
!= UINT_MAX
);
20 vector
signed and3(vector
signed x
, vector
signed y
)
22 /* (x > y) & (x != INT_MIN) --> x > y */
23 return (x
> y
) & (x
!= INT_MIN
);
26 vector
signed and4(vector
signed x
, vector
signed y
)
28 /* (x < y) & (x != INT_MAX) --> x < y */
29 return (x
< y
) & (x
!= INT_MAX
);
32 /* { dg-final { scan-tree-dump-not " != " "ifcombine" } } */