Chris Lattner | 6132157 | 2002-05-20 20:48:24 +0000 | [diff] [blame] | 1 | ; This test shows a case where SCCP is incorrectly eliminating the PHI node |
| 2 | ; because it thinks it has a constant 0 value, when it really doesn't. |
| 3 | |
Dan Gohman | 1880092 | 2009-09-11 18:01:28 +0000 | [diff] [blame] | 4 | ; RUN: opt < %s -sccp -S | grep phi |
Chris Lattner | 6132157 | 2002-05-20 20:48:24 +0000 | [diff] [blame] | 5 | |
Tanya Lattner | 1d526b9 | 2008-03-19 04:14:49 +0000 | [diff] [blame] | 6 | define i32 @test(i32 %A, i1 %c) { |
Chris Lattner | 6132157 | 2002-05-20 20:48:24 +0000 | [diff] [blame] | 7 | bb1: |
| 8 | br label %BB2 |
Tanya Lattner | 1d526b9 | 2008-03-19 04:14:49 +0000 | [diff] [blame] | 9 | BB2: ; preds = %BB4, %bb1 |
| 10 | %V = phi i32 [ 0, %bb1 ], [ %A, %BB4 ] ; <i32> [#uses=1] |
Chris Lattner | 6132157 | 2002-05-20 20:48:24 +0000 | [diff] [blame] | 11 | br label %BB3 |
Tanya Lattner | 1d526b9 | 2008-03-19 04:14:49 +0000 | [diff] [blame] | 12 | BB3: ; preds = %BB2 |
| 13 | br i1 %c, label %BB4, label %BB5 |
| 14 | BB4: ; preds = %BB3 |
Chris Lattner | 6132157 | 2002-05-20 20:48:24 +0000 | [diff] [blame] | 15 | br label %BB2 |
Tanya Lattner | 1d526b9 | 2008-03-19 04:14:49 +0000 | [diff] [blame] | 16 | BB5: ; preds = %BB3 |
| 17 | ret i32 %V |
Chris Lattner | 6132157 | 2002-05-20 20:48:24 +0000 | [diff] [blame] | 18 | } |
Tanya Lattner | 1d526b9 | 2008-03-19 04:14:49 +0000 | [diff] [blame] | 19 | |