summaryrefslogtreecommitdiff
path: root/math
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2025-10-10 09:52:35 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2025-10-14 11:12:00 -0300
commitae49afe74d778de67d2da85c05fe39301f73c1a7 (patch)
treef8255ed9b9bb4c5df4dce80298d0e3adfb683b4f /math
parent82a4f50b4e53df728430a9fe8d5939f57038db16 (diff)
math: Optimize fma call on log2pf1
The fma is required only for x == -0x1.da285cp-5 in FE_TONEAREST to provide correctly rounded results. Checked on x86_64-linux-gnu and i686-linux-gnu. Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
Diffstat (limited to 'math')
-rw-r--r--math/auto-libm-test-in1
-rw-r--r--math/auto-libm-test-out-log2p125
2 files changed, 26 insertions, 0 deletions
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 7e8cb4cef8..03f6fee1f0 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -7714,6 +7714,7 @@ log2p1 -0x4.f37d3c9ce0b14bdd86eb157df5d4p-4
log2p1 0x7.2eca50c4d93196362b4f37f6e8dcp-4
log2p1 -0x6.3fef3067427e43dfcde9e48f74bcp-4
log2p1 0x6.af53d00fd2845d4772260ef5adc4p-4
+log2p1 -0x1.da285cp-5
mul 0 0
mul 0 -0
diff --git a/math/auto-libm-test-out-log2p1 b/math/auto-libm-test-out-log2p1
index 5e395fffa4..3902600a34 100644
--- a/math/auto-libm-test-out-log2p1
+++ b/math/auto-libm-test-out-log2p1
@@ -4467,3 +4467,28 @@ log2p1 0x6.af53d00fd2845d4772260ef5adc4p-4
= log2p1 tonearest ibm128 0x6.af53d00fd2845d4772260ef5acp-4 : 0x8.0efc6087a73bba3b9eb65a673p-4 : inexact-ok
= log2p1 towardzero ibm128 0x6.af53d00fd2845d4772260ef5acp-4 : 0x8.0efc6087a73bba3b9eb65a673p-4 : inexact-ok
= log2p1 upward ibm128 0x6.af53d00fd2845d4772260ef5acp-4 : 0x8.0efc6087a73bba3b9eb65a6734p-4 : inexact-ok
+log2p1 -0x1.da285cp-5
+= log2p1 downward binary32 -0xe.d142ep-8 : -0x1.60549p-4 : inexact-ok
+= log2p1 tonearest binary32 -0xe.d142ep-8 : -0x1.60549p-4 : inexact-ok
+= log2p1 towardzero binary32 -0xe.d142ep-8 : -0x1.60548ep-4 : inexact-ok
+= log2p1 upward binary32 -0xe.d142ep-8 : -0x1.60548ep-4 : inexact-ok
+= log2p1 downward binary64 -0xe.d142ep-8 : -0x1.60548f0000002p-4 : inexact-ok
+= log2p1 tonearest binary64 -0xe.d142ep-8 : -0x1.60548f0000001p-4 : inexact-ok
+= log2p1 towardzero binary64 -0xe.d142ep-8 : -0x1.60548f0000001p-4 : inexact-ok
+= log2p1 upward binary64 -0xe.d142ep-8 : -0x1.60548f0000001p-4 : inexact-ok
+= log2p1 downward intel96 -0xe.d142ep-8 : -0x1.60548f00000016dp-4 : inexact-ok
+= log2p1 tonearest intel96 -0xe.d142ep-8 : -0x1.60548f00000016dp-4 : inexact-ok
+= log2p1 towardzero intel96 -0xe.d142ep-8 : -0x1.60548f00000016cep-4 : inexact-ok
+= log2p1 upward intel96 -0xe.d142ep-8 : -0x1.60548f00000016cep-4 : inexact-ok
+= log2p1 downward m68k96 -0xe.d142ep-8 : -0x1.60548f00000016dp-4 : inexact-ok
+= log2p1 tonearest m68k96 -0xe.d142ep-8 : -0x1.60548f00000016dp-4 : inexact-ok
+= log2p1 towardzero m68k96 -0xe.d142ep-8 : -0x1.60548f00000016cep-4 : inexact-ok
+= log2p1 upward m68k96 -0xe.d142ep-8 : -0x1.60548f00000016cep-4 : inexact-ok
+= log2p1 downward binary128 -0xe.d142ep-8 : -0x1.60548f00000016cf47431656929dp-4 : inexact-ok
+= log2p1 tonearest binary128 -0xe.d142ep-8 : -0x1.60548f00000016cf47431656929dp-4 : inexact-ok
+= log2p1 towardzero binary128 -0xe.d142ep-8 : -0x1.60548f00000016cf47431656929cp-4 : inexact-ok
+= log2p1 upward binary128 -0xe.d142ep-8 : -0x1.60548f00000016cf47431656929cp-4 : inexact-ok
+= log2p1 downward ibm128 -0xe.d142ep-8 : -0x1.60548f00000016cf4743165693p-4 : inexact-ok
+= log2p1 tonearest ibm128 -0xe.d142ep-8 : -0x1.60548f00000016cf47431656928p-4 : inexact-ok
+= log2p1 towardzero ibm128 -0xe.d142ep-8 : -0x1.60548f00000016cf47431656928p-4 : inexact-ok
+= log2p1 upward ibm128 -0xe.d142ep-8 : -0x1.60548f00000016cf47431656928p-4 : inexact-ok