diff --git a/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp b/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp index c1cca063aac6f..fa3ca27a5f47c 100644 --- a/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp +++ b/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp @@ -1357,6 +1357,16 @@ bool GCNHazardRecognizer::fixSMEMtoVectorWriteHazards(MachineInstr *MI) { // DsCnt corresponds to LGKMCnt here. return (Decoded.DsCnt == 0); } + case AMDGPU::S_WAIT_STORECNT: + case AMDGPU::S_WAIT_STORECNT_DSCNT: + case AMDGPU::S_WAIT_LOADCNT: + case AMDGPU::S_WAIT_LOADCNT_DSCNT: + case AMDGPU::S_WAIT_SAMPLECNT: + case AMDGPU::S_WAIT_BVHCNT: + case AMDGPU::S_WAIT_DSCNT: + case AMDGPU::S_WAIT_EXPCNT: + case AMDGPU::S_WAIT_KMCNT: + llvm_unreachable("unexpected wait count instruction"); default: // SOPP instructions cannot mitigate the hazard. if (TII->isSOPP(MI)) @@ -2254,6 +2264,15 @@ int GCNHazardRecognizer::checkFPAtomicToDenormModeHazard(MachineInstr *MI) { case AMDGPU::S_WAITCNT_EXPCNT: case AMDGPU::S_WAITCNT_LGKMCNT: case AMDGPU::S_WAIT_IDLE: + case AMDGPU::S_WAIT_LOADCNT: + case AMDGPU::S_WAIT_LOADCNT_DSCNT: + case AMDGPU::S_WAIT_SAMPLECNT: + case AMDGPU::S_WAIT_BVHCNT: + case AMDGPU::S_WAIT_STORECNT: + case AMDGPU::S_WAIT_STORECNT_DSCNT: + case AMDGPU::S_WAIT_EXPCNT: + case AMDGPU::S_WAIT_DSCNT: + case AMDGPU::S_WAIT_KMCNT: return true; default: break;