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 | |
| 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')
| -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; } |

