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