summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2019-06-18 12:23:42 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2019-06-18 12:23:42 +0000
commitd5ce8ec778c45dd6e8a01f731bbcc99c077ed39a (patch)
tree2507073ca336270a8facc1694e8352c99b83b841 /llvm/lib/Target
parent7a7009f7c82e0747279f1bc4d1fa26976a7a71a8 (diff)
downloadbcm5719-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.cpp14
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;
}
OpenPOWER on IntegriCloud