[libc] [llvm] [APFloat] Add exp function for APFloat::IEEESsingle using expf implementation from LLVM libc. (PR #143959)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 13 08:45:48 PDT 2025
================
@@ -5601,6 +5606,34 @@ float APFloat::convertToFloat() const {
return Temp.getIEEE().convertToFloat();
}
+#ifdef LLVM_INTEGRATE_LIBC
+static constexpr int getFEnvRoundingMode(llvm::RoundingMode rm) {
+ switch (rm) {
+ case APFloat::rmTowardPositive:
+ return FE_UPWARD;
+ case APFloat::rmTowardNegative:
+ return FE_DOWNWARD;
+ case APFloat::rmTowardZero:
+ return FE_TOWARDZERO;
+ default:
+ // TODO: fix rmNearestTiesToAway for platform without FE_TONEARESTFROMZERO.
+ return FE_TONEAREST;
+ };
+}
+
+APFloat exp(const APFloat &X,
+ RoundingMode rounding_mode = APFloat::rmNearestTiesToEven) {
----------------
lntue wrote:
Fixed. And added test for using the default rounding modes.
https://github.com/llvm/llvm-project/pull/143959
More information about the llvm-commits
mailing list