[llvm] [AMDGPU] Common up some unsafe fexp lowering. NFC. (PR #170841)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 5 03:47:07 PST 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-amdgpu
Author: Jay Foad (jayfoad)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/170841.diff
1 Files Affected:
- (modified) llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp (+7-14)
``````````diff
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)
``````````
</details>
https://github.com/llvm/llvm-project/pull/170841
More information about the llvm-commits
mailing list