[win/asan] GetInstructionSize: Fix `83 E4 XX` to return 3. (#119644)
[llvm-project.git] / llvm / test / Transforms / Inline / pr53206.ll
blob266a7f8083ea2f969761dc0bba4dd4a71eeb066c
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt -S -passes=inline < %s | FileCheck %s
4 ; Check that the exception handling code is fully pruned, and does not
5 ; leave behind invalid IR.
7 define internal void @foo(i1 %arg) personality ptr undef {
8 entry:
9   br i1 false, label %join, label %split
11 split:
12   br label %join
14 join:
15   %phi = phi i64 [ 1, %split ], [ 0, %entry ]
16   %cmp = icmp ugt i64 1, %phi
17   br i1 %cmp, label %invoke1, label %exit
19 invoke1:
20   invoke void undef()
21   to label %exit unwind label %cleanup1
23 cleanup1:
24   %pad1 = cleanuppad within none []
25   br label %cleanup1.cont
27 cleanup1.cont:
28   br i1 %arg, label %cleanupret, label %invoke2
30 invoke2:
31   invoke void undef() [ "funclet"(token %pad1) ]
32   to label %cleanup1.cont unwind label %cleanup2
34 cleanup2:
35   %pad2 = cleanuppad within %pad1 []
36   unreachable
38 cleanupret:
39   unreachable
41 exit:
42   ret void
45 define void @test() personality ptr undef {
46 ; CHECK-LABEL: @test(
47 ; CHECK-NEXT:    ret void
49   call void @foo(i1 1)
50   ret void