[all-commits] [llvm/llvm-project] 9d1721: [X86][SSE] Prefer PACKUS(AND(), AND()) to SHUFFLE(P...
Simon Pilgrim via All-commits
all-commits at lists.llvm.org
Thu Mar 26 08:47:58 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 9d1721ce39269387f56314a79b26581f99b236fb
https://github.com/llvm/llvm-project/commit/9d1721ce39269387f56314a79b26581f99b236fb
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2020-03-26 (Thu, 26 Mar 2020)
Changed paths:
M llvm/lib/Target/X86/X86ISelLowering.cpp
M llvm/test/CodeGen/X86/masked_store_trunc.ll
M llvm/test/CodeGen/X86/shuffle-vs-trunc-256.ll
M llvm/test/CodeGen/X86/vector-reduce-and-bool.ll
M llvm/test/CodeGen/X86/vector-reduce-or-bool.ll
M llvm/test/CodeGen/X86/vector-reduce-xor-bool.ll
M llvm/test/CodeGen/X86/vector-shuffle-128-v16.ll
M llvm/test/CodeGen/X86/vector-shuffle-256-v32.ll
M llvm/test/CodeGen/X86/vector-trunc.ll
Log Message:
-----------
[X86][SSE] Prefer PACKUS(AND(),AND()) to SHUFFLE(PSHUFB(),PSHUFB()) on pre-AVX2 targets
As discussed on PR31443, we should be trying to use PACKUS for binary truncation patterns to reduce the number of shuffles.
The plan is to support AVX2+ targets once we've worked around PR45315 - we fail to peek through a VBROADCAST_LOAD mask to recognise zero upper bits in a PACKUS pattern.
We should also be able to add support for v8i16 and possibly 256/512-bit vectors as well.
More information about the All-commits
mailing list