[win/asan] GetInstructionSize: Fix `83 E4 XX` to return 3. (#119644)
[llvm-project.git] / llvm / test / Transforms / CodeExtractor / LoopExtractor_crash.ll
blob6bd2b9791fffc9604c62e5e064d3189d1084dd80
1 ; RUN: opt < %s -passes='cgscc(inline,loop-simplify),loop-extract' -S | FileCheck %s
2 ; RUN: opt < %s -passes='cgscc(argpromotion,loop-simplify),loop-extract' -S | FileCheck %s
4 ; This test used to trigger an assert (PR8929).
6 define void @test() {
7 ; CHECK-LABEL: define void @test()
8 ; CHECK-NEXT:  entry:
9 ; CHECK-NEXT:    br label %codeRepl
10 ; CHECK:       codeRepl:
11 ; CHECK-NEXT:    call void @test.loopentry()
12 ; CHECK-NEXT:    br label %loopexit
13 ; CHECK:       loopexit:
14 ; CHECK-NEXT:    br label %exit
15 ; CHECK:       exit:
16 ; CHECK-NEXT:    ret void
18 entry:
19   br label %loopentry
21 loopentry:                                        ; preds = %loopbody, %entry
22   br i1 undef, label %loopbody, label %loopexit
24 loopbody:                                         ; preds = %codeRepl1
25   call void @foo()
26   br label %loopentry
28 loopexit:                                         ; preds = %codeRepl
29   br label %exit
31 exit:                                             ; preds = %loopexit
32   ret void
35 declare void @foo()
37 ; CHECK-LABEL: define internal void @test.loopentry()
38 ; CHECK-NEXT:  newFuncRoot:
39 ; CHECK-NEXT:    br label %loopentry
40 ; CHECK:       loopentry:
41 ; CHECK-NEXT:    br i1 false, label %loopbody, label %loopexit.exitStub
42 ; CHECK:       loopbody:
43 ; CHECK-NEXT:    call void @foo()
44 ; CHECK-NEXT:    br label %loopentry
45 ; CHECK:       loopexit.exitStub:
46 ; CHECK-NEXT:    ret void