summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorStanislav Mekhanoshin <Stanislav.Mekhanoshin@amd.com>2017-09-06 15:31:30 +0000
committerStanislav Mekhanoshin <Stanislav.Mekhanoshin@amd.com>2017-09-06 15:31:30 +0000
commit949fac9e40bf6dce04220a7a9b53bb36727e7f56 (patch)
tree46c9762040e42231047f91a883b1e948cc0f0676 /llvm/lib
parent8816a87064e9043cf12b49c19241d513ae94325f (diff)
downloadbcm5719-llvm-949fac9e40bf6dce04220a7a9b53bb36727e7f56.tar.gz
bcm5719-llvm-949fac9e40bf6dce04220a7a9b53bb36727e7f56.zip
[AMDGPU] Fix shouldClusterMemOps to process flat loads
Flat loads do not have vdata operand but have vdst instead. Differential Revision: https://reviews.llvm.org/D37502 llvm-svn: 312640
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/AMDGPU/SIInstrInfo.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
index ad9deefc1e7..f7f6d52e751 100644
--- a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
@@ -366,7 +366,11 @@ bool SIInstrInfo::shouldClusterMemOps(MachineInstr &FirstLdSt,
(isMTBUF(FirstLdSt) && isMTBUF(SecondLdSt)) ||
(isFLAT(FirstLdSt) && isFLAT(SecondLdSt))) {
FirstDst = getNamedOperand(FirstLdSt, AMDGPU::OpName::vdata);
+ if (!FirstDst)
+ FirstDst = getNamedOperand(FirstLdSt, AMDGPU::OpName::vdst);
SecondDst = getNamedOperand(SecondLdSt, AMDGPU::OpName::vdata);
+ if (!SecondDst)
+ SecondDst = getNamedOperand(SecondLdSt, AMDGPU::OpName::vdst);
} else if (isSMRD(FirstLdSt) && isSMRD(SecondLdSt)) {
FirstDst = getNamedOperand(FirstLdSt, AMDGPU::OpName::sdst);
SecondDst = getNamedOperand(SecondLdSt, AMDGPU::OpName::sdst);
OpenPOWER on IntegriCloud