diff options
Diffstat (limited to 'llvm/test/Transforms/LowerSwitch/phi-in-dead-block.ll')
| -rw-r--r-- | llvm/test/Transforms/LowerSwitch/phi-in-dead-block.ll | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/llvm/test/Transforms/LowerSwitch/phi-in-dead-block.ll b/llvm/test/Transforms/LowerSwitch/phi-in-dead-block.ll new file mode 100644 index 00000000000..a632584f7eb --- /dev/null +++ b/llvm/test/Transforms/LowerSwitch/phi-in-dead-block.ll @@ -0,0 +1,40 @@ +; RUN: opt -S -lowerswitch %s | FileCheck %s + +; CHECK-LABEL: @phi_in_dead_block( +; CHECK-NOT: switch +define void @phi_in_dead_block() { +bb: + br i1 undef, label %bb2, label %bb3 + +bb1: ; No predecessors! + switch i32 undef, label %bb2 [ + i32 9, label %bb3 + ] + +bb2: ; preds = %bb1, %bb + %tmp = phi i64 [ undef, %bb1 ], [ undef, %bb ] + unreachable + +bb3: ; preds = %bb1, %bb + unreachable +} + +; CHECK-LABEL: @phi_in_dead_block_br_to_self( +; CHECK-NOT: switch +define void @phi_in_dead_block_br_to_self() { +bb: + br i1 undef, label %bb2, label %bb3 + +bb1: ; No predecessors! + switch i32 undef, label %bb2 [ + i32 9, label %bb3 + i32 10, label %bb1 + ] + +bb2: ; preds = %bb1, %bb + %tmp = phi i64 [ undef, %bb1 ], [ undef, %bb ] + unreachable + +bb3: ; preds = %bb1, %bb + unreachable +} |

