1 // RUN: %clang_cc1 -triple x86_64-gnu-linux -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=LIN64 2 // RUN: %clang_cc1 -triple x86_64-windows-pc -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=WIN64 3 // RUN: %clang_cc1 -triple i386-gnu-linux -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=LIN32 4 // RUN: %clang_cc1 -triple i386-windows-pc -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=WIN32 5 // RUN: %clang_cc1 -triple nvptx64 -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=NVPTX64 6 // RUN: %clang_cc1 -triple nvptx -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=NVPTX 7 // RUN: %clang_cc1 -triple sparcv9 -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=SPARCV9 8 // RUN: %clang_cc1 -triple sparc -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=SPARC 9 // RUN: %clang_cc1 -triple mips64 -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=MIPS64 10 // RUN: %clang_cc1 -triple mips -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=MIPS 11 // RUN: %clang_cc1 -triple spir64 -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=SPIR64 12 // RUN: %clang_cc1 -triple spir -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=SPIR 13 // RUN: %clang_cc1 -triple hexagon -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=HEX 14 // RUN: %clang_cc1 -triple lanai -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=LANAI 15 // RUN: %clang_cc1 -triple r600 -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=R600 16 // RUN: %clang_cc1 -triple arc -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=ARC 17 // RUN: %clang_cc1 -triple xcore -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=XCORE 18 // RUN: %clang_cc1 -triple riscv64 -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=RISCV64 19 // RUN: %clang_cc1 -triple riscv32 -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=RISCV32 20 // RUN: %clang_cc1 -triple wasm64 -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=WASM 21 // RUN: %clang_cc1 -triple wasm32 -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=WASM 22 // RUN: %clang_cc1 -triple systemz -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=SYSTEMZ 23 // RUN: %clang_cc1 -triple ppc64 -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=PPC64 24 // RUN: %clang_cc1 -triple ppc -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=PPC32 25 // RUN: %clang_cc1 -triple aarch64 -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=AARCH64 26 // RUN: %clang_cc1 -triple aarch64 -target-abi darwinpcs -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=AARCH64DARWIN 27 // RUN: %clang_cc1 -triple arm64_32-apple-ios -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=AARCH64 28 // RUN: %clang_cc1 -triple arm64_32-apple-ios -target-abi darwinpcs -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=AARCH64DARWIN 29 // RUN: %clang_cc1 -triple arm -O3 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s --check-prefixes=ARM 30 31 // Make sure 128 and 64 bit versions are passed like integers, and that >128 32 // is passed indirectly. 33 void ParamPassing(_ExtInt(129) a, _ExtInt(128) b, _ExtInt(64) c) {} 34 // LIN64: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i64 %{{.+}}, i64 %{{.+}}, i64 %{{.+}}) 35 // WIN64: define dso_local void @ParamPassing(i129* %{{.+}}, i128* %{{.+}}, i64 %{{.+}}) 36 // LIN32: define{{.*}} void @ParamPassing(i129* %{{.+}}, i128* %{{.+}}, i64 %{{.+}}) 37 // WIN32: define dso_local void @ParamPassing(i129* %{{.+}}, i128* %{{.+}}, i64 %{{.+}}) 38 // NACL: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128* byval(i128) align 8 %{{.+}}, i64 %{{.+}}) 39 // NVPTX64: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128 %{{.+}}, i64 %{{.+}}) 40 // NVPTX: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128* byval(i128) align 8 %{{.+}}, i64 %{{.+}}) 41 // SPARCV9: define{{.*}} void @ParamPassing(i129* %{{.+}}, i128 %{{.+}}, i64 %{{.+}}) 42 // SPARC: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128* byval(i128) align 8 %{{.+}}, i64 %{{.+}}) 43 // MIPS64: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128 signext %{{.+}}, i64 signext %{{.+}}) 44 // MIPS: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128* byval(i128) align 8 %{{.+}}, i64 signext %{{.+}}) 45 // SPIR64: define{{.*}} spir_func void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128* byval(i128) align 8 %{{.+}}, i64 %{{.+}}) 46 // SPIR: define{{.*}} spir_func void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128* byval(i128) align 8 %{{.+}}, i64 %{{.+}}) 47 // HEX: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128* byval(i128) align 8 %{{.+}}, i64 %{{.+}}) 48 // LANAI: define{{.*}} void @ParamPassing(i129* byval(i129) align 4 %{{.+}}, i128* byval(i128) align 4 %{{.+}}, i64 %{{.+}}) 49 // R600: define{{.*}} void @ParamPassing(i129 addrspace(5)* byval(i129) align 8 %{{.+}}, i128 addrspace(5)* byval(i128) align 8 %{{.+}}, i64 %{{.+}}) 50 // ARC: define{{.*}} void @ParamPassing(i129* byval(i129) align 4 %{{.+}}, i128* byval(i128) align 4 %{{.+}}, i64 inreg %{{.+}}) 51 // XCORE: define{{.*}} void @ParamPassing(i129* byval(i129) align 4 %{{.+}}, i128* byval(i128) align 4 %{{.+}}, i64 %{{.+}}) 52 // RISCV64: define{{.*}} void @ParamPassing(i129* %{{.+}}, i128 %{{.+}}, i64 %{{.+}}) 53 // RISCV32: define{{.*}} void @ParamPassing(i129* %{{.+}}, i128* %{{.+}}, i64 %{{.+}}) 54 // WASM: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128 %{{.+}}, i64 %{{.+}}) 55 // SYSTEMZ: define{{.*}} void @ParamPassing(i129* %{{.+}}, i128* %{{.+}}, i64 %{{.+}}) 56 // PPC64: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128 %{{.+}}, i64 %{{.+}}) 57 // PPC32: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128* byval(i128) align 8 %{{.+}}, i64 %{{.+}}) 58 // AARCH64: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128 %{{.+}}, i64 %{{.+}}) 59 // AARCH64DARWIN: define{{.*}} void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128 %{{.+}}, i64 %{{.+}}) 60 // ARM: define{{.*}} arm_aapcscc void @ParamPassing(i129* byval(i129) align 8 %{{.+}}, i128* byval(i128) align 8 %{{.+}}, i64 %{{.+}}) 61 62 void ParamPassing2(_ExtInt(129) a, _ExtInt(127) b, _ExtInt(63) c) {} 63 // LIN64: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i64 %{{.+}}, i64 %{{.+}}, i64 %{{.+}}) 64 // WIN64: define dso_local void @ParamPassing2(i129* %{{.+}}, i127* %{{.+}}, i63 %{{.+}}) 65 // LIN32: define{{.*}} void @ParamPassing2(i129* %{{.+}}, i127* %{{.+}}, i63 %{{.+}}) 66 // WIN32: define dso_local void @ParamPassing2(i129* %{{.+}}, i127* %{{.+}}, i63 %{{.+}}) 67 // NACL: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127* byval(i127) align 8 %{{.+}}, i63 %{{.+}}) 68 // NVPTX64: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127 %{{.+}}, i63 %{{.+}}) 69 // NVPTX: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127* byval(i127) align 8 %{{.+}}, i63 %{{.+}}) 70 // SPARCV9: define{{.*}} void @ParamPassing2(i129* %{{.+}}, i127 %{{.+}}, i63 signext %{{.+}}) 71 // SPARC: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127* byval(i127) align 8 %{{.+}}, i63 %{{.+}}) 72 // MIPS64: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127 signext %{{.+}}, i63 signext %{{.+}}) 73 // MIPS: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127* byval(i127) align 8 %{{.+}}, i63 signext %{{.+}}) 74 // SPIR64: define{{.*}} spir_func void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127* byval(i127) align 8 %{{.+}}, i63 %{{.+}}) 75 // SPIR: define{{.*}} spir_func void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127* byval(i127) align 8 %{{.+}}, i63 %{{.+}}) 76 // HEX: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127* byval(i127) align 8 %{{.+}}, i63 %{{.+}}) 77 // LANAI: define{{.*}} void @ParamPassing2(i129* byval(i129) align 4 %{{.+}}, i127* byval(i127) align 4 %{{.+}}, i63 %{{.+}}) 78 // R600: define{{.*}} void @ParamPassing2(i129 addrspace(5)* byval(i129) align 8 %{{.+}}, i127 addrspace(5)* byval(i127) align 8 %{{.+}}, i63 %{{.+}}) 79 // ARC: define{{.*}} void @ParamPassing2(i129* byval(i129) align 4 %{{.+}}, i127* byval(i127) align 4 %{{.+}}, i63 inreg %{{.+}}) 80 // XCORE: define{{.*}} void @ParamPassing2(i129* byval(i129) align 4 %{{.+}}, i127* byval(i127) align 4 %{{.+}}, i63 %{{.+}}) 81 // RISCV64: define{{.*}} void @ParamPassing2(i129* %{{.+}}, i127 %{{.+}}, i63 signext %{{.+}}) 82 // RISCV32: define{{.*}} void @ParamPassing2(i129* %{{.+}}, i127* %{{.+}}, i63 %{{.+}}) 83 // WASM: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127 %{{.+}}, i63 %{{.+}}) 84 // SYSTEMZ: define{{.*}} void @ParamPassing2(i129* %{{.+}}, i127* %{{.+}}, i63 signext %{{.+}}) 85 // PPC64: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127 %{{.+}}, i63 signext %{{.+}}) 86 // PPC32: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127* byval(i127) align 8 %{{.+}}, i63 %{{.+}}) 87 // AARCH64: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127 %{{.+}}, i63 %{{.+}}) 88 // AARCH64DARWIN: define{{.*}} void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127 %{{.+}}, i63 %{{.+}}) 89 // ARM: define{{.*}} arm_aapcscc void @ParamPassing2(i129* byval(i129) align 8 %{{.+}}, i127* byval(i127) align 8 %{{.+}}, i63 %{{.+}}) 90 91 // Make sure we follow the signext rules for promotable integer types. 92 void ParamPassing3(_ExtInt(15) a, _ExtInt(31) b) {} 93 // LIN64: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) 94 // WIN64: define dso_local void @ParamPassing3(i15 %{{.+}}, i31 %{{.+}}) 95 // LIN32: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) 96 // WIN32: define dso_local void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) 97 // NACL: define{{.*}} void @ParamPassing3(i15 %{{.+}}, i31 %{{.+}}) 98 // NVPTX64: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) 99 // NVPTX: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) 100 // SPARCV9: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) 101 // SPARC: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) 102 // MIPS64: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) 103 // MIPS: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) 104 // SPIR64: define{{.*}} spir_func void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) 105 // SPIR: define{{.*}} spir_func void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) 106 // HEX: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) 107 // LANAI: define{{.*}} void @ParamPassing3(i15 inreg %{{.+}}, i31 inreg %{{.+}}) 108 // R600: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) 109 // ARC: define{{.*}} void @ParamPassing3(i15 inreg signext %{{.+}}, i31 inreg signext %{{.+}}) 110 // XCORE: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) 111 // RISCV64: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) 112 // RISCV32: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) 113 // WASM: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) 114 // SYSTEMZ: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) 115 // PPC64: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) 116 // PPC32: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) 117 // AARCH64: define{{.*}} void @ParamPassing3(i15 %{{.+}}, i31 %{{.+}}) 118 // AARCH64DARWIN: define{{.*}} void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) 119 // ARM: define{{.*}} arm_aapcscc void @ParamPassing3(i15 signext %{{.+}}, i31 signext %{{.+}}) 120 121 _ExtInt(63) ReturnPassing(){} 122 // LIN64: define{{.*}} i64 @ReturnPassing( 123 // WIN64: define dso_local i63 @ReturnPassing( 124 // LIN32: define{{.*}} i63 @ReturnPassing( 125 // WIN32: define dso_local i63 @ReturnPassing( 126 // NACL: define{{.*}} i63 @ReturnPassing( 127 // NVPTX64: define{{.*}} i63 @ReturnPassing( 128 // NVPTX: define{{.*}} i63 @ReturnPassing( 129 // SPARCV9: define{{.*}} signext i63 @ReturnPassing( 130 // SPARC: define{{.*}} i63 @ReturnPassing( 131 // MIPS64: define{{.*}} i63 @ReturnPassing( 132 // MIPS: define{{.*}} i63 @ReturnPassing( 133 // SPIR64: define{{.*}} spir_func i63 @ReturnPassing( 134 // SPIR: define{{.*}} spir_func i63 @ReturnPassing( 135 // HEX: define{{.*}} i63 @ReturnPassing( 136 // LANAI: define{{.*}} i63 @ReturnPassing( 137 // R600: define{{.*}} i63 @ReturnPassing( 138 // ARC: define{{.*}} i63 @ReturnPassing( 139 // XCORE: define{{.*}} i63 @ReturnPassing( 140 // RISCV64: define{{.*}} signext i63 @ReturnPassing( 141 // RISCV32: define{{.*}} i63 @ReturnPassing( 142 // WASM: define{{.*}} i63 @ReturnPassing( 143 // SYSTEMZ: define{{.*}} signext i63 @ReturnPassing( 144 // PPC64: define{{.*}} signext i63 @ReturnPassing( 145 // PPC32: define{{.*}} i63 @ReturnPassing( 146 // AARCH64: define{{.*}} i63 @ReturnPassing( 147 // AARCH64DARWIN: define{{.*}} i63 @ReturnPassing( 148 // ARM: define{{.*}} arm_aapcscc i63 @ReturnPassing( 149 150 _ExtInt(64) ReturnPassing2(){} 151 // LIN64: define{{.*}} i64 @ReturnPassing2( 152 // WIN64: define dso_local i64 @ReturnPassing2( 153 // LIN32: define{{.*}} i64 @ReturnPassing2( 154 // WIN32: define dso_local i64 @ReturnPassing2( 155 // NACL: define{{.*}} i64 @ReturnPassing2( 156 // NVPTX64: define{{.*}} i64 @ReturnPassing2( 157 // NVPTX: define{{.*}} i64 @ReturnPassing2( 158 // SPARCV9: define{{.*}} i64 @ReturnPassing2( 159 // SPARC: define{{.*}} i64 @ReturnPassing2( 160 // MIPS64: define{{.*}} i64 @ReturnPassing2( 161 // MIPS: define{{.*}} i64 @ReturnPassing2( 162 // SPIR64: define{{.*}} spir_func i64 @ReturnPassing2( 163 // SPIR: define{{.*}} spir_func i64 @ReturnPassing2( 164 // HEX: define{{.*}} i64 @ReturnPassing2( 165 // LANAI: define{{.*}} i64 @ReturnPassing2( 166 // R600: define{{.*}} i64 @ReturnPassing2( 167 // ARC: define{{.*}} i64 @ReturnPassing2( 168 // XCORE: define{{.*}} i64 @ReturnPassing2( 169 // RISCV64: define{{.*}} i64 @ReturnPassing2( 170 // RISCV32: define{{.*}} i64 @ReturnPassing2( 171 // WASM: define{{.*}} i64 @ReturnPassing2( 172 // SYSTEMZ: define{{.*}} i64 @ReturnPassing2( 173 // PPC64: define{{.*}} i64 @ReturnPassing2( 174 // PPC32: define{{.*}} i64 @ReturnPassing2( 175 // AARCH64: define{{.*}} i64 @ReturnPassing2( 176 // AARCH64DARWIN: define{{.*}} i64 @ReturnPassing2( 177 // ARM: define{{.*}} arm_aapcscc i64 @ReturnPassing2( 178 179 _ExtInt(127) ReturnPassing3(){} 180 // LIN64: define{{.*}} { i64, i64 } @ReturnPassing3( 181 // WIN64: define dso_local void @ReturnPassing3(i127* noalias sret 182 // LIN32: define{{.*}} void @ReturnPassing3(i127* noalias sret 183 // WIN32: define dso_local void @ReturnPassing3(i127* noalias sret 184 // NACL: define{{.*}} void @ReturnPassing3(i127* noalias sret 185 // NVPTX/64 makes the intentional choice to put all return values direct, even 186 // large structures, so we do the same here. 187 // NVPTX64: define{{.*}} i127 @ReturnPassing3( 188 // NVPTX: define{{.*}} i127 @ReturnPassing3( 189 // SPARCV9: define{{.*}} i127 @ReturnPassing3( 190 // SPARC: define{{.*}} void @ReturnPassing3(i127* noalias sret 191 // MIPS64: define{{.*}} i127 @ReturnPassing3( 192 // MIPS: define{{.*}} void @ReturnPassing3(i127* noalias sret 193 // SPIR64: define{{.*}} spir_func void @ReturnPassing3(i127* noalias sret 194 // SPIR: define{{.*}} spir_func void @ReturnPassing3(i127* noalias sret 195 // HEX: define{{.*}} void @ReturnPassing3(i127* noalias sret 196 // LANAI: define{{.*}} void @ReturnPassing3(i127* noalias sret 197 // R600: define{{.*}} void @ReturnPassing3(i127 addrspace(5)* noalias sret 198 // ARC: define{{.*}} void @ReturnPassing3(i127* noalias sret 199 // XCORE: define{{.*}} void @ReturnPassing3(i127* noalias sret 200 // RISCV64: define{{.*}} i127 @ReturnPassing3( 201 // RISCV32: define{{.*}} void @ReturnPassing3(i127* noalias sret 202 // WASM: define{{.*}} i127 @ReturnPassing3( 203 // SYSTEMZ: define{{.*}} void @ReturnPassing3(i127* noalias sret 204 // PPC64: define{{.*}} i127 @ReturnPassing3( 205 // PPC32: define{{.*}} void @ReturnPassing3(i127* noalias sret 206 // AARCH64: define{{.*}} i127 @ReturnPassing3( 207 // AARCH64DARWIN: define{{.*}} i127 @ReturnPassing3( 208 // ARM: define{{.*}} arm_aapcscc void @ReturnPassing3(i127* noalias sret 209 210 _ExtInt(128) ReturnPassing4(){} 211 // LIN64: define{{.*}} { i64, i64 } @ReturnPassing4( 212 // WIN64: define dso_local void @ReturnPassing4(i128* noalias sret 213 // LIN32: define{{.*}} void @ReturnPassing4(i128* noalias sret 214 // WIN32: define dso_local void @ReturnPassing4(i128* noalias sret 215 // NACL: define{{.*}} void @ReturnPassing4(i128* noalias sret 216 // NVPTX64: define{{.*}} i128 @ReturnPassing4( 217 // NVPTX: define{{.*}} i128 @ReturnPassing4( 218 // SPARCV9: define{{.*}} i128 @ReturnPassing4( 219 // SPARC: define{{.*}} void @ReturnPassing4(i128* noalias sret 220 // MIPS64: define{{.*}} i128 @ReturnPassing4( 221 // MIPS: define{{.*}} void @ReturnPassing4(i128* noalias sret 222 // SPIR64: define{{.*}} spir_func void @ReturnPassing4(i128* noalias sret 223 // SPIR: define{{.*}} spir_func void @ReturnPassing4(i128* noalias sret 224 // HEX: define{{.*}} void @ReturnPassing4(i128* noalias sret 225 // LANAI: define{{.*}} void @ReturnPassing4(i128* noalias sret 226 // R600: define{{.*}} void @ReturnPassing4(i128 addrspace(5)* noalias sret 227 // ARC: define{{.*}} void @ReturnPassing4(i128* noalias sret 228 // XCORE: define{{.*}} void @ReturnPassing4(i128* noalias sret 229 // RISCV64: define{{.*}} i128 @ReturnPassing4( 230 // RISCV32: define{{.*}} void @ReturnPassing4(i128* noalias sret 231 // WASM: define{{.*}} i128 @ReturnPassing4( 232 // SYSTEMZ: define{{.*}} void @ReturnPassing4(i128* noalias sret 233 // PPC64: define{{.*}} i128 @ReturnPassing4( 234 // PPC32: define{{.*}} void @ReturnPassing4(i128* noalias sret 235 // AARCH64: define{{.*}} i128 @ReturnPassing4( 236 // AARCH64DARWIN: define{{.*}} i128 @ReturnPassing4( 237 // ARM: define{{.*}} arm_aapcscc void @ReturnPassing4(i128* noalias sret 238 239 _ExtInt(129) ReturnPassing5(){} 240 // LIN64: define{{.*}} void @ReturnPassing5(i129* noalias sret 241 // WIN64: define dso_local void @ReturnPassing5(i129* noalias sret 242 // LIN32: define{{.*}} void @ReturnPassing5(i129* noalias sret 243 // WIN32: define dso_local void @ReturnPassing5(i129* noalias sret 244 // NACL: define{{.*}} void @ReturnPassing5(i129* noalias sret 245 // NVPTX64: define{{.*}} i129 @ReturnPassing5( 246 // NVPTX: define{{.*}} i129 @ReturnPassing5( 247 // SPARCV9: define{{.*}} i129 @ReturnPassing5( 248 // SPARC: define{{.*}} void @ReturnPassing5(i129* noalias sret 249 // MIPS64: define{{.*}} void @ReturnPassing5(i129* noalias sret 250 // MIPS: define{{.*}} void @ReturnPassing5(i129* noalias sret 251 // SPIR64: define{{.*}} spir_func void @ReturnPassing5(i129* noalias sret 252 // SPIR: define{{.*}} spir_func void @ReturnPassing5(i129* noalias sret 253 // HEX: define{{.*}} void @ReturnPassing5(i129* noalias sret 254 // LANAI: define{{.*}} void @ReturnPassing5(i129* noalias sret 255 // R600: define{{.*}} void @ReturnPassing5(i129 addrspace(5)* noalias sret 256 // ARC: define{{.*}} void @ReturnPassing5(i129* inreg noalias sret 257 // XCORE: define{{.*}} void @ReturnPassing5(i129* noalias sret 258 // RISCV64: define{{.*}} void @ReturnPassing5(i129* noalias sret 259 // RISCV32: define{{.*}} void @ReturnPassing5(i129* noalias sret 260 // WASM: define{{.*}} void @ReturnPassing5(i129* noalias sret 261 // SYSTEMZ: define{{.*}} void @ReturnPassing5(i129* noalias sret 262 // PPC64: define{{.*}} void @ReturnPassing5(i129* noalias sret 263 // PPC32: define{{.*}} void @ReturnPassing5(i129* noalias sret 264 // AARCH64: define{{.*}} void @ReturnPassing5(i129* noalias sret 265 // AARCH64DARWIN: define{{.*}} void @ReturnPassing5(i129* noalias sret 266 // ARM: define{{.*}} arm_aapcscc void @ReturnPassing5(i129* noalias sret 267 268 // SparcV9 is odd in that it has a return-size limit of 256, not 128 or 64 269 // like other platforms, so test to make sure this behavior will still work. 270 _ExtInt(256) ReturnPassing6() {} 271 // SPARCV9: define{{.*}} i256 @ReturnPassing6( 272 _ExtInt(257) ReturnPassing7() {} 273 // SPARCV9: define{{.*}} void @ReturnPassing7(i257* noalias sret 274