Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / Inline / pr53206.ll
blobe7b2b191ed6ffa6f3232577b83d7fe3549188c60
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() 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 undef, 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()
50   ret void