| /* { dg-do compile } */ |
| /* { dg-options "-O -fdump-tree-fre1-details" } */ |
| |
| int test1 (int i, int j) |
| { |
| int k; |
| if (i != j) |
| k = i; |
| else |
| k = j; |
| return k; |
| } |
| |
| int test2 (int i, int j) |
| { |
| int k; |
| if (i != j) |
| k = j; |
| else |
| k = i; |
| return k; |
| } |
| |
| int test3 (int i, int j) |
| { |
| int k; |
| if (i == j) |
| k = j; |
| else |
| k = i; |
| return k; |
| } |
| |
| int test4 (int i, int j) |
| { |
| int k; |
| if (i == j) |
| k = i; |
| else |
| k = j; |
| return k; |
| } |
| |
| /* We'd expect 4 hits but since we only keep one forwarder the |
| VN predication machinery cannot record something for the entry |
| block since it doesn't work on edges but on their source. */ |
| /* { dg-final { scan-tree-dump-times "equal on edge" 2 "fre1" } } */ |