aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2024-03-28 19:49:02 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2024-04-02 18:38:37 +0100
commit8bc2d19c13c3a0aa0bffe82596f75f25bed5004f (patch)
treea1f8490a372e1a3149684483889fbbcd3a19880f /clang/lib/Frontend/CompilerInvocation.cpp
parent82be6e186b5f88779325c5ede99ac714b2cfc4fa (diff)
downloadllvm-8bc2d19c13c3a0aa0bffe82596f75f25bed5004f.zip
llvm-8bc2d19c13c3a0aa0bffe82596f75f25bed5004f.tar.gz
llvm-8bc2d19c13c3a0aa0bffe82596f75f25bed5004f.tar.bz2
[X86] canonicalizeShuffleWithOp - don't fold VPERMI(BINOP(X,Y)) -> BINOP(VPERMI(X),VPERMI(Y))
VPERMI (VPERMQ/PD) is nearly always lane-crossing and poorly merges with target shuffles (other than itself). For now, I've restricted VPERMI to only merge with itself, constants, loads and splats. We might be able to merge with a few other special cases (AND/ANDNP with constant?), which could help the shuffle-vs-trunc-256.ll AVX512VL regression, but since that now gives similar codegen to the other AVX512 variants, I'd prefer to improve the shuffle lowering for that properly.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions