summaryrefslogtreecommitdiff
path: root/libc/src/math/generic/log10.cpp
diff options
context:
space:
mode:
authorGuillaume Chatelet <gchatelet@google.com>2024-01-23 11:51:18 +0100
committerGitHub <noreply@github.com>2024-01-23 11:51:18 +0100
commitb524eed9259e26b5812e2b55cc05e42fda217486 (patch)
tree87d032bc3d946a441b2618782c8863b6d922dd34 /libc/src/math/generic/log10.cpp
parent8e09f13d679df6c34dd03d8ad6116c832318cab0 (diff)
Revert "[libc] Remove unnecessary `FPBits` functions and properties" (#79118)
Reverts llvm/llvm-project#79113 It broke aarch64 build bot machines.
Diffstat (limited to 'libc/src/math/generic/log10.cpp')
-rw-r--r--libc/src/math/generic/log10.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/libc/src/math/generic/log10.cpp b/libc/src/math/generic/log10.cpp
index 55a3fc5c061e..3a4d321fdb18 100644
--- a/libc/src/math/generic/log10.cpp
+++ b/libc/src/math/generic/log10.cpp
@@ -733,29 +733,28 @@ double log10_accurate(int e_x, int index, double m_x) {
LLVM_LIBC_FUNCTION(double, log10, (double x)) {
using FPBits_t = typename fputil::FPBits<double>;
- using Sign = fputil::Sign;
FPBits_t xbits(x);
uint64_t x_u = xbits.uintval();
int x_e = -FPBits_t::EXP_BIAS;
- if (LIBC_UNLIKELY(xbits == FPBits_t::one())) {
+ if (LIBC_UNLIKELY(x_u == 0x3FF0'0000'0000'0000ULL)) {
// log10(1.0) = +0.0
return 0.0;
}
- if (LIBC_UNLIKELY(xbits.uintval() < FPBits_t::min_normal().uintval() ||
- xbits.uintval() > FPBits_t::max_normal().uintval())) {
+ if (LIBC_UNLIKELY(xbits.uintval() < FPBits_t::MIN_NORMAL ||
+ xbits.uintval() > FPBits_t::MAX_NORMAL)) {
if (xbits.is_zero()) {
// return -Inf and raise FE_DIVBYZERO.
fputil::set_errno_if_required(ERANGE);
fputil::raise_except_if_required(FE_DIVBYZERO);
- return FPBits_t::inf(Sign::NEG).get_val();
+ return static_cast<double>(FPBits_t::inf(fputil::Sign::NEG));
}
if (xbits.is_neg() && !xbits.is_nan()) {
fputil::set_errno_if_required(EDOM);
fputil::raise_except_if_required(FE_INVALID);
- return FPBits_t::build_quiet_nan().get_val();
+ return FPBits_t::build_quiet_nan(0);
}
if (xbits.is_inf_or_nan()) {
return x;