| /* PR tree-optimization/96685 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-tree-optimized" } */ |
| /* { dg-final { scan-tree-dump-times "return 1;" 4 "optimized" } } */ |
| |
| int |
| f1 (unsigned x, unsigned y) |
| { |
| unsigned int r1 = (x - y); |
| r1 = ~r1; |
| unsigned int r2 = (y - x); |
| r2 = r2 - 1; |
| return r1 == r2; |
| } |
| |
| int |
| f2 (unsigned x, unsigned y) |
| { |
| unsigned int r1 = (x - 23); |
| r1 = ~r1; |
| unsigned int r2 = (23 - x); |
| r2 = r2 - 1; |
| return r1 == r2; |
| } |
| |
| int |
| f3 (int x, int y) |
| { |
| int r1 = (x - 23); |
| r1 = ~r1; |
| int r2 = (23 - x); |
| --r2; |
| return r1 == r2; |
| } |
| |
| int |
| f4 (int x, int y) |
| { |
| int r1 = (x - 23); |
| r1 = ~r1; |
| int r2 = (22 - x); |
| return r1 == r2; |
| } |