Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(429)

Side by Side Diff: test/Transforms/NaCl/vector-canonicalization-calls.ll

Issue 1423873002: PNaCl: Add a vector type legalization pass. Base URL: https://chromium.googlesource.com/native_client/pnacl-llvm.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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
OLDNEW
« no previous file with comments | « test/Transforms/NaCl/vector-canonicalization-binops.ll ('k') | test/Transforms/NaCl/vector-canonicalization-casts.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698