[PATCH 09/25] math: Use internal feupdateenv alias on fma
Adhemerval Zanella
adhemerval.zanella@linaro.org
Mon Aug 25 16:38:28 GMT 2025
To avoid linknamespace issues on old standards. It is required
if the fallback fma implementation is used if/when it is also
used internally for other implementation.
---
sysdeps/ieee754/ldbl-128/s_fma.c | 2 +-
sysdeps/ieee754/ldbl-128/s_fmal.c | 8 ++++----
sysdeps/ieee754/ldbl-96/s_fma.c | 4 ++--
sysdeps/ieee754/ldbl-96/s_fmal.c | 8 ++++----
4 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/sysdeps/ieee754/ldbl-128/s_fma.c b/sysdeps/ieee754/ldbl-128/s_fma.c
index 4a941fbecc..48db3030b6 100644
--- a/sysdeps/ieee754/ldbl-128/s_fma.c
+++ b/sysdeps/ieee754/ldbl-128/s_fma.c
@@ -56,7 +56,7 @@ __fma (double x, double y, double z)
u.d = temp + (long double) z;
if ((u.ieee.mantissa3 & 1) == 0 && u.ieee.exponent != 0x7fff)
u.ieee.mantissa3 |= fetestexcept (FE_INEXACT) != 0;
- feupdateenv (&env);
+ __feupdateenv (&env);
/* And finally truncation with round to nearest. */
return (double) u.d;
#endif /* ! USE_FMA_BUILTIN */
diff --git a/sysdeps/ieee754/ldbl-128/s_fmal.c b/sysdeps/ieee754/ldbl-128/s_fmal.c
index 2a39158d0a..7f6cbab402 100644
--- a/sysdeps/ieee754/ldbl-128/s_fmal.c
+++ b/sysdeps/ieee754/ldbl-128/s_fmal.c
@@ -223,7 +223,7 @@ __fmal (_Float128 x, _Float128 y, _Float128 z)
/* If the result is an exact zero, ensure it has the correct sign. */
if (a1 == 0 && m2 == 0)
{
- feupdateenv (&env);
+ __feupdateenv (&env);
/* Ensure that round-to-nearest value of z + m1 is not reused. */
z = math_opt_barrier (z);
return z + m1;
@@ -237,7 +237,7 @@ __fmal (_Float128 x, _Float128 y, _Float128 z)
{
if ((u.ieee.mantissa3 & 1) == 0 && u.ieee.exponent != 0x7fff)
u.ieee.mantissa3 |= fetestexcept (FE_INEXACT) != 0;
- feupdateenv (&env);
+ __feupdateenv (&env);
/* Result is a1 + u.d. */
return a1 + u.d;
}
@@ -245,7 +245,7 @@ __fmal (_Float128 x, _Float128 y, _Float128 z)
{
if ((u.ieee.mantissa3 & 1) == 0 && u.ieee.exponent != 0x7fff)
u.ieee.mantissa3 |= fetestexcept (FE_INEXACT) != 0;
- feupdateenv (&env);
+ __feupdateenv (&env);
/* Result is a1 + u.d, scaled up. */
return (a1 + u.d) * L(0x1p113);
}
@@ -257,7 +257,7 @@ __fmal (_Float128 x, _Float128 y, _Float128 z)
/* Ensure the addition is not scheduled after fetestexcept call. */
math_force_eval (v.d);
int j = fetestexcept (FE_INEXACT) != 0;
- feupdateenv (&env);
+ __feupdateenv (&env);
/* Ensure the following computations are performed in default rounding
mode instead of just reusing the round to zero computation. */
asm volatile ("" : "=m" (u) : "m" (u));
diff --git a/sysdeps/ieee754/ldbl-96/s_fma.c b/sysdeps/ieee754/ldbl-96/s_fma.c
index 683af8017d..a0663cb096 100644
--- a/sysdeps/ieee754/ldbl-96/s_fma.c
+++ b/sysdeps/ieee754/ldbl-96/s_fma.c
@@ -80,7 +80,7 @@ __fma (double x, double y, double z)
/* If the result is an exact zero, ensure it has the correct sign. */
if (a1 == 0 && m2 == 0)
{
- feupdateenv (&env);
+ __feupdateenv (&env);
/* Ensure that round-to-nearest value of z + m1 is not reused. */
z = math_opt_barrier (z);
return z + m1;
@@ -95,7 +95,7 @@ __fma (double x, double y, double z)
u.d = a1 + a2;
if ((u.ieee.mantissa1 & 1) == 0 && u.ieee.exponent != 0x7fff)
u.ieee.mantissa1 |= fetestexcept (FE_INEXACT) != 0;
- feupdateenv (&env);
+ __feupdateenv (&env);
/* Add finally round to double precision. */
return u.d;
diff --git a/sysdeps/ieee754/ldbl-96/s_fmal.c b/sysdeps/ieee754/ldbl-96/s_fmal.c
index 9d8bd548af..82a68bcbf7 100644
--- a/sysdeps/ieee754/ldbl-96/s_fmal.c
+++ b/sysdeps/ieee754/ldbl-96/s_fmal.c
@@ -213,7 +213,7 @@ __fmal (long double x, long double y, long double z)
/* If the result is an exact zero, ensure it has the correct sign. */
if (a1 == 0 && m2 == 0)
{
- feupdateenv (&env);
+ __feupdateenv (&env);
/* Ensure that round-to-nearest value of z + m1 is not reused. */
z = math_opt_barrier (z);
return z + m1;
@@ -227,7 +227,7 @@ __fmal (long double x, long double y, long double z)
{
if ((u.ieee.mantissa1 & 1) == 0 && u.ieee.exponent != 0x7fff)
u.ieee.mantissa1 |= fetestexcept (FE_INEXACT) != 0;
- feupdateenv (&env);
+ __feupdateenv (&env);
/* Result is a1 + u.d. */
return a1 + u.d;
}
@@ -235,7 +235,7 @@ __fmal (long double x, long double y, long double z)
{
if ((u.ieee.mantissa1 & 1) == 0 && u.ieee.exponent != 0x7fff)
u.ieee.mantissa1 |= fetestexcept (FE_INEXACT) != 0;
- feupdateenv (&env);
+ __feupdateenv (&env);
/* Result is a1 + u.d, scaled up. */
return (a1 + u.d) * 0x1p64L;
}
@@ -247,7 +247,7 @@ __fmal (long double x, long double y, long double z)
/* Ensure the addition is not scheduled after fetestexcept call. */
math_force_eval (v.d);
int j = fetestexcept (FE_INEXACT) != 0;
- feupdateenv (&env);
+ __feupdateenv (&env);
/* Ensure the following computations are performed in default rounding
mode instead of just reusing the round to zero computation. */
asm volatile ("" : "=m" (u) : "m" (u));
--
2.43.0
More information about the Libc-alpha
mailing list