Chris Lattner | 5464da9 | 2003-08-27 01:05:19 +0000 | [diff] [blame] | 1 | ; The PHI cannot be eliminated from this testcase, SCCP is mishandling invoke's! |
Dan Gohman | f2f6ce6 | 2009-09-11 18:01:28 +0000 | [diff] [blame] | 2 | ; RUN: opt < %s -sccp -S | grep phi |
Chris Lattner | 5464da9 | 2003-08-27 01:05:19 +0000 | [diff] [blame] | 3 | |
Tanya Lattner | f396cc8 | 2008-03-19 04:14:49 +0000 | [diff] [blame] | 4 | declare void @foo() |
| 5 | |
| 6 | define i32 @test(i1 %cond) { |
Chris Lattner | 5464da9 | 2003-08-27 01:05:19 +0000 | [diff] [blame] | 7 | Entry: |
Tanya Lattner | f396cc8 | 2008-03-19 04:14:49 +0000 | [diff] [blame] | 8 | br i1 %cond, label %Inv, label %Cont |
| 9 | Inv: ; preds = %Entry |
| 10 | invoke void @foo( ) |
Bill Wendling | b072dd9 | 2011-08-31 20:55:40 +0000 | [diff] [blame] | 11 | to label %Ok unwind label %LPad |
Tanya Lattner | f396cc8 | 2008-03-19 04:14:49 +0000 | [diff] [blame] | 12 | Ok: ; preds = %Inv |
Chris Lattner | 5464da9 | 2003-08-27 01:05:19 +0000 | [diff] [blame] | 13 | br label %Cont |
Bill Wendling | b072dd9 | 2011-08-31 20:55:40 +0000 | [diff] [blame] | 14 | LPad: |
| 15 | %val = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) |
| 16 | catch i8* null |
| 17 | br label %Cont |
Tanya Lattner | f396cc8 | 2008-03-19 04:14:49 +0000 | [diff] [blame] | 18 | Cont: ; preds = %Ok, %Inv, %Entry |
Bill Wendling | b072dd9 | 2011-08-31 20:55:40 +0000 | [diff] [blame] | 19 | %X = phi i32 [ 0, %Entry ], [ 1, %Ok ], [ 0, %LPad ] ; <i32> [#uses=1] |
Tanya Lattner | f396cc8 | 2008-03-19 04:14:49 +0000 | [diff] [blame] | 20 | ret i32 %X |
Chris Lattner | 5464da9 | 2003-08-27 01:05:19 +0000 | [diff] [blame] | 21 | } |
Tanya Lattner | f396cc8 | 2008-03-19 04:14:49 +0000 | [diff] [blame] | 22 | |
Bill Wendling | b072dd9 | 2011-08-31 20:55:40 +0000 | [diff] [blame] | 23 | declare i32 @__gxx_personality_v0(...) |