[llvm] [ConstantFold] Fold `log1p` and `log1pf` when the input parameter is a constant value. (PR #112113)

Yingwei Zheng via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 14 08:45:44 PDT 2024


================
@@ -2394,6 +2395,11 @@ static Constant *ConstantFoldScalarCall1(StringRef Name,
       if (!APF.isZero() && TLI->has(Func))
         return ConstantFoldFP(logb, APF, Ty);
       break;
+    case LibFunc_log1p:
+    case LibFunc_log1pf:
+      if (APF > APFloat(APF.getSemantics(), "-1") && TLI->has(Func))
----------------
dtcxzyw wrote:

`IEEEFloat::IEEEFloat(const fltSemantics &ourSemantics, integerPart value)` doesn't support initialize itself with a negative value:

https://github.com/llvm/llvm-project/blob/81fee740d073640c79c0d45a8e8e804c1c5fea40/llvm/lib/Support/APFloat.cpp#L1197-L1205
https://github.com/llvm/llvm-project/blob/a31e834ba8beaeed411b85af51ebd6598cb6007c/llvm/include/llvm/ADT/APFloat.h#L1045-L1050


https://github.com/llvm/llvm-project/pull/112113


More information about the llvm-commits mailing list