Lines Matching refs:VI
3 …al -mattr=+max-private-element-size-16 < %s | FileCheck -enable-var-scope -check-prefixes=GCN,VI %s
22 ; VI-LABEL: insertelement_v2f32_0:
23 ; VI: ; %bb.0:
24 ; VI-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x8
25 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
26 ; VI-NEXT: s_mov_b32 s3, 0x1100f000
27 ; VI-NEXT: s_mov_b32 s2, -1
28 ; VI-NEXT: v_mov_b32_e32 v0, 0x40a00000
29 ; VI-NEXT: s_waitcnt lgkmcnt(0)
30 ; VI-NEXT: v_mov_b32_e32 v1, s7
31 ; VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0
32 ; VI-NEXT: s_endpgm
51 ; VI-LABEL: insertelement_v2f32_1:
52 ; VI: ; %bb.0:
53 ; VI-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x8
54 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
55 ; VI-NEXT: s_mov_b32 s3, 0x1100f000
56 ; VI-NEXT: s_mov_b32 s2, -1
57 ; VI-NEXT: v_mov_b32_e32 v1, 0x40a00000
58 ; VI-NEXT: s_waitcnt lgkmcnt(0)
59 ; VI-NEXT: v_mov_b32_e32 v0, s6
60 ; VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0
61 ; VI-NEXT: s_endpgm
80 ; VI-LABEL: insertelement_v2i32_0:
81 ; VI: ; %bb.0:
82 ; VI-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x8
83 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
84 ; VI-NEXT: s_mov_b32 s3, 0x1100f000
85 ; VI-NEXT: s_mov_b32 s2, -1
86 ; VI-NEXT: v_mov_b32_e32 v0, 0x3e7
87 ; VI-NEXT: s_waitcnt lgkmcnt(0)
88 ; VI-NEXT: v_mov_b32_e32 v1, s7
89 ; VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0
90 ; VI-NEXT: s_endpgm
109 ; VI-LABEL: insertelement_v2i32_1:
110 ; VI: ; %bb.0:
111 ; VI-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x8
112 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
113 ; VI-NEXT: s_mov_b32 s3, 0x1100f000
114 ; VI-NEXT: s_mov_b32 s2, -1
115 ; VI-NEXT: v_mov_b32_e32 v1, 0x3e7
116 ; VI-NEXT: s_waitcnt lgkmcnt(0)
117 ; VI-NEXT: v_mov_b32_e32 v0, s6
118 ; VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0
119 ; VI-NEXT: s_endpgm
143 ; VI-LABEL: insertelement_v4f32_0:
144 ; VI: ; %bb.0:
145 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x10
146 ; VI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
147 ; VI-NEXT: s_waitcnt lgkmcnt(0)
148 ; VI-NEXT: s_mov_b32 s0, 0x40a00000
149 ; VI-NEXT: s_mov_b32 s7, 0x1100f000
150 ; VI-NEXT: s_mov_b32 s6, -1
151 ; VI-NEXT: v_mov_b32_e32 v0, s0
152 ; VI-NEXT: v_mov_b32_e32 v1, s1
153 ; VI-NEXT: v_mov_b32_e32 v2, s2
154 ; VI-NEXT: v_mov_b32_e32 v3, s3
155 ; VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0
156 ; VI-NEXT: s_endpgm
178 ; VI-LABEL: insertelement_v4f32_1:
179 ; VI: ; %bb.0:
180 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x10
181 ; VI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
182 ; VI-NEXT: s_waitcnt lgkmcnt(0)
183 ; VI-NEXT: s_mov_b32 s1, 0x40a00000
184 ; VI-NEXT: s_mov_b32 s7, 0x1100f000
185 ; VI-NEXT: s_mov_b32 s6, -1
186 ; VI-NEXT: v_mov_b32_e32 v0, s0
187 ; VI-NEXT: v_mov_b32_e32 v1, s1
188 ; VI-NEXT: v_mov_b32_e32 v2, s2
189 ; VI-NEXT: v_mov_b32_e32 v3, s3
190 ; VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0
191 ; VI-NEXT: s_endpgm
213 ; VI-LABEL: insertelement_v4f32_2:
214 ; VI: ; %bb.0:
215 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x10
216 ; VI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
217 ; VI-NEXT: s_waitcnt lgkmcnt(0)
218 ; VI-NEXT: s_mov_b32 s2, 0x40a00000
219 ; VI-NEXT: s_mov_b32 s7, 0x1100f000
220 ; VI-NEXT: s_mov_b32 s6, -1
221 ; VI-NEXT: v_mov_b32_e32 v0, s0
222 ; VI-NEXT: v_mov_b32_e32 v1, s1
223 ; VI-NEXT: v_mov_b32_e32 v2, s2
224 ; VI-NEXT: v_mov_b32_e32 v3, s3
225 ; VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0
226 ; VI-NEXT: s_endpgm
248 ; VI-LABEL: insertelement_v4f32_3:
249 ; VI: ; %bb.0:
250 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x10
251 ; VI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
252 ; VI-NEXT: s_waitcnt lgkmcnt(0)
253 ; VI-NEXT: s_mov_b32 s3, 0x40a00000
254 ; VI-NEXT: s_mov_b32 s7, 0x1100f000
255 ; VI-NEXT: s_mov_b32 s6, -1
256 ; VI-NEXT: v_mov_b32_e32 v0, s0
257 ; VI-NEXT: v_mov_b32_e32 v1, s1
258 ; VI-NEXT: v_mov_b32_e32 v2, s2
259 ; VI-NEXT: v_mov_b32_e32 v3, s3
260 ; VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0
261 ; VI-NEXT: s_endpgm
283 ; VI-LABEL: insertelement_v4i32_0:
284 ; VI: ; %bb.0:
285 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x10
286 ; VI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
287 ; VI-NEXT: s_waitcnt lgkmcnt(0)
288 ; VI-NEXT: s_movk_i32 s0, 0x3e7
289 ; VI-NEXT: s_mov_b32 s7, 0x1100f000
290 ; VI-NEXT: s_mov_b32 s6, -1
291 ; VI-NEXT: v_mov_b32_e32 v0, s0
292 ; VI-NEXT: v_mov_b32_e32 v1, s1
293 ; VI-NEXT: v_mov_b32_e32 v2, s2
294 ; VI-NEXT: v_mov_b32_e32 v3, s3
295 ; VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0
296 ; VI-NEXT: s_endpgm
316 ; VI-LABEL: insertelement_v3f32_1:
317 ; VI: ; %bb.0:
318 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x10
319 ; VI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
320 ; VI-NEXT: s_mov_b32 s7, 0x1100f000
321 ; VI-NEXT: s_mov_b32 s6, -1
322 ; VI-NEXT: v_mov_b32_e32 v1, 0x40a00000
323 ; VI-NEXT: s_waitcnt lgkmcnt(0)
324 ; VI-NEXT: v_mov_b32_e32 v0, s0
325 ; VI-NEXT: v_mov_b32_e32 v2, s2
326 ; VI-NEXT: buffer_store_dwordx3 v[0:2], off, s[4:7], 0
327 ; VI-NEXT: s_endpgm
347 ; VI-LABEL: insertelement_v3f32_2:
348 ; VI: ; %bb.0:
349 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x10
350 ; VI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
351 ; VI-NEXT: s_mov_b32 s7, 0x1100f000
352 ; VI-NEXT: s_mov_b32 s6, -1
353 ; VI-NEXT: v_mov_b32_e32 v2, 0x40a00000
354 ; VI-NEXT: s_waitcnt lgkmcnt(0)
355 ; VI-NEXT: v_mov_b32_e32 v0, s0
356 ; VI-NEXT: v_mov_b32_e32 v1, s1
357 ; VI-NEXT: buffer_store_dwordx3 v[0:2], off, s[4:7], 0
358 ; VI-NEXT: s_endpgm
410 ; VI-LABEL: dynamic_insertelement_v2f32:
411 ; VI: ; %bb.0:
412 ; VI-NEXT: s_load_dword s6, s[4:5], 0x10
413 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
414 ; VI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x8
415 ; VI-NEXT: v_mov_b32_e32 v0, 0x40a00000
416 ; VI-NEXT: s_mov_b32 s3, 0x1100f000
417 ; VI-NEXT: s_waitcnt lgkmcnt(0)
418 ; VI-NEXT: s_cmp_lg_u32 s6, 1
419 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
420 ; VI-NEXT: v_mov_b32_e32 v1, s5
421 ; VI-NEXT: s_cmp_lg_u32 s6, 0
422 ; VI-NEXT: v_cndmask_b32_e32 v1, v0, v1, vcc
423 ; VI-NEXT: v_mov_b32_e32 v2, s4
424 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
425 ; VI-NEXT: s_mov_b32 s2, -1
426 ; VI-NEXT: v_cndmask_b32_e32 v0, v0, v2, vcc
427 ; VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0
428 ; VI-NEXT: s_endpgm
459 ; VI-LABEL: dynamic_insertelement_v3f32:
460 ; VI: ; %bb.0:
461 ; VI-NEXT: s_load_dword s8, s[4:5], 0x20
462 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
463 ; VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x10
464 ; VI-NEXT: v_mov_b32_e32 v0, 0x40a00000
465 ; VI-NEXT: s_mov_b32 s3, 0x1100f000
466 ; VI-NEXT: s_waitcnt lgkmcnt(0)
467 ; VI-NEXT: s_cmp_lg_u32 s8, 2
468 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
469 ; VI-NEXT: v_mov_b32_e32 v1, s6
470 ; VI-NEXT: s_cmp_lg_u32 s8, 1
471 ; VI-NEXT: v_cndmask_b32_e32 v2, v0, v1, vcc
472 ; VI-NEXT: v_mov_b32_e32 v1, s5
473 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
474 ; VI-NEXT: s_cmp_lg_u32 s8, 0
475 ; VI-NEXT: v_cndmask_b32_e32 v1, v0, v1, vcc
476 ; VI-NEXT: v_mov_b32_e32 v3, s4
477 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
478 ; VI-NEXT: s_mov_b32 s2, -1
479 ; VI-NEXT: v_cndmask_b32_e32 v0, v0, v3, vcc
480 ; VI-NEXT: buffer_store_dwordx3 v[0:2], off, s[0:3], 0
481 ; VI-NEXT: s_endpgm
516 ; VI-LABEL: dynamic_insertelement_v4f32:
517 ; VI: ; %bb.0:
518 ; VI-NEXT: s_load_dword s8, s[4:5], 0x20
519 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
520 ; VI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x10
521 ; VI-NEXT: v_mov_b32_e32 v0, 0x40a00000
522 ; VI-NEXT: s_mov_b32 s3, 0x1100f000
523 ; VI-NEXT: s_waitcnt lgkmcnt(0)
524 ; VI-NEXT: s_cmp_lg_u32 s8, 3
525 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
526 ; VI-NEXT: v_mov_b32_e32 v1, s7
527 ; VI-NEXT: s_cmp_lg_u32 s8, 2
528 ; VI-NEXT: v_cndmask_b32_e32 v3, v0, v1, vcc
529 ; VI-NEXT: v_mov_b32_e32 v1, s6
530 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
531 ; VI-NEXT: s_cmp_lg_u32 s8, 1
532 ; VI-NEXT: v_cndmask_b32_e32 v2, v0, v1, vcc
533 ; VI-NEXT: v_mov_b32_e32 v1, s5
534 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
535 ; VI-NEXT: s_cmp_lg_u32 s8, 0
536 ; VI-NEXT: v_cndmask_b32_e32 v1, v0, v1, vcc
537 ; VI-NEXT: v_mov_b32_e32 v4, s4
538 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
539 ; VI-NEXT: s_mov_b32 s2, -1
540 ; VI-NEXT: v_cndmask_b32_e32 v0, v0, v4, vcc
541 ; VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0
542 ; VI-NEXT: s_endpgm
572 ; VI-LABEL: dynamic_insertelement_v8f32:
573 ; VI: ; %bb.0:
574 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
575 ; VI-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x20
576 ; VI-NEXT: s_load_dword s4, s[4:5], 0x40
577 ; VI-NEXT: v_mov_b32_e32 v8, 0x40a00000
578 ; VI-NEXT: s_mov_b32 s3, 0x1100f000
579 ; VI-NEXT: s_mov_b32 s2, -1
580 ; VI-NEXT: s_waitcnt lgkmcnt(0)
581 ; VI-NEXT: v_mov_b32_e32 v0, s8
582 ; VI-NEXT: v_mov_b32_e32 v1, s9
583 ; VI-NEXT: v_mov_b32_e32 v2, s10
584 ; VI-NEXT: v_mov_b32_e32 v3, s11
585 ; VI-NEXT: v_mov_b32_e32 v4, s12
586 ; VI-NEXT: v_mov_b32_e32 v5, s13
587 ; VI-NEXT: v_mov_b32_e32 v6, s14
588 ; VI-NEXT: v_mov_b32_e32 v7, s15
589 ; VI-NEXT: s_mov_b32 m0, s4
590 ; VI-NEXT: v_movreld_b32_e32 v0, v8
591 ; VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:16
592 ; VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0
593 ; VI-NEXT: s_endpgm
633 ; VI-LABEL: dynamic_insertelement_v16f32:
634 ; VI: ; %bb.0:
635 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
636 ; VI-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x40
637 ; VI-NEXT: s_load_dword s4, s[4:5], 0x80
638 ; VI-NEXT: v_mov_b32_e32 v16, 0x40a00000
639 ; VI-NEXT: s_mov_b32 s3, 0x1100f000
640 ; VI-NEXT: s_mov_b32 s2, -1
641 ; VI-NEXT: s_waitcnt lgkmcnt(0)
642 ; VI-NEXT: v_mov_b32_e32 v0, s8
643 ; VI-NEXT: v_mov_b32_e32 v1, s9
644 ; VI-NEXT: v_mov_b32_e32 v2, s10
645 ; VI-NEXT: v_mov_b32_e32 v3, s11
646 ; VI-NEXT: v_mov_b32_e32 v4, s12
647 ; VI-NEXT: v_mov_b32_e32 v5, s13
648 ; VI-NEXT: v_mov_b32_e32 v6, s14
649 ; VI-NEXT: v_mov_b32_e32 v7, s15
650 ; VI-NEXT: v_mov_b32_e32 v8, s16
651 ; VI-NEXT: v_mov_b32_e32 v9, s17
652 ; VI-NEXT: v_mov_b32_e32 v10, s18
653 ; VI-NEXT: v_mov_b32_e32 v11, s19
654 ; VI-NEXT: v_mov_b32_e32 v12, s20
655 ; VI-NEXT: v_mov_b32_e32 v13, s21
656 ; VI-NEXT: v_mov_b32_e32 v14, s22
657 ; VI-NEXT: v_mov_b32_e32 v15, s23
658 ; VI-NEXT: s_mov_b32 m0, s4
659 ; VI-NEXT: v_movreld_b32_e32 v0, v16
660 ; VI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:48
661 ; VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:32
662 ; VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:16
663 ; VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0
664 ; VI-NEXT: s_endpgm
690 ; VI-LABEL: dynamic_insertelement_v2i32:
691 ; VI: ; %bb.0:
692 ; VI-NEXT: s_load_dword s8, s[4:5], 0x10
693 ; VI-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x8
694 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
695 ; VI-NEXT: s_mov_b32 s3, 0x1100f000
696 ; VI-NEXT: s_mov_b32 s2, -1
697 ; VI-NEXT: s_waitcnt lgkmcnt(0)
698 ; VI-NEXT: s_cmp_lg_u32 s8, 1
699 ; VI-NEXT: s_cselect_b32 s4, s7, 5
700 ; VI-NEXT: s_cmp_lg_u32 s8, 0
701 ; VI-NEXT: s_cselect_b32 s5, s6, 5
702 ; VI-NEXT: v_mov_b32_e32 v0, s5
703 ; VI-NEXT: v_mov_b32_e32 v1, s4
704 ; VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0
705 ; VI-NEXT: s_endpgm
735 ; VI-LABEL: dynamic_insertelement_v3i32:
736 ; VI: ; %bb.0:
737 ; VI-NEXT: s_load_dword s8, s[4:5], 0x20
738 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x10
739 ; VI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
740 ; VI-NEXT: s_mov_b32 s7, 0x1100f000
741 ; VI-NEXT: s_mov_b32 s6, -1
742 ; VI-NEXT: s_waitcnt lgkmcnt(0)
743 ; VI-NEXT: s_cmp_lg_u32 s8, 2
744 ; VI-NEXT: s_cselect_b32 s2, s2, 5
745 ; VI-NEXT: s_cmp_lg_u32 s8, 1
746 ; VI-NEXT: s_cselect_b32 s1, s1, 5
747 ; VI-NEXT: s_cmp_lg_u32 s8, 0
748 ; VI-NEXT: s_cselect_b32 s0, s0, 5
749 ; VI-NEXT: v_mov_b32_e32 v0, s0
750 ; VI-NEXT: v_mov_b32_e32 v1, s1
751 ; VI-NEXT: v_mov_b32_e32 v2, s2
752 ; VI-NEXT: buffer_store_dwordx3 v[0:2], off, s[4:7], 0
753 ; VI-NEXT: s_endpgm
789 ; VI-LABEL: dynamic_insertelement_v4i32:
790 ; VI: ; %bb.0:
791 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x10
792 ; VI-NEXT: s_load_dword s8, s[4:5], 0x20
793 ; VI-NEXT: s_load_dword s9, s[4:5], 0x44
794 ; VI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
795 ; VI-NEXT: s_mov_b32 s7, 0x1100f000
796 ; VI-NEXT: s_mov_b32 s6, -1
797 ; VI-NEXT: s_waitcnt lgkmcnt(0)
798 ; VI-NEXT: s_cmp_eq_u32 s8, 3
799 ; VI-NEXT: s_cselect_b32 s3, s9, s3
800 ; VI-NEXT: s_cmp_eq_u32 s8, 2
801 ; VI-NEXT: s_cselect_b32 s2, s9, s2
802 ; VI-NEXT: s_cmp_eq_u32 s8, 1
803 ; VI-NEXT: s_cselect_b32 s1, s9, s1
804 ; VI-NEXT: s_cmp_eq_u32 s8, 0
805 ; VI-NEXT: s_cselect_b32 s0, s9, s0
806 ; VI-NEXT: v_mov_b32_e32 v0, s0
807 ; VI-NEXT: v_mov_b32_e32 v1, s1
808 ; VI-NEXT: v_mov_b32_e32 v2, s2
809 ; VI-NEXT: v_mov_b32_e32 v3, s3
810 ; VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0
811 ; VI-NEXT: s_endpgm
840 ; VI-LABEL: dynamic_insertelement_v8i32:
841 ; VI: ; %bb.0:
842 ; VI-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x20
843 ; VI-NEXT: s_load_dword s6, s[4:5], 0x40
844 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
845 ; VI-NEXT: s_mov_b32 s3, 0x1100f000
846 ; VI-NEXT: s_mov_b32 s2, -1
847 ; VI-NEXT: s_waitcnt lgkmcnt(0)
848 ; VI-NEXT: v_mov_b32_e32 v0, s8
849 ; VI-NEXT: v_mov_b32_e32 v1, s9
850 ; VI-NEXT: v_mov_b32_e32 v2, s10
851 ; VI-NEXT: v_mov_b32_e32 v3, s11
852 ; VI-NEXT: v_mov_b32_e32 v4, s12
853 ; VI-NEXT: v_mov_b32_e32 v5, s13
854 ; VI-NEXT: v_mov_b32_e32 v6, s14
855 ; VI-NEXT: v_mov_b32_e32 v7, s15
856 ; VI-NEXT: s_mov_b32 m0, s6
857 ; VI-NEXT: v_movreld_b32_e32 v0, 5
858 ; VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:16
859 ; VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0
860 ; VI-NEXT: s_endpgm
899 ; VI-LABEL: dynamic_insertelement_v16i32:
900 ; VI: ; %bb.0:
901 ; VI-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x40
902 ; VI-NEXT: s_load_dword s6, s[4:5], 0x80
903 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
904 ; VI-NEXT: s_mov_b32 s3, 0x1100f000
905 ; VI-NEXT: s_mov_b32 s2, -1
906 ; VI-NEXT: s_waitcnt lgkmcnt(0)
907 ; VI-NEXT: v_mov_b32_e32 v0, s8
908 ; VI-NEXT: v_mov_b32_e32 v1, s9
909 ; VI-NEXT: v_mov_b32_e32 v2, s10
910 ; VI-NEXT: v_mov_b32_e32 v3, s11
911 ; VI-NEXT: v_mov_b32_e32 v4, s12
912 ; VI-NEXT: v_mov_b32_e32 v5, s13
913 ; VI-NEXT: v_mov_b32_e32 v6, s14
914 ; VI-NEXT: v_mov_b32_e32 v7, s15
915 ; VI-NEXT: v_mov_b32_e32 v8, s16
916 ; VI-NEXT: v_mov_b32_e32 v9, s17
917 ; VI-NEXT: v_mov_b32_e32 v10, s18
918 ; VI-NEXT: v_mov_b32_e32 v11, s19
919 ; VI-NEXT: v_mov_b32_e32 v12, s20
920 ; VI-NEXT: v_mov_b32_e32 v13, s21
921 ; VI-NEXT: v_mov_b32_e32 v14, s22
922 ; VI-NEXT: v_mov_b32_e32 v15, s23
923 ; VI-NEXT: s_mov_b32 m0, s6
924 ; VI-NEXT: v_movreld_b32_e32 v0, 5
925 ; VI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:48
926 ; VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:32
927 ; VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:16
928 ; VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0
929 ; VI-NEXT: s_endpgm
953 ; VI-LABEL: dynamic_insertelement_v2i16:
954 ; VI: ; %bb.0:
955 ; VI-NEXT: s_load_dword s6, s[4:5], 0xc
956 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
957 ; VI-NEXT: s_load_dword s4, s[4:5], 0x8
958 ; VI-NEXT: s_mov_b32 s3, 0x1100f000
959 ; VI-NEXT: s_mov_b32 s2, -1
960 ; VI-NEXT: s_waitcnt lgkmcnt(0)
961 ; VI-NEXT: s_lshl_b32 s5, s6, 4
962 ; VI-NEXT: s_lshl_b32 s5, 0xffff, s5
963 ; VI-NEXT: s_andn2_b32 s4, s4, s5
964 ; VI-NEXT: s_and_b32 s5, s5, 0x50005
965 ; VI-NEXT: s_or_b32 s4, s5, s4
966 ; VI-NEXT: v_mov_b32_e32 v0, s4
967 ; VI-NEXT: buffer_store_dword v0, off, s[0:3], 0
968 ; VI-NEXT: s_endpgm
996 ; VI-LABEL: dynamic_insertelement_v3i16:
997 ; VI: ; %bb.0:
998 ; VI-NEXT: s_load_dword s6, s[4:5], 0x10
999 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1000 ; VI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x8
1001 ; VI-NEXT: s_mov_b32 s3, 0x1100f000
1002 ; VI-NEXT: s_mov_b32 s2, -1
1003 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1004 ; VI-NEXT: s_lshl_b32 s8, s6, 4
1005 ; VI-NEXT: s_mov_b64 s[6:7], 0xffff
1006 ; VI-NEXT: s_lshl_b64 s[6:7], s[6:7], s8
1007 ; VI-NEXT: s_mov_b32 s8, 0x50005
1008 ; VI-NEXT: s_mov_b32 s9, s8
1009 ; VI-NEXT: s_andn2_b64 s[4:5], s[4:5], s[6:7]
1010 ; VI-NEXT: s_and_b64 s[6:7], s[6:7], s[8:9]
1011 ; VI-NEXT: s_or_b64 s[4:5], s[6:7], s[4:5]
1012 ; VI-NEXT: v_mov_b32_e32 v0, s5
1013 ; VI-NEXT: buffer_store_short v0, off, s[0:3], 0 offset:4
1014 ; VI-NEXT: v_mov_b32_e32 v0, s4
1015 ; VI-NEXT: buffer_store_dword v0, off, s[0:3], 0
1016 ; VI-NEXT: s_endpgm
1040 ; VI-LABEL: dynamic_insertelement_v2i8:
1041 ; VI: ; %bb.0:
1042 ; VI-NEXT: s_load_dword s6, s[4:5], 0x4c
1043 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1044 ; VI-NEXT: s_load_dword s4, s[4:5], 0x28
1045 ; VI-NEXT: s_mov_b32 s3, 0x1100f000
1046 ; VI-NEXT: s_mov_b32 s2, -1
1047 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1048 ; VI-NEXT: s_lshl_b32 s5, s6, 3
1049 ; VI-NEXT: v_lshlrev_b16_e64 v0, s5, -1
1050 ; VI-NEXT: v_not_b32_e32 v1, v0
1051 ; VI-NEXT: v_and_b32_e32 v1, s4, v1
1052 ; VI-NEXT: v_and_b32_e32 v0, 0x505, v0
1053 ; VI-NEXT: v_or_b32_e32 v0, v0, v1
1054 ; VI-NEXT: buffer_store_short v0, off, s[0:3], 0
1055 ; VI-NEXT: s_endpgm
1084 ; VI-LABEL: dynamic_insertelement_v3i8:
1085 ; VI: ; %bb.0:
1086 ; VI-NEXT: s_load_dword s6, s[4:5], 0x4c
1087 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1088 ; VI-NEXT: s_load_dword s4, s[4:5], 0x28
1089 ; VI-NEXT: s_mov_b32 s3, 0x1100f000
1090 ; VI-NEXT: s_mov_b32 s2, -1
1091 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1092 ; VI-NEXT: s_lshl_b32 s5, s6, 3
1093 ; VI-NEXT: s_lshl_b32 s5, 0xffff, s5
1094 ; VI-NEXT: s_andn2_b32 s4, s4, s5
1095 ; VI-NEXT: s_and_b32 s5, s5, 0x5050505
1096 ; VI-NEXT: s_or_b32 s4, s5, s4
1097 ; VI-NEXT: s_lshr_b32 s5, s4, 16
1098 ; VI-NEXT: v_mov_b32_e32 v0, s4
1099 ; VI-NEXT: buffer_store_short v0, off, s[0:3], 0
1100 ; VI-NEXT: v_mov_b32_e32 v0, s5
1101 ; VI-NEXT: buffer_store_byte v0, off, s[0:3], 0 offset:2
1102 ; VI-NEXT: s_endpgm
1126 ; VI-LABEL: dynamic_insertelement_v4i8:
1127 ; VI: ; %bb.0:
1128 ; VI-NEXT: s_load_dword s6, s[4:5], 0x4c
1129 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1130 ; VI-NEXT: s_load_dword s4, s[4:5], 0x28
1131 ; VI-NEXT: s_mov_b32 s3, 0x1100f000
1132 ; VI-NEXT: s_mov_b32 s2, -1
1133 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1134 ; VI-NEXT: s_lshl_b32 s5, s6, 3
1135 ; VI-NEXT: s_lshl_b32 s5, 0xffff, s5
1136 ; VI-NEXT: s_andn2_b32 s4, s4, s5
1137 ; VI-NEXT: s_and_b32 s5, s5, 0x5050505
1138 ; VI-NEXT: s_or_b32 s4, s5, s4
1139 ; VI-NEXT: v_mov_b32_e32 v0, s4
1140 ; VI-NEXT: buffer_store_dword v0, off, s[0:3], 0
1141 ; VI-NEXT: s_endpgm
1171 ; VI-LABEL: s_dynamic_insertelement_v8i8:
1172 ; VI: ; %bb.0:
1173 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
1174 ; VI-NEXT: s_load_dword s8, s[4:5], 0x10
1175 ; VI-NEXT: s_mov_b32 s7, 0x1100f000
1176 ; VI-NEXT: s_mov_b32 s6, -1
1177 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1178 ; VI-NEXT: s_mov_b32 s4, s0
1179 ; VI-NEXT: s_mov_b32 s5, s1
1180 ; VI-NEXT: s_load_dwordx2 s[0:1], s[2:3], 0x0
1181 ; VI-NEXT: s_lshl_b32 s8, s8, 3
1182 ; VI-NEXT: s_mov_b64 s[2:3], 0xffff
1183 ; VI-NEXT: s_lshl_b64 s[2:3], s[2:3], s8
1184 ; VI-NEXT: s_and_b32 s9, s3, 0x5050505
1185 ; VI-NEXT: s_and_b32 s8, s2, 0x5050505
1186 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1187 ; VI-NEXT: s_andn2_b64 s[0:1], s[0:1], s[2:3]
1188 ; VI-NEXT: s_or_b64 s[0:1], s[8:9], s[0:1]
1189 ; VI-NEXT: v_mov_b32_e32 v0, s0
1190 ; VI-NEXT: v_mov_b32_e32 v1, s1
1191 ; VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0
1192 ; VI-NEXT: s_endpgm
1323 ; VI-LABEL: dynamic_insertelement_v16i8:
1324 ; VI: ; %bb.0:
1325 ; VI-NEXT: s_load_dwordx4 s[8:11], s[4:5], 0x10
1326 ; VI-NEXT: s_load_dword s6, s[4:5], 0x20
1327 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1328 ; VI-NEXT: s_mov_b32 s3, 0x1100f000
1329 ; VI-NEXT: s_mov_b32 s2, -1
1330 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1331 ; VI-NEXT: s_lshr_b32 s4, s11, 24
1332 ; VI-NEXT: s_cmp_lg_u32 s6, 15
1333 ; VI-NEXT: v_mov_b32_e32 v0, s4
1334 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
1335 ; VI-NEXT: s_lshr_b32 s4, s11, 16
1336 ; VI-NEXT: s_cmp_lg_u32 s6, 14
1337 ; VI-NEXT: v_cndmask_b32_e32 v0, 5, v0, vcc
1338 ; VI-NEXT: v_mov_b32_e32 v1, s4
1339 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
1340 ; VI-NEXT: s_lshr_b32 s4, s11, 8
1341 ; VI-NEXT: v_lshlrev_b16_e32 v0, 8, v0
1342 ; VI-NEXT: v_cndmask_b32_e32 v1, 5, v1, vcc
1343 ; VI-NEXT: s_cmp_lg_u32 s6, 13
1344 ; VI-NEXT: v_or_b32_sdwa v0, v1, v0 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_se…
1345 ; VI-NEXT: v_mov_b32_e32 v1, s4
1346 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
1347 ; VI-NEXT: s_cmp_lg_u32 s6, 12
1348 ; VI-NEXT: v_cndmask_b32_e32 v1, 5, v1, vcc
1349 ; VI-NEXT: v_mov_b32_e32 v2, s11
1350 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
1351 ; VI-NEXT: v_lshlrev_b16_e32 v1, 8, v1
1352 ; VI-NEXT: v_cndmask_b32_e32 v2, 5, v2, vcc
1353 ; VI-NEXT: s_lshr_b32 s4, s10, 24
1354 ; VI-NEXT: v_or_b32_sdwa v1, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel…
1355 ; VI-NEXT: s_cmp_lg_u32 s6, 11
1356 ; VI-NEXT: v_or_b32_sdwa v3, v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src1_sel…
1357 ; VI-NEXT: v_mov_b32_e32 v0, s4
1358 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
1359 ; VI-NEXT: s_lshr_b32 s4, s10, 16
1360 ; VI-NEXT: s_cmp_lg_u32 s6, 10
1361 ; VI-NEXT: v_cndmask_b32_e32 v0, 5, v0, vcc
1362 ; VI-NEXT: v_mov_b32_e32 v1, s4
1363 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
1364 ; VI-NEXT: s_lshr_b32 s4, s10, 8
1365 ; VI-NEXT: v_lshlrev_b16_e32 v0, 8, v0
1366 ; VI-NEXT: v_cndmask_b32_e32 v1, 5, v1, vcc
1367 ; VI-NEXT: s_cmp_lg_u32 s6, 9
1368 ; VI-NEXT: v_or_b32_sdwa v0, v1, v0 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_se…
1369 ; VI-NEXT: v_mov_b32_e32 v1, s4
1370 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
1371 ; VI-NEXT: s_cmp_lg_u32 s6, 8
1372 ; VI-NEXT: v_cndmask_b32_e32 v1, 5, v1, vcc
1373 ; VI-NEXT: v_mov_b32_e32 v2, s10
1374 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
1375 ; VI-NEXT: v_lshlrev_b16_e32 v1, 8, v1
1376 ; VI-NEXT: v_cndmask_b32_e32 v2, 5, v2, vcc
1377 ; VI-NEXT: s_lshr_b32 s4, s9, 24
1378 ; VI-NEXT: v_or_b32_sdwa v1, v2, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel…
1379 ; VI-NEXT: s_cmp_lg_u32 s6, 7
1380 ; VI-NEXT: v_or_b32_sdwa v2, v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src1_sel…
1381 ; VI-NEXT: v_mov_b32_e32 v0, s4
1382 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
1383 ; VI-NEXT: s_lshr_b32 s4, s9, 16
1384 ; VI-NEXT: s_cmp_lg_u32 s6, 6
1385 ; VI-NEXT: v_cndmask_b32_e32 v0, 5, v0, vcc
1386 ; VI-NEXT: v_mov_b32_e32 v1, s4
1387 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
1388 ; VI-NEXT: s_lshr_b32 s4, s9, 8
1389 ; VI-NEXT: v_lshlrev_b16_e32 v0, 8, v0
1390 ; VI-NEXT: v_cndmask_b32_e32 v1, 5, v1, vcc
1391 ; VI-NEXT: s_cmp_lg_u32 s6, 5
1392 ; VI-NEXT: v_or_b32_sdwa v0, v1, v0 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_se…
1393 ; VI-NEXT: v_mov_b32_e32 v1, s4
1394 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
1395 ; VI-NEXT: s_cmp_lg_u32 s6, 4
1396 ; VI-NEXT: v_cndmask_b32_e32 v1, 5, v1, vcc
1397 ; VI-NEXT: v_mov_b32_e32 v4, s9
1398 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
1399 ; VI-NEXT: v_lshlrev_b16_e32 v1, 8, v1
1400 ; VI-NEXT: v_cndmask_b32_e32 v4, 5, v4, vcc
1401 ; VI-NEXT: s_lshr_b32 s4, s8, 24
1402 ; VI-NEXT: v_or_b32_sdwa v1, v4, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel…
1403 ; VI-NEXT: s_cmp_lg_u32 s6, 3
1404 ; VI-NEXT: v_or_b32_sdwa v1, v1, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src1_sel…
1405 ; VI-NEXT: v_mov_b32_e32 v0, s4
1406 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
1407 ; VI-NEXT: s_lshr_b32 s4, s8, 16
1408 ; VI-NEXT: s_cmp_lg_u32 s6, 2
1409 ; VI-NEXT: v_cndmask_b32_e32 v0, 5, v0, vcc
1410 ; VI-NEXT: v_mov_b32_e32 v4, s4
1411 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
1412 ; VI-NEXT: s_lshr_b32 s4, s8, 8
1413 ; VI-NEXT: v_lshlrev_b16_e32 v0, 8, v0
1414 ; VI-NEXT: v_cndmask_b32_e32 v4, 5, v4, vcc
1415 ; VI-NEXT: s_cmp_lg_u32 s6, 1
1416 ; VI-NEXT: v_or_b32_sdwa v0, v4, v0 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_se…
1417 ; VI-NEXT: v_mov_b32_e32 v4, s4
1418 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
1419 ; VI-NEXT: s_cmp_lg_u32 s6, 0
1420 ; VI-NEXT: v_cndmask_b32_e32 v4, 5, v4, vcc
1421 ; VI-NEXT: v_mov_b32_e32 v5, s8
1422 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
1423 ; VI-NEXT: v_lshlrev_b16_e32 v4, 8, v4
1424 ; VI-NEXT: v_cndmask_b32_e32 v5, 5, v5, vcc
1425 ; VI-NEXT: v_or_b32_sdwa v4, v5, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel…
1426 ; VI-NEXT: v_or_b32_sdwa v0, v4, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_0 src1_sel…
1427 ; VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0
1428 ; VI-NEXT: s_endpgm
1464 ; VI-LABEL: insert_split_bb:
1465 ; VI: ; %bb.0: ; %entry
1466 ; VI-NEXT: s_load_dword s6, s[4:5], 0x10
1467 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
1468 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1469 ; VI-NEXT: s_cmp_lg_u32 s6, 0
1470 ; VI-NEXT: s_cbranch_scc0 .LBB30_4
1471 ; VI-NEXT: ; %bb.1: ; %else
1472 ; VI-NEXT: s_load_dword s7, s[2:3], 0x4
1473 ; VI-NEXT: s_cbranch_execnz .LBB30_3
1474 ; VI-NEXT: .LBB30_2: ; %if
1475 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1476 ; VI-NEXT: s_load_dword s7, s[2:3], 0x0
1477 ; VI-NEXT: .LBB30_3: ; %endif
1478 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1479 ; VI-NEXT: v_mov_b32_e32 v0, s6
1480 ; VI-NEXT: s_mov_b32 s3, 0x1100f000
1481 ; VI-NEXT: s_mov_b32 s2, -1
1482 ; VI-NEXT: v_mov_b32_e32 v1, s7
1483 ; VI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0
1484 ; VI-NEXT: s_endpgm
1485 ; VI-NEXT: .LBB30_4:
1486 ; VI-NEXT: s_branch .LBB30_2
1534 ; VI-LABEL: dynamic_insertelement_v2f64:
1535 ; VI: ; %bb.0:
1536 ; VI-NEXT: s_load_dword s8, s[4:5], 0x60
1537 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x30
1538 ; VI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
1539 ; VI-NEXT: v_mov_b32_e32 v1, 0x40200000
1540 ; VI-NEXT: s_mov_b32 s7, 0x1100f000
1541 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1542 ; VI-NEXT: s_cmp_eq_u32 s8, 1
1543 ; VI-NEXT: v_mov_b32_e32 v0, s3
1544 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
1545 ; VI-NEXT: v_cndmask_b32_e32 v3, v0, v1, vcc
1546 ; VI-NEXT: v_mov_b32_e32 v0, s2
1547 ; VI-NEXT: s_cmp_eq_u32 s8, 0
1548 ; VI-NEXT: v_cndmask_b32_e64 v2, v0, 0, vcc
1549 ; VI-NEXT: v_mov_b32_e32 v0, s1
1550 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
1551 ; VI-NEXT: v_cndmask_b32_e32 v1, v0, v1, vcc
1552 ; VI-NEXT: v_mov_b32_e32 v0, s0
1553 ; VI-NEXT: s_mov_b32 s6, -1
1554 ; VI-NEXT: v_cndmask_b32_e64 v0, v0, 0, vcc
1555 ; VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0
1556 ; VI-NEXT: s_endpgm
1586 ; VI-LABEL: dynamic_insertelement_v2i64:
1587 ; VI: ; %bb.0:
1588 ; VI-NEXT: s_load_dword s10, s[4:5], 0x20
1589 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x10
1590 ; VI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
1591 ; VI-NEXT: s_mov_b32 s7, 0x1100f000
1592 ; VI-NEXT: s_mov_b32 s6, -1
1593 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1594 ; VI-NEXT: s_cmp_eq_u32 s10, 1
1595 ; VI-NEXT: v_mov_b32_e32 v0, s3
1596 ; VI-NEXT: s_cselect_b64 s[8:9], -1, 0
1597 ; VI-NEXT: v_cndmask_b32_e64 v3, v0, 0, s[8:9]
1598 ; VI-NEXT: v_mov_b32_e32 v0, s2
1599 ; VI-NEXT: s_cmp_eq_u32 s10, 0
1600 ; VI-NEXT: v_cndmask_b32_e64 v2, v0, 5, s[8:9]
1601 ; VI-NEXT: v_mov_b32_e32 v0, s1
1602 ; VI-NEXT: s_cselect_b64 s[2:3], -1, 0
1603 ; VI-NEXT: v_cndmask_b32_e64 v1, v0, 0, s[2:3]
1604 ; VI-NEXT: v_mov_b32_e32 v0, s0
1605 ; VI-NEXT: v_cndmask_b32_e64 v0, v0, 5, s[2:3]
1606 ; VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0
1607 ; VI-NEXT: s_endpgm
1645 ; VI-LABEL: dynamic_insertelement_v3i64:
1646 ; VI: ; %bb.0:
1647 ; VI-NEXT: s_load_dword s12, s[4:5], 0x40
1648 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1649 ; VI-NEXT: s_load_dwordx4 s[8:11], s[4:5], 0x20
1650 ; VI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x30
1651 ; VI-NEXT: s_mov_b32 s3, 0x1100f000
1652 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1653 ; VI-NEXT: s_cmp_eq_u32 s12, 1
1654 ; VI-NEXT: s_cselect_b64 s[6:7], -1, 0
1655 ; VI-NEXT: v_mov_b32_e32 v0, s11
1656 ; VI-NEXT: v_cndmask_b32_e64 v3, v0, 0, s[6:7]
1657 ; VI-NEXT: v_mov_b32_e32 v0, s10
1658 ; VI-NEXT: s_cmp_eq_u32 s12, 0
1659 ; VI-NEXT: v_cndmask_b32_e64 v2, v0, 5, s[6:7]
1660 ; VI-NEXT: v_mov_b32_e32 v0, s9
1661 ; VI-NEXT: s_cselect_b64 s[6:7], -1, 0
1662 ; VI-NEXT: v_cndmask_b32_e64 v1, v0, 0, s[6:7]
1663 ; VI-NEXT: v_mov_b32_e32 v0, s8
1664 ; VI-NEXT: s_cmp_eq_u32 s12, 2
1665 ; VI-NEXT: v_cndmask_b32_e64 v0, v0, 5, s[6:7]
1666 ; VI-NEXT: v_mov_b32_e32 v4, s5
1667 ; VI-NEXT: s_cselect_b64 s[6:7], -1, 0
1668 ; VI-NEXT: v_cndmask_b32_e64 v5, v4, 0, s[6:7]
1669 ; VI-NEXT: v_mov_b32_e32 v4, s4
1670 ; VI-NEXT: s_mov_b32 s2, -1
1671 ; VI-NEXT: v_cndmask_b32_e64 v4, v4, 5, s[6:7]
1672 ; VI-NEXT: buffer_store_dwordx2 v[4:5], off, s[0:3], 0 offset:16
1673 ; VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0
1674 ; VI-NEXT: s_endpgm
1718 ; VI-LABEL: dynamic_insertelement_v4f64:
1719 ; VI: ; %bb.0:
1720 ; VI-NEXT: s_load_dword s6, s[4:5], 0x40
1721 ; VI-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x20
1722 ; VI-NEXT: v_mov_b32_e32 v4, 0x40200000
1723 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1724 ; VI-NEXT: s_mov_b32 s3, 0x1100f000
1725 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1726 ; VI-NEXT: s_cmp_eq_u32 s6, 1
1727 ; VI-NEXT: v_mov_b32_e32 v0, s11
1728 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
1729 ; VI-NEXT: v_cndmask_b32_e32 v3, v0, v4, vcc
1730 ; VI-NEXT: v_mov_b32_e32 v0, s10
1731 ; VI-NEXT: s_cmp_eq_u32 s6, 0
1732 ; VI-NEXT: v_cndmask_b32_e64 v2, v0, 0, vcc
1733 ; VI-NEXT: v_mov_b32_e32 v0, s9
1734 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
1735 ; VI-NEXT: v_cndmask_b32_e32 v1, v0, v4, vcc
1736 ; VI-NEXT: v_mov_b32_e32 v0, s8
1737 ; VI-NEXT: s_cmp_eq_u32 s6, 3
1738 ; VI-NEXT: v_cndmask_b32_e64 v0, v0, 0, vcc
1739 ; VI-NEXT: v_mov_b32_e32 v5, s15
1740 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
1741 ; VI-NEXT: v_cndmask_b32_e32 v7, v5, v4, vcc
1742 ; VI-NEXT: v_mov_b32_e32 v5, s14
1743 ; VI-NEXT: s_cmp_eq_u32 s6, 2
1744 ; VI-NEXT: v_cndmask_b32_e64 v6, v5, 0, vcc
1745 ; VI-NEXT: v_mov_b32_e32 v5, s13
1746 ; VI-NEXT: s_cselect_b64 vcc, -1, 0
1747 ; VI-NEXT: v_cndmask_b32_e32 v5, v5, v4, vcc
1748 ; VI-NEXT: v_mov_b32_e32 v4, s12
1749 ; VI-NEXT: s_mov_b32 s2, -1
1750 ; VI-NEXT: v_cndmask_b32_e64 v4, v4, 0, vcc
1751 ; VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:16
1752 ; VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0
1753 ; VI-NEXT: s_endpgm
1795 ; VI-LABEL: dynamic_insertelement_v8f64:
1796 ; VI: ; %bb.0:
1797 ; VI-NEXT: s_load_dword s6, s[4:5], 0x80
1798 ; VI-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x40
1799 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1800 ; VI-NEXT: v_mov_b32_e32 v16, 0x40200000
1801 ; VI-NEXT: s_mov_b32 s3, 0x1100f000
1802 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1803 ; VI-NEXT: s_lshl_b32 s4, s6, 1
1804 ; VI-NEXT: v_mov_b32_e32 v0, s8
1805 ; VI-NEXT: v_mov_b32_e32 v1, s9
1806 ; VI-NEXT: v_mov_b32_e32 v2, s10
1807 ; VI-NEXT: v_mov_b32_e32 v3, s11
1808 ; VI-NEXT: v_mov_b32_e32 v4, s12
1809 ; VI-NEXT: v_mov_b32_e32 v5, s13
1810 ; VI-NEXT: v_mov_b32_e32 v6, s14
1811 ; VI-NEXT: v_mov_b32_e32 v7, s15
1812 ; VI-NEXT: v_mov_b32_e32 v8, s16
1813 ; VI-NEXT: v_mov_b32_e32 v9, s17
1814 ; VI-NEXT: v_mov_b32_e32 v10, s18
1815 ; VI-NEXT: v_mov_b32_e32 v11, s19
1816 ; VI-NEXT: v_mov_b32_e32 v12, s20
1817 ; VI-NEXT: v_mov_b32_e32 v13, s21
1818 ; VI-NEXT: v_mov_b32_e32 v14, s22
1819 ; VI-NEXT: v_mov_b32_e32 v15, s23
1820 ; VI-NEXT: s_mov_b32 m0, s4
1821 ; VI-NEXT: v_movreld_b32_e32 v0, 0
1822 ; VI-NEXT: s_mov_b32 s2, -1
1823 ; VI-NEXT: v_movreld_b32_e32 v1, v16
1824 ; VI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:48
1825 ; VI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:32
1826 ; VI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:16
1827 ; VI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0
1828 ; VI-NEXT: s_endpgm