xref: /llvm-project/llvm/test/CodeGen/X86/byref.ll (revision 2f448bf509432c1a19ec46ab8cbc7353c03c6280)
1; RUN: llc < %s -mtriple=i686-pc-win32 | FileCheck %s
2
3%Foo = type { i32, i32 }
4
5declare x86_stdcallcc void @foo_byref_stdcall_p(ptr byref(%Foo))
6declare x86_stdcallcc void @i(i32)
7
8; byref does not imply a stack copy, so this should append 4 bytes,
9; not 8.
10define void @stdcall(ptr %value) {
11; CHECK-LABEL: _stdcall:
12; CHECK: pushl 4(%esp)
13; CHECK: calll _foo_byref_stdcall_p@4
14  call x86_stdcallcc void @foo_byref_stdcall_p(ptr byref(%Foo) %value)
15; CHECK-NOT: %esp
16; CHECK: pushl
17; CHECK: calll _i@4
18  call x86_stdcallcc void @i(i32 0)
19  ret void
20}
21