From: Nico Weber Date: Mon, 2 Apr 2018 14:20:23 +0000 (+0000) Subject: Revert r328975, it makes TableGen assert on the bots. X-Git-Tag: llvmorg-7.0.0-rc1~9212 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f492f58182b64faadfacd72ec6c1810abb1bdb27;p=platform%2Fupstream%2Fllvm.git Revert r328975, it makes TableGen assert on the bots. llvm-svn: 328978 --- diff --git a/llvm/lib/Target/AMDGPU/AMDGPU.td b/llvm/lib/Target/AMDGPU/AMDGPU.td index ff6baf7..7f4dea4 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPU.td +++ b/llvm/lib/Target/AMDGPU/AMDGPU.td @@ -250,12 +250,6 @@ def FeatureScalarStores : SubtargetFeature<"scalar-stores", "Has store scalar memory instructions" >; -def FeatureScalarAtomics : SubtargetFeature<"scalar-atomics", - "HasScalarAtomics", - "true", - "Has atomic scalar memory instructions" ->; - def FeatureSDWA : SubtargetFeature<"sdwa", "HasSDWA", "true", @@ -516,7 +510,7 @@ def FeatureGFX9 : SubtargetFeatureGeneration<"GFX9", FeatureFastFMAF32, FeatureDPP, FeatureIntClamp, FeatureSDWA, FeatureSDWAOmod, FeatureSDWAScalar, FeatureSDWASdst, FeatureFlatInstOffsets, FeatureFlatGlobalInsts, FeatureFlatScratchInsts, - FeatureAddNoCarryInsts, FeatureScalarAtomics + FeatureAddNoCarryInsts ] >; @@ -772,9 +766,6 @@ def HasIntClamp : Predicate<"Subtarget->hasIntClamp()">, def HasMadMixInsts : Predicate<"Subtarget->hasMadMixInsts()">, AssemblerPredicate<"FeatureMadMixInsts">; -def HasScalarAtomics : Predicate<"Subtarget->hasScalarAtomics()">, - AssemblerPredicate<"FeatureScalarAtomics">; - def EnableLateCFGStructurize : Predicate< "EnableLateStructurizeCFG">; diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp index 27b5799..640ff7e 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp @@ -150,7 +150,6 @@ AMDGPUSubtarget::AMDGPUSubtarget(const Triple &TT, StringRef GPU, StringRef FS, HasMovrel(false), HasVGPRIndexMode(false), HasScalarStores(false), - HasScalarAtomics(false), HasInv2PiInlineImm(false), HasSDWA(false), HasSDWAOmod(false), diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h index e3455d3..a7e52cb 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h +++ b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h @@ -152,7 +152,6 @@ protected: bool HasMovrel; bool HasVGPRIndexMode; bool HasScalarStores; - bool HasScalarAtomics; bool HasInv2PiInlineImm; bool HasSDWA; bool HasSDWAOmod; @@ -785,10 +784,6 @@ public: return HasScalarStores; } - bool hasScalarAtomics() const { - return HasScalarAtomics; - } - bool hasInv2PiInlineImm() const { return HasInv2PiInlineImm; } diff --git a/llvm/lib/Target/AMDGPU/SMInstructions.td b/llvm/lib/Target/AMDGPU/SMInstructions.td index 4ca59ed..78482df 100644 --- a/llvm/lib/Target/AMDGPU/SMInstructions.td +++ b/llvm/lib/Target/AMDGPU/SMInstructions.td @@ -144,55 +144,6 @@ class SM_Inval_Pseudo : SM_Pseudo< let has_offset = 0; } -//===----------------------------------------------------------------------===// -// Scalar Atomic Memory Classes -//===----------------------------------------------------------------------===// - -class SM_Atomic_Pseudo - : SM_Pseudo { - - bit glc = isRet; - - let mayLoad = 1; - let mayStore = 1; - let has_glc = 1; - - // Should these be set? - let ScalarStore = 1; - let hasSideEffects = 1; - let maybeAtomic = 1; -} - -class SM_Pseudo_Atomic : - SM_Atomic_Pseudo { - let offset_is_imm = isImm; - let PseudoInstr = opName # !if(isImm, - !if(isRet, "_IMM_RTN", "_IMM"), - !if(isRet, "_SGPR_RTN", "_SGPR")); - - let Constraints = !if(isRet, "$sdst = $sdata", ""); - let DisableEncoding = !if(isRet, "$sdata", ""); -} - -multiclass SM_Pseudo_Atomics { - def _IMM : SM_Pseudo_Atomic ; - def _SGPR : SM_Pseudo_Atomic ; - def _IMM_RTN : SM_Pseudo_Atomic ; - def _SGPR_RTN : SM_Pseudo_Atomic ; -} //===----------------------------------------------------------------------===// // Scalar Memory Instructions @@ -272,66 +223,6 @@ defm S_SCRATCH_STORE_DWORDX2 : SM_Pseudo_Stores <"s_scratch_store_dwordx2", SReg defm S_SCRATCH_STORE_DWORDX4 : SM_Pseudo_Stores <"s_scratch_store_dwordx4", SReg_64, SReg_128>; } // SubtargetPredicate = HasFlatScratchInsts -let SubtargetPredicate = HasScalarAtomics in { - -defm S_BUFFER_ATOMIC_SWAP : SM_Pseudo_Atomics <"s_buffer_atomic_swap", SReg_128, SReg_32_XM0_XEXEC>; -defm S_BUFFER_ATOMIC_CMPSWAP : SM_Pseudo_Atomics <"s_buffer_atomic_cmpswap", SReg_128, SReg_64_XEXEC>; -defm S_BUFFER_ATOMIC_ADD : SM_Pseudo_Atomics <"s_buffer_atomic_add", SReg_128, SReg_32_XM0_XEXEC>; -defm S_BUFFER_ATOMIC_SUB : SM_Pseudo_Atomics <"s_buffer_atomic_sub", SReg_128, SReg_32_XM0_XEXEC>; -defm S_BUFFER_ATOMIC_SMIN : SM_Pseudo_Atomics <"s_buffer_atomic_smin", SReg_128, SReg_32_XM0_XEXEC>; -defm S_BUFFER_ATOMIC_UMIN : SM_Pseudo_Atomics <"s_buffer_atomic_umin", SReg_128, SReg_32_XM0_XEXEC>; -defm S_BUFFER_ATOMIC_SMAX : SM_Pseudo_Atomics <"s_buffer_atomic_smax", SReg_128, SReg_32_XM0_XEXEC>; -defm S_BUFFER_ATOMIC_UMAX : SM_Pseudo_Atomics <"s_buffer_atomic_umax", SReg_128, SReg_32_XM0_XEXEC>; -defm S_BUFFER_ATOMIC_AND : SM_Pseudo_Atomics <"s_buffer_atomic_and", SReg_128, SReg_32_XM0_XEXEC>; -defm S_BUFFER_ATOMIC_OR : SM_Pseudo_Atomics <"s_buffer_atomic_or", SReg_128, SReg_32_XM0_XEXEC>; -defm S_BUFFER_ATOMIC_XOR : SM_Pseudo_Atomics <"s_buffer_atomic_xor", SReg_128, SReg_32_XM0_XEXEC>; -defm S_BUFFER_ATOMIC_INC : SM_Pseudo_Atomics <"s_buffer_atomic_inc", SReg_128, SReg_32_XM0_XEXEC>; -defm S_BUFFER_ATOMIC_DEC : SM_Pseudo_Atomics <"s_buffer_atomic_dec", SReg_128, SReg_32_XM0_XEXEC>; - -defm S_BUFFER_ATOMIC_SWAP_X2 : SM_Pseudo_Atomics <"s_buffer_atomic_swap_x2", SReg_128, SReg_64_XEXEC>; -defm S_BUFFER_ATOMIC_CMPSWAP_X2 : SM_Pseudo_Atomics <"s_buffer_atomic_cmpswap_x2", SReg_128, SReg_128>; -defm S_BUFFER_ATOMIC_ADD_X2 : SM_Pseudo_Atomics <"s_buffer_atomic_add_x2", SReg_128, SReg_64_XEXEC>; -defm S_BUFFER_ATOMIC_SUB_X2 : SM_Pseudo_Atomics <"s_buffer_atomic_sub_x2", SReg_128, SReg_64_XEXEC>; -defm S_BUFFER_ATOMIC_SMIN_X2 : SM_Pseudo_Atomics <"s_buffer_atomic_smin_x2", SReg_128, SReg_64_XEXEC>; -defm S_BUFFER_ATOMIC_UMIN_X2 : SM_Pseudo_Atomics <"s_buffer_atomic_umin_x2", SReg_128, SReg_64_XEXEC>; -defm S_BUFFER_ATOMIC_SMAX_X2 : SM_Pseudo_Atomics <"s_buffer_atomic_smax_x2", SReg_128, SReg_64_XEXEC>; -defm S_BUFFER_ATOMIC_UMAX_X2 : SM_Pseudo_Atomics <"s_buffer_atomic_umax_x2", SReg_128, SReg_64_XEXEC>; -defm S_BUFFER_ATOMIC_AND_X2 : SM_Pseudo_Atomics <"s_buffer_atomic_and_x2", SReg_128, SReg_64_XEXEC>; -defm S_BUFFER_ATOMIC_OR_X2 : SM_Pseudo_Atomics <"s_buffer_atomic_or_x2", SReg_128, SReg_64_XEXEC>; -defm S_BUFFER_ATOMIC_XOR_X2 : SM_Pseudo_Atomics <"s_buffer_atomic_xor_x2", SReg_128, SReg_64_XEXEC>; -defm S_BUFFER_ATOMIC_INC_X2 : SM_Pseudo_Atomics <"s_buffer_atomic_inc_x2", SReg_128, SReg_64_XEXEC>; -defm S_BUFFER_ATOMIC_DEC_X2 : SM_Pseudo_Atomics <"s_buffer_atomic_dec_x2", SReg_128, SReg_64_XEXEC>; - -defm S_ATOMIC_SWAP : SM_Pseudo_Atomics <"s_atomic_swap", SReg_64, SReg_32_XM0_XEXEC>; -defm S_ATOMIC_CMPSWAP : SM_Pseudo_Atomics <"s_atomic_cmpswap", SReg_64, SReg_64_XEXEC>; -defm S_ATOMIC_ADD : SM_Pseudo_Atomics <"s_atomic_add", SReg_64, SReg_32_XM0_XEXEC>; -defm S_ATOMIC_SUB : SM_Pseudo_Atomics <"s_atomic_sub", SReg_64, SReg_32_XM0_XEXEC>; -defm S_ATOMIC_SMIN : SM_Pseudo_Atomics <"s_atomic_smin", SReg_64, SReg_32_XM0_XEXEC>; -defm S_ATOMIC_UMIN : SM_Pseudo_Atomics <"s_atomic_umin", SReg_64, SReg_32_XM0_XEXEC>; -defm S_ATOMIC_SMAX : SM_Pseudo_Atomics <"s_atomic_smax", SReg_64, SReg_32_XM0_XEXEC>; -defm S_ATOMIC_UMAX : SM_Pseudo_Atomics <"s_atomic_umax", SReg_64, SReg_32_XM0_XEXEC>; -defm S_ATOMIC_AND : SM_Pseudo_Atomics <"s_atomic_and", SReg_64, SReg_32_XM0_XEXEC>; -defm S_ATOMIC_OR : SM_Pseudo_Atomics <"s_atomic_or", SReg_64, SReg_32_XM0_XEXEC>; -defm S_ATOMIC_XOR : SM_Pseudo_Atomics <"s_atomic_xor", SReg_64, SReg_32_XM0_XEXEC>; -defm S_ATOMIC_INC : SM_Pseudo_Atomics <"s_atomic_inc", SReg_64, SReg_32_XM0_XEXEC>; -defm S_ATOMIC_DEC : SM_Pseudo_Atomics <"s_atomic_dec", SReg_64, SReg_32_XM0_XEXEC>; - -defm S_ATOMIC_SWAP_X2 : SM_Pseudo_Atomics <"s_atomic_swap_x2", SReg_64, SReg_64_XEXEC>; -defm S_ATOMIC_CMPSWAP_X2 : SM_Pseudo_Atomics <"s_atomic_cmpswap_x2", SReg_64, SReg_128>; -defm S_ATOMIC_ADD_X2 : SM_Pseudo_Atomics <"s_atomic_add_x2", SReg_64, SReg_64_XEXEC>; -defm S_ATOMIC_SUB_X2 : SM_Pseudo_Atomics <"s_atomic_sub_x2", SReg_64, SReg_64_XEXEC>; -defm S_ATOMIC_SMIN_X2 : SM_Pseudo_Atomics <"s_atomic_smin_x2", SReg_64, SReg_64_XEXEC>; -defm S_ATOMIC_UMIN_X2 : SM_Pseudo_Atomics <"s_atomic_umin_x2", SReg_64, SReg_64_XEXEC>; -defm S_ATOMIC_SMAX_X2 : SM_Pseudo_Atomics <"s_atomic_smax_x2", SReg_64, SReg_64_XEXEC>; -defm S_ATOMIC_UMAX_X2 : SM_Pseudo_Atomics <"s_atomic_umax_x2", SReg_64, SReg_64_XEXEC>; -defm S_ATOMIC_AND_X2 : SM_Pseudo_Atomics <"s_atomic_and_x2", SReg_64, SReg_64_XEXEC>; -defm S_ATOMIC_OR_X2 : SM_Pseudo_Atomics <"s_atomic_or_x2", SReg_64, SReg_64_XEXEC>; -defm S_ATOMIC_XOR_X2 : SM_Pseudo_Atomics <"s_atomic_xor_x2", SReg_64, SReg_64_XEXEC>; -defm S_ATOMIC_INC_X2 : SM_Pseudo_Atomics <"s_atomic_inc_x2", SReg_64, SReg_64_XEXEC>; -defm S_ATOMIC_DEC_X2 : SM_Pseudo_Atomics <"s_atomic_dec_x2", SReg_64, SReg_64_XEXEC>; - -} // let SubtargetPredicate = HasScalarAtomics - //===----------------------------------------------------------------------===// // Scalar Memory Patterns //===----------------------------------------------------------------------===// @@ -558,85 +449,6 @@ defm S_SCRATCH_STORE_DWORDX2 : SM_Real_Stores_vi <0x16, "S_SCRATCH_STORE_DWORDX2 defm S_SCRATCH_STORE_DWORDX4 : SM_Real_Stores_vi <0x17, "S_SCRATCH_STORE_DWORDX4">; //===----------------------------------------------------------------------===// -// GFX9 -//===----------------------------------------------------------------------===// - -class SMEM_Atomic_Real_vi op, SM_Atomic_Pseudo ps> - : SMEM_Real_vi { - - bits<7> sdata; - - let Constraints = ps.Constraints; - let DisableEncoding = ps.DisableEncoding; - - let glc = ps.glc; - let Inst{12-6} = sdata{6-0}; -} - -multiclass SM_Real_Atomics_vi op, string ps> { - def _IMM_vi : SMEM_Atomic_Real_vi (ps#_IMM)>; - def _SGPR_vi : SMEM_Atomic_Real_vi (ps#_SGPR)>; - def _IMM_RTN_vi : SMEM_Atomic_Real_vi (ps#_IMM_RTN)>; - def _SGPR_RTN_vi : SMEM_Atomic_Real_vi (ps#_SGPR_RTN)>; -} - -defm S_BUFFER_ATOMIC_SWAP : SM_Real_Atomics_vi <0x40, "S_BUFFER_ATOMIC_SWAP">; -defm S_BUFFER_ATOMIC_CMPSWAP : SM_Real_Atomics_vi <0x41, "S_BUFFER_ATOMIC_CMPSWAP">; -defm S_BUFFER_ATOMIC_ADD : SM_Real_Atomics_vi <0x42, "S_BUFFER_ATOMIC_ADD">; -defm S_BUFFER_ATOMIC_SUB : SM_Real_Atomics_vi <0x43, "S_BUFFER_ATOMIC_SUB">; -defm S_BUFFER_ATOMIC_SMIN : SM_Real_Atomics_vi <0x44, "S_BUFFER_ATOMIC_SMIN">; -defm S_BUFFER_ATOMIC_UMIN : SM_Real_Atomics_vi <0x45, "S_BUFFER_ATOMIC_UMIN">; -defm S_BUFFER_ATOMIC_SMAX : SM_Real_Atomics_vi <0x46, "S_BUFFER_ATOMIC_SMAX">; -defm S_BUFFER_ATOMIC_UMAX : SM_Real_Atomics_vi <0x47, "S_BUFFER_ATOMIC_UMAX">; -defm S_BUFFER_ATOMIC_AND : SM_Real_Atomics_vi <0x48, "S_BUFFER_ATOMIC_AND">; -defm S_BUFFER_ATOMIC_OR : SM_Real_Atomics_vi <0x49, "S_BUFFER_ATOMIC_OR">; -defm S_BUFFER_ATOMIC_XOR : SM_Real_Atomics_vi <0x4a, "S_BUFFER_ATOMIC_XOR">; -defm S_BUFFER_ATOMIC_INC : SM_Real_Atomics_vi <0x4b, "S_BUFFER_ATOMIC_INC">; -defm S_BUFFER_ATOMIC_DEC : SM_Real_Atomics_vi <0x4c, "S_BUFFER_ATOMIC_DEC">; - -defm S_BUFFER_ATOMIC_SWAP_X2 : SM_Real_Atomics_vi <0x60, "S_BUFFER_ATOMIC_SWAP_X2">; -defm S_BUFFER_ATOMIC_CMPSWAP_X2 : SM_Real_Atomics_vi <0x61, "S_BUFFER_ATOMIC_CMPSWAP_X2">; -defm S_BUFFER_ATOMIC_ADD_X2 : SM_Real_Atomics_vi <0x62, "S_BUFFER_ATOMIC_ADD_X2">; -defm S_BUFFER_ATOMIC_SUB_X2 : SM_Real_Atomics_vi <0x63, "S_BUFFER_ATOMIC_SUB_X2">; -defm S_BUFFER_ATOMIC_SMIN_X2 : SM_Real_Atomics_vi <0x64, "S_BUFFER_ATOMIC_SMIN_X2">; -defm S_BUFFER_ATOMIC_UMIN_X2 : SM_Real_Atomics_vi <0x65, "S_BUFFER_ATOMIC_UMIN_X2">; -defm S_BUFFER_ATOMIC_SMAX_X2 : SM_Real_Atomics_vi <0x66, "S_BUFFER_ATOMIC_SMAX_X2">; -defm S_BUFFER_ATOMIC_UMAX_X2 : SM_Real_Atomics_vi <0x67, "S_BUFFER_ATOMIC_UMAX_X2">; -defm S_BUFFER_ATOMIC_AND_X2 : SM_Real_Atomics_vi <0x68, "S_BUFFER_ATOMIC_AND_X2">; -defm S_BUFFER_ATOMIC_OR_X2 : SM_Real_Atomics_vi <0x69, "S_BUFFER_ATOMIC_OR_X2">; -defm S_BUFFER_ATOMIC_XOR_X2 : SM_Real_Atomics_vi <0x6a, "S_BUFFER_ATOMIC_XOR_X2">; -defm S_BUFFER_ATOMIC_INC_X2 : SM_Real_Atomics_vi <0x6b, "S_BUFFER_ATOMIC_INC_X2">; -defm S_BUFFER_ATOMIC_DEC_X2 : SM_Real_Atomics_vi <0x6c, "S_BUFFER_ATOMIC_DEC_X2">; - -defm S_ATOMIC_SWAP : SM_Real_Atomics_vi <0x80, "S_ATOMIC_SWAP">; -defm S_ATOMIC_CMPSWAP : SM_Real_Atomics_vi <0x81, "S_ATOMIC_CMPSWAP">; -defm S_ATOMIC_ADD : SM_Real_Atomics_vi <0x82, "S_ATOMIC_ADD">; -defm S_ATOMIC_SUB : SM_Real_Atomics_vi <0x83, "S_ATOMIC_SUB">; -defm S_ATOMIC_SMIN : SM_Real_Atomics_vi <0x84, "S_ATOMIC_SMIN">; -defm S_ATOMIC_UMIN : SM_Real_Atomics_vi <0x85, "S_ATOMIC_UMIN">; -defm S_ATOMIC_SMAX : SM_Real_Atomics_vi <0x86, "S_ATOMIC_SMAX">; -defm S_ATOMIC_UMAX : SM_Real_Atomics_vi <0x87, "S_ATOMIC_UMAX">; -defm S_ATOMIC_AND : SM_Real_Atomics_vi <0x88, "S_ATOMIC_AND">; -defm S_ATOMIC_OR : SM_Real_Atomics_vi <0x89, "S_ATOMIC_OR">; -defm S_ATOMIC_XOR : SM_Real_Atomics_vi <0x8a, "S_ATOMIC_XOR">; -defm S_ATOMIC_INC : SM_Real_Atomics_vi <0x8b, "S_ATOMIC_INC">; -defm S_ATOMIC_DEC : SM_Real_Atomics_vi <0x8c, "S_ATOMIC_DEC">; - -defm S_ATOMIC_SWAP_X2 : SM_Real_Atomics_vi <0xa0, "S_ATOMIC_SWAP_X2">; -defm S_ATOMIC_CMPSWAP_X2 : SM_Real_Atomics_vi <0xa1, "S_ATOMIC_CMPSWAP_X2">; -defm S_ATOMIC_ADD_X2 : SM_Real_Atomics_vi <0xa2, "S_ATOMIC_ADD_X2">; -defm S_ATOMIC_SUB_X2 : SM_Real_Atomics_vi <0xa3, "S_ATOMIC_SUB_X2">; -defm S_ATOMIC_SMIN_X2 : SM_Real_Atomics_vi <0xa4, "S_ATOMIC_SMIN_X2">; -defm S_ATOMIC_UMIN_X2 : SM_Real_Atomics_vi <0xa5, "S_ATOMIC_UMIN_X2">; -defm S_ATOMIC_SMAX_X2 : SM_Real_Atomics_vi <0xa6, "S_ATOMIC_SMAX_X2">; -defm S_ATOMIC_UMAX_X2 : SM_Real_Atomics_vi <0xa7, "S_ATOMIC_UMAX_X2">; -defm S_ATOMIC_AND_X2 : SM_Real_Atomics_vi <0xa8, "S_ATOMIC_AND_X2">; -defm S_ATOMIC_OR_X2 : SM_Real_Atomics_vi <0xa9, "S_ATOMIC_OR_X2">; -defm S_ATOMIC_XOR_X2 : SM_Real_Atomics_vi <0xaa, "S_ATOMIC_XOR_X2">; -defm S_ATOMIC_INC_X2 : SM_Real_Atomics_vi <0xab, "S_ATOMIC_INC_X2">; -defm S_ATOMIC_DEC_X2 : SM_Real_Atomics_vi <0xac, "S_ATOMIC_DEC_X2">; - -//===----------------------------------------------------------------------===// // CI //===----------------------------------------------------------------------===// diff --git a/llvm/test/MC/AMDGPU/smem.s b/llvm/test/MC/AMDGPU/smem.s index b17dd24..e86896b 100644 --- a/llvm/test/MC/AMDGPU/smem.s +++ b/llvm/test/MC/AMDGPU/smem.s @@ -212,267 +212,3 @@ s_scratch_store_dwordx2 s[2:3], s[4:5], s101 glc s_scratch_store_dwordx4 s[4:7], s[4:5], s0 glc // GFX9: s_scratch_store_dwordx4 s[4:7], s[4:5], s0 glc ; encoding: [0x02,0x01,0x5d,0xc0,0x00,0x00,0x00,0x00] // NOSICIVI: error - -//===----------------------------------------------------------------------===// -// s_atomic instructions -//===----------------------------------------------------------------------===// - -s_atomic_add s5, s[2:3], s101 -// GFX9: s_atomic_add s5, s[2:3], s101 ; encoding: [0x41,0x01,0x08,0xc2,0x65,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_add s5, s[2:3], 0x0 -// GFX9: s_atomic_add s5, s[2:3], 0x0 ; encoding: [0x41,0x01,0x0a,0xc2,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_add s5, s[2:3], s0 glc -// GFX9: s_atomic_add s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x09,0xc2,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_add_x2 s[10:11], s[2:3], s101 -// GFX9: s_atomic_add_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x88,0xc2,0x65,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_and s5, s[2:3], s101 -// GFX9: s_atomic_and s5, s[2:3], s101 ; encoding: [0x41,0x01,0x20,0xc2,0x65,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_and_x2 s[10:11], s[2:3], 0x0 -// GFX9: s_atomic_and_x2 s[10:11], s[2:3], 0x0 ; encoding: [0x81,0x02,0xa2,0xc2,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_cmpswap s[10:11], s[2:3], s101 -// GFX9: s_atomic_cmpswap s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x04,0xc2,0x65,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_cmpswap s[10:11], s[2:3], 0x0 -// GFX9: s_atomic_cmpswap s[10:11], s[2:3], 0x0 ; encoding: [0x81,0x02,0x06,0xc2,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_cmpswap s[10:11], s[2:3], s0 glc -// GFX9: s_atomic_cmpswap s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x05,0xc2,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_cmpswap_x2 s[20:23], s[2:3], s101 -// GFX9: s_atomic_cmpswap_x2 s[20:23], s[2:3], s101 ; encoding: [0x01,0x05,0x84,0xc2,0x65,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_cmpswap_x2 s[20:23], s[2:3], 0x0 -// GFX9: s_atomic_cmpswap_x2 s[20:23], s[2:3], 0x0 ; encoding: [0x01,0x05,0x86,0xc2,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_cmpswap_x2 s[20:23], s[2:3], s0 glc -// GFX9: s_atomic_cmpswap_x2 s[20:23], s[2:3], s0 glc ; encoding: [0x01,0x05,0x85,0xc2,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_dec s5, s[2:3], s0 glc -// GFX9: s_atomic_dec s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x31,0xc2,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_dec_x2 s[10:11], s[2:3], s101 -// GFX9: s_atomic_dec_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0xb0,0xc2,0x65,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_inc s5, s[2:3], s0 glc -// GFX9: s_atomic_inc s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x2d,0xc2,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_inc_x2 s[10:11], s[2:3], s101 -// GFX9: s_atomic_inc_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0xac,0xc2,0x65,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_or s5, s[2:3], 0x0 -// GFX9: s_atomic_or s5, s[2:3], 0x0 ; encoding: [0x41,0x01,0x26,0xc2,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_or_x2 s[10:11], s[2:3], s0 glc -// GFX9: s_atomic_or_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0xa5,0xc2,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_smax s5, s[2:3], s101 -// GFX9: s_atomic_smax s5, s[2:3], s101 ; encoding: [0x41,0x01,0x18,0xc2,0x65,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_smax_x2 s[10:11], s[2:3], s0 glc -// GFX9: s_atomic_smax_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x99,0xc2,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_smin s5, s[2:3], s101 -// GFX9: s_atomic_smin s5, s[2:3], s101 ; encoding: [0x41,0x01,0x10,0xc2,0x65,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_smin_x2 s[10:11], s[2:3], s0 glc -// GFX9: s_atomic_smin_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x91,0xc2,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_sub s5, s[2:3], s101 -// GFX9: s_atomic_sub s5, s[2:3], s101 ; encoding: [0x41,0x01,0x0c,0xc2,0x65,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_sub_x2 s[10:11], s[2:3], s0 glc -// GFX9: s_atomic_sub_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x8d,0xc2,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_swap s5, s[2:3], s101 -// GFX9: s_atomic_swap s5, s[2:3], s101 ; encoding: [0x41,0x01,0x00,0xc2,0x65,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_swap_x2 s[10:11], s[2:3], s0 glc -// GFX9: s_atomic_swap_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x81,0xc2,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_umax s5, s[2:3], s0 glc -// GFX9: s_atomic_umax s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x1d,0xc2,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_umax_x2 s[10:11], s[2:3], s101 -// GFX9: s_atomic_umax_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x9c,0xc2,0x65,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_umin s5, s[2:3], s101 -// GFX9: s_atomic_umin s5, s[2:3], s101 ; encoding: [0x41,0x01,0x14,0xc2,0x65,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_umin_x2 s[10:11], s[2:3], s0 glc -// GFX9: s_atomic_umin_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x95,0xc2,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_xor s5, s[2:3], s101 -// GFX9: s_atomic_xor s5, s[2:3], s101 ; encoding: [0x41,0x01,0x28,0xc2,0x65,0x00,0x00,0x00] -// NOSICIVI: error: - -s_atomic_xor_x2 s[10:11], s[2:3], s0 glc -// GFX9: s_atomic_xor_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0xa9,0xc2,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -//===----------------------------------------------------------------------===// -// s_buffer_atomic instructions -//===----------------------------------------------------------------------===// - -s_buffer_atomic_add s5, s[4:7], s101 -// GFX9: s_buffer_atomic_add s5, s[4:7], s101 ; encoding: [0x42,0x01,0x08,0xc1,0x65,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_add s5, s[4:7], 0x0 -// GFX9: s_buffer_atomic_add s5, s[4:7], 0x0 ; encoding: [0x42,0x01,0x0a,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_add s5, s[4:7], s0 glc -// GFX9: s_buffer_atomic_add s5, s[4:7], s0 glc ; encoding: [0x42,0x01,0x09,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_add_x2 s[10:11], s[4:7], s0 -// GFX9: s_buffer_atomic_add_x2 s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x88,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_and s101, s[4:7], s0 -// GFX9: s_buffer_atomic_and s101, s[4:7], s0 ; encoding: [0x42,0x19,0x20,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_and_x2 s[10:11], s[8:11], s0 -// GFX9: s_buffer_atomic_and_x2 s[10:11], s[8:11], s0 ; encoding: [0x84,0x02,0xa0,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 -// GFX9: s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x04,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_cmpswap s[10:11], s[4:7], 0x0 -// GFX9: s_buffer_atomic_cmpswap s[10:11], s[4:7], 0x0 ; encoding: [0x82,0x02,0x06,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 glc -// GFX9: s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x05,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s101 -// GFX9: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s101 ; encoding: [0x02,0x05,0x84,0xc1,0x65,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], 0x0 -// GFX9: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], 0x0 ; encoding: [0x02,0x05,0x86,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s0 glc -// GFX9: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s0 glc ; encoding: [0x02,0x05,0x85,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_dec s5, s[4:7], s0 -// GFX9: s_buffer_atomic_dec s5, s[4:7], s0 ; encoding: [0x42,0x01,0x30,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_dec_x2 s[10:11], s[4:7], s0 glc -// GFX9: s_buffer_atomic_dec_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0xb1,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_inc s101, s[4:7], s0 -// GFX9: s_buffer_atomic_inc s101, s[4:7], s0 ; encoding: [0x42,0x19,0x2c,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_inc_x2 s[10:11], s[4:7], 0x0 -// GFX9: s_buffer_atomic_inc_x2 s[10:11], s[4:7], 0x0 ; encoding: [0x82,0x02,0xae,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_or s5, s[8:11], s0 -// GFX9: s_buffer_atomic_or s5, s[8:11], s0 ; encoding: [0x44,0x01,0x24,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_or_x2 s[10:11], s[96:99], s0 -// GFX9: s_buffer_atomic_or_x2 s[10:11], s[96:99], s0 ; encoding: [0xb0,0x02,0xa4,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_smax s5, s[4:7], s101 -// GFX9: s_buffer_atomic_smax s5, s[4:7], s101 ; encoding: [0x42,0x01,0x18,0xc1,0x65,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_smax_x2 s[100:101], s[4:7], s0 -// GFX9: s_buffer_atomic_smax_x2 s[100:101], s[4:7], s0 ; encoding: [0x02,0x19,0x98,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_smin s5, s[4:7], 0x0 -// GFX9: s_buffer_atomic_smin s5, s[4:7], 0x0 ; encoding: [0x42,0x01,0x12,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_smin_x2 s[12:13], s[4:7], s0 -// GFX9: s_buffer_atomic_smin_x2 s[12:13], s[4:7], s0 ; encoding: [0x02,0x03,0x90,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_sub s5, s[4:7], s0 glc -// GFX9: s_buffer_atomic_sub s5, s[4:7], s0 glc ; encoding: [0x42,0x01,0x0d,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_sub_x2 s[10:11], s[4:7], s0 -// GFX9: s_buffer_atomic_sub_x2 s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x8c,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_swap s5, s[4:7], s0 -// GFX9: s_buffer_atomic_swap s5, s[4:7], s0 ; encoding: [0x42,0x01,0x00,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_swap_x2 s[10:11], s[4:7], s0 glc -// GFX9: s_buffer_atomic_swap_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x81,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_umax s5, s[4:7], s0 -// GFX9: s_buffer_atomic_umax s5, s[4:7], s0 ; encoding: [0x42,0x01,0x1c,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_umax_x2 s[10:11], s[4:7], s0 glc -// GFX9: s_buffer_atomic_umax_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x9d,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_umin s5, s[4:7], s0 -// GFX9: s_buffer_atomic_umin s5, s[4:7], s0 ; encoding: [0x42,0x01,0x14,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_umin_x2 s[10:11], s[4:7], s0 glc -// GFX9: s_buffer_atomic_umin_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x95,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_xor s5, s[4:7], s0 -// GFX9: s_buffer_atomic_xor s5, s[4:7], s0 ; encoding: [0x42,0x01,0x28,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: - -s_buffer_atomic_xor_x2 s[10:11], s[4:7], s0 glc -// GFX9: s_buffer_atomic_xor_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0xa9,0xc1,0x00,0x00,0x00,0x00] -// NOSICIVI: error: diff --git a/llvm/test/MC/Disassembler/AMDGPU/smem_gfx9.txt b/llvm/test/MC/Disassembler/AMDGPU/smem_gfx9.txt index a584031..51d654b 100644 --- a/llvm/test/MC/Disassembler/AMDGPU/smem_gfx9.txt +++ b/llvm/test/MC/Disassembler/AMDGPU/smem_gfx9.txt @@ -1,9 +1,5 @@ # RUN: llvm-mc -arch=amdgcn -mcpu=gfx900 -disassemble -show-encoding < %s | FileCheck %s -check-prefix=GFX9 -#===------------------------------------------------------------------------===# -# s_scratch -#===------------------------------------------------------------------------===# - # GFX9: s_scratch_load_dword s5, s[2:3], s101 ; encoding: [0x41,0x01,0x14,0xc0,0x65,0x00,0x00,0x00] 0x41,0x01,0x14,0xc0,0x65,0x00,0x00,0x00 @@ -30,191 +26,3 @@ # GFX9: s_scratch_store_dwordx4 s[4:7], s[4:5], s0 glc ; encoding: [0x02,0x01,0x5d,0xc0,0x00,0x00,0x00,0x00] 0x02,0x01,0x5d,0xc0,0x00,0x00,0x00,0x00 - -#===------------------------------------------------------------------------===# -# s_atomic -#===------------------------------------------------------------------------===# - -# GFX9: s_atomic_add s5, s[2:3], s101 ; encoding: [0x41,0x01,0x08,0xc2,0x65,0x00,0x00,0x00] -0x41,0x01,0x08,0xc2,0x65,0x00,0x00,0x00 - -# GFX9: s_atomic_add_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x88,0xc2,0x65,0x00,0x00,0x00] -0x81,0x02,0x88,0xc2,0x65,0x00,0x00,0x00 - -# GFX9: s_atomic_and s101, s[2:3], s0 ; encoding: [0x41,0x19,0x20,0xc2,0x00,0x00,0x00,0x00] -0x41,0x19,0x20,0xc2,0x00,0x00,0x00,0x00 - -# GFX9: s_atomic_and_x2 s[12:13], s[2:3], s0 ; encoding: [0x01,0x03,0xa0,0xc2,0x00,0x00,0x00,0x00] -0x01,0x03,0xa0,0xc2,0x00,0x00,0x00,0x00 - -# GFX9: s_atomic_cmpswap s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x04,0xc2,0x65,0x00,0x00,0x00] -0x81,0x02,0x04,0xc2,0x65,0x00,0x00,0x00 - -# GFX9: s_atomic_cmpswap s[10:11], s[2:3], 0x0 ; encoding: [0x81,0x02,0x06,0xc2,0x00,0x00,0x00,0x00] -0x81,0x02,0x06,0xc2,0x00,0x00,0x00,0x00 - -# GFX9: s_atomic_cmpswap s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x05,0xc2,0x00,0x00,0x00,0x00] -0x81,0x02,0x05,0xc2,0x00,0x00,0x00,0x00 - -# GFX9: s_atomic_cmpswap_x2 s[20:23], s[2:3], s101 ; encoding: [0x01,0x05,0x84,0xc2,0x65,0x00,0x00,0x00] -0x01,0x05,0x84,0xc2,0x65,0x00,0x00,0x00 - -# GFX9: s_atomic_cmpswap_x2 s[20:23], s[2:3], 0x0 ; encoding: [0x01,0x05,0x86,0xc2,0x00,0x00,0x00,0x00] -0x01,0x05,0x86,0xc2,0x00,0x00,0x00,0x00 - -# GFX9: s_atomic_cmpswap_x2 s[20:23], s[2:3], s0 glc ; encoding: [0x01,0x05,0x85,0xc2,0x00,0x00,0x00,0x00] -0x01,0x05,0x85,0xc2,0x00,0x00,0x00,0x00 - -# GFX9: s_atomic_dec s5, s[4:5], s0 ; encoding: [0x42,0x01,0x30,0xc2,0x00,0x00,0x00,0x00] -0x42,0x01,0x30,0xc2,0x00,0x00,0x00,0x00 - -# GFX9: s_atomic_dec_x2 s[100:101], s[2:3], s0 ; encoding: [0x01,0x19,0xb0,0xc2,0x00,0x00,0x00,0x00] -0x01,0x19,0xb0,0xc2,0x00,0x00,0x00,0x00 - -# GFX9: s_atomic_inc s5, s[100:101], s0 ; encoding: [0x72,0x01,0x2c,0xc2,0x00,0x00,0x00,0x00] -0x72,0x01,0x2c,0xc2,0x00,0x00,0x00,0x00 - -# GFX9: s_atomic_inc_x2 s[10:11], s[4:5], s0 ; encoding: [0x82,0x02,0xac,0xc2,0x00,0x00,0x00,0x00] -0x82,0x02,0xac,0xc2,0x00,0x00,0x00,0x00 - -# GFX9: s_atomic_or s5, s[2:3], s101 ; encoding: [0x41,0x01,0x24,0xc2,0x65,0x00,0x00,0x00] -0x41,0x01,0x24,0xc2,0x65,0x00,0x00,0x00 - -# GFX9: s_atomic_or_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0xa4,0xc2,0x65,0x00,0x00,0x00] -0x81,0x02,0xa4,0xc2,0x65,0x00,0x00,0x00 - -# GFX9: s_atomic_smax s5, s[2:3], 0x0 ; encoding: [0x41,0x01,0x1a,0xc2,0x00,0x00,0x00,0x00] -0x41,0x01,0x1a,0xc2,0x00,0x00,0x00,0x00 - -# GFX9: s_atomic_smax_x2 s[10:11], s[2:3], 0x0 ; encoding: [0x81,0x02,0x9a,0xc2,0x00,0x00,0x00,0x00] -0x81,0x02,0x9a,0xc2,0x00,0x00,0x00,0x00 - -# GFX9: s_atomic_smin s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x11,0xc2,0x00,0x00,0x00,0x00] -0x41,0x01,0x11,0xc2,0x00,0x00,0x00,0x00 - -# GFX9: s_atomic_smin_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x91,0xc2,0x00,0x00,0x00,0x00] -0x81,0x02,0x91,0xc2,0x00,0x00,0x00,0x00 - -# GFX9: s_atomic_sub s5, s[2:3], s0 ; encoding: [0x41,0x01,0x0c,0xc2,0x00,0x00,0x00,0x00] -0x41,0x01,0x0c,0xc2,0x00,0x00,0x00,0x00 - -# GFX9: s_atomic_sub_x2 s[10:11], s[2:3], s0 ; encoding: [0x81,0x02,0x8c,0xc2,0x00,0x00,0x00,0x00] -0x81,0x02,0x8c,0xc2,0x00,0x00,0x00,0x00 - -# GFX9: s_atomic_swap s101, s[2:3], s0 ; encoding: [0x41,0x19,0x00,0xc2,0x00,0x00,0x00,0x00] -0x41,0x19,0x00,0xc2,0x00,0x00,0x00,0x00 - -# GFX9: s_atomic_swap_x2 s[12:13], s[2:3], s0 ; encoding: [0x01,0x03,0x80,0xc2,0x00,0x00,0x00,0x00] -0x01,0x03,0x80,0xc2,0x00,0x00,0x00,0x00 - -# GFX9: s_atomic_umax s5, s[4:5], s0 ; encoding: [0x42,0x01,0x1c,0xc2,0x00,0x00,0x00,0x00] -0x42,0x01,0x1c,0xc2,0x00,0x00,0x00,0x00 - -# GFX9: s_atomic_umax_x2 s[100:101], s[2:3], s0 ; encoding: [0x01,0x19,0x9c,0xc2,0x00,0x00,0x00,0x00] -0x01,0x19,0x9c,0xc2,0x00,0x00,0x00,0x00 - -# GFX9: s_atomic_umin s5, s[100:101], s0 ; encoding: [0x72,0x01,0x14,0xc2,0x00,0x00,0x00,0x00] -0x72,0x01,0x14,0xc2,0x00,0x00,0x00,0x00 - -# GFX9: s_atomic_umin_x2 s[10:11], s[4:5], s0 ; encoding: [0x82,0x02,0x94,0xc2,0x00,0x00,0x00,0x00] -0x82,0x02,0x94,0xc2,0x00,0x00,0x00,0x00 - -# GFX9: s_atomic_xor s5, s[2:3], s101 ; encoding: [0x41,0x01,0x28,0xc2,0x65,0x00,0x00,0x00] -0x41,0x01,0x28,0xc2,0x65,0x00,0x00,0x00 - -# GFX9: s_atomic_xor_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0xa8,0xc2,0x65,0x00,0x00,0x00] -0x81,0x02,0xa8,0xc2,0x65,0x00,0x00,0x00 - -#===------------------------------------------------------------------------===# -# s_buffer_atomic -#===------------------------------------------------------------------------===# - -# GFX9: s_buffer_atomic_add s5, s[4:7], 0x0 ; encoding: [0x42,0x01,0x0a,0xc1,0x00,0x00,0x00,0x00] -0x42,0x01,0x0a,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_add_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x89,0xc1,0x00,0x00,0x00,0x00] -0x82,0x02,0x89,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_and s5, s[4:7], s0 glc ; encoding: [0x42,0x01,0x21,0xc1,0x00,0x00,0x00,0x00] -0x42,0x01,0x21,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_and_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0xa1,0xc1,0x00,0x00,0x00,0x00] -0x82,0x02,0xa1,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_cmpswap s[10:11], s[4:7], s101 ; encoding: [0x82,0x02,0x04,0xc1,0x65,0x00,0x00,0x00] -0x82,0x02,0x04,0xc1,0x65,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_cmpswap s[10:11], s[4:7], 0x0 ; encoding: [0x82,0x02,0x06,0xc1,0x00,0x00,0x00,0x00] -0x82,0x02,0x06,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x05,0xc1,0x00,0x00,0x00,0x00] -0x82,0x02,0x05,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s101 ; encoding: [0x02,0x05,0x84,0xc1,0x65,0x00,0x00,0x00] -0x02,0x05,0x84,0xc1,0x65,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], 0x0 ; encoding: [0x02,0x05,0x86,0xc1,0x00,0x00,0x00,0x00] -0x02,0x05,0x86,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s0 glc ; encoding: [0x02,0x05,0x85,0xc1,0x00,0x00,0x00,0x00] -0x02,0x05,0x85,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_dec s5, s[4:7], s0 ; encoding: [0x42,0x01,0x30,0xc1,0x00,0x00,0x00,0x00] -0x42,0x01,0x30,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_dec_x2 s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0xb0,0xc1,0x00,0x00,0x00,0x00] -0x82,0x02,0xb0,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_inc s101, s[4:7], s0 ; encoding: [0x42,0x19,0x2c,0xc1,0x00,0x00,0x00,0x00] -0x42,0x19,0x2c,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_inc_x2 s[12:13], s[4:7], s0 ; encoding: [0x02,0x03,0xac,0xc1,0x00,0x00,0x00,0x00] -0x02,0x03,0xac,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_or s5, s[8:11], s0 ; encoding: [0x44,0x01,0x24,0xc1,0x00,0x00,0x00,0x00] -0x44,0x01,0x24,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_or_x2 s[100:101], s[4:7], s0 ; encoding: [0x02,0x19,0xa4,0xc1,0x00,0x00,0x00,0x00] -0x02,0x19,0xa4,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_smax s5, s[96:99], s0 ; encoding: [0x70,0x01,0x18,0xc1,0x00,0x00,0x00,0x00] -0x70,0x01,0x18,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_smax_x2 s[10:11], s[96:99], s0 ; encoding: [0xb0,0x02,0x98,0xc1,0x00,0x00,0x00,0x00] -0xb0,0x02,0x98,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_smin s5, s[4:7], s101 ; encoding: [0x42,0x01,0x10,0xc1,0x65,0x00,0x00,0x00] -0x42,0x01,0x10,0xc1,0x65,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_smin_x2 s[10:11], s[4:7], s101 ; encoding: [0x82,0x02,0x90,0xc1,0x65,0x00,0x00,0x00] -0x82,0x02,0x90,0xc1,0x65,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_sub s5, s[4:7], 0x0 ; encoding: [0x42,0x01,0x0e,0xc1,0x00,0x00,0x00,0x00] -0x42,0x01,0x0e,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_sub_x2 s[10:11], s[4:7], 0x0 ; encoding: [0x82,0x02,0x8e,0xc1,0x00,0x00,0x00,0x00] -0x82,0x02,0x8e,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_swap s5, s[4:7], s0 glc ; encoding: [0x42,0x01,0x01,0xc1,0x00,0x00,0x00,0x00] -0x42,0x01,0x01,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_swap_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x81,0xc1,0x00,0x00,0x00,0x00] -0x82,0x02,0x81,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_umax s5, s[4:7], s0 ; encoding: [0x42,0x01,0x1c,0xc1,0x00,0x00,0x00,0x00] -0x42,0x01,0x1c,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_umax_x2 s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x9c,0xc1,0x00,0x00,0x00,0x00] -0x82,0x02,0x9c,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_umin s101, s[4:7], s0 ; encoding: [0x42,0x19,0x14,0xc1,0x00,0x00,0x00,0x00] -0x42,0x19,0x14,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_umin_x2 s[12:13], s[4:7], s0 ; encoding: [0x02,0x03,0x94,0xc1,0x00,0x00,0x00,0x00] -0x02,0x03,0x94,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_xor s5, s[8:11], s0 ; encoding: [0x44,0x01,0x28,0xc1,0x00,0x00,0x00,0x00] -0x44,0x01,0x28,0xc1,0x00,0x00,0x00,0x00 - -# GFX9: s_buffer_atomic_xor_x2 s[100:101], s[4:7], s0 ; encoding: [0x02,0x19,0xa8,0xc1,0x00,0x00,0x00,0x00] -0x02,0x19,0xa8,0xc1,0x00,0x00,0x00,0x00