[llvm] [AArch64] Combine vector FNEG+FMA into `FNML[A|S]` (PR #167900)
Sander de Smalen via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 2 09:49:01 PST 2025
================
@@ -7730,6 +7733,44 @@ SDValue AArch64TargetLowering::LowerFMUL(SDValue Op, SelectionDAG &DAG) const {
return FCVTNT(VT, BottomBF16, Pg, TopF32);
}
+SDValue AArch64TargetLowering::LowerFMA(SDValue Op, SelectionDAG &DAG) const {
+ SDValue OpA = Op->getOperand(0);
+ SDValue OpB = Op->getOperand(1);
+ SDValue OpC = Op->getOperand(2);
+ EVT VT = Op.getValueType();
+ SDLoc DL(Op);
+
+ // Bail early if we're definitely not looking to merge FNEGs into the FMA.
+ if (VT != MVT::v8f16 && VT != MVT::v4f32 && VT != MVT::v2f64)
----------------
sdesmalen-arm wrote:
nit: can you add an assert that VT is a vector?
https://github.com/llvm/llvm-project/pull/167900
More information about the llvm-commits
mailing list