xref: /llvm-project/llvm/test/CodeGen/X86/sibcall-byval.ll (revision 89873694654a635cabdd861ddebd61a041d8342f)
1; RUN: llc < %s -mtriple=i386-apple-darwin9   | FileCheck %s -check-prefix=X86
2; RUN: llc < %s -mtriple=x86_64-apple-darwin | FileCheck %s -check-prefix=X64
3
4%struct.p = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
5
6define i32 @f(ptr byval(%struct.p) align 4 %q) nounwind ssp {
7entry:
8; X86: _f:
9; X86: jmp _g
10
11; X64: _f:
12; X64: jmp _g
13  %call = tail call i32 @g(ptr byval(%struct.p) align 4 %q) nounwind
14  ret i32 %call
15}
16
17declare i32 @g(ptr byval(%struct.p) align 4)
18
19define i32 @h(ptr byval(%struct.p) align 4 %q, i32 %r) nounwind ssp {
20entry:
21; X86: _h:
22; X86: jmp _i
23
24; X64: _h:
25; X64: jmp _i
26
27  %call = tail call i32 @i(ptr byval(%struct.p) align 4 %q, i32 %r) nounwind
28  ret i32 %call
29}
30
31declare i32 @i(ptr byval(%struct.p) align 4, i32)
32