Chris Lattner | 8a53688 | 2006-10-20 00:41:31 +0000 | [diff] [blame] | 1 | ; PR957 |
Dan Gohman | f2f6ce6 | 2009-09-11 18:01:28 +0000 | [diff] [blame] | 2 | ; RUN: opt < %s -simplifycfg -S | \ |
Reid Spencer | 9aafdcf | 2007-04-15 09:21:47 +0000 | [diff] [blame] | 3 | ; RUN: not grep select |
Chris Lattner | 8a53688 | 2006-10-20 00:41:31 +0000 | [diff] [blame] | 4 | |
Chris Lattner | a14fa71 | 2009-01-19 22:12:33 +0000 | [diff] [blame] | 5 | @G = extern_weak global i32 |
| 6 | |
Tanya Lattner | ceca194 | 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 | a14fa71 | 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 | ceca194 | 2008-03-10 07:21:50 +0000 | [diff] [blame] | 15 | ret i32 %d0.3 |
Chris Lattner | 8a53688 | 2006-10-20 00:41:31 +0000 | [diff] [blame] | 16 | } |
| 17 | |
Tanya Lattner | ceca194 | 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 | a14fa71 | 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 | ceca194 | 2008-03-10 07:21:50 +0000 | [diff] [blame] | 26 | call i32 @test( i32 4 ) ; <i32>:0 [#uses=0] |
| 27 | ret i32 %d0.3 |
Chris Lattner | 8a53688 | 2006-10-20 00:41:31 +0000 | [diff] [blame] | 28 | } |