1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-optimized" } */
3 /* PR tree-optimization/107881 */
5 _Bool
ltgtxor(int a
, int b
)
9 return c
^ d
; // a != b
11 /* { dg-final { scan-tree-dump "a_\[0-9\]+.D. != b_\[0-9\]+.D.|b_\[0-9\]+.D. != a_\[0-9\]+.D." "optimized" } } */
13 _Bool
lteqxor(int x
, int y
)
17 return c
^ d
; // x <= y (basically | here)
19 /* { dg-final { scan-tree-dump "x_\[0-9\]+.D. <= y_\[0-9\]+.D.|y_\[0-9\]+.D. >= x_\[0-9\]+.D." "optimized" } } */
21 _Bool
ltnexor(int z
, int w
)
25 return c
^ d
; // z > w
27 /* { dg-final { scan-tree-dump "z_\[0-9\]+.D. > w_\[0-9\]+.D.|w_\[0-9\]+.D. < y_\[0-9\]+.D." "optimized" } } */
29 _Bool
legexor(int i
, int j
)
33 return c
^ d
; // i != j
35 /* { dg-final { scan-tree-dump "i_\[0-9\]+.D. != j_\[0-9\]+.D.|j_\[0-9\]+.D. != i_\[0-9\]+.D." "optimized" } } */
37 _Bool
leeqxor(int k
, int l
)
41 return c
^ d
; // k < l
43 /* { dg-final { scan-tree-dump "k_\[0-9\]+.D. < l_\[0-9\]+.D.|l_\[0-9\]+.D. > k_\[0-9\]+.D." "optimized" } } */
45 _Bool
lenexor(int m
, int n
)
49 return c
^ d
; // m >= n
51 /* { dg-final { scan-tree-dump "m_\[0-9\]+.D. >= n_\[0-9\]+.D.|n_\[0-9\]+.D. <= m_\[0-9\]+.D." "optimized" } } */