diff options
| author | Guillaume Chatelet <gchatelet@google.com> | 2024-01-23 11:51:18 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-23 11:51:18 +0100 |
| commit | b524eed9259e26b5812e2b55cc05e42fda217486 (patch) | |
| tree | 87d032bc3d946a441b2618782c8863b6d922dd34 /libc/src/math/generic/log10.cpp | |
| parent | 8e09f13d679df6c34dd03d8ad6116c832318cab0 (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.cpp | 11 |
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; |
