diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2020-09-12 13:39:33 +0100 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2020-09-12 13:39:33 +0100 |
commit | 35dc91aee2013ce1a57dfee965fa5fdee1987ee0 (patch) | |
tree | af933a5f48ac8536dd35f4fc14be0db294db8710 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 4ede83c06831adf5bf5e4a2abffd752615f643d0 (diff) | |
download | llvm-35dc91aee2013ce1a57dfee965fa5fdee1987ee0.zip llvm-35dc91aee2013ce1a57dfee965fa5fdee1987ee0.tar.gz llvm-35dc91aee2013ce1a57dfee965fa5fdee1987ee0.tar.bz2 |
[X86][SSE] lowerShuffleAsDecomposedShuffleBlend - support decomposed unpacks for some vXi8/vXi16 cases
Follow up to D86429 to handle the remaining regressions.
This patch generalizes lowerShuffleAsDecomposedShuffleBlend to lowerShuffleAsDecomposedShuffleMerge, and attempts to use an UNPCKL shuffle mask instead of a blend for the cases where the inputs are coming from alternating vXi8/vXi16 sources. Technically they don't have to be alternating (just as long as they can fit into a lower lane half for the unpack) but I didn't find as many general cases and it needed a lot more of the function to be altered.
For vXi32/vXi64 cases this could still be beneficial but in most cases the existing permute+blend approach was better.
Differential Revision: https://reviews.llvm.org/D87405
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions