diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h index 962c985361f5..700be80cd5c4 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h +++ b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h @@ -333,14 +333,6 @@ public: return HasMadMixInsts; } - bool hasSBufferLoadStoreAtomicDwordxN() const { - // Only use the "x1" variants on GFX9 or don't use the buffer variants. - // For x2 and higher variants, if the accessed region spans 2 VM pages and - // the second page is unmapped, the hw hangs. - // TODO: There is one future GFX9 chip that doesn't have this bug. - return getGeneration() != GFX9; - } - bool hasCARRY() const { return (getGeneration() >= EVERGREEN); } diff --git a/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp b/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp index 65bb5f371339..26ba06a90ab5 100644 --- a/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp +++ b/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp @@ -853,9 +853,8 @@ bool SILoadStoreOptimizer::optimizeBlock(MachineBasicBlock &MBB) { continue; } - if (STM->hasSBufferLoadStoreAtomicDwordxN() && - (Opc == AMDGPU::S_BUFFER_LOAD_DWORD_IMM || - Opc == AMDGPU::S_BUFFER_LOAD_DWORDX2_IMM)) { + if (Opc == AMDGPU::S_BUFFER_LOAD_DWORD_IMM || + Opc == AMDGPU::S_BUFFER_LOAD_DWORDX2_IMM) { // EltSize is in units of the offset encoding. CI.InstClass = S_BUFFER_LOAD_IMM; CI.EltSize = AMDGPU::getSMRDEncodedOffset(*STM, 4); diff --git a/llvm/test/CodeGen/AMDGPU/smrd.ll b/llvm/test/CodeGen/AMDGPU/smrd.ll index adf22323ae65..a8eaeab85e17 100644 --- a/llvm/test/CodeGen/AMDGPU/smrd.ll +++ b/llvm/test/CodeGen/AMDGPU/smrd.ll @@ -217,14 +217,8 @@ main_body: ; GCN-NEXT: %bb. ; SICI-NEXT: s_buffer_load_dwordx4 s[{{[0-9]}}:{{[0-9]}}], s[0:3], 0x1 ; SICI-NEXT: s_buffer_load_dwordx2 s[{{[0-9]}}:{{[0-9]}}], s[0:3], 0x7 -; VI-NEXT: s_buffer_load_dwordx4 s[{{[0-9]}}:{{[0-9]}}], s[0:3], 0x4 -; VI-NEXT: s_buffer_load_dwordx2 s[{{[0-9]}}:{{[0-9]}}], s[0:3], 0x1c -; GFX9-NEXT: s_buffer_load_dword s{{[0-9]}} -; GFX9-NEXT: s_buffer_load_dword s{{[0-9]}} -; GFX9-NEXT: s_buffer_load_dword s{{[0-9]}} -; GFX9-NEXT: s_buffer_load_dword s{{[0-9]}} -; GFX9-NEXT: s_buffer_load_dword s{{[0-9]}} -; GFX9-NEXT: s_buffer_load_dword s{{[0-9]}} +; VIGFX9-NEXT: s_buffer_load_dwordx4 s[{{[0-9]}}:{{[0-9]}}], s[0:3], 0x4 +; VIGFX9-NEXT: s_buffer_load_dwordx2 s[{{[0-9]}}:{{[0-9]}}], s[0:3], 0x1c define amdgpu_ps void @smrd_imm_merged(<4 x i32> inreg %desc) #0 { main_body: %r1 = call float @llvm.SI.load.const.v4i32(<4 x i32> %desc, i32 4)