diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp index c39da779ecf8c..37c75fe7f7dfd 100644 --- a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp +++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp @@ -8993,7 +8993,10 @@ void SIInstrInfo::addUsersToMoveToVALUWorklist( break; } - if (!RI.hasVectorRegisters(getOpRegClass(UseMI, OpNo))) + const TargetRegisterClass *OpRC = getOpRegClass(UseMI, OpNo); + MRI.constrainRegClass(DstReg, OpRC); + + if (!RI.hasVectorRegisters(OpRC)) Worklist.insert(&UseMI); else // Legalization could change user list.