diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-06-29 00:22:28 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-06-29 00:22:28 +0000 |
| commit | ade516243272e1745edd852835b5ff868c16ec4e (patch) | |
| tree | fb5ebfc338a5d7c196d5cbfc0cb454c0bf950d78 /llvm/lib/Target | |
| parent | 1504b6ee7ea0f146dfaafaddc1125d01939a617f (diff) | |
| download | bcm5719-llvm-ade516243272e1745edd852835b5ff868c16ec4e.tar.gz bcm5719-llvm-ade516243272e1745edd852835b5ff868c16ec4e.zip | |
AMDGPU/GlobalISel: RegBankSelect for some simple leaf intrinsics
llvm-svn: 364694
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp index ef08286d43b..8cb0bdb0ae7 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp @@ -1455,7 +1455,9 @@ AMDGPURegisterBankInfo::getInstrMapping(const MachineInstr &MI) const { case Intrinsic::minnum: case Intrinsic::amdgcn_cvt_pkrtz: return getDefaultMappingVOP(MI); - case Intrinsic::amdgcn_kernarg_segment_ptr: { + case Intrinsic::amdgcn_kernarg_segment_ptr: + case Intrinsic::amdgcn_s_getpc: + case Intrinsic::amdgcn_groupstaticsize: { unsigned Size = MRI.getType(MI.getOperand(0).getReg()).getSizeInBits(); OpdsMapping[0] = AMDGPU::getValueMapping(AMDGPU::SGPRRegBankID, Size); break; @@ -1522,6 +1524,14 @@ AMDGPURegisterBankInfo::getInstrMapping(const MachineInstr &MI) const { switch (MI.getOperand(MI.getNumExplicitDefs()).getIntrinsicID()) { default: return getInvalidInstructionMapping(); + case Intrinsic::amdgcn_s_getreg: + case Intrinsic::amdgcn_s_memtime: + case Intrinsic::amdgcn_s_memrealtime: + case Intrinsic::amdgcn_s_get_waveid_in_workgroup: { + unsigned Size = MRI.getType(MI.getOperand(0).getReg()).getSizeInBits(); + OpdsMapping[0] = AMDGPU::getValueMapping(AMDGPU::SGPRRegBankID, Size); + break; + } case Intrinsic::amdgcn_exp_compr: OpdsMapping[0] = nullptr; // IntrinsicID // FIXME: These are immediate values which can't be read from registers. |

