diff --git a/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp b/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp --- a/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp +++ b/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp @@ -506,7 +506,7 @@ unsigned Reg = TRI->getEncodingValue(AMDGPU::getMCReg(Op.getReg(), *ST)); if (TRI->isVectorRegister(*MRI, Op.getReg())) { - assert(Reg >= Encoding.VGPR0 && Reg <= Encoding.VGPRL); + assert(Reg >= Encoding.VGPR0 && Reg < Encoding.VGPRL); Result.first = Reg - Encoding.VGPR0; if (TRI->isAGPR(*MRI, Op.getReg())) Result.first += AGPR_OFFSET; @@ -1830,9 +1830,9 @@ RegisterEncoding Encoding = {}; Encoding.VGPR0 = TRI->getEncodingValue(AMDGPU::VGPR0); - Encoding.VGPRL = Encoding.VGPR0 + NumVGPRsMax - 1; + Encoding.VGPRL = Encoding.VGPR0 + NumVGPRsMax; Encoding.SGPR0 = TRI->getEncodingValue(AMDGPU::SGPR0); - Encoding.SGPRL = Encoding.SGPR0 + NumSGPRsMax - 1; + Encoding.SGPRL = Encoding.SGPR0 + NumSGPRsMax; TrackedWaitcntSet.clear(); BlockInfos.clear();