1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fno-ipa-icf -fdump-tree-optimized" } */
3
f(int y,int x)4 int f(int y, int x)
5 {
6 int a = x | y;
7 return a & x;
8 }
f1(int y,int x)9 int f1(int y, int x)
10 {
11 int a = y | x;
12 return a & x;
13 }
f2(int y,int x)14 int f2(int y, int x)
15 {
16 int a = x | y;
17 return x & a;
18 }
f3(int y,int x)19 int f3(int y, int x)
20 {
21 int a = x | y;
22 return x & a;
23 }
f4(int y,int x)24 int f4(int y, int x)
25 {
26 int a = x & y;
27 return a | x;
28 }
f5(int y,int x)29 int f5(int y, int x)
30 {
31 int a = y & x;
32 return a | x;
33 }
f6(int y,int x)34 int f6(int y, int x)
35 {
36 int a = x & y;
37 return x | a;
38 }
f7(int y,int x)39 int f7(int y, int x)
40 {
41 int a = x & y;
42 return x | a;
43 }
44 /* These all should be optimized to just return x; */
45
46
47 /* { dg-final { scan-tree-dump-times "\\\|" 0 "optimized" } } */
48 /* { dg-final { scan-tree-dump-times "\&" 0 "optimized" } } */
49 /* { dg-final { scan-tree-dump-times "return x_..D.;" 8 "optimized" } } */
50