| // { dg-do compile } |
| // { dg-options "-O2 -fgimple -fdump-tree-threadfull1-details" } |
| |
| void stuff(); |
| |
| void __GIMPLE (ssa,startwith("threadfull1")) |
| foo (float a, float b, int cond) |
| { |
| float x; |
| |
| __BB(2): |
| if (cond_3(D) != 0) |
| goto __BB4; |
| else |
| goto __BB3; |
| |
| __BB(3): |
| goto __BB4; |
| |
| /* We should be able to thread BB2->BB4->BB5 even though we have no knowledge |
| of the NANness of either x_1 or a_5. */ |
| __BB(4): |
| x_1 = __PHI (__BB2: a_5(D), __BB3: b_4(D)); |
| if (x_1 __UNEQ a_5(D)) |
| goto __BB5; |
| else |
| goto __BB6; |
| |
| __BB(5): |
| stuff (); |
| goto __BB6; |
| |
| __BB(6): |
| return; |
| |
| } |
| |
| // { dg-final { scan-tree-dump "Registering jump thread: \\(2, 4\\)" "threadfull1" } } |