- round-log10p1f.patch: math: Fix log10p1f internal table value (BZ #32626) - round-sinhf.patch: math: Fix sinhf for some inputs (BZ #32627) - nptl-stack-size-up.patch: nptl: Correct stack size attribute when stack grows up (BZ #32574) - round-tanf.patch: math: Fix tanf for some inputs (BZ 32630) - tst-aarch64-pkey.patch: Fix tst-aarch64-pkey to handle ENOSPC as not supported - float128-sycl.patch: x86 (__HAVE_FLOAT128): Defined to 0 for Intel SYCL compiler (BZ #32723) OBS-URL: https://build.opensuse.org/package/show/Base:System/glibc?expand=0&rev=733
80 lines
3.9 KiB
Diff
80 lines
3.9 KiB
Diff
From cf88351b685da86667e17d344414a70696ac82f1 Mon Sep 17 00:00:00 2001
|
|
From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
|
|
Date: Sun, 2 Feb 2025 16:57:49 -0300
|
|
Subject: [PATCH] math: Fix tanf for some inputs (BZ 32630)
|
|
|
|
The logic was copied wrong from CORE-MATH.
|
|
|
|
(cherry picked from commit 09e7f4d594b4308fbea18e3044148d67b59757c9)
|
|
---
|
|
NEWS | 2 ++
|
|
math/auto-libm-test-in | 1 +
|
|
math/auto-libm-test-out-tan | 25 +++++++++++++++++++++++++
|
|
sysdeps/ieee754/flt-32/s_tanf.c | 2 +-
|
|
4 files changed, 29 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
|
|
index 5f465b31f1..4f194da19d 100644
|
|
--- a/math/auto-libm-test-in
|
|
+++ b/math/auto-libm-test-in
|
|
@@ -8664,6 +8664,7 @@ tan 0x1.1ad374p+0
|
|
tan -0x1.0d55b8p+0
|
|
tan 1.57079697
|
|
tan -1.57079697
|
|
+tan 0x1.ada6aap+27
|
|
tan 0x1p-5
|
|
tan 0x1p-10
|
|
tan 0x1p-15
|
|
diff --git a/math/auto-libm-test-out-tan b/math/auto-libm-test-out-tan
|
|
index 7d00d03e1d..1d5999ab90 100644
|
|
--- a/math/auto-libm-test-out-tan
|
|
+++ b/math/auto-libm-test-out-tan
|
|
@@ -2532,6 +2532,31 @@ tan -1.57079697
|
|
= tan tonearest ibm128 -0x1.921fc00ece4f02f278ade6ad9fp+0 : 0x1.7b91a0851bbbafa14cf21c2b5c8p+20 : inexact-ok
|
|
= tan towardzero ibm128 -0x1.921fc00ece4f02f278ade6ad9fp+0 : 0x1.7b91a0851bbbafa14cf21c2b5cp+20 : inexact-ok
|
|
= tan upward ibm128 -0x1.921fc00ece4f02f278ade6ad9fp+0 : 0x1.7b91a0851bbbafa14cf21c2b5c8p+20 : inexact-ok
|
|
+tan 0x1.ada6aap+27
|
|
+= tan downward binary32 0xd.6d355p+24 : 0x3.d00608p-4 : inexact-ok
|
|
+= tan tonearest binary32 0xd.6d355p+24 : 0x3.d00608p-4 : inexact-ok
|
|
+= tan towardzero binary32 0xd.6d355p+24 : 0x3.d00608p-4 : inexact-ok
|
|
+= tan upward binary32 0xd.6d355p+24 : 0x3.d0060cp-4 : inexact-ok
|
|
+= tan downward binary64 0xd.6d355p+24 : 0x3.d00608p-4 : inexact-ok
|
|
+= tan tonearest binary64 0xd.6d355p+24 : 0x3.d00608p-4 : inexact-ok
|
|
+= tan towardzero binary64 0xd.6d355p+24 : 0x3.d00608p-4 : inexact-ok
|
|
+= tan upward binary64 0xd.6d355p+24 : 0x3.d006080000002p-4 : inexact-ok
|
|
+= tan downward intel96 0xd.6d355p+24 : 0x3.d006080000000504p-4 : inexact-ok
|
|
+= tan tonearest intel96 0xd.6d355p+24 : 0x3.d006080000000508p-4 : inexact-ok
|
|
+= tan towardzero intel96 0xd.6d355p+24 : 0x3.d006080000000504p-4 : inexact-ok
|
|
+= tan upward intel96 0xd.6d355p+24 : 0x3.d006080000000508p-4 : inexact-ok
|
|
+= tan downward m68k96 0xd.6d355p+24 : 0x3.d006080000000504p-4 : inexact-ok
|
|
+= tan tonearest m68k96 0xd.6d355p+24 : 0x3.d006080000000508p-4 : inexact-ok
|
|
+= tan towardzero m68k96 0xd.6d355p+24 : 0x3.d006080000000504p-4 : inexact-ok
|
|
+= tan upward m68k96 0xd.6d355p+24 : 0x3.d006080000000508p-4 : inexact-ok
|
|
+= tan downward binary128 0xd.6d355p+24 : 0x3.d0060800000005067d16c1c9c15ap-4 : inexact-ok
|
|
+= tan tonearest binary128 0xd.6d355p+24 : 0x3.d0060800000005067d16c1c9c15ap-4 : inexact-ok
|
|
+= tan towardzero binary128 0xd.6d355p+24 : 0x3.d0060800000005067d16c1c9c15ap-4 : inexact-ok
|
|
+= tan upward binary128 0xd.6d355p+24 : 0x3.d0060800000005067d16c1c9c15cp-4 : inexact-ok
|
|
+= tan downward ibm128 0xd.6d355p+24 : 0x3.d0060800000005067d16c1c9c1p-4 : inexact-ok
|
|
+= tan tonearest ibm128 0xd.6d355p+24 : 0x3.d0060800000005067d16c1c9c1p-4 : inexact-ok
|
|
+= tan towardzero ibm128 0xd.6d355p+24 : 0x3.d0060800000005067d16c1c9c1p-4 : inexact-ok
|
|
+= tan upward ibm128 0xd.6d355p+24 : 0x3.d0060800000005067d16c1c9c2p-4 : inexact-ok
|
|
tan 0x1p-5
|
|
= tan downward binary32 0x8p-8 : 0x8.00aabp-8 : inexact-ok
|
|
= tan tonearest binary32 0x8p-8 : 0x8.00aacp-8 : inexact-ok
|
|
diff --git a/sysdeps/ieee754/flt-32/s_tanf.c b/sysdeps/ieee754/flt-32/s_tanf.c
|
|
index dfe56fc2a0..5ee1d6f35e 100644
|
|
--- a/sysdeps/ieee754/flt-32/s_tanf.c
|
|
+++ b/sysdeps/ieee754/flt-32/s_tanf.c
|
|
@@ -166,7 +166,7 @@ __tanf (float x)
|
|
uint32_t sgn = t >> 31;
|
|
for (int j = 0; j < array_length (st); j++)
|
|
{
|
|
- if (__glibc_unlikely (asfloat (st[j].arg) == ax))
|
|
+ if (__glibc_unlikely (asuint (st[j].arg) == ax))
|
|
{
|
|
if (sgn)
|
|
return -st[j].rh - st[j].rl;
|
|
--
|
|
2.48.1
|
|
|