| // RUN: %clang_cc1 -triple x86_64-gnu-linux -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=LIN64 |
| // RUN: %clang_cc1 -triple x86_64-windows-pc -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=WIN64 |
| // RUN: %clang_cc1 -triple i386-gnu-linux -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=LIN32 |
| // RUN: %clang_cc1 -triple i386-windows-pc -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=WIN32 |
| // RUN: %clang_cc1 -triple nvptx64 -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=NVPTX64 |
| // RUN: %clang_cc1 -triple nvptx -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=NVPTX |
| // RUN: %clang_cc1 -triple sparcv9 -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=SPARCV9 |
| // RUN: %clang_cc1 -triple sparc -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=SPARC |
| // RUN: %clang_cc1 -triple mips64 -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=MIPS64 |
| // RUN: %clang_cc1 -triple mips -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=MIPS |
| // RUN: %clang_cc1 -triple spir64 -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=SPIR64 |
| // RUN: %clang_cc1 -triple spir -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=SPIR |
| // RUN: %clang_cc1 -triple hexagon -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=HEX |
| // RUN: %clang_cc1 -triple lanai -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=LANAI |
| // RUN: %clang_cc1 -triple r600 -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=R600 |
| // RUN: %clang_cc1 -triple arc -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=ARC |
| // RUN: %clang_cc1 -triple xcore -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=XCORE |
| // RUN: %clang_cc1 -triple riscv64 -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=RISCV64 |
| // RUN: %clang_cc1 -triple riscv32 -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=RISCV32 |
| // RUN: %clang_cc1 -triple wasm64 -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=WASM |
| // RUN: %clang_cc1 -triple wasm32 -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=WASM |
| // RUN: %clang_cc1 -triple systemz -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=SYSTEMZ |
| // RUN: %clang_cc1 -triple ppc64 -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=PPC64 |
| // RUN: %clang_cc1 -triple ppc -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=PPC32 |
| // RUN: %clang_cc1 -triple aarch64 -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=AARCH64 |
| // RUN: %clang_cc1 -triple aarch64 -target-abi darwinpcs -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=AARCH64DARWIN |
| // RUN: %clang_cc1 -triple arm64_32-apple-ios -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=AARCH64 |
| // RUN: %clang_cc1 -triple arm64_32-apple-ios -target-abi darwinpcs -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=AARCH64DARWIN |
| // RUN: %clang_cc1 -triple arm -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=ARM |
| |
| // Make sure 128 and 64 bit versions are passed like integers, and that >128 |
| // is passed indirectly. |
| void ParamPassing(_ExtInt(129) a, _ExtInt(128) b, _ExtInt(64) c) {} |
| // LIN64: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i64 %{{.+}}, i64 %{{.+}}, i64 %{{.+}}) |
| // WIN64: define dso_local void @ParamPassing(i129* %{{.+}}, i128* %{{.+}}, i64 %{{.+}}) |
| // LIN32: define{{.*}} void @ParamPassing(i129* %{{.+}}, i128* %{{.+}}, i64 %{{.+}}) |
| // WIN32: define dso_local void @ParamPassing(i129* %{{.+}}, i128* %{{.+}}, i64 %{{.+}}) |
| // NACL: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128* byval(i128) align 8 %{{.+}}, i64 %{{.+}}) |
| // NVPTX64: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128 %{{.+}}, i64 %{{.+}}) |
| // NVPTX: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128* byval(i128) align 8 %{{.+}}, i64 %{{.+}}) |
| // SPARCV9: define{{.*}} void @ParamPassing(i129* %{{.+}}, i128 %{{.+}}, i64 %{{.+}}) |
| // SPARC: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128* byval(i128) align 8 %{{.+}}, i64 %{{.+}}) |
| // MIPS64: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128 signext %{{.+}}, i64 signext %{{.+}}) |
| // MIPS: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128* byval(i128) align 8 %{{.+}}, i64 signext %{{.+}}) |
| // SPIR64: define{{.*}} spir_func void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128* byval(i128) align 8 %{{.+}}, i64 %{{.+}}) |
| // SPIR: define{{.*}} spir_func void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128* byval(i128) align 8 %{{.+}}, i64 %{{.+}}) |
| // HEX: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128* byval(i128) align 8 %{{.+}}, i64 %{{.+}}) |
| // LANAI: define{{.*}} void @ParamPassing(i129* byval(i129) align 4 %{{.+}}, i128* byval(i128) align 4 %{{.+}}, i64 %{{.+}}) |
| // R600: define{{.*}} void @ParamPassing(i129 addrspace(5)* byval(i129) align 8 %{{.+}}, i128 addrspace(5)* byval(i128) align 8 %{{.+}}, i64 %{{.+}}) |
| // ARC: define{{.*}} void @ParamPassing(i129* byval(i129) align 4 %{{.+}}, i128* byval(i128) align 4 %{{.+}}, i64 inreg %{{.+}}) |
| // XCORE: define{{.*}} void @ParamPassing(i129* byval(i129) align 4 %{{.+}}, i128* byval(i128) align 4 %{{.+}}, i64 %{{.+}}) |
| // RISCV64: define{{.*}} void @ParamPassing(i129* %{{.+}}, i128 %{{.+}}, i64 %{{.+}}) |
| // RISCV32: define{{.*}} void @ParamPassing(i129* %{{.+}}, i128* %{{.+}}, i64 %{{.+}}) |
| // WASM: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128 %{{.+}}, i64 %{{.+}}) |
| // SYSTEMZ: define{{.*}} void @ParamPassing(i129* %{{.+}}, i128* %{{.+}}, i64 %{{.+}}) |
| // PPC64: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128 %{{.+}}, i64 %{{.+}}) |
| // PPC32: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128* byval(i128) align 8 %{{.+}}, i64 %{{.+}}) |
| // AARCH64: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128 %{{.+}}, i64 %{{.+}}) |
| // AARCH64DARWIN: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128 %{{.+}}, i64 %{{.+}}) |
| // ARM: define{{.*}} arm_aapcscc void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128* byval(i128) align 8 %{{.+}}, i64 %{{.+}}) |
| |
| void ParamPassing2(_ExtInt(129) a, _ExtInt(127) b, _ExtInt(63) c) {} |
| // LIN64: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i64 %{{.+}}, i64 %{{.+}}, i64 %{{.+}}) |
| // WIN64: define dso_local void @ParamPassing2(i129* %{{.+}}, i127* %{{.+}}, i63 %{{.+}}) |
| // LIN32: define{{.*}} void @ParamPassing2(i129* %{{.+}}, i127* %{{.+}}, i63 %{{.+}}) |
| // WIN32: define dso_local void @ParamPassing2(i129* %{{.+}}, i127* %{{.+}}, i63 %{{.+}}) |
| // NACL: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127* byval(i127) align 8 %{{.+}}, i63 %{{.+}}) |
| // NVPTX64: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127 %{{.+}}, i63 %{{.+}}) |
| // NVPTX: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127* byval(i127) align 8 %{{.+}}, i63 %{{.+}}) |
| // SPARCV9: define{{.*}} void @ParamPassing2(i129* %{{.+}}, i127 %{{.+}}, i63 signext %{{.+}}) |
| // SPARC: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127* byval(i127) align 8 %{{.+}}, i63 %{{.+}}) |
| // MIPS64: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127 signext %{{.+}}, i63 signext %{{.+}}) |
| // MIPS: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127* byval(i127) align 8 %{{.+}}, i63 signext %{{.+}}) |
| // SPIR64: define{{.*}} spir_func void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127* byval(i127) align 8 %{{.+}}, i63 %{{.+}}) |
| // SPIR: define{{.*}} spir_func void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127* byval(i127) align 8 %{{.+}}, i63 %{{.+}}) |
| // HEX: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127* byval(i127) align 8 %{{.+}}, i63 %{{.+}}) |
| // LANAI: define{{.*}} void @ParamPassing2(i129* byval(i129) align 4 %{{.+}}, i127* byval(i127) align 4 %{{.+}}, i63 %{{.+}}) |
| // R600: define{{.*}} void @ParamPassing2(i129 addrspace(5)* byval(i129) align 8 %{{.+}}, i127 addrspace(5)* byval(i127) align 8 %{{.+}}, i63 %{{.+}}) |
| // ARC: define{{.*}} void @ParamPassing2(i129* byval(i129) align 4 %{{.+}}, i127* byval(i127) align 4 %{{.+}}, i63 inreg %{{.+}}) |
| // XCORE: define{{.*}} void @ParamPassing2(i129* byval(i129) align 4 %{{.+}}, i127* byval(i127) align 4 %{{.+}}, i63 %{{.+}}) |
| // RISCV64: define{{.*}} void @ParamPassing2(i129* %{{.+}}, i127 %{{.+}}, i63 signext %{{.+}}) |
| // RISCV32: define{{.*}} void @ParamPassing2(i129* %{{.+}}, i127* %{{.+}}, i63 %{{.+}}) |
| // WASM: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127 %{{.+}}, i63 %{{.+}}) |
| // SYSTEMZ: define{{.*}} void @ParamPassing2(i129* %{{.+}}, i127* %{{.+}}, i63 signext %{{.+}}) |
| // PPC64: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127 %{{.+}}, i63 signext %{{.+}}) |
| // PPC32: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127* byval(i127) align 8 %{{.+}}, i63 %{{.+}}) |
| // AARCH64: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127 %{{.+}}, i63 %{{.+}}) |
| // AARCH64DARWIN: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127 %{{.+}}, i63 %{{.+}}) |
| // ARM: define{{.*}} arm_aapcscc void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127* byval(i127) align 8 %{{.+}}, i63 %{{.+}}) |
| |
| // Make sure we follow the signext rules for promotable integer types. |
| void ParamPassing3(_ExtInt(15) a, _ExtInt(31) b) {} |
| // LIN64: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) |
| // WIN64: define dso_local void @ParamPassing3(i15 %{{.+}}, i31 %{{.+}}) |
| // LIN32: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) |
| // WIN32: define dso_local void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) |
| // NACL: define{{.*}} void @ParamPassing3(i15 %{{.+}}, i31 %{{.+}}) |
| // NVPTX64: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) |
| // NVPTX: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) |
| // SPARCV9: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) |
| // SPARC: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) |
| // MIPS64: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) |
| // MIPS: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) |
| // SPIR64: define{{.*}} spir_func void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) |
| // SPIR: define{{.*}} spir_func void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) |
| // HEX: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) |
| // LANAI: define{{.*}} void @ParamPassing3(i15 inreg %{{.+}}, i31 inreg %{{.+}}) |
| // R600: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) |
| // ARC: define{{.*}} void @ParamPassing3(i15 inreg signext %{{.+}}, i31 inreg signext %{{.+}}) |
| // XCORE: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) |
| // RISCV64: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) |
| // RISCV32: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) |
| // WASM: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) |
| // SYSTEMZ: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) |
| // PPC64: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) |
| // PPC32: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) |
| // AARCH64: define{{.*}} void @ParamPassing3(i15 %{{.+}}, i31 %{{.+}}) |
| // AARCH64DARWIN: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) |
| // ARM: define{{.*}} arm_aapcscc void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) |
| |
| _ExtInt(63) ReturnPassing(){} |
| // LIN64: define{{.*}} i64 @ReturnPassing( |
| // WIN64: define dso_local i63 @ReturnPassing( |
| // LIN32: define{{.*}} i63 @ReturnPassing( |
| // WIN32: define dso_local i63 @ReturnPassing( |
| // NACL: define{{.*}} i63 @ReturnPassing( |
| // NVPTX64: define{{.*}} i63 @ReturnPassing( |
| // NVPTX: define{{.*}} i63 @ReturnPassing( |
| // SPARCV9: define{{.*}} signext i63 @ReturnPassing( |
| // SPARC: define{{.*}} i63 @ReturnPassing( |
| // MIPS64: define{{.*}} i63 @ReturnPassing( |
| // MIPS: define{{.*}} i63 @ReturnPassing( |
| // SPIR64: define{{.*}} spir_func i63 @ReturnPassing( |
| // SPIR: define{{.*}} spir_func i63 @ReturnPassing( |
| // HEX: define{{.*}} i63 @ReturnPassing( |
| // LANAI: define{{.*}} i63 @ReturnPassing( |
| // R600: define{{.*}} i63 @ReturnPassing( |
| // ARC: define{{.*}} i63 @ReturnPassing( |
| // XCORE: define{{.*}} i63 @ReturnPassing( |
| // RISCV64: define{{.*}} signext i63 @ReturnPassing( |
| // RISCV32: define{{.*}} i63 @ReturnPassing( |
| // WASM: define{{.*}} i63 @ReturnPassing( |
| // SYSTEMZ: define{{.*}} signext i63 @ReturnPassing( |
| // PPC64: define{{.*}} signext i63 @ReturnPassing( |
| // PPC32: define{{.*}} i63 @ReturnPassing( |
| // AARCH64: define{{.*}} i63 @ReturnPassing( |
| // AARCH64DARWIN: define{{.*}} i63 @ReturnPassing( |
| // ARM: define{{.*}} arm_aapcscc i63 @ReturnPassing( |
| |
| _ExtInt(64) ReturnPassing2(){} |
| // LIN64: define{{.*}} i64 @ReturnPassing2( |
| // WIN64: define dso_local i64 @ReturnPassing2( |
| // LIN32: define{{.*}} i64 @ReturnPassing2( |
| // WIN32: define dso_local i64 @ReturnPassing2( |
| // NACL: define{{.*}} i64 @ReturnPassing2( |
| // NVPTX64: define{{.*}} i64 @ReturnPassing2( |
| // NVPTX: define{{.*}} i64 @ReturnPassing2( |
| // SPARCV9: define{{.*}} i64 @ReturnPassing2( |
| // SPARC: define{{.*}} i64 @ReturnPassing2( |
| // MIPS64: define{{.*}} i64 @ReturnPassing2( |
| // MIPS: define{{.*}} i64 @ReturnPassing2( |
| // SPIR64: define{{.*}} spir_func i64 @ReturnPassing2( |
| // SPIR: define{{.*}} spir_func i64 @ReturnPassing2( |
| // HEX: define{{.*}} i64 @ReturnPassing2( |
| // LANAI: define{{.*}} i64 @ReturnPassing2( |
| // R600: define{{.*}} i64 @ReturnPassing2( |
| // ARC: define{{.*}} i64 @ReturnPassing2( |
| // XCORE: define{{.*}} i64 @ReturnPassing2( |
| // RISCV64: define{{.*}} i64 @ReturnPassing2( |
| // RISCV32: define{{.*}} i64 @ReturnPassing2( |
| // WASM: define{{.*}} i64 @ReturnPassing2( |
| // SYSTEMZ: define{{.*}} i64 @ReturnPassing2( |
| // PPC64: define{{.*}} i64 @ReturnPassing2( |
| // PPC32: define{{.*}} i64 @ReturnPassing2( |
| // AARCH64: define{{.*}} i64 @ReturnPassing2( |
| // AARCH64DARWIN: define{{.*}} i64 @ReturnPassing2( |
| // ARM: define{{.*}} arm_aapcscc i64 @ReturnPassing2( |
| |
| _ExtInt(127) ReturnPassing3(){} |
| // LIN64: define{{.*}} { i64, i64 } @ReturnPassing3( |
| // WIN64: define dso_local void @ReturnPassing3(i127* noalias sret |
| // LIN32: define{{.*}} void @ReturnPassing3(i127* noalias sret |
| // WIN32: define dso_local void @ReturnPassing3(i127* noalias sret |
| // NACL: define{{.*}} void @ReturnPassing3(i127* noalias sret |
| // NVPTX/64 makes the intentional choice to put all return values direct, even |
| // large structures, so we do the same here. |
| // NVPTX64: define{{.*}} i127 @ReturnPassing3( |
| // NVPTX: define{{.*}} i127 @ReturnPassing3( |
| // SPARCV9: define{{.*}} i127 @ReturnPassing3( |
| // SPARC: define{{.*}} void @ReturnPassing3(i127* noalias sret |
| // MIPS64: define{{.*}} i127 @ReturnPassing3( |
| // MIPS: define{{.*}} void @ReturnPassing3(i127* noalias sret |
| // SPIR64: define{{.*}} spir_func void @ReturnPassing3(i127* noalias sret |
| // SPIR: define{{.*}} spir_func void @ReturnPassing3(i127* noalias sret |
| // HEX: define{{.*}} void @ReturnPassing3(i127* noalias sret |
| // LANAI: define{{.*}} void @ReturnPassing3(i127* noalias sret |
| // R600: define{{.*}} void @ReturnPassing3(i127 addrspace(5)* noalias sret |
| // ARC: define{{.*}} void @ReturnPassing3(i127* noalias sret |
| // XCORE: define{{.*}} void @ReturnPassing3(i127* noalias sret |
| // RISCV64: define{{.*}} i127 @ReturnPassing3( |
| // RISCV32: define{{.*}} void @ReturnPassing3(i127* noalias sret |
| // WASM: define{{.*}} i127 @ReturnPassing3( |
| // SYSTEMZ: define{{.*}} void @ReturnPassing3(i127* noalias sret |
| // PPC64: define{{.*}} i127 @ReturnPassing3( |
| // PPC32: define{{.*}} void @ReturnPassing3(i127* noalias sret |
| // AARCH64: define{{.*}} i127 @ReturnPassing3( |
| // AARCH64DARWIN: define{{.*}} i127 @ReturnPassing3( |
| // ARM: define{{.*}} arm_aapcscc void @ReturnPassing3(i127* noalias sret |
| |
| _ExtInt(128) ReturnPassing4(){} |
| // LIN64: define{{.*}} { i64, i64 } @ReturnPassing4( |
| // WIN64: define dso_local void @ReturnPassing4(i128* noalias sret |
| // LIN32: define{{.*}} void @ReturnPassing4(i128* noalias sret |
| // WIN32: define dso_local void @ReturnPassing4(i128* noalias sret |
| // NACL: define{{.*}} void @ReturnPassing4(i128* noalias sret |
| // NVPTX64: define{{.*}} i128 @ReturnPassing4( |
| // NVPTX: define{{.*}} i128 @ReturnPassing4( |
| // SPARCV9: define{{.*}} i128 @ReturnPassing4( |
| // SPARC: define{{.*}} void @ReturnPassing4(i128* noalias sret |
| // MIPS64: define{{.*}} i128 @ReturnPassing4( |
| // MIPS: define{{.*}} void @ReturnPassing4(i128* noalias sret |
| // SPIR64: define{{.*}} spir_func void @ReturnPassing4(i128* noalias sret |
| // SPIR: define{{.*}} spir_func void @ReturnPassing4(i128* noalias sret |
| // HEX: define{{.*}} void @ReturnPassing4(i128* noalias sret |
| // LANAI: define{{.*}} void @ReturnPassing4(i128* noalias sret |
| // R600: define{{.*}} void @ReturnPassing4(i128 addrspace(5)* noalias sret |
| // ARC: define{{.*}} void @ReturnPassing4(i128* noalias sret |
| // XCORE: define{{.*}} void @ReturnPassing4(i128* noalias sret |
| // RISCV64: define{{.*}} i128 @ReturnPassing4( |
| // RISCV32: define{{.*}} void @ReturnPassing4(i128* noalias sret |
| // WASM: define{{.*}} i128 @ReturnPassing4( |
| // SYSTEMZ: define{{.*}} void @ReturnPassing4(i128* noalias sret |
| // PPC64: define{{.*}} i128 @ReturnPassing4( |
| // PPC32: define{{.*}} void @ReturnPassing4(i128* noalias sret |
| // AARCH64: define{{.*}} i128 @ReturnPassing4( |
| // AARCH64DARWIN: define{{.*}} i128 @ReturnPassing4( |
| // ARM: define{{.*}} arm_aapcscc void @ReturnPassing4(i128* noalias sret |
| |
| _ExtInt(129) ReturnPassing5(){} |
| // LIN64: define{{.*}} void @ReturnPassing5(i129* noalias sret |
| // WIN64: define dso_local void @ReturnPassing5(i129* noalias sret |
| // LIN32: define{{.*}} void @ReturnPassing5(i129* noalias sret |
| // WIN32: define dso_local void @ReturnPassing5(i129* noalias sret |
| // NACL: define{{.*}} void @ReturnPassing5(i129* noalias sret |
| // NVPTX64: define{{.*}} i129 @ReturnPassing5( |
| // NVPTX: define{{.*}} i129 @ReturnPassing5( |
| // SPARCV9: define{{.*}} i129 @ReturnPassing5( |
| // SPARC: define{{.*}} void @ReturnPassing5(i129* noalias sret |
| // MIPS64: define{{.*}} void @ReturnPassing5(i129* noalias sret |
| // MIPS: define{{.*}} void @ReturnPassing5(i129* noalias sret |
| // SPIR64: define{{.*}} spir_func void @ReturnPassing5(i129* noalias sret |
| // SPIR: define{{.*}} spir_func void @ReturnPassing5(i129* noalias sret |
| // HEX: define{{.*}} void @ReturnPassing5(i129* noalias sret |
| // LANAI: define{{.*}} void @ReturnPassing5(i129* noalias sret |
| // R600: define{{.*}} void @ReturnPassing5(i129 addrspace(5)* noalias sret |
| // ARC: define{{.*}} void @ReturnPassing5(i129* inreg noalias sret |
| // XCORE: define{{.*}} void @ReturnPassing5(i129* noalias sret |
| // RISCV64: define{{.*}} void @ReturnPassing5(i129* noalias sret |
| // RISCV32: define{{.*}} void @ReturnPassing5(i129* noalias sret |
| // WASM: define{{.*}} void @ReturnPassing5(i129* noalias sret |
| // SYSTEMZ: define{{.*}} void @ReturnPassing5(i129* noalias sret |
| // PPC64: define{{.*}} void @ReturnPassing5(i129* noalias sret |
| // PPC32: define{{.*}} void @ReturnPassing5(i129* noalias sret |
| // AARCH64: define{{.*}} void @ReturnPassing5(i129* noalias sret |
| // AARCH64DARWIN: define{{.*}} void @ReturnPassing5(i129* noalias sret |
| // ARM: define{{.*}} arm_aapcscc void @ReturnPassing5(i129* noalias sret |
| |
| // SparcV9 is odd in that it has a return-size limit of 256, not 128 or 64 |
| // like other platforms, so test to make sure this behavior will still work. |
| _ExtInt(256) ReturnPassing6() {} |
| // SPARCV9: define{{.*}} i256 @ReturnPassing6( |
| _ExtInt(257) ReturnPassing7() {} |
| // SPARCV9: define{{.*}} void @ReturnPassing7(i257* noalias sret |