1 /* { dg-do compile } */
2 /* { dg-options "-O -fdump-tree-forwprop1-details -fdump-tree-ccp1-details" } */
3 
f1(int a,int b)4 int f1(int a, int b){
5   int c = a & b;
6   return c & b;
7 }
f2(int a,int b)8 int f2(int a, int b){
9   int c = a | b;
10   return b | c;
11 }
g1(int a,int b,int c)12 int g1(int a, int b, int c){
13   int d = a & b;
14   int e = b & c;
15   return d & e;
16 }
g2(int a,int b,int c)17 int g2(int a, int b, int c){
18   int d = a | b;
19   int e = c | b;
20   return d | e;
21 }
g3(int a,int b,int c)22 int g3(int a, int b, int c){
23   int d = a ^ b;
24   int e = b ^ c;
25   return e ^ d;
26 }
27 
28 /* { dg-final { scan-tree-dump-times "Match-and-simplified" 2 "ccp1" } } */
29 /* { dg-final { scan-tree-dump-times "gimple_simplified" 3 "forwprop1" } } */
30