aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorYi-Chi Lee <55395582+yichi170@users.noreply.github.com>2025-10-25 09:48:35 +0800
committerGitHub <noreply@github.com>2025-10-25 09:48:35 +0800
commitcc4f462ba46c288dc26aa155775444cd9a7c4d0e (patch)
treee77f0a940f7f33dcc1d1b9fed86a80b5743bd761 /clang/lib/Frontend/CompilerInvocation.cpp
parent5fda2a5d9c1a0f90da5d0afc412c9ad613702823 (diff)
downloadllvm-cc4f462ba46c288dc26aa155775444cd9a7c4d0e.zip
llvm-cc4f462ba46c288dc26aa155775444cd9a7c4d0e.tar.gz
llvm-cc4f462ba46c288dc26aa155775444cd9a7c4d0e.tar.bz2
[X86][ISel] Improve VPTERNLOG matching for negated logic trees (#164863)
This patch extends VPTERNLOG pattern matching to handle cases where an outer NOT wraps a pure logical tree, such as `~(A | B | C)`. By recognizing these negated logic trees, the instruction selector can now emit a single vpternlog instruction. The change preserves the match for patterns like `(x != C1) & (x != C2)`, which also have the xor-with-all-ones pattern outside. The patch conservatively peels the outer XOR-with-all-ones only when it directly wraps a foldable logical operator (AND, OR, XOR, or ANDNP). Resolves #163738
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions