[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / Transforms / SimplifyCFG / lifetime-landingpad.ll
blobf6afcf0a658ca846f2c9512016755f91a31989e5
1 ; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s
3 ; CHECK-LABEL: define void @foo
4 define void @foo() personality i32 (...)* @__gxx_personality_v0 {
5 entry:
6 ; CHECK: alloca i8
7 ; CHECK: call void @llvm.lifetime.start.p0i8
8 ; CHECK: call void @bar()
9 ; CHECK: call void @llvm.lifetime.end.p0i8
10 ; CHECK: ret void
11   %a = alloca i8
12   call void @llvm.lifetime.start.p0i8(i64 1, i8* nonnull %a) nounwind
13   invoke void @bar() to label %invoke.cont unwind label %lpad
15 invoke.cont:
16   call void @llvm.lifetime.end.p0i8(i64 1, i8* nonnull %a) nounwind
17   ret void
19 lpad:
20 ; CHECK-NOT: landingpad
21   %b = landingpad { i8*, i32 }
22           cleanup
23   call void @llvm.lifetime.end.p0i8(i64 1, i8* nonnull %a) nounwind
24   resume { i8*, i32 } %b
27 declare void @bar()
29 declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) nounwind
31 declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) nounwind
33 declare i32 @__gxx_personality_v0(...)