111
|
1 /* { dg-do compile } */
|
|
2 /* { dg-options "-O2 -fdump-tree-original" } */
|
|
3
|
|
4 /* x | ~(x | y) -> x | ~y */
|
|
5 int fn1 (int x, int y)
|
|
6 {
|
|
7 return x | ~(x | y);
|
|
8 }
|
|
9 int fn2 (int x, int y)
|
|
10 {
|
|
11 return ~(x | y) | x;
|
|
12 }
|
|
13 int fn3 (int x, int y)
|
|
14 {
|
|
15 return x | ~(y | x);
|
|
16 }
|
|
17 int fn4 (int x, int y)
|
|
18 {
|
|
19 return ~(y | x) | x;
|
|
20 }
|
|
21 int fn5 (int z)
|
|
22 {
|
|
23 return z | ~(z | 3);
|
|
24 }
|
|
25 int fn6 (int z)
|
|
26 {
|
|
27 return ~(z | 3) | z;
|
|
28 }
|
|
29
|
|
30
|
|
31 /* { dg-final { scan-tree-dump-times "~y \\| x" 4 "original" } } */
|
|
32 /* { dg-final { scan-tree-dump-times "z \\| -4" 2 "original" } } */
|