[llvm] [DAGCombiner] Fold select into partial.reduce.add operands. (PR #167857)

Luke Lau via llvm-commits llvm-commits at lists.llvm.org
Sun Nov 16 19:25:38 PST 2025


================
@@ -13152,7 +13182,18 @@ SDValue DAGCombiner::foldPartialReduceAdd(SDNode *N) {
   if (!llvm::isOneOrOneSplat(Op2) && !llvm::isOneOrOneSplatFP(Op2))
     return SDValue();
 
+  SDValue Pred;
   unsigned Op1Opcode = Op1.getOpcode();
+  if (Op1Opcode == ISD::VSELECT) {
+    APInt C;
+    if (!ISD::isConstantSplatVector(Op1->getOperand(2).getNode(), C) ||
+        !C.isZero())
+      return SDValue();
----------------
lukel97 wrote:

```suggestion
  if (Op1Opcode == ISD::VSELECT && isNullOrNullSplat(Op1->getOperand(2))) {
```

https://github.com/llvm/llvm-project/pull/167857


More information about the llvm-commits mailing list