This fixes a problem where a load from global+idx generated incorrect
code on <=gfx7 when the index is divergent.
Change-Id: Ib4d177d6254b1dd3f8ec0203fdddec94bd8bc5ed
Paths
| Differential D47383
[AMDGPU] Avoid using divergent value in mubuf addr64 descriptor ClosedPublic Authored by tpr on May 25 2018, 11:33 AM.
Details Summary This fixes a problem where a load from global+idx generated incorrect Change-Id: Ib4d177d6254b1dd3f8ec0203fdddec94bd8bc5ed
Diff Detail
Event TimelineHerald added subscribers: llvm-commits, t-tye, dstuttard and 5 others. · View Herald TranscriptMay 25 2018, 11:33 AM Comment Actions The test seems pretty lacking. There are a lot more combinations of divergent and non-divergent changed here that aren't tested
Comment Actions Thanks. I feel like some of this could perhaps be improved with a computeKnownBits if there is a 64-bit uniform base and a 32-bit non-uniform offset, but that doesn't have to be part of this change.
This revision is now accepted and ready to land.Jul 31 2018, 3:25 AM Closed by commit rL338779: [AMDGPU] Avoid using divergent value in mubuf addr64 descriptor (authored by tpr). · Explain WhyAug 2 2018, 3:54 PM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 158855 llvm/trunk/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
llvm/trunk/test/CodeGen/AMDGPU/legalize-fp-load-invariant.ll
llvm/trunk/test/CodeGen/AMDGPU/llvm.amdgcn.implicitarg.ptr.ll
llvm/trunk/test/CodeGen/AMDGPU/llvm.log.f16.ll
llvm/trunk/test/CodeGen/AMDGPU/llvm.log10.f16.ll
llvm/trunk/test/CodeGen/AMDGPU/shader-addr64-nonuniform.ll
llvm/trunk/test/CodeGen/AMDGPU/valu-i1.ll
|