From c51e4468b7948545b0eb3db3384c88d6ec241eca Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Sat, 30 Apr 2016 04:04:48 +0000 Subject: [PATCH] AMDGPU/SI: Remove wait state handling for SMRD in SIInsertWaits This was supposed to be part of r268143. llvm-svn: 268154 --- llvm/lib/Target/AMDGPU/SIInsertWaits.cpp | 6 ------ llvm/test/CodeGen/AMDGPU/missing-store.ll | 3 ++- llvm/test/CodeGen/AMDGPU/salu-to-valu.ll | 3 ++- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/llvm/lib/Target/AMDGPU/SIInsertWaits.cpp b/llvm/lib/Target/AMDGPU/SIInsertWaits.cpp index 15884732c123..ead4c9ebf184 100644 --- a/llvm/lib/Target/AMDGPU/SIInsertWaits.cpp +++ b/llvm/lib/Target/AMDGPU/SIInsertWaits.cpp @@ -634,12 +634,6 @@ bool SIInsertWaits::runOnMachineFunction(MachineFunction &MF) { insertDPPWaitStates(I); } - // Insert required wait states for SMRD reading an SGPR written by a VALU - // instruction. - if (ST.getGeneration() <= AMDGPUSubtarget::SOUTHERN_ISLANDS && - I->getOpcode() == AMDGPU::V_READFIRSTLANE_B32) - TII->insertWaitStates(MBB, std::next(I), 4); - // Record pre-existing, explicitly requested waits if (I->getOpcode() == AMDGPU::S_WAITCNT) { handleExistingWait(*I); diff --git a/llvm/test/CodeGen/AMDGPU/missing-store.ll b/llvm/test/CodeGen/AMDGPU/missing-store.ll index 658666304f68..d608fd14ccfe 100644 --- a/llvm/test/CodeGen/AMDGPU/missing-store.ll +++ b/llvm/test/CodeGen/AMDGPU/missing-store.ll @@ -10,7 +10,8 @@ ; SI: buffer_store_dword ; SI: v_readfirstlane_b32 s[[PTR_LO:[0-9]+]], v{{[0-9]+}} ; SI: v_readfirstlane_b32 s[[PTR_HI:[0-9]+]], v{{[0-9]+}} -; SI-NEXT: s_nop +; SI: s_load_dword +; SI: s_nop 2 ; SI: s_load_dword s{{[0-9]+}}, s{{\[}}[[PTR_LO]]:[[PTR_HI]]{{\]}} ; SI: buffer_store_dword ; SI: s_endpgm diff --git a/llvm/test/CodeGen/AMDGPU/salu-to-valu.ll b/llvm/test/CodeGen/AMDGPU/salu-to-valu.ll index bcd20ff5bdb4..7d167e5dd442 100644 --- a/llvm/test/CodeGen/AMDGPU/salu-to-valu.ll +++ b/llvm/test/CodeGen/AMDGPU/salu-to-valu.ll @@ -56,7 +56,8 @@ done: ; preds = %loop ; SI: s_movk_i32 [[OFFSET:s[0-9]+]], 0x2ee0 ; GCN: v_readfirstlane_b32 s[[PTR_LO:[0-9]+]], v{{[0-9]+}} ; GCN: v_readfirstlane_b32 s[[PTR_HI:[0-9]+]], v{{[0-9]+}} -; SI-NEXT: s_nop +; SI: s_mov_b32 +; SI: s_nop 2 ; SI: s_load_dword [[OUT:s[0-9]+]], s{{\[}}[[PTR_LO]]:[[PTR_HI]]{{\]}}, [[OFFSET]] ; CI: s_load_dword [[OUT:s[0-9]+]], s{{\[}}[[PTR_LO]]:[[PTR_HI]]{{\]}}, 0xbb8 ; GCN: v_mov_b32_e32 [[V_OUT:v[0-9]+]], [[OUT]]