1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -march=hexagon < %s | FileCheck %s
4 define void @f0(<128 x i8> %a0, ptr %a1) #0 {
6 ; CHECK: // %bb.0: // %b0
8 ; CHECK-NEXT: jumpr r31
9 ; CHECK-NEXT: vmem(r0+#0) = v0
12 store <128 x i8> %a0, ptr %a1, align 128
16 define void @f1(<128 x i8> %a0, <128 x i8> %a1, ptr %a2) #0 {
18 ; CHECK: // %bb.0: // %b0
20 ; CHECK-NEXT: vmem(r0+#0) = v0
23 ; CHECK-NEXT: jumpr r31
24 ; CHECK-NEXT: vmem(r0+#1) = v1
27 store <128 x i8> %a0, ptr %a2, align 128
28 %v1 = getelementptr <128 x i8>, ptr %a2, i32 1
29 store <128 x i8> %a1, ptr %v1, align 128
33 define void @f2(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, ptr %a3) #0 {
35 ; CHECK: // %bb.0: // %b0
37 ; CHECK-NEXT: vmem(r0+#0) = v0
40 ; CHECK-NEXT: vmem(r0+#1) = v1
43 ; CHECK-NEXT: jumpr r31
44 ; CHECK-NEXT: vmem(r0+#2) = v2
47 store <128 x i8> %a0, ptr %a3, align 128
48 %v1 = getelementptr <128 x i8>, ptr %a3, i32 1
49 store <128 x i8> %a1, ptr %v1, align 128
50 %v2 = getelementptr <128 x i8>, ptr %a3, i32 2
51 store <128 x i8> %a2, ptr %v2, align 128
55 define void @f3(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, ptr %a4) #0 {
57 ; CHECK: // %bb.0: // %b0
59 ; CHECK-NEXT: vmem(r0+#0) = v0
62 ; CHECK-NEXT: vmem(r0+#1) = v1
65 ; CHECK-NEXT: vmem(r0+#2) = v2
68 ; CHECK-NEXT: jumpr r31
69 ; CHECK-NEXT: vmem(r0+#3) = v3
72 store <128 x i8> %a0, ptr %a4, align 128
73 %v1 = getelementptr <128 x i8>, ptr %a4, i32 1
74 store <128 x i8> %a1, ptr %v1, align 128
75 %v2 = getelementptr <128 x i8>, ptr %a4, i32 2
76 store <128 x i8> %a2, ptr %v2, align 128
77 %v3 = getelementptr <128 x i8>, ptr %a4, i32 3
78 store <128 x i8> %a3, ptr %v3, align 128
82 define void @f4(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, ptr %a5) #0 {
84 ; CHECK: // %bb.0: // %b0
86 ; CHECK-NEXT: vmem(r0+#0) = v0
89 ; CHECK-NEXT: vmem(r0+#1) = v1
92 ; CHECK-NEXT: vmem(r0+#2) = v2
95 ; CHECK-NEXT: vmem(r0+#3) = v3
98 ; CHECK-NEXT: jumpr r31
99 ; CHECK-NEXT: vmem(r0+#4) = v4
102 store <128 x i8> %a0, ptr %a5, align 128
103 %v1 = getelementptr <128 x i8>, ptr %a5, i32 1
104 store <128 x i8> %a1, ptr %v1, align 128
105 %v2 = getelementptr <128 x i8>, ptr %a5, i32 2
106 store <128 x i8> %a2, ptr %v2, align 128
107 %v3 = getelementptr <128 x i8>, ptr %a5, i32 3
108 store <128 x i8> %a3, ptr %v3, align 128
109 %v4 = getelementptr <128 x i8>, ptr %a5, i32 4
110 store <128 x i8> %a4, ptr %v4, align 128
114 define void @f5(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, ptr %a6) #0 {
116 ; CHECK: // %bb.0: // %b0
118 ; CHECK-NEXT: vmem(r0+#0) = v0
121 ; CHECK-NEXT: vmem(r0+#1) = v1
124 ; CHECK-NEXT: vmem(r0+#2) = v2
127 ; CHECK-NEXT: vmem(r0+#3) = v3
130 ; CHECK-NEXT: vmem(r0+#4) = v4
133 ; CHECK-NEXT: jumpr r31
134 ; CHECK-NEXT: vmem(r0+#5) = v5
137 store <128 x i8> %a0, ptr %a6, align 128
138 %v1 = getelementptr <128 x i8>, ptr %a6, i32 1
139 store <128 x i8> %a1, ptr %v1, align 128
140 %v2 = getelementptr <128 x i8>, ptr %a6, i32 2
141 store <128 x i8> %a2, ptr %v2, align 128
142 %v3 = getelementptr <128 x i8>, ptr %a6, i32 3
143 store <128 x i8> %a3, ptr %v3, align 128
144 %v4 = getelementptr <128 x i8>, ptr %a6, i32 4
145 store <128 x i8> %a4, ptr %v4, align 128
146 %v5 = getelementptr <128 x i8>, ptr %a6, i32 5
147 store <128 x i8> %a5, ptr %v5, align 128
151 define void @f6(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8> %a6, ptr %a7) #0 {
153 ; CHECK: // %bb.0: // %b0
155 ; CHECK-NEXT: vmem(r0+#0) = v0
158 ; CHECK-NEXT: vmem(r0+#1) = v1
161 ; CHECK-NEXT: vmem(r0+#2) = v2
164 ; CHECK-NEXT: vmem(r0+#3) = v3
167 ; CHECK-NEXT: vmem(r0+#4) = v4
170 ; CHECK-NEXT: vmem(r0+#5) = v5
173 ; CHECK-NEXT: jumpr r31
174 ; CHECK-NEXT: vmem(r0+#6) = v6
177 store <128 x i8> %a0, ptr %a7, align 128
178 %v1 = getelementptr <128 x i8>, ptr %a7, i32 1
179 store <128 x i8> %a1, ptr %v1, align 128
180 %v2 = getelementptr <128 x i8>, ptr %a7, i32 2
181 store <128 x i8> %a2, ptr %v2, align 128
182 %v3 = getelementptr <128 x i8>, ptr %a7, i32 3
183 store <128 x i8> %a3, ptr %v3, align 128
184 %v4 = getelementptr <128 x i8>, ptr %a7, i32 4
185 store <128 x i8> %a4, ptr %v4, align 128
186 %v5 = getelementptr <128 x i8>, ptr %a7, i32 5
187 store <128 x i8> %a5, ptr %v5, align 128
188 %v6 = getelementptr <128 x i8>, ptr %a7, i32 6
189 store <128 x i8> %a6, ptr %v6, align 128
193 define void @f7(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8> %a6, <128 x i8> %a7, ptr %a8) #0 {
195 ; CHECK: // %bb.0: // %b0
197 ; CHECK-NEXT: vmem(r0+#0) = v0
200 ; CHECK-NEXT: vmem(r0+#1) = v1
203 ; CHECK-NEXT: vmem(r0+#2) = v2
206 ; CHECK-NEXT: vmem(r0+#3) = v3
209 ; CHECK-NEXT: vmem(r0+#4) = v4
212 ; CHECK-NEXT: vmem(r0+#5) = v5
215 ; CHECK-NEXT: vmem(r0+#6) = v6
218 ; CHECK-NEXT: jumpr r31
219 ; CHECK-NEXT: vmem(r0+#7) = v7
222 store <128 x i8> %a0, ptr %a8, align 128
223 %v1 = getelementptr <128 x i8>, ptr %a8, i32 1
224 store <128 x i8> %a1, ptr %v1, align 128
225 %v2 = getelementptr <128 x i8>, ptr %a8, i32 2
226 store <128 x i8> %a2, ptr %v2, align 128
227 %v3 = getelementptr <128 x i8>, ptr %a8, i32 3
228 store <128 x i8> %a3, ptr %v3, align 128
229 %v4 = getelementptr <128 x i8>, ptr %a8, i32 4
230 store <128 x i8> %a4, ptr %v4, align 128
231 %v5 = getelementptr <128 x i8>, ptr %a8, i32 5
232 store <128 x i8> %a5, ptr %v5, align 128
233 %v6 = getelementptr <128 x i8>, ptr %a8, i32 6
234 store <128 x i8> %a6, ptr %v6, align 128
235 %v7 = getelementptr <128 x i8>, ptr %a8, i32 7
236 store <128 x i8> %a7, ptr %v7, align 128
240 define void @f8(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8> %a6, <128 x i8> %a7, <128 x i8> %a8, ptr %a9) #0 {
242 ; CHECK: // %bb.0: // %b0
244 ; CHECK-NEXT: r1 = add(r0,#1024)
245 ; CHECK-NEXT: vmem(r0+#0) = v0
248 ; CHECK-NEXT: vmem(r0+#1) = v1
251 ; CHECK-NEXT: vmem(r0+#2) = v2
254 ; CHECK-NEXT: vmem(r0+#3) = v3
257 ; CHECK-NEXT: vmem(r0+#4) = v4
260 ; CHECK-NEXT: vmem(r0+#5) = v5
263 ; CHECK-NEXT: vmem(r0+#6) = v6
266 ; CHECK-NEXT: vmem(r0+#7) = v7
269 ; CHECK-NEXT: jumpr r31
270 ; CHECK-NEXT: vmem(r1+#0) = v8
273 store <128 x i8> %a0, ptr %a9, align 128
274 %v1 = getelementptr <128 x i8>, ptr %a9, i32 1
275 store <128 x i8> %a1, ptr %v1, align 128
276 %v2 = getelementptr <128 x i8>, ptr %a9, i32 2
277 store <128 x i8> %a2, ptr %v2, align 128
278 %v3 = getelementptr <128 x i8>, ptr %a9, i32 3
279 store <128 x i8> %a3, ptr %v3, align 128
280 %v4 = getelementptr <128 x i8>, ptr %a9, i32 4
281 store <128 x i8> %a4, ptr %v4, align 128
282 %v5 = getelementptr <128 x i8>, ptr %a9, i32 5
283 store <128 x i8> %a5, ptr %v5, align 128
284 %v6 = getelementptr <128 x i8>, ptr %a9, i32 6
285 store <128 x i8> %a6, ptr %v6, align 128
286 %v7 = getelementptr <128 x i8>, ptr %a9, i32 7
287 store <128 x i8> %a7, ptr %v7, align 128
288 %v8 = getelementptr <128 x i8>, ptr %a9, i32 8
289 store <128 x i8> %a8, ptr %v8, align 128
293 define void @f9(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8> %a6, <128 x i8> %a7, <128 x i8> %a8, <128 x i8> %a9, ptr %a10) #0 {
295 ; CHECK: // %bb.0: // %b0
297 ; CHECK-NEXT: r1 = add(r0,#1024)
298 ; CHECK-NEXT: r2 = add(r0,#1152)
299 ; CHECK-NEXT: vmem(r0+#0) = v0
302 ; CHECK-NEXT: vmem(r0+#1) = v1
305 ; CHECK-NEXT: vmem(r0+#2) = v2
308 ; CHECK-NEXT: vmem(r0+#3) = v3
311 ; CHECK-NEXT: vmem(r0+#4) = v4
314 ; CHECK-NEXT: vmem(r0+#5) = v5
317 ; CHECK-NEXT: vmem(r0+#6) = v6
320 ; CHECK-NEXT: vmem(r0+#7) = v7
323 ; CHECK-NEXT: vmem(r1+#0) = v8
326 ; CHECK-NEXT: jumpr r31
327 ; CHECK-NEXT: vmem(r2+#0) = v9
330 store <128 x i8> %a0, ptr %a10, align 128
331 %v1 = getelementptr <128 x i8>, ptr %a10, i32 1
332 store <128 x i8> %a1, ptr %v1, align 128
333 %v2 = getelementptr <128 x i8>, ptr %a10, i32 2
334 store <128 x i8> %a2, ptr %v2, align 128
335 %v3 = getelementptr <128 x i8>, ptr %a10, i32 3
336 store <128 x i8> %a3, ptr %v3, align 128
337 %v4 = getelementptr <128 x i8>, ptr %a10, i32 4
338 store <128 x i8> %a4, ptr %v4, align 128
339 %v5 = getelementptr <128 x i8>, ptr %a10, i32 5
340 store <128 x i8> %a5, ptr %v5, align 128
341 %v6 = getelementptr <128 x i8>, ptr %a10, i32 6
342 store <128 x i8> %a6, ptr %v6, align 128
343 %v7 = getelementptr <128 x i8>, ptr %a10, i32 7
344 store <128 x i8> %a7, ptr %v7, align 128
345 %v8 = getelementptr <128 x i8>, ptr %a10, i32 8
346 store <128 x i8> %a8, ptr %v8, align 128
347 %v9 = getelementptr <128 x i8>, ptr %a10, i32 9
348 store <128 x i8> %a9, ptr %v9, align 128
352 define void @f10(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8> %a6, <128 x i8> %a7, <128 x i8> %a8, <128 x i8> %a9, <128 x i8> %a10, ptr %a11) #0 {
354 ; CHECK: // %bb.0: // %b0
356 ; CHECK-NEXT: r1 = add(r0,#1024)
357 ; CHECK-NEXT: r2 = add(r0,#1152)
358 ; CHECK-NEXT: r3 = add(r0,#1280)
359 ; CHECK-NEXT: vmem(r0+#0) = v0
362 ; CHECK-NEXT: vmem(r0+#1) = v1
365 ; CHECK-NEXT: vmem(r0+#2) = v2
368 ; CHECK-NEXT: vmem(r0+#3) = v3
371 ; CHECK-NEXT: vmem(r0+#4) = v4
374 ; CHECK-NEXT: vmem(r0+#5) = v5
377 ; CHECK-NEXT: vmem(r0+#6) = v6
380 ; CHECK-NEXT: vmem(r0+#7) = v7
383 ; CHECK-NEXT: vmem(r1+#0) = v8
386 ; CHECK-NEXT: vmem(r2+#0) = v9
389 ; CHECK-NEXT: jumpr r31
390 ; CHECK-NEXT: vmem(r3+#0) = v10
393 store <128 x i8> %a0, ptr %a11, align 128
394 %v1 = getelementptr <128 x i8>, ptr %a11, i32 1
395 store <128 x i8> %a1, ptr %v1, align 128
396 %v2 = getelementptr <128 x i8>, ptr %a11, i32 2
397 store <128 x i8> %a2, ptr %v2, align 128
398 %v3 = getelementptr <128 x i8>, ptr %a11, i32 3
399 store <128 x i8> %a3, ptr %v3, align 128
400 %v4 = getelementptr <128 x i8>, ptr %a11, i32 4
401 store <128 x i8> %a4, ptr %v4, align 128
402 %v5 = getelementptr <128 x i8>, ptr %a11, i32 5
403 store <128 x i8> %a5, ptr %v5, align 128
404 %v6 = getelementptr <128 x i8>, ptr %a11, i32 6
405 store <128 x i8> %a6, ptr %v6, align 128
406 %v7 = getelementptr <128 x i8>, ptr %a11, i32 7
407 store <128 x i8> %a7, ptr %v7, align 128
408 %v8 = getelementptr <128 x i8>, ptr %a11, i32 8
409 store <128 x i8> %a8, ptr %v8, align 128
410 %v9 = getelementptr <128 x i8>, ptr %a11, i32 9
411 store <128 x i8> %a9, ptr %v9, align 128
412 %v10 = getelementptr <128 x i8>, ptr %a11, i32 10
413 store <128 x i8> %a10, ptr %v10, align 128
417 define void @f11(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8> %a6, <128 x i8> %a7, <128 x i8> %a8, <128 x i8> %a9, <128 x i8> %a10, <128 x i8> %a11, ptr %a12) #0 {
419 ; CHECK: // %bb.0: // %b0
421 ; CHECK-NEXT: r1 = add(r0,#1024)
422 ; CHECK-NEXT: r2 = add(r0,#1152)
423 ; CHECK-NEXT: r3 = add(r0,#1280)
424 ; CHECK-NEXT: r4 = add(r0,#1408)
427 ; CHECK-NEXT: vmem(r0+#0) = v0
430 ; CHECK-NEXT: vmem(r0+#1) = v1
433 ; CHECK-NEXT: vmem(r0+#2) = v2
436 ; CHECK-NEXT: vmem(r0+#3) = v3
439 ; CHECK-NEXT: vmem(r0+#4) = v4
442 ; CHECK-NEXT: vmem(r0+#5) = v5
445 ; CHECK-NEXT: vmem(r0+#6) = v6
448 ; CHECK-NEXT: vmem(r0+#7) = v7
451 ; CHECK-NEXT: vmem(r1+#0) = v8
454 ; CHECK-NEXT: vmem(r2+#0) = v9
457 ; CHECK-NEXT: vmem(r3+#0) = v10
460 ; CHECK-NEXT: jumpr r31
461 ; CHECK-NEXT: vmem(r4+#0) = v11
464 store <128 x i8> %a0, ptr %a12, align 128
465 %v1 = getelementptr <128 x i8>, ptr %a12, i32 1
466 store <128 x i8> %a1, ptr %v1, align 128
467 %v2 = getelementptr <128 x i8>, ptr %a12, i32 2
468 store <128 x i8> %a2, ptr %v2, align 128
469 %v3 = getelementptr <128 x i8>, ptr %a12, i32 3
470 store <128 x i8> %a3, ptr %v3, align 128
471 %v4 = getelementptr <128 x i8>, ptr %a12, i32 4
472 store <128 x i8> %a4, ptr %v4, align 128
473 %v5 = getelementptr <128 x i8>, ptr %a12, i32 5
474 store <128 x i8> %a5, ptr %v5, align 128
475 %v6 = getelementptr <128 x i8>, ptr %a12, i32 6
476 store <128 x i8> %a6, ptr %v6, align 128
477 %v7 = getelementptr <128 x i8>, ptr %a12, i32 7
478 store <128 x i8> %a7, ptr %v7, align 128
479 %v8 = getelementptr <128 x i8>, ptr %a12, i32 8
480 store <128 x i8> %a8, ptr %v8, align 128
481 %v9 = getelementptr <128 x i8>, ptr %a12, i32 9
482 store <128 x i8> %a9, ptr %v9, align 128
483 %v10 = getelementptr <128 x i8>, ptr %a12, i32 10
484 store <128 x i8> %a10, ptr %v10, align 128
485 %v11 = getelementptr <128 x i8>, ptr %a12, i32 11
486 store <128 x i8> %a11, ptr %v11, align 128
490 define void @f12(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8> %a6, <128 x i8> %a7, <128 x i8> %a8, <128 x i8> %a9, <128 x i8> %a10, <128 x i8> %a11, <128 x i8> %a12, ptr %a13) #0 {
492 ; CHECK: // %bb.0: // %b0
494 ; CHECK-NEXT: r1 = add(r0,#1024)
495 ; CHECK-NEXT: r2 = add(r0,#1152)
496 ; CHECK-NEXT: r3 = add(r0,#1280)
497 ; CHECK-NEXT: r4 = add(r0,#1408)
500 ; CHECK-NEXT: r5 = add(r0,#1536)
501 ; CHECK-NEXT: vmem(r0+#0) = v0
504 ; CHECK-NEXT: vmem(r0+#1) = v1
507 ; CHECK-NEXT: vmem(r0+#2) = v2
510 ; CHECK-NEXT: vmem(r0+#3) = v3
513 ; CHECK-NEXT: vmem(r0+#4) = v4
516 ; CHECK-NEXT: vmem(r0+#5) = v5
519 ; CHECK-NEXT: vmem(r0+#6) = v6
522 ; CHECK-NEXT: vmem(r0+#7) = v7
525 ; CHECK-NEXT: vmem(r1+#0) = v8
528 ; CHECK-NEXT: vmem(r2+#0) = v9
531 ; CHECK-NEXT: vmem(r3+#0) = v10
534 ; CHECK-NEXT: vmem(r4+#0) = v11
537 ; CHECK-NEXT: jumpr r31
538 ; CHECK-NEXT: vmem(r5+#0) = v12
541 store <128 x i8> %a0, ptr %a13, align 128
542 %v1 = getelementptr <128 x i8>, ptr %a13, i32 1
543 store <128 x i8> %a1, ptr %v1, align 128
544 %v2 = getelementptr <128 x i8>, ptr %a13, i32 2
545 store <128 x i8> %a2, ptr %v2, align 128
546 %v3 = getelementptr <128 x i8>, ptr %a13, i32 3
547 store <128 x i8> %a3, ptr %v3, align 128
548 %v4 = getelementptr <128 x i8>, ptr %a13, i32 4
549 store <128 x i8> %a4, ptr %v4, align 128
550 %v5 = getelementptr <128 x i8>, ptr %a13, i32 5
551 store <128 x i8> %a5, ptr %v5, align 128
552 %v6 = getelementptr <128 x i8>, ptr %a13, i32 6
553 store <128 x i8> %a6, ptr %v6, align 128
554 %v7 = getelementptr <128 x i8>, ptr %a13, i32 7
555 store <128 x i8> %a7, ptr %v7, align 128
556 %v8 = getelementptr <128 x i8>, ptr %a13, i32 8
557 store <128 x i8> %a8, ptr %v8, align 128
558 %v9 = getelementptr <128 x i8>, ptr %a13, i32 9
559 store <128 x i8> %a9, ptr %v9, align 128
560 %v10 = getelementptr <128 x i8>, ptr %a13, i32 10
561 store <128 x i8> %a10, ptr %v10, align 128
562 %v11 = getelementptr <128 x i8>, ptr %a13, i32 11
563 store <128 x i8> %a11, ptr %v11, align 128
564 %v12 = getelementptr <128 x i8>, ptr %a13, i32 12
565 store <128 x i8> %a12, ptr %v12, align 128
569 define void @f13(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8> %a6, <128 x i8> %a7, <128 x i8> %a8, <128 x i8> %a9, <128 x i8> %a10, <128 x i8> %a11, <128 x i8> %a12, <128 x i8> %a13, ptr %a14) #0 {
571 ; CHECK: // %bb.0: // %b0
573 ; CHECK-NEXT: r2 = add(r0,#1152)
574 ; CHECK-NEXT: r3 = add(r0,#1280)
575 ; CHECK-NEXT: r1 = add(r0,#1024)
576 ; CHECK-NEXT: r4 = add(r0,#1408)
579 ; CHECK-NEXT: r2 = add(r0,#1664)
580 ; CHECK-NEXT: vmem(r2+#0) = v9
583 ; CHECK-NEXT: r3 = add(r0,#1536)
584 ; CHECK-NEXT: vmem(r3+#0) = v10
587 ; CHECK-NEXT: vmem(r0+#0) = v0
590 ; CHECK-NEXT: vmem(r0+#1) = v1
593 ; CHECK-NEXT: vmem(r1+#0) = v8
596 ; CHECK-NEXT: vmem(r0+#2) = v2
599 ; CHECK-NEXT: vmem(r0+#3) = v3
602 ; CHECK-NEXT: vmem(r0+#4) = v4
605 ; CHECK-NEXT: vmem(r0+#5) = v5
608 ; CHECK-NEXT: vmem(r0+#6) = v6
611 ; CHECK-NEXT: vmem(r4+#0) = v11
614 ; CHECK-NEXT: vmem(r0+#7) = v7
617 ; CHECK-NEXT: vmem(r3+#0) = v12
620 ; CHECK-NEXT: jumpr r31
621 ; CHECK-NEXT: vmem(r2+#0) = v13
624 store <128 x i8> %a0, ptr %a14, align 128
625 %v1 = getelementptr <128 x i8>, ptr %a14, i32 1
626 store <128 x i8> %a1, ptr %v1, align 128
627 %v2 = getelementptr <128 x i8>, ptr %a14, i32 2
628 store <128 x i8> %a2, ptr %v2, align 128
629 %v3 = getelementptr <128 x i8>, ptr %a14, i32 3
630 store <128 x i8> %a3, ptr %v3, align 128
631 %v4 = getelementptr <128 x i8>, ptr %a14, i32 4
632 store <128 x i8> %a4, ptr %v4, align 128
633 %v5 = getelementptr <128 x i8>, ptr %a14, i32 5
634 store <128 x i8> %a5, ptr %v5, align 128
635 %v6 = getelementptr <128 x i8>, ptr %a14, i32 6
636 store <128 x i8> %a6, ptr %v6, align 128
637 %v7 = getelementptr <128 x i8>, ptr %a14, i32 7
638 store <128 x i8> %a7, ptr %v7, align 128
639 %v8 = getelementptr <128 x i8>, ptr %a14, i32 8
640 store <128 x i8> %a8, ptr %v8, align 128
641 %v9 = getelementptr <128 x i8>, ptr %a14, i32 9
642 store <128 x i8> %a9, ptr %v9, align 128
643 %v10 = getelementptr <128 x i8>, ptr %a14, i32 10
644 store <128 x i8> %a10, ptr %v10, align 128
645 %v11 = getelementptr <128 x i8>, ptr %a14, i32 11
646 store <128 x i8> %a11, ptr %v11, align 128
647 %v12 = getelementptr <128 x i8>, ptr %a14, i32 12
648 store <128 x i8> %a12, ptr %v12, align 128
649 %v13 = getelementptr <128 x i8>, ptr %a14, i32 13
650 store <128 x i8> %a13, ptr %v13, align 128
654 define void @f14(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8> %a6, <128 x i8> %a7, <128 x i8> %a8, <128 x i8> %a9, <128 x i8> %a10, <128 x i8> %a11, <128 x i8> %a12, <128 x i8> %a13, <128 x i8> %a14, ptr %a15) #0 {
656 ; CHECK: // %bb.0: // %b0
658 ; CHECK-NEXT: r2 = add(r0,#1152)
659 ; CHECK-NEXT: r3 = add(r0,#1280)
660 ; CHECK-NEXT: r4 = add(r0,#1408)
661 ; CHECK-NEXT: r1 = add(r0,#1024)
664 ; CHECK-NEXT: r2 = add(r0,#1792)
665 ; CHECK-NEXT: vmem(r2+#0) = v9
668 ; CHECK-NEXT: r3 = add(r0,#1664)
669 ; CHECK-NEXT: vmem(r3+#0) = v10
672 ; CHECK-NEXT: r4 = add(r0,#1536)
673 ; CHECK-NEXT: vmem(r4+#0) = v11
676 ; CHECK-NEXT: vmem(r0+#0) = v0
679 ; CHECK-NEXT: vmem(r1+#0) = v8
682 ; CHECK-NEXT: vmem(r0+#1) = v1
685 ; CHECK-NEXT: vmem(r0+#2) = v2
688 ; CHECK-NEXT: vmem(r0+#3) = v3
691 ; CHECK-NEXT: vmem(r0+#4) = v4
694 ; CHECK-NEXT: vmem(r0+#5) = v5
697 ; CHECK-NEXT: vmem(r0+#6) = v6
700 ; CHECK-NEXT: vmem(r4+#0) = v12
703 ; CHECK-NEXT: vmem(r0+#7) = v7
706 ; CHECK-NEXT: vmem(r3+#0) = v13
709 ; CHECK-NEXT: jumpr r31
710 ; CHECK-NEXT: vmem(r2+#0) = v14
713 store <128 x i8> %a0, ptr %a15, align 128
714 %v1 = getelementptr <128 x i8>, ptr %a15, i32 1
715 store <128 x i8> %a1, ptr %v1, align 128
716 %v2 = getelementptr <128 x i8>, ptr %a15, i32 2
717 store <128 x i8> %a2, ptr %v2, align 128
718 %v3 = getelementptr <128 x i8>, ptr %a15, i32 3
719 store <128 x i8> %a3, ptr %v3, align 128
720 %v4 = getelementptr <128 x i8>, ptr %a15, i32 4
721 store <128 x i8> %a4, ptr %v4, align 128
722 %v5 = getelementptr <128 x i8>, ptr %a15, i32 5
723 store <128 x i8> %a5, ptr %v5, align 128
724 %v6 = getelementptr <128 x i8>, ptr %a15, i32 6
725 store <128 x i8> %a6, ptr %v6, align 128
726 %v7 = getelementptr <128 x i8>, ptr %a15, i32 7
727 store <128 x i8> %a7, ptr %v7, align 128
728 %v8 = getelementptr <128 x i8>, ptr %a15, i32 8
729 store <128 x i8> %a8, ptr %v8, align 128
730 %v9 = getelementptr <128 x i8>, ptr %a15, i32 9
731 store <128 x i8> %a9, ptr %v9, align 128
732 %v10 = getelementptr <128 x i8>, ptr %a15, i32 10
733 store <128 x i8> %a10, ptr %v10, align 128
734 %v11 = getelementptr <128 x i8>, ptr %a15, i32 11
735 store <128 x i8> %a11, ptr %v11, align 128
736 %v12 = getelementptr <128 x i8>, ptr %a15, i32 12
737 store <128 x i8> %a12, ptr %v12, align 128
738 %v13 = getelementptr <128 x i8>, ptr %a15, i32 13
739 store <128 x i8> %a13, ptr %v13, align 128
740 %v14 = getelementptr <128 x i8>, ptr %a15, i32 14
741 store <128 x i8> %a14, ptr %v14, align 128
745 define void @f15(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8> %a6, <128 x i8> %a7, <128 x i8> %a8, <128 x i8> %a9, <128 x i8> %a10, <128 x i8> %a11, <128 x i8> %a12, <128 x i8> %a13, <128 x i8> %a14, <128 x i8> %a15, ptr %a16) #0 {
747 ; CHECK: // %bb.0: // %b0
749 ; CHECK-NEXT: r2 = add(r0,#1152)
750 ; CHECK-NEXT: r3 = add(r0,#1280)
751 ; CHECK-NEXT: r1 = add(r0,#1024)
752 ; CHECK-NEXT: r6 = add(r0,#1408)
755 ; CHECK-NEXT: r5 = add(r0,#1536)
756 ; CHECK-NEXT: r4 = add(r0,#1664)
757 ; CHECK-NEXT: r2 = add(r0,#1920)
758 ; CHECK-NEXT: vmem(r2+#0) = v9
761 ; CHECK-NEXT: r3 = add(r0,#1792)
762 ; CHECK-NEXT: vmem(r3+#0) = v10
765 ; CHECK-NEXT: vmem(r0+#0) = v0
768 ; CHECK-NEXT: vmem(r0+#1) = v1
771 ; CHECK-NEXT: vmem(r1+#0) = v8
774 ; CHECK-NEXT: vmem(r0+#2) = v2
777 ; CHECK-NEXT: vmem(r0+#3) = v3
780 ; CHECK-NEXT: vmem(r0+#4) = v4
783 ; CHECK-NEXT: vmem(r6+#0) = v11
786 ; CHECK-NEXT: vmem(r0+#5) = v5
789 ; CHECK-NEXT: vmem(r5+#0) = v12
792 ; CHECK-NEXT: vmem(r0+#6) = v6
795 ; CHECK-NEXT: vmem(r4+#0) = v13
798 ; CHECK-NEXT: vmem(r0+#7) = v7
801 ; CHECK-NEXT: vmem(r3+#0) = v14
804 ; CHECK-NEXT: jumpr r31
805 ; CHECK-NEXT: vmem(r2+#0) = v15
808 store <128 x i8> %a0, ptr %a16, align 128
809 %v1 = getelementptr <128 x i8>, ptr %a16, i32 1
810 store <128 x i8> %a1, ptr %v1, align 128
811 %v2 = getelementptr <128 x i8>, ptr %a16, i32 2
812 store <128 x i8> %a2, ptr %v2, align 128
813 %v3 = getelementptr <128 x i8>, ptr %a16, i32 3
814 store <128 x i8> %a3, ptr %v3, align 128
815 %v4 = getelementptr <128 x i8>, ptr %a16, i32 4
816 store <128 x i8> %a4, ptr %v4, align 128
817 %v5 = getelementptr <128 x i8>, ptr %a16, i32 5
818 store <128 x i8> %a5, ptr %v5, align 128
819 %v6 = getelementptr <128 x i8>, ptr %a16, i32 6
820 store <128 x i8> %a6, ptr %v6, align 128
821 %v7 = getelementptr <128 x i8>, ptr %a16, i32 7
822 store <128 x i8> %a7, ptr %v7, align 128
823 %v8 = getelementptr <128 x i8>, ptr %a16, i32 8
824 store <128 x i8> %a8, ptr %v8, align 128
825 %v9 = getelementptr <128 x i8>, ptr %a16, i32 9
826 store <128 x i8> %a9, ptr %v9, align 128
827 %v10 = getelementptr <128 x i8>, ptr %a16, i32 10
828 store <128 x i8> %a10, ptr %v10, align 128
829 %v11 = getelementptr <128 x i8>, ptr %a16, i32 11
830 store <128 x i8> %a11, ptr %v11, align 128
831 %v12 = getelementptr <128 x i8>, ptr %a16, i32 12
832 store <128 x i8> %a12, ptr %v12, align 128
833 %v13 = getelementptr <128 x i8>, ptr %a16, i32 13
834 store <128 x i8> %a13, ptr %v13, align 128
835 %v14 = getelementptr <128 x i8>, ptr %a16, i32 14
836 store <128 x i8> %a14, ptr %v14, align 128
837 %v15 = getelementptr <128 x i8>, ptr %a16, i32 15
838 store <128 x i8> %a15, ptr %v15, align 128
842 define void @f16(<128 x i8> %a0, <128 x i8> %a1, <128 x i8> %a2, <128 x i8> %a3, <128 x i8> %a4, <128 x i8> %a5, <128 x i8> %a6, <128 x i8> %a7, <128 x i8> %a8, <128 x i8> %a9, <128 x i8> %a10, <128 x i8> %a11, <128 x i8> %a12, <128 x i8> %a13, <128 x i8> %a14, <128 x i8> %a15, <128 x i8> %a16, ptr %a17) #0 {
844 ; CHECK: // %bb.0: // %b0
846 ; CHECK-NEXT: r2 = add(r0,#1152)
847 ; CHECK-NEXT: r3 = add(r0,#1280)
848 ; CHECK-NEXT: r4 = add(r0,#1408)
849 ; CHECK-NEXT: allocframe(r29,#0):raw
852 ; CHECK-NEXT: r1 = add(r30,#8)
853 ; CHECK-NEXT: r7 = add(r0,#1024)
854 ; CHECK-NEXT: r6 = add(r0,#1536)
855 ; CHECK-NEXT: vmem(r2+#0) = v9
858 ; CHECK-NEXT: r5 = add(r0,#1664)
859 ; CHECK-NEXT: r3 = add(r0,#1920)
860 ; CHECK-NEXT: r2 = add(r0,#2048)
861 ; CHECK-NEXT: vmem(r3+#0) = v10
864 ; CHECK-NEXT: r4 = add(r0,#1792)
865 ; CHECK-NEXT: r29 = and(r29,#-128)
866 ; CHECK-NEXT: v16 = vmem(r1+#0)
867 ; CHECK-NEXT: vmem(r4+#0) = v11
870 ; CHECK-NEXT: vmem(r0+#0) = v0
873 ; CHECK-NEXT: vmem(r0+#1) = v1
876 ; CHECK-NEXT: vmem(r7+#0) = v8
879 ; CHECK-NEXT: vmem(r0+#2) = v2
882 ; CHECK-NEXT: vmem(r0+#3) = v3
885 ; CHECK-NEXT: vmem(r0+#4) = v4
888 ; CHECK-NEXT: vmem(r6+#0) = v12
891 ; CHECK-NEXT: vmem(r0+#5) = v5
894 ; CHECK-NEXT: vmem(r5+#0) = v13
897 ; CHECK-NEXT: vmem(r0+#6) = v6
900 ; CHECK-NEXT: vmem(r4+#0) = v14
903 ; CHECK-NEXT: vmem(r0+#7) = v7
906 ; CHECK-NEXT: vmem(r3+#0) = v15
909 ; CHECK-NEXT: vmem(r2+#0) = v16
912 ; CHECK-NEXT: r31:30 = dealloc_return(r30):raw
915 store <128 x i8> %a0, ptr %a17, align 128
916 %v1 = getelementptr <128 x i8>, ptr %a17, i32 1
917 store <128 x i8> %a1, ptr %v1, align 128
918 %v2 = getelementptr <128 x i8>, ptr %a17, i32 2
919 store <128 x i8> %a2, ptr %v2, align 128
920 %v3 = getelementptr <128 x i8>, ptr %a17, i32 3
921 store <128 x i8> %a3, ptr %v3, align 128
922 %v4 = getelementptr <128 x i8>, ptr %a17, i32 4
923 store <128 x i8> %a4, ptr %v4, align 128
924 %v5 = getelementptr <128 x i8>, ptr %a17, i32 5
925 store <128 x i8> %a5, ptr %v5, align 128
926 %v6 = getelementptr <128 x i8>, ptr %a17, i32 6
927 store <128 x i8> %a6, ptr %v6, align 128
928 %v7 = getelementptr <128 x i8>, ptr %a17, i32 7
929 store <128 x i8> %a7, ptr %v7, align 128
930 %v8 = getelementptr <128 x i8>, ptr %a17, i32 8
931 store <128 x i8> %a8, ptr %v8, align 128
932 %v9 = getelementptr <128 x i8>, ptr %a17, i32 9
933 store <128 x i8> %a9, ptr %v9, align 128
934 %v10 = getelementptr <128 x i8>, ptr %a17, i32 10
935 store <128 x i8> %a10, ptr %v10, align 128
936 %v11 = getelementptr <128 x i8>, ptr %a17, i32 11
937 store <128 x i8> %a11, ptr %v11, align 128
938 %v12 = getelementptr <128 x i8>, ptr %a17, i32 12
939 store <128 x i8> %a12, ptr %v12, align 128
940 %v13 = getelementptr <128 x i8>, ptr %a17, i32 13
941 store <128 x i8> %a13, ptr %v13, align 128
942 %v14 = getelementptr <128 x i8>, ptr %a17, i32 14
943 store <128 x i8> %a14, ptr %v14, align 128
944 %v15 = getelementptr <128 x i8>, ptr %a17, i32 15
945 store <128 x i8> %a15, ptr %v15, align 128
946 %v16 = getelementptr <128 x i8>, ptr %a17, i32 16
947 store <128 x i8> %a16, ptr %v16, align 128
951 define void @f17(<64 x i16> %a0, <64 x i16> %a1, <64 x i16> %a2, <64 x i16> %a3, <64 x i16> %a4, <64 x i16> %a5, <64 x i16> %a6, <64 x i16> %a7, <64 x i16> %a8, <64 x i16> %a9, <64 x i16> %a10, <64 x i16> %a11, <64 x i16> %a12, <64 x i16> %a13, <64 x i16> %a14, <64 x i16> %a15, <64 x i16> %a16, ptr %a17) #0 {
953 ; CHECK: // %bb.0: // %b0
955 ; CHECK-NEXT: r2 = add(r0,#1152)
956 ; CHECK-NEXT: r3 = add(r0,#1280)
957 ; CHECK-NEXT: r4 = add(r0,#1408)
958 ; CHECK-NEXT: allocframe(r29,#0):raw
961 ; CHECK-NEXT: r1 = add(r30,#8)
962 ; CHECK-NEXT: r7 = add(r0,#1024)
963 ; CHECK-NEXT: r6 = add(r0,#1536)
964 ; CHECK-NEXT: vmem(r2+#0) = v9
967 ; CHECK-NEXT: r5 = add(r0,#1664)
968 ; CHECK-NEXT: r3 = add(r0,#1920)
969 ; CHECK-NEXT: r2 = add(r0,#2048)
970 ; CHECK-NEXT: vmem(r3+#0) = v10
973 ; CHECK-NEXT: r4 = add(r0,#1792)
974 ; CHECK-NEXT: r29 = and(r29,#-128)
975 ; CHECK-NEXT: v16 = vmem(r1+#0)
976 ; CHECK-NEXT: vmem(r4+#0) = v11
979 ; CHECK-NEXT: vmem(r0+#0) = v0
982 ; CHECK-NEXT: vmem(r0+#1) = v1
985 ; CHECK-NEXT: vmem(r7+#0) = v8
988 ; CHECK-NEXT: vmem(r0+#2) = v2
991 ; CHECK-NEXT: vmem(r0+#3) = v3
994 ; CHECK-NEXT: vmem(r0+#4) = v4
997 ; CHECK-NEXT: vmem(r6+#0) = v12
1000 ; CHECK-NEXT: vmem(r0+#5) = v5
1003 ; CHECK-NEXT: vmem(r5+#0) = v13
1006 ; CHECK-NEXT: vmem(r0+#6) = v6
1009 ; CHECK-NEXT: vmem(r4+#0) = v14
1012 ; CHECK-NEXT: vmem(r0+#7) = v7
1015 ; CHECK-NEXT: vmem(r3+#0) = v15
1018 ; CHECK-NEXT: vmem(r2+#0) = v16
1021 ; CHECK-NEXT: r31:30 = dealloc_return(r30):raw
1024 store <64 x i16> %a0, ptr %a17, align 128
1025 %v1 = getelementptr <64 x i16>, ptr %a17, i32 1
1026 store <64 x i16> %a1, ptr %v1, align 128
1027 %v2 = getelementptr <64 x i16>, ptr %a17, i32 2
1028 store <64 x i16> %a2, ptr %v2, align 128
1029 %v3 = getelementptr <64 x i16>, ptr %a17, i32 3
1030 store <64 x i16> %a3, ptr %v3, align 128
1031 %v4 = getelementptr <64 x i16>, ptr %a17, i32 4
1032 store <64 x i16> %a4, ptr %v4, align 128
1033 %v5 = getelementptr <64 x i16>, ptr %a17, i32 5
1034 store <64 x i16> %a5, ptr %v5, align 128
1035 %v6 = getelementptr <64 x i16>, ptr %a17, i32 6
1036 store <64 x i16> %a6, ptr %v6, align 128
1037 %v7 = getelementptr <64 x i16>, ptr %a17, i32 7
1038 store <64 x i16> %a7, ptr %v7, align 128
1039 %v8 = getelementptr <64 x i16>, ptr %a17, i32 8
1040 store <64 x i16> %a8, ptr %v8, align 128
1041 %v9 = getelementptr <64 x i16>, ptr %a17, i32 9
1042 store <64 x i16> %a9, ptr %v9, align 128
1043 %v10 = getelementptr <64 x i16>, ptr %a17, i32 10
1044 store <64 x i16> %a10, ptr %v10, align 128
1045 %v11 = getelementptr <64 x i16>, ptr %a17, i32 11
1046 store <64 x i16> %a11, ptr %v11, align 128
1047 %v12 = getelementptr <64 x i16>, ptr %a17, i32 12
1048 store <64 x i16> %a12, ptr %v12, align 128
1049 %v13 = getelementptr <64 x i16>, ptr %a17, i32 13
1050 store <64 x i16> %a13, ptr %v13, align 128
1051 %v14 = getelementptr <64 x i16>, ptr %a17, i32 14
1052 store <64 x i16> %a14, ptr %v14, align 128
1053 %v15 = getelementptr <64 x i16>, ptr %a17, i32 15
1054 store <64 x i16> %a15, ptr %v15, align 128
1055 %v16 = getelementptr <64 x i16>, ptr %a17, i32 16
1056 store <64 x i16> %a16, ptr %v16, align 128
1060 define void @f18(<32 x i32> %a0, <32 x i32> %a1, <32 x i32> %a2, <32 x i32> %a3, <32 x i32> %a4, <32 x i32> %a5, <32 x i32> %a6, <32 x i32> %a7, <32 x i32> %a8, <32 x i32> %a9, <32 x i32> %a10, <32 x i32> %a11, <32 x i32> %a12, <32 x i32> %a13, <32 x i32> %a14, <32 x i32> %a15, <32 x i32> %a16, ptr %a17) #0 {
1062 ; CHECK: // %bb.0: // %b0
1064 ; CHECK-NEXT: r2 = add(r0,#1152)
1065 ; CHECK-NEXT: r3 = add(r0,#1280)
1066 ; CHECK-NEXT: r4 = add(r0,#1408)
1067 ; CHECK-NEXT: allocframe(r29,#0):raw
1070 ; CHECK-NEXT: r1 = add(r30,#8)
1071 ; CHECK-NEXT: r7 = add(r0,#1024)
1072 ; CHECK-NEXT: r6 = add(r0,#1536)
1073 ; CHECK-NEXT: vmem(r2+#0) = v9
1076 ; CHECK-NEXT: r5 = add(r0,#1664)
1077 ; CHECK-NEXT: r3 = add(r0,#1920)
1078 ; CHECK-NEXT: r2 = add(r0,#2048)
1079 ; CHECK-NEXT: vmem(r3+#0) = v10
1082 ; CHECK-NEXT: r4 = add(r0,#1792)
1083 ; CHECK-NEXT: r29 = and(r29,#-128)
1084 ; CHECK-NEXT: v16 = vmem(r1+#0)
1085 ; CHECK-NEXT: vmem(r4+#0) = v11
1088 ; CHECK-NEXT: vmem(r0+#0) = v0
1091 ; CHECK-NEXT: vmem(r0+#1) = v1
1094 ; CHECK-NEXT: vmem(r7+#0) = v8
1097 ; CHECK-NEXT: vmem(r0+#2) = v2
1100 ; CHECK-NEXT: vmem(r0+#3) = v3
1103 ; CHECK-NEXT: vmem(r0+#4) = v4
1106 ; CHECK-NEXT: vmem(r6+#0) = v12
1109 ; CHECK-NEXT: vmem(r0+#5) = v5
1112 ; CHECK-NEXT: vmem(r5+#0) = v13
1115 ; CHECK-NEXT: vmem(r0+#6) = v6
1118 ; CHECK-NEXT: vmem(r4+#0) = v14
1121 ; CHECK-NEXT: vmem(r0+#7) = v7
1124 ; CHECK-NEXT: vmem(r3+#0) = v15
1127 ; CHECK-NEXT: vmem(r2+#0) = v16
1130 ; CHECK-NEXT: r31:30 = dealloc_return(r30):raw
1133 store <32 x i32> %a0, ptr %a17, align 128
1134 %v1 = getelementptr <32 x i32>, ptr %a17, i32 1
1135 store <32 x i32> %a1, ptr %v1, align 128
1136 %v2 = getelementptr <32 x i32>, ptr %a17, i32 2
1137 store <32 x i32> %a2, ptr %v2, align 128
1138 %v3 = getelementptr <32 x i32>, ptr %a17, i32 3
1139 store <32 x i32> %a3, ptr %v3, align 128
1140 %v4 = getelementptr <32 x i32>, ptr %a17, i32 4
1141 store <32 x i32> %a4, ptr %v4, align 128
1142 %v5 = getelementptr <32 x i32>, ptr %a17, i32 5
1143 store <32 x i32> %a5, ptr %v5, align 128
1144 %v6 = getelementptr <32 x i32>, ptr %a17, i32 6
1145 store <32 x i32> %a6, ptr %v6, align 128
1146 %v7 = getelementptr <32 x i32>, ptr %a17, i32 7
1147 store <32 x i32> %a7, ptr %v7, align 128
1148 %v8 = getelementptr <32 x i32>, ptr %a17, i32 8
1149 store <32 x i32> %a8, ptr %v8, align 128
1150 %v9 = getelementptr <32 x i32>, ptr %a17, i32 9
1151 store <32 x i32> %a9, ptr %v9, align 128
1152 %v10 = getelementptr <32 x i32>, ptr %a17, i32 10
1153 store <32 x i32> %a10, ptr %v10, align 128
1154 %v11 = getelementptr <32 x i32>, ptr %a17, i32 11
1155 store <32 x i32> %a11, ptr %v11, align 128
1156 %v12 = getelementptr <32 x i32>, ptr %a17, i32 12
1157 store <32 x i32> %a12, ptr %v12, align 128
1158 %v13 = getelementptr <32 x i32>, ptr %a17, i32 13
1159 store <32 x i32> %a13, ptr %v13, align 128
1160 %v14 = getelementptr <32 x i32>, ptr %a17, i32 14
1161 store <32 x i32> %a14, ptr %v14, align 128
1162 %v15 = getelementptr <32 x i32>, ptr %a17, i32 15
1163 store <32 x i32> %a15, ptr %v15, align 128
1164 %v16 = getelementptr <32 x i32>, ptr %a17, i32 16
1165 store <32 x i32> %a16, ptr %v16, align 128
1169 define void @f19(<64 x half> %a0, <64 x half> %a1, <64 x half> %a2, <64 x half> %a3, <64 x half> %a4, <64 x half> %a5, <64 x half> %a6, <64 x half> %a7, <64 x half> %a8, <64 x half> %a9, <64 x half> %a10, <64 x half> %a11, <64 x half> %a12, <64 x half> %a13, <64 x half> %a14, <64 x half> %a15, <64 x half> %a16, ptr %a17) #0 {
1171 ; CHECK: // %bb.0: // %b0
1173 ; CHECK-NEXT: r2 = add(r0,#1152)
1174 ; CHECK-NEXT: r3 = add(r0,#1280)
1175 ; CHECK-NEXT: r4 = add(r0,#1408)
1176 ; CHECK-NEXT: allocframe(r29,#0):raw
1179 ; CHECK-NEXT: r1 = add(r30,#8)
1180 ; CHECK-NEXT: r7 = add(r0,#1024)
1181 ; CHECK-NEXT: r6 = add(r0,#1536)
1182 ; CHECK-NEXT: vmem(r2+#0) = v9
1185 ; CHECK-NEXT: r5 = add(r0,#1664)
1186 ; CHECK-NEXT: r3 = add(r0,#1920)
1187 ; CHECK-NEXT: r2 = add(r0,#2048)
1188 ; CHECK-NEXT: vmem(r3+#0) = v10
1191 ; CHECK-NEXT: r4 = add(r0,#1792)
1192 ; CHECK-NEXT: r29 = and(r29,#-128)
1193 ; CHECK-NEXT: v16 = vmem(r1+#0)
1194 ; CHECK-NEXT: vmem(r4+#0) = v11
1197 ; CHECK-NEXT: vmem(r0+#0) = v0
1200 ; CHECK-NEXT: vmem(r0+#1) = v1
1203 ; CHECK-NEXT: vmem(r7+#0) = v8
1206 ; CHECK-NEXT: vmem(r0+#2) = v2
1209 ; CHECK-NEXT: vmem(r0+#3) = v3
1212 ; CHECK-NEXT: vmem(r0+#4) = v4
1215 ; CHECK-NEXT: vmem(r6+#0) = v12
1218 ; CHECK-NEXT: vmem(r0+#5) = v5
1221 ; CHECK-NEXT: vmem(r5+#0) = v13
1224 ; CHECK-NEXT: vmem(r0+#6) = v6
1227 ; CHECK-NEXT: vmem(r4+#0) = v14
1230 ; CHECK-NEXT: vmem(r0+#7) = v7
1233 ; CHECK-NEXT: vmem(r3+#0) = v15
1236 ; CHECK-NEXT: vmem(r2+#0) = v16
1239 ; CHECK-NEXT: r31:30 = dealloc_return(r30):raw
1242 store <64 x half> %a0, ptr %a17, align 128
1243 %v1 = getelementptr <64 x half>, ptr %a17, i32 1
1244 store <64 x half> %a1, ptr %v1, align 128
1245 %v2 = getelementptr <64 x half>, ptr %a17, i32 2
1246 store <64 x half> %a2, ptr %v2, align 128
1247 %v3 = getelementptr <64 x half>, ptr %a17, i32 3
1248 store <64 x half> %a3, ptr %v3, align 128
1249 %v4 = getelementptr <64 x half>, ptr %a17, i32 4
1250 store <64 x half> %a4, ptr %v4, align 128
1251 %v5 = getelementptr <64 x half>, ptr %a17, i32 5
1252 store <64 x half> %a5, ptr %v5, align 128
1253 %v6 = getelementptr <64 x half>, ptr %a17, i32 6
1254 store <64 x half> %a6, ptr %v6, align 128
1255 %v7 = getelementptr <64 x half>, ptr %a17, i32 7
1256 store <64 x half> %a7, ptr %v7, align 128
1257 %v8 = getelementptr <64 x half>, ptr %a17, i32 8
1258 store <64 x half> %a8, ptr %v8, align 128
1259 %v9 = getelementptr <64 x half>, ptr %a17, i32 9
1260 store <64 x half> %a9, ptr %v9, align 128
1261 %v10 = getelementptr <64 x half>, ptr %a17, i32 10
1262 store <64 x half> %a10, ptr %v10, align 128
1263 %v11 = getelementptr <64 x half>, ptr %a17, i32 11
1264 store <64 x half> %a11, ptr %v11, align 128
1265 %v12 = getelementptr <64 x half>, ptr %a17, i32 12
1266 store <64 x half> %a12, ptr %v12, align 128
1267 %v13 = getelementptr <64 x half>, ptr %a17, i32 13
1268 store <64 x half> %a13, ptr %v13, align 128
1269 %v14 = getelementptr <64 x half>, ptr %a17, i32 14
1270 store <64 x half> %a14, ptr %v14, align 128
1271 %v15 = getelementptr <64 x half>, ptr %a17, i32 15
1272 store <64 x half> %a15, ptr %v15, align 128
1273 %v16 = getelementptr <64 x half>, ptr %a17, i32 16
1274 store <64 x half> %a16, ptr %v16, align 128
1278 define void @f20(<32 x float> %a0, <32 x float> %a1, <32 x float> %a2, <32 x float> %a3, <32 x float> %a4, <32 x float> %a5, <32 x float> %a6, <32 x float> %a7, <32 x float> %a8, <32 x float> %a9, <32 x float> %a10, <32 x float> %a11, <32 x float> %a12, <32 x float> %a13, <32 x float> %a14, <32 x float> %a15, <32 x float> %a16, ptr %a17) #0 {
1280 ; CHECK: // %bb.0: // %b0
1282 ; CHECK-NEXT: r2 = add(r0,#1152)
1283 ; CHECK-NEXT: r3 = add(r0,#1280)
1284 ; CHECK-NEXT: r4 = add(r0,#1408)
1285 ; CHECK-NEXT: allocframe(r29,#0):raw
1288 ; CHECK-NEXT: r1 = add(r30,#8)
1289 ; CHECK-NEXT: r7 = add(r0,#1024)
1290 ; CHECK-NEXT: r6 = add(r0,#1536)
1291 ; CHECK-NEXT: vmem(r2+#0) = v9
1294 ; CHECK-NEXT: r5 = add(r0,#1664)
1295 ; CHECK-NEXT: r3 = add(r0,#1920)
1296 ; CHECK-NEXT: r2 = add(r0,#2048)
1297 ; CHECK-NEXT: vmem(r3+#0) = v10
1300 ; CHECK-NEXT: r4 = add(r0,#1792)
1301 ; CHECK-NEXT: r29 = and(r29,#-128)
1302 ; CHECK-NEXT: v16 = vmem(r1+#0)
1303 ; CHECK-NEXT: vmem(r4+#0) = v11
1306 ; CHECK-NEXT: vmem(r0+#0) = v0
1309 ; CHECK-NEXT: vmem(r0+#1) = v1
1312 ; CHECK-NEXT: vmem(r7+#0) = v8
1315 ; CHECK-NEXT: vmem(r0+#2) = v2
1318 ; CHECK-NEXT: vmem(r0+#3) = v3
1321 ; CHECK-NEXT: vmem(r0+#4) = v4
1324 ; CHECK-NEXT: vmem(r6+#0) = v12
1327 ; CHECK-NEXT: vmem(r0+#5) = v5
1330 ; CHECK-NEXT: vmem(r5+#0) = v13
1333 ; CHECK-NEXT: vmem(r0+#6) = v6
1336 ; CHECK-NEXT: vmem(r4+#0) = v14
1339 ; CHECK-NEXT: vmem(r0+#7) = v7
1342 ; CHECK-NEXT: vmem(r3+#0) = v15
1345 ; CHECK-NEXT: vmem(r2+#0) = v16
1348 ; CHECK-NEXT: r31:30 = dealloc_return(r30):raw
1351 store <32 x float> %a0, ptr %a17, align 128
1352 %v1 = getelementptr <32 x float>, ptr %a17, i32 1
1353 store <32 x float> %a1, ptr %v1, align 128
1354 %v2 = getelementptr <32 x float>, ptr %a17, i32 2
1355 store <32 x float> %a2, ptr %v2, align 128
1356 %v3 = getelementptr <32 x float>, ptr %a17, i32 3
1357 store <32 x float> %a3, ptr %v3, align 128
1358 %v4 = getelementptr <32 x float>, ptr %a17, i32 4
1359 store <32 x float> %a4, ptr %v4, align 128
1360 %v5 = getelementptr <32 x float>, ptr %a17, i32 5
1361 store <32 x float> %a5, ptr %v5, align 128
1362 %v6 = getelementptr <32 x float>, ptr %a17, i32 6
1363 store <32 x float> %a6, ptr %v6, align 128
1364 %v7 = getelementptr <32 x float>, ptr %a17, i32 7
1365 store <32 x float> %a7, ptr %v7, align 128
1366 %v8 = getelementptr <32 x float>, ptr %a17, i32 8
1367 store <32 x float> %a8, ptr %v8, align 128
1368 %v9 = getelementptr <32 x float>, ptr %a17, i32 9
1369 store <32 x float> %a9, ptr %v9, align 128
1370 %v10 = getelementptr <32 x float>, ptr %a17, i32 10
1371 store <32 x float> %a10, ptr %v10, align 128
1372 %v11 = getelementptr <32 x float>, ptr %a17, i32 11
1373 store <32 x float> %a11, ptr %v11, align 128
1374 %v12 = getelementptr <32 x float>, ptr %a17, i32 12
1375 store <32 x float> %a12, ptr %v12, align 128
1376 %v13 = getelementptr <32 x float>, ptr %a17, i32 13
1377 store <32 x float> %a13, ptr %v13, align 128
1378 %v14 = getelementptr <32 x float>, ptr %a17, i32 14
1379 store <32 x float> %a14, ptr %v14, align 128
1380 %v15 = getelementptr <32 x float>, ptr %a17, i32 15
1381 store <32 x float> %a15, ptr %v15, align 128
1382 %v16 = getelementptr <32 x float>, ptr %a17, i32 16
1383 store <32 x float> %a16, ptr %v16, align 128
1387 define <128 x i8> @f21() #0 {
1391 ; CHECK-NEXT: v0 = vxor(v0,v0)
1392 ; CHECK-NEXT: jumpr r31
1394 %v0 = insertelement <128 x i8> undef, i8 0, i32 0
1395 %v1 = shufflevector <128 x i8> %v0, <128 x i8> undef, <128 x i32> zeroinitializer
1399 define <256 x i8> @f22() #0 {
1403 ; CHECK-NEXT: v1:0.w = vsub(v1:0.w,v1:0.w)
1404 ; CHECK-NEXT: jumpr r31
1406 %v0 = insertelement <256 x i8> undef, i8 0, i32 0
1407 %v1 = shufflevector <256 x i8> %v0, <256 x i8> undef, <256 x i32> zeroinitializer
1411 define <64 x i16> @f23() #0 {
1415 ; CHECK-NEXT: v0 = vxor(v0,v0)
1416 ; CHECK-NEXT: jumpr r31
1418 %v0 = insertelement <64 x i16> undef, i16 0, i32 0
1419 %v1 = shufflevector <64 x i16> %v0, <64 x i16> undef, <64 x i32> zeroinitializer
1423 define <128 x i16> @f24() #0 {
1427 ; CHECK-NEXT: v1:0.w = vsub(v1:0.w,v1:0.w)
1428 ; CHECK-NEXT: jumpr r31
1430 %v0 = insertelement <128 x i16> undef, i16 0, i32 0
1431 %v1 = shufflevector <128 x i16> %v0, <128 x i16> undef, <128 x i32> zeroinitializer
1435 define <32 x i32> @f25() #0 {
1439 ; CHECK-NEXT: v0 = vxor(v0,v0)
1440 ; CHECK-NEXT: jumpr r31
1442 %v0 = insertelement <32 x i32> undef, i32 0, i32 0
1443 %v1 = shufflevector <32 x i32> %v0, <32 x i32> undef, <32 x i32> zeroinitializer
1447 define <64 x i32> @f26() #0 {
1451 ; CHECK-NEXT: v1:0.w = vsub(v1:0.w,v1:0.w)
1452 ; CHECK-NEXT: jumpr r31
1454 %v0 = insertelement <64 x i32> undef, i32 0, i32 0
1455 %v1 = shufflevector <64 x i32> %v0, <64 x i32> undef, <64 x i32> zeroinitializer
1459 define <64 x half> @f27() #0 {
1463 ; CHECK-NEXT: v0 = vxor(v0,v0)
1464 ; CHECK-NEXT: jumpr r31
1466 %v0 = insertelement <64 x half> undef, half 0xH0, i32 0
1467 %v1 = shufflevector <64 x half> %v0, <64 x half> undef, <64 x i32> zeroinitializer
1471 define <128 x half> @f28() #0 {
1475 ; CHECK-NEXT: v1:0.w = vsub(v1:0.w,v1:0.w)
1476 ; CHECK-NEXT: jumpr r31
1478 %v0 = insertelement <128 x half> undef, half 0xH0, i32 0
1479 %v1 = shufflevector <128 x half> %v0, <128 x half> undef, <128 x i32> zeroinitializer
1480 ret <128 x half> %v1
1483 define <32 x float> @f29() #0 {
1487 ; CHECK-NEXT: v0 = vxor(v0,v0)
1488 ; CHECK-NEXT: jumpr r31
1490 %v0 = insertelement <32 x float> undef, float 0.0, i32 0
1491 %v1 = shufflevector <32 x float> %v0, <32 x float> undef, <32 x i32> zeroinitializer
1492 ret <32 x float> %v1
1495 define <64 x float> @f30() #0 {
1499 ; CHECK-NEXT: v1:0.w = vsub(v1:0.w,v1:0.w)
1500 ; CHECK-NEXT: jumpr r31
1502 %v0 = insertelement <64 x float> undef, float 0.0, i32 0
1503 %v1 = shufflevector <64 x float> %v0, <64 x float> undef, <64 x i32> zeroinitializer
1504 ret <64 x float> %v1
1507 attributes #0 = { nounwind "target-cpu"="hexagonv69" "target-features"="+hvxv69,+hvx-length128b,+hvx-qfloat" }