[llvm] [DAGCombiner] Fold select into partial.reduce.add operands. (PR #167857)
Sander de Smalen via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 17 06:21:48 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();
----------------
sdesmalen-arm wrote:
It seems `isNullOrNullSplat` does not recognise FP constants, so I've added a similar FP variant (similar to what was done for `isOneOrOneSplatFP`)
https://github.com/llvm/llvm-project/pull/167857
More information about the llvm-commits
mailing list