diff options
| author | Yi-Chi Lee <55395582+yichi170@users.noreply.github.com> | 2025-10-25 09:48:35 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-25 09:48:35 +0800 |
| commit | cc4f462ba46c288dc26aa155775444cd9a7c4d0e (patch) | |
| tree | e77f0a940f7f33dcc1d1b9fed86a80b5743bd761 /clang/lib/Frontend/CompilerInvocation.cpp | |
| parent | 5fda2a5d9c1a0f90da5d0afc412c9ad613702823 (diff) | |
| download | llvm-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
