Start using a new strategy with a combination of merge and unmerges.
This allows scalarizing before lowering, which in cases like
<2 x s128> avoids producing giant illegal shifts.
Paths
| Differential D72610
GlobalISel: Implement fewerElementsVector for G_SEXT_INREG ClosedPublic Authored by arsenm on Jan 13 2020, 5:42 AM.
Details Summary Start using a new strategy with a combination of merge and unmerges. This allows scalarizing before lowering, which in cases like
Diff Detail Event TimelineComment Actions It's a real struggle for me to review AMDGPU legalizer changes sometimes. I wish we had smaller, more obvious for the change being made.
This revision is now accepted and ready to land.Feb 3 2020, 9:58 AM
Revision Contents
Diff 237645 llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
llvm/test/CodeGen/AMDGPU/GlobalISel/artifact-combiner-sext.mir
llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-extract-vector-elt.mir
llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-sext-inreg.mir
|
Why did this test change?