diff --git a/llvm/lib/Target/AMDGPU/SMInstructions.td b/llvm/lib/Target/AMDGPU/SMInstructions.td index a91fb87998fe5..afc9da07bc96f 100644 --- a/llvm/lib/Target/AMDGPU/SMInstructions.td +++ b/llvm/lib/Target/AMDGPU/SMInstructions.td @@ -67,6 +67,7 @@ class SM_Real let UseNamedOperandTable = ps.UseNamedOperandTable; let SchedRW = ps.SchedRW; let SubtargetPredicate = ps.SubtargetPredicate; + let OtherPredicates = ps.OtherPredicates; let AsmMatchConverter = ps.AsmMatchConverter; let IsAtomicRet = ps.IsAtomicRet; let IsAtomicNoRet = ps.IsAtomicNoRet; @@ -1172,11 +1173,9 @@ defm S_LOAD_DWORDX4 : SM_Real_Loads_gfx10<0x002>; defm S_LOAD_DWORDX8 : SM_Real_Loads_gfx10<0x003>; defm S_LOAD_DWORDX16 : SM_Real_Loads_gfx10<0x004>; -let SubtargetPredicate = HasScalarFlatScratchInsts in { defm S_SCRATCH_LOAD_DWORD : SM_Real_Loads_gfx10<0x005>; defm S_SCRATCH_LOAD_DWORDX2 : SM_Real_Loads_gfx10<0x006>; defm S_SCRATCH_LOAD_DWORDX4 : SM_Real_Loads_gfx10<0x007>; -} // End SubtargetPredicate = HasScalarFlatScratchInsts defm S_BUFFER_LOAD_DWORD : SM_Real_Loads_gfx10<0x008>; defm S_BUFFER_LOAD_DWORDX2 : SM_Real_Loads_gfx10<0x009>; @@ -1184,19 +1183,15 @@ defm S_BUFFER_LOAD_DWORDX4 : SM_Real_Loads_gfx10<0x00a>; defm S_BUFFER_LOAD_DWORDX8 : SM_Real_Loads_gfx10<0x00b>; defm S_BUFFER_LOAD_DWORDX16 : SM_Real_Loads_gfx10<0x00c>; -let SubtargetPredicate = HasScalarStores in { defm S_STORE_DWORD : SM_Real_Stores_gfx10<0x010>; defm S_STORE_DWORDX2 : SM_Real_Stores_gfx10<0x011>; defm S_STORE_DWORDX4 : SM_Real_Stores_gfx10<0x012>; -let OtherPredicates = [HasScalarFlatScratchInsts] in { defm S_SCRATCH_STORE_DWORD : SM_Real_Stores_gfx10<0x015>; defm S_SCRATCH_STORE_DWORDX2 : SM_Real_Stores_gfx10<0x016>; defm S_SCRATCH_STORE_DWORDX4 : SM_Real_Stores_gfx10<0x017>; -} // End OtherPredicates = [HasScalarFlatScratchInsts] defm S_BUFFER_STORE_DWORD : SM_Real_Stores_gfx10<0x018>; defm S_BUFFER_STORE_DWORDX2 : SM_Real_Stores_gfx10<0x019>; defm S_BUFFER_STORE_DWORDX4 : SM_Real_Stores_gfx10<0x01a>; -} // End SubtargetPredicate = HasScalarStores def S_MEMREALTIME_gfx10 : SMEM_Real_gfx10<0x025, S_MEMREALTIME>; def S_MEMTIME_gfx10 : SMEM_Real_gfx10<0x024, S_MEMTIME>; @@ -1204,9 +1199,7 @@ def S_GL1_INV_gfx10 : SMEM_Real_gfx10<0x01f, S_GL1_INV>; def S_GET_WAVEID_IN_WORKGROUP_gfx10 : SMEM_Real_gfx10<0x02a, S_GET_WAVEID_IN_WORKGROUP>; def S_DCACHE_INV_gfx10 : SMEM_Real_gfx10<0x020, S_DCACHE_INV>; -let SubtargetPredicate = HasScalarStores in { def S_DCACHE_WB_gfx10 : SMEM_Real_gfx10<0x021, S_DCACHE_WB>; -} // End SubtargetPredicate = HasScalarStores multiclass SM_Real_Probe_gfx10 op> { defvar ps = NAME; @@ -1243,8 +1236,6 @@ multiclass SM_Real_Atomics_gfx10 op> { def _SGPR_IMM_RTN_gfx10 : SMEM_Atomic_Real_gfx10 (ps#_SGPR_IMM_RTN)>; } -let SubtargetPredicate = HasScalarAtomics in { - defm S_BUFFER_ATOMIC_SWAP : SM_Real_Atomics_gfx10 <0x40>; defm S_BUFFER_ATOMIC_CMPSWAP : SM_Real_Atomics_gfx10 <0x41>; defm S_BUFFER_ATOMIC_ADD : SM_Real_Atomics_gfx10 <0x42>; @@ -1311,8 +1302,6 @@ multiclass SM_Real_Discard_gfx10 op> { defm S_DCACHE_DISCARD : SM_Real_Discard_gfx10 <0x28>; defm S_DCACHE_DISCARD_X2 : SM_Real_Discard_gfx10 <0x29>; -} // End SubtargetPredicate = HasScalarAtomics - def SMInfoTable : GenericTable { let FilterClass = "SM_Real"; let CppTypeName = "SMInfo";