[llvm] [AArch64][SVE] Add custom lowering for bfloat FMUL (with +bf16) (PR #167502)

Paul Walker via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 17 09:41:15 PST 2025


================
@@ -7538,6 +7547,50 @@ SDValue AArch64TargetLowering::LowerINIT_TRAMPOLINE(SDValue Op,
                      EndOfTrmp);
 }
 
+SDValue AArch64TargetLowering::LowerFMUL(SDValue Op, SelectionDAG &DAG) const {
+  SDLoc DL(Op);
+  EVT VT = Op.getValueType();
+  auto &Subtarget = DAG.getSubtarget<AArch64Subtarget>();
+  if (VT.getScalarType() != MVT::bf16 ||
+      (Subtarget.hasSVEB16B16() &&
+       Subtarget.isNonStreamingSVEorSME2Available()))
----------------
paulwalker-arm wrote:

AArch64TargetLowering already has access to the subtarget via `Subtarget->`.

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


More information about the llvm-commits mailing list