@@ -2766,9 +2766,6 @@ SDValue AMDGPUTargetLowering::LowerFLOGCommon(SDValue Op,
27662766 EVT VT = Op.getValueType ();
27672767 SDNodeFlags Flags = Op->getFlags ();
27682768 SDLoc DL (Op);
2769- // Our implementation of LOG is not contract safe, so disable instruction
2770- // contraction.
2771- Flags.setAllowContract (false );
27722769 const bool IsLog10 = Op.getOpcode () == ISD::FLOG10;
27732770 assert (IsLog10 || Op.getOpcode () == ISD::FLOG);
27742771
@@ -2807,7 +2804,9 @@ SDValue AMDGPUTargetLowering::LowerFLOGCommon(SDValue Op,
28072804
28082805 SDValue C = DAG.getConstantFP (IsLog10 ? c_log10 : c_log, DL, VT);
28092806 SDValue CC = DAG.getConstantFP (IsLog10 ? cc_log10 : cc_log, DL, VT);
2810-
2807+ // Our implementation of LOG is not contract safe, so disable instruction
2808+ // contraction.
2809+ Flags.setAllowContract (false );
28112810 R = DAG.getNode (ISD::FMUL, DL, VT, Y, C, Flags);
28122811 SDValue NegR = DAG.getNode (ISD::FNEG, DL, VT, R, Flags);
28132812 SDValue FMA0 = DAG.getNode (ISD::FMA, DL, VT, Y, C, NegR, Flags);
@@ -2830,7 +2829,9 @@ SDValue AMDGPUTargetLowering::LowerFLOGCommon(SDValue Op,
28302829 SDValue YHInt = DAG.getNode (ISD::AND, DL, MVT::i32 , YAsInt, MaskConst);
28312830 SDValue YH = DAG.getNode (ISD::BITCAST, DL, MVT::f32 , YHInt);
28322831 SDValue YT = DAG.getNode (ISD::FSUB, DL, VT, Y, YH, Flags);
2833-
2832+ // Our implementation of LOG is not contract safe, so disable instruction
2833+ // contraction.
2834+ Flags.setAllowContract (false );
28342835 SDValue YTCT = DAG.getNode (ISD::FMUL, DL, VT, YT, CT, Flags);
28352836 SDValue Mad0 = getMad (DAG, DL, VT, YH, CT, YTCT, Flags);
28362837 SDValue Mad1 = getMad (DAG, DL, VT, YT, CH, Mad0, Flags);
0 commit comments