Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 1 | ; PR957 |
Dan Gohman | 3c7d308 | 2009-09-11 18:01:28 +0000 | [diff] [blame] | 2 | ; RUN: opt < %s -simplifycfg -S | \ |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 3 | ; RUN: not grep select |
| 4 | |
Chris Lattner | 2f62d90 | 2009-01-19 22:12:33 +0000 | [diff] [blame] | 5 | @G = extern_weak global i32 |
| 6 | |
Tanya Lattner | 003eae5 | 2008-03-10 07:21:50 +0000 | [diff] [blame] | 7 | define i32 @test(i32 %tmp) { |
| 8 | cond_false179: |
| 9 | %tmp181 = icmp eq i32 %tmp, 0 ; <i1> [#uses=1] |
| 10 | br i1 %tmp181, label %cond_true182, label %cond_next185 |
| 11 | cond_true182: ; preds = %cond_false179 |
| 12 | br label %cond_next185 |
| 13 | cond_next185: ; preds = %cond_true182, %cond_false179 |
Chris Lattner | 2f62d90 | 2009-01-19 22:12:33 +0000 | [diff] [blame] | 14 | %d0.3 = phi i32 [ udiv (i32 1, i32 ptrtoint (i32* @G to i32)), %cond_true182 ], [ %tmp, %cond_false179 ] ; <i32> [#uses=1] |
Tanya Lattner | 003eae5 | 2008-03-10 07:21:50 +0000 | [diff] [blame] | 15 | ret i32 %d0.3 |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 16 | } |
| 17 | |
Tanya Lattner | 003eae5 | 2008-03-10 07:21:50 +0000 | [diff] [blame] | 18 | define i32 @test2(i32 %tmp) { |
| 19 | cond_false179: |
| 20 | %tmp181 = icmp eq i32 %tmp, 0 ; <i1> [#uses=1] |
| 21 | br i1 %tmp181, label %cond_true182, label %cond_next185 |
| 22 | cond_true182: ; preds = %cond_false179 |
| 23 | br label %cond_next185 |
| 24 | cond_next185: ; preds = %cond_true182, %cond_false179 |
Chris Lattner | 2f62d90 | 2009-01-19 22:12:33 +0000 | [diff] [blame] | 25 | %d0.3 = phi i32 [ udiv (i32 1, i32 ptrtoint (i32* @G to i32)), %cond_true182 ], [ %tmp, %cond_false179 ] ; <i32> [#uses=1] |
Tanya Lattner | 003eae5 | 2008-03-10 07:21:50 +0000 | [diff] [blame] | 26 | call i32 @test( i32 4 ) ; <i32>:0 [#uses=0] |
| 27 | ret i32 %d0.3 |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 28 | } |