xref: /llvm-project/llvm/test/Transforms/SimplifyCFG/patchpoint-invalid-sink.ll (revision bc8a5d104c69cee9cb9a870785da1eac62b58e32)
1; RUN: opt -passes='simplifycfg<sink-common-insts>' -S %s | FileCheck %s
2
3declare void @personalityFn()
4
5define void @test(i1 %c) personality ptr @personalityFn {
6; CHECK-LABEL: define void @test
7; CHECK-LABEL: entry:
8; CHECK-NEXT:    br i1 %c, label %taken, label %untaken
9; CHECK-LABEL: taken:
10; CHECK-NEXT:    invoke void (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.void(i64 1, i32 0, ptr null, i32 0)
11; CHECK-LABEL: untaken:
12; CHECK-NEXT:    invoke void (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.void(i64 2, i32 0, ptr null, i32 0)
13; CHECK-LABEL: end:
14; CHECK-NEXT:    ret void
15entry:
16  br i1 %c, label %taken, label %untaken
17
18taken:
19  invoke void (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.void(i64 1, i32 0, ptr null, i32 0)
20          to label %end unwind label %unwind
21
22untaken:
23  invoke void (i64, i32, ptr, i32, ...) @llvm.experimental.patchpoint.void(i64 2, i32 0, ptr null, i32 0)
24          to label %end unwind label %unwind
25
26end:
27  ret void
28
29unwind:
30  %0 = landingpad { ptr, i32 }
31          cleanup
32  br label %end
33}
34
35declare void @llvm.experimental.patchpoint.void(i64 immarg, i32 immarg, ptr, i32 immarg, ...)
36