1*217e8576SNikita Popov; RUN: opt < %s -passes='cgscc(inline,loop-simplify),loop-extract' -S | FileCheck %s 2*217e8576SNikita Popov; RUN: opt < %s -passes='cgscc(argpromotion,loop-simplify),loop-extract' -S | FileCheck %s 33b70ee27SEhud Katz 43b70ee27SEhud Katz; This test used to trigger an assert (PR8929). 53b70ee27SEhud Katz 63b70ee27SEhud Katzdefine void @test() { 73b70ee27SEhud Katz; CHECK-LABEL: define void @test() 83b70ee27SEhud Katz; CHECK-NEXT: entry: 93b70ee27SEhud Katz; CHECK-NEXT: br label %codeRepl 103b70ee27SEhud Katz; CHECK: codeRepl: 113b70ee27SEhud Katz; CHECK-NEXT: call void @test.loopentry() 123b70ee27SEhud Katz; CHECK-NEXT: br label %loopexit 133b70ee27SEhud Katz; CHECK: loopexit: 143b70ee27SEhud Katz; CHECK-NEXT: br label %exit 153b70ee27SEhud Katz; CHECK: exit: 163b70ee27SEhud Katz; CHECK-NEXT: ret void 173b70ee27SEhud Katz 183b70ee27SEhud Katzentry: 193b70ee27SEhud Katz br label %loopentry 203b70ee27SEhud Katz 213b70ee27SEhud Katzloopentry: ; preds = %loopbody, %entry 223b70ee27SEhud Katz br i1 undef, label %loopbody, label %loopexit 233b70ee27SEhud Katz 243b70ee27SEhud Katzloopbody: ; preds = %codeRepl1 253b70ee27SEhud Katz call void @foo() 263b70ee27SEhud Katz br label %loopentry 273b70ee27SEhud Katz 283b70ee27SEhud Katzloopexit: ; preds = %codeRepl 293b70ee27SEhud Katz br label %exit 303b70ee27SEhud Katz 313b70ee27SEhud Katzexit: ; preds = %loopexit 323b70ee27SEhud Katz ret void 333b70ee27SEhud Katz} 343b70ee27SEhud Katz 353b70ee27SEhud Katzdeclare void @foo() 363b70ee27SEhud Katz 373b70ee27SEhud Katz; CHECK-LABEL: define internal void @test.loopentry() 383b70ee27SEhud Katz; CHECK-NEXT: newFuncRoot: 393b70ee27SEhud Katz; CHECK-NEXT: br label %loopentry 403b70ee27SEhud Katz; CHECK: loopentry: 413b70ee27SEhud Katz; CHECK-NEXT: br i1 false, label %loopbody, label %loopexit.exitStub 423b70ee27SEhud Katz; CHECK: loopbody: 433b70ee27SEhud Katz; CHECK-NEXT: call void @foo() 443b70ee27SEhud Katz; CHECK-NEXT: br label %loopentry 452e192ab1SVyacheslav Zakharin; CHECK: loopexit.exitStub: 462e192ab1SVyacheslav Zakharin; CHECK-NEXT: ret void 47