diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-06-18 12:23:42 +0000 | 
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-06-18 12:23:42 +0000 | 
| commit | d5ce8ec778c45dd6e8a01f731bbcc99c077ed39a (patch) | |
| tree | 2507073ca336270a8facc1694e8352c99b83b841 /llvm/lib/Target/AMDGPU | |
| parent | 7a7009f7c82e0747279f1bc4d1fa26976a7a71a8 (diff) | |
| download | bcm5719-llvm-d5ce8ec778c45dd6e8a01f731bbcc99c077ed39a.tar.gz bcm5719-llvm-d5ce8ec778c45dd6e8a01f731bbcc99c077ed39a.zip  | |
AMDGPU/GlobalISel: RegBankSelect for amdgcn.div.scale
llvm-svn: 363667
Diffstat (limited to 'llvm/lib/Target/AMDGPU')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp | 14 | 
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp index 368e675a5e1..caf7a16c0b2 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp @@ -1378,6 +1378,20 @@ AMDGPURegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {        OpdsMapping[4] = nullptr;        break;      } +    case Intrinsic::amdgcn_div_scale: { +      unsigned Dst0Size = MRI.getType(MI.getOperand(0).getReg()).getSizeInBits(); +      unsigned Dst1Size = MRI.getType(MI.getOperand(1).getReg()).getSizeInBits(); +      OpdsMapping[0] = AMDGPU::getValueMapping(AMDGPU::VGPRRegBankID, Dst0Size); +      OpdsMapping[1] = AMDGPU::getValueMapping(AMDGPU::VCCRegBankID, Dst1Size); + +      unsigned SrcSize = MRI.getType(MI.getOperand(3).getReg()).getSizeInBits(); +      OpdsMapping[3] = AMDGPU::getValueMapping( +        getRegBankID(MI.getOperand(3).getReg(), MRI, *TRI), SrcSize); +      OpdsMapping[4] = AMDGPU::getValueMapping( +        getRegBankID(MI.getOperand(4).getReg(), MRI, *TRI), SrcSize); + +      break; +    }      }      break;    }  | 

