| /* PR tree-optimization/96671 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-tree-optimized" } */ |
| /* { dg-final { scan-tree-dump-times " \\^ " 6 "optimized" } } */ |
| /* { dg-final { scan-tree-dump-not " ~" "optimized" } } */ |
| /* { dg-final { scan-tree-dump-times " \\| " 6 "optimized" } } */ |
| |
| int |
| foo (int a, int b, int c) |
| { |
| return (a ^ b) | ((b ^ c) ^ a); |
| } |
| |
| int |
| bar (int a, int b, int c) |
| { |
| return (a ^ b) | ((b ^ a) ^ c); |
| } |
| |
| int |
| baz (int a, int b, int c) |
| { |
| return (a ^ b) | ((a ^ c) ^ b); |
| } |
| |
| int |
| qux (int a, int b, int c) |
| { |
| int d = a ^ b; |
| int e = b ^ c; |
| int f = e ^ a; |
| return d | f; |
| } |
| |
| int |
| corge (int a, int b, int c) |
| { |
| int d = a ^ b; |
| int e = b ^ a; |
| int f = c ^ e; |
| return d | f; |
| } |
| |
| int |
| garply (int a, int b, int c) |
| { |
| int d = a ^ b; |
| int e = a ^ c; |
| int f = b ^ e; |
| return d | f; |
| } |