[llvm] [X86] Select standalone ~(-1 << n) masks as BZHI (PR #226158)
Phoebe Wang via llvm-commits
llvm-commits at lists.llvm.org
Sun Sep 27 05:37:28 PDT 2026
================
@@ -5818,6 +5819,10 @@ void X86DAGToDAGISel::Select(SDNode *Node) {
[[fallthrough]];
case ISD::OR:
case ISD::XOR:
+ // A standalone ~(-1 << n) mask is (-1 & lowmask(n)): mov -1; bzhi beats
+ // mov -1; shlx; not.
+ if (Opcode == ISD::XOR && Subtarget->hasBMI2() && matchBitExtract(Node))
+ return;
----------------
phoebewang wrote:
```
case ISD::XOR:
if (Subtarget->hasBMI2() && matchBitExtract(Node))
return;
[[fallthrough]];
case ISD::OR:
```
https://github.com/llvm/llvm-project/pull/226158
More information about the llvm-commits
mailing list