[llvm] [AMDGPU][SDAG] Use the f16 lowering for bf16 safe divisions. (PR #147530)
Ivan Kosarev via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 8 07:28:17 PDT 2025
================
@@ -11265,10 +11266,14 @@ SDValue SITargetLowering::LowerFDIV16(SDValue Op, SelectionDAG &DAG) const {
DAG.getConstant(0xff800000, SL, MVT::i32));
Tmp = DAG.getNode(ISD::BITCAST, SL, MVT::f32, TmpCast);
Quot = DAG.getNode(ISD::FADD, SL, MVT::f32, Tmp, Quot, Op->getFlags());
- SDValue RDst = DAG.getNode(ISD::FP_ROUND, SL, MVT::f16, Quot,
+
+ EVT FixupVT = VT == MVT::bf16 ? MVT::f32 : VT;
+ SDValue RDst = DAG.getNode(ISD::FP_ROUND, SL, FixupVT, Quot,
DAG.getTargetConstant(0, SL, MVT::i32));
- return DAG.getNode(AMDGPUISD::DIV_FIXUP, SL, MVT::f16, RDst, RHS, LHS,
- Op->getFlags());
+ SDValue Fixup = DAG.getNode(AMDGPUISD::DIV_FIXUP, SL, FixupVT, RDst, RHS, LHS,
+ Op->getFlags());
+ return DAG.getNode(ISD::FP_ROUND, SL, VT, Fixup,
+ DAG.getTargetConstant(0, SL, MVT::i32));
----------------
kosarev wrote:
I'm not familiar with this. How do we do that?
https://github.com/llvm/llvm-project/pull/147530
More information about the llvm-commits
mailing list