summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2018-03-05 16:25:18 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2018-03-05 16:25:18 +0000
commite31ab94e972f4a847f2312ffcdc71291ca7b2325 (patch)
tree4e789b6df9e371e9ce23bbee295952bd7cec1e6d /llvm/lib
parent71272e6d4eec697b0dcbc2b5e36f01bf2d0785f6 (diff)
downloadbcm5719-llvm-e31ab94e972f4a847f2312ffcdc71291ca7b2325.tar.gz
bcm5719-llvm-e31ab94e972f4a847f2312ffcdc71291ca7b2325.zip
AMDGPU/GlobalISel: Add InstrMapping for G_EXTRACT
llvm-svn: 326715
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
index b4ea462959a..59b4712cfa9 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
@@ -308,6 +308,15 @@ AMDGPURegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
OpdsMapping[0] = AMDGPU::getValueMapping(AMDGPU::SGPRRegBankID, Size);
break;
}
+ case AMDGPU::G_EXTRACT: {
+ unsigned BankID = getRegBankID(MI.getOperand(1).getReg(), MRI, *TRI);
+ unsigned DstSize = getSizeInBits(MI.getOperand(0).getReg(), MRI, *TRI);
+ unsigned SrcSize = getSizeInBits(MI.getOperand(1).getReg(), MRI, *TRI);
+ OpdsMapping[0] = AMDGPU::getValueMapping(BankID, DstSize);
+ OpdsMapping[1] = AMDGPU::getValueMapping(BankID, SrcSize);
+ OpdsMapping[2] = nullptr;
+ break;
+ }
case AMDGPU::G_BITCAST: {
unsigned Size = MRI.getType(MI.getOperand(0).getReg()).getSizeInBits();
unsigned BankID = getRegBankID(MI.getOperand(1).getReg(), MRI, *TRI);
OpenPOWER on IntegriCloud