diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2025-02-20 09:11:29 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-20 09:11:29 +0000 |
commit | 62d77fcb3cebe80b3cf88588b5f94778799e86f3 (patch) | |
tree | b83db2d405e00ede2f9a4a2f2b19de2ebac6b316 /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | 0cd5a1f3090beee88d34d22c6733c6df473877db (diff) | |
download | llvm-62d77fcb3cebe80b3cf88588b5f94778799e86f3.zip llvm-62d77fcb3cebe80b3cf88588b5f94778799e86f3.tar.gz llvm-62d77fcb3cebe80b3cf88588b5f94778799e86f3.tar.bz2 |
[X86] combineX86ShuffleChain - don't combine to VPERM2W/VPERM2B from just any single variable mask (#127914)
Despite them being more expensive than other variable mask shuffles, we
were combining shuffle chains to VPERM2W/VPERM2B if any shuffle in the
chain was a variable shuffle - including very cheap shuffles like PSHUFB
or AND mask patterns.
This patch adjusts the BWI VPERMV3 threshold - it still always permits
the merge if the chain (of 2 or more shuffles) contains any
X86ISD::VPERMV/VPERMV3 shuffles (including DQ variants), but otherwise
only reduces the depth threshold based off the number of other variable
shuffles we'd fold away.
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions