| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-tree-cddce -fdump-tree-forwprop1-details" } */ |
| /* LLVM LOCAL test not applicable */ |
| /* { dg-require-fdump "" } */ |
| |
| int abarney[2]; |
| int afred[1]; |
| |
| void foo(int edx, int eax) |
| { |
| if (eax == 100) |
| { |
| if (edx == 1) |
| { |
| abarney[0] = 5; |
| abarney[1] = 6; |
| } |
| } |
| if (eax == 100) |
| { |
| if (-- edx == 0) |
| afred[0] = 2; |
| } |
| } |
| |
| |
| /* Verify that we did a forward propagation. */ |
| /* { dg-final { scan-tree-dump-times "Replaced" 1 "forwprop1"} } */ |
| /* { dg-final { cleanup-tree-dump "forwprop1" } } */ |
| |
| /* After cddce we should have two IF statements remaining as the other |
| two tests can be threaded. */ |
| /* { dg-final { scan-tree-dump-times "if " 2 "cddce"} } */ |
| /* { dg-final { cleanup-tree-dump "cddce" } } */ |