[llvm] 7a59ab0 - [AMDGPU] Common up some unsafe fexp lowering. NFC. (#170841)

via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 8 01:50:50 PST 2025


Author: Jay Foad
Date: 2025-12-08T09:50:45Z
New Revision: 7a59ab0e1a0c51c06b61eb66b37aeb592924a963

URL: https://github.com/llvm/llvm-project/commit/7a59ab0e1a0c51c06b61eb66b37aeb592924a963
DIFF: https://github.com/llvm/llvm-project/commit/7a59ab0e1a0c51c06b61eb66b37aeb592924a963.diff

LOG: [AMDGPU] Common up some unsafe fexp lowering. NFC. (#170841)

Added: 
    

Modified: 
    llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
index 75470d78606f7..eb2b702dcba18 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
@@ -3070,14 +3070,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();
 
@@ -3096,13 +3096,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)


        


More information about the llvm-commits mailing list