xref: /llvm-project/llvm/test/Transforms/Mem2Reg/2003-04-18-DeadBlockProblem.ll (revision 9daaaad9cfaf05f411ed4faf6eaf77c1da4c074a)
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2; This testcases makes sure that mem2reg can handle unreachable blocks.
3; RUN: opt < %s -passes=mem2reg -S | FileCheck %s
4
5define i32 @test() {
6; CHECK-LABEL: @test(
7; CHECK-NEXT:    br label [[LOOP:%.*]]
8; CHECK:       Loop:
9; CHECK-NEXT:    br label [[ENDOFLOOP:%.*]]
10; CHECK:       Unreachable:
11; CHECK-NEXT:    br label [[ENDOFLOOP]]
12; CHECK:       EndOfLoop:
13; CHECK-NEXT:    br label [[LOOP]]
14;
15  %X = alloca i32		; <ptr> [#uses=2]
16  store i32 6, ptr %X
17  br label %Loop
18Loop:		; preds = %EndOfLoop, %0
19  store i32 5, ptr %X
20  br label %EndOfLoop
21Unreachable:		; No predecessors!
22  br label %EndOfLoop
23EndOfLoop:		; preds = %Unreachable, %Loop
24  br label %Loop
25}
26
27