@@ -654,3 +654,94 @@ image_sample_c_d_o_g16 v[0:1], [v0, v1, v2, v4, v6, v7, v8], s[0:7], s[8:11] dma
654
654
655
655
image_sample_d v [ 0 : 3 ], v [ 0 : 7 ], s [ 0 : 7 ], s [ 8 : 11 ] dmask: 0xf dim:SQ_RSRC_IMG_2D a16
656
656
; GFX10: image_sample_d v[0:3], v[0:7], s[0:7], s[8:11] dmask:0xf dim:SQ_RSRC_IMG_2D a16 ; encoding: [0x08,0x0f,0x88,0xf0,0x00,0x00,0x40,0x40]
657
+
658
+ ; Test dmask + tfe for image_atomic instructions
659
+ image_atomic_add v0 , v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x1 dim:SQ_RSRC_IMG_2D
660
+ ; GFX10: image_atomic_add v0, v[10:11], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D ; encoding: [0x08,0x01,0x44,0xf0,0x0a,0x00,0x04,0x00]
661
+
662
+ image_atomic_add v [ 0 : 1 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x1 dim:SQ_RSRC_IMG_2D tfe
663
+ ; GFX10: image_atomic_add v[0:1], v[10:11], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x01,0x45,0xf0,0x0a,0x00,0x04,0x00]
664
+
665
+ image_atomic_add v [ 0 : 1 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x3 dim:SQ_RSRC_IMG_2D
666
+ ; GFX10: image_atomic_add v[0:1], v[10:11], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D ; encoding: [0x08,0x03,0x44,0xf0,0x0a,0x00,0x04,0x00]
667
+
668
+ image_atomic_add v [ 0 : 2 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x3 dim:SQ_RSRC_IMG_2D tfe
669
+ ; GFX10: image_atomic_add v[0:2], v[10:11], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x03,0x45,0xf0,0x0a,0x00,0x04,0x00]
670
+
671
+ image_atomic_swap v [ 0 : 1 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x1 dim:SQ_RSRC_IMG_2D tfe
672
+ ; GFX10: image_atomic_swap v[0:1], v[10:11], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x01,0x3d,0xf0,0x0a,0x00,0x04,0x00]
673
+
674
+ image_atomic_swap v [ 0 : 2 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x3 dim:SQ_RSRC_IMG_2D tfe
675
+ ; GFX10: image_atomic_swap v[0:2], v[10:11], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x03,0x3d,0xf0,0x0a,0x00,0x04,0x00]
676
+
677
+ image_atomic_sub v [ 0 : 1 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x1 dim:SQ_RSRC_IMG_2D tfe
678
+ ; GFX10: image_atomic_sub v[0:1], v[10:11], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x01,0x49,0xf0,0x0a,0x00,0x04,0x00]
679
+
680
+ image_atomic_sub v [ 0 : 2 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x3 dim:SQ_RSRC_IMG_2D tfe
681
+ ; GFX10: image_atomic_sub v[0:2], v[10:11], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x03,0x49,0xf0,0x0a,0x00,0x04,0x00]
682
+
683
+ image_atomic_smin v [ 0 : 1 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x1 dim:SQ_RSRC_IMG_2D tfe
684
+ ; GFX10: image_atomic_smin v[0:1], v[10:11], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x01,0x51,0xf0,0x0a,0x00,0x04,0x00]
685
+
686
+ image_atomic_smin v [ 0 : 2 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x3 dim:SQ_RSRC_IMG_2D tfe
687
+ ; GFX10: image_atomic_smin v[0:2], v[10:11], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x03,0x51,0xf0,0x0a,0x00,0x04,0x00]
688
+
689
+ image_atomic_umin v [ 0 : 1 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x1 dim:SQ_RSRC_IMG_2D tfe
690
+ ; GFX10: image_atomic_umin v[0:1], v[10:11], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x01,0x55,0xf0,0x0a,0x00,0x04,0x00]
691
+
692
+ image_atomic_umin v [ 0 : 2 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x3 dim:SQ_RSRC_IMG_2D tfe
693
+ ; GFX10: image_atomic_umin v[0:2], v[10:11], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x03,0x55,0xf0,0x0a,0x00,0x04,0x00]
694
+
695
+ image_atomic_smax v [ 0 : 1 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x1 dim:SQ_RSRC_IMG_2D tfe
696
+ ; GFX10: image_atomic_smax v[0:1], v[10:11], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x01,0x59,0xf0,0x0a,0x00,0x04,0x00]
697
+
698
+ image_atomic_smax v [ 0 : 2 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x3 dim:SQ_RSRC_IMG_2D tfe
699
+ ; GFX10: image_atomic_smax v[0:2], v[10:11], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x03,0x59,0xf0,0x0a,0x00,0x04,0x00]
700
+
701
+ image_atomic_umax v [ 0 : 1 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x1 dim:SQ_RSRC_IMG_2D tfe
702
+ ; GFX10: image_atomic_umax v[0:1], v[10:11], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x01,0x5d,0xf0,0x0a,0x00,0x04,0x00]
703
+
704
+ image_atomic_umax v [ 0 : 2 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x3 dim:SQ_RSRC_IMG_2D tfe
705
+ ; GFX10: image_atomic_umax v[0:2], v[10:11], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x03,0x5d,0xf0,0x0a,0x00,0x04,0x00]
706
+
707
+ image_atomic_and v [ 0 : 1 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x1 dim:SQ_RSRC_IMG_2D tfe
708
+ ; GFX10: image_atomic_and v[0:1], v[10:11], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x01,0x61,0xf0,0x0a,0x00,0x04,0x00]
709
+
710
+ image_atomic_and v [ 0 : 2 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x3 dim:SQ_RSRC_IMG_2D tfe
711
+ ; GFX10: image_atomic_and v[0:2], v[10:11], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x03,0x61,0xf0,0x0a,0x00,0x04,0x00]
712
+
713
+ image_atomic_or v [ 0 : 1 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x1 dim:SQ_RSRC_IMG_2D tfe
714
+ ; GFX10: image_atomic_or v[0:1], v[10:11], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x01,0x65,0xf0,0x0a,0x00,0x04,0x00]
715
+
716
+ image_atomic_or v [ 0 : 2 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x3 dim:SQ_RSRC_IMG_2D tfe
717
+ ; GFX10: image_atomic_or v[0:2], v[10:11], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x03,0x65,0xf0,0x0a,0x00,0x04,0x00]
718
+
719
+ image_atomic_xor v [ 0 : 1 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x1 dim:SQ_RSRC_IMG_2D tfe
720
+ ; GFX10: image_atomic_xor v[0:1], v[10:11], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x01,0x69,0xf0,0x0a,0x00,0x04,0x00]
721
+
722
+ image_atomic_xor v [ 0 : 2 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x3 dim:SQ_RSRC_IMG_2D tfe
723
+ ; GFX10: image_atomic_xor v[0:2], v[10:11], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x03,0x69,0xf0,0x0a,0x00,0x04,0x00]
724
+
725
+ image_atomic_inc v [ 0 : 1 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x1 dim:SQ_RSRC_IMG_2D tfe
726
+ ; GFX10: image_atomic_inc v[0:1], v[10:11], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x01,0x6d,0xf0,0x0a,0x00,0x04,0x00]
727
+
728
+ image_atomic_inc v [ 0 : 2 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x3 dim:SQ_RSRC_IMG_2D tfe
729
+ ; GFX10: image_atomic_inc v[0:2], v[10:11], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x03,0x6d,0xf0,0x0a,0x00,0x04,0x00]
730
+
731
+ image_atomic_dec v [ 0 : 1 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x1 dim:SQ_RSRC_IMG_2D tfe
732
+ ; GFX10: image_atomic_dec v[0:1], v[10:11], s[16:23] dmask:0x1 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x01,0x71,0xf0,0x0a,0x00,0x04,0x00]
733
+
734
+ image_atomic_dec v [ 0 : 2 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x3 dim:SQ_RSRC_IMG_2D tfe
735
+ ; GFX10: image_atomic_dec v[0:2], v[10:11], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x03,0x71,0xf0,0x0a,0x00,0x04,0x00]
736
+
737
+ image_atomic_cmpswap v [ 0 : 1 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x3 dim:SQ_RSRC_IMG_2D
738
+ ; GFX10: image_atomic_cmpswap v[0:1], v[10:11], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D ; encoding: [0x08,0x03,0x40,0xf0,0x0a,0x00,0x04,0x00]
739
+
740
+ image_atomic_cmpswap v [ 0 : 2 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0x3 dim:SQ_RSRC_IMG_2D tfe
741
+ ; GFX10: image_atomic_cmpswap v[0:2], v[10:11], s[16:23] dmask:0x3 dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x03,0x41,0xf0,0x0a,0x00,0x04,0x00]
742
+
743
+ image_atomic_cmpswap v [ 0 : 3 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0xf dim:SQ_RSRC_IMG_2D
744
+ ; GFX10: image_atomic_cmpswap v[0:3], v[10:11], s[16:23] dmask:0xf dim:SQ_RSRC_IMG_2D ; encoding: [0x08,0x0f,0x40,0xf0,0x0a,0x00,0x04,0x00]
745
+
746
+ image_atomic_cmpswap v [ 0 : 4 ], v [ 10 : 11 ], s [ 16 : 23 ] dmask: 0xf dim:SQ_RSRC_IMG_2D tfe
747
+ ; GFX10: image_atomic_cmpswap v[0:4], v[10:11], s[16:23] dmask:0xf dim:SQ_RSRC_IMG_2D tfe ; encoding: [0x08,0x0f,0x41,0xf0,0x0a,0x00,0x04,0x00]
0 commit comments