diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2015-09-28 20:54:42 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2015-09-28 20:54:42 +0000 |
commit | dd49c5fc1bc8c34badff5269e32ee28315b37ec2 (patch) | |
tree | cb38c728fe2c95d424c67b5ad1414a82a90d7aa9 /llvm/lib/Target | |
parent | b378f075a28628ce68ecf2151be26df884d67129 (diff) | |
download | bcm5719-llvm-dd49c5fc1bc8c34badff5269e32ee28315b37ec2.tar.gz bcm5719-llvm-dd49c5fc1bc8c34badff5269e32ee28315b37ec2.zip |
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.
llvm-svn: 248739
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r-- | llvm/lib/Target/AMDGPU/SIInstrInfo.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp index 8fd065d95ab..9419afebd26 100644 --- a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp +++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp @@ -2033,7 +2033,7 @@ void SIInstrInfo::splitSMRD(MachineInstr *MI, 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); |