diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-06-02 20:05:20 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-06-02 20:05:20 +0000 |
commit | 43578ec2a853b5dc98d63d3fd4c42cd1083ff909 (patch) | |
tree | f16e378a12f07aa39a5173159447de4eafa3a6bc | |
parent | a86df9bfdc1aafe9b9797a8bd83aa0da6e4c2970 (diff) | |
download | bcm5719-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.cpp | 7 |
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; } |