Lines Matching refs:SI

2 …or-global,+max-private-element-size-16 < %s | FileCheck -enable-var-scope -check-prefixes=GCN,SI %s
10 ; SI-LABEL: insertelement_v2f32_0:
11 ; SI: ; %bb.0:
12 ; SI-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x2
13 ; SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
14 ; SI-NEXT: s_mov_b32 s3, 0x100f000
15 ; SI-NEXT: s_mov_b32 s2, -1
16 ; SI-NEXT: v_mov_b32_e32 v0, 0x40a00000
17 ; SI-NEXT: s_waitcnt lgkmcnt(0)
18 ; SI-NEXT: v_mov_b32_e32 v1, s7
19 ; SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0
20 ; SI-NEXT: s_endpgm
39 ; SI-LABEL: insertelement_v2f32_1:
40 ; SI: ; %bb.0:
41 ; SI-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x2
42 ; SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
43 ; SI-NEXT: s_mov_b32 s3, 0x100f000
44 ; SI-NEXT: s_mov_b32 s2, -1
45 ; SI-NEXT: v_mov_b32_e32 v1, 0x40a00000
46 ; SI-NEXT: s_waitcnt lgkmcnt(0)
47 ; SI-NEXT: v_mov_b32_e32 v0, s6
48 ; SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0
49 ; SI-NEXT: s_endpgm
68 ; SI-LABEL: insertelement_v2i32_0:
69 ; SI: ; %bb.0:
70 ; SI-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x2
71 ; SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
72 ; SI-NEXT: s_mov_b32 s3, 0x100f000
73 ; SI-NEXT: s_mov_b32 s2, -1
74 ; SI-NEXT: v_mov_b32_e32 v0, 0x3e7
75 ; SI-NEXT: s_waitcnt lgkmcnt(0)
76 ; SI-NEXT: v_mov_b32_e32 v1, s7
77 ; SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0
78 ; SI-NEXT: s_endpgm
97 ; SI-LABEL: insertelement_v2i32_1:
98 ; SI: ; %bb.0:
99 ; SI-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x2
100 ; SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
101 ; SI-NEXT: s_mov_b32 s3, 0x100f000
102 ; SI-NEXT: s_mov_b32 s2, -1
103 ; SI-NEXT: v_mov_b32_e32 v1, 0x3e7
104 ; SI-NEXT: s_waitcnt lgkmcnt(0)
105 ; SI-NEXT: v_mov_b32_e32 v0, s6
106 ; SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0
107 ; SI-NEXT: s_endpgm
128 ; SI-LABEL: insertelement_v4f32_0:
129 ; SI: ; %bb.0:
130 ; SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x4
131 ; SI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
132 ; SI-NEXT: s_waitcnt lgkmcnt(0)
133 ; SI-NEXT: s_mov_b32 s0, 0x40a00000
134 ; SI-NEXT: s_mov_b32 s7, 0x100f000
135 ; SI-NEXT: s_mov_b32 s6, -1
136 ; SI-NEXT: v_mov_b32_e32 v0, s0
137 ; SI-NEXT: v_mov_b32_e32 v1, s1
138 ; SI-NEXT: v_mov_b32_e32 v2, s2
139 ; SI-NEXT: v_mov_b32_e32 v3, s3
140 ; SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0
141 ; SI-NEXT: s_endpgm
163 ; SI-LABEL: insertelement_v4f32_1:
164 ; SI: ; %bb.0:
165 ; SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x4
166 ; SI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
167 ; SI-NEXT: s_waitcnt lgkmcnt(0)
168 ; SI-NEXT: s_mov_b32 s1, 0x40a00000
169 ; SI-NEXT: s_mov_b32 s7, 0x100f000
170 ; SI-NEXT: s_mov_b32 s6, -1
171 ; SI-NEXT: v_mov_b32_e32 v0, s0
172 ; SI-NEXT: v_mov_b32_e32 v1, s1
173 ; SI-NEXT: v_mov_b32_e32 v2, s2
174 ; SI-NEXT: v_mov_b32_e32 v3, s3
175 ; SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0
176 ; SI-NEXT: s_endpgm
198 ; SI-LABEL: insertelement_v4f32_2:
199 ; SI: ; %bb.0:
200 ; SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x4
201 ; SI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
202 ; SI-NEXT: s_waitcnt lgkmcnt(0)
203 ; SI-NEXT: s_mov_b32 s2, 0x40a00000
204 ; SI-NEXT: s_mov_b32 s7, 0x100f000
205 ; SI-NEXT: s_mov_b32 s6, -1
206 ; SI-NEXT: v_mov_b32_e32 v0, s0
207 ; SI-NEXT: v_mov_b32_e32 v1, s1
208 ; SI-NEXT: v_mov_b32_e32 v2, s2
209 ; SI-NEXT: v_mov_b32_e32 v3, s3
210 ; SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0
211 ; SI-NEXT: s_endpgm
233 ; SI-LABEL: insertelement_v4f32_3:
234 ; SI: ; %bb.0:
235 ; SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x4
236 ; SI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
237 ; SI-NEXT: s_waitcnt lgkmcnt(0)
238 ; SI-NEXT: s_mov_b32 s3, 0x40a00000
239 ; SI-NEXT: s_mov_b32 s7, 0x100f000
240 ; SI-NEXT: s_mov_b32 s6, -1
241 ; SI-NEXT: v_mov_b32_e32 v0, s0
242 ; SI-NEXT: v_mov_b32_e32 v1, s1
243 ; SI-NEXT: v_mov_b32_e32 v2, s2
244 ; SI-NEXT: v_mov_b32_e32 v3, s3
245 ; SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0
246 ; SI-NEXT: s_endpgm
268 ; SI-LABEL: insertelement_v4i32_0:
269 ; SI: ; %bb.0:
270 ; SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x4
271 ; SI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
272 ; SI-NEXT: s_waitcnt lgkmcnt(0)
273 ; SI-NEXT: s_movk_i32 s0, 0x3e7
274 ; SI-NEXT: s_mov_b32 s7, 0x100f000
275 ; SI-NEXT: s_mov_b32 s6, -1
276 ; SI-NEXT: v_mov_b32_e32 v0, s0
277 ; SI-NEXT: v_mov_b32_e32 v1, s1
278 ; SI-NEXT: v_mov_b32_e32 v2, s2
279 ; SI-NEXT: v_mov_b32_e32 v3, s3
280 ; SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0
281 ; SI-NEXT: s_endpgm
303 ; SI-LABEL: insertelement_v3f32_1:
304 ; SI: ; %bb.0:
305 ; SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x4
306 ; SI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
307 ; SI-NEXT: s_mov_b32 s7, 0x100f000
308 ; SI-NEXT: s_mov_b32 s6, -1
309 ; SI-NEXT: v_mov_b32_e32 v1, 0x40a00000
310 ; SI-NEXT: s_waitcnt lgkmcnt(0)
311 ; SI-NEXT: v_mov_b32_e32 v0, s0
312 ; SI-NEXT: v_mov_b32_e32 v2, s2
313 ; SI-NEXT: buffer_store_dwordx3 v[0:2], off, s[4:7], 0
314 ; SI-NEXT: s_endpgm
334 ; SI-LABEL: insertelement_v3f32_2:
335 ; SI: ; %bb.0:
336 ; SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x4
337 ; SI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
338 ; SI-NEXT: s_mov_b32 s7, 0x100f000
339 ; SI-NEXT: s_mov_b32 s6, -1
340 ; SI-NEXT: v_mov_b32_e32 v2, 0x40a00000
341 ; SI-NEXT: s_waitcnt lgkmcnt(0)
342 ; SI-NEXT: v_mov_b32_e32 v0, s0
343 ; SI-NEXT: v_mov_b32_e32 v1, s1
344 ; SI-NEXT: buffer_store_dwordx3 v[0:2], off, s[4:7], 0
345 ; SI-NEXT: s_endpgm
390 ; SI-LABEL: dynamic_insertelement_v2f32:
391 ; SI: ; %bb.0:
392 ; SI-NEXT: s_load_dword s6, s[4:5], 0x4
393 ; SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
394 ; SI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x2
395 ; SI-NEXT: v_mov_b32_e32 v0, 0x40a00000
396 ; SI-NEXT: s_mov_b32 s3, 0x100f000
397 ; SI-NEXT: s_waitcnt lgkmcnt(0)
398 ; SI-NEXT: s_cmp_lg_u32 s6, 1
399 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
400 ; SI-NEXT: v_mov_b32_e32 v1, s5
401 ; SI-NEXT: s_cmp_lg_u32 s6, 0
402 ; SI-NEXT: v_cndmask_b32_e32 v1, v0, v1, vcc
403 ; SI-NEXT: v_mov_b32_e32 v2, s4
404 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
405 ; SI-NEXT: s_mov_b32 s2, -1
406 ; SI-NEXT: v_cndmask_b32_e32 v0, v0, v2, vcc
407 ; SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0
408 ; SI-NEXT: s_endpgm
435 ; SI-LABEL: dynamic_insertelement_v3f32:
436 ; SI: ; %bb.0:
437 ; SI-NEXT: s_load_dword s8, s[4:5], 0x8
438 ; SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
439 ; SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x4
440 ; SI-NEXT: v_mov_b32_e32 v0, 0x40a00000
441 ; SI-NEXT: s_mov_b32 s3, 0x100f000
442 ; SI-NEXT: s_waitcnt lgkmcnt(0)
443 ; SI-NEXT: s_cmp_lg_u32 s8, 2
444 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
445 ; SI-NEXT: v_mov_b32_e32 v1, s6
446 ; SI-NEXT: s_cmp_lg_u32 s8, 1
447 ; SI-NEXT: v_cndmask_b32_e32 v2, v0, v1, vcc
448 ; SI-NEXT: v_mov_b32_e32 v1, s5
449 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
450 ; SI-NEXT: s_cmp_lg_u32 s8, 0
451 ; SI-NEXT: v_cndmask_b32_e32 v1, v0, v1, vcc
452 ; SI-NEXT: v_mov_b32_e32 v3, s4
453 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
454 ; SI-NEXT: s_mov_b32 s2, -1
455 ; SI-NEXT: v_cndmask_b32_e32 v0, v0, v3, vcc
456 ; SI-NEXT: buffer_store_dwordx3 v[0:2], off, s[0:3], 0
457 ; SI-NEXT: s_endpgm
488 ; SI-LABEL: dynamic_insertelement_v4f32:
489 ; SI: ; %bb.0:
490 ; SI-NEXT: s_load_dword s8, s[4:5], 0x8
491 ; SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
492 ; SI-NEXT: s_load_dwordx4 s[4:7], s[4:5], 0x4
493 ; SI-NEXT: v_mov_b32_e32 v0, 0x40a00000
494 ; SI-NEXT: s_mov_b32 s3, 0x100f000
495 ; SI-NEXT: s_waitcnt lgkmcnt(0)
496 ; SI-NEXT: s_cmp_lg_u32 s8, 3
497 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
498 ; SI-NEXT: v_mov_b32_e32 v1, s7
499 ; SI-NEXT: s_cmp_lg_u32 s8, 2
500 ; SI-NEXT: v_cndmask_b32_e32 v3, v0, v1, vcc
501 ; SI-NEXT: v_mov_b32_e32 v1, s6
502 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
503 ; SI-NEXT: s_cmp_lg_u32 s8, 1
504 ; SI-NEXT: v_cndmask_b32_e32 v2, v0, v1, vcc
505 ; SI-NEXT: v_mov_b32_e32 v1, s5
506 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
507 ; SI-NEXT: s_cmp_lg_u32 s8, 0
508 ; SI-NEXT: v_cndmask_b32_e32 v1, v0, v1, vcc
509 ; SI-NEXT: v_mov_b32_e32 v4, s4
510 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
511 ; SI-NEXT: s_mov_b32 s2, -1
512 ; SI-NEXT: v_cndmask_b32_e32 v0, v0, v4, vcc
513 ; SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0
514 ; SI-NEXT: s_endpgm
549 ; SI-LABEL: dynamic_insertelement_v8f32:
550 ; SI: ; %bb.0:
551 ; SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
552 ; SI-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x8
553 ; SI-NEXT: s_load_dword s4, s[4:5], 0x10
554 ; SI-NEXT: v_mov_b32_e32 v8, 0x40a00000
555 ; SI-NEXT: s_mov_b32 s3, 0x100f000
556 ; SI-NEXT: s_mov_b32 s2, -1
557 ; SI-NEXT: s_waitcnt lgkmcnt(0)
558 ; SI-NEXT: v_mov_b32_e32 v0, s8
559 ; SI-NEXT: v_mov_b32_e32 v1, s9
560 ; SI-NEXT: v_mov_b32_e32 v2, s10
561 ; SI-NEXT: v_mov_b32_e32 v3, s11
562 ; SI-NEXT: v_mov_b32_e32 v4, s12
563 ; SI-NEXT: v_mov_b32_e32 v5, s13
564 ; SI-NEXT: v_mov_b32_e32 v6, s14
565 ; SI-NEXT: v_mov_b32_e32 v7, s15
566 ; SI-NEXT: s_mov_b32 m0, s4
567 ; SI-NEXT: v_movreld_b32_e32 v0, v8
568 ; SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:16
569 ; SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0
570 ; SI-NEXT: s_endpgm
600 ; SI-LABEL: dynamic_insertelement_v16f32:
601 ; SI: ; %bb.0:
602 ; SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
603 ; SI-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x10
604 ; SI-NEXT: s_load_dword s4, s[4:5], 0x20
605 ; SI-NEXT: v_mov_b32_e32 v16, 0x40a00000
606 ; SI-NEXT: s_mov_b32 s3, 0x100f000
607 ; SI-NEXT: s_mov_b32 s2, -1
608 ; SI-NEXT: s_waitcnt lgkmcnt(0)
609 ; SI-NEXT: v_mov_b32_e32 v0, s8
610 ; SI-NEXT: v_mov_b32_e32 v1, s9
611 ; SI-NEXT: v_mov_b32_e32 v2, s10
612 ; SI-NEXT: v_mov_b32_e32 v3, s11
613 ; SI-NEXT: v_mov_b32_e32 v4, s12
614 ; SI-NEXT: v_mov_b32_e32 v5, s13
615 ; SI-NEXT: v_mov_b32_e32 v6, s14
616 ; SI-NEXT: v_mov_b32_e32 v7, s15
617 ; SI-NEXT: v_mov_b32_e32 v8, s16
618 ; SI-NEXT: v_mov_b32_e32 v9, s17
619 ; SI-NEXT: v_mov_b32_e32 v10, s18
620 ; SI-NEXT: v_mov_b32_e32 v11, s19
621 ; SI-NEXT: v_mov_b32_e32 v12, s20
622 ; SI-NEXT: v_mov_b32_e32 v13, s21
623 ; SI-NEXT: v_mov_b32_e32 v14, s22
624 ; SI-NEXT: v_mov_b32_e32 v15, s23
625 ; SI-NEXT: s_mov_b32 m0, s4
626 ; SI-NEXT: v_movreld_b32_e32 v0, v16
627 ; SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:48
628 ; SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:32
629 ; SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:16
630 ; SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0
631 ; SI-NEXT: s_endpgm
671 ; SI-LABEL: dynamic_insertelement_v2i32:
672 ; SI: ; %bb.0:
673 ; SI-NEXT: s_load_dword s8, s[4:5], 0x4
674 ; SI-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x2
675 ; SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
676 ; SI-NEXT: s_mov_b32 s3, 0x100f000
677 ; SI-NEXT: s_mov_b32 s2, -1
678 ; SI-NEXT: s_waitcnt lgkmcnt(0)
679 ; SI-NEXT: s_cmp_lg_u32 s8, 1
680 ; SI-NEXT: v_mov_b32_e32 v0, s7
681 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
682 ; SI-NEXT: s_cmp_lg_u32 s8, 0
683 ; SI-NEXT: v_cndmask_b32_e32 v1, 5, v0, vcc
684 ; SI-NEXT: v_mov_b32_e32 v0, s6
685 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
686 ; SI-NEXT: v_cndmask_b32_e32 v0, 5, v0, vcc
687 ; SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0
688 ; SI-NEXT: s_endpgm
712 ; SI-LABEL: dynamic_insertelement_v3i32:
713 ; SI: ; %bb.0:
714 ; SI-NEXT: s_load_dword s8, s[4:5], 0x8
715 ; SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x4
716 ; SI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
717 ; SI-NEXT: s_mov_b32 s7, 0x100f000
718 ; SI-NEXT: s_mov_b32 s6, -1
719 ; SI-NEXT: s_waitcnt lgkmcnt(0)
720 ; SI-NEXT: s_cmp_lg_u32 s8, 2
721 ; SI-NEXT: v_mov_b32_e32 v0, s2
722 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
723 ; SI-NEXT: s_cmp_lg_u32 s8, 1
724 ; SI-NEXT: v_cndmask_b32_e32 v2, 5, v0, vcc
725 ; SI-NEXT: v_mov_b32_e32 v0, s1
726 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
727 ; SI-NEXT: s_cmp_lg_u32 s8, 0
728 ; SI-NEXT: v_cndmask_b32_e32 v1, 5, v0, vcc
729 ; SI-NEXT: v_mov_b32_e32 v0, s0
730 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
731 ; SI-NEXT: v_cndmask_b32_e32 v0, 5, v0, vcc
732 ; SI-NEXT: buffer_store_dwordx3 v[0:2], off, s[4:7], 0
733 ; SI-NEXT: s_endpgm
760 ; SI-LABEL: dynamic_insertelement_v4i32:
761 ; SI: ; %bb.0:
762 ; SI-NEXT: s_load_dword s6, s[4:5], 0x8
763 ; SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
764 ; SI-NEXT: s_load_dwordx4 s[8:11], s[4:5], 0x4
765 ; SI-NEXT: s_load_dword s4, s[4:5], 0x11
766 ; SI-NEXT: s_mov_b32 s3, 0x100f000
767 ; SI-NEXT: s_waitcnt lgkmcnt(0)
768 ; SI-NEXT: s_cmp_eq_u32 s6, 3
769 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
770 ; SI-NEXT: v_mov_b32_e32 v0, s11
771 ; SI-NEXT: v_mov_b32_e32 v4, s4
772 ; SI-NEXT: s_cmp_eq_u32 s6, 2
773 ; SI-NEXT: v_cndmask_b32_e32 v3, v0, v4, vcc
774 ; SI-NEXT: v_mov_b32_e32 v0, s10
775 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
776 ; SI-NEXT: s_cmp_eq_u32 s6, 1
777 ; SI-NEXT: v_cndmask_b32_e32 v2, v0, v4, vcc
778 ; SI-NEXT: v_mov_b32_e32 v0, s9
779 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
780 ; SI-NEXT: s_cmp_eq_u32 s6, 0
781 ; SI-NEXT: v_cndmask_b32_e32 v1, v0, v4, vcc
782 ; SI-NEXT: v_mov_b32_e32 v0, s8
783 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
784 ; SI-NEXT: s_mov_b32 s2, -1
785 ; SI-NEXT: v_cndmask_b32_e32 v0, v0, v4, vcc
786 ; SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0
787 ; SI-NEXT: s_endpgm
818 ; SI-LABEL: dynamic_insertelement_v8i32:
819 ; SI: ; %bb.0:
820 ; SI-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x8
821 ; SI-NEXT: s_load_dword s6, s[4:5], 0x10
822 ; SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
823 ; SI-NEXT: s_mov_b32 s3, 0x100f000
824 ; SI-NEXT: s_mov_b32 s2, -1
825 ; SI-NEXT: s_waitcnt lgkmcnt(0)
826 ; SI-NEXT: v_mov_b32_e32 v0, s8
827 ; SI-NEXT: v_mov_b32_e32 v1, s9
828 ; SI-NEXT: v_mov_b32_e32 v2, s10
829 ; SI-NEXT: v_mov_b32_e32 v3, s11
830 ; SI-NEXT: v_mov_b32_e32 v4, s12
831 ; SI-NEXT: v_mov_b32_e32 v5, s13
832 ; SI-NEXT: v_mov_b32_e32 v6, s14
833 ; SI-NEXT: v_mov_b32_e32 v7, s15
834 ; SI-NEXT: s_mov_b32 m0, s6
835 ; SI-NEXT: v_movreld_b32_e32 v0, 5
836 ; SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:16
837 ; SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0
838 ; SI-NEXT: s_endpgm
867 ; SI-LABEL: dynamic_insertelement_v16i32:
868 ; SI: ; %bb.0:
869 ; SI-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x10
870 ; SI-NEXT: s_load_dword s6, s[4:5], 0x20
871 ; SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
872 ; SI-NEXT: s_mov_b32 s3, 0x100f000
873 ; SI-NEXT: s_mov_b32 s2, -1
874 ; SI-NEXT: s_waitcnt lgkmcnt(0)
875 ; SI-NEXT: v_mov_b32_e32 v0, s8
876 ; SI-NEXT: v_mov_b32_e32 v1, s9
877 ; SI-NEXT: v_mov_b32_e32 v2, s10
878 ; SI-NEXT: v_mov_b32_e32 v3, s11
879 ; SI-NEXT: v_mov_b32_e32 v4, s12
880 ; SI-NEXT: v_mov_b32_e32 v5, s13
881 ; SI-NEXT: v_mov_b32_e32 v6, s14
882 ; SI-NEXT: v_mov_b32_e32 v7, s15
883 ; SI-NEXT: v_mov_b32_e32 v8, s16
884 ; SI-NEXT: v_mov_b32_e32 v9, s17
885 ; SI-NEXT: v_mov_b32_e32 v10, s18
886 ; SI-NEXT: v_mov_b32_e32 v11, s19
887 ; SI-NEXT: v_mov_b32_e32 v12, s20
888 ; SI-NEXT: v_mov_b32_e32 v13, s21
889 ; SI-NEXT: v_mov_b32_e32 v14, s22
890 ; SI-NEXT: v_mov_b32_e32 v15, s23
891 ; SI-NEXT: s_mov_b32 m0, s6
892 ; SI-NEXT: v_movreld_b32_e32 v0, 5
893 ; SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:48
894 ; SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:32
895 ; SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:16
896 ; SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0
897 ; SI-NEXT: s_endpgm
936 ; SI-LABEL: dynamic_insertelement_v2i16:
937 ; SI: ; %bb.0:
938 ; SI-NEXT: s_load_dword s6, s[4:5], 0x3
939 ; SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
940 ; SI-NEXT: s_load_dword s4, s[4:5], 0x2
941 ; SI-NEXT: s_mov_b32 s3, 0x100f000
942 ; SI-NEXT: s_mov_b32 s2, -1
943 ; SI-NEXT: s_waitcnt lgkmcnt(0)
944 ; SI-NEXT: s_lshl_b32 s5, s6, 4
945 ; SI-NEXT: s_lshl_b32 s5, 0xffff, s5
946 ; SI-NEXT: s_andn2_b32 s4, s4, s5
947 ; SI-NEXT: s_and_b32 s5, s5, 0x50005
948 ; SI-NEXT: s_or_b32 s4, s5, s4
949 ; SI-NEXT: v_mov_b32_e32 v0, s4
950 ; SI-NEXT: buffer_store_dword v0, off, s[0:3], 0
951 ; SI-NEXT: s_endpgm
975 ; SI-LABEL: dynamic_insertelement_v3i16:
976 ; SI: ; %bb.0:
977 ; SI-NEXT: s_load_dword s6, s[4:5], 0x4
978 ; SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
979 ; SI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x2
980 ; SI-NEXT: s_mov_b32 s3, 0x100f000
981 ; SI-NEXT: s_mov_b32 s2, -1
982 ; SI-NEXT: s_waitcnt lgkmcnt(0)
983 ; SI-NEXT: s_lshl_b32 s8, s6, 4
984 ; SI-NEXT: s_mov_b64 s[6:7], 0xffff
985 ; SI-NEXT: s_lshl_b64 s[6:7], s[6:7], s8
986 ; SI-NEXT: s_and_b32 s9, s7, 0x50005
987 ; SI-NEXT: s_and_b32 s8, s6, 0x50005
988 ; SI-NEXT: s_andn2_b64 s[4:5], s[4:5], s[6:7]
989 ; SI-NEXT: s_or_b64 s[4:5], s[8:9], s[4:5]
990 ; SI-NEXT: v_mov_b32_e32 v0, s5
991 ; SI-NEXT: buffer_store_short v0, off, s[0:3], 0 offset:4
992 ; SI-NEXT: v_mov_b32_e32 v0, s4
993 ; SI-NEXT: buffer_store_dword v0, off, s[0:3], 0
994 ; SI-NEXT: s_endpgm
1023 ; SI-LABEL: dynamic_insertelement_v2i8:
1024 ; SI: ; %bb.0:
1025 ; SI-NEXT: s_load_dword s6, s[4:5], 0x13
1026 ; SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1027 ; SI-NEXT: s_load_dword s4, s[4:5], 0xa
1028 ; SI-NEXT: s_mov_b32 s3, 0x100f000
1029 ; SI-NEXT: s_mov_b32 s2, -1
1030 ; SI-NEXT: s_waitcnt lgkmcnt(0)
1031 ; SI-NEXT: s_lshl_b32 s5, s6, 3
1032 ; SI-NEXT: s_lshl_b32 s5, -1, s5
1033 ; SI-NEXT: s_andn2_b32 s4, s4, s5
1034 ; SI-NEXT: s_and_b32 s5, s5, 0x505
1035 ; SI-NEXT: s_or_b32 s4, s5, s4
1036 ; SI-NEXT: v_mov_b32_e32 v0, s4
1037 ; SI-NEXT: buffer_store_short v0, off, s[0:3], 0
1038 ; SI-NEXT: s_endpgm
1064 ; SI-LABEL: dynamic_insertelement_v3i8:
1065 ; SI: ; %bb.0:
1066 ; SI-NEXT: s_load_dword s6, s[4:5], 0x13
1067 ; SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1068 ; SI-NEXT: s_load_dword s4, s[4:5], 0xa
1069 ; SI-NEXT: s_mov_b32 s3, 0x100f000
1070 ; SI-NEXT: s_mov_b32 s2, -1
1071 ; SI-NEXT: s_waitcnt lgkmcnt(0)
1072 ; SI-NEXT: s_lshl_b32 s5, s6, 3
1073 ; SI-NEXT: s_lshl_b32 s5, 0xffff, s5
1074 ; SI-NEXT: s_andn2_b32 s4, s4, s5
1075 ; SI-NEXT: s_and_b32 s5, s5, 0x5050505
1076 ; SI-NEXT: s_or_b32 s4, s5, s4
1077 ; SI-NEXT: s_lshr_b32 s5, s4, 16
1078 ; SI-NEXT: v_mov_b32_e32 v0, s4
1079 ; SI-NEXT: buffer_store_short v0, off, s[0:3], 0
1080 ; SI-NEXT: v_mov_b32_e32 v0, s5
1081 ; SI-NEXT: buffer_store_byte v0, off, s[0:3], 0 offset:2
1082 ; SI-NEXT: s_endpgm
1109 ; SI-LABEL: dynamic_insertelement_v4i8:
1110 ; SI: ; %bb.0:
1111 ; SI-NEXT: s_load_dword s6, s[4:5], 0x13
1112 ; SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1113 ; SI-NEXT: s_load_dword s4, s[4:5], 0xa
1114 ; SI-NEXT: s_mov_b32 s3, 0x100f000
1115 ; SI-NEXT: s_mov_b32 s2, -1
1116 ; SI-NEXT: s_waitcnt lgkmcnt(0)
1117 ; SI-NEXT: s_lshl_b32 s5, s6, 3
1118 ; SI-NEXT: s_lshl_b32 s5, 0xffff, s5
1119 ; SI-NEXT: s_andn2_b32 s4, s4, s5
1120 ; SI-NEXT: s_and_b32 s5, s5, 0x5050505
1121 ; SI-NEXT: s_or_b32 s4, s5, s4
1122 ; SI-NEXT: v_mov_b32_e32 v0, s4
1123 ; SI-NEXT: buffer_store_dword v0, off, s[0:3], 0
1124 ; SI-NEXT: s_endpgm
1148 ; SI-LABEL: s_dynamic_insertelement_v8i8:
1149 ; SI: ; %bb.0:
1150 ; SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
1151 ; SI-NEXT: s_load_dword s8, s[4:5], 0x4
1152 ; SI-NEXT: s_mov_b32 s7, 0x100f000
1153 ; SI-NEXT: s_mov_b32 s6, -1
1154 ; SI-NEXT: s_waitcnt lgkmcnt(0)
1155 ; SI-NEXT: s_mov_b32 s4, s0
1156 ; SI-NEXT: s_mov_b32 s5, s1
1157 ; SI-NEXT: s_load_dwordx2 s[0:1], s[2:3], 0x0
1158 ; SI-NEXT: s_lshl_b32 s8, s8, 3
1159 ; SI-NEXT: s_mov_b64 s[2:3], 0xffff
1160 ; SI-NEXT: s_lshl_b64 s[2:3], s[2:3], s8
1161 ; SI-NEXT: s_and_b32 s9, s3, 0x5050505
1162 ; SI-NEXT: s_and_b32 s8, s2, 0x5050505
1163 ; SI-NEXT: s_waitcnt lgkmcnt(0)
1164 ; SI-NEXT: s_andn2_b64 s[0:1], s[0:1], s[2:3]
1165 ; SI-NEXT: s_or_b64 s[0:1], s[8:9], s[0:1]
1166 ; SI-NEXT: v_mov_b32_e32 v0, s0
1167 ; SI-NEXT: v_mov_b32_e32 v1, s1
1168 ; SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[4:7], 0
1169 ; SI-NEXT: s_endpgm
1200 ; SI-LABEL: dynamic_insertelement_v16i8:
1201 ; SI: ; %bb.0:
1202 ; SI-NEXT: s_load_dwordx4 s[8:11], s[4:5], 0x4
1203 ; SI-NEXT: s_load_dword s6, s[4:5], 0x8
1204 ; SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1205 ; SI-NEXT: s_mov_b32 s3, 0x100f000
1206 ; SI-NEXT: s_mov_b32 s2, -1
1207 ; SI-NEXT: s_waitcnt lgkmcnt(0)
1208 ; SI-NEXT: s_lshr_b32 s4, s11, 24
1209 ; SI-NEXT: s_cmp_lg_u32 s6, 15
1210 ; SI-NEXT: v_mov_b32_e32 v0, s4
1211 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
1212 ; SI-NEXT: s_lshr_b32 s4, s11, 16
1213 ; SI-NEXT: s_cmp_lg_u32 s6, 14
1214 ; SI-NEXT: v_cndmask_b32_e32 v0, 5, v0, vcc
1215 ; SI-NEXT: v_mov_b32_e32 v1, s4
1216 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
1217 ; SI-NEXT: v_cndmask_b32_e32 v1, 5, v1, vcc
1218 ; SI-NEXT: s_lshr_b32 s4, s11, 8
1219 ; SI-NEXT: v_lshlrev_b32_e32 v0, 8, v0
1220 ; SI-NEXT: v_and_b32_e32 v1, 0xff, v1
1221 ; SI-NEXT: s_cmp_lg_u32 s6, 13
1222 ; SI-NEXT: v_or_b32_e32 v0, v1, v0
1223 ; SI-NEXT: v_mov_b32_e32 v1, s4
1224 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
1225 ; SI-NEXT: s_cmp_lg_u32 s6, 12
1226 ; SI-NEXT: v_cndmask_b32_e32 v1, 5, v1, vcc
1227 ; SI-NEXT: v_mov_b32_e32 v2, s11
1228 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
1229 ; SI-NEXT: v_cndmask_b32_e32 v2, 5, v2, vcc
1230 ; SI-NEXT: v_lshlrev_b32_e32 v1, 8, v1
1231 ; SI-NEXT: v_and_b32_e32 v2, 0xff, v2
1232 ; SI-NEXT: v_or_b32_e32 v1, v2, v1
1233 ; SI-NEXT: s_lshr_b32 s4, s10, 24
1234 ; SI-NEXT: v_lshlrev_b32_e32 v0, 16, v0
1235 ; SI-NEXT: v_and_b32_e32 v1, 0xffff, v1
1236 ; SI-NEXT: s_cmp_lg_u32 s6, 11
1237 ; SI-NEXT: v_or_b32_e32 v3, v1, v0
1238 ; SI-NEXT: v_mov_b32_e32 v0, s4
1239 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
1240 ; SI-NEXT: s_lshr_b32 s4, s10, 16
1241 ; SI-NEXT: s_cmp_lg_u32 s6, 10
1242 ; SI-NEXT: v_cndmask_b32_e32 v0, 5, v0, vcc
1243 ; SI-NEXT: v_mov_b32_e32 v1, s4
1244 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
1245 ; SI-NEXT: v_cndmask_b32_e32 v1, 5, v1, vcc
1246 ; SI-NEXT: s_lshr_b32 s4, s10, 8
1247 ; SI-NEXT: v_lshlrev_b32_e32 v0, 8, v0
1248 ; SI-NEXT: v_and_b32_e32 v1, 0xff, v1
1249 ; SI-NEXT: s_cmp_lg_u32 s6, 9
1250 ; SI-NEXT: v_or_b32_e32 v0, v1, v0
1251 ; SI-NEXT: v_mov_b32_e32 v1, s4
1252 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
1253 ; SI-NEXT: s_cmp_lg_u32 s6, 8
1254 ; SI-NEXT: v_cndmask_b32_e32 v1, 5, v1, vcc
1255 ; SI-NEXT: v_mov_b32_e32 v2, s10
1256 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
1257 ; SI-NEXT: v_cndmask_b32_e32 v2, 5, v2, vcc
1258 ; SI-NEXT: v_lshlrev_b32_e32 v1, 8, v1
1259 ; SI-NEXT: v_and_b32_e32 v2, 0xff, v2
1260 ; SI-NEXT: v_or_b32_e32 v1, v2, v1
1261 ; SI-NEXT: s_lshr_b32 s4, s9, 24
1262 ; SI-NEXT: v_lshlrev_b32_e32 v0, 16, v0
1263 ; SI-NEXT: v_and_b32_e32 v1, 0xffff, v1
1264 ; SI-NEXT: s_cmp_lg_u32 s6, 7
1265 ; SI-NEXT: v_or_b32_e32 v2, v1, v0
1266 ; SI-NEXT: v_mov_b32_e32 v0, s4
1267 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
1268 ; SI-NEXT: s_lshr_b32 s4, s9, 16
1269 ; SI-NEXT: s_cmp_lg_u32 s6, 6
1270 ; SI-NEXT: v_cndmask_b32_e32 v0, 5, v0, vcc
1271 ; SI-NEXT: v_mov_b32_e32 v1, s4
1272 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
1273 ; SI-NEXT: v_cndmask_b32_e32 v1, 5, v1, vcc
1274 ; SI-NEXT: s_lshr_b32 s4, s9, 8
1275 ; SI-NEXT: v_lshlrev_b32_e32 v0, 8, v0
1276 ; SI-NEXT: v_and_b32_e32 v1, 0xff, v1
1277 ; SI-NEXT: s_cmp_lg_u32 s6, 5
1278 ; SI-NEXT: v_or_b32_e32 v0, v1, v0
1279 ; SI-NEXT: v_mov_b32_e32 v1, s4
1280 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
1281 ; SI-NEXT: s_cmp_lg_u32 s6, 4
1282 ; SI-NEXT: v_cndmask_b32_e32 v1, 5, v1, vcc
1283 ; SI-NEXT: v_mov_b32_e32 v4, s9
1284 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
1285 ; SI-NEXT: v_cndmask_b32_e32 v4, 5, v4, vcc
1286 ; SI-NEXT: v_lshlrev_b32_e32 v1, 8, v1
1287 ; SI-NEXT: v_and_b32_e32 v4, 0xff, v4
1288 ; SI-NEXT: v_or_b32_e32 v1, v4, v1
1289 ; SI-NEXT: s_lshr_b32 s4, s8, 24
1290 ; SI-NEXT: v_lshlrev_b32_e32 v0, 16, v0
1291 ; SI-NEXT: v_and_b32_e32 v1, 0xffff, v1
1292 ; SI-NEXT: s_cmp_lg_u32 s6, 3
1293 ; SI-NEXT: v_or_b32_e32 v1, v1, v0
1294 ; SI-NEXT: v_mov_b32_e32 v0, s4
1295 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
1296 ; SI-NEXT: s_lshr_b32 s4, s8, 16
1297 ; SI-NEXT: s_cmp_lg_u32 s6, 2
1298 ; SI-NEXT: v_cndmask_b32_e32 v0, 5, v0, vcc
1299 ; SI-NEXT: v_mov_b32_e32 v4, s4
1300 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
1301 ; SI-NEXT: v_cndmask_b32_e32 v4, 5, v4, vcc
1302 ; SI-NEXT: s_lshr_b32 s4, s8, 8
1303 ; SI-NEXT: v_lshlrev_b32_e32 v0, 8, v0
1304 ; SI-NEXT: v_and_b32_e32 v4, 0xff, v4
1305 ; SI-NEXT: s_cmp_lg_u32 s6, 1
1306 ; SI-NEXT: v_or_b32_e32 v0, v4, v0
1307 ; SI-NEXT: v_mov_b32_e32 v4, s4
1308 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
1309 ; SI-NEXT: s_cmp_lg_u32 s6, 0
1310 ; SI-NEXT: v_cndmask_b32_e32 v4, 5, v4, vcc
1311 ; SI-NEXT: v_mov_b32_e32 v5, s8
1312 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
1313 ; SI-NEXT: v_cndmask_b32_e32 v5, 5, v5, vcc
1314 ; SI-NEXT: v_lshlrev_b32_e32 v4, 8, v4
1315 ; SI-NEXT: v_and_b32_e32 v5, 0xff, v5
1316 ; SI-NEXT: v_or_b32_e32 v4, v5, v4
1317 ; SI-NEXT: v_lshlrev_b32_e32 v0, 16, v0
1318 ; SI-NEXT: v_and_b32_e32 v4, 0xffff, v4
1319 ; SI-NEXT: v_or_b32_e32 v0, v4, v0
1320 ; SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0
1321 ; SI-NEXT: s_endpgm
1437 ; SI-LABEL: insert_split_bb:
1438 ; SI: ; %bb.0: ; %entry
1439 ; SI-NEXT: s_load_dword s6, s[4:5], 0x4
1440 ; SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
1441 ; SI-NEXT: s_waitcnt lgkmcnt(0)
1442 ; SI-NEXT: s_cmp_lg_u32 s6, 0
1443 ; SI-NEXT: s_cbranch_scc0 .LBB30_4
1444 ; SI-NEXT: ; %bb.1: ; %else
1445 ; SI-NEXT: s_load_dword s7, s[2:3], 0x1
1446 ; SI-NEXT: s_mov_b64 s[4:5], 0
1447 ; SI-NEXT: s_andn2_b64 vcc, exec, s[4:5]
1448 ; SI-NEXT: s_waitcnt lgkmcnt(0)
1449 ; SI-NEXT: s_mov_b64 vcc, vcc
1450 ; SI-NEXT: s_cbranch_vccnz .LBB30_3
1451 ; SI-NEXT: .LBB30_2: ; %if
1452 ; SI-NEXT: s_load_dword s7, s[2:3], 0x0
1453 ; SI-NEXT: .LBB30_3: ; %endif
1454 ; SI-NEXT: s_waitcnt lgkmcnt(0)
1455 ; SI-NEXT: v_mov_b32_e32 v0, s6
1456 ; SI-NEXT: s_mov_b32 s3, 0x100f000
1457 ; SI-NEXT: s_mov_b32 s2, -1
1458 ; SI-NEXT: v_mov_b32_e32 v1, s7
1459 ; SI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0
1460 ; SI-NEXT: s_endpgm
1461 ; SI-NEXT: .LBB30_4:
1462 ; SI-NEXT: s_branch .LBB30_2
1510 ; SI-LABEL: dynamic_insertelement_v2f64:
1511 ; SI: ; %bb.0:
1512 ; SI-NEXT: s_load_dword s8, s[4:5], 0x18
1513 ; SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0xc
1514 ; SI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
1515 ; SI-NEXT: v_mov_b32_e32 v1, 0x40200000
1516 ; SI-NEXT: s_mov_b32 s7, 0x100f000
1517 ; SI-NEXT: s_waitcnt lgkmcnt(0)
1518 ; SI-NEXT: s_cmp_eq_u32 s8, 1
1519 ; SI-NEXT: v_mov_b32_e32 v0, s3
1520 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
1521 ; SI-NEXT: v_cndmask_b32_e32 v3, v0, v1, vcc
1522 ; SI-NEXT: v_mov_b32_e32 v0, s2
1523 ; SI-NEXT: s_cmp_eq_u32 s8, 0
1524 ; SI-NEXT: v_cndmask_b32_e64 v2, v0, 0, vcc
1525 ; SI-NEXT: v_mov_b32_e32 v0, s1
1526 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
1527 ; SI-NEXT: v_cndmask_b32_e32 v1, v0, v1, vcc
1528 ; SI-NEXT: v_mov_b32_e32 v0, s0
1529 ; SI-NEXT: s_mov_b32 s6, -1
1530 ; SI-NEXT: v_cndmask_b32_e64 v0, v0, 0, vcc
1531 ; SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0
1532 ; SI-NEXT: s_endpgm
1563 ; SI-LABEL: dynamic_insertelement_v2i64:
1564 ; SI: ; %bb.0:
1565 ; SI-NEXT: s_load_dword s10, s[4:5], 0x8
1566 ; SI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x4
1567 ; SI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
1568 ; SI-NEXT: s_mov_b32 s7, 0x100f000
1569 ; SI-NEXT: s_mov_b32 s6, -1
1570 ; SI-NEXT: s_waitcnt lgkmcnt(0)
1571 ; SI-NEXT: s_cmp_eq_u32 s10, 1
1572 ; SI-NEXT: v_mov_b32_e32 v0, s3
1573 ; SI-NEXT: s_cselect_b64 s[8:9], -1, 0
1574 ; SI-NEXT: v_cndmask_b32_e64 v3, v0, 0, s[8:9]
1575 ; SI-NEXT: v_mov_b32_e32 v0, s2
1576 ; SI-NEXT: s_cmp_eq_u32 s10, 0
1577 ; SI-NEXT: v_cndmask_b32_e64 v2, v0, 5, s[8:9]
1578 ; SI-NEXT: v_mov_b32_e32 v0, s1
1579 ; SI-NEXT: s_cselect_b64 s[2:3], -1, 0
1580 ; SI-NEXT: v_cndmask_b32_e64 v1, v0, 0, s[2:3]
1581 ; SI-NEXT: v_mov_b32_e32 v0, s0
1582 ; SI-NEXT: v_cndmask_b32_e64 v0, v0, 5, s[2:3]
1583 ; SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[4:7], 0
1584 ; SI-NEXT: s_endpgm
1614 ; SI-LABEL: dynamic_insertelement_v3i64:
1615 ; SI: ; %bb.0:
1616 ; SI-NEXT: s_load_dword s12, s[4:5], 0x10
1617 ; SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1618 ; SI-NEXT: s_load_dwordx4 s[8:11], s[4:5], 0x8
1619 ; SI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0xc
1620 ; SI-NEXT: s_mov_b32 s3, 0x100f000
1621 ; SI-NEXT: s_waitcnt lgkmcnt(0)
1622 ; SI-NEXT: s_cmp_eq_u32 s12, 1
1623 ; SI-NEXT: s_cselect_b64 s[6:7], -1, 0
1624 ; SI-NEXT: v_mov_b32_e32 v0, s11
1625 ; SI-NEXT: v_cndmask_b32_e64 v3, v0, 0, s[6:7]
1626 ; SI-NEXT: v_mov_b32_e32 v0, s10
1627 ; SI-NEXT: s_cmp_eq_u32 s12, 0
1628 ; SI-NEXT: v_cndmask_b32_e64 v2, v0, 5, s[6:7]
1629 ; SI-NEXT: v_mov_b32_e32 v0, s9
1630 ; SI-NEXT: s_cselect_b64 s[6:7], -1, 0
1631 ; SI-NEXT: v_cndmask_b32_e64 v1, v0, 0, s[6:7]
1632 ; SI-NEXT: v_mov_b32_e32 v0, s8
1633 ; SI-NEXT: s_cmp_eq_u32 s12, 2
1634 ; SI-NEXT: v_cndmask_b32_e64 v0, v0, 5, s[6:7]
1635 ; SI-NEXT: v_mov_b32_e32 v4, s5
1636 ; SI-NEXT: s_cselect_b64 s[6:7], -1, 0
1637 ; SI-NEXT: v_cndmask_b32_e64 v5, v4, 0, s[6:7]
1638 ; SI-NEXT: v_mov_b32_e32 v4, s4
1639 ; SI-NEXT: s_mov_b32 s2, -1
1640 ; SI-NEXT: v_cndmask_b32_e64 v4, v4, 5, s[6:7]
1641 ; SI-NEXT: buffer_store_dwordx2 v[4:5], off, s[0:3], 0 offset:16
1642 ; SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0
1643 ; SI-NEXT: s_endpgm
1681 ; SI-LABEL: dynamic_insertelement_v4f64:
1682 ; SI: ; %bb.0:
1683 ; SI-NEXT: s_load_dword s6, s[4:5], 0x10
1684 ; SI-NEXT: s_load_dwordx8 s[8:15], s[4:5], 0x8
1685 ; SI-NEXT: v_mov_b32_e32 v4, 0x40200000
1686 ; SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1687 ; SI-NEXT: s_mov_b32 s3, 0x100f000
1688 ; SI-NEXT: s_waitcnt lgkmcnt(0)
1689 ; SI-NEXT: s_cmp_eq_u32 s6, 1
1690 ; SI-NEXT: v_mov_b32_e32 v0, s11
1691 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
1692 ; SI-NEXT: v_cndmask_b32_e32 v3, v0, v4, vcc
1693 ; SI-NEXT: v_mov_b32_e32 v0, s10
1694 ; SI-NEXT: s_cmp_eq_u32 s6, 0
1695 ; SI-NEXT: v_cndmask_b32_e64 v2, v0, 0, vcc
1696 ; SI-NEXT: v_mov_b32_e32 v0, s9
1697 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
1698 ; SI-NEXT: v_cndmask_b32_e32 v1, v0, v4, vcc
1699 ; SI-NEXT: v_mov_b32_e32 v0, s8
1700 ; SI-NEXT: s_cmp_eq_u32 s6, 3
1701 ; SI-NEXT: v_cndmask_b32_e64 v0, v0, 0, vcc
1702 ; SI-NEXT: v_mov_b32_e32 v5, s15
1703 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
1704 ; SI-NEXT: v_cndmask_b32_e32 v7, v5, v4, vcc
1705 ; SI-NEXT: v_mov_b32_e32 v5, s14
1706 ; SI-NEXT: s_cmp_eq_u32 s6, 2
1707 ; SI-NEXT: v_cndmask_b32_e64 v6, v5, 0, vcc
1708 ; SI-NEXT: v_mov_b32_e32 v5, s13
1709 ; SI-NEXT: s_cselect_b64 vcc, -1, 0
1710 ; SI-NEXT: v_cndmask_b32_e32 v5, v5, v4, vcc
1711 ; SI-NEXT: v_mov_b32_e32 v4, s12
1712 ; SI-NEXT: s_mov_b32 s2, -1
1713 ; SI-NEXT: v_cndmask_b32_e64 v4, v4, 0, vcc
1714 ; SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:16
1715 ; SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0
1716 ; SI-NEXT: s_endpgm
1760 ; SI-LABEL: dynamic_insertelement_v8f64:
1761 ; SI: ; %bb.0:
1762 ; SI-NEXT: s_load_dword s6, s[4:5], 0x20
1763 ; SI-NEXT: s_load_dwordx16 s[8:23], s[4:5], 0x10
1764 ; SI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1765 ; SI-NEXT: v_mov_b32_e32 v16, 0x40200000
1766 ; SI-NEXT: s_mov_b32 s3, 0x100f000
1767 ; SI-NEXT: s_waitcnt lgkmcnt(0)
1768 ; SI-NEXT: s_lshl_b32 s4, s6, 1
1769 ; SI-NEXT: v_mov_b32_e32 v0, s8
1770 ; SI-NEXT: v_mov_b32_e32 v1, s9
1771 ; SI-NEXT: v_mov_b32_e32 v2, s10
1772 ; SI-NEXT: v_mov_b32_e32 v3, s11
1773 ; SI-NEXT: v_mov_b32_e32 v4, s12
1774 ; SI-NEXT: v_mov_b32_e32 v5, s13
1775 ; SI-NEXT: v_mov_b32_e32 v6, s14
1776 ; SI-NEXT: v_mov_b32_e32 v7, s15
1777 ; SI-NEXT: v_mov_b32_e32 v8, s16
1778 ; SI-NEXT: v_mov_b32_e32 v9, s17
1779 ; SI-NEXT: v_mov_b32_e32 v10, s18
1780 ; SI-NEXT: v_mov_b32_e32 v11, s19
1781 ; SI-NEXT: v_mov_b32_e32 v12, s20
1782 ; SI-NEXT: v_mov_b32_e32 v13, s21
1783 ; SI-NEXT: v_mov_b32_e32 v14, s22
1784 ; SI-NEXT: v_mov_b32_e32 v15, s23
1785 ; SI-NEXT: s_mov_b32 m0, s4
1786 ; SI-NEXT: v_movreld_b32_e32 v0, 0
1787 ; SI-NEXT: s_mov_b32 s2, -1
1788 ; SI-NEXT: v_movreld_b32_e32 v1, v16
1789 ; SI-NEXT: buffer_store_dwordx4 v[12:15], off, s[0:3], 0 offset:48
1790 ; SI-NEXT: buffer_store_dwordx4 v[8:11], off, s[0:3], 0 offset:32
1791 ; SI-NEXT: buffer_store_dwordx4 v[4:7], off, s[0:3], 0 offset:16
1792 ; SI-NEXT: buffer_store_dwordx4 v[0:3], off, s[0:3], 0
1793 ; SI-NEXT: s_endpgm