| /* { dg-do compile } */ |
| /* { dg-options "-O -fdump-tree-forwprop1-details -fdump-tree-ccp1-details" } */ |
| |
| int f1(int a, int b){ |
| int c = a & b; |
| return c & b; |
| } |
| int f2(int a, int b){ |
| int c = a | b; |
| return b | c; |
| } |
| int g1(int a, int b, int c){ |
| int d = a & b; |
| int e = b & c; |
| return d & e; |
| } |
| int g2(int a, int b, int c){ |
| int d = a | b; |
| int e = c | b; |
| return d | e; |
| } |
| int g3(int a, int b, int c){ |
| int d = a ^ b; |
| int e = b ^ c; |
| return e ^ d; |
| } |
| |
| /* { dg-final { scan-tree-dump-times "Match-and-simplified" 2 "ccp1" } } */ |
| /* { dg-final { scan-tree-dump-times "gimple_simplified" 3 "forwprop1" } } */ |