| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-tree-original" } */ |
| |
| int test1(int a, int b) |
| { |
| return (a & b) ^ a; |
| } |
| |
| int test2(int c, int d) |
| { |
| return (c & d) ^ d; |
| } |
| |
| int test3(int e, int f) |
| { |
| return e ^ (e & f); |
| } |
| |
| int test4(int g, int h) |
| { |
| return g ^ (h & g); |
| } |
| |
| /* { dg-final { scan-tree-dump-times "~b \& a" 1 "original" } } */ |
| /* { dg-final { scan-tree-dump-times "~c \& d" 1 "original" } } */ |
| /* { dg-final { scan-tree-dump-times "~f \& e" 1 "original" } } */ |
| /* { dg-final { scan-tree-dump-times "~h \& g" 1 "original" } } */ |
| |