xref: /llvm-project/llvm/test/CodeGen/AArch64/arm64-fastcc-tailcall.ll (revision 5ddce70ef0e5a641d7fea95e31fc5e2439cb98cb)
1; RUN: llc < %s -mtriple=arm64-eabi | FileCheck %s
2
3define void @caller(ptr nocapture %p, i32 %a, i32 %b) nounwind optsize ssp {
4; CHECK-NOT: stp
5; CHECK: b       {{_callee|callee}}
6; CHECK-NOT: ldp
7; CHECK: ret
8  %1 = icmp eq i32 %b, 0
9  br i1 %1, label %3, label %2
10
11  tail call fastcc void @callee(ptr %p, i32 %a) optsize
12  br label %3
13
14  ret void
15}
16
17define internal fastcc void @callee(ptr nocapture %p, i32 %a) nounwind optsize noinline ssp {
18  store volatile i32 %a, ptr %p, align 4, !tbaa !0
19  ret void
20}
21
22!0 = !{!"int", !1}
23!1 = !{!"omnipotent char", !2}
24!2 = !{!"Simple C/C++ TBAA"}
25