brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 6bd2b97 Raw
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