diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-09-08 17:44:36 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-09-08 17:44:36 +0000 |
| commit | d745c2894584e8a1448537823b509439240bbba0 (patch) | |
| tree | 7efeab17d6c3de462690b85b4c054ab040eac8ab /llvm | |
| parent | a696b1b64179bdbad1176eaf549be8661d83fa1d (diff) | |
| download | bcm5719-llvm-d745c2894584e8a1448537823b509439240bbba0.tar.gz bcm5719-llvm-d745c2894584e8a1448537823b509439240bbba0.zip | |
AMDGPU: Sign extend constants when splitting them
This will confuse later passes which try to look at the
immediate value and don't truncate first.
llvm-svn: 280974
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/SIInstrInfo.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp index 5b8bbc31a73..4c69a39312e 100644 --- a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp +++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp @@ -1990,11 +1990,10 @@ MachineOperand SIInstrInfo::buildExtractSubRegOrImm( unsigned SubIdx, const TargetRegisterClass *SubRC) const { if (Op.isImm()) { - // XXX - Is there a better way to do this? if (SubIdx == AMDGPU::sub0) - return MachineOperand::CreateImm(Op.getImm() & 0xFFFFFFFF); + return MachineOperand::CreateImm(static_cast<int32_t>(Op.getImm())); if (SubIdx == AMDGPU::sub1) - return MachineOperand::CreateImm(Op.getImm() >> 32); + return MachineOperand::CreateImm(static_cast<int32_t>(Op.getImm() >> 32)); llvm_unreachable("Unhandled register index for immediate"); } |

