Lines Matching refs:VI
3 …neinstrs < %s | FileCheck -allow-deprecated-dag-overlap -enable-var-scope -check-prefixes=GCN,VI %s
19 ; VI-LABEL: load_f16_arg:
20 ; VI: ; %bb.0:
21 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
22 ; VI-NEXT: s_load_dword s2, s[4:5], 0x8
23 ; VI-NEXT: s_waitcnt lgkmcnt(0)
24 ; VI-NEXT: v_mov_b32_e32 v0, s0
25 ; VI-NEXT: v_mov_b32_e32 v1, s1
26 ; VI-NEXT: v_mov_b32_e32 v2, s2
27 ; VI-NEXT: flat_store_short v[0:1], v2
28 ; VI-NEXT: s_endpgm
45 ; VI-LABEL: load_v2f16_arg:
46 ; VI: ; %bb.0:
47 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
48 ; VI-NEXT: s_load_dword s2, s[4:5], 0x8
49 ; VI-NEXT: s_waitcnt lgkmcnt(0)
50 ; VI-NEXT: v_mov_b32_e32 v0, s0
51 ; VI-NEXT: v_mov_b32_e32 v1, s1
52 ; VI-NEXT: v_mov_b32_e32 v2, s2
53 ; VI-NEXT: flat_store_dword v[0:1], v2
54 ; VI-NEXT: s_endpgm
77 ; VI-LABEL: load_v3f16_arg:
78 ; VI: ; %bb.0:
79 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
80 ; VI-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
81 ; VI-NEXT: s_waitcnt lgkmcnt(0)
82 ; VI-NEXT: s_add_u32 s4, s0, 4
83 ; VI-NEXT: s_addc_u32 s5, s1, 0
84 ; VI-NEXT: v_mov_b32_e32 v2, s4
85 ; VI-NEXT: v_mov_b32_e32 v4, s3
86 ; VI-NEXT: v_mov_b32_e32 v0, s0
87 ; VI-NEXT: v_mov_b32_e32 v3, s5
88 ; VI-NEXT: v_mov_b32_e32 v1, s1
89 ; VI-NEXT: v_mov_b32_e32 v5, s2
90 ; VI-NEXT: flat_store_short v[2:3], v4
91 ; VI-NEXT: flat_store_dword v[0:1], v5
92 ; VI-NEXT: s_endpgm
112 ; VI-LABEL: load_v4f16_arg:
113 ; VI: ; %bb.0:
114 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
115 ; VI-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x8
116 ; VI-NEXT: s_waitcnt lgkmcnt(0)
117 ; VI-NEXT: v_mov_b32_e32 v0, s0
118 ; VI-NEXT: v_mov_b32_e32 v2, s2
119 ; VI-NEXT: v_mov_b32_e32 v1, s1
120 ; VI-NEXT: v_mov_b32_e32 v3, s3
121 ; VI-NEXT: flat_store_dwordx2 v[0:1], v[2:3]
122 ; VI-NEXT: s_endpgm
142 ; VI-LABEL: load_v8f16_arg:
143 ; VI: ; %bb.0:
144 ; VI-NEXT: s_load_dwordx2 s[6:7], s[4:5], 0x0
145 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x10
146 ; VI-NEXT: s_waitcnt lgkmcnt(0)
147 ; VI-NEXT: v_mov_b32_e32 v4, s6
148 ; VI-NEXT: v_mov_b32_e32 v0, s0
149 ; VI-NEXT: v_mov_b32_e32 v5, s7
150 ; VI-NEXT: v_mov_b32_e32 v1, s1
151 ; VI-NEXT: v_mov_b32_e32 v2, s2
152 ; VI-NEXT: v_mov_b32_e32 v3, s3
153 ; VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]
154 ; VI-NEXT: s_endpgm
173 ; VI-LABEL: extload_v2f16_arg:
174 ; VI: ; %bb.0:
175 ; VI-NEXT: s_load_dword s2, s[4:5], 0x8
176 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
177 ; VI-NEXT: s_waitcnt lgkmcnt(0)
178 ; VI-NEXT: s_lshr_b32 s3, s2, 16
179 ; VI-NEXT: v_cvt_f32_f16_e32 v1, s3
180 ; VI-NEXT: v_cvt_f32_f16_e32 v0, s2
181 ; VI-NEXT: v_mov_b32_e32 v3, s1
182 ; VI-NEXT: v_mov_b32_e32 v2, s0
183 ; VI-NEXT: flat_store_dwordx2 v[2:3], v[0:1]
184 ; VI-NEXT: s_endpgm
202 ; VI-LABEL: extload_f16_to_f32_arg:
203 ; VI: ; %bb.0:
204 ; VI-NEXT: s_load_dword s2, s[4:5], 0x8
205 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
206 ; VI-NEXT: s_waitcnt lgkmcnt(0)
207 ; VI-NEXT: v_cvt_f32_f16_e32 v2, s2
208 ; VI-NEXT: v_mov_b32_e32 v0, s0
209 ; VI-NEXT: v_mov_b32_e32 v1, s1
210 ; VI-NEXT: flat_store_dword v[0:1], v2
211 ; VI-NEXT: s_endpgm
231 ; VI-LABEL: extload_v2f16_to_v2f32_arg:
232 ; VI: ; %bb.0:
233 ; VI-NEXT: s_load_dword s2, s[4:5], 0x8
234 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
235 ; VI-NEXT: s_waitcnt lgkmcnt(0)
236 ; VI-NEXT: s_lshr_b32 s3, s2, 16
237 ; VI-NEXT: v_cvt_f32_f16_e32 v1, s3
238 ; VI-NEXT: v_cvt_f32_f16_e32 v0, s2
239 ; VI-NEXT: v_mov_b32_e32 v3, s1
240 ; VI-NEXT: v_mov_b32_e32 v2, s0
241 ; VI-NEXT: flat_store_dwordx2 v[2:3], v[0:1]
242 ; VI-NEXT: s_endpgm
263 ; VI-LABEL: extload_v3f16_to_v3f32_arg:
264 ; VI: ; %bb.0:
265 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
266 ; VI-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
267 ; VI-NEXT: s_waitcnt lgkmcnt(0)
268 ; VI-NEXT: s_lshr_b32 s4, s0, 16
269 ; VI-NEXT: v_cvt_f32_f16_e32 v0, s0
270 ; VI-NEXT: v_cvt_f32_f16_e32 v1, s4
271 ; VI-NEXT: v_cvt_f32_f16_e32 v2, s1
272 ; VI-NEXT: v_mov_b32_e32 v4, s3
273 ; VI-NEXT: v_mov_b32_e32 v3, s2
274 ; VI-NEXT: flat_store_dwordx3 v[3:4], v[0:2]
275 ; VI-NEXT: s_endpgm
298 ; VI-LABEL: extload_v4f16_to_v4f32_arg:
299 ; VI: ; %bb.0:
300 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
301 ; VI-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
302 ; VI-NEXT: s_waitcnt lgkmcnt(0)
303 ; VI-NEXT: s_lshr_b32 s4, s1, 16
304 ; VI-NEXT: s_lshr_b32 s5, s0, 16
305 ; VI-NEXT: v_cvt_f32_f16_e32 v0, s0
306 ; VI-NEXT: v_cvt_f32_f16_e32 v3, s4
307 ; VI-NEXT: v_cvt_f32_f16_e32 v1, s5
308 ; VI-NEXT: v_cvt_f32_f16_e32 v2, s1
309 ; VI-NEXT: v_mov_b32_e32 v5, s3
310 ; VI-NEXT: v_mov_b32_e32 v4, s2
311 ; VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]
312 ; VI-NEXT: s_endpgm
347 ; VI-LABEL: extload_v8f16_to_v8f32_arg:
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_waitcnt lgkmcnt(0)
352 ; VI-NEXT: s_lshr_b32 s6, s1, 16
353 ; VI-NEXT: s_lshr_b32 s7, s0, 16
354 ; VI-NEXT: s_lshr_b32 s8, s3, 16
355 ; VI-NEXT: v_cvt_f32_f16_e32 v3, s6
356 ; VI-NEXT: s_lshr_b32 s6, s2, 16
357 ; VI-NEXT: v_cvt_f32_f16_e32 v7, s8
358 ; VI-NEXT: v_cvt_f32_f16_e32 v5, s6
359 ; VI-NEXT: v_cvt_f32_f16_e32 v0, s0
360 ; VI-NEXT: v_cvt_f32_f16_e32 v6, s3
361 ; VI-NEXT: v_cvt_f32_f16_e32 v4, s2
362 ; VI-NEXT: s_add_u32 s0, s4, 16
363 ; VI-NEXT: v_cvt_f32_f16_e32 v2, s1
364 ; VI-NEXT: s_addc_u32 s1, s5, 0
365 ; VI-NEXT: v_cvt_f32_f16_e32 v1, s7
366 ; VI-NEXT: v_mov_b32_e32 v9, s1
367 ; VI-NEXT: v_mov_b32_e32 v8, s0
368 ; VI-NEXT: flat_store_dwordx4 v[8:9], v[4:7]
369 ; VI-NEXT: s_nop 0
370 ; VI-NEXT: v_mov_b32_e32 v4, s4
371 ; VI-NEXT: v_mov_b32_e32 v5, s5
372 ; VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]
373 ; VI-NEXT: s_endpgm
393 ; VI-LABEL: extload_f16_to_f64_arg:
394 ; VI: ; %bb.0:
395 ; VI-NEXT: s_load_dword s0, s[4:5], 0x8
396 ; VI-NEXT: s_waitcnt lgkmcnt(0)
397 ; VI-NEXT: v_cvt_f32_f16_e32 v0, s0
398 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
399 ; VI-NEXT: v_cvt_f64_f32_e32 v[0:1], v0
400 ; VI-NEXT: s_waitcnt lgkmcnt(0)
401 ; VI-NEXT: v_mov_b32_e32 v3, s1
402 ; VI-NEXT: v_mov_b32_e32 v2, s0
403 ; VI-NEXT: flat_store_dwordx2 v[2:3], v[0:1]
404 ; VI-NEXT: s_endpgm
427 ; VI-LABEL: extload_v2f16_to_v2f64_arg:
428 ; VI: ; %bb.0:
429 ; VI-NEXT: s_load_dword s0, s[4:5], 0x8
430 ; VI-NEXT: s_waitcnt lgkmcnt(0)
431 ; VI-NEXT: s_lshr_b32 s1, s0, 16
432 ; VI-NEXT: v_cvt_f32_f16_e32 v0, s1
433 ; VI-NEXT: v_cvt_f32_f16_e32 v1, s0
434 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
435 ; VI-NEXT: v_cvt_f64_f32_e32 v[2:3], v0
436 ; VI-NEXT: v_cvt_f64_f32_e32 v[0:1], v1
437 ; VI-NEXT: s_waitcnt lgkmcnt(0)
438 ; VI-NEXT: v_mov_b32_e32 v5, s1
439 ; VI-NEXT: v_mov_b32_e32 v4, s0
440 ; VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]
441 ; VI-NEXT: s_endpgm
470 ; VI-LABEL: extload_v3f16_to_v3f64_arg:
471 ; VI: ; %bb.0:
472 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
473 ; VI-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
474 ; VI-NEXT: s_waitcnt lgkmcnt(0)
475 ; VI-NEXT: v_cvt_f32_f16_e32 v1, s1
476 ; VI-NEXT: s_lshr_b32 s4, s0, 16
477 ; VI-NEXT: v_cvt_f32_f16_e32 v0, s0
478 ; VI-NEXT: v_cvt_f32_f16_e32 v2, s4
479 ; VI-NEXT: s_add_u32 s0, s2, 16
480 ; VI-NEXT: v_cvt_f64_f32_e32 v[4:5], v1
481 ; VI-NEXT: s_addc_u32 s1, s3, 0
482 ; VI-NEXT: v_cvt_f64_f32_e32 v[0:1], v0
483 ; VI-NEXT: v_cvt_f64_f32_e32 v[2:3], v2
484 ; VI-NEXT: v_mov_b32_e32 v7, s1
485 ; VI-NEXT: v_mov_b32_e32 v6, s0
486 ; VI-NEXT: flat_store_dwordx2 v[6:7], v[4:5]
487 ; VI-NEXT: v_mov_b32_e32 v5, s3
488 ; VI-NEXT: v_mov_b32_e32 v4, s2
489 ; VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]
490 ; VI-NEXT: s_endpgm
523 ; VI-LABEL: extload_v4f16_to_v4f64_arg:
524 ; VI: ; %bb.0:
525 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
526 ; VI-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
527 ; VI-NEXT: s_waitcnt lgkmcnt(0)
528 ; VI-NEXT: s_lshr_b32 s5, s1, 16
529 ; VI-NEXT: v_cvt_f32_f16_e32 v4, s5
530 ; VI-NEXT: v_cvt_f32_f16_e32 v5, s1
531 ; VI-NEXT: s_lshr_b32 s4, s0, 16
532 ; VI-NEXT: v_cvt_f32_f16_e32 v0, s0
533 ; VI-NEXT: v_cvt_f32_f16_e32 v2, s4
534 ; VI-NEXT: v_cvt_f64_f32_e32 v[6:7], v4
535 ; VI-NEXT: v_cvt_f64_f32_e32 v[4:5], v5
536 ; VI-NEXT: s_add_u32 s0, s2, 16
537 ; VI-NEXT: s_addc_u32 s1, s3, 0
538 ; VI-NEXT: v_cvt_f64_f32_e32 v[0:1], v0
539 ; VI-NEXT: v_cvt_f64_f32_e32 v[2:3], v2
540 ; VI-NEXT: v_mov_b32_e32 v9, s1
541 ; VI-NEXT: v_mov_b32_e32 v8, s0
542 ; VI-NEXT: flat_store_dwordx4 v[8:9], v[4:7]
543 ; VI-NEXT: s_nop 0
544 ; VI-NEXT: v_mov_b32_e32 v5, s3
545 ; VI-NEXT: v_mov_b32_e32 v4, s2
546 ; VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]
547 ; VI-NEXT: s_endpgm
601 ; VI-LABEL: extload_v8f16_to_v8f64_arg:
602 ; VI: ; %bb.0:
603 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x10
604 ; VI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
605 ; VI-NEXT: s_waitcnt lgkmcnt(0)
606 ; VI-NEXT: s_lshr_b32 s6, s0, 16
607 ; VI-NEXT: s_lshr_b32 s8, s2, 16
608 ; VI-NEXT: s_lshr_b32 s9, s3, 16
609 ; VI-NEXT: v_cvt_f32_f16_e32 v0, s6
610 ; VI-NEXT: v_cvt_f32_f16_e32 v4, s8
611 ; VI-NEXT: v_cvt_f32_f16_e32 v5, s9
612 ; VI-NEXT: v_cvt_f32_f16_e32 v12, s3
613 ; VI-NEXT: s_lshr_b32 s7, s1, 16
614 ; VI-NEXT: v_cvt_f64_f32_e32 v[2:3], v0
615 ; VI-NEXT: v_cvt_f32_f16_e32 v0, s0
616 ; VI-NEXT: v_cvt_f32_f16_e32 v8, s2
617 ; VI-NEXT: s_add_u32 s0, s4, 48
618 ; VI-NEXT: v_cvt_f64_f32_e32 v[10:11], v4
619 ; VI-NEXT: v_cvt_f64_f32_e32 v[14:15], v5
620 ; VI-NEXT: v_cvt_f32_f16_e32 v4, s1
621 ; VI-NEXT: v_cvt_f64_f32_e32 v[12:13], v12
622 ; VI-NEXT: s_addc_u32 s1, s5, 0
623 ; VI-NEXT: v_cvt_f32_f16_e32 v1, s7
624 ; VI-NEXT: v_mov_b32_e32 v17, s1
625 ; VI-NEXT: v_mov_b32_e32 v16, s0
626 ; VI-NEXT: s_add_u32 s0, s4, 32
627 ; VI-NEXT: v_cvt_f64_f32_e32 v[8:9], v8
628 ; VI-NEXT: s_addc_u32 s1, s5, 0
629 ; VI-NEXT: flat_store_dwordx4 v[16:17], v[12:15]
630 ; VI-NEXT: v_cvt_f64_f32_e32 v[6:7], v1
631 ; VI-NEXT: v_mov_b32_e32 v13, s1
632 ; VI-NEXT: v_cvt_f64_f32_e32 v[4:5], v4
633 ; VI-NEXT: v_mov_b32_e32 v12, s0
634 ; VI-NEXT: s_add_u32 s0, s4, 16
635 ; VI-NEXT: s_addc_u32 s1, s5, 0
636 ; VI-NEXT: v_cvt_f64_f32_e32 v[0:1], v0
637 ; VI-NEXT: flat_store_dwordx4 v[12:13], v[8:11]
638 ; VI-NEXT: s_nop 0
639 ; VI-NEXT: v_mov_b32_e32 v9, s1
640 ; VI-NEXT: v_mov_b32_e32 v8, s0
641 ; VI-NEXT: flat_store_dwordx4 v[8:9], v[4:7]
642 ; VI-NEXT: s_nop 0
643 ; VI-NEXT: v_mov_b32_e32 v4, s4
644 ; VI-NEXT: v_mov_b32_e32 v5, s5
645 ; VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]
646 ; VI-NEXT: s_endpgm
761 ; VI-LABEL: global_extload_v2f16_to_v2f32:
762 ; VI: ; %bb.0:
763 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
764 ; VI-NEXT: s_waitcnt lgkmcnt(0)
765 ; VI-NEXT: v_mov_b32_e32 v0, s2
766 ; VI-NEXT: v_mov_b32_e32 v1, s3
767 ; VI-NEXT: flat_load_dword v1, v[0:1]
768 ; VI-NEXT: v_mov_b32_e32 v2, s0
769 ; VI-NEXT: v_mov_b32_e32 v3, s1
770 ; VI-NEXT: s_waitcnt vmcnt(0)
771 ; VI-NEXT: v_cvt_f32_f16_e32 v0, v1
772 ; VI-NEXT: v_cvt_f32_f16_sdwa v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
773 ; VI-NEXT: flat_store_dwordx2 v[2:3], v[0:1]
774 ; VI-NEXT: s_endpgm
799 ; VI-LABEL: global_extload_v3f16_to_v3f32:
800 ; VI: ; %bb.0:
801 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
802 ; VI-NEXT: s_waitcnt lgkmcnt(0)
803 ; VI-NEXT: v_mov_b32_e32 v0, s2
804 ; VI-NEXT: v_mov_b32_e32 v1, s3
805 ; VI-NEXT: flat_load_dwordx2 v[1:2], v[0:1]
806 ; VI-NEXT: v_mov_b32_e32 v3, s0
807 ; VI-NEXT: v_mov_b32_e32 v4, s1
808 ; VI-NEXT: s_waitcnt vmcnt(0)
809 ; VI-NEXT: v_cvt_f32_f16_e32 v0, v1
810 ; VI-NEXT: v_cvt_f32_f16_e32 v2, v2
811 ; VI-NEXT: v_cvt_f32_f16_sdwa v1, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
812 ; VI-NEXT: flat_store_dwordx3 v[3:4], v[0:2]
813 ; VI-NEXT: s_endpgm
840 ; VI-LABEL: global_extload_v4f16_to_v4f32:
841 ; VI: ; %bb.0:
842 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
843 ; VI-NEXT: s_waitcnt lgkmcnt(0)
844 ; VI-NEXT: v_mov_b32_e32 v0, s2
845 ; VI-NEXT: v_mov_b32_e32 v1, s3
846 ; VI-NEXT: flat_load_dwordx2 v[4:5], v[0:1]
847 ; VI-NEXT: s_waitcnt vmcnt(0)
848 ; VI-NEXT: v_cvt_f32_f16_e32 v0, v4
849 ; VI-NEXT: v_cvt_f32_f16_e32 v2, v5
850 ; VI-NEXT: v_cvt_f32_f16_sdwa v3, v5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
851 ; VI-NEXT: v_cvt_f32_f16_sdwa v1, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
852 ; VI-NEXT: v_mov_b32_e32 v4, s0
853 ; VI-NEXT: v_mov_b32_e32 v5, s1
854 ; VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]
855 ; VI-NEXT: s_endpgm
893 ; VI-LABEL: global_extload_v8f16_to_v8f32:
894 ; VI: ; %bb.0:
895 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
896 ; VI-NEXT: s_waitcnt lgkmcnt(0)
897 ; VI-NEXT: v_mov_b32_e32 v0, s2
898 ; VI-NEXT: v_mov_b32_e32 v1, s3
899 ; VI-NEXT: flat_load_dwordx4 v[0:3], v[0:1]
900 ; VI-NEXT: s_add_u32 s2, s0, 16
901 ; VI-NEXT: s_addc_u32 s3, s1, 0
902 ; VI-NEXT: v_mov_b32_e32 v13, s1
903 ; VI-NEXT: v_mov_b32_e32 v12, s0
904 ; VI-NEXT: s_waitcnt vmcnt(0)
905 ; VI-NEXT: v_cvt_f32_f16_e32 v10, v3
906 ; VI-NEXT: v_cvt_f32_f16_e32 v8, v2
907 ; VI-NEXT: v_cvt_f32_f16_sdwa v11, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
908 ; VI-NEXT: v_cvt_f32_f16_sdwa v9, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
909 ; VI-NEXT: v_cvt_f32_f16_e32 v6, v1
910 ; VI-NEXT: v_cvt_f32_f16_e32 v4, v0
911 ; VI-NEXT: v_cvt_f32_f16_sdwa v7, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
912 ; VI-NEXT: v_cvt_f32_f16_sdwa v5, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
913 ; VI-NEXT: v_mov_b32_e32 v0, s2
914 ; VI-NEXT: v_mov_b32_e32 v1, s3
915 ; VI-NEXT: flat_store_dwordx4 v[0:1], v[8:11]
916 ; VI-NEXT: flat_store_dwordx4 v[12:13], v[4:7]
917 ; VI-NEXT: s_endpgm
983 ; VI-LABEL: global_extload_v16f16_to_v16f32:
984 ; VI: ; %bb.0:
985 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
986 ; VI-NEXT: s_waitcnt lgkmcnt(0)
987 ; VI-NEXT: v_mov_b32_e32 v0, s2
988 ; VI-NEXT: v_mov_b32_e32 v1, s3
989 ; VI-NEXT: flat_load_dwordx4 v[0:3], v[0:1]
990 ; VI-NEXT: s_add_u32 s2, s2, 16
991 ; VI-NEXT: s_addc_u32 s3, s3, 0
992 ; VI-NEXT: v_mov_b32_e32 v5, s3
993 ; VI-NEXT: v_mov_b32_e32 v4, s2
994 ; VI-NEXT: flat_load_dwordx4 v[4:7], v[4:5]
995 ; VI-NEXT: s_add_u32 s2, s0, 16
996 ; VI-NEXT: s_addc_u32 s3, s1, 0
997 ; VI-NEXT: v_mov_b32_e32 v19, s3
998 ; VI-NEXT: v_mov_b32_e32 v18, s2
999 ; VI-NEXT: s_add_u32 s2, s0, 48
1000 ; VI-NEXT: v_mov_b32_e32 v17, s1
1001 ; VI-NEXT: s_addc_u32 s3, s1, 0
1002 ; VI-NEXT: v_mov_b32_e32 v16, s0
1003 ; VI-NEXT: s_add_u32 s0, s0, 32
1004 ; VI-NEXT: s_addc_u32 s1, s1, 0
1005 ; VI-NEXT: v_mov_b32_e32 v21, s3
1006 ; VI-NEXT: v_mov_b32_e32 v20, s2
1007 ; VI-NEXT: s_waitcnt vmcnt(1)
1008 ; VI-NEXT: v_cvt_f32_f16_e32 v14, v3
1009 ; VI-NEXT: v_cvt_f32_f16_e32 v12, v2
1010 ; VI-NEXT: v_cvt_f32_f16_sdwa v15, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1011 ; VI-NEXT: v_cvt_f32_f16_sdwa v13, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1012 ; VI-NEXT: v_cvt_f32_f16_e32 v10, v1
1013 ; VI-NEXT: v_cvt_f32_f16_e32 v8, v0
1014 ; VI-NEXT: v_cvt_f32_f16_sdwa v11, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1015 ; VI-NEXT: v_cvt_f32_f16_sdwa v9, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1016 ; VI-NEXT: flat_store_dwordx4 v[18:19], v[12:15]
1017 ; VI-NEXT: s_waitcnt vmcnt(1)
1018 ; VI-NEXT: v_cvt_f32_f16_e32 v2, v5
1019 ; VI-NEXT: v_cvt_f32_f16_e32 v14, v7
1020 ; VI-NEXT: v_cvt_f32_f16_e32 v12, v6
1021 ; VI-NEXT: v_cvt_f32_f16_sdwa v15, v7 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1022 ; VI-NEXT: v_cvt_f32_f16_sdwa v13, v6 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1023 ; VI-NEXT: v_cvt_f32_f16_e32 v0, v4
1024 ; VI-NEXT: v_cvt_f32_f16_sdwa v3, v5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1025 ; VI-NEXT: v_cvt_f32_f16_sdwa v1, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1026 ; VI-NEXT: v_mov_b32_e32 v5, s1
1027 ; VI-NEXT: v_mov_b32_e32 v4, s0
1028 ; VI-NEXT: flat_store_dwordx4 v[16:17], v[8:11]
1029 ; VI-NEXT: flat_store_dwordx4 v[20:21], v[12:15]
1030 ; VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]
1031 ; VI-NEXT: s_endpgm
1078 ; VI-LABEL: global_extload_v2f16_to_v2f64:
1079 ; VI: ; %bb.0:
1080 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
1081 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1082 ; VI-NEXT: v_mov_b32_e32 v0, s2
1083 ; VI-NEXT: v_mov_b32_e32 v1, s3
1084 ; VI-NEXT: flat_load_dword v0, v[0:1]
1085 ; VI-NEXT: v_mov_b32_e32 v4, s0
1086 ; VI-NEXT: v_mov_b32_e32 v5, s1
1087 ; VI-NEXT: s_waitcnt vmcnt(0)
1088 ; VI-NEXT: v_cvt_f32_f16_e32 v1, v0
1089 ; VI-NEXT: v_cvt_f32_f16_sdwa v2, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1090 ; VI-NEXT: v_cvt_f64_f32_e32 v[0:1], v1
1091 ; VI-NEXT: v_cvt_f64_f32_e32 v[2:3], v2
1092 ; VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]
1093 ; VI-NEXT: s_endpgm
1126 ; VI-LABEL: global_extload_v3f16_to_v3f64:
1127 ; VI: ; %bb.0:
1128 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
1129 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1130 ; VI-NEXT: v_mov_b32_e32 v0, s2
1131 ; VI-NEXT: v_mov_b32_e32 v1, s3
1132 ; VI-NEXT: flat_load_dwordx2 v[0:1], v[0:1]
1133 ; VI-NEXT: s_add_u32 s2, s0, 16
1134 ; VI-NEXT: s_addc_u32 s3, s1, 0
1135 ; VI-NEXT: v_mov_b32_e32 v5, s1
1136 ; VI-NEXT: v_mov_b32_e32 v4, s0
1137 ; VI-NEXT: s_waitcnt vmcnt(0)
1138 ; VI-NEXT: v_cvt_f32_f16_e32 v3, v1
1139 ; VI-NEXT: v_cvt_f32_f16_e32 v2, v0
1140 ; VI-NEXT: v_cvt_f32_f16_sdwa v8, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1141 ; VI-NEXT: v_cvt_f64_f32_e32 v[6:7], v3
1142 ; VI-NEXT: v_cvt_f64_f32_e32 v[0:1], v2
1143 ; VI-NEXT: v_cvt_f64_f32_e32 v[2:3], v8
1144 ; VI-NEXT: v_mov_b32_e32 v9, s3
1145 ; VI-NEXT: v_mov_b32_e32 v8, s2
1146 ; VI-NEXT: flat_store_dwordx2 v[8:9], v[6:7]
1147 ; VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]
1148 ; VI-NEXT: s_endpgm
1184 ; VI-LABEL: global_extload_v4f16_to_v4f64:
1185 ; VI: ; %bb.0:
1186 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
1187 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1188 ; VI-NEXT: v_mov_b32_e32 v0, s2
1189 ; VI-NEXT: v_mov_b32_e32 v1, s3
1190 ; VI-NEXT: flat_load_dwordx2 v[0:1], v[0:1]
1191 ; VI-NEXT: s_add_u32 s2, s0, 16
1192 ; VI-NEXT: s_addc_u32 s3, s1, 0
1193 ; VI-NEXT: v_mov_b32_e32 v9, s1
1194 ; VI-NEXT: v_mov_b32_e32 v8, s0
1195 ; VI-NEXT: s_waitcnt vmcnt(0)
1196 ; VI-NEXT: v_cvt_f32_f16_e32 v3, v1
1197 ; VI-NEXT: v_cvt_f32_f16_sdwa v6, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1198 ; VI-NEXT: v_cvt_f32_f16_e32 v2, v0
1199 ; VI-NEXT: v_cvt_f32_f16_sdwa v10, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1200 ; VI-NEXT: v_cvt_f64_f32_e32 v[4:5], v3
1201 ; VI-NEXT: v_cvt_f64_f32_e32 v[6:7], v6
1202 ; VI-NEXT: v_cvt_f64_f32_e32 v[0:1], v2
1203 ; VI-NEXT: v_cvt_f64_f32_e32 v[2:3], v10
1204 ; VI-NEXT: v_mov_b32_e32 v11, s3
1205 ; VI-NEXT: v_mov_b32_e32 v10, s2
1206 ; VI-NEXT: flat_store_dwordx4 v[10:11], v[4:7]
1207 ; VI-NEXT: flat_store_dwordx4 v[8:9], v[0:3]
1208 ; VI-NEXT: s_endpgm
1264 ; VI-LABEL: global_extload_v8f16_to_v8f64:
1265 ; VI: ; %bb.0:
1266 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
1267 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1268 ; VI-NEXT: v_mov_b32_e32 v0, s2
1269 ; VI-NEXT: v_mov_b32_e32 v1, s3
1270 ; VI-NEXT: flat_load_dwordx4 v[0:3], v[0:1]
1271 ; VI-NEXT: s_add_u32 s2, s0, 48
1272 ; VI-NEXT: s_addc_u32 s3, s1, 0
1273 ; VI-NEXT: v_mov_b32_e32 v8, s3
1274 ; VI-NEXT: v_mov_b32_e32 v7, s2
1275 ; VI-NEXT: s_add_u32 s2, s0, 32
1276 ; VI-NEXT: v_mov_b32_e32 v13, s1
1277 ; VI-NEXT: s_addc_u32 s3, s1, 0
1278 ; VI-NEXT: v_mov_b32_e32 v12, s0
1279 ; VI-NEXT: s_add_u32 s0, s0, 16
1280 ; VI-NEXT: v_mov_b32_e32 v15, s3
1281 ; VI-NEXT: s_addc_u32 s1, s1, 0
1282 ; VI-NEXT: v_mov_b32_e32 v14, s2
1283 ; VI-NEXT: s_waitcnt vmcnt(0)
1284 ; VI-NEXT: v_cvt_f32_f16_e32 v9, v0
1285 ; VI-NEXT: v_cvt_f32_f16_sdwa v16, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1286 ; VI-NEXT: v_cvt_f32_f16_e32 v0, v3
1287 ; VI-NEXT: v_cvt_f32_f16_sdwa v5, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1288 ; VI-NEXT: v_cvt_f32_f16_e32 v10, v1
1289 ; VI-NEXT: v_cvt_f32_f16_e32 v11, v2
1290 ; VI-NEXT: v_cvt_f64_f32_e32 v[3:4], v0
1291 ; VI-NEXT: v_cvt_f64_f32_e32 v[5:6], v5
1292 ; VI-NEXT: v_cvt_f32_f16_sdwa v2, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1293 ; VI-NEXT: v_cvt_f32_f16_sdwa v17, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1294 ; VI-NEXT: v_cvt_f64_f32_e32 v[0:1], v9
1295 ; VI-NEXT: flat_store_dwordx4 v[7:8], v[3:6]
1296 ; VI-NEXT: v_cvt_f64_f32_e32 v[8:9], v11
1297 ; VI-NEXT: v_cvt_f64_f32_e32 v[4:5], v10
1298 ; VI-NEXT: v_cvt_f64_f32_e32 v[10:11], v2
1299 ; VI-NEXT: v_cvt_f64_f32_e32 v[6:7], v17
1300 ; VI-NEXT: v_cvt_f64_f32_e32 v[2:3], v16
1301 ; VI-NEXT: v_mov_b32_e32 v17, s1
1302 ; VI-NEXT: v_mov_b32_e32 v16, s0
1303 ; VI-NEXT: flat_store_dwordx4 v[14:15], v[8:11]
1304 ; VI-NEXT: flat_store_dwordx4 v[16:17], v[4:7]
1305 ; VI-NEXT: flat_store_dwordx4 v[12:13], v[0:3]
1306 ; VI-NEXT: s_endpgm
1408 ; VI-LABEL: global_extload_v16f16_to_v16f64:
1409 ; VI: ; %bb.0:
1410 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
1411 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1412 ; VI-NEXT: v_mov_b32_e32 v0, s2
1413 ; VI-NEXT: v_mov_b32_e32 v1, s3
1414 ; VI-NEXT: flat_load_dwordx4 v[4:7], v[0:1]
1415 ; VI-NEXT: s_add_u32 s2, s2, 16
1416 ; VI-NEXT: s_addc_u32 s3, s3, 0
1417 ; VI-NEXT: v_mov_b32_e32 v0, s2
1418 ; VI-NEXT: v_mov_b32_e32 v1, s3
1419 ; VI-NEXT: flat_load_dwordx4 v[0:3], v[0:1]
1420 ; VI-NEXT: s_add_u32 s2, s0, 48
1421 ; VI-NEXT: s_addc_u32 s3, s1, 0
1422 ; VI-NEXT: v_mov_b32_e32 v14, s3
1423 ; VI-NEXT: v_mov_b32_e32 v13, s2
1424 ; VI-NEXT: s_add_u32 s2, s0, 32
1425 ; VI-NEXT: s_addc_u32 s3, s1, 0
1426 ; VI-NEXT: v_mov_b32_e32 v16, s3
1427 ; VI-NEXT: v_mov_b32_e32 v15, s2
1428 ; VI-NEXT: s_add_u32 s2, s0, 16
1429 ; VI-NEXT: s_addc_u32 s3, s1, 0
1430 ; VI-NEXT: v_mov_b32_e32 v18, s3
1431 ; VI-NEXT: v_mov_b32_e32 v17, s2
1432 ; VI-NEXT: s_add_u32 s2, s0, 0x50
1433 ; VI-NEXT: v_mov_b32_e32 v12, s1
1434 ; VI-NEXT: s_addc_u32 s3, s1, 0
1435 ; VI-NEXT: v_mov_b32_e32 v11, s0
1436 ; VI-NEXT: s_waitcnt vmcnt(1)
1437 ; VI-NEXT: v_cvt_f32_f16_e32 v8, v7
1438 ; VI-NEXT: v_cvt_f32_f16_sdwa v9, v7 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1439 ; VI-NEXT: v_cvt_f64_f32_e32 v[7:8], v8
1440 ; VI-NEXT: v_cvt_f64_f32_e32 v[9:10], v9
1441 ; VI-NEXT: flat_store_dwordx4 v[13:14], v[7:10]
1442 ; VI-NEXT: s_nop 0
1443 ; VI-NEXT: v_cvt_f32_f16_e32 v7, v6
1444 ; VI-NEXT: v_cvt_f32_f16_sdwa v8, v6 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1445 ; VI-NEXT: s_waitcnt vmcnt(1)
1446 ; VI-NEXT: v_cvt_f32_f16_e32 v10, v2
1447 ; VI-NEXT: v_mov_b32_e32 v14, s3
1448 ; VI-NEXT: v_cvt_f64_f32_e32 v[6:7], v7
1449 ; VI-NEXT: v_cvt_f64_f32_e32 v[8:9], v8
1450 ; VI-NEXT: v_mov_b32_e32 v13, s2
1451 ; VI-NEXT: s_add_u32 s2, s0, 64
1452 ; VI-NEXT: s_addc_u32 s3, s1, 0
1453 ; VI-NEXT: flat_store_dwordx4 v[15:16], v[6:9]
1454 ; VI-NEXT: v_mov_b32_e32 v16, s3
1455 ; VI-NEXT: v_cvt_f32_f16_e32 v6, v5
1456 ; VI-NEXT: v_cvt_f32_f16_sdwa v7, v5 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1457 ; VI-NEXT: v_cvt_f32_f16_e32 v8, v4
1458 ; VI-NEXT: v_cvt_f32_f16_sdwa v9, v4 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1459 ; VI-NEXT: v_cvt_f64_f32_e32 v[4:5], v6
1460 ; VI-NEXT: v_cvt_f64_f32_e32 v[6:7], v7
1461 ; VI-NEXT: v_mov_b32_e32 v15, s2
1462 ; VI-NEXT: s_add_u32 s2, s0, 0x70
1463 ; VI-NEXT: s_addc_u32 s3, s1, 0
1464 ; VI-NEXT: flat_store_dwordx4 v[17:18], v[4:7]
1465 ; VI-NEXT: v_cvt_f32_f16_sdwa v17, v3 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1466 ; VI-NEXT: v_cvt_f64_f32_e32 v[4:5], v8
1467 ; VI-NEXT: v_cvt_f64_f32_e32 v[6:7], v9
1468 ; VI-NEXT: v_cvt_f32_f16_sdwa v9, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1469 ; VI-NEXT: v_cvt_f32_f16_sdwa v8, v2 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1470 ; VI-NEXT: v_cvt_f32_f16_e32 v2, v1
1471 ; VI-NEXT: flat_store_dwordx4 v[11:12], v[4:7]
1472 ; VI-NEXT: v_cvt_f32_f16_sdwa v11, v0 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:WORD_1
1473 ; VI-NEXT: v_cvt_f32_f16_e32 v7, v3
1474 ; VI-NEXT: v_cvt_f64_f32_e32 v[3:4], v9
1475 ; VI-NEXT: v_cvt_f32_f16_e32 v9, v0
1476 ; VI-NEXT: v_cvt_f64_f32_e32 v[1:2], v2
1477 ; VI-NEXT: v_cvt_f64_f32_e32 v[5:6], v10
1478 ; VI-NEXT: v_cvt_f64_f32_e32 v[11:12], v11
1479 ; VI-NEXT: v_cvt_f64_f32_e32 v[9:10], v9
1480 ; VI-NEXT: s_add_u32 s0, s0, 0x60
1481 ; VI-NEXT: flat_store_dwordx4 v[13:14], v[1:4]
1482 ; VI-NEXT: s_addc_u32 s1, s1, 0
1483 ; VI-NEXT: v_cvt_f64_f32_e32 v[0:1], v7
1484 ; VI-NEXT: v_cvt_f64_f32_e32 v[2:3], v17
1485 ; VI-NEXT: v_cvt_f64_f32_e32 v[7:8], v8
1486 ; VI-NEXT: v_mov_b32_e32 v20, s3
1487 ; VI-NEXT: v_mov_b32_e32 v14, s1
1488 ; VI-NEXT: v_mov_b32_e32 v19, s2
1489 ; VI-NEXT: v_mov_b32_e32 v13, s0
1490 ; VI-NEXT: flat_store_dwordx4 v[15:16], v[9:12]
1491 ; VI-NEXT: flat_store_dwordx4 v[19:20], v[0:3]
1492 ; VI-NEXT: flat_store_dwordx4 v[13:14], v[5:8]
1493 ; VI-NEXT: s_endpgm
1538 ; VI-LABEL: global_truncstore_v2f32_to_v2f16:
1539 ; VI: ; %bb.0:
1540 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
1541 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1542 ; VI-NEXT: v_mov_b32_e32 v0, s2
1543 ; VI-NEXT: v_mov_b32_e32 v1, s3
1544 ; VI-NEXT: flat_load_dwordx2 v[0:1], v[0:1]
1545 ; VI-NEXT: s_waitcnt vmcnt(0)
1546 ; VI-NEXT: v_cvt_f16_f32_sdwa v2, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD
1547 ; VI-NEXT: v_cvt_f16_f32_e32 v3, v0
1548 ; VI-NEXT: v_mov_b32_e32 v0, s0
1549 ; VI-NEXT: v_mov_b32_e32 v1, s1
1550 ; VI-NEXT: v_or_b32_e32 v2, v3, v2
1551 ; VI-NEXT: flat_store_dword v[0:1], v2
1552 ; VI-NEXT: s_endpgm
1583 ; VI-LABEL: global_truncstore_v3f32_to_v3f16:
1584 ; VI: ; %bb.0:
1585 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
1586 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1587 ; VI-NEXT: v_mov_b32_e32 v0, s2
1588 ; VI-NEXT: v_mov_b32_e32 v1, s3
1589 ; VI-NEXT: flat_load_dwordx3 v[0:2], v[0:1]
1590 ; VI-NEXT: s_add_u32 s2, s0, 4
1591 ; VI-NEXT: s_addc_u32 s3, s1, 0
1592 ; VI-NEXT: s_waitcnt vmcnt(0)
1593 ; VI-NEXT: v_cvt_f16_f32_e32 v2, v2
1594 ; VI-NEXT: v_cvt_f16_f32_sdwa v3, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD
1595 ; VI-NEXT: v_cvt_f16_f32_e32 v4, v0
1596 ; VI-NEXT: v_mov_b32_e32 v0, s2
1597 ; VI-NEXT: v_mov_b32_e32 v1, s3
1598 ; VI-NEXT: flat_store_short v[0:1], v2
1599 ; VI-NEXT: v_mov_b32_e32 v0, s0
1600 ; VI-NEXT: v_or_b32_e32 v3, v4, v3
1601 ; VI-NEXT: v_mov_b32_e32 v1, s1
1602 ; VI-NEXT: flat_store_dword v[0:1], v3
1603 ; VI-NEXT: s_endpgm
1632 ; VI-LABEL: global_truncstore_v4f32_to_v4f16:
1633 ; VI: ; %bb.0:
1634 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
1635 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1636 ; VI-NEXT: v_mov_b32_e32 v0, s2
1637 ; VI-NEXT: v_mov_b32_e32 v1, s3
1638 ; VI-NEXT: flat_load_dwordx4 v[0:3], v[0:1]
1639 ; VI-NEXT: s_waitcnt vmcnt(0)
1640 ; VI-NEXT: v_cvt_f16_f32_sdwa v3, v3 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD
1641 ; VI-NEXT: v_cvt_f16_f32_e32 v2, v2
1642 ; VI-NEXT: v_cvt_f16_f32_sdwa v4, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD
1643 ; VI-NEXT: v_cvt_f16_f32_e32 v5, v0
1644 ; VI-NEXT: v_mov_b32_e32 v0, s0
1645 ; VI-NEXT: v_mov_b32_e32 v1, s1
1646 ; VI-NEXT: v_or_b32_e32 v3, v2, v3
1647 ; VI-NEXT: v_or_b32_e32 v2, v5, v4
1648 ; VI-NEXT: flat_store_dwordx2 v[0:1], v[2:3]
1649 ; VI-NEXT: s_endpgm
1692 ; VI-LABEL: global_truncstore_v8f32_to_v8f16:
1693 ; VI: ; %bb.0:
1694 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
1695 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1696 ; VI-NEXT: v_mov_b32_e32 v0, s2
1697 ; VI-NEXT: v_mov_b32_e32 v1, s3
1698 ; VI-NEXT: s_add_u32 s2, s2, 16
1699 ; VI-NEXT: s_addc_u32 s3, s3, 0
1700 ; VI-NEXT: v_mov_b32_e32 v5, s3
1701 ; VI-NEXT: v_mov_b32_e32 v4, s2
1702 ; VI-NEXT: flat_load_dwordx4 v[0:3], v[0:1]
1703 ; VI-NEXT: flat_load_dwordx4 v[4:7], v[4:5]
1704 ; VI-NEXT: v_mov_b32_e32 v8, s0
1705 ; VI-NEXT: v_mov_b32_e32 v9, s1
1706 ; VI-NEXT: s_waitcnt vmcnt(1)
1707 ; VI-NEXT: v_cvt_f16_f32_sdwa v3, v3 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD
1708 ; VI-NEXT: v_cvt_f16_f32_e32 v2, v2
1709 ; VI-NEXT: v_cvt_f16_f32_sdwa v10, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD
1710 ; VI-NEXT: v_cvt_f16_f32_e32 v0, v0
1711 ; VI-NEXT: s_waitcnt vmcnt(0)
1712 ; VI-NEXT: v_cvt_f16_f32_sdwa v7, v7 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD
1713 ; VI-NEXT: v_cvt_f16_f32_e32 v6, v6
1714 ; VI-NEXT: v_cvt_f16_f32_sdwa v5, v5 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD
1715 ; VI-NEXT: v_cvt_f16_f32_e32 v4, v4
1716 ; VI-NEXT: v_or_b32_e32 v1, v2, v3
1717 ; VI-NEXT: v_or_b32_e32 v0, v0, v10
1718 ; VI-NEXT: v_or_b32_e32 v3, v6, v7
1719 ; VI-NEXT: v_or_b32_e32 v2, v4, v5
1720 ; VI-NEXT: flat_store_dwordx4 v[8:9], v[0:3]
1721 ; VI-NEXT: s_endpgm
1797 ; VI-LABEL: global_truncstore_v16f32_to_v16f16:
1798 ; VI: ; %bb.0:
1799 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
1800 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1801 ; VI-NEXT: s_add_u32 s4, s2, 32
1802 ; VI-NEXT: s_addc_u32 s5, s3, 0
1803 ; VI-NEXT: v_mov_b32_e32 v0, s4
1804 ; VI-NEXT: v_mov_b32_e32 v1, s5
1805 ; VI-NEXT: s_add_u32 s4, s2, 48
1806 ; VI-NEXT: s_addc_u32 s5, s3, 0
1807 ; VI-NEXT: v_mov_b32_e32 v9, s3
1808 ; VI-NEXT: v_mov_b32_e32 v4, s4
1809 ; VI-NEXT: v_mov_b32_e32 v8, s2
1810 ; VI-NEXT: s_add_u32 s2, s2, 16
1811 ; VI-NEXT: v_mov_b32_e32 v5, s5
1812 ; VI-NEXT: s_addc_u32 s3, s3, 0
1813 ; VI-NEXT: flat_load_dwordx4 v[0:3], v[0:1]
1814 ; VI-NEXT: flat_load_dwordx4 v[4:7], v[4:5]
1815 ; VI-NEXT: v_mov_b32_e32 v13, s3
1816 ; VI-NEXT: v_mov_b32_e32 v12, s2
1817 ; VI-NEXT: flat_load_dwordx4 v[8:11], v[8:9]
1818 ; VI-NEXT: flat_load_dwordx4 v[12:15], v[12:13]
1819 ; VI-NEXT: s_add_u32 s2, s0, 16
1820 ; VI-NEXT: s_addc_u32 s3, s1, 0
1821 ; VI-NEXT: s_waitcnt vmcnt(3)
1822 ; VI-NEXT: v_cvt_f16_f32_sdwa v3, v3 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD
1823 ; VI-NEXT: v_cvt_f16_f32_e32 v2, v2
1824 ; VI-NEXT: v_cvt_f16_f32_sdwa v16, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD
1825 ; VI-NEXT: v_cvt_f16_f32_e32 v0, v0
1826 ; VI-NEXT: s_waitcnt vmcnt(2)
1827 ; VI-NEXT: v_cvt_f16_f32_sdwa v7, v7 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD
1828 ; VI-NEXT: v_cvt_f16_f32_e32 v6, v6
1829 ; VI-NEXT: v_cvt_f16_f32_sdwa v17, v5 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD
1830 ; VI-NEXT: v_cvt_f16_f32_e32 v18, v4
1831 ; VI-NEXT: s_waitcnt vmcnt(1)
1832 ; VI-NEXT: v_cvt_f16_f32_sdwa v11, v11 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD
1833 ; VI-NEXT: v_cvt_f16_f32_e32 v10, v10
1834 ; VI-NEXT: v_cvt_f16_f32_sdwa v9, v9 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD
1835 ; VI-NEXT: v_cvt_f16_f32_e32 v8, v8
1836 ; VI-NEXT: s_waitcnt vmcnt(0)
1837 ; VI-NEXT: v_cvt_f16_f32_sdwa v15, v15 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD
1838 ; VI-NEXT: v_cvt_f16_f32_e32 v14, v14
1839 ; VI-NEXT: v_cvt_f16_f32_sdwa v13, v13 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD
1840 ; VI-NEXT: v_cvt_f16_f32_e32 v12, v12
1841 ; VI-NEXT: v_mov_b32_e32 v5, s3
1842 ; VI-NEXT: v_mov_b32_e32 v4, s2
1843 ; VI-NEXT: v_or_b32_e32 v1, v2, v3
1844 ; VI-NEXT: v_or_b32_e32 v0, v0, v16
1845 ; VI-NEXT: v_or_b32_e32 v3, v6, v7
1846 ; VI-NEXT: v_or_b32_e32 v2, v18, v17
1847 ; VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]
1848 ; VI-NEXT: v_mov_b32_e32 v5, s1
1849 ; VI-NEXT: v_or_b32_e32 v1, v10, v11
1850 ; VI-NEXT: v_or_b32_e32 v0, v8, v9
1851 ; VI-NEXT: v_or_b32_e32 v3, v14, v15
1852 ; VI-NEXT: v_or_b32_e32 v2, v12, v13
1853 ; VI-NEXT: v_mov_b32_e32 v4, s0
1854 ; VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]
1855 ; VI-NEXT: s_endpgm
1880 ; VI-LABEL: fadd_f16:
1881 ; VI: ; %bb.0:
1882 ; VI-NEXT: s_load_dword s2, s[4:5], 0x8
1883 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x0
1884 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1885 ; VI-NEXT: s_lshr_b32 s3, s2, 16
1886 ; VI-NEXT: v_mov_b32_e32 v0, s3
1887 ; VI-NEXT: v_add_f16_e32 v2, s2, v0
1888 ; VI-NEXT: v_mov_b32_e32 v0, s0
1889 ; VI-NEXT: v_mov_b32_e32 v1, s1
1890 ; VI-NEXT: flat_store_short v[0:1], v2
1891 ; VI-NEXT: s_endpgm
1921 ; VI-LABEL: fadd_v2f16:
1922 ; VI: ; %bb.0:
1923 ; VI-NEXT: s_load_dwordx2 s[0:1], s[4:5], 0x8
1924 ; VI-NEXT: s_load_dwordx2 s[2:3], s[4:5], 0x0
1925 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1926 ; VI-NEXT: s_lshr_b32 s4, s1, 16
1927 ; VI-NEXT: s_lshr_b32 s5, s0, 16
1928 ; VI-NEXT: v_mov_b32_e32 v0, s1
1929 ; VI-NEXT: v_mov_b32_e32 v1, s4
1930 ; VI-NEXT: v_mov_b32_e32 v2, s5
1931 ; VI-NEXT: v_add_f16_sdwa v1, v2, v1 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_se…
1932 ; VI-NEXT: v_add_f16_e32 v0, s0, v0
1933 ; VI-NEXT: v_or_b32_e32 v2, v0, v1
1934 ; VI-NEXT: v_mov_b32_e32 v0, s2
1935 ; VI-NEXT: v_mov_b32_e32 v1, s3
1936 ; VI-NEXT: flat_store_dword v[0:1], v2
1937 ; VI-NEXT: s_endpgm
1981 ; VI-LABEL: fadd_v4f16:
1982 ; VI: ; %bb.0:
1983 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x0
1984 ; VI-NEXT: s_waitcnt lgkmcnt(0)
1985 ; VI-NEXT: v_mov_b32_e32 v0, s2
1986 ; VI-NEXT: v_mov_b32_e32 v1, s3
1987 ; VI-NEXT: flat_load_dwordx4 v[0:3], v[0:1]
1988 ; VI-NEXT: v_mov_b32_e32 v4, s0
1989 ; VI-NEXT: v_mov_b32_e32 v5, s1
1990 ; VI-NEXT: s_waitcnt vmcnt(0)
1991 ; VI-NEXT: v_add_f16_sdwa v6, v1, v3 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_s…
1992 ; VI-NEXT: v_add_f16_e32 v1, v1, v3
1993 ; VI-NEXT: v_add_f16_sdwa v3, v0, v2 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:WORD_1 src1_s…
1994 ; VI-NEXT: v_add_f16_e32 v0, v0, v2
1995 ; VI-NEXT: v_or_b32_e32 v1, v1, v6
1996 ; VI-NEXT: v_or_b32_e32 v0, v0, v3
1997 ; VI-NEXT: flat_store_dwordx2 v[4:5], v[0:1]
1998 ; VI-NEXT: s_endpgm
2067 ; VI-LABEL: fadd_v8f16:
2068 ; VI: ; %bb.0:
2069 ; VI-NEXT: s_load_dwordx4 s[0:3], s[4:5], 0x20
2070 ; VI-NEXT: s_load_dwordx4 s[8:11], s[4:5], 0x10
2071 ; VI-NEXT: s_load_dwordx2 s[4:5], s[4:5], 0x0
2072 ; VI-NEXT: s_waitcnt lgkmcnt(0)
2073 ; VI-NEXT: s_lshr_b32 s6, s3, 16
2074 ; VI-NEXT: s_lshr_b32 s7, s11, 16
2075 ; VI-NEXT: v_mov_b32_e32 v0, s6
2076 ; VI-NEXT: v_mov_b32_e32 v1, s7
2077 ; VI-NEXT: v_add_f16_sdwa v0, v1, v0 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_se…
2078 ; VI-NEXT: v_mov_b32_e32 v1, s3
2079 ; VI-NEXT: v_add_f16_e32 v1, s11, v1
2080 ; VI-NEXT: s_lshr_b32 s3, s2, 16
2081 ; VI-NEXT: s_lshr_b32 s6, s10, 16
2082 ; VI-NEXT: v_or_b32_e32 v3, v1, v0
2083 ; VI-NEXT: v_mov_b32_e32 v0, s3
2084 ; VI-NEXT: v_mov_b32_e32 v1, s6
2085 ; VI-NEXT: v_add_f16_sdwa v0, v1, v0 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_se…
2086 ; VI-NEXT: v_mov_b32_e32 v1, s2
2087 ; VI-NEXT: v_add_f16_e32 v1, s10, v1
2088 ; VI-NEXT: s_lshr_b32 s2, s1, 16
2089 ; VI-NEXT: s_lshr_b32 s3, s9, 16
2090 ; VI-NEXT: v_or_b32_e32 v2, v1, v0
2091 ; VI-NEXT: v_mov_b32_e32 v0, s2
2092 ; VI-NEXT: v_mov_b32_e32 v1, s3
2093 ; VI-NEXT: v_add_f16_sdwa v0, v1, v0 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_se…
2094 ; VI-NEXT: v_mov_b32_e32 v1, s1
2095 ; VI-NEXT: v_add_f16_e32 v1, s9, v1
2096 ; VI-NEXT: s_lshr_b32 s1, s0, 16
2097 ; VI-NEXT: s_lshr_b32 s2, s8, 16
2098 ; VI-NEXT: v_or_b32_e32 v1, v1, v0
2099 ; VI-NEXT: v_mov_b32_e32 v0, s1
2100 ; VI-NEXT: v_mov_b32_e32 v4, s2
2101 ; VI-NEXT: v_add_f16_sdwa v0, v4, v0 dst_sel:WORD_1 dst_unused:UNUSED_PAD src0_sel:DWORD src1_se…
2102 ; VI-NEXT: v_mov_b32_e32 v4, s0
2103 ; VI-NEXT: v_add_f16_e32 v4, s8, v4
2104 ; VI-NEXT: v_or_b32_e32 v0, v4, v0
2105 ; VI-NEXT: v_mov_b32_e32 v4, s4
2106 ; VI-NEXT: v_mov_b32_e32 v5, s5
2107 ; VI-NEXT: flat_store_dwordx4 v[4:5], v[0:3]
2108 ; VI-NEXT: s_endpgm