1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 20:23:11 +01:00
llvm-mirror/test/Bitcode/x86_intr-upgrade.test
Matt Arsenault 4c16866a59 OpaquePtr: Require byval on x86_intrcc parameter 0
Currently the backend special cases x86_intrcc and treats the first
parameter as byval. Make the IR require byval for this parameter to
remove this special case, and avoid the dependence on the pointee
element type.

Fixes bug 46672.

I'm not sure the IR is enforcing all the calling convention
constraints. clang seems to ignore the attribute for empty parameter
lists, but the IR tolerates it.
2020-12-14 16:34:37 -05:00

12 lines
527 B
Plaintext

RUN: llvm-dis %p/Inputs/x86_intrcc_upgrade.bc -o - | FileCheck %s
Make sure we upgrade x86_intrcc to a byval with explicit type
CHECK: define x86_intrcc void @no_args() {
CHECK: define x86_intrcc void @non_byval_ptr_arg0(i32* byval(i32) %0)
CHECK: define x86_intrcc void @non_byval_ptr_struct(%struct* byval(%struct) %0)
CHECK: declare x86_intrcc void @no_args_decl()
CHECK: declare x86_intrcc void @non_byval_ptr_arg0_decl(i32* byval(i32))
CHECK: declare x86_intrcc void @non_byval_ptr_struct_decl(%struct* byval(%struct))