47 lines · plain
1; RUN: opt < %s -passes='cgscc(inline,loop-simplify),loop-extract' -S | FileCheck %s2; RUN: opt < %s -passes='cgscc(argpromotion,loop-simplify),loop-extract' -S | FileCheck %s3 4; This test used to trigger an assert (PR8929).5 6define void @test() {7; CHECK-LABEL: define void @test()8; CHECK-NEXT: entry:9; CHECK-NEXT: br label %codeRepl10; CHECK: codeRepl:11; CHECK-NEXT: call void @test.loopentry()12; CHECK-NEXT: br label %loopexit13; CHECK: loopexit:14; CHECK-NEXT: br label %exit15; CHECK: exit:16; CHECK-NEXT: ret void17 18entry:19 br label %loopentry20 21loopentry: ; preds = %loopbody, %entry22 br i1 undef, label %loopbody, label %loopexit23 24loopbody: ; preds = %codeRepl125 call void @foo()26 br label %loopentry27 28loopexit: ; preds = %codeRepl29 br label %exit30 31exit: ; preds = %loopexit32 ret void33}34 35declare void @foo()36 37; CHECK-LABEL: define internal void @test.loopentry()38; CHECK-NEXT: newFuncRoot:39; CHECK-NEXT: br label %loopentry40; CHECK: loopentry:41; CHECK-NEXT: br i1 false, label %loopbody, label %loopexit.exitStub42; CHECK: loopbody:43; CHECK-NEXT: call void @foo()44; CHECK-NEXT: br label %loopentry45; CHECK: loopexit.exitStub:46; CHECK-NEXT: ret void47