summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2018-03-01 21:25:30 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2018-03-01 21:25:30 +0000
commit364f12e8f998f96a533e7024015cc397afeb0d33 (patch)
tree3d675719afa2e2dc5125a29c0ff3912f99d4d914 /llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
parent5320ee4a050d43f749970884aea27c8d80abd90a (diff)
downloadbcm5719-llvm-364f12e8f998f96a533e7024015cc397afeb0d33.tar.gz
bcm5719-llvm-364f12e8f998f96a533e7024015cc397afeb0d33.zip
AMDGPU/GlobalISel: Define instruction mapping for @llvm.amdgcn.cvt.pkrtz
Patch by Tom Stellard llvm-svn: 326490
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp')
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
index 74a4e0b81c7..22f178aa5ee 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
@@ -205,7 +205,10 @@ AMDGPURegisterBankInfo::getDefaultMappingVOP(const MachineInstr &MI) const {
unsigned Size0 = getSizeInBits(MI.getOperand(0).getReg(), MRI, *TRI);
OpdsMapping[OpdIdx++] = AMDGPU::getValueMapping(AMDGPU::VGPRRegBankID, Size0);
- unsigned Reg1 = MI.getOperand(1).getReg();
+ if (MI.getOperand(OpdIdx).isIntrinsicID())
+ OpdsMapping[OpdIdx++] = nullptr;
+
+ unsigned Reg1 = MI.getOperand(OpdIdx).getReg();
unsigned Size1 = getSizeInBits(Reg1, MRI, *TRI);
unsigned Bank1 = getRegBankID(Reg1, MRI, *TRI);
OpdsMapping[OpdIdx++] = AMDGPU::getValueMapping(Bank1, Size1);
@@ -344,6 +347,15 @@ AMDGPURegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
OpdsMapping[3] = AMDGPU::getValueMapping(Op3Bank, Size);
break;
}
+ case AMDGPU::G_INTRINSIC: {
+ switch(MI.getOperand(1).getIntrinsicID()) {
+ default:
+ return getInvalidInstructionMapping();
+ case Intrinsic::amdgcn_cvt_pkrtz:
+ return getDefaultMappingVOP(MI);
+ }
+ break;
+ }
case AMDGPU::G_INTRINSIC_W_SIDE_EFFECTS: {
switch (MI.getOperand(0).getIntrinsicID()) {
default:
OpenPOWER on IntegriCloud