arm: fix typo in dg-require-effective-target [PR118089]
[official-gcc.git] / gcc / testsuite / gcc.dg / tree-ssa / cmpxor-1.c
blob8de2d9d224417de3c16f280abc454553a7db8b99
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-optimized" } */
3 /* PR tree-optimization/107881 */
5 _Bool ltgtxor(int a, int b)
7 _Bool c = a < b;
8 _Bool d = a > 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)
15 _Bool c = x < y;
16 _Bool d = x == 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)
23 _Bool c = z < w;
24 _Bool d = z != 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)
31 _Bool c = i <= j;
32 _Bool d = i >= 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)
39 _Bool c = k <= l;
40 _Bool d = k == 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)
47 _Bool c = m <= n;
48 _Bool d = m != 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" } } */