@@ -783,37 +783,20 @@ multiclass MUBUF_Pseudo_Atomics_NO_RTN <string opName,
783783
784784multiclass MUBUF_Pseudo_Atomics_RTN <string opName,
785785 RegisterOperand vdataClass,
786- ValueType vdataType,
787- SDPatternOperator atomic> {
786+ ValueType vdataType> {
788787 let FPAtomic = vdataType.isFP in {
789- def _OFFSET_RTN : MUBUF_AtomicRet_Pseudo <opName, BUFAddrKind.Offset, vdataClass, 0,
790- [(set vdataType:$vdata,
791- (atomic (MUBUFOffset v4i32:$srsrc, i32:$soffset, i32:$offset),
792- vdataType:$vdata_in))]>,
793- MUBUFAddr64Table <0, NAME # "_RTN">;
794-
795- def _ADDR64_RTN : MUBUF_AtomicRet_Pseudo <opName, BUFAddrKind.Addr64, vdataClass, 0,
796- [(set vdataType:$vdata,
797- (atomic (MUBUFAddr64 v4i32:$srsrc, i64:$vaddr, i32:$soffset, i32:$offset),
798- vdataType:$vdata_in))]>,
799- MUBUFAddr64Table <1, NAME # "_RTN">;
800-
788+ def _OFFSET_RTN : MUBUF_AtomicRet_Pseudo <opName, BUFAddrKind.Offset, vdataClass, 0>,
789+ MUBUFAddr64Table <0, NAME # "_RTN">;
790+ def _ADDR64_RTN : MUBUF_AtomicRet_Pseudo <opName, BUFAddrKind.Addr64, vdataClass, 0>,
791+ MUBUFAddr64Table <1, NAME # "_RTN">;
801792 def _OFFEN_RTN : MUBUF_AtomicRet_Pseudo <opName, BUFAddrKind.OffEn, vdataClass, 0>;
802793 def _IDXEN_RTN : MUBUF_AtomicRet_Pseudo <opName, BUFAddrKind.IdxEn, vdataClass, 0>;
803794 def _BOTHEN_RTN : MUBUF_AtomicRet_Pseudo <opName, BUFAddrKind.BothEn, vdataClass, 0>;
804795
805- def _VBUFFER_OFFSET_RTN : MUBUF_AtomicRet_Pseudo <opName #_vbuffer, BUFAddrKind.Offset, vdataClass, 1,
806- [(set vdataType:$vdata,
807- (atomic (MUBUFOffset v4i32:$srsrc, i32:$soffset, i32:$offset),
808- vdataType:$vdata_in))]>,
809- MUBUFAddr64Table <0, NAME # "_VBUFFER_RTN">;
810-
811- def _VBUFFER_ADDR64_RTN : MUBUF_AtomicRet_Pseudo <opName #_vbuffer, BUFAddrKind.Addr64, vdataClass, 1,
812- [(set vdataType:$vdata,
813- (atomic (MUBUFAddr64 v4i32:$srsrc, i64:$vaddr, i32:$soffset, i32:$offset),
814- vdataType:$vdata_in))]>,
815- MUBUFAddr64Table <1, NAME # "_VBUFFER_RTN">;
816-
796+ def _VBUFFER_OFFSET_RTN : MUBUF_AtomicRet_Pseudo <opName #_vbuffer, BUFAddrKind.Offset, vdataClass, 1>,
797+ MUBUFAddr64Table <0, NAME # "_VBUFFER_RTN">;
798+ def _VBUFFER_ADDR64_RTN : MUBUF_AtomicRet_Pseudo <opName #_vbuffer, BUFAddrKind.Addr64, vdataClass, 1>,
799+ MUBUFAddr64Table <1, NAME # "_VBUFFER_RTN">;
817800 def _VBUFFER_OFFEN_RTN : MUBUF_AtomicRet_Pseudo <opName #_vbuffer, BUFAddrKind.OffEn, vdataClass, 1>;
818801 def _VBUFFER_IDXEN_RTN : MUBUF_AtomicRet_Pseudo <opName #_vbuffer, BUFAddrKind.IdxEn, vdataClass, 1>;
819802 def _VBUFFER_BOTHEN_RTN : MUBUF_AtomicRet_Pseudo <opName #_vbuffer, BUFAddrKind.BothEn, vdataClass, 1>;
@@ -822,10 +805,9 @@ multiclass MUBUF_Pseudo_Atomics_RTN <string opName,
822805
823806multiclass MUBUF_Pseudo_Atomics <string opName,
824807 RegisterOperand vdataClass,
825- ValueType vdataType,
826- SDPatternOperator atomic = null_frag> :
808+ ValueType vdataType> :
827809 MUBUF_Pseudo_Atomics_NO_RTN<opName, vdataClass, vdataType>,
828- MUBUF_Pseudo_Atomics_RTN<opName, vdataClass, vdataType, atomic >;
810+ MUBUF_Pseudo_Atomics_RTN<opName, vdataClass, vdataType>;
829811
830812
831813//===----------------------------------------------------------------------===//
@@ -1096,7 +1078,7 @@ defm BUFFER_ATOMIC_DEC_X2 : MUBUF_Pseudo_Atomics <
10961078
10971079let OtherPredicates = [HasGFX10_BEncoding] in {
10981080 defm BUFFER_ATOMIC_CSUB : MUBUF_Pseudo_Atomics <
1099- "buffer_atomic_csub", VGPROp_32, i32, int_amdgcn_global_atomic_csub
1081+ "buffer_atomic_csub", VGPROp_32, i32
11001082 >;
11011083}
11021084
@@ -1117,22 +1099,22 @@ def BUFFER_WBINVL1_SC : MUBUF_Invalidate <"buffer_wbinvl1_sc",
11171099let SubtargetPredicate = isGFX6GFX7GFX10Plus in {
11181100
11191101defm BUFFER_ATOMIC_FCMPSWAP : MUBUF_Pseudo_Atomics <
1120- "buffer_atomic_fcmpswap", AVLdSt_64, v2f32, null_frag
1102+ "buffer_atomic_fcmpswap", AVLdSt_64, v2f32
11211103>;
11221104}
11231105
11241106let SubtargetPredicate = HasAtomicFMinFMaxF32GlobalInsts in {
11251107defm BUFFER_ATOMIC_FMIN : MUBUF_Pseudo_Atomics <
1126- "buffer_atomic_fmin", AVLdSt_32, f32, null_frag
1108+ "buffer_atomic_fmin", AVLdSt_32, f32
11271109>;
11281110defm BUFFER_ATOMIC_FMAX : MUBUF_Pseudo_Atomics <
1129- "buffer_atomic_fmax", AVLdSt_32, f32, null_frag
1111+ "buffer_atomic_fmax", AVLdSt_32, f32
11301112>;
11311113}
11321114
11331115let SubtargetPredicate = isGFX6GFX7GFX10 in {
11341116defm BUFFER_ATOMIC_FCMPSWAP_X2 : MUBUF_Pseudo_Atomics <
1135- "buffer_atomic_fcmpswap_x2", VGPROp_128, v2f64, null_frag
1117+ "buffer_atomic_fcmpswap_x2", VGPROp_128, v2f64
11361118>;
11371119}
11381120
@@ -1201,12 +1183,12 @@ defm BUFFER_ATOMIC_PK_ADD_F16 : MUBUF_Pseudo_Atomics_NO_RTN <
12011183
12021184let SubtargetPredicate = HasAtomicFaddRtnInsts in
12031185defm BUFFER_ATOMIC_ADD_F32 : MUBUF_Pseudo_Atomics_RTN<
1204- "buffer_atomic_add_f32", AVLdSt_32, f32, null_frag
1186+ "buffer_atomic_add_f32", AVLdSt_32, f32
12051187>;
12061188
12071189let SubtargetPredicate = HasAtomicBufferGlobalPkAddF16Insts in
12081190defm BUFFER_ATOMIC_PK_ADD_F16 : MUBUF_Pseudo_Atomics_RTN <
1209- "buffer_atomic_pk_add_f16", AVLdSt_32, v2f16, null_frag
1191+ "buffer_atomic_pk_add_f16", AVLdSt_32, v2f16
12101192>;
12111193
12121194let SubtargetPredicate = isGFX12Plus in {
0 commit comments