Skip to content

Commit 7547ad3

Browse files
authored
[libc][math] Skip checking for exceptional values in expm1f when LIBC_MATH_SKIP_ACCURATE_PASS is set. (#130968)
1 parent 141c14c commit 7547ad3

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

libc/src/math/generic/expm1f.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,14 @@ LLVM_LIBC_FUNCTION(float, expm1f, (float x)) {
3030
uint32_t x_u = xbits.uintval();
3131
uint32_t x_abs = x_u & 0x7fff'ffffU;
3232

33+
#ifndef LIBC_MATH_HAS_SKIP_ACCURATE_PASS
3334
// Exceptional value
3435
if (LIBC_UNLIKELY(x_u == 0x3e35'bec5U)) { // x = 0x1.6b7d8ap-3f
3536
int round_mode = fputil::quick_get_round();
3637
if (round_mode == FE_TONEAREST || round_mode == FE_UPWARD)
3738
return 0x1.8dbe64p-3f;
3839
return 0x1.8dbe62p-3f;
3940
}
40-
4141
#if !defined(LIBC_TARGET_CPU_HAS_FMA_DOUBLE)
4242
if (LIBC_UNLIKELY(x_u == 0xbdc1'c6cbU)) { // x = -0x1.838d96p-4f
4343
int round_mode = fputil::quick_get_round();
@@ -46,6 +46,7 @@ LLVM_LIBC_FUNCTION(float, expm1f, (float x)) {
4646
return -0x1.71c882p-4f;
4747
}
4848
#endif // LIBC_TARGET_CPU_HAS_FMA_DOUBLE
49+
#endif // !LIBC_MATH_HAS_SKIP_ACCURATE_PASS
4950

5051
// When |x| > 25*log(2), or nan
5152
if (LIBC_UNLIKELY(x_abs >= 0x418a'a123U)) {

0 commit comments

Comments
 (0)