Rewrite the result register pair into the expected sinigle register
format in the legalizer.
I'm also operating under the assumption that TFE doesn't apply to
stores or atomics, but don't know if this is true or not.
Paths
| Differential D73444
AMDGPU/GlobalISel: Legalize TFE image result loads ClosedPublic Authored by arsenm on Jan 26 2020, 7:51 PM.
Details
Diff Detail Event Timelinearsenm added a parent revision: D72796: AMDGPU/GlobalISel: Legalize unpacked d16 image operations.Jan 26 2020, 7:51 PM Comment Actions Correct, TFE does not apply to store or atomic. Stores or atomics to unmapped partially-resident images will simply be ignored by the hardware (and atomic return values are undefined). Do all cases still work in terms of how the intended semantics for the (super ugly) unpacked f16 case are represented? It seems a bit fragile.
Comment Actions
I think so. In the unpacked f16 case, this will load in a way that looks identical to f32, except with the truncates after to the natural packed type arsenm added a child revision: D73558: AMDGPU: Correct memory size for image intrinsics.Jan 28 2020, 8:57 AM arsenm added a child revision: D73666: AMDGPU/GlobalISel: Adjust image load register type based on dmask.Jan 29 2020, 2:31 PM This revision is now accepted and ready to land.Feb 5 2020, 8:58 AM
Revision Contents
Diff 242450 llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-llvm.amdgcn.image.load.2d.d16.ll
llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-llvm.amdgcn.image.load.2d.ll
|
This doesn't need to be moved.