Lines Matching refs:CI

2 …verify-machineinstrs -mattr=+load-store-opt < %s | FileCheck -enable-var-scope --check-prefix=CI %s
13 ; CI-LABEL: simple_read2_f32:
14 ; CI: ; %bb.0:
15 ; CI-NEXT: v_lshlrev_b32_e32 v0, 2, v0
16 ; CI-NEXT: s_mov_b32 m0, -1
17 ; CI-NEXT: ds_read2_b32 v[1:2], v0 offset1:8
18 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
19 ; CI-NEXT: s_mov_b32 s3, 0xf000
20 ; CI-NEXT: s_mov_b32 s2, 0
21 ; CI-NEXT: s_waitcnt lgkmcnt(0)
22 ; CI-NEXT: v_add_f32_e32 v2, v1, v2
23 ; CI-NEXT: v_mov_b32_e32 v1, 0
24 ; CI-NEXT: buffer_store_dword v2, v[0:1], s[0:3], 0 addr64
25 ; CI-NEXT: s_endpgm
49 ; CI-LABEL: simple_read2_f32_max_offset:
50 ; CI: ; %bb.0:
51 ; CI-NEXT: v_lshlrev_b32_e32 v0, 2, v0
52 ; CI-NEXT: s_mov_b32 m0, -1
53 ; CI-NEXT: ds_read2_b32 v[1:2], v0 offset1:255
54 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
55 ; CI-NEXT: s_mov_b32 s3, 0xf000
56 ; CI-NEXT: s_mov_b32 s2, 0
57 ; CI-NEXT: s_waitcnt lgkmcnt(0)
58 ; CI-NEXT: v_add_f32_e32 v2, v1, v2
59 ; CI-NEXT: v_mov_b32_e32 v1, 0
60 ; CI-NEXT: buffer_store_dword v2, v[0:1], s[0:3], 0 addr64
61 ; CI-NEXT: s_endpgm
85 ; CI-LABEL: simple_read2_f32_too_far:
86 ; CI: ; %bb.0:
87 ; CI-NEXT: v_lshlrev_b32_e32 v0, 2, v0
88 ; CI-NEXT: s_mov_b32 m0, -1
89 ; CI-NEXT: ds_read_b32 v1, v0
90 ; CI-NEXT: ds_read_b32 v2, v0 offset:1028
91 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
92 ; CI-NEXT: s_mov_b32 s3, 0xf000
93 ; CI-NEXT: s_mov_b32 s2, 0
94 ; CI-NEXT: s_waitcnt lgkmcnt(0)
95 ; CI-NEXT: v_add_f32_e32 v2, v1, v2
96 ; CI-NEXT: v_mov_b32_e32 v1, 0
97 ; CI-NEXT: buffer_store_dword v2, v[0:1], s[0:3], 0 addr64
98 ; CI-NEXT: s_endpgm
123 ; CI-LABEL: simple_read2_f32_x2:
124 ; CI: ; %bb.0:
125 ; CI-NEXT: v_lshlrev_b32_e32 v0, 2, v0
126 ; CI-NEXT: s_mov_b32 m0, -1
127 ; CI-NEXT: ds_read2_b32 v[1:2], v0 offset1:8
128 ; CI-NEXT: ds_read2_b32 v[3:4], v0 offset0:11 offset1:27
129 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
130 ; CI-NEXT: s_mov_b32 s3, 0xf000
131 ; CI-NEXT: s_mov_b32 s2, 0
132 ; CI-NEXT: s_waitcnt lgkmcnt(0)
133 ; CI-NEXT: v_add_f32_e32 v1, v1, v2
134 ; CI-NEXT: v_add_f32_e32 v2, v3, v4
135 ; CI-NEXT: v_add_f32_e32 v2, v1, v2
136 ; CI-NEXT: v_mov_b32_e32 v1, 0
137 ; CI-NEXT: buffer_store_dword v2, v[0:1], s[0:3], 0 addr64
138 ; CI-NEXT: s_endpgm
179 ; CI-LABEL: simple_read2_f32_x2_barrier:
180 ; CI: ; %bb.0:
181 ; CI-NEXT: v_lshlrev_b32_e32 v0, 2, v0
182 ; CI-NEXT: s_mov_b32 m0, -1
183 ; CI-NEXT: ds_read2_b32 v[1:2], v0 offset1:8
184 ; CI-NEXT: s_waitcnt lgkmcnt(0)
185 ; CI-NEXT: s_barrier
186 ; CI-NEXT: ds_read2_b32 v[3:4], v0 offset0:11 offset1:27
187 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
188 ; CI-NEXT: s_mov_b32 s3, 0xf000
189 ; CI-NEXT: v_add_f32_e32 v1, v1, v2
190 ; CI-NEXT: s_mov_b32 s2, 0
191 ; CI-NEXT: s_waitcnt lgkmcnt(0)
192 ; CI-NEXT: v_add_f32_e32 v2, v3, v4
193 ; CI-NEXT: v_add_f32_e32 v2, v1, v2
194 ; CI-NEXT: v_mov_b32_e32 v1, 0
195 ; CI-NEXT: buffer_store_dword v2, v[0:1], s[0:3], 0 addr64
196 ; CI-NEXT: s_endpgm
242 ; CI-LABEL: simple_read2_f32_x2_nonzero_base:
243 ; CI: ; %bb.0:
244 ; CI-NEXT: v_lshlrev_b32_e32 v0, 2, v0
245 ; CI-NEXT: s_mov_b32 m0, -1
246 ; CI-NEXT: ds_read2_b32 v[1:2], v0 offset0:2 offset1:8
247 ; CI-NEXT: ds_read2_b32 v[3:4], v0 offset0:11 offset1:27
248 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
249 ; CI-NEXT: s_mov_b32 s3, 0xf000
250 ; CI-NEXT: s_mov_b32 s2, 0
251 ; CI-NEXT: s_waitcnt lgkmcnt(0)
252 ; CI-NEXT: v_add_f32_e32 v1, v1, v2
253 ; CI-NEXT: v_add_f32_e32 v2, v3, v4
254 ; CI-NEXT: v_add_f32_e32 v2, v1, v2
255 ; CI-NEXT: v_mov_b32_e32 v1, 0
256 ; CI-NEXT: buffer_store_dword v2, v[0:1], s[0:3], 0 addr64 offset:8
257 ; CI-NEXT: s_endpgm
302 ; CI-LABEL: read2_ptr_is_subreg_arg_f32:
303 ; CI: ; %bb.0:
304 ; CI-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x2
305 ; CI-NEXT: s_mov_b32 m0, -1
306 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
307 ; CI-NEXT: v_lshlrev_b32_e32 v0, 2, v0
308 ; CI-NEXT: s_waitcnt lgkmcnt(0)
309 ; CI-NEXT: v_mov_b32_e32 v1, s2
310 ; CI-NEXT: v_mov_b32_e32 v2, s3
311 ; CI-NEXT: ds_read_b32 v1, v1 offset:32
312 ; CI-NEXT: ds_read_b32 v2, v2
313 ; CI-NEXT: s_mov_b32 s3, 0xf000
314 ; CI-NEXT: s_mov_b32 s2, 0
315 ; CI-NEXT: s_waitcnt lgkmcnt(0)
316 ; CI-NEXT: v_add_f32_e32 v2, v1, v2
317 ; CI-NEXT: v_mov_b32_e32 v1, 0
318 ; CI-NEXT: buffer_store_dword v2, v[0:1], s[0:3], 0 addr64
319 ; CI-NEXT: s_endpgm
355 ; CI-LABEL: read2_ptr_is_subreg_arg_offset_f32:
356 ; CI: ; %bb.0:
357 ; CI-NEXT: s_load_dwordx2 s[2:3], s[0:1], 0x2
358 ; CI-NEXT: s_mov_b32 m0, -1
359 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
360 ; CI-NEXT: v_lshlrev_b32_e32 v0, 2, v0
361 ; CI-NEXT: s_waitcnt lgkmcnt(0)
362 ; CI-NEXT: v_mov_b32_e32 v1, s2
363 ; CI-NEXT: v_mov_b32_e32 v2, s3
364 ; CI-NEXT: ds_read_b32 v1, v1 offset:32
365 ; CI-NEXT: ds_read_b32 v2, v2 offset:32
366 ; CI-NEXT: s_mov_b32 s3, 0xf000
367 ; CI-NEXT: s_mov_b32 s2, 0
368 ; CI-NEXT: s_waitcnt lgkmcnt(0)
369 ; CI-NEXT: v_add_f32_e32 v2, v1, v2
370 ; CI-NEXT: v_mov_b32_e32 v1, 0
371 ; CI-NEXT: buffer_store_dword v2, v[0:1], s[0:3], 0 addr64
372 ; CI-NEXT: s_endpgm
408 ; CI-LABEL: read2_ptr_is_subreg_f32:
409 ; CI: ; %bb.0:
410 ; CI-NEXT: v_lshlrev_b32_e32 v0, 2, v0
411 ; CI-NEXT: s_mov_b32 m0, -1
412 ; CI-NEXT: ds_read2_b32 v[1:2], v0 offset1:8
413 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
414 ; CI-NEXT: s_mov_b32 s3, 0xf000
415 ; CI-NEXT: s_mov_b32 s2, 0
416 ; CI-NEXT: s_waitcnt lgkmcnt(0)
417 ; CI-NEXT: v_add_f32_e32 v2, v1, v2
418 ; CI-NEXT: v_mov_b32_e32 v1, 0
419 ; CI-NEXT: buffer_store_dword v2, v[0:1], s[0:3], 0 addr64
420 ; CI-NEXT: s_endpgm
450 ; CI-LABEL: simple_read2_f32_volatile_0:
451 ; CI: ; %bb.0:
452 ; CI-NEXT: v_lshlrev_b32_e32 v0, 2, v0
453 ; CI-NEXT: s_mov_b32 m0, -1
454 ; CI-NEXT: ds_read_b32 v1, v0
455 ; CI-NEXT: ds_read_b32 v2, v0 offset:32
456 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
457 ; CI-NEXT: s_mov_b32 s3, 0xf000
458 ; CI-NEXT: s_mov_b32 s2, 0
459 ; CI-NEXT: s_waitcnt lgkmcnt(0)
460 ; CI-NEXT: v_add_f32_e32 v2, v1, v2
461 ; CI-NEXT: v_mov_b32_e32 v1, 0
462 ; CI-NEXT: buffer_store_dword v2, v[0:1], s[0:3], 0 addr64
463 ; CI-NEXT: s_endpgm
488 ; CI-LABEL: simple_read2_f32_volatile_1:
489 ; CI: ; %bb.0:
490 ; CI-NEXT: v_lshlrev_b32_e32 v0, 2, v0
491 ; CI-NEXT: s_mov_b32 m0, -1
492 ; CI-NEXT: ds_read_b32 v1, v0
493 ; CI-NEXT: ds_read_b32 v2, v0 offset:32
494 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
495 ; CI-NEXT: s_mov_b32 s3, 0xf000
496 ; CI-NEXT: s_mov_b32 s2, 0
497 ; CI-NEXT: s_waitcnt lgkmcnt(0)
498 ; CI-NEXT: v_add_f32_e32 v2, v1, v2
499 ; CI-NEXT: v_mov_b32_e32 v1, 0
500 ; CI-NEXT: buffer_store_dword v2, v[0:1], s[0:3], 0 addr64
501 ; CI-NEXT: s_endpgm
527 ; CI-LABEL: unaligned_read2_f32:
528 ; CI: ; %bb.0:
529 ; CI-NEXT: s_load_dword s2, s[0:1], 0x2
530 ; CI-NEXT: v_lshlrev_b32_e32 v0, 2, v0
531 ; CI-NEXT: s_mov_b32 m0, -1
532 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
533 ; CI-NEXT: s_mov_b32 s3, 0xf000
534 ; CI-NEXT: s_waitcnt lgkmcnt(0)
535 ; CI-NEXT: v_add_i32_e32 v1, vcc, s2, v0
536 ; CI-NEXT: ds_read_u8 v2, v1 offset:34
537 ; CI-NEXT: ds_read_u8 v3, v1 offset:32
538 ; CI-NEXT: ds_read_u8 v4, v1 offset:3
539 ; CI-NEXT: ds_read_u8 v5, v1 offset:2
540 ; CI-NEXT: ds_read_u8 v6, v1 offset:1
541 ; CI-NEXT: ds_read_u8 v7, v1
542 ; CI-NEXT: ds_read_u8 v8, v1 offset:33
543 ; CI-NEXT: ds_read_u8 v1, v1 offset:35
544 ; CI-NEXT: s_waitcnt lgkmcnt(5)
545 ; CI-NEXT: v_lshlrev_b32_e32 v4, 8, v4
546 ; CI-NEXT: s_waitcnt lgkmcnt(3)
547 ; CI-NEXT: v_lshlrev_b32_e32 v6, 8, v6
548 ; CI-NEXT: v_or_b32_e32 v4, v4, v5
549 ; CI-NEXT: s_waitcnt lgkmcnt(1)
550 ; CI-NEXT: v_lshlrev_b32_e32 v5, 8, v8
551 ; CI-NEXT: s_waitcnt lgkmcnt(0)
552 ; CI-NEXT: v_lshlrev_b32_e32 v1, 8, v1
553 ; CI-NEXT: v_or_b32_e32 v1, v1, v2
554 ; CI-NEXT: v_or_b32_e32 v6, v6, v7
555 ; CI-NEXT: v_lshlrev_b32_e32 v4, 16, v4
556 ; CI-NEXT: v_or_b32_e32 v3, v5, v3
557 ; CI-NEXT: v_lshlrev_b32_e32 v1, 16, v1
558 ; CI-NEXT: v_or_b32_e32 v4, v4, v6
559 ; CI-NEXT: v_or_b32_e32 v1, v1, v3
560 ; CI-NEXT: v_add_f32_e32 v2, v4, v1
561 ; CI-NEXT: s_mov_b32 s2, 0
562 ; CI-NEXT: v_mov_b32_e32 v1, 0
563 ; CI-NEXT: buffer_store_dword v2, v[0:1], s[0:3], 0 addr64
564 ; CI-NEXT: s_endpgm
620 ; CI-LABEL: unaligned_offset_read2_f32:
621 ; CI: ; %bb.0:
622 ; CI-NEXT: s_load_dword s2, s[0:1], 0x2
623 ; CI-NEXT: v_lshlrev_b32_e32 v0, 2, v0
624 ; CI-NEXT: s_mov_b32 m0, -1
625 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
626 ; CI-NEXT: s_mov_b32 s3, 0xf000
627 ; CI-NEXT: s_waitcnt lgkmcnt(0)
628 ; CI-NEXT: v_add_i32_e32 v1, vcc, s2, v0
629 ; CI-NEXT: ds_read_u8 v2, v1 offset:11
630 ; CI-NEXT: ds_read_u8 v3, v1 offset:9
631 ; CI-NEXT: ds_read_u8 v4, v1 offset:8
632 ; CI-NEXT: ds_read_u8 v5, v1 offset:7
633 ; CI-NEXT: ds_read_u8 v6, v1 offset:6
634 ; CI-NEXT: ds_read_u8 v7, v1 offset:5
635 ; CI-NEXT: ds_read_u8 v8, v1 offset:10
636 ; CI-NEXT: ds_read_u8 v1, v1 offset:12
637 ; CI-NEXT: s_waitcnt lgkmcnt(5)
638 ; CI-NEXT: v_lshlrev_b32_e32 v4, 8, v4
639 ; CI-NEXT: s_waitcnt lgkmcnt(3)
640 ; CI-NEXT: v_lshlrev_b32_e32 v6, 8, v6
641 ; CI-NEXT: v_or_b32_e32 v4, v4, v5
642 ; CI-NEXT: s_waitcnt lgkmcnt(1)
643 ; CI-NEXT: v_lshlrev_b32_e32 v5, 8, v8
644 ; CI-NEXT: s_waitcnt lgkmcnt(0)
645 ; CI-NEXT: v_lshlrev_b32_e32 v1, 8, v1
646 ; CI-NEXT: v_or_b32_e32 v1, v1, v2
647 ; CI-NEXT: v_or_b32_e32 v6, v6, v7
648 ; CI-NEXT: v_lshlrev_b32_e32 v4, 16, v4
649 ; CI-NEXT: v_or_b32_e32 v3, v5, v3
650 ; CI-NEXT: v_lshlrev_b32_e32 v1, 16, v1
651 ; CI-NEXT: v_or_b32_e32 v4, v4, v6
652 ; CI-NEXT: v_or_b32_e32 v1, v1, v3
653 ; CI-NEXT: v_add_f32_e32 v2, v4, v1
654 ; CI-NEXT: s_mov_b32 s2, 0
655 ; CI-NEXT: v_mov_b32_e32 v1, 0
656 ; CI-NEXT: buffer_store_dword v2, v[0:1], s[0:3], 0 addr64
657 ; CI-NEXT: s_endpgm
716 ; CI-LABEL: misaligned_2_simple_read2_f32:
717 ; CI: ; %bb.0:
718 ; CI-NEXT: s_load_dword s2, s[0:1], 0x2
719 ; CI-NEXT: v_lshlrev_b32_e32 v0, 2, v0
720 ; CI-NEXT: s_mov_b32 m0, -1
721 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
722 ; CI-NEXT: s_mov_b32 s3, 0xf000
723 ; CI-NEXT: s_waitcnt lgkmcnt(0)
724 ; CI-NEXT: v_add_i32_e32 v1, vcc, s2, v0
725 ; CI-NEXT: ds_read_u16 v2, v1 offset:32
726 ; CI-NEXT: ds_read_u16 v3, v1 offset:2
727 ; CI-NEXT: ds_read_u16 v4, v1
728 ; CI-NEXT: ds_read_u16 v1, v1 offset:34
729 ; CI-NEXT: s_mov_b32 s2, 0
730 ; CI-NEXT: s_waitcnt lgkmcnt(2)
731 ; CI-NEXT: v_lshlrev_b32_e32 v3, 16, v3
732 ; CI-NEXT: s_waitcnt lgkmcnt(1)
733 ; CI-NEXT: v_or_b32_e32 v3, v3, v4
734 ; CI-NEXT: s_waitcnt lgkmcnt(0)
735 ; CI-NEXT: v_lshlrev_b32_e32 v1, 16, v1
736 ; CI-NEXT: v_or_b32_e32 v1, v1, v2
737 ; CI-NEXT: v_add_f32_e32 v2, v3, v1
738 ; CI-NEXT: v_mov_b32_e32 v1, 0
739 ; CI-NEXT: buffer_store_dword v2, v[0:1], s[0:3], 0 addr64
740 ; CI-NEXT: s_endpgm
786 ; CI-LABEL: simple_read2_f64:
787 ; CI: ; %bb.0:
788 ; CI-NEXT: v_lshlrev_b32_e32 v4, 3, v0
789 ; CI-NEXT: s_mov_b32 m0, -1
790 ; CI-NEXT: ds_read2_b64 v[0:3], v4 offset1:8
791 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
792 ; CI-NEXT: s_mov_b32 s3, 0xf000
793 ; CI-NEXT: s_mov_b32 s2, 0
794 ; CI-NEXT: v_mov_b32_e32 v5, 0
795 ; CI-NEXT: s_waitcnt lgkmcnt(0)
796 ; CI-NEXT: v_add_f64 v[0:1], v[0:1], v[2:3]
797 ; CI-NEXT: buffer_store_dwordx2 v[0:1], v[4:5], s[0:3], 0 addr64
798 ; CI-NEXT: s_endpgm
822 ; CI-LABEL: simple_read2_f64_max_offset:
823 ; CI: ; %bb.0:
824 ; CI-NEXT: v_lshlrev_b32_e32 v4, 3, v0
825 ; CI-NEXT: s_mov_b32 m0, -1
826 ; CI-NEXT: ds_read2_b64 v[0:3], v4 offset1:255
827 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
828 ; CI-NEXT: s_mov_b32 s3, 0xf000
829 ; CI-NEXT: s_mov_b32 s2, 0
830 ; CI-NEXT: v_mov_b32_e32 v5, 0
831 ; CI-NEXT: s_waitcnt lgkmcnt(0)
832 ; CI-NEXT: v_add_f64 v[0:1], v[0:1], v[2:3]
833 ; CI-NEXT: buffer_store_dwordx2 v[0:1], v[4:5], s[0:3], 0 addr64
834 ; CI-NEXT: s_endpgm
858 ; CI-LABEL: simple_read2_f64_too_far:
859 ; CI: ; %bb.0:
860 ; CI-NEXT: v_lshlrev_b32_e32 v0, 3, v0
861 ; CI-NEXT: s_mov_b32 m0, -1
862 ; CI-NEXT: ds_read_b64 v[1:2], v0
863 ; CI-NEXT: ds_read_b64 v[3:4], v0 offset:2056
864 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
865 ; CI-NEXT: s_mov_b32 s3, 0xf000
866 ; CI-NEXT: s_mov_b32 s2, 0
867 ; CI-NEXT: s_waitcnt lgkmcnt(0)
868 ; CI-NEXT: v_add_f64 v[2:3], v[1:2], v[3:4]
869 ; CI-NEXT: v_mov_b32_e32 v1, 0
870 ; CI-NEXT: buffer_store_dwordx2 v[2:3], v[0:1], s[0:3], 0 addr64
871 ; CI-NEXT: s_endpgm
897 ; CI-LABEL: misaligned_read2_f64:
898 ; CI: ; %bb.0:
899 ; CI-NEXT: s_load_dword s2, s[0:1], 0x2
900 ; CI-NEXT: v_lshlrev_b32_e32 v0, 3, v0
901 ; CI-NEXT: s_mov_b32 m0, -1
902 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
903 ; CI-NEXT: s_mov_b32 s3, 0xf000
904 ; CI-NEXT: s_waitcnt lgkmcnt(0)
905 ; CI-NEXT: v_add_i32_e32 v3, vcc, s2, v0
906 ; CI-NEXT: ds_read2_b32 v[1:2], v3 offset1:1
907 ; CI-NEXT: ds_read2_b32 v[3:4], v3 offset0:14 offset1:15
908 ; CI-NEXT: s_mov_b32 s2, 0
909 ; CI-NEXT: s_waitcnt lgkmcnt(0)
910 ; CI-NEXT: v_add_f64 v[2:3], v[1:2], v[3:4]
911 ; CI-NEXT: v_mov_b32_e32 v1, 0
912 ; CI-NEXT: buffer_store_dwordx2 v[2:3], v[0:1], s[0:3], 0 addr64
913 ; CI-NEXT: s_endpgm
943 ; CI-LABEL: load_constant_adjacent_offsets:
944 ; CI: ; %bb.0:
945 ; CI-NEXT: v_mov_b32_e32 v0, 0
946 ; CI-NEXT: s_mov_b32 m0, -1
947 ; CI-NEXT: ds_read_b64 v[0:1], v0
948 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
949 ; CI-NEXT: s_mov_b32 s3, 0xf000
950 ; CI-NEXT: s_mov_b32 s2, -1
951 ; CI-NEXT: s_waitcnt lgkmcnt(0)
952 ; CI-NEXT: v_add_i32_e32 v0, vcc, v1, v0
953 ; CI-NEXT: buffer_store_dword v0, off, s[0:3], 0
954 ; CI-NEXT: s_endpgm
973 ; CI-LABEL: load_constant_disjoint_offsets:
974 ; CI: ; %bb.0:
975 ; CI-NEXT: v_mov_b32_e32 v0, 0
976 ; CI-NEXT: s_mov_b32 m0, -1
977 ; CI-NEXT: ds_read2_b32 v[0:1], v0 offset1:2
978 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
979 ; CI-NEXT: s_mov_b32 s3, 0xf000
980 ; CI-NEXT: s_mov_b32 s2, -1
981 ; CI-NEXT: s_waitcnt lgkmcnt(0)
982 ; CI-NEXT: v_add_i32_e32 v0, vcc, v1, v0
983 ; CI-NEXT: buffer_store_dword v0, off, s[0:3], 0
984 ; CI-NEXT: s_endpgm
1005 ; CI-LABEL: load_misaligned64_constant_offsets:
1006 ; CI: ; %bb.0:
1007 ; CI-NEXT: v_mov_b32_e32 v0, 0
1008 ; CI-NEXT: s_mov_b32 m0, -1
1009 ; CI-NEXT: ds_read_b128 v[0:3], v0
1010 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
1011 ; CI-NEXT: s_mov_b32 s3, 0xf000
1012 ; CI-NEXT: s_mov_b32 s2, -1
1013 ; CI-NEXT: s_waitcnt lgkmcnt(0)
1014 ; CI-NEXT: v_add_i32_e32 v0, vcc, v0, v2
1015 ; CI-NEXT: v_addc_u32_e32 v1, vcc, v1, v3, vcc
1016 ; CI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0
1017 ; CI-NEXT: s_endpgm
1039 ; CI-LABEL: load_misaligned64_constant_large_offsets:
1040 ; CI: ; %bb.0:
1041 ; CI-NEXT: v_mov_b32_e32 v2, 0
1042 ; CI-NEXT: s_mov_b32 m0, -1
1043 ; CI-NEXT: ds_read_b64 v[0:1], v2 offset:16384
1044 ; CI-NEXT: ds_read_b64 v[2:3], v2 offset:32760
1045 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
1046 ; CI-NEXT: s_mov_b32 s3, 0xf000
1047 ; CI-NEXT: s_mov_b32 s2, -1
1048 ; CI-NEXT: s_waitcnt lgkmcnt(0)
1049 ; CI-NEXT: v_add_i32_e32 v0, vcc, v0, v2
1050 ; CI-NEXT: v_addc_u32_e32 v1, vcc, v1, v3, vcc
1051 ; CI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0
1052 ; CI-NEXT: s_endpgm
1076 ; CI-LABEL: sgemm_inner_loop_read2_sequence:
1077 ; CI: ; %bb.0:
1078 ; CI-NEXT: s_load_dwordx2 s[4:5], s[0:1], 0x0
1079 ; CI-NEXT: s_lshl_b32 s0, s2, 2
1080 ; CI-NEXT: s_add_i32 s1, s0, 0xc20
1081 ; CI-NEXT: s_addk_i32 s0, 0xc60
1082 ; CI-NEXT: v_mov_b32_e32 v0, s1
1083 ; CI-NEXT: v_mov_b32_e32 v2, s0
1084 ; CI-NEXT: v_lshlrev_b32_e32 v8, 2, v1
1085 ; CI-NEXT: s_mov_b32 m0, -1
1086 ; CI-NEXT: ds_read2_b32 v[0:1], v0 offset1:1
1087 ; CI-NEXT: ds_read2_b32 v[2:3], v2 offset1:1
1088 ; CI-NEXT: ds_read2_b32 v[4:5], v8 offset1:1
1089 ; CI-NEXT: ds_read2_b32 v[6:7], v8 offset0:32 offset1:33
1090 ; CI-NEXT: ds_read2_b32 v[8:9], v8 offset0:64 offset1:65
1091 ; CI-NEXT: s_waitcnt lgkmcnt(0)
1092 ; CI-NEXT: v_add_f32_e32 v0, v0, v1
1093 ; CI-NEXT: v_add_f32_e32 v0, v0, v2
1094 ; CI-NEXT: v_add_f32_e32 v0, v0, v3
1095 ; CI-NEXT: v_add_f32_e32 v0, v0, v4
1096 ; CI-NEXT: v_add_f32_e32 v0, v0, v5
1097 ; CI-NEXT: v_add_f32_e32 v0, v0, v6
1098 ; CI-NEXT: v_add_f32_e32 v0, v0, v7
1099 ; CI-NEXT: v_add_f32_e32 v0, v0, v8
1100 ; CI-NEXT: s_mov_b32 s7, 0xf000
1101 ; CI-NEXT: s_mov_b32 s6, -1
1102 ; CI-NEXT: v_add_f32_e32 v0, v0, v9
1103 ; CI-NEXT: buffer_store_dword v0, off, s[4:7], 0
1104 ; CI-NEXT: s_endpgm
1180 ; CI-LABEL: misaligned_read2_v2i32:
1181 ; CI: ; %bb.0:
1182 ; CI-NEXT: s_load_dword s2, s[0:1], 0x2
1183 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
1184 ; CI-NEXT: s_mov_b32 m0, -1
1185 ; CI-NEXT: s_mov_b32 s3, 0xf000
1186 ; CI-NEXT: s_waitcnt lgkmcnt(0)
1187 ; CI-NEXT: v_mov_b32_e32 v0, s2
1188 ; CI-NEXT: ds_read2_b32 v[0:1], v0 offset1:1
1189 ; CI-NEXT: s_mov_b32 s2, -1
1190 ; CI-NEXT: s_waitcnt lgkmcnt(0)
1191 ; CI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0
1192 ; CI-NEXT: s_endpgm
1211 ; CI-LABEL: misaligned_read2_i64:
1212 ; CI: ; %bb.0:
1213 ; CI-NEXT: s_load_dword s2, s[0:1], 0x2
1214 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
1215 ; CI-NEXT: s_mov_b32 m0, -1
1216 ; CI-NEXT: s_mov_b32 s3, 0xf000
1217 ; CI-NEXT: s_waitcnt lgkmcnt(0)
1218 ; CI-NEXT: v_mov_b32_e32 v0, s2
1219 ; CI-NEXT: ds_read2_b32 v[0:1], v0 offset1:1
1220 ; CI-NEXT: s_mov_b32 s2, -1
1221 ; CI-NEXT: s_waitcnt lgkmcnt(0)
1222 ; CI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0
1223 ; CI-NEXT: s_endpgm
1242 ; CI-LABEL: ds_read_diff_base_interleaving:
1243 ; CI: ; %bb.0: ; %bb
1244 ; CI-NEXT: s_load_dwordx4 s[4:7], s[0:1], 0x2
1245 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
1246 ; CI-NEXT: v_lshlrev_b32_e32 v1, 4, v1
1247 ; CI-NEXT: v_lshlrev_b32_e32 v0, 2, v0
1248 ; CI-NEXT: s_mov_b32 m0, -1
1249 ; CI-NEXT: s_waitcnt lgkmcnt(0)
1250 ; CI-NEXT: v_add_i32_e32 v2, vcc, s4, v1
1251 ; CI-NEXT: v_add_i32_e32 v3, vcc, s5, v0
1252 ; CI-NEXT: v_add_i32_e32 v4, vcc, s6, v1
1253 ; CI-NEXT: v_add_i32_e32 v6, vcc, s7, v0
1254 ; CI-NEXT: ds_read2_b32 v[0:1], v2 offset1:1
1255 ; CI-NEXT: ds_read2_b32 v[2:3], v3 offset1:4
1256 ; CI-NEXT: ds_read2_b32 v[4:5], v4 offset1:1
1257 ; CI-NEXT: ds_read2_b32 v[6:7], v6 offset1:4
1258 ; CI-NEXT: s_mov_b32 s3, 0xf000
1259 ; CI-NEXT: s_mov_b32 s2, -1
1260 ; CI-NEXT: s_waitcnt lgkmcnt(2)
1261 ; CI-NEXT: v_mul_f32_e32 v0, v0, v2
1262 ; CI-NEXT: v_add_f32_e32 v0, 2.0, v0
1263 ; CI-NEXT: s_waitcnt lgkmcnt(0)
1264 ; CI-NEXT: v_mul_f32_e32 v2, v4, v6
1265 ; CI-NEXT: v_sub_f32_e32 v0, v0, v2
1266 ; CI-NEXT: v_mul_f32_e32 v1, v1, v3
1267 ; CI-NEXT: v_sub_f32_e32 v0, v0, v1
1268 ; CI-NEXT: v_mul_f32_e32 v1, v5, v7
1269 ; CI-NEXT: v_sub_f32_e32 v0, v0, v1
1270 ; CI-NEXT: buffer_store_dword v0, off, s[0:3], 0 offset:40
1271 ; CI-NEXT: s_endpgm
1339 ; CI-LABEL: ds_read_call_read:
1340 ; CI: ; %bb.0:
1341 ; CI-NEXT: s_getpc_b64 s[40:41]
1342 ; CI-NEXT: s_mov_b32 s40, s0
1343 ; CI-NEXT: s_load_dwordx4 s[40:43], s[40:41], 0x0
1344 ; CI-NEXT: s_mov_b32 s14, s10
1345 ; CI-NEXT: s_mov_b32 s12, s8
1346 ; CI-NEXT: s_mov_b32 s13, s9
1347 ; CI-NEXT: v_lshlrev_b32_e32 v3, 2, v0
1348 ; CI-NEXT: s_waitcnt lgkmcnt(0)
1349 ; CI-NEXT: s_add_u32 s40, s40, s11
1350 ; CI-NEXT: s_mov_b64 s[10:11], s[6:7]
1351 ; CI-NEXT: s_load_dwordx2 s[36:37], s[4:5], 0x0
1352 ; CI-NEXT: s_load_dword s6, s[4:5], 0x2
1353 ; CI-NEXT: s_addc_u32 s41, s41, 0
1354 ; CI-NEXT: s_add_u32 s8, s4, 12
1355 ; CI-NEXT: s_addc_u32 s9, s5, 0
1356 ; CI-NEXT: s_getpc_b64 s[4:5]
1357 ; CI-NEXT: s_add_u32 s4, s4, void_func_void@gotpcrel32@lo+4
1358 ; CI-NEXT: s_addc_u32 s5, s5, void_func_void@gotpcrel32@hi+12
1359 ; CI-NEXT: s_waitcnt lgkmcnt(0)
1360 ; CI-NEXT: v_add_i32_e32 v40, vcc, s6, v3
1361 ; CI-NEXT: s_mov_b32 m0, -1
1362 ; CI-NEXT: s_load_dwordx2 s[16:17], s[4:5], 0x0
1363 ; CI-NEXT: ds_read_b32 v41, v40
1364 ; CI-NEXT: v_lshlrev_b32_e32 v1, 10, v1
1365 ; CI-NEXT: v_lshlrev_b32_e32 v2, 20, v2
1366 ; CI-NEXT: v_or_b32_e32 v0, v0, v1
1367 ; CI-NEXT: s_mov_b64 s[4:5], s[0:1]
1368 ; CI-NEXT: s_mov_b64 s[6:7], s[2:3]
1369 ; CI-NEXT: s_mov_b64 s[0:1], s[40:41]
1370 ; CI-NEXT: v_or_b32_e32 v31, v0, v2
1371 ; CI-NEXT: s_mov_b64 s[2:3], s[42:43]
1372 ; CI-NEXT: s_mov_b32 s32, 0
1373 ; CI-NEXT: s_mov_b32 s39, 0xf000
1374 ; CI-NEXT: s_mov_b32 s38, -1
1375 ; CI-NEXT: s_waitcnt lgkmcnt(0)
1376 ; CI-NEXT: s_swappc_b64 s[30:31], s[16:17]
1377 ; CI-NEXT: ds_read_b32 v0, v40 offset:4
1378 ; CI-NEXT: s_waitcnt lgkmcnt(0)
1379 ; CI-NEXT: v_add_i32_e32 v0, vcc, v41, v0
1380 ; CI-NEXT: buffer_store_dword v0, off, s[36:39], 0
1381 ; CI-NEXT: s_endpgm
1434 ; CI-LABEL: ds_read_interp_read:
1435 ; CI: ; %bb.0:
1436 ; CI-NEXT: s_mov_b32 m0, -1
1437 ; CI-NEXT: ds_read_b32 v2, v0
1438 ; CI-NEXT: s_mov_b32 m0, s0
1439 ; CI-NEXT: v_interp_mov_f32 v1, p10, attr0.x
1440 ; CI-NEXT: s_mov_b32 m0, -1
1441 ; CI-NEXT: ds_read_b32 v0, v0 offset:16
1442 ; CI-NEXT: s_waitcnt lgkmcnt(0)
1443 ; CI-NEXT: v_add_f32_e32 v1, v0, v1
1444 ; CI-NEXT: v_mov_b32_e32 v0, v2
1445 ; CI-NEXT: ; return to shader part epilog
1469 ; CI-LABEL: read2_v2i32_align1_odd_offset:
1470 ; CI: ; %bb.0: ; %entry
1471 ; CI-NEXT: v_mov_b32_e32 v0, 0
1472 ; CI-NEXT: s_mov_b32 m0, -1
1473 ; CI-NEXT: ds_read_u8 v1, v0 offset:70
1474 ; CI-NEXT: ds_read_u8 v2, v0 offset:72
1475 ; CI-NEXT: ds_read_u8 v3, v0 offset:71
1476 ; CI-NEXT: ds_read_u8 v4, v0 offset:69
1477 ; CI-NEXT: ds_read_u8 v5, v0 offset:68
1478 ; CI-NEXT: s_waitcnt lgkmcnt(4)
1479 ; CI-NEXT: v_lshlrev_b32_e32 v1, 8, v1
1480 ; CI-NEXT: s_waitcnt lgkmcnt(3)
1481 ; CI-NEXT: v_lshlrev_b32_e32 v2, 8, v2
1482 ; CI-NEXT: s_waitcnt lgkmcnt(2)
1483 ; CI-NEXT: v_or_b32_e32 v2, v2, v3
1484 ; CI-NEXT: s_waitcnt lgkmcnt(1)
1485 ; CI-NEXT: v_or_b32_e32 v1, v1, v4
1486 ; CI-NEXT: ds_read_u8 v4, v0 offset:67
1487 ; CI-NEXT: ds_read_u8 v6, v0 offset:66
1488 ; CI-NEXT: ds_read_u8 v0, v0 offset:65
1489 ; CI-NEXT: v_lshlrev_b32_e32 v2, 16, v2
1490 ; CI-NEXT: s_load_dwordx2 s[0:1], s[0:1], 0x0
1491 ; CI-NEXT: v_or_b32_e32 v1, v2, v1
1492 ; CI-NEXT: s_waitcnt lgkmcnt(0)
1493 ; CI-NEXT: v_lshlrev_b32_e32 v2, 8, v6
1494 ; CI-NEXT: v_or_b32_e32 v0, v2, v0
1495 ; CI-NEXT: v_lshlrev_b32_e32 v2, 8, v5
1496 ; CI-NEXT: v_or_b32_e32 v2, v2, v4
1497 ; CI-NEXT: v_lshlrev_b32_e32 v2, 16, v2
1498 ; CI-NEXT: s_mov_b32 s3, 0xf000
1499 ; CI-NEXT: s_mov_b32 s2, -1
1500 ; CI-NEXT: v_or_b32_e32 v0, v2, v0
1501 ; CI-NEXT: buffer_store_dwordx2 v[0:1], off, s[0:3], 0
1502 ; CI-NEXT: s_endpgm