Recognise cases when we can merge the shuffles with their horizontal (HADD/HSUB/PACK) instruction inputs.
Replaces an older implementation which performed some of this during lowering, expanding an existing target shuffle combine stage instead.
Paths
| Differential D38506
[X86][SSE] Improve shuffling combining with horizontal operations ClosedPublic Authored by RKSimon on Oct 3 2017, 8:15 AM.
Details Summary Recognise cases when we can merge the shuffles with their horizontal (HADD/HSUB/PACK) instruction inputs. Replaces an older implementation which performed some of this during lowering, expanding an existing target shuffle combine stage instead.
Diff Detail
Event TimelineThis revision is now accepted and ready to land.Oct 6 2017, 3:55 PM Comment Actions ASM output changes are all obvious improvements.
Closed by commit rL315150: [X86][SSE] Improve shuffling combining with horizontal operations (authored by RKSimon). · Explain WhyOct 7 2017, 5:44 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 118133 llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
llvm/trunk/test/CodeGen/X86/horizontal-shuffle.ll
llvm/trunk/test/CodeGen/X86/vector-trunc.ll
|