[Reland][Runtimes] Merge 'compile_commands.json' files from runtimes build (#116303)
[llvm-project.git] / llvm / test / CodeGen / X86 / tailcall-lifetime-end.ll
blob5c5de32caa9dfef7c04ee20d10f8d8607f29ab64
1 ; RUN: llc -mtriple=x86_64-unknown-linux-gnu -o - %s | FileCheck %s
3 ; A lifetime end intrinsic should not prevent a call from being tail call
4 ; optimized.
6 define void @foobar() {
7 ; CHECK-LABEL: foobar
8 ; CHECK: pushq  %rax
9 ; CHECK: leaq   4(%rsp), %rdi
10 ; CHECK: callq  foo
11 ; CHECK: popq   %rax
12 ; CHECK: jmp    bar
13 entry:
14   %i = alloca i32
15   call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %i)
16   call void @foo(ptr nonnull %i)
17   tail call void @bar()
18   call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %i)
19   ret void
22 declare void @foo(ptr nocapture %p)
23 declare void @bar()
25 declare void @llvm.lifetime.start.p0(i64, ptr nocapture)
26 declare void @llvm.lifetime.end.p0(i64, ptr nocapture)