@@ -800,7 +800,7 @@ defm BUFFER_STORE_FORMAT_XYZW : MUBUF_Pseudo_Stores <
800
800
"buffer_store_format_xyzw", v4f32
801
801
>;
802
802
803
- let SubtargetPredicate = HasUnpackedD16VMem, D16Buf = 1 in {
803
+ let OtherPredicates = [ HasUnpackedD16VMem] , D16Buf = 1 in {
804
804
let TiedSourceNotRead = 1 in {
805
805
defm BUFFER_LOAD_FORMAT_D16_X_gfx80 : MUBUF_Pseudo_Loads <
806
806
"buffer_load_format_d16_x", i32
@@ -827,9 +827,9 @@ let TiedSourceNotRead = 1 in {
827
827
defm BUFFER_STORE_FORMAT_D16_XYZW_gfx80 : MUBUF_Pseudo_Stores <
828
828
"buffer_store_format_d16_xyzw", v4i32
829
829
>;
830
- } // End HasUnpackedD16VMem.
830
+ } // End OtherPredicates = [ HasUnpackedD16VMem], D16Buf = 1 .
831
831
832
- let SubtargetPredicate = HasPackedD16VMem, D16Buf = 1 in {
832
+ let OtherPredicates = [ HasPackedD16VMem] , D16Buf = 1 in {
833
833
let TiedSourceNotRead = 1 in {
834
834
defm BUFFER_LOAD_FORMAT_D16_X : MUBUF_Pseudo_Loads <
835
835
"buffer_load_format_d16_x", f16
@@ -856,7 +856,7 @@ let TiedSourceNotRead = 1 in {
856
856
defm BUFFER_STORE_FORMAT_D16_XYZW : MUBUF_Pseudo_Stores <
857
857
"buffer_store_format_d16_xyzw", v4f16
858
858
>;
859
- } // End HasPackedD16VMem.
859
+ } // End OtherPredicates = [ HasPackedD16VMem], D16Buf = 1 .
860
860
861
861
defm BUFFER_LOAD_UBYTE : MUBUF_Pseudo_Loads_Lds <
862
862
"buffer_load_ubyte", i32
@@ -1046,7 +1046,7 @@ defm BUFFER_ATOMIC_DEC_X2 : MUBUF_Pseudo_Atomics <
1046
1046
"buffer_atomic_dec_x2", VReg_64, i64
1047
1047
>;
1048
1048
1049
- let SubtargetPredicate = HasGFX10_BEncoding in {
1049
+ let OtherPredicates = [ HasGFX10_BEncoding] in {
1050
1050
defm BUFFER_ATOMIC_CSUB : MUBUF_Pseudo_Atomics <
1051
1051
"buffer_atomic_csub", VGPR_32, i32, int_amdgcn_global_atomic_csub
1052
1052
>;
@@ -1237,10 +1237,8 @@ def BUFFER_INV : MUBUF_Invalidate<"buffer_inv"> {
1237
1237
let AsmOperands = "$cpol";
1238
1238
}
1239
1239
1240
- let SubtargetPredicate = isGFX10Plus in {
1241
- def BUFFER_GL0_INV : MUBUF_Invalidate<"buffer_gl0_inv">;
1242
- def BUFFER_GL1_INV : MUBUF_Invalidate<"buffer_gl1_inv">;
1243
- } // End SubtargetPredicate = isGFX10Plus
1240
+ def BUFFER_GL0_INV : MUBUF_Invalidate<"buffer_gl0_inv">;
1241
+ def BUFFER_GL1_INV : MUBUF_Invalidate<"buffer_gl1_inv">;
1244
1242
1245
1243
//===----------------------------------------------------------------------===//
1246
1244
// MUBUF Patterns
@@ -2089,6 +2087,7 @@ class MUBUF_Real_gfx11<bits<8> op, MUBUF_Pseudo ps,
2089
2087
let Inst{53} = ps.tfe;
2090
2088
let Inst{54} = ps.offen;
2091
2089
let Inst{55} = ps.idxen;
2090
+ let SubtargetPredicate = isGFX11Only;
2092
2091
}
2093
2092
2094
2093
class Base_MUBUF_Real_Atomic_gfx11<bits<8> op, MUBUF_Pseudo ps,
@@ -2112,11 +2111,13 @@ class MUBUF_Real_gfx10<bits<8> op, MUBUF_Pseudo ps> :
2112
2111
Base_MUBUF_Real_gfx6_gfx7_gfx10<op{6-0}, ps, SIEncodingFamily.GFX10> {
2113
2112
let Inst{15} = !if(ps.has_dlc, cpol{CPolBit.DLC}, ps.dlc_value);
2114
2113
let Inst{25} = op{7};
2114
+ let SubtargetPredicate = isGFX10Only;
2115
2115
}
2116
2116
2117
2117
class MUBUF_Real_gfx6_gfx7<bits<8> op, MUBUF_Pseudo ps> :
2118
2118
Base_MUBUF_Real_gfx6_gfx7_gfx10<op{6-0}, ps, SIEncodingFamily.SI> {
2119
2119
let Inst{15} = ps.addr64;
2120
+ let SubtargetPredicate = isGFX6GFX7;
2120
2121
}
2121
2122
2122
2123
//===----------------------------------------------------------------------===//
@@ -2135,7 +2136,7 @@ class Pre_gfx11_MUBUF_Name <string mnemonic, string real_name> :
2135
2136
2136
2137
class MUBUF_Real_gfx11_impl<bits<8> op, string ps_name, string real_name> :
2137
2138
MUBUF_Real_gfx11<op, !cast<MUBUF_Pseudo>(ps_name), real_name>;
2138
- let AssemblerPredicate = isGFX11Only, DecoderNamespace = "GFX11" in
2139
+ let DecoderNamespace = "GFX11" in
2139
2140
multiclass MUBUF_Real_AllAddr_gfx11_Renamed_Impl2<bits<8> op, string real_name> {
2140
2141
def _BOTHEN_gfx11 : MUBUF_Real_gfx11_impl<op, NAME # "_BOTHEN", real_name>;
2141
2142
def _IDXEN_gfx11 : MUBUF_Real_gfx11_impl<op, NAME # "_IDXEN", real_name>;
@@ -2162,7 +2163,7 @@ multiclass MUBUF_Real_AllAddr_gfx11_Renamed<bits<8> op, string real_name> :
2162
2163
class MUBUF_Real_Atomic_gfx11_impl<bits<8> op, string ps_name,
2163
2164
string real_name> :
2164
2165
Base_MUBUF_Real_Atomic_gfx11<op, !cast<MUBUF_Pseudo>(ps_name), real_name>;
2165
- let AssemblerPredicate = isGFX11Only, DecoderNamespace = "GFX11" in
2166
+ let DecoderNamespace = "GFX11" in
2166
2167
multiclass MUBUF_Real_Atomic_gfx11_Renamed_impl<bits<8> op, bit is_return,
2167
2168
string real_name> {
2168
2169
defvar Rtn = !if(!eq(is_return, 1), "_RTN", "");
@@ -2191,7 +2192,7 @@ multiclass MUBUF_Real_Atomic_gfx11_Renamed<bits<8> op, string real_name> :
2191
2192
def : Pre_gfx11_MUBUF_Name<get_MUBUF_ps<NAME>.Mnemonic, real_name>;
2192
2193
}
2193
2194
2194
- let AssemblerPredicate = isGFX11Only, DecoderNamespace = "GFX11" in {
2195
+ let DecoderNamespace = "GFX11" in {
2195
2196
def BUFFER_GL0_INV_gfx11 : MUBUF_Real_gfx11<0x02B, BUFFER_GL0_INV>;
2196
2197
def BUFFER_GL1_INV_gfx11 : MUBUF_Real_gfx11<0x02C, BUFFER_GL1_INV>;
2197
2198
}
@@ -2279,7 +2280,7 @@ defm BUFFER_ATOMIC_XOR_X2 : MUBUF_Real_Atomic_gfx11_Renamed<0x04B, "buff
2279
2280
// MUBUF - GFX10.
2280
2281
//===----------------------------------------------------------------------===//
2281
2282
2282
- let AssemblerPredicate = isGFX10Only, DecoderNamespace = "GFX10" in {
2283
+ let DecoderNamespace = "GFX10" in {
2283
2284
multiclass MUBUF_Real_AllAddr_Helper_gfx10<bits<8> op> {
2284
2285
def _BOTHEN_gfx10 :
2285
2286
MUBUF_Real_gfx10<op, !cast<MUBUF_Pseudo>(NAME#"_BOTHEN")>;
@@ -2336,7 +2337,7 @@ let AssemblerPredicate = isGFX10Only, DecoderNamespace = "GFX10" in {
2336
2337
MUBUF_Real_gfx10<op, !cast<MUBUF_Pseudo>(NAME#"_OFFSET")>,
2337
2338
AtomicNoRet<NAME # "_OFFSET_gfx10", 0>;
2338
2339
}
2339
- } // End AssemblerPredicate = isGFX10Only, DecoderNamespace = "GFX10"
2340
+ } // End DecoderNamespace = "GFX10"
2340
2341
2341
2342
defm BUFFER_STORE_BYTE_D16_HI : MUBUF_Real_AllAddr_gfx10<0x019>;
2342
2343
defm BUFFER_STORE_SHORT_D16_HI : MUBUF_Real_AllAddr_gfx10<0x01b>;
0 commit comments