1 /* { dg-do compile } */
2 /* { dg-options "-O3 -fdump-tree-optimized" } */
4 typedef unsigned long int uint64_t;
6 int cmp1(int d1
, int d2
) {
7 if (((d1
^ d2
) & 0xabcd) == 0 || d1
!= d2
)
12 int cmp2(int d1
, int d2
) {
13 if (d1
!= d2
|| ((d1
^ d2
) & 0xabcd) == 0)
18 int cmp3(int d1
, int d2
) {
19 if (10 > (0xabcd & (d2
^ d1
)) || d2
!= d1
)
24 int cmp4(int d1
, int d2
) {
25 if (d2
!= d1
|| 10 > (0xabcd & (d2
^ d1
)))
30 int cmp1_64(uint64_t d1
, uint64_t d2
) {
31 if (((d1
^ d2
) & 0xabcd) == 0 || d1
!= d2
)
36 int cmp2_64(uint64_t d1
, uint64_t d2
) {
37 if (d1
!= d2
|| ((d1
^ d2
) & 0xabcd) == 0)
42 int cmp3_64(uint64_t d1
, uint64_t d2
) {
43 if (10 > (0xabcd & (d2
^ d1
)) || d2
!= d1
)
48 int cmp4_64(uint64_t d1
, uint64_t d2
) {
49 if (d2
!= d1
|| 10 > (0xabcd & (d2
^ d1
)))
54 /* The if should be removed, so the condition should not exist */
55 /* { dg-final { scan-tree-dump-not "d1_\[0-9\]+.D. \\^ d2_\[0-9\]+.D." "optimized" } } */