Dan Gohman | 3c7d308 | 2009-09-11 18:01:28 +0000 | [diff] [blame^] | 1 | ; RUN: opt < %s -simplifycfg -S | not grep unreachable |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 2 | |
Tanya Lattner | b46665e | 2008-03-18 03:45:45 +0000 | [diff] [blame] | 3 | define void @test1(i1 %C, i1* %BP) { |
| 4 | br i1 %C, label %T, label %F |
| 5 | T: ; preds = %0 |
| 6 | store i1 %C, i1* %BP |
| 7 | unreachable |
| 8 | F: ; preds = %0 |
| 9 | ret void |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 10 | } |
| 11 | |
Tanya Lattner | b46665e | 2008-03-18 03:45:45 +0000 | [diff] [blame] | 12 | define void @test2() { |
| 13 | invoke void @test2( ) |
| 14 | to label %N unwind label %U |
| 15 | U: ; preds = %0 |
| 16 | unreachable |
| 17 | N: ; preds = %0 |
| 18 | ret void |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 19 | } |
| 20 | |
Tanya Lattner | b46665e | 2008-03-18 03:45:45 +0000 | [diff] [blame] | 21 | define i32 @test3(i32 %v) { |
| 22 | switch i32 %v, label %default [ |
| 23 | i32 1, label %U |
| 24 | i32 2, label %T |
| 25 | ] |
| 26 | default: ; preds = %0 |
| 27 | ret i32 1 |
| 28 | U: ; preds = %0 |
| 29 | unreachable |
| 30 | T: ; preds = %0 |
| 31 | ret i32 2 |
Dan Gohman | f17a25c | 2007-07-18 16:29:46 +0000 | [diff] [blame] | 32 | } |
Tanya Lattner | b46665e | 2008-03-18 03:45:45 +0000 | [diff] [blame] | 33 | |