diff --git a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp index 0b3c919051827..7958448dec705 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp @@ -3072,14 +3072,14 @@ SDValue AMDGPUTargetLowering::lowerFEXP(SDValue Op, SelectionDAG &DAG) const { SDNodeFlags Flags = Op->getFlags(); const bool IsExp10 = Op.getOpcode() == ISD::FEXP10; - if (VT.getScalarType() == MVT::f16) { - // v_exp_f16 (fmul x, log2e) - - if (allowApproxFunc(DAG, Flags)) { // TODO: Does this really require fast? - return IsExp10 ? lowerFEXP10Unsafe(X, SL, DAG, Flags) - : lowerFEXPUnsafe(X, SL, DAG, Flags); - } + // TODO: Interpret allowApproxFunc as ignoring DAZ. This is currently copying + // library behavior. Also, is known-not-daz source sufficient? + if (allowApproxFunc(DAG, Flags)) { // TODO: Does this really require fast? + return IsExp10 ? lowerFEXP10Unsafe(X, SL, DAG, Flags) + : lowerFEXPUnsafe(X, SL, DAG, Flags); + } + if (VT.getScalarType() == MVT::f16) { if (VT.isVector()) return SDValue(); @@ -3098,13 +3098,6 @@ SDValue AMDGPUTargetLowering::lowerFEXP(SDValue Op, SelectionDAG &DAG) const { assert(VT == MVT::f32); - // TODO: Interpret allowApproxFunc as ignoring DAZ. This is currently copying - // library behavior. Also, is known-not-daz source sufficient? - if (allowApproxFunc(DAG, Flags)) { - return IsExp10 ? lowerFEXP10Unsafe(X, SL, DAG, Flags) - : lowerFEXPUnsafe(X, SL, DAG, Flags); - } - // Algorithm: // // e^x = 2^(x/ln(2)) = 2^(x*(64/ln(2))/64)