@@ -67,6 +67,7 @@ class SM_Real <SM_Pseudo ps, string opName = ps.Mnemonic>
67
67
let UseNamedOperandTable = ps.UseNamedOperandTable;
68
68
let SchedRW = ps.SchedRW;
69
69
let SubtargetPredicate = ps.SubtargetPredicate;
70
+ let OtherPredicates = ps.OtherPredicates;
70
71
let AsmMatchConverter = ps.AsmMatchConverter;
71
72
let IsAtomicRet = ps.IsAtomicRet;
72
73
let IsAtomicNoRet = ps.IsAtomicNoRet;
@@ -1172,41 +1173,33 @@ defm S_LOAD_DWORDX4 : SM_Real_Loads_gfx10<0x002>;
1172
1173
defm S_LOAD_DWORDX8 : SM_Real_Loads_gfx10<0x003>;
1173
1174
defm S_LOAD_DWORDX16 : SM_Real_Loads_gfx10<0x004>;
1174
1175
1175
- let SubtargetPredicate = HasScalarFlatScratchInsts in {
1176
1176
defm S_SCRATCH_LOAD_DWORD : SM_Real_Loads_gfx10<0x005>;
1177
1177
defm S_SCRATCH_LOAD_DWORDX2 : SM_Real_Loads_gfx10<0x006>;
1178
1178
defm S_SCRATCH_LOAD_DWORDX4 : SM_Real_Loads_gfx10<0x007>;
1179
- } // End SubtargetPredicate = HasScalarFlatScratchInsts
1180
1179
1181
1180
defm S_BUFFER_LOAD_DWORD : SM_Real_Loads_gfx10<0x008>;
1182
1181
defm S_BUFFER_LOAD_DWORDX2 : SM_Real_Loads_gfx10<0x009>;
1183
1182
defm S_BUFFER_LOAD_DWORDX4 : SM_Real_Loads_gfx10<0x00a>;
1184
1183
defm S_BUFFER_LOAD_DWORDX8 : SM_Real_Loads_gfx10<0x00b>;
1185
1184
defm S_BUFFER_LOAD_DWORDX16 : SM_Real_Loads_gfx10<0x00c>;
1186
1185
1187
- let SubtargetPredicate = HasScalarStores in {
1188
1186
defm S_STORE_DWORD : SM_Real_Stores_gfx10<0x010>;
1189
1187
defm S_STORE_DWORDX2 : SM_Real_Stores_gfx10<0x011>;
1190
1188
defm S_STORE_DWORDX4 : SM_Real_Stores_gfx10<0x012>;
1191
- let OtherPredicates = [HasScalarFlatScratchInsts] in {
1192
1189
defm S_SCRATCH_STORE_DWORD : SM_Real_Stores_gfx10<0x015>;
1193
1190
defm S_SCRATCH_STORE_DWORDX2 : SM_Real_Stores_gfx10<0x016>;
1194
1191
defm S_SCRATCH_STORE_DWORDX4 : SM_Real_Stores_gfx10<0x017>;
1195
- } // End OtherPredicates = [HasScalarFlatScratchInsts]
1196
1192
defm S_BUFFER_STORE_DWORD : SM_Real_Stores_gfx10<0x018>;
1197
1193
defm S_BUFFER_STORE_DWORDX2 : SM_Real_Stores_gfx10<0x019>;
1198
1194
defm S_BUFFER_STORE_DWORDX4 : SM_Real_Stores_gfx10<0x01a>;
1199
- } // End SubtargetPredicate = HasScalarStores
1200
1195
1201
1196
def S_MEMREALTIME_gfx10 : SMEM_Real_gfx10<0x025, S_MEMREALTIME>;
1202
1197
def S_MEMTIME_gfx10 : SMEM_Real_gfx10<0x024, S_MEMTIME>;
1203
1198
def S_GL1_INV_gfx10 : SMEM_Real_gfx10<0x01f, S_GL1_INV>;
1204
1199
def S_GET_WAVEID_IN_WORKGROUP_gfx10 : SMEM_Real_gfx10<0x02a, S_GET_WAVEID_IN_WORKGROUP>;
1205
1200
def S_DCACHE_INV_gfx10 : SMEM_Real_gfx10<0x020, S_DCACHE_INV>;
1206
1201
1207
- let SubtargetPredicate = HasScalarStores in {
1208
1202
def S_DCACHE_WB_gfx10 : SMEM_Real_gfx10<0x021, S_DCACHE_WB>;
1209
- } // End SubtargetPredicate = HasScalarStores
1210
1203
1211
1204
multiclass SM_Real_Probe_gfx10<bits<8> op> {
1212
1205
defvar ps = NAME;
@@ -1243,8 +1236,6 @@ multiclass SM_Real_Atomics_gfx10<bits<8> op> {
1243
1236
def _SGPR_IMM_RTN_gfx10 : SMEM_Atomic_Real_gfx10 <op, !cast<SM_Atomic_Pseudo>(ps#_SGPR_IMM_RTN)>;
1244
1237
}
1245
1238
1246
- let SubtargetPredicate = HasScalarAtomics in {
1247
-
1248
1239
defm S_BUFFER_ATOMIC_SWAP : SM_Real_Atomics_gfx10 <0x40>;
1249
1240
defm S_BUFFER_ATOMIC_CMPSWAP : SM_Real_Atomics_gfx10 <0x41>;
1250
1241
defm S_BUFFER_ATOMIC_ADD : SM_Real_Atomics_gfx10 <0x42>;
@@ -1311,8 +1302,6 @@ multiclass SM_Real_Discard_gfx10<bits<8> op> {
1311
1302
defm S_DCACHE_DISCARD : SM_Real_Discard_gfx10 <0x28>;
1312
1303
defm S_DCACHE_DISCARD_X2 : SM_Real_Discard_gfx10 <0x29>;
1313
1304
1314
- } // End SubtargetPredicate = HasScalarAtomics
1315
-
1316
1305
def SMInfoTable : GenericTable {
1317
1306
let FilterClass = "SM_Real";
1318
1307
let CppTypeName = "SMInfo";
0 commit comments