[llvm] r248739 - AMDGPU: Fix splitting SMRD with large offset
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 28 13:54:43 PDT 2015
Author: arsenm
Date: Mon Sep 28 15:54:42 2015
New Revision: 248739
URL: http://llvm.org/viewvc/llvm-project?rev=248739&view=rev
Log:
AMDGPU: Fix splitting SMRD with large offset
The splitting of > 4 dword SMRD instructions
if using an offset in an SGPR instead of an immediate
was not setting the destination register,
resulting an an instruction missing an operand
which would assert later.
Test will be included in a following commit
which fixes a related issue.
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=248739&r1=248738&r2=248739&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AMDGPU/SIInstrInfo.cpp (original)
+++ llvm/trunk/lib/Target/AMDGPU/SIInstrInfo.cpp Mon Sep 28 15:54:42 2015
@@ -2033,7 +2033,7 @@ void SIInstrInfo::splitSMRD(MachineInstr
BuildMI(*MBB, MI, DL, get(AMDGPU::S_ADD_I32), OffsetSGPR)
.addOperand(*SOff)
.addImm(HalfSize);
- Hi = BuildMI(*MBB, MI, DL, get(HalfSGPROp))
+ Hi = BuildMI(*MBB, MI, DL, get(HalfSGPROp), RegHi)
.addReg(SBase->getReg(), getKillRegState(IsKill),
SBase->getSubReg())
.addReg(OffsetSGPR);
More information about the llvm-commits
mailing list