| /* { dg-do compile } */ |
| /* { dg-skip-if "" { *-*-* } { "-O0" "-fno-fat-lto-objects" } { "" } } */ |
| /* At -O1 DOM threads a jump in a non-optimal way which leads to |
| the bogus propagation. */ |
| /* { dg-skip-if "" { *-*-* } { "-O1" } { "" } } */ |
| /* { dg-options "-fdump-tree-ivcanon-details" } */ |
| |
| int a[199]; |
| |
| extern void abort (void); |
| |
| int |
| main () |
| { |
| int i, x; |
| for (i = 0; i < 199; i++) |
| { |
| x = a[i]; |
| if (x != i) |
| abort (); |
| } |
| return 0; |
| } |
| |
| /* Verify that we do not propagate the equivalence x == i into the |
| induction variable increment. */ |
| |
| /* { dg-final { scan-tree-dump "Added canonical iv" "ivcanon" } } */ |