OLD | NEW |
(Empty) | |
| 1 ; RUN: opt -S -pnacl-vector-canonicalization %s | FileCheck %s |
| 2 |
| 3 ; Auto-generated tests for call instructions. |
| 4 |
| 5 target datalayout = "e-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64
:64:64-p:32:32:32-v128:32:128" |
| 6 |
| 7 define <2 x i8> @fn_0_2xi8(<2 x i8>) { |
| 8 entry: |
| 9 %1 = call <2 x i8> @fn_0_2xi8(<2 x i8> %0) |
| 10 ret <2 x i8> %1 |
| 11 } |
| 12 ; CHECK-LABEL: define <16 x i8> @fn_0_2xi8(<16 x i8>) { |
| 13 ; CHECK: entry: |
| 14 ; CHECK-NEXT: %1 = call <16 x i8> @fn_0_2xi8(<16 x i8> %0) |
| 15 ; CHECK-NEXT: ret <16 x i8> %1 |
| 16 ; CHECK-NEXT: } |
| 17 |
| 18 define <2 x i16> @fn_1_2xi16(<2 x i16>) { |
| 19 entry: |
| 20 %1 = call <2 x i16> @fn_1_2xi16(<2 x i16> %0) |
| 21 ret <2 x i16> %1 |
| 22 } |
| 23 ; CHECK-LABEL: define <8 x i16> @fn_1_2xi16(<8 x i16>) { |
| 24 ; CHECK: entry: |
| 25 ; CHECK-NEXT: %1 = call <8 x i16> @fn_1_2xi16(<8 x i16> %0) |
| 26 ; CHECK-NEXT: ret <8 x i16> %1 |
| 27 ; CHECK-NEXT: } |
| 28 |
| 29 define <2 x i32> @fn_2_2xi32(<2 x i32>) { |
| 30 entry: |
| 31 %1 = call <2 x i32> @fn_2_2xi32(<2 x i32> %0) |
| 32 ret <2 x i32> %1 |
| 33 } |
| 34 ; CHECK-LABEL: define <4 x i32> @fn_2_2xi32(<4 x i32>) { |
| 35 ; CHECK: entry: |
| 36 ; CHECK-NEXT: %1 = call <4 x i32> @fn_2_2xi32(<4 x i32> %0) |
| 37 ; CHECK-NEXT: ret <4 x i32> %1 |
| 38 ; CHECK-NEXT: } |
| 39 |
| 40 define <2 x i64> @fn_3_2xi64(<2 x i64>) { |
| 41 entry: |
| 42 %1 = call <2 x i64> @fn_3_2xi64(<2 x i64> %0) |
| 43 ret <2 x i64> %1 |
| 44 } |
| 45 ; CHECK-LABEL: define <2 x i64> @fn_3_2xi64(<2 x i64>) { |
| 46 ; CHECK: entry: |
| 47 ; CHECK-NEXT: %1 = call <2 x i64> @fn_3_2xi64(<2 x i64> %0) |
| 48 ; CHECK-NEXT: ret <2 x i64> %1 |
| 49 ; CHECK-NEXT: } |
| 50 |
| 51 define <2 x i8*> @fn_4_2xi8ptr(<2 x i8*>) { |
| 52 entry: |
| 53 %1 = call <2 x i8*> @fn_4_2xi8ptr(<2 x i8*> %0) |
| 54 ret <2 x i8*> %1 |
| 55 } |
| 56 ; CHECK-LABEL: define <4 x i8*> @fn_4_2xi8ptr(<4 x i8*>) { |
| 57 ; CHECK: entry: |
| 58 ; CHECK-NEXT: %1 = call <4 x i8*> @fn_4_2xi8ptr(<4 x i8*> %0) |
| 59 ; CHECK-NEXT: ret <4 x i8*> %1 |
| 60 ; CHECK-NEXT: } |
| 61 |
| 62 define <2 x float> @fn_5_2xfloat(<2 x float>) { |
| 63 entry: |
| 64 %1 = call <2 x float> @fn_5_2xfloat(<2 x float> %0) |
| 65 ret <2 x float> %1 |
| 66 } |
| 67 ; CHECK-LABEL: define <4 x float> @fn_5_2xfloat(<4 x float>) { |
| 68 ; CHECK: entry: |
| 69 ; CHECK-NEXT: %1 = call <4 x float> @fn_5_2xfloat(<4 x float> %0) |
| 70 ; CHECK-NEXT: ret <4 x float> %1 |
| 71 ; CHECK-NEXT: } |
| 72 |
| 73 define <2 x double> @fn_6_2xdouble(<2 x double>) { |
| 74 entry: |
| 75 %1 = call <2 x double> @fn_6_2xdouble(<2 x double> %0) |
| 76 ret <2 x double> %1 |
| 77 } |
| 78 ; CHECK-LABEL: define <2 x double> @fn_6_2xdouble(<2 x double>) { |
| 79 ; CHECK: entry: |
| 80 ; CHECK-NEXT: %1 = call <2 x double> @fn_6_2xdouble(<2 x double> %0) |
| 81 ; CHECK-NEXT: ret <2 x double> %1 |
| 82 ; CHECK-NEXT: } |
| 83 |
| 84 define <4 x i8> @fn_7_4xi8(<4 x i8>) { |
| 85 entry: |
| 86 %1 = call <4 x i8> @fn_7_4xi8(<4 x i8> %0) |
| 87 ret <4 x i8> %1 |
| 88 } |
| 89 ; CHECK-LABEL: define <16 x i8> @fn_7_4xi8(<16 x i8>) { |
| 90 ; CHECK: entry: |
| 91 ; CHECK-NEXT: %1 = call <16 x i8> @fn_7_4xi8(<16 x i8> %0) |
| 92 ; CHECK-NEXT: ret <16 x i8> %1 |
| 93 ; CHECK-NEXT: } |
| 94 |
| 95 define <4 x i16> @fn_8_4xi16(<4 x i16>) { |
| 96 entry: |
| 97 %1 = call <4 x i16> @fn_8_4xi16(<4 x i16> %0) |
| 98 ret <4 x i16> %1 |
| 99 } |
| 100 ; CHECK-LABEL: define <8 x i16> @fn_8_4xi16(<8 x i16>) { |
| 101 ; CHECK: entry: |
| 102 ; CHECK-NEXT: %1 = call <8 x i16> @fn_8_4xi16(<8 x i16> %0) |
| 103 ; CHECK-NEXT: ret <8 x i16> %1 |
| 104 ; CHECK-NEXT: } |
| 105 |
| 106 define <4 x i32> @fn_9_4xi32(<4 x i32>) { |
| 107 entry: |
| 108 %1 = call <4 x i32> @fn_9_4xi32(<4 x i32> %0) |
| 109 ret <4 x i32> %1 |
| 110 } |
| 111 ; CHECK-LABEL: define <4 x i32> @fn_9_4xi32(<4 x i32>) { |
| 112 ; CHECK: entry: |
| 113 ; CHECK-NEXT: %1 = call <4 x i32> @fn_9_4xi32(<4 x i32> %0) |
| 114 ; CHECK-NEXT: ret <4 x i32> %1 |
| 115 ; CHECK-NEXT: } |
| 116 |
| 117 define <4 x i64> @fn_10_4xi64(<4 x i64>) { |
| 118 entry: |
| 119 %1 = call <4 x i64> @fn_10_4xi64(<4 x i64> %0) |
| 120 ret <4 x i64> %1 |
| 121 } |
| 122 ; CHECK-LABEL: define <2 x i64> @fn_10_4xi64(<2 x i64>* nocapture nonnull derefe
renceable(16), <2 x i64>, <2 x i64>) { |
| 123 ; CHECK: entry: |
| 124 ; CHECK-NEXT: %3 = alloca <2 x i64>, align 16 |
| 125 ; CHECK-NEXT: %4 = call <2 x i64> @fn_10_4xi64(<2 x i64>* nocapture nonnull d
ereferenceable(16) %3, <2 x i64> %1, <2 x i64> %2) |
| 126 ; CHECK-NEXT: %5 = load <2 x i64>, <2 x i64>* %3, align 16 |
| 127 ; CHECK-NEXT: store <2 x i64> %5, <2 x i64>* %0, align 16 |
| 128 ; CHECK-NEXT: ret <2 x i64> %4 |
| 129 ; CHECK-NEXT: } |
| 130 |
| 131 define <4 x i8*> @fn_11_4xi8ptr(<4 x i8*>) { |
| 132 entry: |
| 133 %1 = call <4 x i8*> @fn_11_4xi8ptr(<4 x i8*> %0) |
| 134 ret <4 x i8*> %1 |
| 135 } |
| 136 ; CHECK-LABEL: define <4 x i8*> @fn_11_4xi8ptr(<4 x i8*>) { |
| 137 ; CHECK: entry: |
| 138 ; CHECK-NEXT: %1 = call <4 x i8*> @fn_11_4xi8ptr(<4 x i8*> %0) |
| 139 ; CHECK-NEXT: ret <4 x i8*> %1 |
| 140 ; CHECK-NEXT: } |
| 141 |
| 142 define <4 x float> @fn_12_4xfloat(<4 x float>) { |
| 143 entry: |
| 144 %1 = call <4 x float> @fn_12_4xfloat(<4 x float> %0) |
| 145 ret <4 x float> %1 |
| 146 } |
| 147 ; CHECK-LABEL: define <4 x float> @fn_12_4xfloat(<4 x float>) { |
| 148 ; CHECK: entry: |
| 149 ; CHECK-NEXT: %1 = call <4 x float> @fn_12_4xfloat(<4 x float> %0) |
| 150 ; CHECK-NEXT: ret <4 x float> %1 |
| 151 ; CHECK-NEXT: } |
| 152 |
| 153 define <4 x double> @fn_13_4xdouble(<4 x double>) { |
| 154 entry: |
| 155 %1 = call <4 x double> @fn_13_4xdouble(<4 x double> %0) |
| 156 ret <4 x double> %1 |
| 157 } |
| 158 ; CHECK-LABEL: define <2 x double> @fn_13_4xdouble(<2 x double>* nocapture nonnu
ll dereferenceable(16), <2 x double>, <2 x double>) { |
| 159 ; CHECK: entry: |
| 160 ; CHECK-NEXT: %3 = alloca <2 x double>, align 16 |
| 161 ; CHECK-NEXT: %4 = call <2 x double> @fn_13_4xdouble(<2 x double>* nocapture
nonnull dereferenceable(16) %3, <2 x double> %1, <2 x double> %2) |
| 162 ; CHECK-NEXT: %5 = load <2 x double>, <2 x double>* %3, align 16 |
| 163 ; CHECK-NEXT: store <2 x double> %5, <2 x double>* %0, align 16 |
| 164 ; CHECK-NEXT: ret <2 x double> %4 |
| 165 ; CHECK-NEXT: } |
| 166 |
| 167 define <6 x i8> @fn_14_6xi8(<6 x i8>) { |
| 168 entry: |
| 169 %1 = call <6 x i8> @fn_14_6xi8(<6 x i8> %0) |
| 170 ret <6 x i8> %1 |
| 171 } |
| 172 ; CHECK-LABEL: define <16 x i8> @fn_14_6xi8(<16 x i8>) { |
| 173 ; CHECK: entry: |
| 174 ; CHECK-NEXT: %1 = call <16 x i8> @fn_14_6xi8(<16 x i8> %0) |
| 175 ; CHECK-NEXT: ret <16 x i8> %1 |
| 176 ; CHECK-NEXT: } |
| 177 |
| 178 define <6 x i16> @fn_15_6xi16(<6 x i16>) { |
| 179 entry: |
| 180 %1 = call <6 x i16> @fn_15_6xi16(<6 x i16> %0) |
| 181 ret <6 x i16> %1 |
| 182 } |
| 183 ; CHECK-LABEL: define <8 x i16> @fn_15_6xi16(<8 x i16>) { |
| 184 ; CHECK: entry: |
| 185 ; CHECK-NEXT: %1 = call <8 x i16> @fn_15_6xi16(<8 x i16> %0) |
| 186 ; CHECK-NEXT: ret <8 x i16> %1 |
| 187 ; CHECK-NEXT: } |
| 188 |
| 189 define <6 x i32> @fn_16_6xi32(<6 x i32>) { |
| 190 entry: |
| 191 %1 = call <6 x i32> @fn_16_6xi32(<6 x i32> %0) |
| 192 ret <6 x i32> %1 |
| 193 } |
| 194 ; CHECK-LABEL: define <4 x i32> @fn_16_6xi32(<4 x i32>* nocapture nonnull derefe
renceable(16), <4 x i32>, <4 x i32>) { |
| 195 ; CHECK: entry: |
| 196 ; CHECK-NEXT: %3 = alloca <4 x i32>, align 16 |
| 197 ; CHECK-NEXT: %4 = call <4 x i32> @fn_16_6xi32(<4 x i32>* nocapture nonnull d
ereferenceable(16) %3, <4 x i32> %1, <4 x i32> %2) |
| 198 ; CHECK-NEXT: %5 = load <4 x i32>, <4 x i32>* %3, align 16 |
| 199 ; CHECK-NEXT: store <4 x i32> %5, <4 x i32>* %0, align 16 |
| 200 ; CHECK-NEXT: ret <4 x i32> %4 |
| 201 ; CHECK-NEXT: } |
| 202 |
| 203 define <6 x i64> @fn_17_6xi64(<6 x i64>) { |
| 204 entry: |
| 205 %1 = call <6 x i64> @fn_17_6xi64(<6 x i64> %0) |
| 206 ret <6 x i64> %1 |
| 207 } |
| 208 ; CHECK-LABEL: define <2 x i64> @fn_17_6xi64(<2 x i64>* nocapture nonnull derefe
renceable(16), <2 x i64>* nocapture nonnull dereferenceable(16), <2 x i64>, <2 x
i64>, <2 x i64>) { |
| 209 ; CHECK: entry: |
| 210 ; CHECK-NEXT: %5 = alloca <2 x i64>, align 16 |
| 211 ; CHECK-NEXT: %6 = alloca <2 x i64>, align 16 |
| 212 ; CHECK-NEXT: %7 = call <2 x i64> @fn_17_6xi64(<2 x i64>* nocapture nonnull d
ereferenceable(16) %5, <2 x i64>* nocapture nonnull dereferenceable(16) %6, <2 x
i64> %2, <2 x i64> %3, <2 x i64> %4) |
| 213 ; CHECK-NEXT: %8 = load <2 x i64>, <2 x i64>* %5, align 16 |
| 214 ; CHECK-NEXT: %9 = load <2 x i64>, <2 x i64>* %6, align 16 |
| 215 ; CHECK-NEXT: store <2 x i64> %8, <2 x i64>* %0, align 16 |
| 216 ; CHECK-NEXT: store <2 x i64> %9, <2 x i64>* %1, align 16 |
| 217 ; CHECK-NEXT: ret <2 x i64> %7 |
| 218 ; CHECK-NEXT: } |
| 219 |
| 220 define <6 x i8*> @fn_18_6xi8ptr(<6 x i8*>) { |
| 221 entry: |
| 222 %1 = call <6 x i8*> @fn_18_6xi8ptr(<6 x i8*> %0) |
| 223 ret <6 x i8*> %1 |
| 224 } |
| 225 ; CHECK-LABEL: define <4 x i8*> @fn_18_6xi8ptr(<4 x i8*>* nocapture nonnull dere
ferenceable(16), <4 x i8*>, <4 x i8*>) { |
| 226 ; CHECK: entry: |
| 227 ; CHECK-NEXT: %3 = alloca <4 x i8*>, align 16 |
| 228 ; CHECK-NEXT: %4 = call <4 x i8*> @fn_18_6xi8ptr(<4 x i8*>* nocapture nonnull
dereferenceable(16) %3, <4 x i8*> %1, <4 x i8*> %2) |
| 229 ; CHECK-NEXT: %5 = load <4 x i8*>, <4 x i8*>* %3, align 16 |
| 230 ; CHECK-NEXT: store <4 x i8*> %5, <4 x i8*>* %0, align 16 |
| 231 ; CHECK-NEXT: ret <4 x i8*> %4 |
| 232 ; CHECK-NEXT: } |
| 233 |
| 234 define <6 x float> @fn_19_6xfloat(<6 x float>) { |
| 235 entry: |
| 236 %1 = call <6 x float> @fn_19_6xfloat(<6 x float> %0) |
| 237 ret <6 x float> %1 |
| 238 } |
| 239 ; CHECK-LABEL: define <4 x float> @fn_19_6xfloat(<4 x float>* nocapture nonnull
dereferenceable(16), <4 x float>, <4 x float>) { |
| 240 ; CHECK: entry: |
| 241 ; CHECK-NEXT: %3 = alloca <4 x float>, align 16 |
| 242 ; CHECK-NEXT: %4 = call <4 x float> @fn_19_6xfloat(<4 x float>* nocapture non
null dereferenceable(16) %3, <4 x float> %1, <4 x float> %2) |
| 243 ; CHECK-NEXT: %5 = load <4 x float>, <4 x float>* %3, align 16 |
| 244 ; CHECK-NEXT: store <4 x float> %5, <4 x float>* %0, align 16 |
| 245 ; CHECK-NEXT: ret <4 x float> %4 |
| 246 ; CHECK-NEXT: } |
| 247 |
| 248 define <6 x double> @fn_20_6xdouble(<6 x double>) { |
| 249 entry: |
| 250 %1 = call <6 x double> @fn_20_6xdouble(<6 x double> %0) |
| 251 ret <6 x double> %1 |
| 252 } |
| 253 ; CHECK-LABEL: define <2 x double> @fn_20_6xdouble(<2 x double>* nocapture nonnu
ll dereferenceable(16), <2 x double>* nocapture nonnull dereferenceable(16), <2
x double>, <2 x double>, <2 x double>) { |
| 254 ; CHECK: entry: |
| 255 ; CHECK-NEXT: %5 = alloca <2 x double>, align 16 |
| 256 ; CHECK-NEXT: %6 = alloca <2 x double>, align 16 |
| 257 ; CHECK-NEXT: %7 = call <2 x double> @fn_20_6xdouble(<2 x double>* nocapture
nonnull dereferenceable(16) %5, <2 x double>* nocapture nonnull dereferenceable(
16) %6, <2 x double> %2, <2 x double> %3, <2 x double> %4) |
| 258 ; CHECK-NEXT: %8 = load <2 x double>, <2 x double>* %5, align 16 |
| 259 ; CHECK-NEXT: %9 = load <2 x double>, <2 x double>* %6, align 16 |
| 260 ; CHECK-NEXT: store <2 x double> %8, <2 x double>* %0, align 16 |
| 261 ; CHECK-NEXT: store <2 x double> %9, <2 x double>* %1, align 16 |
| 262 ; CHECK-NEXT: ret <2 x double> %7 |
| 263 ; CHECK-NEXT: } |
| 264 |
| 265 define <8 x i8> @fn_21_8xi8(<8 x i8>) { |
| 266 entry: |
| 267 %1 = call <8 x i8> @fn_21_8xi8(<8 x i8> %0) |
| 268 ret <8 x i8> %1 |
| 269 } |
| 270 ; CHECK-LABEL: define <16 x i8> @fn_21_8xi8(<16 x i8>) { |
| 271 ; CHECK: entry: |
| 272 ; CHECK-NEXT: %1 = call <16 x i8> @fn_21_8xi8(<16 x i8> %0) |
| 273 ; CHECK-NEXT: ret <16 x i8> %1 |
| 274 ; CHECK-NEXT: } |
| 275 |
| 276 define <8 x i16> @fn_22_8xi16(<8 x i16>) { |
| 277 entry: |
| 278 %1 = call <8 x i16> @fn_22_8xi16(<8 x i16> %0) |
| 279 ret <8 x i16> %1 |
| 280 } |
| 281 ; CHECK-LABEL: define <8 x i16> @fn_22_8xi16(<8 x i16>) { |
| 282 ; CHECK: entry: |
| 283 ; CHECK-NEXT: %1 = call <8 x i16> @fn_22_8xi16(<8 x i16> %0) |
| 284 ; CHECK-NEXT: ret <8 x i16> %1 |
| 285 ; CHECK-NEXT: } |
| 286 |
| 287 define <8 x i32> @fn_23_8xi32(<8 x i32>) { |
| 288 entry: |
| 289 %1 = call <8 x i32> @fn_23_8xi32(<8 x i32> %0) |
| 290 ret <8 x i32> %1 |
| 291 } |
| 292 ; CHECK-LABEL: define <4 x i32> @fn_23_8xi32(<4 x i32>* nocapture nonnull derefe
renceable(16), <4 x i32>, <4 x i32>) { |
| 293 ; CHECK: entry: |
| 294 ; CHECK-NEXT: %3 = alloca <4 x i32>, align 16 |
| 295 ; CHECK-NEXT: %4 = call <4 x i32> @fn_23_8xi32(<4 x i32>* nocapture nonnull d
ereferenceable(16) %3, <4 x i32> %1, <4 x i32> %2) |
| 296 ; CHECK-NEXT: %5 = load <4 x i32>, <4 x i32>* %3, align 16 |
| 297 ; CHECK-NEXT: store <4 x i32> %5, <4 x i32>* %0, align 16 |
| 298 ; CHECK-NEXT: ret <4 x i32> %4 |
| 299 ; CHECK-NEXT: } |
| 300 |
| 301 define <8 x i64> @fn_24_8xi64(<8 x i64>) { |
| 302 entry: |
| 303 %1 = call <8 x i64> @fn_24_8xi64(<8 x i64> %0) |
| 304 ret <8 x i64> %1 |
| 305 } |
| 306 ; CHECK-LABEL: define <2 x i64> @fn_24_8xi64(<2 x i64>* nocapture nonnull derefe
renceable(16), <2 x i64>* nocapture nonnull dereferenceable(16), <2 x i64>* noca
pture nonnull dereferenceable(16), <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>) { |
| 307 ; CHECK: entry: |
| 308 ; CHECK-NEXT: %7 = alloca <2 x i64>, align 16 |
| 309 ; CHECK-NEXT: %8 = alloca <2 x i64>, align 16 |
| 310 ; CHECK-NEXT: %9 = alloca <2 x i64>, align 16 |
| 311 ; CHECK-NEXT: %10 = call <2 x i64> @fn_24_8xi64(<2 x i64>* nocapture nonnull
dereferenceable(16) %7, <2 x i64>* nocapture nonnull dereferenceable(16) %8, <2
x i64>* nocapture nonnull dereferenceable(16) %9, <2 x i64> %3, <2 x i64> %4, <2
x i64> %5, <2 x i64> %6) |
| 312 ; CHECK-NEXT: %11 = load <2 x i64>, <2 x i64>* %7, align 16 |
| 313 ; CHECK-NEXT: %12 = load <2 x i64>, <2 x i64>* %8, align 16 |
| 314 ; CHECK-NEXT: %13 = load <2 x i64>, <2 x i64>* %9, align 16 |
| 315 ; CHECK-NEXT: store <2 x i64> %11, <2 x i64>* %0, align 16 |
| 316 ; CHECK-NEXT: store <2 x i64> %12, <2 x i64>* %1, align 16 |
| 317 ; CHECK-NEXT: store <2 x i64> %13, <2 x i64>* %2, align 16 |
| 318 ; CHECK-NEXT: ret <2 x i64> %10 |
| 319 ; CHECK-NEXT: } |
| 320 |
| 321 define <8 x i8*> @fn_25_8xi8ptr(<8 x i8*>) { |
| 322 entry: |
| 323 %1 = call <8 x i8*> @fn_25_8xi8ptr(<8 x i8*> %0) |
| 324 ret <8 x i8*> %1 |
| 325 } |
| 326 ; CHECK-LABEL: define <4 x i8*> @fn_25_8xi8ptr(<4 x i8*>* nocapture nonnull dere
ferenceable(16), <4 x i8*>, <4 x i8*>) { |
| 327 ; CHECK: entry: |
| 328 ; CHECK-NEXT: %3 = alloca <4 x i8*>, align 16 |
| 329 ; CHECK-NEXT: %4 = call <4 x i8*> @fn_25_8xi8ptr(<4 x i8*>* nocapture nonnull
dereferenceable(16) %3, <4 x i8*> %1, <4 x i8*> %2) |
| 330 ; CHECK-NEXT: %5 = load <4 x i8*>, <4 x i8*>* %3, align 16 |
| 331 ; CHECK-NEXT: store <4 x i8*> %5, <4 x i8*>* %0, align 16 |
| 332 ; CHECK-NEXT: ret <4 x i8*> %4 |
| 333 ; CHECK-NEXT: } |
| 334 |
| 335 define <8 x float> @fn_26_8xfloat(<8 x float>) { |
| 336 entry: |
| 337 %1 = call <8 x float> @fn_26_8xfloat(<8 x float> %0) |
| 338 ret <8 x float> %1 |
| 339 } |
| 340 ; CHECK-LABEL: define <4 x float> @fn_26_8xfloat(<4 x float>* nocapture nonnull
dereferenceable(16), <4 x float>, <4 x float>) { |
| 341 ; CHECK: entry: |
| 342 ; CHECK-NEXT: %3 = alloca <4 x float>, align 16 |
| 343 ; CHECK-NEXT: %4 = call <4 x float> @fn_26_8xfloat(<4 x float>* nocapture non
null dereferenceable(16) %3, <4 x float> %1, <4 x float> %2) |
| 344 ; CHECK-NEXT: %5 = load <4 x float>, <4 x float>* %3, align 16 |
| 345 ; CHECK-NEXT: store <4 x float> %5, <4 x float>* %0, align 16 |
| 346 ; CHECK-NEXT: ret <4 x float> %4 |
| 347 ; CHECK-NEXT: } |
| 348 |
| 349 define <8 x double> @fn_27_8xdouble(<8 x double>) { |
| 350 entry: |
| 351 %1 = call <8 x double> @fn_27_8xdouble(<8 x double> %0) |
| 352 ret <8 x double> %1 |
| 353 } |
| 354 ; CHECK-LABEL: define <2 x double> @fn_27_8xdouble(<2 x double>* nocapture nonnu
ll dereferenceable(16), <2 x double>* nocapture nonnull dereferenceable(16), <2
x double>* nocapture nonnull dereferenceable(16), <2 x double>, <2 x double>, <2
x double>, <2 x double>) { |
| 355 ; CHECK: entry: |
| 356 ; CHECK-NEXT: %7 = alloca <2 x double>, align 16 |
| 357 ; CHECK-NEXT: %8 = alloca <2 x double>, align 16 |
| 358 ; CHECK-NEXT: %9 = alloca <2 x double>, align 16 |
| 359 ; CHECK-NEXT: %10 = call <2 x double> @fn_27_8xdouble(<2 x double>* nocapture
nonnull dereferenceable(16) %7, <2 x double>* nocapture nonnull dereferenceable
(16) %8, <2 x double>* nocapture nonnull dereferenceable(16) %9, <2 x double> %3
, <2 x double> %4, <2 x double> %5, <2 x double> %6) |
| 360 ; CHECK-NEXT: %11 = load <2 x double>, <2 x double>* %7, align 16 |
| 361 ; CHECK-NEXT: %12 = load <2 x double>, <2 x double>* %8, align 16 |
| 362 ; CHECK-NEXT: %13 = load <2 x double>, <2 x double>* %9, align 16 |
| 363 ; CHECK-NEXT: store <2 x double> %11, <2 x double>* %0, align 16 |
| 364 ; CHECK-NEXT: store <2 x double> %12, <2 x double>* %1, align 16 |
| 365 ; CHECK-NEXT: store <2 x double> %13, <2 x double>* %2, align 16 |
| 366 ; CHECK-NEXT: ret <2 x double> %10 |
| 367 ; CHECK-NEXT: } |
| 368 |
| 369 define <12 x i8> @fn_28_12xi8(<12 x i8>) { |
| 370 entry: |
| 371 %1 = call <12 x i8> @fn_28_12xi8(<12 x i8> %0) |
| 372 ret <12 x i8> %1 |
| 373 } |
| 374 ; CHECK-LABEL: define <16 x i8> @fn_28_12xi8(<16 x i8>) { |
| 375 ; CHECK: entry: |
| 376 ; CHECK-NEXT: %1 = call <16 x i8> @fn_28_12xi8(<16 x i8> %0) |
| 377 ; CHECK-NEXT: ret <16 x i8> %1 |
| 378 ; CHECK-NEXT: } |
| 379 |
| 380 define <12 x i16> @fn_29_12xi16(<12 x i16>) { |
| 381 entry: |
| 382 %1 = call <12 x i16> @fn_29_12xi16(<12 x i16> %0) |
| 383 ret <12 x i16> %1 |
| 384 } |
| 385 ; CHECK-LABEL: define <8 x i16> @fn_29_12xi16(<8 x i16>* nocapture nonnull deref
erenceable(16), <8 x i16>, <8 x i16>) { |
| 386 ; CHECK: entry: |
| 387 ; CHECK-NEXT: %3 = alloca <8 x i16>, align 16 |
| 388 ; CHECK-NEXT: %4 = call <8 x i16> @fn_29_12xi16(<8 x i16>* nocapture nonnull
dereferenceable(16) %3, <8 x i16> %1, <8 x i16> %2) |
| 389 ; CHECK-NEXT: %5 = load <8 x i16>, <8 x i16>* %3, align 16 |
| 390 ; CHECK-NEXT: store <8 x i16> %5, <8 x i16>* %0, align 16 |
| 391 ; CHECK-NEXT: ret <8 x i16> %4 |
| 392 ; CHECK-NEXT: } |
| 393 |
| 394 define <12 x i32> @fn_30_12xi32(<12 x i32>) { |
| 395 entry: |
| 396 %1 = call <12 x i32> @fn_30_12xi32(<12 x i32> %0) |
| 397 ret <12 x i32> %1 |
| 398 } |
| 399 ; CHECK-LABEL: define <4 x i32> @fn_30_12xi32(<4 x i32>* nocapture nonnull deref
erenceable(16), <4 x i32>* nocapture nonnull dereferenceable(16), <4 x i32>, <4
x i32>, <4 x i32>) { |
| 400 ; CHECK: entry: |
| 401 ; CHECK-NEXT: %5 = alloca <4 x i32>, align 16 |
| 402 ; CHECK-NEXT: %6 = alloca <4 x i32>, align 16 |
| 403 ; CHECK-NEXT: %7 = call <4 x i32> @fn_30_12xi32(<4 x i32>* nocapture nonnull
dereferenceable(16) %5, <4 x i32>* nocapture nonnull dereferenceable(16) %6, <4
x i32> %2, <4 x i32> %3, <4 x i32> %4) |
| 404 ; CHECK-NEXT: %8 = load <4 x i32>, <4 x i32>* %5, align 16 |
| 405 ; CHECK-NEXT: %9 = load <4 x i32>, <4 x i32>* %6, align 16 |
| 406 ; CHECK-NEXT: store <4 x i32> %8, <4 x i32>* %0, align 16 |
| 407 ; CHECK-NEXT: store <4 x i32> %9, <4 x i32>* %1, align 16 |
| 408 ; CHECK-NEXT: ret <4 x i32> %7 |
| 409 ; CHECK-NEXT: } |
| 410 |
| 411 define <12 x i64> @fn_31_12xi64(<12 x i64>) { |
| 412 entry: |
| 413 %1 = call <12 x i64> @fn_31_12xi64(<12 x i64> %0) |
| 414 ret <12 x i64> %1 |
| 415 } |
| 416 ; CHECK-LABEL: define <2 x i64> @fn_31_12xi64(<2 x i64>* nocapture nonnull deref
erenceable(16), <2 x i64>* nocapture nonnull dereferenceable(16), <2 x i64>* noc
apture nonnull dereferenceable(16), <2 x i64>* nocapture nonnull dereferenceable
(16), <2 x i64>* nocapture nonnull dereferenceable(16), <2 x i64>, <2 x i64>, <2
x i64>, <2 x i64>, <2 x i64>, <2 x i64>) { |
| 417 ; CHECK: entry: |
| 418 ; CHECK-NEXT: %11 = alloca <2 x i64>, align 16 |
| 419 ; CHECK-NEXT: %12 = alloca <2 x i64>, align 16 |
| 420 ; CHECK-NEXT: %13 = alloca <2 x i64>, align 16 |
| 421 ; CHECK-NEXT: %14 = alloca <2 x i64>, align 16 |
| 422 ; CHECK-NEXT: %15 = alloca <2 x i64>, align 16 |
| 423 ; CHECK-NEXT: %16 = call <2 x i64> @fn_31_12xi64(<2 x i64>* nocapture nonnull
dereferenceable(16) %11, <2 x i64>* nocapture nonnull dereferenceable(16) %12,
<2 x i64>* nocapture nonnull dereferenceable(16) %13, <2 x i64>* nocapture nonnu
ll dereferenceable(16) %14, <2 x i64>* nocapture nonnull dereferenceable(16) %15
, <2 x i64> %5, <2 x i64> %6, <2 x i64> %7, <2 x i64> %8, <2 x i64> %9, <2 x i64
> %10) |
| 424 ; CHECK-NEXT: %17 = load <2 x i64>, <2 x i64>* %11, align 16 |
| 425 ; CHECK-NEXT: %18 = load <2 x i64>, <2 x i64>* %12, align 16 |
| 426 ; CHECK-NEXT: %19 = load <2 x i64>, <2 x i64>* %13, align 16 |
| 427 ; CHECK-NEXT: %20 = load <2 x i64>, <2 x i64>* %14, align 16 |
| 428 ; CHECK-NEXT: %21 = load <2 x i64>, <2 x i64>* %15, align 16 |
| 429 ; CHECK-NEXT: store <2 x i64> %17, <2 x i64>* %0, align 16 |
| 430 ; CHECK-NEXT: store <2 x i64> %18, <2 x i64>* %1, align 16 |
| 431 ; CHECK-NEXT: store <2 x i64> %19, <2 x i64>* %2, align 16 |
| 432 ; CHECK-NEXT: store <2 x i64> %20, <2 x i64>* %3, align 16 |
| 433 ; CHECK-NEXT: store <2 x i64> %21, <2 x i64>* %4, align 16 |
| 434 ; CHECK-NEXT: ret <2 x i64> %16 |
| 435 ; CHECK-NEXT: } |
| 436 |
| 437 define <12 x i8*> @fn_32_12xi8ptr(<12 x i8*>) { |
| 438 entry: |
| 439 %1 = call <12 x i8*> @fn_32_12xi8ptr(<12 x i8*> %0) |
| 440 ret <12 x i8*> %1 |
| 441 } |
| 442 ; CHECK-LABEL: define <4 x i8*> @fn_32_12xi8ptr(<4 x i8*>* nocapture nonnull der
eferenceable(16), <4 x i8*>* nocapture nonnull dereferenceable(16), <4 x i8*>, <
4 x i8*>, <4 x i8*>) { |
| 443 ; CHECK: entry: |
| 444 ; CHECK-NEXT: %5 = alloca <4 x i8*>, align 16 |
| 445 ; CHECK-NEXT: %6 = alloca <4 x i8*>, align 16 |
| 446 ; CHECK-NEXT: %7 = call <4 x i8*> @fn_32_12xi8ptr(<4 x i8*>* nocapture nonnul
l dereferenceable(16) %5, <4 x i8*>* nocapture nonnull dereferenceable(16) %6, <
4 x i8*> %2, <4 x i8*> %3, <4 x i8*> %4) |
| 447 ; CHECK-NEXT: %8 = load <4 x i8*>, <4 x i8*>* %5, align 16 |
| 448 ; CHECK-NEXT: %9 = load <4 x i8*>, <4 x i8*>* %6, align 16 |
| 449 ; CHECK-NEXT: store <4 x i8*> %8, <4 x i8*>* %0, align 16 |
| 450 ; CHECK-NEXT: store <4 x i8*> %9, <4 x i8*>* %1, align 16 |
| 451 ; CHECK-NEXT: ret <4 x i8*> %7 |
| 452 ; CHECK-NEXT: } |
| 453 |
| 454 define <12 x float> @fn_33_12xfloat(<12 x float>) { |
| 455 entry: |
| 456 %1 = call <12 x float> @fn_33_12xfloat(<12 x float> %0) |
| 457 ret <12 x float> %1 |
| 458 } |
| 459 ; CHECK-LABEL: define <4 x float> @fn_33_12xfloat(<4 x float>* nocapture nonnull
dereferenceable(16), <4 x float>* nocapture nonnull dereferenceable(16), <4 x f
loat>, <4 x float>, <4 x float>) { |
| 460 ; CHECK: entry: |
| 461 ; CHECK-NEXT: %5 = alloca <4 x float>, align 16 |
| 462 ; CHECK-NEXT: %6 = alloca <4 x float>, align 16 |
| 463 ; CHECK-NEXT: %7 = call <4 x float> @fn_33_12xfloat(<4 x float>* nocapture no
nnull dereferenceable(16) %5, <4 x float>* nocapture nonnull dereferenceable(16)
%6, <4 x float> %2, <4 x float> %3, <4 x float> %4) |
| 464 ; CHECK-NEXT: %8 = load <4 x float>, <4 x float>* %5, align 16 |
| 465 ; CHECK-NEXT: %9 = load <4 x float>, <4 x float>* %6, align 16 |
| 466 ; CHECK-NEXT: store <4 x float> %8, <4 x float>* %0, align 16 |
| 467 ; CHECK-NEXT: store <4 x float> %9, <4 x float>* %1, align 16 |
| 468 ; CHECK-NEXT: ret <4 x float> %7 |
| 469 ; CHECK-NEXT: } |
| 470 |
| 471 define <12 x double> @fn_34_12xdouble(<12 x double>) { |
| 472 entry: |
| 473 %1 = call <12 x double> @fn_34_12xdouble(<12 x double> %0) |
| 474 ret <12 x double> %1 |
| 475 } |
| 476 ; CHECK-LABEL: define <2 x double> @fn_34_12xdouble(<2 x double>* nocapture nonn
ull dereferenceable(16), <2 x double>* nocapture nonnull dereferenceable(16), <2
x double>* nocapture nonnull dereferenceable(16), <2 x double>* nocapture nonnu
ll dereferenceable(16), <2 x double>* nocapture nonnull dereferenceable(16), <2
x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>)
{ |
| 477 ; CHECK: entry: |
| 478 ; CHECK-NEXT: %11 = alloca <2 x double>, align 16 |
| 479 ; CHECK-NEXT: %12 = alloca <2 x double>, align 16 |
| 480 ; CHECK-NEXT: %13 = alloca <2 x double>, align 16 |
| 481 ; CHECK-NEXT: %14 = alloca <2 x double>, align 16 |
| 482 ; CHECK-NEXT: %15 = alloca <2 x double>, align 16 |
| 483 ; CHECK-NEXT: %16 = call <2 x double> @fn_34_12xdouble(<2 x double>* nocaptur
e nonnull dereferenceable(16) %11, <2 x double>* nocapture nonnull dereferenceab
le(16) %12, <2 x double>* nocapture nonnull dereferenceable(16) %13, <2 x double
>* nocapture nonnull dereferenceable(16) %14, <2 x double>* nocapture nonnull de
referenceable(16) %15, <2 x double> %5, <2 x double> %6, <2 x double> %7, <2 x d
ouble> %8, <2 x double> %9, <2 x double> %10) |
| 484 ; CHECK-NEXT: %17 = load <2 x double>, <2 x double>* %11, align 16 |
| 485 ; CHECK-NEXT: %18 = load <2 x double>, <2 x double>* %12, align 16 |
| 486 ; CHECK-NEXT: %19 = load <2 x double>, <2 x double>* %13, align 16 |
| 487 ; CHECK-NEXT: %20 = load <2 x double>, <2 x double>* %14, align 16 |
| 488 ; CHECK-NEXT: %21 = load <2 x double>, <2 x double>* %15, align 16 |
| 489 ; CHECK-NEXT: store <2 x double> %17, <2 x double>* %0, align 16 |
| 490 ; CHECK-NEXT: store <2 x double> %18, <2 x double>* %1, align 16 |
| 491 ; CHECK-NEXT: store <2 x double> %19, <2 x double>* %2, align 16 |
| 492 ; CHECK-NEXT: store <2 x double> %20, <2 x double>* %3, align 16 |
| 493 ; CHECK-NEXT: store <2 x double> %21, <2 x double>* %4, align 16 |
| 494 ; CHECK-NEXT: ret <2 x double> %16 |
| 495 ; CHECK-NEXT: } |
| 496 |
| 497 define <16 x i8> @fn_35_16xi8(<16 x i8>) { |
| 498 entry: |
| 499 %1 = call <16 x i8> @fn_35_16xi8(<16 x i8> %0) |
| 500 ret <16 x i8> %1 |
| 501 } |
| 502 ; CHECK-LABEL: define <16 x i8> @fn_35_16xi8(<16 x i8>) { |
| 503 ; CHECK: entry: |
| 504 ; CHECK-NEXT: %1 = call <16 x i8> @fn_35_16xi8(<16 x i8> %0) |
| 505 ; CHECK-NEXT: ret <16 x i8> %1 |
| 506 ; CHECK-NEXT: } |
| 507 |
| 508 define <16 x i16> @fn_36_16xi16(<16 x i16>) { |
| 509 entry: |
| 510 %1 = call <16 x i16> @fn_36_16xi16(<16 x i16> %0) |
| 511 ret <16 x i16> %1 |
| 512 } |
| 513 ; CHECK-LABEL: define <8 x i16> @fn_36_16xi16(<8 x i16>* nocapture nonnull deref
erenceable(16), <8 x i16>, <8 x i16>) { |
| 514 ; CHECK: entry: |
| 515 ; CHECK-NEXT: %3 = alloca <8 x i16>, align 16 |
| 516 ; CHECK-NEXT: %4 = call <8 x i16> @fn_36_16xi16(<8 x i16>* nocapture nonnull
dereferenceable(16) %3, <8 x i16> %1, <8 x i16> %2) |
| 517 ; CHECK-NEXT: %5 = load <8 x i16>, <8 x i16>* %3, align 16 |
| 518 ; CHECK-NEXT: store <8 x i16> %5, <8 x i16>* %0, align 16 |
| 519 ; CHECK-NEXT: ret <8 x i16> %4 |
| 520 ; CHECK-NEXT: } |
| 521 |
| 522 define <16 x i32> @fn_37_16xi32(<16 x i32>) { |
| 523 entry: |
| 524 %1 = call <16 x i32> @fn_37_16xi32(<16 x i32> %0) |
| 525 ret <16 x i32> %1 |
| 526 } |
| 527 ; CHECK-LABEL: define <4 x i32> @fn_37_16xi32(<4 x i32>* nocapture nonnull deref
erenceable(16), <4 x i32>* nocapture nonnull dereferenceable(16), <4 x i32>* noc
apture nonnull dereferenceable(16), <4 x i32>, <4 x i32>, <4 x i32>, <4 x i32>)
{ |
| 528 ; CHECK: entry: |
| 529 ; CHECK-NEXT: %7 = alloca <4 x i32>, align 16 |
| 530 ; CHECK-NEXT: %8 = alloca <4 x i32>, align 16 |
| 531 ; CHECK-NEXT: %9 = alloca <4 x i32>, align 16 |
| 532 ; CHECK-NEXT: %10 = call <4 x i32> @fn_37_16xi32(<4 x i32>* nocapture nonnull
dereferenceable(16) %7, <4 x i32>* nocapture nonnull dereferenceable(16) %8, <4
x i32>* nocapture nonnull dereferenceable(16) %9, <4 x i32> %3, <4 x i32> %4, <
4 x i32> %5, <4 x i32> %6) |
| 533 ; CHECK-NEXT: %11 = load <4 x i32>, <4 x i32>* %7, align 16 |
| 534 ; CHECK-NEXT: %12 = load <4 x i32>, <4 x i32>* %8, align 16 |
| 535 ; CHECK-NEXT: %13 = load <4 x i32>, <4 x i32>* %9, align 16 |
| 536 ; CHECK-NEXT: store <4 x i32> %11, <4 x i32>* %0, align 16 |
| 537 ; CHECK-NEXT: store <4 x i32> %12, <4 x i32>* %1, align 16 |
| 538 ; CHECK-NEXT: store <4 x i32> %13, <4 x i32>* %2, align 16 |
| 539 ; CHECK-NEXT: ret <4 x i32> %10 |
| 540 ; CHECK-NEXT: } |
| 541 |
| 542 define <16 x i64> @fn_38_16xi64(<16 x i64>) { |
| 543 entry: |
| 544 %1 = call <16 x i64> @fn_38_16xi64(<16 x i64> %0) |
| 545 ret <16 x i64> %1 |
| 546 } |
| 547 ; CHECK-LABEL: define <2 x i64> @fn_38_16xi64(<2 x i64>* nocapture nonnull deref
erenceable(16), <2 x i64>* nocapture nonnull dereferenceable(16), <2 x i64>* noc
apture nonnull dereferenceable(16), <2 x i64>* nocapture nonnull dereferenceable
(16), <2 x i64>* nocapture nonnull dereferenceable(16), <2 x i64>* nocapture non
null dereferenceable(16), <2 x i64>* nocapture nonnull dereferenceable(16), <2 x
i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i6
4>) { |
| 548 ; CHECK: entry: |
| 549 ; CHECK-NEXT: %15 = alloca <2 x i64>, align 16 |
| 550 ; CHECK-NEXT: %16 = alloca <2 x i64>, align 16 |
| 551 ; CHECK-NEXT: %17 = alloca <2 x i64>, align 16 |
| 552 ; CHECK-NEXT: %18 = alloca <2 x i64>, align 16 |
| 553 ; CHECK-NEXT: %19 = alloca <2 x i64>, align 16 |
| 554 ; CHECK-NEXT: %20 = alloca <2 x i64>, align 16 |
| 555 ; CHECK-NEXT: %21 = alloca <2 x i64>, align 16 |
| 556 ; CHECK-NEXT: %22 = call <2 x i64> @fn_38_16xi64(<2 x i64>* nocapture nonnull
dereferenceable(16) %15, <2 x i64>* nocapture nonnull dereferenceable(16) %16,
<2 x i64>* nocapture nonnull dereferenceable(16) %17, <2 x i64>* nocapture nonnu
ll dereferenceable(16) %18, <2 x i64>* nocapture nonnull dereferenceable(16) %19
, <2 x i64>* nocapture nonnull dereferenceable(16) %20, <2 x i64>* nocapture non
null dereferenceable(16) %21, <2 x i64> %7, <2 x i64> %8, <2 x i64> %9, <2 x i64
> %10, <2 x i64> %11, <2 x i64> %12, <2 x i64> %13, <2 x i64> %14) |
| 557 ; CHECK-NEXT: %23 = load <2 x i64>, <2 x i64>* %15, align 16 |
| 558 ; CHECK-NEXT: %24 = load <2 x i64>, <2 x i64>* %16, align 16 |
| 559 ; CHECK-NEXT: %25 = load <2 x i64>, <2 x i64>* %17, align 16 |
| 560 ; CHECK-NEXT: %26 = load <2 x i64>, <2 x i64>* %18, align 16 |
| 561 ; CHECK-NEXT: %27 = load <2 x i64>, <2 x i64>* %19, align 16 |
| 562 ; CHECK-NEXT: %28 = load <2 x i64>, <2 x i64>* %20, align 16 |
| 563 ; CHECK-NEXT: %29 = load <2 x i64>, <2 x i64>* %21, align 16 |
| 564 ; CHECK-NEXT: store <2 x i64> %23, <2 x i64>* %0, align 16 |
| 565 ; CHECK-NEXT: store <2 x i64> %24, <2 x i64>* %1, align 16 |
| 566 ; CHECK-NEXT: store <2 x i64> %25, <2 x i64>* %2, align 16 |
| 567 ; CHECK-NEXT: store <2 x i64> %26, <2 x i64>* %3, align 16 |
| 568 ; CHECK-NEXT: store <2 x i64> %27, <2 x i64>* %4, align 16 |
| 569 ; CHECK-NEXT: store <2 x i64> %28, <2 x i64>* %5, align 16 |
| 570 ; CHECK-NEXT: store <2 x i64> %29, <2 x i64>* %6, align 16 |
| 571 ; CHECK-NEXT: ret <2 x i64> %22 |
| 572 ; CHECK-NEXT: } |
| 573 |
| 574 define <16 x i8*> @fn_39_16xi8ptr(<16 x i8*>) { |
| 575 entry: |
| 576 %1 = call <16 x i8*> @fn_39_16xi8ptr(<16 x i8*> %0) |
| 577 ret <16 x i8*> %1 |
| 578 } |
| 579 ; CHECK-LABEL: define <4 x i8*> @fn_39_16xi8ptr(<4 x i8*>* nocapture nonnull der
eferenceable(16), <4 x i8*>* nocapture nonnull dereferenceable(16), <4 x i8*>* n
ocapture nonnull dereferenceable(16), <4 x i8*>, <4 x i8*>, <4 x i8*>, <4 x i8*>
) { |
| 580 ; CHECK: entry: |
| 581 ; CHECK-NEXT: %7 = alloca <4 x i8*>, align 16 |
| 582 ; CHECK-NEXT: %8 = alloca <4 x i8*>, align 16 |
| 583 ; CHECK-NEXT: %9 = alloca <4 x i8*>, align 16 |
| 584 ; CHECK-NEXT: %10 = call <4 x i8*> @fn_39_16xi8ptr(<4 x i8*>* nocapture nonnu
ll dereferenceable(16) %7, <4 x i8*>* nocapture nonnull dereferenceable(16) %8,
<4 x i8*>* nocapture nonnull dereferenceable(16) %9, <4 x i8*> %3, <4 x i8*> %4,
<4 x i8*> %5, <4 x i8*> %6) |
| 585 ; CHECK-NEXT: %11 = load <4 x i8*>, <4 x i8*>* %7, align 16 |
| 586 ; CHECK-NEXT: %12 = load <4 x i8*>, <4 x i8*>* %8, align 16 |
| 587 ; CHECK-NEXT: %13 = load <4 x i8*>, <4 x i8*>* %9, align 16 |
| 588 ; CHECK-NEXT: store <4 x i8*> %11, <4 x i8*>* %0, align 16 |
| 589 ; CHECK-NEXT: store <4 x i8*> %12, <4 x i8*>* %1, align 16 |
| 590 ; CHECK-NEXT: store <4 x i8*> %13, <4 x i8*>* %2, align 16 |
| 591 ; CHECK-NEXT: ret <4 x i8*> %10 |
| 592 ; CHECK-NEXT: } |
| 593 |
| 594 define <16 x float> @fn_40_16xfloat(<16 x float>) { |
| 595 entry: |
| 596 %1 = call <16 x float> @fn_40_16xfloat(<16 x float> %0) |
| 597 ret <16 x float> %1 |
| 598 } |
| 599 ; CHECK-LABEL: define <4 x float> @fn_40_16xfloat(<4 x float>* nocapture nonnull
dereferenceable(16), <4 x float>* nocapture nonnull dereferenceable(16), <4 x f
loat>* nocapture nonnull dereferenceable(16), <4 x float>, <4 x float>, <4 x flo
at>, <4 x float>) { |
| 600 ; CHECK: entry: |
| 601 ; CHECK-NEXT: %7 = alloca <4 x float>, align 16 |
| 602 ; CHECK-NEXT: %8 = alloca <4 x float>, align 16 |
| 603 ; CHECK-NEXT: %9 = alloca <4 x float>, align 16 |
| 604 ; CHECK-NEXT: %10 = call <4 x float> @fn_40_16xfloat(<4 x float>* nocapture n
onnull dereferenceable(16) %7, <4 x float>* nocapture nonnull dereferenceable(16
) %8, <4 x float>* nocapture nonnull dereferenceable(16) %9, <4 x float> %3, <4
x float> %4, <4 x float> %5, <4 x float> %6) |
| 605 ; CHECK-NEXT: %11 = load <4 x float>, <4 x float>* %7, align 16 |
| 606 ; CHECK-NEXT: %12 = load <4 x float>, <4 x float>* %8, align 16 |
| 607 ; CHECK-NEXT: %13 = load <4 x float>, <4 x float>* %9, align 16 |
| 608 ; CHECK-NEXT: store <4 x float> %11, <4 x float>* %0, align 16 |
| 609 ; CHECK-NEXT: store <4 x float> %12, <4 x float>* %1, align 16 |
| 610 ; CHECK-NEXT: store <4 x float> %13, <4 x float>* %2, align 16 |
| 611 ; CHECK-NEXT: ret <4 x float> %10 |
| 612 ; CHECK-NEXT: } |
| 613 |
| 614 define <16 x double> @fn_41_16xdouble(<16 x double>) { |
| 615 entry: |
| 616 %1 = call <16 x double> @fn_41_16xdouble(<16 x double> %0) |
| 617 ret <16 x double> %1 |
| 618 } |
| 619 ; CHECK-LABEL: define <2 x double> @fn_41_16xdouble(<2 x double>* nocapture nonn
ull dereferenceable(16), <2 x double>* nocapture nonnull dereferenceable(16), <2
x double>* nocapture nonnull dereferenceable(16), <2 x double>* nocapture nonnu
ll dereferenceable(16), <2 x double>* nocapture nonnull dereferenceable(16), <2
x double>* nocapture nonnull dereferenceable(16), <2 x double>* nocapture nonnul
l dereferenceable(16), <2 x double>, <2 x double>, <2 x double>, <2 x double>, <
2 x double>, <2 x double>, <2 x double>, <2 x double>) { |
| 620 ; CHECK: entry: |
| 621 ; CHECK-NEXT: %15 = alloca <2 x double>, align 16 |
| 622 ; CHECK-NEXT: %16 = alloca <2 x double>, align 16 |
| 623 ; CHECK-NEXT: %17 = alloca <2 x double>, align 16 |
| 624 ; CHECK-NEXT: %18 = alloca <2 x double>, align 16 |
| 625 ; CHECK-NEXT: %19 = alloca <2 x double>, align 16 |
| 626 ; CHECK-NEXT: %20 = alloca <2 x double>, align 16 |
| 627 ; CHECK-NEXT: %21 = alloca <2 x double>, align 16 |
| 628 ; CHECK-NEXT: %22 = call <2 x double> @fn_41_16xdouble(<2 x double>* nocaptur
e nonnull dereferenceable(16) %15, <2 x double>* nocapture nonnull dereferenceab
le(16) %16, <2 x double>* nocapture nonnull dereferenceable(16) %17, <2 x double
>* nocapture nonnull dereferenceable(16) %18, <2 x double>* nocapture nonnull de
referenceable(16) %19, <2 x double>* nocapture nonnull dereferenceable(16) %20,
<2 x double>* nocapture nonnull dereferenceable(16) %21, <2 x double> %7, <2 x d
ouble> %8, <2 x double> %9, <2 x double> %10, <2 x double> %11, <2 x double> %12
, <2 x double> %13, <2 x double> %14) |
| 629 ; CHECK-NEXT: %23 = load <2 x double>, <2 x double>* %15, align 16 |
| 630 ; CHECK-NEXT: %24 = load <2 x double>, <2 x double>* %16, align 16 |
| 631 ; CHECK-NEXT: %25 = load <2 x double>, <2 x double>* %17, align 16 |
| 632 ; CHECK-NEXT: %26 = load <2 x double>, <2 x double>* %18, align 16 |
| 633 ; CHECK-NEXT: %27 = load <2 x double>, <2 x double>* %19, align 16 |
| 634 ; CHECK-NEXT: %28 = load <2 x double>, <2 x double>* %20, align 16 |
| 635 ; CHECK-NEXT: %29 = load <2 x double>, <2 x double>* %21, align 16 |
| 636 ; CHECK-NEXT: store <2 x double> %23, <2 x double>* %0, align 16 |
| 637 ; CHECK-NEXT: store <2 x double> %24, <2 x double>* %1, align 16 |
| 638 ; CHECK-NEXT: store <2 x double> %25, <2 x double>* %2, align 16 |
| 639 ; CHECK-NEXT: store <2 x double> %26, <2 x double>* %3, align 16 |
| 640 ; CHECK-NEXT: store <2 x double> %27, <2 x double>* %4, align 16 |
| 641 ; CHECK-NEXT: store <2 x double> %28, <2 x double>* %5, align 16 |
| 642 ; CHECK-NEXT: store <2 x double> %29, <2 x double>* %6, align 16 |
| 643 ; CHECK-NEXT: ret <2 x double> %22 |
| 644 ; CHECK-NEXT: } |
| 645 |
| 646 define <20 x i8> @fn_42_20xi8(<20 x i8>) { |
| 647 entry: |
| 648 %1 = call <20 x i8> @fn_42_20xi8(<20 x i8> %0) |
| 649 ret <20 x i8> %1 |
| 650 } |
| 651 ; CHECK-LABEL: define <16 x i8> @fn_42_20xi8(<16 x i8>* nocapture nonnull derefe
renceable(16), <16 x i8>, <16 x i8>) { |
| 652 ; CHECK: entry: |
| 653 ; CHECK-NEXT: %3 = alloca <16 x i8>, align 16 |
| 654 ; CHECK-NEXT: %4 = call <16 x i8> @fn_42_20xi8(<16 x i8>* nocapture nonnull d
ereferenceable(16) %3, <16 x i8> %1, <16 x i8> %2) |
| 655 ; CHECK-NEXT: %5 = load <16 x i8>, <16 x i8>* %3, align 16 |
| 656 ; CHECK-NEXT: store <16 x i8> %5, <16 x i8>* %0, align 16 |
| 657 ; CHECK-NEXT: ret <16 x i8> %4 |
| 658 ; CHECK-NEXT: } |
| 659 |
| 660 define <20 x i16> @fn_43_20xi16(<20 x i16>) { |
| 661 entry: |
| 662 %1 = call <20 x i16> @fn_43_20xi16(<20 x i16> %0) |
| 663 ret <20 x i16> %1 |
| 664 } |
| 665 ; CHECK-LABEL: define <8 x i16> @fn_43_20xi16(<8 x i16>* nocapture nonnull deref
erenceable(16), <8 x i16>* nocapture nonnull dereferenceable(16), <8 x i16>, <8
x i16>, <8 x i16>) { |
| 666 ; CHECK: entry: |
| 667 ; CHECK-NEXT: %5 = alloca <8 x i16>, align 16 |
| 668 ; CHECK-NEXT: %6 = alloca <8 x i16>, align 16 |
| 669 ; CHECK-NEXT: %7 = call <8 x i16> @fn_43_20xi16(<8 x i16>* nocapture nonnull
dereferenceable(16) %5, <8 x i16>* nocapture nonnull dereferenceable(16) %6, <8
x i16> %2, <8 x i16> %3, <8 x i16> %4) |
| 670 ; CHECK-NEXT: %8 = load <8 x i16>, <8 x i16>* %5, align 16 |
| 671 ; CHECK-NEXT: %9 = load <8 x i16>, <8 x i16>* %6, align 16 |
| 672 ; CHECK-NEXT: store <8 x i16> %8, <8 x i16>* %0, align 16 |
| 673 ; CHECK-NEXT: store <8 x i16> %9, <8 x i16>* %1, align 16 |
| 674 ; CHECK-NEXT: ret <8 x i16> %7 |
| 675 ; CHECK-NEXT: } |
| 676 |
| 677 define <20 x i32> @fn_44_20xi32(<20 x i32>) { |
| 678 entry: |
| 679 %1 = call <20 x i32> @fn_44_20xi32(<20 x i32> %0) |
| 680 ret <20 x i32> %1 |
| 681 } |
| 682 ; CHECK-LABEL: define <4 x i32> @fn_44_20xi32(<4 x i32>* nocapture nonnull deref
erenceable(16), <4 x i32>* nocapture nonnull dereferenceable(16), <4 x i32>* noc
apture nonnull dereferenceable(16), <4 x i32>* nocapture nonnull dereferenceable
(16), <4 x i32>, <4 x i32>, <4 x i32>, <4 x i32>, <4 x i32>) { |
| 683 ; CHECK: entry: |
| 684 ; CHECK-NEXT: %9 = alloca <4 x i32>, align 16 |
| 685 ; CHECK-NEXT: %10 = alloca <4 x i32>, align 16 |
| 686 ; CHECK-NEXT: %11 = alloca <4 x i32>, align 16 |
| 687 ; CHECK-NEXT: %12 = alloca <4 x i32>, align 16 |
| 688 ; CHECK-NEXT: %13 = call <4 x i32> @fn_44_20xi32(<4 x i32>* nocapture nonnull
dereferenceable(16) %9, <4 x i32>* nocapture nonnull dereferenceable(16) %10, <
4 x i32>* nocapture nonnull dereferenceable(16) %11, <4 x i32>* nocapture nonnul
l dereferenceable(16) %12, <4 x i32> %4, <4 x i32> %5, <4 x i32> %6, <4 x i32> %
7, <4 x i32> %8) |
| 689 ; CHECK-NEXT: %14 = load <4 x i32>, <4 x i32>* %9, align 16 |
| 690 ; CHECK-NEXT: %15 = load <4 x i32>, <4 x i32>* %10, align 16 |
| 691 ; CHECK-NEXT: %16 = load <4 x i32>, <4 x i32>* %11, align 16 |
| 692 ; CHECK-NEXT: %17 = load <4 x i32>, <4 x i32>* %12, align 16 |
| 693 ; CHECK-NEXT: store <4 x i32> %14, <4 x i32>* %0, align 16 |
| 694 ; CHECK-NEXT: store <4 x i32> %15, <4 x i32>* %1, align 16 |
| 695 ; CHECK-NEXT: store <4 x i32> %16, <4 x i32>* %2, align 16 |
| 696 ; CHECK-NEXT: store <4 x i32> %17, <4 x i32>* %3, align 16 |
| 697 ; CHECK-NEXT: ret <4 x i32> %13 |
| 698 ; CHECK-NEXT: } |
| 699 |
| 700 define <20 x i64> @fn_45_20xi64(<20 x i64>) { |
| 701 entry: |
| 702 %1 = call <20 x i64> @fn_45_20xi64(<20 x i64> %0) |
| 703 ret <20 x i64> %1 |
| 704 } |
| 705 ; CHECK-LABEL: define <2 x i64> @fn_45_20xi64(<2 x i64>* nocapture nonnull deref
erenceable(16), <2 x i64>* nocapture nonnull dereferenceable(16), <2 x i64>* noc
apture nonnull dereferenceable(16), <2 x i64>* nocapture nonnull dereferenceable
(16), <2 x i64>* nocapture nonnull dereferenceable(16), <2 x i64>* nocapture non
null dereferenceable(16), <2 x i64>* nocapture nonnull dereferenceable(16), <2 x
i64>* nocapture nonnull dereferenceable(16), <2 x i64>* nocapture nonnull deref
erenceable(16), <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>
, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>) { |
| 706 ; CHECK: entry: |
| 707 ; CHECK-NEXT: %19 = alloca <2 x i64>, align 16 |
| 708 ; CHECK-NEXT: %20 = alloca <2 x i64>, align 16 |
| 709 ; CHECK-NEXT: %21 = alloca <2 x i64>, align 16 |
| 710 ; CHECK-NEXT: %22 = alloca <2 x i64>, align 16 |
| 711 ; CHECK-NEXT: %23 = alloca <2 x i64>, align 16 |
| 712 ; CHECK-NEXT: %24 = alloca <2 x i64>, align 16 |
| 713 ; CHECK-NEXT: %25 = alloca <2 x i64>, align 16 |
| 714 ; CHECK-NEXT: %26 = alloca <2 x i64>, align 16 |
| 715 ; CHECK-NEXT: %27 = alloca <2 x i64>, align 16 |
| 716 ; CHECK-NEXT: %28 = call <2 x i64> @fn_45_20xi64(<2 x i64>* nocapture nonnull
dereferenceable(16) %19, <2 x i64>* nocapture nonnull dereferenceable(16) %20,
<2 x i64>* nocapture nonnull dereferenceable(16) %21, <2 x i64>* nocapture nonnu
ll dereferenceable(16) %22, <2 x i64>* nocapture nonnull dereferenceable(16) %23
, <2 x i64>* nocapture nonnull dereferenceable(16) %24, <2 x i64>* nocapture non
null dereferenceable(16) %25, <2 x i64>* nocapture nonnull dereferenceable(16) %
26, <2 x i64>* nocapture nonnull dereferenceable(16) %27, <2 x i64> %9, <2 x i64
> %10, <2 x i64> %11, <2 x i64> %12, <2 x i64> %13, <2 x i64> %14, <2 x i64> %15
, <2 x i64> %16, <2 x i64> %17, <2 x i64> %18) |
| 717 ; CHECK-NEXT: %29 = load <2 x i64>, <2 x i64>* %19, align 16 |
| 718 ; CHECK-NEXT: %30 = load <2 x i64>, <2 x i64>* %20, align 16 |
| 719 ; CHECK-NEXT: %31 = load <2 x i64>, <2 x i64>* %21, align 16 |
| 720 ; CHECK-NEXT: %32 = load <2 x i64>, <2 x i64>* %22, align 16 |
| 721 ; CHECK-NEXT: %33 = load <2 x i64>, <2 x i64>* %23, align 16 |
| 722 ; CHECK-NEXT: %34 = load <2 x i64>, <2 x i64>* %24, align 16 |
| 723 ; CHECK-NEXT: %35 = load <2 x i64>, <2 x i64>* %25, align 16 |
| 724 ; CHECK-NEXT: %36 = load <2 x i64>, <2 x i64>* %26, align 16 |
| 725 ; CHECK-NEXT: %37 = load <2 x i64>, <2 x i64>* %27, align 16 |
| 726 ; CHECK-NEXT: store <2 x i64> %29, <2 x i64>* %0, align 16 |
| 727 ; CHECK-NEXT: store <2 x i64> %30, <2 x i64>* %1, align 16 |
| 728 ; CHECK-NEXT: store <2 x i64> %31, <2 x i64>* %2, align 16 |
| 729 ; CHECK-NEXT: store <2 x i64> %32, <2 x i64>* %3, align 16 |
| 730 ; CHECK-NEXT: store <2 x i64> %33, <2 x i64>* %4, align 16 |
| 731 ; CHECK-NEXT: store <2 x i64> %34, <2 x i64>* %5, align 16 |
| 732 ; CHECK-NEXT: store <2 x i64> %35, <2 x i64>* %6, align 16 |
| 733 ; CHECK-NEXT: store <2 x i64> %36, <2 x i64>* %7, align 16 |
| 734 ; CHECK-NEXT: store <2 x i64> %37, <2 x i64>* %8, align 16 |
| 735 ; CHECK-NEXT: ret <2 x i64> %28 |
| 736 ; CHECK-NEXT: } |
| 737 |
| 738 define <20 x i8*> @fn_46_20xi8ptr(<20 x i8*>) { |
| 739 entry: |
| 740 %1 = call <20 x i8*> @fn_46_20xi8ptr(<20 x i8*> %0) |
| 741 ret <20 x i8*> %1 |
| 742 } |
| 743 ; CHECK-LABEL: define <4 x i8*> @fn_46_20xi8ptr(<4 x i8*>* nocapture nonnull der
eferenceable(16), <4 x i8*>* nocapture nonnull dereferenceable(16), <4 x i8*>* n
ocapture nonnull dereferenceable(16), <4 x i8*>* nocapture nonnull dereferenceab
le(16), <4 x i8*>, <4 x i8*>, <4 x i8*>, <4 x i8*>, <4 x i8*>) { |
| 744 ; CHECK: entry: |
| 745 ; CHECK-NEXT: %9 = alloca <4 x i8*>, align 16 |
| 746 ; CHECK-NEXT: %10 = alloca <4 x i8*>, align 16 |
| 747 ; CHECK-NEXT: %11 = alloca <4 x i8*>, align 16 |
| 748 ; CHECK-NEXT: %12 = alloca <4 x i8*>, align 16 |
| 749 ; CHECK-NEXT: %13 = call <4 x i8*> @fn_46_20xi8ptr(<4 x i8*>* nocapture nonnu
ll dereferenceable(16) %9, <4 x i8*>* nocapture nonnull dereferenceable(16) %10,
<4 x i8*>* nocapture nonnull dereferenceable(16) %11, <4 x i8*>* nocapture nonn
ull dereferenceable(16) %12, <4 x i8*> %4, <4 x i8*> %5, <4 x i8*> %6, <4 x i8*>
%7, <4 x i8*> %8) |
| 750 ; CHECK-NEXT: %14 = load <4 x i8*>, <4 x i8*>* %9, align 16 |
| 751 ; CHECK-NEXT: %15 = load <4 x i8*>, <4 x i8*>* %10, align 16 |
| 752 ; CHECK-NEXT: %16 = load <4 x i8*>, <4 x i8*>* %11, align 16 |
| 753 ; CHECK-NEXT: %17 = load <4 x i8*>, <4 x i8*>* %12, align 16 |
| 754 ; CHECK-NEXT: store <4 x i8*> %14, <4 x i8*>* %0, align 16 |
| 755 ; CHECK-NEXT: store <4 x i8*> %15, <4 x i8*>* %1, align 16 |
| 756 ; CHECK-NEXT: store <4 x i8*> %16, <4 x i8*>* %2, align 16 |
| 757 ; CHECK-NEXT: store <4 x i8*> %17, <4 x i8*>* %3, align 16 |
| 758 ; CHECK-NEXT: ret <4 x i8*> %13 |
| 759 ; CHECK-NEXT: } |
| 760 |
| 761 define <20 x float> @fn_47_20xfloat(<20 x float>) { |
| 762 entry: |
| 763 %1 = call <20 x float> @fn_47_20xfloat(<20 x float> %0) |
| 764 ret <20 x float> %1 |
| 765 } |
| 766 ; CHECK-LABEL: define <4 x float> @fn_47_20xfloat(<4 x float>* nocapture nonnull
dereferenceable(16), <4 x float>* nocapture nonnull dereferenceable(16), <4 x f
loat>* nocapture nonnull dereferenceable(16), <4 x float>* nocapture nonnull der
eferenceable(16), <4 x float>, <4 x float>, <4 x float>, <4 x float>, <4 x float
>) { |
| 767 ; CHECK: entry: |
| 768 ; CHECK-NEXT: %9 = alloca <4 x float>, align 16 |
| 769 ; CHECK-NEXT: %10 = alloca <4 x float>, align 16 |
| 770 ; CHECK-NEXT: %11 = alloca <4 x float>, align 16 |
| 771 ; CHECK-NEXT: %12 = alloca <4 x float>, align 16 |
| 772 ; CHECK-NEXT: %13 = call <4 x float> @fn_47_20xfloat(<4 x float>* nocapture n
onnull dereferenceable(16) %9, <4 x float>* nocapture nonnull dereferenceable(16
) %10, <4 x float>* nocapture nonnull dereferenceable(16) %11, <4 x float>* noca
pture nonnull dereferenceable(16) %12, <4 x float> %4, <4 x float> %5, <4 x floa
t> %6, <4 x float> %7, <4 x float> %8) |
| 773 ; CHECK-NEXT: %14 = load <4 x float>, <4 x float>* %9, align 16 |
| 774 ; CHECK-NEXT: %15 = load <4 x float>, <4 x float>* %10, align 16 |
| 775 ; CHECK-NEXT: %16 = load <4 x float>, <4 x float>* %11, align 16 |
| 776 ; CHECK-NEXT: %17 = load <4 x float>, <4 x float>* %12, align 16 |
| 777 ; CHECK-NEXT: store <4 x float> %14, <4 x float>* %0, align 16 |
| 778 ; CHECK-NEXT: store <4 x float> %15, <4 x float>* %1, align 16 |
| 779 ; CHECK-NEXT: store <4 x float> %16, <4 x float>* %2, align 16 |
| 780 ; CHECK-NEXT: store <4 x float> %17, <4 x float>* %3, align 16 |
| 781 ; CHECK-NEXT: ret <4 x float> %13 |
| 782 ; CHECK-NEXT: } |
| 783 |
| 784 define <20 x double> @fn_48_20xdouble(<20 x double>) { |
| 785 entry: |
| 786 %1 = call <20 x double> @fn_48_20xdouble(<20 x double> %0) |
| 787 ret <20 x double> %1 |
| 788 } |
| 789 ; CHECK-LABEL: define <2 x double> @fn_48_20xdouble(<2 x double>* nocapture nonn
ull dereferenceable(16), <2 x double>* nocapture nonnull dereferenceable(16), <2
x double>* nocapture nonnull dereferenceable(16), <2 x double>* nocapture nonnu
ll dereferenceable(16), <2 x double>* nocapture nonnull dereferenceable(16), <2
x double>* nocapture nonnull dereferenceable(16), <2 x double>* nocapture nonnul
l dereferenceable(16), <2 x double>* nocapture nonnull dereferenceable(16), <2 x
double>* nocapture nonnull dereferenceable(16), <2 x double>, <2 x double>, <2
x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>,
<2 x double>, <2 x double>) { |
| 790 ; CHECK: entry: |
| 791 ; CHECK-NEXT: %19 = alloca <2 x double>, align 16 |
| 792 ; CHECK-NEXT: %20 = alloca <2 x double>, align 16 |
| 793 ; CHECK-NEXT: %21 = alloca <2 x double>, align 16 |
| 794 ; CHECK-NEXT: %22 = alloca <2 x double>, align 16 |
| 795 ; CHECK-NEXT: %23 = alloca <2 x double>, align 16 |
| 796 ; CHECK-NEXT: %24 = alloca <2 x double>, align 16 |
| 797 ; CHECK-NEXT: %25 = alloca <2 x double>, align 16 |
| 798 ; CHECK-NEXT: %26 = alloca <2 x double>, align 16 |
| 799 ; CHECK-NEXT: %27 = alloca <2 x double>, align 16 |
| 800 ; CHECK-NEXT: %28 = call <2 x double> @fn_48_20xdouble(<2 x double>* nocaptur
e nonnull dereferenceable(16) %19, <2 x double>* nocapture nonnull dereferenceab
le(16) %20, <2 x double>* nocapture nonnull dereferenceable(16) %21, <2 x double
>* nocapture nonnull dereferenceable(16) %22, <2 x double>* nocapture nonnull de
referenceable(16) %23, <2 x double>* nocapture nonnull dereferenceable(16) %24,
<2 x double>* nocapture nonnull dereferenceable(16) %25, <2 x double>* nocapture
nonnull dereferenceable(16) %26, <2 x double>* nocapture nonnull dereferenceabl
e(16) %27, <2 x double> %9, <2 x double> %10, <2 x double> %11, <2 x double> %12
, <2 x double> %13, <2 x double> %14, <2 x double> %15, <2 x double> %16, <2 x d
ouble> %17, <2 x double> %18) |
| 801 ; CHECK-NEXT: %29 = load <2 x double>, <2 x double>* %19, align 16 |
| 802 ; CHECK-NEXT: %30 = load <2 x double>, <2 x double>* %20, align 16 |
| 803 ; CHECK-NEXT: %31 = load <2 x double>, <2 x double>* %21, align 16 |
| 804 ; CHECK-NEXT: %32 = load <2 x double>, <2 x double>* %22, align 16 |
| 805 ; CHECK-NEXT: %33 = load <2 x double>, <2 x double>* %23, align 16 |
| 806 ; CHECK-NEXT: %34 = load <2 x double>, <2 x double>* %24, align 16 |
| 807 ; CHECK-NEXT: %35 = load <2 x double>, <2 x double>* %25, align 16 |
| 808 ; CHECK-NEXT: %36 = load <2 x double>, <2 x double>* %26, align 16 |
| 809 ; CHECK-NEXT: %37 = load <2 x double>, <2 x double>* %27, align 16 |
| 810 ; CHECK-NEXT: store <2 x double> %29, <2 x double>* %0, align 16 |
| 811 ; CHECK-NEXT: store <2 x double> %30, <2 x double>* %1, align 16 |
| 812 ; CHECK-NEXT: store <2 x double> %31, <2 x double>* %2, align 16 |
| 813 ; CHECK-NEXT: store <2 x double> %32, <2 x double>* %3, align 16 |
| 814 ; CHECK-NEXT: store <2 x double> %33, <2 x double>* %4, align 16 |
| 815 ; CHECK-NEXT: store <2 x double> %34, <2 x double>* %5, align 16 |
| 816 ; CHECK-NEXT: store <2 x double> %35, <2 x double>* %6, align 16 |
| 817 ; CHECK-NEXT: store <2 x double> %36, <2 x double>* %7, align 16 |
| 818 ; CHECK-NEXT: store <2 x double> %37, <2 x double>* %8, align 16 |
| 819 ; CHECK-NEXT: ret <2 x double> %28 |
| 820 ; CHECK-NEXT: } |
| 821 |
| 822 define <2 x i8> @fn_49_2xi8_call_arg(<2 x i8> (<2 x i8>)*, <2 x i8>) { |
| 823 entry: |
| 824 %2 = call <2 x i8> %0(<2 x i8> %1) |
| 825 %3 = call <2 x i8> @fn_49_2xi8_call_arg(<2 x i8> (<2 x i8>)* @fn_0_2xi8, <2 x
i8> %2) |
| 826 ret <2 x i8> %3 |
| 827 } |
| 828 ; CHECK-LABEL: define <16 x i8> @fn_49_2xi8_call_arg(<2 x i8> (<2 x i8>)*, <16 x
i8>) { |
| 829 ; CHECK: entry: |
| 830 ; CHECK-NEXT: %2 = bitcast <2 x i8> (<2 x i8>)* %0 to <16 x i8> (<16 x i8>)* |
| 831 ; CHECK-NEXT: %3 = call <16 x i8> %2(<16 x i8> %1) |
| 832 ; CHECK-NEXT: %4 = call <16 x i8> @fn_49_2xi8_call_arg(<2 x i8> (<2 x i8>)* b
itcast (<16 x i8> (<16 x i8>)* @fn_0_2xi8 to <2 x i8> (<2 x i8>)*), <16 x i8> %3
) |
| 833 ; CHECK-NEXT: ret <16 x i8> %4 |
| 834 ; CHECK-NEXT: } |
| 835 |
| 836 define <2 x i16> @fn_50_2xi16_call_arg(<2 x i16> (<2 x i16>)*, <2 x i16>) { |
| 837 entry: |
| 838 %2 = call <2 x i16> %0(<2 x i16> %1) |
| 839 %3 = call <2 x i16> @fn_50_2xi16_call_arg(<2 x i16> (<2 x i16>)* @fn_1_2xi16,
<2 x i16> %2) |
| 840 ret <2 x i16> %3 |
| 841 } |
| 842 ; CHECK-LABEL: define <8 x i16> @fn_50_2xi16_call_arg(<2 x i16> (<2 x i16>)*, <8
x i16>) { |
| 843 ; CHECK: entry: |
| 844 ; CHECK-NEXT: %2 = bitcast <2 x i16> (<2 x i16>)* %0 to <8 x i16> (<8 x i16>)
* |
| 845 ; CHECK-NEXT: %3 = call <8 x i16> %2(<8 x i16> %1) |
| 846 ; CHECK-NEXT: %4 = call <8 x i16> @fn_50_2xi16_call_arg(<2 x i16> (<2 x i16>)
* bitcast (<8 x i16> (<8 x i16>)* @fn_1_2xi16 to <2 x i16> (<2 x i16>)*), <8 x i
16> %3) |
| 847 ; CHECK-NEXT: ret <8 x i16> %4 |
| 848 ; CHECK-NEXT: } |
| 849 |
| 850 define <2 x i32> @fn_51_2xi32_call_arg(<2 x i32> (<2 x i32>)*, <2 x i32>) { |
| 851 entry: |
| 852 %2 = call <2 x i32> %0(<2 x i32> %1) |
| 853 %3 = call <2 x i32> @fn_51_2xi32_call_arg(<2 x i32> (<2 x i32>)* @fn_2_2xi32,
<2 x i32> %2) |
| 854 ret <2 x i32> %3 |
| 855 } |
| 856 ; CHECK-LABEL: define <4 x i32> @fn_51_2xi32_call_arg(<2 x i32> (<2 x i32>)*, <4
x i32>) { |
| 857 ; CHECK: entry: |
| 858 ; CHECK-NEXT: %2 = bitcast <2 x i32> (<2 x i32>)* %0 to <4 x i32> (<4 x i32>)
* |
| 859 ; CHECK-NEXT: %3 = call <4 x i32> %2(<4 x i32> %1) |
| 860 ; CHECK-NEXT: %4 = call <4 x i32> @fn_51_2xi32_call_arg(<2 x i32> (<2 x i32>)
* bitcast (<4 x i32> (<4 x i32>)* @fn_2_2xi32 to <2 x i32> (<2 x i32>)*), <4 x i
32> %3) |
| 861 ; CHECK-NEXT: ret <4 x i32> %4 |
| 862 ; CHECK-NEXT: } |
| 863 |
| 864 define <2 x i64> @fn_52_2xi64_call_arg(<2 x i64> (<2 x i64>)*, <2 x i64>) { |
| 865 entry: |
| 866 %2 = call <2 x i64> %0(<2 x i64> %1) |
| 867 %3 = call <2 x i64> @fn_52_2xi64_call_arg(<2 x i64> (<2 x i64>)* @fn_3_2xi64,
<2 x i64> %2) |
| 868 ret <2 x i64> %3 |
| 869 } |
| 870 ; CHECK-LABEL: define <2 x i64> @fn_52_2xi64_call_arg(<2 x i64> (<2 x i64>)*, <2
x i64>) { |
| 871 ; CHECK: entry: |
| 872 ; CHECK-NEXT: %2 = call <2 x i64> %0(<2 x i64> %1) |
| 873 ; CHECK-NEXT: %3 = call <2 x i64> @fn_52_2xi64_call_arg(<2 x i64> (<2 x i64>)
* @fn_3_2xi64, <2 x i64> %2) |
| 874 ; CHECK-NEXT: ret <2 x i64> %3 |
| 875 ; CHECK-NEXT: } |
| 876 |
| 877 define <2 x i8*> @fn_53_2xi8ptr_call_arg(<2 x i8*> (<2 x i8*>)*, <2 x i8*>) { |
| 878 entry: |
| 879 %2 = call <2 x i8*> %0(<2 x i8*> %1) |
| 880 %3 = call <2 x i8*> @fn_53_2xi8ptr_call_arg(<2 x i8*> (<2 x i8*>)* @fn_4_2xi8p
tr, <2 x i8*> %2) |
| 881 ret <2 x i8*> %3 |
| 882 } |
| 883 ; CHECK-LABEL: define <4 x i8*> @fn_53_2xi8ptr_call_arg(<2 x i8*> (<2 x i8*>)*,
<4 x i8*>) { |
| 884 ; CHECK: entry: |
| 885 ; CHECK-NEXT: %2 = bitcast <2 x i8*> (<2 x i8*>)* %0 to <4 x i8*> (<4 x i8*>)
* |
| 886 ; CHECK-NEXT: %3 = call <4 x i8*> %2(<4 x i8*> %1) |
| 887 ; CHECK-NEXT: %4 = call <4 x i8*> @fn_53_2xi8ptr_call_arg(<2 x i8*> (<2 x i8*
>)* bitcast (<4 x i8*> (<4 x i8*>)* @fn_4_2xi8ptr to <2 x i8*> (<2 x i8*>)*), <4
x i8*> %3) |
| 888 ; CHECK-NEXT: ret <4 x i8*> %4 |
| 889 ; CHECK-NEXT: } |
| 890 |
| 891 define <2 x float> @fn_54_2xfloat_call_arg(<2 x float> (<2 x float>)*, <2 x floa
t>) { |
| 892 entry: |
| 893 %2 = call <2 x float> %0(<2 x float> %1) |
| 894 %3 = call <2 x float> @fn_54_2xfloat_call_arg(<2 x float> (<2 x float>)* @fn_5
_2xfloat, <2 x float> %2) |
| 895 ret <2 x float> %3 |
| 896 } |
| 897 ; CHECK-LABEL: define <4 x float> @fn_54_2xfloat_call_arg(<2 x float> (<2 x floa
t>)*, <4 x float>) { |
| 898 ; CHECK: entry: |
| 899 ; CHECK-NEXT: %2 = bitcast <2 x float> (<2 x float>)* %0 to <4 x float> (<4 x
float>)* |
| 900 ; CHECK-NEXT: %3 = call <4 x float> %2(<4 x float> %1) |
| 901 ; CHECK-NEXT: %4 = call <4 x float> @fn_54_2xfloat_call_arg(<2 x float> (<2 x
float>)* bitcast (<4 x float> (<4 x float>)* @fn_5_2xfloat to <2 x float> (<2 x
float>)*), <4 x float> %3) |
| 902 ; CHECK-NEXT: ret <4 x float> %4 |
| 903 ; CHECK-NEXT: } |
| 904 |
| 905 define <2 x double> @fn_55_2xdouble_call_arg(<2 x double> (<2 x double>)*, <2 x
double>) { |
| 906 entry: |
| 907 %2 = call <2 x double> %0(<2 x double> %1) |
| 908 %3 = call <2 x double> @fn_55_2xdouble_call_arg(<2 x double> (<2 x double>)* @
fn_6_2xdouble, <2 x double> %2) |
| 909 ret <2 x double> %3 |
| 910 } |
| 911 ; CHECK-LABEL: define <2 x double> @fn_55_2xdouble_call_arg(<2 x double> (<2 x d
ouble>)*, <2 x double>) { |
| 912 ; CHECK: entry: |
| 913 ; CHECK-NEXT: %2 = call <2 x double> %0(<2 x double> %1) |
| 914 ; CHECK-NEXT: %3 = call <2 x double> @fn_55_2xdouble_call_arg(<2 x double> (<
2 x double>)* @fn_6_2xdouble, <2 x double> %2) |
| 915 ; CHECK-NEXT: ret <2 x double> %3 |
| 916 ; CHECK-NEXT: } |
| 917 |
| 918 define <4 x i8> @fn_56_4xi8_call_arg(<4 x i8> (<4 x i8>)*, <4 x i8>) { |
| 919 entry: |
| 920 %2 = call <4 x i8> %0(<4 x i8> %1) |
| 921 %3 = call <4 x i8> @fn_56_4xi8_call_arg(<4 x i8> (<4 x i8>)* @fn_7_4xi8, <4 x
i8> %2) |
| 922 ret <4 x i8> %3 |
| 923 } |
| 924 ; CHECK-LABEL: define <16 x i8> @fn_56_4xi8_call_arg(<4 x i8> (<4 x i8>)*, <16 x
i8>) { |
| 925 ; CHECK: entry: |
| 926 ; CHECK-NEXT: %2 = bitcast <4 x i8> (<4 x i8>)* %0 to <16 x i8> (<16 x i8>)* |
| 927 ; CHECK-NEXT: %3 = call <16 x i8> %2(<16 x i8> %1) |
| 928 ; CHECK-NEXT: %4 = call <16 x i8> @fn_56_4xi8_call_arg(<4 x i8> (<4 x i8>)* b
itcast (<16 x i8> (<16 x i8>)* @fn_7_4xi8 to <4 x i8> (<4 x i8>)*), <16 x i8> %3
) |
| 929 ; CHECK-NEXT: ret <16 x i8> %4 |
| 930 ; CHECK-NEXT: } |
| 931 |
| 932 define <4 x i16> @fn_57_4xi16_call_arg(<4 x i16> (<4 x i16>)*, <4 x i16>) { |
| 933 entry: |
| 934 %2 = call <4 x i16> %0(<4 x i16> %1) |
| 935 %3 = call <4 x i16> @fn_57_4xi16_call_arg(<4 x i16> (<4 x i16>)* @fn_8_4xi16,
<4 x i16> %2) |
| 936 ret <4 x i16> %3 |
| 937 } |
| 938 ; CHECK-LABEL: define <8 x i16> @fn_57_4xi16_call_arg(<4 x i16> (<4 x i16>)*, <8
x i16>) { |
| 939 ; CHECK: entry: |
| 940 ; CHECK-NEXT: %2 = bitcast <4 x i16> (<4 x i16>)* %0 to <8 x i16> (<8 x i16>)
* |
| 941 ; CHECK-NEXT: %3 = call <8 x i16> %2(<8 x i16> %1) |
| 942 ; CHECK-NEXT: %4 = call <8 x i16> @fn_57_4xi16_call_arg(<4 x i16> (<4 x i16>)
* bitcast (<8 x i16> (<8 x i16>)* @fn_8_4xi16 to <4 x i16> (<4 x i16>)*), <8 x i
16> %3) |
| 943 ; CHECK-NEXT: ret <8 x i16> %4 |
| 944 ; CHECK-NEXT: } |
| 945 |
| 946 define <4 x i32> @fn_58_4xi32_call_arg(<4 x i32> (<4 x i32>)*, <4 x i32>) { |
| 947 entry: |
| 948 %2 = call <4 x i32> %0(<4 x i32> %1) |
| 949 %3 = call <4 x i32> @fn_58_4xi32_call_arg(<4 x i32> (<4 x i32>)* @fn_9_4xi32,
<4 x i32> %2) |
| 950 ret <4 x i32> %3 |
| 951 } |
| 952 ; CHECK-LABEL: define <4 x i32> @fn_58_4xi32_call_arg(<4 x i32> (<4 x i32>)*, <4
x i32>) { |
| 953 ; CHECK: entry: |
| 954 ; CHECK-NEXT: %2 = call <4 x i32> %0(<4 x i32> %1) |
| 955 ; CHECK-NEXT: %3 = call <4 x i32> @fn_58_4xi32_call_arg(<4 x i32> (<4 x i32>)
* @fn_9_4xi32, <4 x i32> %2) |
| 956 ; CHECK-NEXT: ret <4 x i32> %3 |
| 957 ; CHECK-NEXT: } |
| 958 |
| 959 define <4 x i64> @fn_59_4xi64_call_arg(<4 x i64> (<4 x i64>)*, <4 x i64>) { |
| 960 entry: |
| 961 %2 = call <4 x i64> %0(<4 x i64> %1) |
| 962 %3 = call <4 x i64> @fn_59_4xi64_call_arg(<4 x i64> (<4 x i64>)* @fn_10_4xi64,
<4 x i64> %2) |
| 963 ret <4 x i64> %3 |
| 964 } |
| 965 ; CHECK-LABEL: define <2 x i64> @fn_59_4xi64_call_arg(<2 x i64>* nocapture nonnu
ll dereferenceable(16), <4 x i64> (<4 x i64>)*, <2 x i64>, <2 x i64>) { |
| 966 ; CHECK: entry: |
| 967 ; CHECK-NEXT: %4 = alloca <2 x i64>, align 16 |
| 968 ; CHECK-NEXT: %5 = bitcast <4 x i64> (<4 x i64>)* %1 to <2 x i64> (<2 x i64>*
, <2 x i64>, <2 x i64>)* |
| 969 ; CHECK-NEXT: %6 = call <2 x i64> %5(<2 x i64>* nocapture nonnull dereference
able(16) %4, <2 x i64> %2, <2 x i64> %3) |
| 970 ; CHECK-NEXT: %7 = load <2 x i64>, <2 x i64>* %4, align 16 |
| 971 ; CHECK-NEXT: %8 = call <2 x i64> @fn_59_4xi64_call_arg(<2 x i64>* nocapture
nonnull dereferenceable(16) %4, <4 x i64> (<4 x i64>)* bitcast (<2 x i64> (<2 x
i64>*, <2 x i64>, <2 x i64>)* @fn_10_4xi64 to <4 x i64> (<4 x i64>)*), <2 x i64>
%6, <2 x i64> %7) |
| 972 ; CHECK-NEXT: %9 = load <2 x i64>, <2 x i64>* %4, align 16 |
| 973 ; CHECK-NEXT: store <2 x i64> %9, <2 x i64>* %0, align 16 |
| 974 ; CHECK-NEXT: ret <2 x i64> %8 |
| 975 ; CHECK-NEXT: } |
| 976 |
| 977 define <4 x i8*> @fn_60_4xi8ptr_call_arg(<4 x i8*> (<4 x i8*>)*, <4 x i8*>) { |
| 978 entry: |
| 979 %2 = call <4 x i8*> %0(<4 x i8*> %1) |
| 980 %3 = call <4 x i8*> @fn_60_4xi8ptr_call_arg(<4 x i8*> (<4 x i8*>)* @fn_11_4xi8
ptr, <4 x i8*> %2) |
| 981 ret <4 x i8*> %3 |
| 982 } |
| 983 ; CHECK-LABEL: define <4 x i8*> @fn_60_4xi8ptr_call_arg(<4 x i8*> (<4 x i8*>)*,
<4 x i8*>) { |
| 984 ; CHECK: entry: |
| 985 ; CHECK-NEXT: %2 = call <4 x i8*> %0(<4 x i8*> %1) |
| 986 ; CHECK-NEXT: %3 = call <4 x i8*> @fn_60_4xi8ptr_call_arg(<4 x i8*> (<4 x i8*
>)* @fn_11_4xi8ptr, <4 x i8*> %2) |
| 987 ; CHECK-NEXT: ret <4 x i8*> %3 |
| 988 ; CHECK-NEXT: } |
| 989 |
| 990 define <4 x float> @fn_61_4xfloat_call_arg(<4 x float> (<4 x float>)*, <4 x floa
t>) { |
| 991 entry: |
| 992 %2 = call <4 x float> %0(<4 x float> %1) |
| 993 %3 = call <4 x float> @fn_61_4xfloat_call_arg(<4 x float> (<4 x float>)* @fn_1
2_4xfloat, <4 x float> %2) |
| 994 ret <4 x float> %3 |
| 995 } |
| 996 ; CHECK-LABEL: define <4 x float> @fn_61_4xfloat_call_arg(<4 x float> (<4 x floa
t>)*, <4 x float>) { |
| 997 ; CHECK: entry: |
| 998 ; CHECK-NEXT: %2 = call <4 x float> %0(<4 x float> %1) |
| 999 ; CHECK-NEXT: %3 = call <4 x float> @fn_61_4xfloat_call_arg(<4 x float> (<4 x
float>)* @fn_12_4xfloat, <4 x float> %2) |
| 1000 ; CHECK-NEXT: ret <4 x float> %3 |
| 1001 ; CHECK-NEXT: } |
| 1002 |
| 1003 define <4 x double> @fn_62_4xdouble_call_arg(<4 x double> (<4 x double>)*, <4 x
double>) { |
| 1004 entry: |
| 1005 %2 = call <4 x double> %0(<4 x double> %1) |
| 1006 %3 = call <4 x double> @fn_62_4xdouble_call_arg(<4 x double> (<4 x double>)* @
fn_13_4xdouble, <4 x double> %2) |
| 1007 ret <4 x double> %3 |
| 1008 } |
| 1009 ; CHECK-LABEL: define <2 x double> @fn_62_4xdouble_call_arg(<2 x double>* nocapt
ure nonnull dereferenceable(16), <4 x double> (<4 x double>)*, <2 x double>, <2
x double>) { |
| 1010 ; CHECK: entry: |
| 1011 ; CHECK-NEXT: %4 = alloca <2 x double>, align 16 |
| 1012 ; CHECK-NEXT: %5 = bitcast <4 x double> (<4 x double>)* %1 to <2 x double> (<
2 x double>*, <2 x double>, <2 x double>)* |
| 1013 ; CHECK-NEXT: %6 = call <2 x double> %5(<2 x double>* nocapture nonnull deref
erenceable(16) %4, <2 x double> %2, <2 x double> %3) |
| 1014 ; CHECK-NEXT: %7 = load <2 x double>, <2 x double>* %4, align 16 |
| 1015 ; CHECK-NEXT: %8 = call <2 x double> @fn_62_4xdouble_call_arg(<2 x double>* n
ocapture nonnull dereferenceable(16) %4, <4 x double> (<4 x double>)* bitcast (<
2 x double> (<2 x double>*, <2 x double>, <2 x double>)* @fn_13_4xdouble to <4 x
double> (<4 x double>)*), <2 x double> %6, <2 x double> %7) |
| 1016 ; CHECK-NEXT: %9 = load <2 x double>, <2 x double>* %4, align 16 |
| 1017 ; CHECK-NEXT: store <2 x double> %9, <2 x double>* %0, align 16 |
| 1018 ; CHECK-NEXT: ret <2 x double> %8 |
| 1019 ; CHECK-NEXT: } |
| 1020 |
| 1021 define <6 x i8> @fn_63_6xi8_call_arg(<6 x i8> (<6 x i8>)*, <6 x i8>) { |
| 1022 entry: |
| 1023 %2 = call <6 x i8> %0(<6 x i8> %1) |
| 1024 %3 = call <6 x i8> @fn_63_6xi8_call_arg(<6 x i8> (<6 x i8>)* @fn_14_6xi8, <6 x
i8> %2) |
| 1025 ret <6 x i8> %3 |
| 1026 } |
| 1027 ; CHECK-LABEL: define <16 x i8> @fn_63_6xi8_call_arg(<6 x i8> (<6 x i8>)*, <16 x
i8>) { |
| 1028 ; CHECK: entry: |
| 1029 ; CHECK-NEXT: %2 = bitcast <6 x i8> (<6 x i8>)* %0 to <16 x i8> (<16 x i8>)* |
| 1030 ; CHECK-NEXT: %3 = call <16 x i8> %2(<16 x i8> %1) |
| 1031 ; CHECK-NEXT: %4 = call <16 x i8> @fn_63_6xi8_call_arg(<6 x i8> (<6 x i8>)* b
itcast (<16 x i8> (<16 x i8>)* @fn_14_6xi8 to <6 x i8> (<6 x i8>)*), <16 x i8> %
3) |
| 1032 ; CHECK-NEXT: ret <16 x i8> %4 |
| 1033 ; CHECK-NEXT: } |
| 1034 |
| 1035 define <6 x i16> @fn_64_6xi16_call_arg(<6 x i16> (<6 x i16>)*, <6 x i16>) { |
| 1036 entry: |
| 1037 %2 = call <6 x i16> %0(<6 x i16> %1) |
| 1038 %3 = call <6 x i16> @fn_64_6xi16_call_arg(<6 x i16> (<6 x i16>)* @fn_15_6xi16,
<6 x i16> %2) |
| 1039 ret <6 x i16> %3 |
| 1040 } |
| 1041 ; CHECK-LABEL: define <8 x i16> @fn_64_6xi16_call_arg(<6 x i16> (<6 x i16>)*, <8
x i16>) { |
| 1042 ; CHECK: entry: |
| 1043 ; CHECK-NEXT: %2 = bitcast <6 x i16> (<6 x i16>)* %0 to <8 x i16> (<8 x i16>)
* |
| 1044 ; CHECK-NEXT: %3 = call <8 x i16> %2(<8 x i16> %1) |
| 1045 ; CHECK-NEXT: %4 = call <8 x i16> @fn_64_6xi16_call_arg(<6 x i16> (<6 x i16>)
* bitcast (<8 x i16> (<8 x i16>)* @fn_15_6xi16 to <6 x i16> (<6 x i16>)*), <8 x
i16> %3) |
| 1046 ; CHECK-NEXT: ret <8 x i16> %4 |
| 1047 ; CHECK-NEXT: } |
| 1048 |
| 1049 define <6 x i32> @fn_65_6xi32_call_arg(<6 x i32> (<6 x i32>)*, <6 x i32>) { |
| 1050 entry: |
| 1051 %2 = call <6 x i32> %0(<6 x i32> %1) |
| 1052 %3 = call <6 x i32> @fn_65_6xi32_call_arg(<6 x i32> (<6 x i32>)* @fn_16_6xi32,
<6 x i32> %2) |
| 1053 ret <6 x i32> %3 |
| 1054 } |
| 1055 ; CHECK-LABEL: define <4 x i32> @fn_65_6xi32_call_arg(<4 x i32>* nocapture nonnu
ll dereferenceable(16), <6 x i32> (<6 x i32>)*, <4 x i32>, <4 x i32>) { |
| 1056 ; CHECK: entry: |
| 1057 ; CHECK-NEXT: %4 = alloca <4 x i32>, align 16 |
| 1058 ; CHECK-NEXT: %5 = bitcast <6 x i32> (<6 x i32>)* %1 to <4 x i32> (<4 x i32>*
, <4 x i32>, <4 x i32>)* |
| 1059 ; CHECK-NEXT: %6 = call <4 x i32> %5(<4 x i32>* nocapture nonnull dereference
able(16) %4, <4 x i32> %2, <4 x i32> %3) |
| 1060 ; CHECK-NEXT: %7 = load <4 x i32>, <4 x i32>* %4, align 16 |
| 1061 ; CHECK-NEXT: %8 = call <4 x i32> @fn_65_6xi32_call_arg(<4 x i32>* nocapture
nonnull dereferenceable(16) %4, <6 x i32> (<6 x i32>)* bitcast (<4 x i32> (<4 x
i32>*, <4 x i32>, <4 x i32>)* @fn_16_6xi32 to <6 x i32> (<6 x i32>)*), <4 x i32>
%6, <4 x i32> %7) |
| 1062 ; CHECK-NEXT: %9 = load <4 x i32>, <4 x i32>* %4, align 16 |
| 1063 ; CHECK-NEXT: store <4 x i32> %9, <4 x i32>* %0, align 16 |
| 1064 ; CHECK-NEXT: ret <4 x i32> %8 |
| 1065 ; CHECK-NEXT: } |
| 1066 |
| 1067 define <6 x i64> @fn_66_6xi64_call_arg(<6 x i64> (<6 x i64>)*, <6 x i64>) { |
| 1068 entry: |
| 1069 %2 = call <6 x i64> %0(<6 x i64> %1) |
| 1070 %3 = call <6 x i64> @fn_66_6xi64_call_arg(<6 x i64> (<6 x i64>)* @fn_17_6xi64,
<6 x i64> %2) |
| 1071 ret <6 x i64> %3 |
| 1072 } |
| 1073 ; CHECK-LABEL: define <2 x i64> @fn_66_6xi64_call_arg(<2 x i64>* nocapture nonnu
ll dereferenceable(16), <2 x i64>* nocapture nonnull dereferenceable(16), <6 x i
64> (<6 x i64>)*, <2 x i64>, <2 x i64>, <2 x i64>) { |
| 1074 ; CHECK: entry: |
| 1075 ; CHECK-NEXT: %6 = alloca <2 x i64>, align 16 |
| 1076 ; CHECK-NEXT: %7 = alloca <2 x i64>, align 16 |
| 1077 ; CHECK-NEXT: %8 = bitcast <6 x i64> (<6 x i64>)* %2 to <2 x i64> (<2 x i64>*
, <2 x i64>*, <2 x i64>, <2 x i64>, <2 x i64>)* |
| 1078 ; CHECK-NEXT: %9 = call <2 x i64> %8(<2 x i64>* nocapture nonnull dereference
able(16) %6, <2 x i64>* nocapture nonnull dereferenceable(16) %7, <2 x i64> %3,
<2 x i64> %4, <2 x i64> %5) |
| 1079 ; CHECK-NEXT: %10 = load <2 x i64>, <2 x i64>* %6, align 16 |
| 1080 ; CHECK-NEXT: %11 = load <2 x i64>, <2 x i64>* %7, align 16 |
| 1081 ; CHECK-NEXT: %12 = call <2 x i64> @fn_66_6xi64_call_arg(<2 x i64>* nocapture
nonnull dereferenceable(16) %6, <2 x i64>* nocapture nonnull dereferenceable(16
) %7, <6 x i64> (<6 x i64>)* bitcast (<2 x i64> (<2 x i64>*, <2 x i64>*, <2 x i6
4>, <2 x i64>, <2 x i64>)* @fn_17_6xi64 to <6 x i64> (<6 x i64>)*), <2 x i64> %9
, <2 x i64> %10, <2 x i64> %11) |
| 1082 ; CHECK-NEXT: %13 = load <2 x i64>, <2 x i64>* %6, align 16 |
| 1083 ; CHECK-NEXT: %14 = load <2 x i64>, <2 x i64>* %7, align 16 |
| 1084 ; CHECK-NEXT: store <2 x i64> %13, <2 x i64>* %0, align 16 |
| 1085 ; CHECK-NEXT: store <2 x i64> %14, <2 x i64>* %1, align 16 |
| 1086 ; CHECK-NEXT: ret <2 x i64> %12 |
| 1087 ; CHECK-NEXT: } |
| 1088 |
| 1089 define <6 x i8*> @fn_67_6xi8ptr_call_arg(<6 x i8*> (<6 x i8*>)*, <6 x i8*>) { |
| 1090 entry: |
| 1091 %2 = call <6 x i8*> %0(<6 x i8*> %1) |
| 1092 %3 = call <6 x i8*> @fn_67_6xi8ptr_call_arg(<6 x i8*> (<6 x i8*>)* @fn_18_6xi8
ptr, <6 x i8*> %2) |
| 1093 ret <6 x i8*> %3 |
| 1094 } |
| 1095 ; CHECK-LABEL: define <4 x i8*> @fn_67_6xi8ptr_call_arg(<4 x i8*>* nocapture non
null dereferenceable(16), <6 x i8*> (<6 x i8*>)*, <4 x i8*>, <4 x i8*>) { |
| 1096 ; CHECK: entry: |
| 1097 ; CHECK-NEXT: %4 = alloca <4 x i8*>, align 16 |
| 1098 ; CHECK-NEXT: %5 = bitcast <6 x i8*> (<6 x i8*>)* %1 to <4 x i8*> (<4 x i8*>*
, <4 x i8*>, <4 x i8*>)* |
| 1099 ; CHECK-NEXT: %6 = call <4 x i8*> %5(<4 x i8*>* nocapture nonnull dereference
able(16) %4, <4 x i8*> %2, <4 x i8*> %3) |
| 1100 ; CHECK-NEXT: %7 = load <4 x i8*>, <4 x i8*>* %4, align 16 |
| 1101 ; CHECK-NEXT: %8 = call <4 x i8*> @fn_67_6xi8ptr_call_arg(<4 x i8*>* nocaptur
e nonnull dereferenceable(16) %4, <6 x i8*> (<6 x i8*>)* bitcast (<4 x i8*> (<4
x i8*>*, <4 x i8*>, <4 x i8*>)* @fn_18_6xi8ptr to <6 x i8*> (<6 x i8*>)*), <4 x
i8*> %6, <4 x i8*> %7) |
| 1102 ; CHECK-NEXT: %9 = load <4 x i8*>, <4 x i8*>* %4, align 16 |
| 1103 ; CHECK-NEXT: store <4 x i8*> %9, <4 x i8*>* %0, align 16 |
| 1104 ; CHECK-NEXT: ret <4 x i8*> %8 |
| 1105 ; CHECK-NEXT: } |
| 1106 |
| 1107 define <6 x float> @fn_68_6xfloat_call_arg(<6 x float> (<6 x float>)*, <6 x floa
t>) { |
| 1108 entry: |
| 1109 %2 = call <6 x float> %0(<6 x float> %1) |
| 1110 %3 = call <6 x float> @fn_68_6xfloat_call_arg(<6 x float> (<6 x float>)* @fn_1
9_6xfloat, <6 x float> %2) |
| 1111 ret <6 x float> %3 |
| 1112 } |
| 1113 ; CHECK-LABEL: define <4 x float> @fn_68_6xfloat_call_arg(<4 x float>* nocapture
nonnull dereferenceable(16), <6 x float> (<6 x float>)*, <4 x float>, <4 x floa
t>) { |
| 1114 ; CHECK: entry: |
| 1115 ; CHECK-NEXT: %4 = alloca <4 x float>, align 16 |
| 1116 ; CHECK-NEXT: %5 = bitcast <6 x float> (<6 x float>)* %1 to <4 x float> (<4 x
float>*, <4 x float>, <4 x float>)* |
| 1117 ; CHECK-NEXT: %6 = call <4 x float> %5(<4 x float>* nocapture nonnull derefer
enceable(16) %4, <4 x float> %2, <4 x float> %3) |
| 1118 ; CHECK-NEXT: %7 = load <4 x float>, <4 x float>* %4, align 16 |
| 1119 ; CHECK-NEXT: %8 = call <4 x float> @fn_68_6xfloat_call_arg(<4 x float>* noca
pture nonnull dereferenceable(16) %4, <6 x float> (<6 x float>)* bitcast (<4 x f
loat> (<4 x float>*, <4 x float>, <4 x float>)* @fn_19_6xfloat to <6 x float> (<
6 x float>)*), <4 x float> %6, <4 x float> %7) |
| 1120 ; CHECK-NEXT: %9 = load <4 x float>, <4 x float>* %4, align 16 |
| 1121 ; CHECK-NEXT: store <4 x float> %9, <4 x float>* %0, align 16 |
| 1122 ; CHECK-NEXT: ret <4 x float> %8 |
| 1123 ; CHECK-NEXT: } |
| 1124 |
| 1125 define <6 x double> @fn_69_6xdouble_call_arg(<6 x double> (<6 x double>)*, <6 x
double>) { |
| 1126 entry: |
| 1127 %2 = call <6 x double> %0(<6 x double> %1) |
| 1128 %3 = call <6 x double> @fn_69_6xdouble_call_arg(<6 x double> (<6 x double>)* @
fn_20_6xdouble, <6 x double> %2) |
| 1129 ret <6 x double> %3 |
| 1130 } |
| 1131 ; CHECK-LABEL: define <2 x double> @fn_69_6xdouble_call_arg(<2 x double>* nocapt
ure nonnull dereferenceable(16), <2 x double>* nocapture nonnull dereferenceable
(16), <6 x double> (<6 x double>)*, <2 x double>, <2 x double>, <2 x double>) { |
| 1132 ; CHECK: entry: |
| 1133 ; CHECK-NEXT: %6 = alloca <2 x double>, align 16 |
| 1134 ; CHECK-NEXT: %7 = alloca <2 x double>, align 16 |
| 1135 ; CHECK-NEXT: %8 = bitcast <6 x double> (<6 x double>)* %2 to <2 x double> (<
2 x double>*, <2 x double>*, <2 x double>, <2 x double>, <2 x double>)* |
| 1136 ; CHECK-NEXT: %9 = call <2 x double> %8(<2 x double>* nocapture nonnull deref
erenceable(16) %6, <2 x double>* nocapture nonnull dereferenceable(16) %7, <2 x
double> %3, <2 x double> %4, <2 x double> %5) |
| 1137 ; CHECK-NEXT: %10 = load <2 x double>, <2 x double>* %6, align 16 |
| 1138 ; CHECK-NEXT: %11 = load <2 x double>, <2 x double>* %7, align 16 |
| 1139 ; CHECK-NEXT: %12 = call <2 x double> @fn_69_6xdouble_call_arg(<2 x double>*
nocapture nonnull dereferenceable(16) %6, <2 x double>* nocapture nonnull derefe
renceable(16) %7, <6 x double> (<6 x double>)* bitcast (<2 x double> (<2 x doubl
e>*, <2 x double>*, <2 x double>, <2 x double>, <2 x double>)* @fn_20_6xdouble t
o <6 x double> (<6 x double>)*), <2 x double> %9, <2 x double> %10, <2 x double>
%11) |
| 1140 ; CHECK-NEXT: %13 = load <2 x double>, <2 x double>* %6, align 16 |
| 1141 ; CHECK-NEXT: %14 = load <2 x double>, <2 x double>* %7, align 16 |
| 1142 ; CHECK-NEXT: store <2 x double> %13, <2 x double>* %0, align 16 |
| 1143 ; CHECK-NEXT: store <2 x double> %14, <2 x double>* %1, align 16 |
| 1144 ; CHECK-NEXT: ret <2 x double> %12 |
| 1145 ; CHECK-NEXT: } |
| 1146 |
| 1147 define <8 x i8> @fn_70_8xi8_call_arg(<8 x i8> (<8 x i8>)*, <8 x i8>) { |
| 1148 entry: |
| 1149 %2 = call <8 x i8> %0(<8 x i8> %1) |
| 1150 %3 = call <8 x i8> @fn_70_8xi8_call_arg(<8 x i8> (<8 x i8>)* @fn_21_8xi8, <8 x
i8> %2) |
| 1151 ret <8 x i8> %3 |
| 1152 } |
| 1153 ; CHECK-LABEL: define <16 x i8> @fn_70_8xi8_call_arg(<8 x i8> (<8 x i8>)*, <16 x
i8>) { |
| 1154 ; CHECK: entry: |
| 1155 ; CHECK-NEXT: %2 = bitcast <8 x i8> (<8 x i8>)* %0 to <16 x i8> (<16 x i8>)* |
| 1156 ; CHECK-NEXT: %3 = call <16 x i8> %2(<16 x i8> %1) |
| 1157 ; CHECK-NEXT: %4 = call <16 x i8> @fn_70_8xi8_call_arg(<8 x i8> (<8 x i8>)* b
itcast (<16 x i8> (<16 x i8>)* @fn_21_8xi8 to <8 x i8> (<8 x i8>)*), <16 x i8> %
3) |
| 1158 ; CHECK-NEXT: ret <16 x i8> %4 |
| 1159 ; CHECK-NEXT: } |
| 1160 |
| 1161 define <8 x i16> @fn_71_8xi16_call_arg(<8 x i16> (<8 x i16>)*, <8 x i16>) { |
| 1162 entry: |
| 1163 %2 = call <8 x i16> %0(<8 x i16> %1) |
| 1164 %3 = call <8 x i16> @fn_71_8xi16_call_arg(<8 x i16> (<8 x i16>)* @fn_22_8xi16,
<8 x i16> %2) |
| 1165 ret <8 x i16> %3 |
| 1166 } |
| 1167 ; CHECK-LABEL: define <8 x i16> @fn_71_8xi16_call_arg(<8 x i16> (<8 x i16>)*, <8
x i16>) { |
| 1168 ; CHECK: entry: |
| 1169 ; CHECK-NEXT: %2 = call <8 x i16> %0(<8 x i16> %1) |
| 1170 ; CHECK-NEXT: %3 = call <8 x i16> @fn_71_8xi16_call_arg(<8 x i16> (<8 x i16>)
* @fn_22_8xi16, <8 x i16> %2) |
| 1171 ; CHECK-NEXT: ret <8 x i16> %3 |
| 1172 ; CHECK-NEXT: } |
| 1173 |
| 1174 define <8 x i32> @fn_72_8xi32_call_arg(<8 x i32> (<8 x i32>)*, <8 x i32>) { |
| 1175 entry: |
| 1176 %2 = call <8 x i32> %0(<8 x i32> %1) |
| 1177 %3 = call <8 x i32> @fn_72_8xi32_call_arg(<8 x i32> (<8 x i32>)* @fn_23_8xi32,
<8 x i32> %2) |
| 1178 ret <8 x i32> %3 |
| 1179 } |
| 1180 ; CHECK-LABEL: define <4 x i32> @fn_72_8xi32_call_arg(<4 x i32>* nocapture nonnu
ll dereferenceable(16), <8 x i32> (<8 x i32>)*, <4 x i32>, <4 x i32>) { |
| 1181 ; CHECK: entry: |
| 1182 ; CHECK-NEXT: %4 = alloca <4 x i32>, align 16 |
| 1183 ; CHECK-NEXT: %5 = bitcast <8 x i32> (<8 x i32>)* %1 to <4 x i32> (<4 x i32>*
, <4 x i32>, <4 x i32>)* |
| 1184 ; CHECK-NEXT: %6 = call <4 x i32> %5(<4 x i32>* nocapture nonnull dereference
able(16) %4, <4 x i32> %2, <4 x i32> %3) |
| 1185 ; CHECK-NEXT: %7 = load <4 x i32>, <4 x i32>* %4, align 16 |
| 1186 ; CHECK-NEXT: %8 = call <4 x i32> @fn_72_8xi32_call_arg(<4 x i32>* nocapture
nonnull dereferenceable(16) %4, <8 x i32> (<8 x i32>)* bitcast (<4 x i32> (<4 x
i32>*, <4 x i32>, <4 x i32>)* @fn_23_8xi32 to <8 x i32> (<8 x i32>)*), <4 x i32>
%6, <4 x i32> %7) |
| 1187 ; CHECK-NEXT: %9 = load <4 x i32>, <4 x i32>* %4, align 16 |
| 1188 ; CHECK-NEXT: store <4 x i32> %9, <4 x i32>* %0, align 16 |
| 1189 ; CHECK-NEXT: ret <4 x i32> %8 |
| 1190 ; CHECK-NEXT: } |
| 1191 |
| 1192 define <8 x i64> @fn_73_8xi64_call_arg(<8 x i64> (<8 x i64>)*, <8 x i64>) { |
| 1193 entry: |
| 1194 %2 = call <8 x i64> %0(<8 x i64> %1) |
| 1195 %3 = call <8 x i64> @fn_73_8xi64_call_arg(<8 x i64> (<8 x i64>)* @fn_24_8xi64,
<8 x i64> %2) |
| 1196 ret <8 x i64> %3 |
| 1197 } |
| 1198 ; CHECK-LABEL: define <2 x i64> @fn_73_8xi64_call_arg(<2 x i64>* nocapture nonnu
ll dereferenceable(16), <2 x i64>* nocapture nonnull dereferenceable(16), <2 x i
64>* nocapture nonnull dereferenceable(16), <8 x i64> (<8 x i64>)*, <2 x i64>, <
2 x i64>, <2 x i64>, <2 x i64>) { |
| 1199 ; CHECK: entry: |
| 1200 ; CHECK-NEXT: %8 = alloca <2 x i64>, align 16 |
| 1201 ; CHECK-NEXT: %9 = alloca <2 x i64>, align 16 |
| 1202 ; CHECK-NEXT: %10 = alloca <2 x i64>, align 16 |
| 1203 ; CHECK-NEXT: %11 = bitcast <8 x i64> (<8 x i64>)* %3 to <2 x i64> (<2 x i64>
*, <2 x i64>*, <2 x i64>*, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>)* |
| 1204 ; CHECK-NEXT: %12 = call <2 x i64> %11(<2 x i64>* nocapture nonnull dereferen
ceable(16) %8, <2 x i64>* nocapture nonnull dereferenceable(16) %9, <2 x i64>* n
ocapture nonnull dereferenceable(16) %10, <2 x i64> %4, <2 x i64> %5, <2 x i64>
%6, <2 x i64> %7) |
| 1205 ; CHECK-NEXT: %13 = load <2 x i64>, <2 x i64>* %8, align 16 |
| 1206 ; CHECK-NEXT: %14 = load <2 x i64>, <2 x i64>* %9, align 16 |
| 1207 ; CHECK-NEXT: %15 = load <2 x i64>, <2 x i64>* %10, align 16 |
| 1208 ; CHECK-NEXT: %16 = call <2 x i64> @fn_73_8xi64_call_arg(<2 x i64>* nocapture
nonnull dereferenceable(16) %8, <2 x i64>* nocapture nonnull dereferenceable(16
) %9, <2 x i64>* nocapture nonnull dereferenceable(16) %10, <8 x i64> (<8 x i64>
)* bitcast (<2 x i64> (<2 x i64>*, <2 x i64>*, <2 x i64>*, <2 x i64>, <2 x i64>,
<2 x i64>, <2 x i64>)* @fn_24_8xi64 to <8 x i64> (<8 x i64>)*), <2 x i64> %12,
<2 x i64> %13, <2 x i64> %14, <2 x i64> %15) |
| 1209 ; CHECK-NEXT: %17 = load <2 x i64>, <2 x i64>* %8, align 16 |
| 1210 ; CHECK-NEXT: %18 = load <2 x i64>, <2 x i64>* %9, align 16 |
| 1211 ; CHECK-NEXT: %19 = load <2 x i64>, <2 x i64>* %10, align 16 |
| 1212 ; CHECK-NEXT: store <2 x i64> %17, <2 x i64>* %0, align 16 |
| 1213 ; CHECK-NEXT: store <2 x i64> %18, <2 x i64>* %1, align 16 |
| 1214 ; CHECK-NEXT: store <2 x i64> %19, <2 x i64>* %2, align 16 |
| 1215 ; CHECK-NEXT: ret <2 x i64> %16 |
| 1216 ; CHECK-NEXT: } |
| 1217 |
| 1218 define <8 x i8*> @fn_74_8xi8ptr_call_arg(<8 x i8*> (<8 x i8*>)*, <8 x i8*>) { |
| 1219 entry: |
| 1220 %2 = call <8 x i8*> %0(<8 x i8*> %1) |
| 1221 %3 = call <8 x i8*> @fn_74_8xi8ptr_call_arg(<8 x i8*> (<8 x i8*>)* @fn_25_8xi8
ptr, <8 x i8*> %2) |
| 1222 ret <8 x i8*> %3 |
| 1223 } |
| 1224 ; CHECK-LABEL: define <4 x i8*> @fn_74_8xi8ptr_call_arg(<4 x i8*>* nocapture non
null dereferenceable(16), <8 x i8*> (<8 x i8*>)*, <4 x i8*>, <4 x i8*>) { |
| 1225 ; CHECK: entry: |
| 1226 ; CHECK-NEXT: %4 = alloca <4 x i8*>, align 16 |
| 1227 ; CHECK-NEXT: %5 = bitcast <8 x i8*> (<8 x i8*>)* %1 to <4 x i8*> (<4 x i8*>*
, <4 x i8*>, <4 x i8*>)* |
| 1228 ; CHECK-NEXT: %6 = call <4 x i8*> %5(<4 x i8*>* nocapture nonnull dereference
able(16) %4, <4 x i8*> %2, <4 x i8*> %3) |
| 1229 ; CHECK-NEXT: %7 = load <4 x i8*>, <4 x i8*>* %4, align 16 |
| 1230 ; CHECK-NEXT: %8 = call <4 x i8*> @fn_74_8xi8ptr_call_arg(<4 x i8*>* nocaptur
e nonnull dereferenceable(16) %4, <8 x i8*> (<8 x i8*>)* bitcast (<4 x i8*> (<4
x i8*>*, <4 x i8*>, <4 x i8*>)* @fn_25_8xi8ptr to <8 x i8*> (<8 x i8*>)*), <4 x
i8*> %6, <4 x i8*> %7) |
| 1231 ; CHECK-NEXT: %9 = load <4 x i8*>, <4 x i8*>* %4, align 16 |
| 1232 ; CHECK-NEXT: store <4 x i8*> %9, <4 x i8*>* %0, align 16 |
| 1233 ; CHECK-NEXT: ret <4 x i8*> %8 |
| 1234 ; CHECK-NEXT: } |
| 1235 |
| 1236 define <8 x float> @fn_75_8xfloat_call_arg(<8 x float> (<8 x float>)*, <8 x floa
t>) { |
| 1237 entry: |
| 1238 %2 = call <8 x float> %0(<8 x float> %1) |
| 1239 %3 = call <8 x float> @fn_75_8xfloat_call_arg(<8 x float> (<8 x float>)* @fn_2
6_8xfloat, <8 x float> %2) |
| 1240 ret <8 x float> %3 |
| 1241 } |
| 1242 ; CHECK-LABEL: define <4 x float> @fn_75_8xfloat_call_arg(<4 x float>* nocapture
nonnull dereferenceable(16), <8 x float> (<8 x float>)*, <4 x float>, <4 x floa
t>) { |
| 1243 ; CHECK: entry: |
| 1244 ; CHECK-NEXT: %4 = alloca <4 x float>, align 16 |
| 1245 ; CHECK-NEXT: %5 = bitcast <8 x float> (<8 x float>)* %1 to <4 x float> (<4 x
float>*, <4 x float>, <4 x float>)* |
| 1246 ; CHECK-NEXT: %6 = call <4 x float> %5(<4 x float>* nocapture nonnull derefer
enceable(16) %4, <4 x float> %2, <4 x float> %3) |
| 1247 ; CHECK-NEXT: %7 = load <4 x float>, <4 x float>* %4, align 16 |
| 1248 ; CHECK-NEXT: %8 = call <4 x float> @fn_75_8xfloat_call_arg(<4 x float>* noca
pture nonnull dereferenceable(16) %4, <8 x float> (<8 x float>)* bitcast (<4 x f
loat> (<4 x float>*, <4 x float>, <4 x float>)* @fn_26_8xfloat to <8 x float> (<
8 x float>)*), <4 x float> %6, <4 x float> %7) |
| 1249 ; CHECK-NEXT: %9 = load <4 x float>, <4 x float>* %4, align 16 |
| 1250 ; CHECK-NEXT: store <4 x float> %9, <4 x float>* %0, align 16 |
| 1251 ; CHECK-NEXT: ret <4 x float> %8 |
| 1252 ; CHECK-NEXT: } |
| 1253 |
| 1254 define <8 x double> @fn_76_8xdouble_call_arg(<8 x double> (<8 x double>)*, <8 x
double>) { |
| 1255 entry: |
| 1256 %2 = call <8 x double> %0(<8 x double> %1) |
| 1257 %3 = call <8 x double> @fn_76_8xdouble_call_arg(<8 x double> (<8 x double>)* @
fn_27_8xdouble, <8 x double> %2) |
| 1258 ret <8 x double> %3 |
| 1259 } |
| 1260 ; CHECK-LABEL: define <2 x double> @fn_76_8xdouble_call_arg(<2 x double>* nocapt
ure nonnull dereferenceable(16), <2 x double>* nocapture nonnull dereferenceable
(16), <2 x double>* nocapture nonnull dereferenceable(16), <8 x double> (<8 x do
uble>)*, <2 x double>, <2 x double>, <2 x double>, <2 x double>) { |
| 1261 ; CHECK: entry: |
| 1262 ; CHECK-NEXT: %8 = alloca <2 x double>, align 16 |
| 1263 ; CHECK-NEXT: %9 = alloca <2 x double>, align 16 |
| 1264 ; CHECK-NEXT: %10 = alloca <2 x double>, align 16 |
| 1265 ; CHECK-NEXT: %11 = bitcast <8 x double> (<8 x double>)* %3 to <2 x double> (
<2 x double>*, <2 x double>*, <2 x double>*, <2 x double>, <2 x double>, <2 x do
uble>, <2 x double>)* |
| 1266 ; CHECK-NEXT: %12 = call <2 x double> %11(<2 x double>* nocapture nonnull der
eferenceable(16) %8, <2 x double>* nocapture nonnull dereferenceable(16) %9, <2
x double>* nocapture nonnull dereferenceable(16) %10, <2 x double> %4, <2 x doub
le> %5, <2 x double> %6, <2 x double> %7) |
| 1267 ; CHECK-NEXT: %13 = load <2 x double>, <2 x double>* %8, align 16 |
| 1268 ; CHECK-NEXT: %14 = load <2 x double>, <2 x double>* %9, align 16 |
| 1269 ; CHECK-NEXT: %15 = load <2 x double>, <2 x double>* %10, align 16 |
| 1270 ; CHECK-NEXT: %16 = call <2 x double> @fn_76_8xdouble_call_arg(<2 x double>*
nocapture nonnull dereferenceable(16) %8, <2 x double>* nocapture nonnull derefe
renceable(16) %9, <2 x double>* nocapture nonnull dereferenceable(16) %10, <8 x
double> (<8 x double>)* bitcast (<2 x double> (<2 x double>*, <2 x double>*, <2
x double>*, <2 x double>, <2 x double>, <2 x double>, <2 x double>)* @fn_27_8xdo
uble to <8 x double> (<8 x double>)*), <2 x double> %12, <2 x double> %13, <2 x
double> %14, <2 x double> %15) |
| 1271 ; CHECK-NEXT: %17 = load <2 x double>, <2 x double>* %8, align 16 |
| 1272 ; CHECK-NEXT: %18 = load <2 x double>, <2 x double>* %9, align 16 |
| 1273 ; CHECK-NEXT: %19 = load <2 x double>, <2 x double>* %10, align 16 |
| 1274 ; CHECK-NEXT: store <2 x double> %17, <2 x double>* %0, align 16 |
| 1275 ; CHECK-NEXT: store <2 x double> %18, <2 x double>* %1, align 16 |
| 1276 ; CHECK-NEXT: store <2 x double> %19, <2 x double>* %2, align 16 |
| 1277 ; CHECK-NEXT: ret <2 x double> %16 |
| 1278 ; CHECK-NEXT: } |
| 1279 |
| 1280 define <12 x i8> @fn_77_12xi8_call_arg(<12 x i8> (<12 x i8>)*, <12 x i8>) { |
| 1281 entry: |
| 1282 %2 = call <12 x i8> %0(<12 x i8> %1) |
| 1283 %3 = call <12 x i8> @fn_77_12xi8_call_arg(<12 x i8> (<12 x i8>)* @fn_28_12xi8,
<12 x i8> %2) |
| 1284 ret <12 x i8> %3 |
| 1285 } |
| 1286 ; CHECK-LABEL: define <16 x i8> @fn_77_12xi8_call_arg(<12 x i8> (<12 x i8>)*, <1
6 x i8>) { |
| 1287 ; CHECK: entry: |
| 1288 ; CHECK-NEXT: %2 = bitcast <12 x i8> (<12 x i8>)* %0 to <16 x i8> (<16 x i8>)
* |
| 1289 ; CHECK-NEXT: %3 = call <16 x i8> %2(<16 x i8> %1) |
| 1290 ; CHECK-NEXT: %4 = call <16 x i8> @fn_77_12xi8_call_arg(<12 x i8> (<12 x i8>)
* bitcast (<16 x i8> (<16 x i8>)* @fn_28_12xi8 to <12 x i8> (<12 x i8>)*), <16 x
i8> %3) |
| 1291 ; CHECK-NEXT: ret <16 x i8> %4 |
| 1292 ; CHECK-NEXT: } |
| 1293 |
| 1294 define <12 x i16> @fn_78_12xi16_call_arg(<12 x i16> (<12 x i16>)*, <12 x i16>) { |
| 1295 entry: |
| 1296 %2 = call <12 x i16> %0(<12 x i16> %1) |
| 1297 %3 = call <12 x i16> @fn_78_12xi16_call_arg(<12 x i16> (<12 x i16>)* @fn_29_12
xi16, <12 x i16> %2) |
| 1298 ret <12 x i16> %3 |
| 1299 } |
| 1300 ; CHECK-LABEL: define <8 x i16> @fn_78_12xi16_call_arg(<8 x i16>* nocapture nonn
ull dereferenceable(16), <12 x i16> (<12 x i16>)*, <8 x i16>, <8 x i16>) { |
| 1301 ; CHECK: entry: |
| 1302 ; CHECK-NEXT: %4 = alloca <8 x i16>, align 16 |
| 1303 ; CHECK-NEXT: %5 = bitcast <12 x i16> (<12 x i16>)* %1 to <8 x i16> (<8 x i16
>*, <8 x i16>, <8 x i16>)* |
| 1304 ; CHECK-NEXT: %6 = call <8 x i16> %5(<8 x i16>* nocapture nonnull dereference
able(16) %4, <8 x i16> %2, <8 x i16> %3) |
| 1305 ; CHECK-NEXT: %7 = load <8 x i16>, <8 x i16>* %4, align 16 |
| 1306 ; CHECK-NEXT: %8 = call <8 x i16> @fn_78_12xi16_call_arg(<8 x i16>* nocapture
nonnull dereferenceable(16) %4, <12 x i16> (<12 x i16>)* bitcast (<8 x i16> (<8
x i16>*, <8 x i16>, <8 x i16>)* @fn_29_12xi16 to <12 x i16> (<12 x i16>)*), <8
x i16> %6, <8 x i16> %7) |
| 1307 ; CHECK-NEXT: %9 = load <8 x i16>, <8 x i16>* %4, align 16 |
| 1308 ; CHECK-NEXT: store <8 x i16> %9, <8 x i16>* %0, align 16 |
| 1309 ; CHECK-NEXT: ret <8 x i16> %8 |
| 1310 ; CHECK-NEXT: } |
| 1311 |
| 1312 define <12 x i32> @fn_79_12xi32_call_arg(<12 x i32> (<12 x i32>)*, <12 x i32>) { |
| 1313 entry: |
| 1314 %2 = call <12 x i32> %0(<12 x i32> %1) |
| 1315 %3 = call <12 x i32> @fn_79_12xi32_call_arg(<12 x i32> (<12 x i32>)* @fn_30_12
xi32, <12 x i32> %2) |
| 1316 ret <12 x i32> %3 |
| 1317 } |
| 1318 ; CHECK-LABEL: define <4 x i32> @fn_79_12xi32_call_arg(<4 x i32>* nocapture nonn
ull dereferenceable(16), <4 x i32>* nocapture nonnull dereferenceable(16), <12 x
i32> (<12 x i32>)*, <4 x i32>, <4 x i32>, <4 x i32>) { |
| 1319 ; CHECK: entry: |
| 1320 ; CHECK-NEXT: %6 = alloca <4 x i32>, align 16 |
| 1321 ; CHECK-NEXT: %7 = alloca <4 x i32>, align 16 |
| 1322 ; CHECK-NEXT: %8 = bitcast <12 x i32> (<12 x i32>)* %2 to <4 x i32> (<4 x i32
>*, <4 x i32>*, <4 x i32>, <4 x i32>, <4 x i32>)* |
| 1323 ; CHECK-NEXT: %9 = call <4 x i32> %8(<4 x i32>* nocapture nonnull dereference
able(16) %6, <4 x i32>* nocapture nonnull dereferenceable(16) %7, <4 x i32> %3,
<4 x i32> %4, <4 x i32> %5) |
| 1324 ; CHECK-NEXT: %10 = load <4 x i32>, <4 x i32>* %6, align 16 |
| 1325 ; CHECK-NEXT: %11 = load <4 x i32>, <4 x i32>* %7, align 16 |
| 1326 ; CHECK-NEXT: %12 = call <4 x i32> @fn_79_12xi32_call_arg(<4 x i32>* nocaptur
e nonnull dereferenceable(16) %6, <4 x i32>* nocapture nonnull dereferenceable(1
6) %7, <12 x i32> (<12 x i32>)* bitcast (<4 x i32> (<4 x i32>*, <4 x i32>*, <4 x
i32>, <4 x i32>, <4 x i32>)* @fn_30_12xi32 to <12 x i32> (<12 x i32>)*), <4 x i
32> %9, <4 x i32> %10, <4 x i32> %11) |
| 1327 ; CHECK-NEXT: %13 = load <4 x i32>, <4 x i32>* %6, align 16 |
| 1328 ; CHECK-NEXT: %14 = load <4 x i32>, <4 x i32>* %7, align 16 |
| 1329 ; CHECK-NEXT: store <4 x i32> %13, <4 x i32>* %0, align 16 |
| 1330 ; CHECK-NEXT: store <4 x i32> %14, <4 x i32>* %1, align 16 |
| 1331 ; CHECK-NEXT: ret <4 x i32> %12 |
| 1332 ; CHECK-NEXT: } |
| 1333 |
| 1334 define <12 x i64> @fn_80_12xi64_call_arg(<12 x i64> (<12 x i64>)*, <12 x i64>) { |
| 1335 entry: |
| 1336 %2 = call <12 x i64> %0(<12 x i64> %1) |
| 1337 %3 = call <12 x i64> @fn_80_12xi64_call_arg(<12 x i64> (<12 x i64>)* @fn_31_12
xi64, <12 x i64> %2) |
| 1338 ret <12 x i64> %3 |
| 1339 } |
| 1340 ; CHECK-LABEL: define <2 x i64> @fn_80_12xi64_call_arg(<2 x i64>* nocapture nonn
ull dereferenceable(16), <2 x i64>* nocapture nonnull dereferenceable(16), <2 x
i64>* nocapture nonnull dereferenceable(16), <2 x i64>* nocapture nonnull derefe
renceable(16), <2 x i64>* nocapture nonnull dereferenceable(16), <12 x i64> (<12
x i64>)*, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>) { |
| 1341 ; CHECK: entry: |
| 1342 ; CHECK-NEXT: %12 = alloca <2 x i64>, align 16 |
| 1343 ; CHECK-NEXT: %13 = alloca <2 x i64>, align 16 |
| 1344 ; CHECK-NEXT: %14 = alloca <2 x i64>, align 16 |
| 1345 ; CHECK-NEXT: %15 = alloca <2 x i64>, align 16 |
| 1346 ; CHECK-NEXT: %16 = alloca <2 x i64>, align 16 |
| 1347 ; CHECK-NEXT: %17 = bitcast <12 x i64> (<12 x i64>)* %5 to <2 x i64> (<2 x i6
4>*, <2 x i64>*, <2 x i64>*, <2 x i64>*, <2 x i64>*, <2 x i64>, <2 x i64>, <2 x
i64>, <2 x i64>, <2 x i64>, <2 x i64>)* |
| 1348 ; CHECK-NEXT: %18 = call <2 x i64> %17(<2 x i64>* nocapture nonnull dereferen
ceable(16) %12, <2 x i64>* nocapture nonnull dereferenceable(16) %13, <2 x i64>*
nocapture nonnull dereferenceable(16) %14, <2 x i64>* nocapture nonnull derefer
enceable(16) %15, <2 x i64>* nocapture nonnull dereferenceable(16) %16, <2 x i64
> %6, <2 x i64> %7, <2 x i64> %8, <2 x i64> %9, <2 x i64> %10, <2 x i64> %11) |
| 1349 ; CHECK-NEXT: %19 = load <2 x i64>, <2 x i64>* %12, align 16 |
| 1350 ; CHECK-NEXT: %20 = load <2 x i64>, <2 x i64>* %13, align 16 |
| 1351 ; CHECK-NEXT: %21 = load <2 x i64>, <2 x i64>* %14, align 16 |
| 1352 ; CHECK-NEXT: %22 = load <2 x i64>, <2 x i64>* %15, align 16 |
| 1353 ; CHECK-NEXT: %23 = load <2 x i64>, <2 x i64>* %16, align 16 |
| 1354 ; CHECK-NEXT: %24 = call <2 x i64> @fn_80_12xi64_call_arg(<2 x i64>* nocaptur
e nonnull dereferenceable(16) %12, <2 x i64>* nocapture nonnull dereferenceable(
16) %13, <2 x i64>* nocapture nonnull dereferenceable(16) %14, <2 x i64>* nocapt
ure nonnull dereferenceable(16) %15, <2 x i64>* nocapture nonnull dereferenceabl
e(16) %16, <12 x i64> (<12 x i64>)* bitcast (<2 x i64> (<2 x i64>*, <2 x i64>*,
<2 x i64>*, <2 x i64>*, <2 x i64>*, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>,
<2 x i64>, <2 x i64>)* @fn_31_12xi64 to <12 x i64> (<12 x i64>)*), <2 x i64> %18
, <2 x i64> %19, <2 x i64> %20, <2 x i64> %21, <2 x i64> %22, <2 x i64> %23) |
| 1355 ; CHECK-NEXT: %25 = load <2 x i64>, <2 x i64>* %12, align 16 |
| 1356 ; CHECK-NEXT: %26 = load <2 x i64>, <2 x i64>* %13, align 16 |
| 1357 ; CHECK-NEXT: %27 = load <2 x i64>, <2 x i64>* %14, align 16 |
| 1358 ; CHECK-NEXT: %28 = load <2 x i64>, <2 x i64>* %15, align 16 |
| 1359 ; CHECK-NEXT: %29 = load <2 x i64>, <2 x i64>* %16, align 16 |
| 1360 ; CHECK-NEXT: store <2 x i64> %25, <2 x i64>* %0, align 16 |
| 1361 ; CHECK-NEXT: store <2 x i64> %26, <2 x i64>* %1, align 16 |
| 1362 ; CHECK-NEXT: store <2 x i64> %27, <2 x i64>* %2, align 16 |
| 1363 ; CHECK-NEXT: store <2 x i64> %28, <2 x i64>* %3, align 16 |
| 1364 ; CHECK-NEXT: store <2 x i64> %29, <2 x i64>* %4, align 16 |
| 1365 ; CHECK-NEXT: ret <2 x i64> %24 |
| 1366 ; CHECK-NEXT: } |
| 1367 |
| 1368 define <12 x i8*> @fn_81_12xi8ptr_call_arg(<12 x i8*> (<12 x i8*>)*, <12 x i8*>)
{ |
| 1369 entry: |
| 1370 %2 = call <12 x i8*> %0(<12 x i8*> %1) |
| 1371 %3 = call <12 x i8*> @fn_81_12xi8ptr_call_arg(<12 x i8*> (<12 x i8*>)* @fn_32_
12xi8ptr, <12 x i8*> %2) |
| 1372 ret <12 x i8*> %3 |
| 1373 } |
| 1374 ; CHECK-LABEL: define <4 x i8*> @fn_81_12xi8ptr_call_arg(<4 x i8*>* nocapture no
nnull dereferenceable(16), <4 x i8*>* nocapture nonnull dereferenceable(16), <12
x i8*> (<12 x i8*>)*, <4 x i8*>, <4 x i8*>, <4 x i8*>) { |
| 1375 ; CHECK: entry: |
| 1376 ; CHECK-NEXT: %6 = alloca <4 x i8*>, align 16 |
| 1377 ; CHECK-NEXT: %7 = alloca <4 x i8*>, align 16 |
| 1378 ; CHECK-NEXT: %8 = bitcast <12 x i8*> (<12 x i8*>)* %2 to <4 x i8*> (<4 x i8*
>*, <4 x i8*>*, <4 x i8*>, <4 x i8*>, <4 x i8*>)* |
| 1379 ; CHECK-NEXT: %9 = call <4 x i8*> %8(<4 x i8*>* nocapture nonnull dereference
able(16) %6, <4 x i8*>* nocapture nonnull dereferenceable(16) %7, <4 x i8*> %3,
<4 x i8*> %4, <4 x i8*> %5) |
| 1380 ; CHECK-NEXT: %10 = load <4 x i8*>, <4 x i8*>* %6, align 16 |
| 1381 ; CHECK-NEXT: %11 = load <4 x i8*>, <4 x i8*>* %7, align 16 |
| 1382 ; CHECK-NEXT: %12 = call <4 x i8*> @fn_81_12xi8ptr_call_arg(<4 x i8*>* nocapt
ure nonnull dereferenceable(16) %6, <4 x i8*>* nocapture nonnull dereferenceable
(16) %7, <12 x i8*> (<12 x i8*>)* bitcast (<4 x i8*> (<4 x i8*>*, <4 x i8*>*, <4
x i8*>, <4 x i8*>, <4 x i8*>)* @fn_32_12xi8ptr to <12 x i8*> (<12 x i8*>)*), <4
x i8*> %9, <4 x i8*> %10, <4 x i8*> %11) |
| 1383 ; CHECK-NEXT: %13 = load <4 x i8*>, <4 x i8*>* %6, align 16 |
| 1384 ; CHECK-NEXT: %14 = load <4 x i8*>, <4 x i8*>* %7, align 16 |
| 1385 ; CHECK-NEXT: store <4 x i8*> %13, <4 x i8*>* %0, align 16 |
| 1386 ; CHECK-NEXT: store <4 x i8*> %14, <4 x i8*>* %1, align 16 |
| 1387 ; CHECK-NEXT: ret <4 x i8*> %12 |
| 1388 ; CHECK-NEXT: } |
| 1389 |
| 1390 define <12 x float> @fn_82_12xfloat_call_arg(<12 x float> (<12 x float>)*, <12 x
float>) { |
| 1391 entry: |
| 1392 %2 = call <12 x float> %0(<12 x float> %1) |
| 1393 %3 = call <12 x float> @fn_82_12xfloat_call_arg(<12 x float> (<12 x float>)* @
fn_33_12xfloat, <12 x float> %2) |
| 1394 ret <12 x float> %3 |
| 1395 } |
| 1396 ; CHECK-LABEL: define <4 x float> @fn_82_12xfloat_call_arg(<4 x float>* nocaptur
e nonnull dereferenceable(16), <4 x float>* nocapture nonnull dereferenceable(16
), <12 x float> (<12 x float>)*, <4 x float>, <4 x float>, <4 x float>) { |
| 1397 ; CHECK: entry: |
| 1398 ; CHECK-NEXT: %6 = alloca <4 x float>, align 16 |
| 1399 ; CHECK-NEXT: %7 = alloca <4 x float>, align 16 |
| 1400 ; CHECK-NEXT: %8 = bitcast <12 x float> (<12 x float>)* %2 to <4 x float> (<4
x float>*, <4 x float>*, <4 x float>, <4 x float>, <4 x float>)* |
| 1401 ; CHECK-NEXT: %9 = call <4 x float> %8(<4 x float>* nocapture nonnull derefer
enceable(16) %6, <4 x float>* nocapture nonnull dereferenceable(16) %7, <4 x flo
at> %3, <4 x float> %4, <4 x float> %5) |
| 1402 ; CHECK-NEXT: %10 = load <4 x float>, <4 x float>* %6, align 16 |
| 1403 ; CHECK-NEXT: %11 = load <4 x float>, <4 x float>* %7, align 16 |
| 1404 ; CHECK-NEXT: %12 = call <4 x float> @fn_82_12xfloat_call_arg(<4 x float>* no
capture nonnull dereferenceable(16) %6, <4 x float>* nocapture nonnull dereferen
ceable(16) %7, <12 x float> (<12 x float>)* bitcast (<4 x float> (<4 x float>*,
<4 x float>*, <4 x float>, <4 x float>, <4 x float>)* @fn_33_12xfloat to <12 x f
loat> (<12 x float>)*), <4 x float> %9, <4 x float> %10, <4 x float> %11) |
| 1405 ; CHECK-NEXT: %13 = load <4 x float>, <4 x float>* %6, align 16 |
| 1406 ; CHECK-NEXT: %14 = load <4 x float>, <4 x float>* %7, align 16 |
| 1407 ; CHECK-NEXT: store <4 x float> %13, <4 x float>* %0, align 16 |
| 1408 ; CHECK-NEXT: store <4 x float> %14, <4 x float>* %1, align 16 |
| 1409 ; CHECK-NEXT: ret <4 x float> %12 |
| 1410 ; CHECK-NEXT: } |
| 1411 |
| 1412 define <12 x double> @fn_83_12xdouble_call_arg(<12 x double> (<12 x double>)*, <
12 x double>) { |
| 1413 entry: |
| 1414 %2 = call <12 x double> %0(<12 x double> %1) |
| 1415 %3 = call <12 x double> @fn_83_12xdouble_call_arg(<12 x double> (<12 x double>
)* @fn_34_12xdouble, <12 x double> %2) |
| 1416 ret <12 x double> %3 |
| 1417 } |
| 1418 ; CHECK-LABEL: define <2 x double> @fn_83_12xdouble_call_arg(<2 x double>* nocap
ture nonnull dereferenceable(16), <2 x double>* nocapture nonnull dereferenceabl
e(16), <2 x double>* nocapture nonnull dereferenceable(16), <2 x double>* nocapt
ure nonnull dereferenceable(16), <2 x double>* nocapture nonnull dereferenceable
(16), <12 x double> (<12 x double>)*, <2 x double>, <2 x double>, <2 x double>,
<2 x double>, <2 x double>, <2 x double>) { |
| 1419 ; CHECK: entry: |
| 1420 ; CHECK-NEXT: %12 = alloca <2 x double>, align 16 |
| 1421 ; CHECK-NEXT: %13 = alloca <2 x double>, align 16 |
| 1422 ; CHECK-NEXT: %14 = alloca <2 x double>, align 16 |
| 1423 ; CHECK-NEXT: %15 = alloca <2 x double>, align 16 |
| 1424 ; CHECK-NEXT: %16 = alloca <2 x double>, align 16 |
| 1425 ; CHECK-NEXT: %17 = bitcast <12 x double> (<12 x double>)* %5 to <2 x double>
(<2 x double>*, <2 x double>*, <2 x double>*, <2 x double>*, <2 x double>*, <2
x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>)
* |
| 1426 ; CHECK-NEXT: %18 = call <2 x double> %17(<2 x double>* nocapture nonnull der
eferenceable(16) %12, <2 x double>* nocapture nonnull dereferenceable(16) %13, <
2 x double>* nocapture nonnull dereferenceable(16) %14, <2 x double>* nocapture
nonnull dereferenceable(16) %15, <2 x double>* nocapture nonnull dereferenceable
(16) %16, <2 x double> %6, <2 x double> %7, <2 x double> %8, <2 x double> %9, <2
x double> %10, <2 x double> %11) |
| 1427 ; CHECK-NEXT: %19 = load <2 x double>, <2 x double>* %12, align 16 |
| 1428 ; CHECK-NEXT: %20 = load <2 x double>, <2 x double>* %13, align 16 |
| 1429 ; CHECK-NEXT: %21 = load <2 x double>, <2 x double>* %14, align 16 |
| 1430 ; CHECK-NEXT: %22 = load <2 x double>, <2 x double>* %15, align 16 |
| 1431 ; CHECK-NEXT: %23 = load <2 x double>, <2 x double>* %16, align 16 |
| 1432 ; CHECK-NEXT: %24 = call <2 x double> @fn_83_12xdouble_call_arg(<2 x double>*
nocapture nonnull dereferenceable(16) %12, <2 x double>* nocapture nonnull dere
ferenceable(16) %13, <2 x double>* nocapture nonnull dereferenceable(16) %14, <2
x double>* nocapture nonnull dereferenceable(16) %15, <2 x double>* nocapture n
onnull dereferenceable(16) %16, <12 x double> (<12 x double>)* bitcast (<2 x dou
ble> (<2 x double>*, <2 x double>*, <2 x double>*, <2 x double>*, <2 x double>*,
<2 x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>, <2 x doub
le>)* @fn_34_12xdouble to <12 x double> (<12 x double>)*), <2 x double> %18, <2
x double> %19, <2 x double> %20, <2 x double> %21, <2 x double> %22, <2 x double
> %23) |
| 1433 ; CHECK-NEXT: %25 = load <2 x double>, <2 x double>* %12, align 16 |
| 1434 ; CHECK-NEXT: %26 = load <2 x double>, <2 x double>* %13, align 16 |
| 1435 ; CHECK-NEXT: %27 = load <2 x double>, <2 x double>* %14, align 16 |
| 1436 ; CHECK-NEXT: %28 = load <2 x double>, <2 x double>* %15, align 16 |
| 1437 ; CHECK-NEXT: %29 = load <2 x double>, <2 x double>* %16, align 16 |
| 1438 ; CHECK-NEXT: store <2 x double> %25, <2 x double>* %0, align 16 |
| 1439 ; CHECK-NEXT: store <2 x double> %26, <2 x double>* %1, align 16 |
| 1440 ; CHECK-NEXT: store <2 x double> %27, <2 x double>* %2, align 16 |
| 1441 ; CHECK-NEXT: store <2 x double> %28, <2 x double>* %3, align 16 |
| 1442 ; CHECK-NEXT: store <2 x double> %29, <2 x double>* %4, align 16 |
| 1443 ; CHECK-NEXT: ret <2 x double> %24 |
| 1444 ; CHECK-NEXT: } |
| 1445 |
| 1446 define <16 x i8> @fn_84_16xi8_call_arg(<16 x i8> (<16 x i8>)*, <16 x i8>) { |
| 1447 entry: |
| 1448 %2 = call <16 x i8> %0(<16 x i8> %1) |
| 1449 %3 = call <16 x i8> @fn_84_16xi8_call_arg(<16 x i8> (<16 x i8>)* @fn_35_16xi8,
<16 x i8> %2) |
| 1450 ret <16 x i8> %3 |
| 1451 } |
| 1452 ; CHECK-LABEL: define <16 x i8> @fn_84_16xi8_call_arg(<16 x i8> (<16 x i8>)*, <1
6 x i8>) { |
| 1453 ; CHECK: entry: |
| 1454 ; CHECK-NEXT: %2 = call <16 x i8> %0(<16 x i8> %1) |
| 1455 ; CHECK-NEXT: %3 = call <16 x i8> @fn_84_16xi8_call_arg(<16 x i8> (<16 x i8>)
* @fn_35_16xi8, <16 x i8> %2) |
| 1456 ; CHECK-NEXT: ret <16 x i8> %3 |
| 1457 ; CHECK-NEXT: } |
| 1458 |
| 1459 define <16 x i16> @fn_85_16xi16_call_arg(<16 x i16> (<16 x i16>)*, <16 x i16>) { |
| 1460 entry: |
| 1461 %2 = call <16 x i16> %0(<16 x i16> %1) |
| 1462 %3 = call <16 x i16> @fn_85_16xi16_call_arg(<16 x i16> (<16 x i16>)* @fn_36_16
xi16, <16 x i16> %2) |
| 1463 ret <16 x i16> %3 |
| 1464 } |
| 1465 ; CHECK-LABEL: define <8 x i16> @fn_85_16xi16_call_arg(<8 x i16>* nocapture nonn
ull dereferenceable(16), <16 x i16> (<16 x i16>)*, <8 x i16>, <8 x i16>) { |
| 1466 ; CHECK: entry: |
| 1467 ; CHECK-NEXT: %4 = alloca <8 x i16>, align 16 |
| 1468 ; CHECK-NEXT: %5 = bitcast <16 x i16> (<16 x i16>)* %1 to <8 x i16> (<8 x i16
>*, <8 x i16>, <8 x i16>)* |
| 1469 ; CHECK-NEXT: %6 = call <8 x i16> %5(<8 x i16>* nocapture nonnull dereference
able(16) %4, <8 x i16> %2, <8 x i16> %3) |
| 1470 ; CHECK-NEXT: %7 = load <8 x i16>, <8 x i16>* %4, align 16 |
| 1471 ; CHECK-NEXT: %8 = call <8 x i16> @fn_85_16xi16_call_arg(<8 x i16>* nocapture
nonnull dereferenceable(16) %4, <16 x i16> (<16 x i16>)* bitcast (<8 x i16> (<8
x i16>*, <8 x i16>, <8 x i16>)* @fn_36_16xi16 to <16 x i16> (<16 x i16>)*), <8
x i16> %6, <8 x i16> %7) |
| 1472 ; CHECK-NEXT: %9 = load <8 x i16>, <8 x i16>* %4, align 16 |
| 1473 ; CHECK-NEXT: store <8 x i16> %9, <8 x i16>* %0, align 16 |
| 1474 ; CHECK-NEXT: ret <8 x i16> %8 |
| 1475 ; CHECK-NEXT: } |
| 1476 |
| 1477 define <16 x i32> @fn_86_16xi32_call_arg(<16 x i32> (<16 x i32>)*, <16 x i32>) { |
| 1478 entry: |
| 1479 %2 = call <16 x i32> %0(<16 x i32> %1) |
| 1480 %3 = call <16 x i32> @fn_86_16xi32_call_arg(<16 x i32> (<16 x i32>)* @fn_37_16
xi32, <16 x i32> %2) |
| 1481 ret <16 x i32> %3 |
| 1482 } |
| 1483 ; CHECK-LABEL: define <4 x i32> @fn_86_16xi32_call_arg(<4 x i32>* nocapture nonn
ull dereferenceable(16), <4 x i32>* nocapture nonnull dereferenceable(16), <4 x
i32>* nocapture nonnull dereferenceable(16), <16 x i32> (<16 x i32>)*, <4 x i32>
, <4 x i32>, <4 x i32>, <4 x i32>) { |
| 1484 ; CHECK: entry: |
| 1485 ; CHECK-NEXT: %8 = alloca <4 x i32>, align 16 |
| 1486 ; CHECK-NEXT: %9 = alloca <4 x i32>, align 16 |
| 1487 ; CHECK-NEXT: %10 = alloca <4 x i32>, align 16 |
| 1488 ; CHECK-NEXT: %11 = bitcast <16 x i32> (<16 x i32>)* %3 to <4 x i32> (<4 x i3
2>*, <4 x i32>*, <4 x i32>*, <4 x i32>, <4 x i32>, <4 x i32>, <4 x i32>)* |
| 1489 ; CHECK-NEXT: %12 = call <4 x i32> %11(<4 x i32>* nocapture nonnull dereferen
ceable(16) %8, <4 x i32>* nocapture nonnull dereferenceable(16) %9, <4 x i32>* n
ocapture nonnull dereferenceable(16) %10, <4 x i32> %4, <4 x i32> %5, <4 x i32>
%6, <4 x i32> %7) |
| 1490 ; CHECK-NEXT: %13 = load <4 x i32>, <4 x i32>* %8, align 16 |
| 1491 ; CHECK-NEXT: %14 = load <4 x i32>, <4 x i32>* %9, align 16 |
| 1492 ; CHECK-NEXT: %15 = load <4 x i32>, <4 x i32>* %10, align 16 |
| 1493 ; CHECK-NEXT: %16 = call <4 x i32> @fn_86_16xi32_call_arg(<4 x i32>* nocaptur
e nonnull dereferenceable(16) %8, <4 x i32>* nocapture nonnull dereferenceable(1
6) %9, <4 x i32>* nocapture nonnull dereferenceable(16) %10, <16 x i32> (<16 x i
32>)* bitcast (<4 x i32> (<4 x i32>*, <4 x i32>*, <4 x i32>*, <4 x i32>, <4 x i3
2>, <4 x i32>, <4 x i32>)* @fn_37_16xi32 to <16 x i32> (<16 x i32>)*), <4 x i32>
%12, <4 x i32> %13, <4 x i32> %14, <4 x i32> %15) |
| 1494 ; CHECK-NEXT: %17 = load <4 x i32>, <4 x i32>* %8, align 16 |
| 1495 ; CHECK-NEXT: %18 = load <4 x i32>, <4 x i32>* %9, align 16 |
| 1496 ; CHECK-NEXT: %19 = load <4 x i32>, <4 x i32>* %10, align 16 |
| 1497 ; CHECK-NEXT: store <4 x i32> %17, <4 x i32>* %0, align 16 |
| 1498 ; CHECK-NEXT: store <4 x i32> %18, <4 x i32>* %1, align 16 |
| 1499 ; CHECK-NEXT: store <4 x i32> %19, <4 x i32>* %2, align 16 |
| 1500 ; CHECK-NEXT: ret <4 x i32> %16 |
| 1501 ; CHECK-NEXT: } |
| 1502 |
| 1503 define <16 x i64> @fn_87_16xi64_call_arg(<16 x i64> (<16 x i64>)*, <16 x i64>) { |
| 1504 entry: |
| 1505 %2 = call <16 x i64> %0(<16 x i64> %1) |
| 1506 %3 = call <16 x i64> @fn_87_16xi64_call_arg(<16 x i64> (<16 x i64>)* @fn_38_16
xi64, <16 x i64> %2) |
| 1507 ret <16 x i64> %3 |
| 1508 } |
| 1509 ; CHECK-LABEL: define <2 x i64> @fn_87_16xi64_call_arg(<2 x i64>* nocapture nonn
ull dereferenceable(16), <2 x i64>* nocapture nonnull dereferenceable(16), <2 x
i64>* nocapture nonnull dereferenceable(16), <2 x i64>* nocapture nonnull derefe
renceable(16), <2 x i64>* nocapture nonnull dereferenceable(16), <2 x i64>* noca
pture nonnull dereferenceable(16), <2 x i64>* nocapture nonnull dereferenceable(
16), <16 x i64> (<16 x i64>)*, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x
i64>, <2 x i64>, <2 x i64>, <2 x i64>) { |
| 1510 ; CHECK: entry: |
| 1511 ; CHECK-NEXT: %16 = alloca <2 x i64>, align 16 |
| 1512 ; CHECK-NEXT: %17 = alloca <2 x i64>, align 16 |
| 1513 ; CHECK-NEXT: %18 = alloca <2 x i64>, align 16 |
| 1514 ; CHECK-NEXT: %19 = alloca <2 x i64>, align 16 |
| 1515 ; CHECK-NEXT: %20 = alloca <2 x i64>, align 16 |
| 1516 ; CHECK-NEXT: %21 = alloca <2 x i64>, align 16 |
| 1517 ; CHECK-NEXT: %22 = alloca <2 x i64>, align 16 |
| 1518 ; CHECK-NEXT: %23 = bitcast <16 x i64> (<16 x i64>)* %7 to <2 x i64> (<2 x i6
4>*, <2 x i64>*, <2 x i64>*, <2 x i64>*, <2 x i64>*, <2 x i64>*, <2 x i64>*, <2
x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i
64>)* |
| 1519 ; CHECK-NEXT: %24 = call <2 x i64> %23(<2 x i64>* nocapture nonnull dereferen
ceable(16) %16, <2 x i64>* nocapture nonnull dereferenceable(16) %17, <2 x i64>*
nocapture nonnull dereferenceable(16) %18, <2 x i64>* nocapture nonnull derefer
enceable(16) %19, <2 x i64>* nocapture nonnull dereferenceable(16) %20, <2 x i64
>* nocapture nonnull dereferenceable(16) %21, <2 x i64>* nocapture nonnull deref
erenceable(16) %22, <2 x i64> %8, <2 x i64> %9, <2 x i64> %10, <2 x i64> %11, <2
x i64> %12, <2 x i64> %13, <2 x i64> %14, <2 x i64> %15) |
| 1520 ; CHECK-NEXT: %25 = load <2 x i64>, <2 x i64>* %16, align 16 |
| 1521 ; CHECK-NEXT: %26 = load <2 x i64>, <2 x i64>* %17, align 16 |
| 1522 ; CHECK-NEXT: %27 = load <2 x i64>, <2 x i64>* %18, align 16 |
| 1523 ; CHECK-NEXT: %28 = load <2 x i64>, <2 x i64>* %19, align 16 |
| 1524 ; CHECK-NEXT: %29 = load <2 x i64>, <2 x i64>* %20, align 16 |
| 1525 ; CHECK-NEXT: %30 = load <2 x i64>, <2 x i64>* %21, align 16 |
| 1526 ; CHECK-NEXT: %31 = load <2 x i64>, <2 x i64>* %22, align 16 |
| 1527 ; CHECK-NEXT: %32 = call <2 x i64> @fn_87_16xi64_call_arg(<2 x i64>* nocaptur
e nonnull dereferenceable(16) %16, <2 x i64>* nocapture nonnull dereferenceable(
16) %17, <2 x i64>* nocapture nonnull dereferenceable(16) %18, <2 x i64>* nocapt
ure nonnull dereferenceable(16) %19, <2 x i64>* nocapture nonnull dereferenceabl
e(16) %20, <2 x i64>* nocapture nonnull dereferenceable(16) %21, <2 x i64>* noca
pture nonnull dereferenceable(16) %22, <16 x i64> (<16 x i64>)* bitcast (<2 x i6
4> (<2 x i64>*, <2 x i64>*, <2 x i64>*, <2 x i64>*, <2 x i64>*, <2 x i64>*, <2 x
i64>*, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i
64>, <2 x i64>)* @fn_38_16xi64 to <16 x i64> (<16 x i64>)*), <2 x i64> %24, <2 x
i64> %25, <2 x i64> %26, <2 x i64> %27, <2 x i64> %28, <2 x i64> %29, <2 x i64>
%30, <2 x i64> %31) |
| 1528 ; CHECK-NEXT: %33 = load <2 x i64>, <2 x i64>* %16, align 16 |
| 1529 ; CHECK-NEXT: %34 = load <2 x i64>, <2 x i64>* %17, align 16 |
| 1530 ; CHECK-NEXT: %35 = load <2 x i64>, <2 x i64>* %18, align 16 |
| 1531 ; CHECK-NEXT: %36 = load <2 x i64>, <2 x i64>* %19, align 16 |
| 1532 ; CHECK-NEXT: %37 = load <2 x i64>, <2 x i64>* %20, align 16 |
| 1533 ; CHECK-NEXT: %38 = load <2 x i64>, <2 x i64>* %21, align 16 |
| 1534 ; CHECK-NEXT: %39 = load <2 x i64>, <2 x i64>* %22, align 16 |
| 1535 ; CHECK-NEXT: store <2 x i64> %33, <2 x i64>* %0, align 16 |
| 1536 ; CHECK-NEXT: store <2 x i64> %34, <2 x i64>* %1, align 16 |
| 1537 ; CHECK-NEXT: store <2 x i64> %35, <2 x i64>* %2, align 16 |
| 1538 ; CHECK-NEXT: store <2 x i64> %36, <2 x i64>* %3, align 16 |
| 1539 ; CHECK-NEXT: store <2 x i64> %37, <2 x i64>* %4, align 16 |
| 1540 ; CHECK-NEXT: store <2 x i64> %38, <2 x i64>* %5, align 16 |
| 1541 ; CHECK-NEXT: store <2 x i64> %39, <2 x i64>* %6, align 16 |
| 1542 ; CHECK-NEXT: ret <2 x i64> %32 |
| 1543 ; CHECK-NEXT: } |
| 1544 |
| 1545 define <16 x i8*> @fn_88_16xi8ptr_call_arg(<16 x i8*> (<16 x i8*>)*, <16 x i8*>)
{ |
| 1546 entry: |
| 1547 %2 = call <16 x i8*> %0(<16 x i8*> %1) |
| 1548 %3 = call <16 x i8*> @fn_88_16xi8ptr_call_arg(<16 x i8*> (<16 x i8*>)* @fn_39_
16xi8ptr, <16 x i8*> %2) |
| 1549 ret <16 x i8*> %3 |
| 1550 } |
| 1551 ; CHECK-LABEL: define <4 x i8*> @fn_88_16xi8ptr_call_arg(<4 x i8*>* nocapture no
nnull dereferenceable(16), <4 x i8*>* nocapture nonnull dereferenceable(16), <4
x i8*>* nocapture nonnull dereferenceable(16), <16 x i8*> (<16 x i8*>)*, <4 x i8
*>, <4 x i8*>, <4 x i8*>, <4 x i8*>) { |
| 1552 ; CHECK: entry: |
| 1553 ; CHECK-NEXT: %8 = alloca <4 x i8*>, align 16 |
| 1554 ; CHECK-NEXT: %9 = alloca <4 x i8*>, align 16 |
| 1555 ; CHECK-NEXT: %10 = alloca <4 x i8*>, align 16 |
| 1556 ; CHECK-NEXT: %11 = bitcast <16 x i8*> (<16 x i8*>)* %3 to <4 x i8*> (<4 x i8
*>*, <4 x i8*>*, <4 x i8*>*, <4 x i8*>, <4 x i8*>, <4 x i8*>, <4 x i8*>)* |
| 1557 ; CHECK-NEXT: %12 = call <4 x i8*> %11(<4 x i8*>* nocapture nonnull dereferen
ceable(16) %8, <4 x i8*>* nocapture nonnull dereferenceable(16) %9, <4 x i8*>* n
ocapture nonnull dereferenceable(16) %10, <4 x i8*> %4, <4 x i8*> %5, <4 x i8*>
%6, <4 x i8*> %7) |
| 1558 ; CHECK-NEXT: %13 = load <4 x i8*>, <4 x i8*>* %8, align 16 |
| 1559 ; CHECK-NEXT: %14 = load <4 x i8*>, <4 x i8*>* %9, align 16 |
| 1560 ; CHECK-NEXT: %15 = load <4 x i8*>, <4 x i8*>* %10, align 16 |
| 1561 ; CHECK-NEXT: %16 = call <4 x i8*> @fn_88_16xi8ptr_call_arg(<4 x i8*>* nocapt
ure nonnull dereferenceable(16) %8, <4 x i8*>* nocapture nonnull dereferenceable
(16) %9, <4 x i8*>* nocapture nonnull dereferenceable(16) %10, <16 x i8*> (<16 x
i8*>)* bitcast (<4 x i8*> (<4 x i8*>*, <4 x i8*>*, <4 x i8*>*, <4 x i8*>, <4 x
i8*>, <4 x i8*>, <4 x i8*>)* @fn_39_16xi8ptr to <16 x i8*> (<16 x i8*>)*), <4 x
i8*> %12, <4 x i8*> %13, <4 x i8*> %14, <4 x i8*> %15) |
| 1562 ; CHECK-NEXT: %17 = load <4 x i8*>, <4 x i8*>* %8, align 16 |
| 1563 ; CHECK-NEXT: %18 = load <4 x i8*>, <4 x i8*>* %9, align 16 |
| 1564 ; CHECK-NEXT: %19 = load <4 x i8*>, <4 x i8*>* %10, align 16 |
| 1565 ; CHECK-NEXT: store <4 x i8*> %17, <4 x i8*>* %0, align 16 |
| 1566 ; CHECK-NEXT: store <4 x i8*> %18, <4 x i8*>* %1, align 16 |
| 1567 ; CHECK-NEXT: store <4 x i8*> %19, <4 x i8*>* %2, align 16 |
| 1568 ; CHECK-NEXT: ret <4 x i8*> %16 |
| 1569 ; CHECK-NEXT: } |
| 1570 |
| 1571 define <16 x float> @fn_89_16xfloat_call_arg(<16 x float> (<16 x float>)*, <16 x
float>) { |
| 1572 entry: |
| 1573 %2 = call <16 x float> %0(<16 x float> %1) |
| 1574 %3 = call <16 x float> @fn_89_16xfloat_call_arg(<16 x float> (<16 x float>)* @
fn_40_16xfloat, <16 x float> %2) |
| 1575 ret <16 x float> %3 |
| 1576 } |
| 1577 ; CHECK-LABEL: define <4 x float> @fn_89_16xfloat_call_arg(<4 x float>* nocaptur
e nonnull dereferenceable(16), <4 x float>* nocapture nonnull dereferenceable(16
), <4 x float>* nocapture nonnull dereferenceable(16), <16 x float> (<16 x float
>)*, <4 x float>, <4 x float>, <4 x float>, <4 x float>) { |
| 1578 ; CHECK: entry: |
| 1579 ; CHECK-NEXT: %8 = alloca <4 x float>, align 16 |
| 1580 ; CHECK-NEXT: %9 = alloca <4 x float>, align 16 |
| 1581 ; CHECK-NEXT: %10 = alloca <4 x float>, align 16 |
| 1582 ; CHECK-NEXT: %11 = bitcast <16 x float> (<16 x float>)* %3 to <4 x float> (<
4 x float>*, <4 x float>*, <4 x float>*, <4 x float>, <4 x float>, <4 x float>,
<4 x float>)* |
| 1583 ; CHECK-NEXT: %12 = call <4 x float> %11(<4 x float>* nocapture nonnull deref
erenceable(16) %8, <4 x float>* nocapture nonnull dereferenceable(16) %9, <4 x f
loat>* nocapture nonnull dereferenceable(16) %10, <4 x float> %4, <4 x float> %5
, <4 x float> %6, <4 x float> %7) |
| 1584 ; CHECK-NEXT: %13 = load <4 x float>, <4 x float>* %8, align 16 |
| 1585 ; CHECK-NEXT: %14 = load <4 x float>, <4 x float>* %9, align 16 |
| 1586 ; CHECK-NEXT: %15 = load <4 x float>, <4 x float>* %10, align 16 |
| 1587 ; CHECK-NEXT: %16 = call <4 x float> @fn_89_16xfloat_call_arg(<4 x float>* no
capture nonnull dereferenceable(16) %8, <4 x float>* nocapture nonnull dereferen
ceable(16) %9, <4 x float>* nocapture nonnull dereferenceable(16) %10, <16 x flo
at> (<16 x float>)* bitcast (<4 x float> (<4 x float>*, <4 x float>*, <4 x float
>*, <4 x float>, <4 x float>, <4 x float>, <4 x float>)* @fn_40_16xfloat to <16
x float> (<16 x float>)*), <4 x float> %12, <4 x float> %13, <4 x float> %14, <4
x float> %15) |
| 1588 ; CHECK-NEXT: %17 = load <4 x float>, <4 x float>* %8, align 16 |
| 1589 ; CHECK-NEXT: %18 = load <4 x float>, <4 x float>* %9, align 16 |
| 1590 ; CHECK-NEXT: %19 = load <4 x float>, <4 x float>* %10, align 16 |
| 1591 ; CHECK-NEXT: store <4 x float> %17, <4 x float>* %0, align 16 |
| 1592 ; CHECK-NEXT: store <4 x float> %18, <4 x float>* %1, align 16 |
| 1593 ; CHECK-NEXT: store <4 x float> %19, <4 x float>* %2, align 16 |
| 1594 ; CHECK-NEXT: ret <4 x float> %16 |
| 1595 ; CHECK-NEXT: } |
| 1596 |
| 1597 define <16 x double> @fn_90_16xdouble_call_arg(<16 x double> (<16 x double>)*, <
16 x double>) { |
| 1598 entry: |
| 1599 %2 = call <16 x double> %0(<16 x double> %1) |
| 1600 %3 = call <16 x double> @fn_90_16xdouble_call_arg(<16 x double> (<16 x double>
)* @fn_41_16xdouble, <16 x double> %2) |
| 1601 ret <16 x double> %3 |
| 1602 } |
| 1603 ; CHECK-LABEL: define <2 x double> @fn_90_16xdouble_call_arg(<2 x double>* nocap
ture nonnull dereferenceable(16), <2 x double>* nocapture nonnull dereferenceabl
e(16), <2 x double>* nocapture nonnull dereferenceable(16), <2 x double>* nocapt
ure nonnull dereferenceable(16), <2 x double>* nocapture nonnull dereferenceable
(16), <2 x double>* nocapture nonnull dereferenceable(16), <2 x double>* nocaptu
re nonnull dereferenceable(16), <16 x double> (<16 x double>)*, <2 x double>, <2
x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>
, <2 x double>) { |
| 1604 ; CHECK: entry: |
| 1605 ; CHECK-NEXT: %16 = alloca <2 x double>, align 16 |
| 1606 ; CHECK-NEXT: %17 = alloca <2 x double>, align 16 |
| 1607 ; CHECK-NEXT: %18 = alloca <2 x double>, align 16 |
| 1608 ; CHECK-NEXT: %19 = alloca <2 x double>, align 16 |
| 1609 ; CHECK-NEXT: %20 = alloca <2 x double>, align 16 |
| 1610 ; CHECK-NEXT: %21 = alloca <2 x double>, align 16 |
| 1611 ; CHECK-NEXT: %22 = alloca <2 x double>, align 16 |
| 1612 ; CHECK-NEXT: %23 = bitcast <16 x double> (<16 x double>)* %7 to <2 x double>
(<2 x double>*, <2 x double>*, <2 x double>*, <2 x double>*, <2 x double>*, <2
x double>*, <2 x double>*, <2 x double>, <2 x double>, <2 x double>, <2 x double
>, <2 x double>, <2 x double>, <2 x double>, <2 x double>)* |
| 1613 ; CHECK-NEXT: %24 = call <2 x double> %23(<2 x double>* nocapture nonnull der
eferenceable(16) %16, <2 x double>* nocapture nonnull dereferenceable(16) %17, <
2 x double>* nocapture nonnull dereferenceable(16) %18, <2 x double>* nocapture
nonnull dereferenceable(16) %19, <2 x double>* nocapture nonnull dereferenceable
(16) %20, <2 x double>* nocapture nonnull dereferenceable(16) %21, <2 x double>*
nocapture nonnull dereferenceable(16) %22, <2 x double> %8, <2 x double> %9, <2
x double> %10, <2 x double> %11, <2 x double> %12, <2 x double> %13, <2 x doubl
e> %14, <2 x double> %15) |
| 1614 ; CHECK-NEXT: %25 = load <2 x double>, <2 x double>* %16, align 16 |
| 1615 ; CHECK-NEXT: %26 = load <2 x double>, <2 x double>* %17, align 16 |
| 1616 ; CHECK-NEXT: %27 = load <2 x double>, <2 x double>* %18, align 16 |
| 1617 ; CHECK-NEXT: %28 = load <2 x double>, <2 x double>* %19, align 16 |
| 1618 ; CHECK-NEXT: %29 = load <2 x double>, <2 x double>* %20, align 16 |
| 1619 ; CHECK-NEXT: %30 = load <2 x double>, <2 x double>* %21, align 16 |
| 1620 ; CHECK-NEXT: %31 = load <2 x double>, <2 x double>* %22, align 16 |
| 1621 ; CHECK-NEXT: %32 = call <2 x double> @fn_90_16xdouble_call_arg(<2 x double>*
nocapture nonnull dereferenceable(16) %16, <2 x double>* nocapture nonnull dere
ferenceable(16) %17, <2 x double>* nocapture nonnull dereferenceable(16) %18, <2
x double>* nocapture nonnull dereferenceable(16) %19, <2 x double>* nocapture n
onnull dereferenceable(16) %20, <2 x double>* nocapture nonnull dereferenceable(
16) %21, <2 x double>* nocapture nonnull dereferenceable(16) %22, <16 x double>
(<16 x double>)* bitcast (<2 x double> (<2 x double>*, <2 x double>*, <2 x doubl
e>*, <2 x double>*, <2 x double>*, <2 x double>*, <2 x double>*, <2 x double>, <
2 x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double
>, <2 x double>)* @fn_41_16xdouble to <16 x double> (<16 x double>)*), <2 x doub
le> %24, <2 x double> %25, <2 x double> %26, <2 x double> %27, <2 x double> %28,
<2 x double> %29, <2 x double> %30, <2 x double> %31) |
| 1622 ; CHECK-NEXT: %33 = load <2 x double>, <2 x double>* %16, align 16 |
| 1623 ; CHECK-NEXT: %34 = load <2 x double>, <2 x double>* %17, align 16 |
| 1624 ; CHECK-NEXT: %35 = load <2 x double>, <2 x double>* %18, align 16 |
| 1625 ; CHECK-NEXT: %36 = load <2 x double>, <2 x double>* %19, align 16 |
| 1626 ; CHECK-NEXT: %37 = load <2 x double>, <2 x double>* %20, align 16 |
| 1627 ; CHECK-NEXT: %38 = load <2 x double>, <2 x double>* %21, align 16 |
| 1628 ; CHECK-NEXT: %39 = load <2 x double>, <2 x double>* %22, align 16 |
| 1629 ; CHECK-NEXT: store <2 x double> %33, <2 x double>* %0, align 16 |
| 1630 ; CHECK-NEXT: store <2 x double> %34, <2 x double>* %1, align 16 |
| 1631 ; CHECK-NEXT: store <2 x double> %35, <2 x double>* %2, align 16 |
| 1632 ; CHECK-NEXT: store <2 x double> %36, <2 x double>* %3, align 16 |
| 1633 ; CHECK-NEXT: store <2 x double> %37, <2 x double>* %4, align 16 |
| 1634 ; CHECK-NEXT: store <2 x double> %38, <2 x double>* %5, align 16 |
| 1635 ; CHECK-NEXT: store <2 x double> %39, <2 x double>* %6, align 16 |
| 1636 ; CHECK-NEXT: ret <2 x double> %32 |
| 1637 ; CHECK-NEXT: } |
| 1638 |
| 1639 define <20 x i8> @fn_91_20xi8_call_arg(<20 x i8> (<20 x i8>)*, <20 x i8>) { |
| 1640 entry: |
| 1641 %2 = call <20 x i8> %0(<20 x i8> %1) |
| 1642 %3 = call <20 x i8> @fn_91_20xi8_call_arg(<20 x i8> (<20 x i8>)* @fn_42_20xi8,
<20 x i8> %2) |
| 1643 ret <20 x i8> %3 |
| 1644 } |
| 1645 ; CHECK-LABEL: define <16 x i8> @fn_91_20xi8_call_arg(<16 x i8>* nocapture nonnu
ll dereferenceable(16), <20 x i8> (<20 x i8>)*, <16 x i8>, <16 x i8>) { |
| 1646 ; CHECK: entry: |
| 1647 ; CHECK-NEXT: %4 = alloca <16 x i8>, align 16 |
| 1648 ; CHECK-NEXT: %5 = bitcast <20 x i8> (<20 x i8>)* %1 to <16 x i8> (<16 x i8>*
, <16 x i8>, <16 x i8>)* |
| 1649 ; CHECK-NEXT: %6 = call <16 x i8> %5(<16 x i8>* nocapture nonnull dereference
able(16) %4, <16 x i8> %2, <16 x i8> %3) |
| 1650 ; CHECK-NEXT: %7 = load <16 x i8>, <16 x i8>* %4, align 16 |
| 1651 ; CHECK-NEXT: %8 = call <16 x i8> @fn_91_20xi8_call_arg(<16 x i8>* nocapture
nonnull dereferenceable(16) %4, <20 x i8> (<20 x i8>)* bitcast (<16 x i8> (<16 x
i8>*, <16 x i8>, <16 x i8>)* @fn_42_20xi8 to <20 x i8> (<20 x i8>)*), <16 x i8>
%6, <16 x i8> %7) |
| 1652 ; CHECK-NEXT: %9 = load <16 x i8>, <16 x i8>* %4, align 16 |
| 1653 ; CHECK-NEXT: store <16 x i8> %9, <16 x i8>* %0, align 16 |
| 1654 ; CHECK-NEXT: ret <16 x i8> %8 |
| 1655 ; CHECK-NEXT: } |
| 1656 |
| 1657 define <20 x i16> @fn_92_20xi16_call_arg(<20 x i16> (<20 x i16>)*, <20 x i16>) { |
| 1658 entry: |
| 1659 %2 = call <20 x i16> %0(<20 x i16> %1) |
| 1660 %3 = call <20 x i16> @fn_92_20xi16_call_arg(<20 x i16> (<20 x i16>)* @fn_43_20
xi16, <20 x i16> %2) |
| 1661 ret <20 x i16> %3 |
| 1662 } |
| 1663 ; CHECK-LABEL: define <8 x i16> @fn_92_20xi16_call_arg(<8 x i16>* nocapture nonn
ull dereferenceable(16), <8 x i16>* nocapture nonnull dereferenceable(16), <20 x
i16> (<20 x i16>)*, <8 x i16>, <8 x i16>, <8 x i16>) { |
| 1664 ; CHECK: entry: |
| 1665 ; CHECK-NEXT: %6 = alloca <8 x i16>, align 16 |
| 1666 ; CHECK-NEXT: %7 = alloca <8 x i16>, align 16 |
| 1667 ; CHECK-NEXT: %8 = bitcast <20 x i16> (<20 x i16>)* %2 to <8 x i16> (<8 x i16
>*, <8 x i16>*, <8 x i16>, <8 x i16>, <8 x i16>)* |
| 1668 ; CHECK-NEXT: %9 = call <8 x i16> %8(<8 x i16>* nocapture nonnull dereference
able(16) %6, <8 x i16>* nocapture nonnull dereferenceable(16) %7, <8 x i16> %3,
<8 x i16> %4, <8 x i16> %5) |
| 1669 ; CHECK-NEXT: %10 = load <8 x i16>, <8 x i16>* %6, align 16 |
| 1670 ; CHECK-NEXT: %11 = load <8 x i16>, <8 x i16>* %7, align 16 |
| 1671 ; CHECK-NEXT: %12 = call <8 x i16> @fn_92_20xi16_call_arg(<8 x i16>* nocaptur
e nonnull dereferenceable(16) %6, <8 x i16>* nocapture nonnull dereferenceable(1
6) %7, <20 x i16> (<20 x i16>)* bitcast (<8 x i16> (<8 x i16>*, <8 x i16>*, <8 x
i16>, <8 x i16>, <8 x i16>)* @fn_43_20xi16 to <20 x i16> (<20 x i16>)*), <8 x i
16> %9, <8 x i16> %10, <8 x i16> %11) |
| 1672 ; CHECK-NEXT: %13 = load <8 x i16>, <8 x i16>* %6, align 16 |
| 1673 ; CHECK-NEXT: %14 = load <8 x i16>, <8 x i16>* %7, align 16 |
| 1674 ; CHECK-NEXT: store <8 x i16> %13, <8 x i16>* %0, align 16 |
| 1675 ; CHECK-NEXT: store <8 x i16> %14, <8 x i16>* %1, align 16 |
| 1676 ; CHECK-NEXT: ret <8 x i16> %12 |
| 1677 ; CHECK-NEXT: } |
| 1678 |
| 1679 define <20 x i32> @fn_93_20xi32_call_arg(<20 x i32> (<20 x i32>)*, <20 x i32>) { |
| 1680 entry: |
| 1681 %2 = call <20 x i32> %0(<20 x i32> %1) |
| 1682 %3 = call <20 x i32> @fn_93_20xi32_call_arg(<20 x i32> (<20 x i32>)* @fn_44_20
xi32, <20 x i32> %2) |
| 1683 ret <20 x i32> %3 |
| 1684 } |
| 1685 ; CHECK-LABEL: define <4 x i32> @fn_93_20xi32_call_arg(<4 x i32>* nocapture nonn
ull dereferenceable(16), <4 x i32>* nocapture nonnull dereferenceable(16), <4 x
i32>* nocapture nonnull dereferenceable(16), <4 x i32>* nocapture nonnull derefe
renceable(16), <20 x i32> (<20 x i32>)*, <4 x i32>, <4 x i32>, <4 x i32>, <4 x i
32>, <4 x i32>) { |
| 1686 ; CHECK: entry: |
| 1687 ; CHECK-NEXT: %10 = alloca <4 x i32>, align 16 |
| 1688 ; CHECK-NEXT: %11 = alloca <4 x i32>, align 16 |
| 1689 ; CHECK-NEXT: %12 = alloca <4 x i32>, align 16 |
| 1690 ; CHECK-NEXT: %13 = alloca <4 x i32>, align 16 |
| 1691 ; CHECK-NEXT: %14 = bitcast <20 x i32> (<20 x i32>)* %4 to <4 x i32> (<4 x i3
2>*, <4 x i32>*, <4 x i32>*, <4 x i32>*, <4 x i32>, <4 x i32>, <4 x i32>, <4 x i
32>, <4 x i32>)* |
| 1692 ; CHECK-NEXT: %15 = call <4 x i32> %14(<4 x i32>* nocapture nonnull dereferen
ceable(16) %10, <4 x i32>* nocapture nonnull dereferenceable(16) %11, <4 x i32>*
nocapture nonnull dereferenceable(16) %12, <4 x i32>* nocapture nonnull derefer
enceable(16) %13, <4 x i32> %5, <4 x i32> %6, <4 x i32> %7, <4 x i32> %8, <4 x i
32> %9) |
| 1693 ; CHECK-NEXT: %16 = load <4 x i32>, <4 x i32>* %10, align 16 |
| 1694 ; CHECK-NEXT: %17 = load <4 x i32>, <4 x i32>* %11, align 16 |
| 1695 ; CHECK-NEXT: %18 = load <4 x i32>, <4 x i32>* %12, align 16 |
| 1696 ; CHECK-NEXT: %19 = load <4 x i32>, <4 x i32>* %13, align 16 |
| 1697 ; CHECK-NEXT: %20 = call <4 x i32> @fn_93_20xi32_call_arg(<4 x i32>* nocaptur
e nonnull dereferenceable(16) %10, <4 x i32>* nocapture nonnull dereferenceable(
16) %11, <4 x i32>* nocapture nonnull dereferenceable(16) %12, <4 x i32>* nocapt
ure nonnull dereferenceable(16) %13, <20 x i32> (<20 x i32>)* bitcast (<4 x i32>
(<4 x i32>*, <4 x i32>*, <4 x i32>*, <4 x i32>*, <4 x i32>, <4 x i32>, <4 x i32
>, <4 x i32>, <4 x i32>)* @fn_44_20xi32 to <20 x i32> (<20 x i32>)*), <4 x i32>
%15, <4 x i32> %16, <4 x i32> %17, <4 x i32> %18, <4 x i32> %19) |
| 1698 ; CHECK-NEXT: %21 = load <4 x i32>, <4 x i32>* %10, align 16 |
| 1699 ; CHECK-NEXT: %22 = load <4 x i32>, <4 x i32>* %11, align 16 |
| 1700 ; CHECK-NEXT: %23 = load <4 x i32>, <4 x i32>* %12, align 16 |
| 1701 ; CHECK-NEXT: %24 = load <4 x i32>, <4 x i32>* %13, align 16 |
| 1702 ; CHECK-NEXT: store <4 x i32> %21, <4 x i32>* %0, align 16 |
| 1703 ; CHECK-NEXT: store <4 x i32> %22, <4 x i32>* %1, align 16 |
| 1704 ; CHECK-NEXT: store <4 x i32> %23, <4 x i32>* %2, align 16 |
| 1705 ; CHECK-NEXT: store <4 x i32> %24, <4 x i32>* %3, align 16 |
| 1706 ; CHECK-NEXT: ret <4 x i32> %20 |
| 1707 ; CHECK-NEXT: } |
| 1708 |
| 1709 define <20 x i64> @fn_94_20xi64_call_arg(<20 x i64> (<20 x i64>)*, <20 x i64>) { |
| 1710 entry: |
| 1711 %2 = call <20 x i64> %0(<20 x i64> %1) |
| 1712 %3 = call <20 x i64> @fn_94_20xi64_call_arg(<20 x i64> (<20 x i64>)* @fn_45_20
xi64, <20 x i64> %2) |
| 1713 ret <20 x i64> %3 |
| 1714 } |
| 1715 ; CHECK-LABEL: define <2 x i64> @fn_94_20xi64_call_arg(<2 x i64>* nocapture nonn
ull dereferenceable(16), <2 x i64>* nocapture nonnull dereferenceable(16), <2 x
i64>* nocapture nonnull dereferenceable(16), <2 x i64>* nocapture nonnull derefe
renceable(16), <2 x i64>* nocapture nonnull dereferenceable(16), <2 x i64>* noca
pture nonnull dereferenceable(16), <2 x i64>* nocapture nonnull dereferenceable(
16), <2 x i64>* nocapture nonnull dereferenceable(16), <2 x i64>* nocapture nonn
ull dereferenceable(16), <20 x i64> (<20 x i64>)*, <2 x i64>, <2 x i64>, <2 x i6
4>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>)
{ |
| 1716 ; CHECK: entry: |
| 1717 ; CHECK-NEXT: %20 = alloca <2 x i64>, align 16 |
| 1718 ; CHECK-NEXT: %21 = alloca <2 x i64>, align 16 |
| 1719 ; CHECK-NEXT: %22 = alloca <2 x i64>, align 16 |
| 1720 ; CHECK-NEXT: %23 = alloca <2 x i64>, align 16 |
| 1721 ; CHECK-NEXT: %24 = alloca <2 x i64>, align 16 |
| 1722 ; CHECK-NEXT: %25 = alloca <2 x i64>, align 16 |
| 1723 ; CHECK-NEXT: %26 = alloca <2 x i64>, align 16 |
| 1724 ; CHECK-NEXT: %27 = alloca <2 x i64>, align 16 |
| 1725 ; CHECK-NEXT: %28 = alloca <2 x i64>, align 16 |
| 1726 ; CHECK-NEXT: %29 = bitcast <20 x i64> (<20 x i64>)* %9 to <2 x i64> (<2 x i6
4>*, <2 x i64>*, <2 x i64>*, <2 x i64>*, <2 x i64>*, <2 x i64>*, <2 x i64>*, <2
x i64>*, <2 x i64>*, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x
i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>)* |
| 1727 ; CHECK-NEXT: %30 = call <2 x i64> %29(<2 x i64>* nocapture nonnull dereferen
ceable(16) %20, <2 x i64>* nocapture nonnull dereferenceable(16) %21, <2 x i64>*
nocapture nonnull dereferenceable(16) %22, <2 x i64>* nocapture nonnull derefer
enceable(16) %23, <2 x i64>* nocapture nonnull dereferenceable(16) %24, <2 x i64
>* nocapture nonnull dereferenceable(16) %25, <2 x i64>* nocapture nonnull deref
erenceable(16) %26, <2 x i64>* nocapture nonnull dereferenceable(16) %27, <2 x i
64>* nocapture nonnull dereferenceable(16) %28, <2 x i64> %10, <2 x i64> %11, <2
x i64> %12, <2 x i64> %13, <2 x i64> %14, <2 x i64> %15, <2 x i64> %16, <2 x i6
4> %17, <2 x i64> %18, <2 x i64> %19) |
| 1728 ; CHECK-NEXT: %31 = load <2 x i64>, <2 x i64>* %20, align 16 |
| 1729 ; CHECK-NEXT: %32 = load <2 x i64>, <2 x i64>* %21, align 16 |
| 1730 ; CHECK-NEXT: %33 = load <2 x i64>, <2 x i64>* %22, align 16 |
| 1731 ; CHECK-NEXT: %34 = load <2 x i64>, <2 x i64>* %23, align 16 |
| 1732 ; CHECK-NEXT: %35 = load <2 x i64>, <2 x i64>* %24, align 16 |
| 1733 ; CHECK-NEXT: %36 = load <2 x i64>, <2 x i64>* %25, align 16 |
| 1734 ; CHECK-NEXT: %37 = load <2 x i64>, <2 x i64>* %26, align 16 |
| 1735 ; CHECK-NEXT: %38 = load <2 x i64>, <2 x i64>* %27, align 16 |
| 1736 ; CHECK-NEXT: %39 = load <2 x i64>, <2 x i64>* %28, align 16 |
| 1737 ; CHECK-NEXT: %40 = call <2 x i64> @fn_94_20xi64_call_arg(<2 x i64>* nocaptur
e nonnull dereferenceable(16) %20, <2 x i64>* nocapture nonnull dereferenceable(
16) %21, <2 x i64>* nocapture nonnull dereferenceable(16) %22, <2 x i64>* nocapt
ure nonnull dereferenceable(16) %23, <2 x i64>* nocapture nonnull dereferenceabl
e(16) %24, <2 x i64>* nocapture nonnull dereferenceable(16) %25, <2 x i64>* noca
pture nonnull dereferenceable(16) %26, <2 x i64>* nocapture nonnull dereferencea
ble(16) %27, <2 x i64>* nocapture nonnull dereferenceable(16) %28, <20 x i64> (<
20 x i64>)* bitcast (<2 x i64> (<2 x i64>*, <2 x i64>*, <2 x i64>*, <2 x i64>*,
<2 x i64>*, <2 x i64>*, <2 x i64>*, <2 x i64>*, <2 x i64>*, <2 x i64>, <2 x i64>
, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <2 x i64>, <
2 x i64>)* @fn_45_20xi64 to <20 x i64> (<20 x i64>)*), <2 x i64> %30, <2 x i64>
%31, <2 x i64> %32, <2 x i64> %33, <2 x i64> %34, <2 x i64> %35, <2 x i64> %36,
<2 x i64> %37, <2 x i64> %38, <2 x i64> %39) |
| 1738 ; CHECK-NEXT: %41 = load <2 x i64>, <2 x i64>* %20, align 16 |
| 1739 ; CHECK-NEXT: %42 = load <2 x i64>, <2 x i64>* %21, align 16 |
| 1740 ; CHECK-NEXT: %43 = load <2 x i64>, <2 x i64>* %22, align 16 |
| 1741 ; CHECK-NEXT: %44 = load <2 x i64>, <2 x i64>* %23, align 16 |
| 1742 ; CHECK-NEXT: %45 = load <2 x i64>, <2 x i64>* %24, align 16 |
| 1743 ; CHECK-NEXT: %46 = load <2 x i64>, <2 x i64>* %25, align 16 |
| 1744 ; CHECK-NEXT: %47 = load <2 x i64>, <2 x i64>* %26, align 16 |
| 1745 ; CHECK-NEXT: %48 = load <2 x i64>, <2 x i64>* %27, align 16 |
| 1746 ; CHECK-NEXT: %49 = load <2 x i64>, <2 x i64>* %28, align 16 |
| 1747 ; CHECK-NEXT: store <2 x i64> %41, <2 x i64>* %0, align 16 |
| 1748 ; CHECK-NEXT: store <2 x i64> %42, <2 x i64>* %1, align 16 |
| 1749 ; CHECK-NEXT: store <2 x i64> %43, <2 x i64>* %2, align 16 |
| 1750 ; CHECK-NEXT: store <2 x i64> %44, <2 x i64>* %3, align 16 |
| 1751 ; CHECK-NEXT: store <2 x i64> %45, <2 x i64>* %4, align 16 |
| 1752 ; CHECK-NEXT: store <2 x i64> %46, <2 x i64>* %5, align 16 |
| 1753 ; CHECK-NEXT: store <2 x i64> %47, <2 x i64>* %6, align 16 |
| 1754 ; CHECK-NEXT: store <2 x i64> %48, <2 x i64>* %7, align 16 |
| 1755 ; CHECK-NEXT: store <2 x i64> %49, <2 x i64>* %8, align 16 |
| 1756 ; CHECK-NEXT: ret <2 x i64> %40 |
| 1757 ; CHECK-NEXT: } |
| 1758 |
| 1759 define <20 x i8*> @fn_95_20xi8ptr_call_arg(<20 x i8*> (<20 x i8*>)*, <20 x i8*>)
{ |
| 1760 entry: |
| 1761 %2 = call <20 x i8*> %0(<20 x i8*> %1) |
| 1762 %3 = call <20 x i8*> @fn_95_20xi8ptr_call_arg(<20 x i8*> (<20 x i8*>)* @fn_46_
20xi8ptr, <20 x i8*> %2) |
| 1763 ret <20 x i8*> %3 |
| 1764 } |
| 1765 ; CHECK-LABEL: define <4 x i8*> @fn_95_20xi8ptr_call_arg(<4 x i8*>* nocapture no
nnull dereferenceable(16), <4 x i8*>* nocapture nonnull dereferenceable(16), <4
x i8*>* nocapture nonnull dereferenceable(16), <4 x i8*>* nocapture nonnull dere
ferenceable(16), <20 x i8*> (<20 x i8*>)*, <4 x i8*>, <4 x i8*>, <4 x i8*>, <4 x
i8*>, <4 x i8*>) { |
| 1766 ; CHECK: entry: |
| 1767 ; CHECK-NEXT: %10 = alloca <4 x i8*>, align 16 |
| 1768 ; CHECK-NEXT: %11 = alloca <4 x i8*>, align 16 |
| 1769 ; CHECK-NEXT: %12 = alloca <4 x i8*>, align 16 |
| 1770 ; CHECK-NEXT: %13 = alloca <4 x i8*>, align 16 |
| 1771 ; CHECK-NEXT: %14 = bitcast <20 x i8*> (<20 x i8*>)* %4 to <4 x i8*> (<4 x i8
*>*, <4 x i8*>*, <4 x i8*>*, <4 x i8*>*, <4 x i8*>, <4 x i8*>, <4 x i8*>, <4 x i
8*>, <4 x i8*>)* |
| 1772 ; CHECK-NEXT: %15 = call <4 x i8*> %14(<4 x i8*>* nocapture nonnull dereferen
ceable(16) %10, <4 x i8*>* nocapture nonnull dereferenceable(16) %11, <4 x i8*>*
nocapture nonnull dereferenceable(16) %12, <4 x i8*>* nocapture nonnull derefer
enceable(16) %13, <4 x i8*> %5, <4 x i8*> %6, <4 x i8*> %7, <4 x i8*> %8, <4 x i
8*> %9) |
| 1773 ; CHECK-NEXT: %16 = load <4 x i8*>, <4 x i8*>* %10, align 16 |
| 1774 ; CHECK-NEXT: %17 = load <4 x i8*>, <4 x i8*>* %11, align 16 |
| 1775 ; CHECK-NEXT: %18 = load <4 x i8*>, <4 x i8*>* %12, align 16 |
| 1776 ; CHECK-NEXT: %19 = load <4 x i8*>, <4 x i8*>* %13, align 16 |
| 1777 ; CHECK-NEXT: %20 = call <4 x i8*> @fn_95_20xi8ptr_call_arg(<4 x i8*>* nocapt
ure nonnull dereferenceable(16) %10, <4 x i8*>* nocapture nonnull dereferenceabl
e(16) %11, <4 x i8*>* nocapture nonnull dereferenceable(16) %12, <4 x i8*>* noca
pture nonnull dereferenceable(16) %13, <20 x i8*> (<20 x i8*>)* bitcast (<4 x i8
*> (<4 x i8*>*, <4 x i8*>*, <4 x i8*>*, <4 x i8*>*, <4 x i8*>, <4 x i8*>, <4 x i
8*>, <4 x i8*>, <4 x i8*>)* @fn_46_20xi8ptr to <20 x i8*> (<20 x i8*>)*), <4 x i
8*> %15, <4 x i8*> %16, <4 x i8*> %17, <4 x i8*> %18, <4 x i8*> %19) |
| 1778 ; CHECK-NEXT: %21 = load <4 x i8*>, <4 x i8*>* %10, align 16 |
| 1779 ; CHECK-NEXT: %22 = load <4 x i8*>, <4 x i8*>* %11, align 16 |
| 1780 ; CHECK-NEXT: %23 = load <4 x i8*>, <4 x i8*>* %12, align 16 |
| 1781 ; CHECK-NEXT: %24 = load <4 x i8*>, <4 x i8*>* %13, align 16 |
| 1782 ; CHECK-NEXT: store <4 x i8*> %21, <4 x i8*>* %0, align 16 |
| 1783 ; CHECK-NEXT: store <4 x i8*> %22, <4 x i8*>* %1, align 16 |
| 1784 ; CHECK-NEXT: store <4 x i8*> %23, <4 x i8*>* %2, align 16 |
| 1785 ; CHECK-NEXT: store <4 x i8*> %24, <4 x i8*>* %3, align 16 |
| 1786 ; CHECK-NEXT: ret <4 x i8*> %20 |
| 1787 ; CHECK-NEXT: } |
| 1788 |
| 1789 define <20 x float> @fn_96_20xfloat_call_arg(<20 x float> (<20 x float>)*, <20 x
float>) { |
| 1790 entry: |
| 1791 %2 = call <20 x float> %0(<20 x float> %1) |
| 1792 %3 = call <20 x float> @fn_96_20xfloat_call_arg(<20 x float> (<20 x float>)* @
fn_47_20xfloat, <20 x float> %2) |
| 1793 ret <20 x float> %3 |
| 1794 } |
| 1795 ; CHECK-LABEL: define <4 x float> @fn_96_20xfloat_call_arg(<4 x float>* nocaptur
e nonnull dereferenceable(16), <4 x float>* nocapture nonnull dereferenceable(16
), <4 x float>* nocapture nonnull dereferenceable(16), <4 x float>* nocapture no
nnull dereferenceable(16), <20 x float> (<20 x float>)*, <4 x float>, <4 x float
>, <4 x float>, <4 x float>, <4 x float>) { |
| 1796 ; CHECK: entry: |
| 1797 ; CHECK-NEXT: %10 = alloca <4 x float>, align 16 |
| 1798 ; CHECK-NEXT: %11 = alloca <4 x float>, align 16 |
| 1799 ; CHECK-NEXT: %12 = alloca <4 x float>, align 16 |
| 1800 ; CHECK-NEXT: %13 = alloca <4 x float>, align 16 |
| 1801 ; CHECK-NEXT: %14 = bitcast <20 x float> (<20 x float>)* %4 to <4 x float> (<
4 x float>*, <4 x float>*, <4 x float>*, <4 x float>*, <4 x float>, <4 x float>,
<4 x float>, <4 x float>, <4 x float>)* |
| 1802 ; CHECK-NEXT: %15 = call <4 x float> %14(<4 x float>* nocapture nonnull deref
erenceable(16) %10, <4 x float>* nocapture nonnull dereferenceable(16) %11, <4 x
float>* nocapture nonnull dereferenceable(16) %12, <4 x float>* nocapture nonnu
ll dereferenceable(16) %13, <4 x float> %5, <4 x float> %6, <4 x float> %7, <4 x
float> %8, <4 x float> %9) |
| 1803 ; CHECK-NEXT: %16 = load <4 x float>, <4 x float>* %10, align 16 |
| 1804 ; CHECK-NEXT: %17 = load <4 x float>, <4 x float>* %11, align 16 |
| 1805 ; CHECK-NEXT: %18 = load <4 x float>, <4 x float>* %12, align 16 |
| 1806 ; CHECK-NEXT: %19 = load <4 x float>, <4 x float>* %13, align 16 |
| 1807 ; CHECK-NEXT: %20 = call <4 x float> @fn_96_20xfloat_call_arg(<4 x float>* no
capture nonnull dereferenceable(16) %10, <4 x float>* nocapture nonnull derefere
nceable(16) %11, <4 x float>* nocapture nonnull dereferenceable(16) %12, <4 x fl
oat>* nocapture nonnull dereferenceable(16) %13, <20 x float> (<20 x float>)* bi
tcast (<4 x float> (<4 x float>*, <4 x float>*, <4 x float>*, <4 x float>*, <4 x
float>, <4 x float>, <4 x float>, <4 x float>, <4 x float>)* @fn_47_20xfloat to
<20 x float> (<20 x float>)*), <4 x float> %15, <4 x float> %16, <4 x float> %1
7, <4 x float> %18, <4 x float> %19) |
| 1808 ; CHECK-NEXT: %21 = load <4 x float>, <4 x float>* %10, align 16 |
| 1809 ; CHECK-NEXT: %22 = load <4 x float>, <4 x float>* %11, align 16 |
| 1810 ; CHECK-NEXT: %23 = load <4 x float>, <4 x float>* %12, align 16 |
| 1811 ; CHECK-NEXT: %24 = load <4 x float>, <4 x float>* %13, align 16 |
| 1812 ; CHECK-NEXT: store <4 x float> %21, <4 x float>* %0, align 16 |
| 1813 ; CHECK-NEXT: store <4 x float> %22, <4 x float>* %1, align 16 |
| 1814 ; CHECK-NEXT: store <4 x float> %23, <4 x float>* %2, align 16 |
| 1815 ; CHECK-NEXT: store <4 x float> %24, <4 x float>* %3, align 16 |
| 1816 ; CHECK-NEXT: ret <4 x float> %20 |
| 1817 ; CHECK-NEXT: } |
| 1818 |
| 1819 define <20 x double> @fn_97_20xdouble_call_arg(<20 x double> (<20 x double>)*, <
20 x double>) { |
| 1820 entry: |
| 1821 %2 = call <20 x double> %0(<20 x double> %1) |
| 1822 %3 = call <20 x double> @fn_97_20xdouble_call_arg(<20 x double> (<20 x double>
)* @fn_48_20xdouble, <20 x double> %2) |
| 1823 ret <20 x double> %3 |
| 1824 } |
| 1825 ; CHECK-LABEL: define <2 x double> @fn_97_20xdouble_call_arg(<2 x double>* nocap
ture nonnull dereferenceable(16), <2 x double>* nocapture nonnull dereferenceabl
e(16), <2 x double>* nocapture nonnull dereferenceable(16), <2 x double>* nocapt
ure nonnull dereferenceable(16), <2 x double>* nocapture nonnull dereferenceable
(16), <2 x double>* nocapture nonnull dereferenceable(16), <2 x double>* nocaptu
re nonnull dereferenceable(16), <2 x double>* nocapture nonnull dereferenceable(
16), <2 x double>* nocapture nonnull dereferenceable(16), <20 x double> (<20 x d
ouble>)*, <2 x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>,
<2 x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>) { |
| 1826 ; CHECK: entry: |
| 1827 ; CHECK-NEXT: %20 = alloca <2 x double>, align 16 |
| 1828 ; CHECK-NEXT: %21 = alloca <2 x double>, align 16 |
| 1829 ; CHECK-NEXT: %22 = alloca <2 x double>, align 16 |
| 1830 ; CHECK-NEXT: %23 = alloca <2 x double>, align 16 |
| 1831 ; CHECK-NEXT: %24 = alloca <2 x double>, align 16 |
| 1832 ; CHECK-NEXT: %25 = alloca <2 x double>, align 16 |
| 1833 ; CHECK-NEXT: %26 = alloca <2 x double>, align 16 |
| 1834 ; CHECK-NEXT: %27 = alloca <2 x double>, align 16 |
| 1835 ; CHECK-NEXT: %28 = alloca <2 x double>, align 16 |
| 1836 ; CHECK-NEXT: %29 = bitcast <20 x double> (<20 x double>)* %9 to <2 x double>
(<2 x double>*, <2 x double>*, <2 x double>*, <2 x double>*, <2 x double>*, <2
x double>*, <2 x double>*, <2 x double>*, <2 x double>*, <2 x double>, <2 x doub
le>, <2 x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>, <2 x
double>, <2 x double>, <2 x double>)* |
| 1837 ; CHECK-NEXT: %30 = call <2 x double> %29(<2 x double>* nocapture nonnull der
eferenceable(16) %20, <2 x double>* nocapture nonnull dereferenceable(16) %21, <
2 x double>* nocapture nonnull dereferenceable(16) %22, <2 x double>* nocapture
nonnull dereferenceable(16) %23, <2 x double>* nocapture nonnull dereferenceable
(16) %24, <2 x double>* nocapture nonnull dereferenceable(16) %25, <2 x double>*
nocapture nonnull dereferenceable(16) %26, <2 x double>* nocapture nonnull dere
ferenceable(16) %27, <2 x double>* nocapture nonnull dereferenceable(16) %28, <2
x double> %10, <2 x double> %11, <2 x double> %12, <2 x double> %13, <2 x doubl
e> %14, <2 x double> %15, <2 x double> %16, <2 x double> %17, <2 x double> %18,
<2 x double> %19) |
| 1838 ; CHECK-NEXT: %31 = load <2 x double>, <2 x double>* %20, align 16 |
| 1839 ; CHECK-NEXT: %32 = load <2 x double>, <2 x double>* %21, align 16 |
| 1840 ; CHECK-NEXT: %33 = load <2 x double>, <2 x double>* %22, align 16 |
| 1841 ; CHECK-NEXT: %34 = load <2 x double>, <2 x double>* %23, align 16 |
| 1842 ; CHECK-NEXT: %35 = load <2 x double>, <2 x double>* %24, align 16 |
| 1843 ; CHECK-NEXT: %36 = load <2 x double>, <2 x double>* %25, align 16 |
| 1844 ; CHECK-NEXT: %37 = load <2 x double>, <2 x double>* %26, align 16 |
| 1845 ; CHECK-NEXT: %38 = load <2 x double>, <2 x double>* %27, align 16 |
| 1846 ; CHECK-NEXT: %39 = load <2 x double>, <2 x double>* %28, align 16 |
| 1847 ; CHECK-NEXT: %40 = call <2 x double> @fn_97_20xdouble_call_arg(<2 x double>*
nocapture nonnull dereferenceable(16) %20, <2 x double>* nocapture nonnull dere
ferenceable(16) %21, <2 x double>* nocapture nonnull dereferenceable(16) %22, <2
x double>* nocapture nonnull dereferenceable(16) %23, <2 x double>* nocapture n
onnull dereferenceable(16) %24, <2 x double>* nocapture nonnull dereferenceable(
16) %25, <2 x double>* nocapture nonnull dereferenceable(16) %26, <2 x double>*
nocapture nonnull dereferenceable(16) %27, <2 x double>* nocapture nonnull deref
erenceable(16) %28, <20 x double> (<20 x double>)* bitcast (<2 x double> (<2 x d
ouble>*, <2 x double>*, <2 x double>*, <2 x double>*, <2 x double>*, <2 x double
>*, <2 x double>*, <2 x double>*, <2 x double>*, <2 x double>, <2 x double>, <2
x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>, <2 x double>,
<2 x double>, <2 x double>)* @fn_48_20xdouble to <20 x double> (<20 x double>)*
), <2 x double> %30, <2 x double> %31, <2 x double> %32, <2 x double> %33, <2 x
double> %34, <2 x double> %35, <2 x double> %36, <2 x double> %37, <2 x double>
%38, <2 x double> %39) |
| 1848 ; CHECK-NEXT: %41 = load <2 x double>, <2 x double>* %20, align 16 |
| 1849 ; CHECK-NEXT: %42 = load <2 x double>, <2 x double>* %21, align 16 |
| 1850 ; CHECK-NEXT: %43 = load <2 x double>, <2 x double>* %22, align 16 |
| 1851 ; CHECK-NEXT: %44 = load <2 x double>, <2 x double>* %23, align 16 |
| 1852 ; CHECK-NEXT: %45 = load <2 x double>, <2 x double>* %24, align 16 |
| 1853 ; CHECK-NEXT: %46 = load <2 x double>, <2 x double>* %25, align 16 |
| 1854 ; CHECK-NEXT: %47 = load <2 x double>, <2 x double>* %26, align 16 |
| 1855 ; CHECK-NEXT: %48 = load <2 x double>, <2 x double>* %27, align 16 |
| 1856 ; CHECK-NEXT: %49 = load <2 x double>, <2 x double>* %28, align 16 |
| 1857 ; CHECK-NEXT: store <2 x double> %41, <2 x double>* %0, align 16 |
| 1858 ; CHECK-NEXT: store <2 x double> %42, <2 x double>* %1, align 16 |
| 1859 ; CHECK-NEXT: store <2 x double> %43, <2 x double>* %2, align 16 |
| 1860 ; CHECK-NEXT: store <2 x double> %44, <2 x double>* %3, align 16 |
| 1861 ; CHECK-NEXT: store <2 x double> %45, <2 x double>* %4, align 16 |
| 1862 ; CHECK-NEXT: store <2 x double> %46, <2 x double>* %5, align 16 |
| 1863 ; CHECK-NEXT: store <2 x double> %47, <2 x double>* %6, align 16 |
| 1864 ; CHECK-NEXT: store <2 x double> %48, <2 x double>* %7, align 16 |
| 1865 ; CHECK-NEXT: store <2 x double> %49, <2 x double>* %8, align 16 |
| 1866 ; CHECK-NEXT: ret <2 x double> %40 |
| 1867 ; CHECK-NEXT: } |
| 1868 |
OLD | NEW |