| /* PR tree-optimization/61839. */ |
| /* { dg-do run } */ |
| /* { dg-options "-O2 -fdump-tree-vrp1 -fdisable-tree-evrp -fdump-tree-optimized" } */ |
| /* { dg-require-effective-target int32plus } */ |
| |
| __attribute__ ((noinline)) |
| int foo (int a, unsigned b) |
| { |
| unsigned c = 1; |
| if (b >= 1 && b <= ((unsigned)(-1) - 1)) |
| return 0; |
| c = b >> 4; |
| if (c == 268435455) |
| ; |
| else |
| __builtin_abort (); |
| return 0; |
| } |
| |
| int main () |
| { |
| volatile unsigned b = (unsigned)(-1); |
| foo (-1, b); |
| } |
| |
| /* Scan for ~[1, 4294967294] >> 4 in function foo. */ |
| /* { dg-final { scan-tree-dump-times "0 : 268435455" 1 "vrp1" } } */ |
| /* { dg-final { scan-tree-dump-times "268435455" 0 "optimized" } } */ |