| /* { dg-do run } */ |
| /* { dg-options "-O3 -fdump-tree-pcom-details-blocks" } */ |
| |
| int b, f, d[5][2]; |
| unsigned int c; |
| |
| int |
| main () |
| { |
| for (c = 0; c < 2; c++) |
| if (d[b + 3][c] & d[b + 4][c]) |
| if (f) |
| break; |
| return 0; |
| } |
| |
| /* { dg-final { scan-tree-dump "Executing predictive commoning" "pcom" } } */ |
| /* dom pass introduces one mismatch after simplfying mispredicted conditional |
| on c being non-zero on first iteration. This happens since c is global variable |
| and needs alias analysis. */ |
| /* { dg-final { scan-tree-dump-times "Invalid sum" 1 "pcom" } } */ |