[llvm] [RISCV] Fold (fma (splat (fneg X)), Y, Z) -> (fma (fneg (splat X)), Y, Z) (PR #173808)
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 6 08:00:14 PST 2026
================
@@ -21034,6 +21034,22 @@ SDValue RISCVTargetLowering::PerformDAGCombine(SDNode *N,
return V;
return SDValue();
}
+ case ISD::FMA: {
+ SDValue N0 = N->getOperand(0);
+ SDValue N1 = N->getOperand(1);
+ if (N0.getOpcode() != ISD::SPLAT_VECTOR)
+ std::swap(N0, N1);
+ if (N0->getOpcode() != ISD::SPLAT_VECTOR)
----------------
topperc wrote:
```suggestion
if (N0.getOpcode() != ISD::SPLAT_VECTOR)
```
https://github.com/llvm/llvm-project/pull/173808
More information about the llvm-commits
mailing list