diff --git a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp index e3df6d9bee88..811242c29e01 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp @@ -50,10 +50,13 @@ AMDGPURegisterBankInfo::AMDGPURegisterBankInfo(const TargetRegisterInfo &TRI) } -unsigned AMDGPURegisterBankInfo::copyCost(const RegisterBank &A, - const RegisterBank &B, - unsigned Size) const { - return RegisterBankInfo::copyCost(A, B, Size); +unsigned AMDGPURegisterBankInfo::copyCost(const RegisterBank &Dst, + const RegisterBank &Src, + unsigned Size) const { + if (Dst.getID() == AMDGPU::SGPRRegBankID && + Src.getID() == AMDGPU::VGPRRegBankID) + return std::numeric_limits::max(); + return RegisterBankInfo::copyCost(Dst, Src, Size); } const RegisterBank &AMDGPURegisterBankInfo::getRegBankFromRegClass(