summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2016-06-02 20:05:20 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2016-06-02 20:05:20 +0000
commit43578ec2a853b5dc98d63d3fd4c42cd1083ff909 (patch)
treef16e378a12f07aa39a5173159447de4eafa3a6bc
parenta86df9bfdc1aafe9b9797a8bd83aa0da6e4c2970 (diff)
downloadbcm5719-llvm-43578ec2a853b5dc98d63d3fd4c42cd1083ff909.tar.gz
bcm5719-llvm-43578ec2a853b5dc98d63d3fd4c42cd1083ff909.zip
AMDGPU: Handle flat in getMemOpBaseRegImmOfs
It can still report the base register, and the uses give up when it fails. llvm-svn: 271575
-rw-r--r--llvm/lib/Target/AMDGPU/SIInstrInfo.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
index 17c212f15c0..5d0f828af30 100644
--- a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
@@ -287,6 +287,13 @@ bool SIInstrInfo::getMemOpBaseRegImmOfs(MachineInstr *LdSt, unsigned &BaseReg,
return true;
}
+ if (isFLAT(*LdSt)) {
+ const MachineOperand *AddrReg = getNamedOperand(*LdSt, AMDGPU::OpName::addr);
+ BaseReg = AddrReg->getReg();
+ Offset = 0;
+ return true;
+ }
+
return false;
}
OpenPOWER on IntegriCloud