diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-10-04 08:35:38 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-10-04 08:35:38 +0000 |
commit | d7cad4fb41f5808465e40a4c5d05c9ce20bfe36b (patch) | |
tree | 98540656b128b1027f71f88dbe4960e440c1ba0e /llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp | |
parent | 412e0bf8f331e540ea315726e86e41f994f88e43 (diff) | |
download | bcm5719-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.cpp | 4 |
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; |