Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / SimplifyCFG / lifetime.ll
blobd6bba2c3c2e9abac48c815f1b06a03364937f7fe
1 ; RUN: opt < %s -passes=simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s
3 ; Test that a lifetime intrinsic isn't removed because that would change semantics
5 ; CHECK: foo
6 ; CHECK: entry:
7 ; CHECK: bb0:
8 ; CHECK: bb1:
9 ; CHECK: ret
10 define void @foo(i1 %x) {
11 entry:
12   %a = alloca i8
13   call void @llvm.lifetime.start.p0(i64 -1, ptr %a) nounwind
14   br i1 %x, label %bb0, label %bb1
16 bb0:
17   call void @llvm.lifetime.end.p0(i64 -1, ptr %a) nounwind
18   br label %bb1
20 bb1:
21   call void @f()
22   ret void
25 declare void @f()
27 declare void @llvm.lifetime.start.p0(i64, ptr nocapture) nounwind
29 declare void @llvm.lifetime.end.p0(i64, ptr nocapture) nounwind