summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2019-10-04 08:35:38 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2019-10-04 08:35:38 +0000
commitd7cad4fb41f5808465e40a4c5d05c9ce20bfe36b (patch)
tree98540656b128b1027f71f88dbe4960e440c1ba0e /llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
parent412e0bf8f331e540ea315726e86e41f994f88e43 (diff)
downloadbcm5719-llvm-d7cad4fb41f5808465e40a4c5d05c9ce20bfe36b.tar.gz
bcm5719-llvm-d7cad4fb41f5808465e40a4c5d05c9ce20bfe36b.zip
AMDGPU/GlobalISel: Fix using wrong addrspace for aperture
This was always passing the destination flat address space, when it should be picking between the two valid source options. llvm-svn: 373716
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp')
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
index cf4275c23e8..f61c9753d2a 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
@@ -1085,6 +1085,8 @@ Register AMDGPULegalizerInfo::getSegmentAperture(
const GCNSubtarget &ST = MF.getSubtarget<GCNSubtarget>();
const LLT S32 = LLT::scalar(32);
+ assert(AS == AMDGPUAS::LOCAL_ADDRESS || AS == AMDGPUAS::PRIVATE_ADDRESS);
+
if (ST.hasApertureRegs()) {
// FIXME: Use inline constants (src_{shared, private}_base) instead of
// getreg.
@@ -1231,7 +1233,7 @@ bool AMDGPULegalizerInfo::legalizeAddrSpaceCast(
auto FlatNull =
B.buildConstant(DstTy, TM.getNullPointerValue(DestAS));
- Register ApertureReg = getSegmentAperture(DestAS, MRI, B);
+ Register ApertureReg = getSegmentAperture(SrcAS, MRI, B);
if (!ApertureReg.isValid())
return false;
OpenPOWER on IntegriCloud