[llvm] r280974 - AMDGPU: Sign extend constants when splitting them
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 8 10:44:38 PDT 2016
Author: arsenm
Date: Thu Sep 8 12:44:36 2016
New Revision: 280974
URL: http://llvm.org/viewvc/llvm-project?rev=280974&view=rev
Log:
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.
Modified:
llvm/trunk/lib/Target/AMDGPU/SIInstrInfo.cpp
Modified: llvm/trunk/lib/Target/AMDGPU/SIInstrInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AMDGPU/SIInstrInfo.cpp?rev=280974&r1=280973&r2=280974&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/SIInstrInfo.cpp (original)
+++ llvm/trunk/lib/Target/AMDGPU/SIInstrInfo.cpp Thu Sep 8 12:44:36 2016
@@ -1990,11 +1990,10 @@ MachineOperand SIInstrInfo::buildExtract
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");
}
More information about the llvm-commits
mailing list