about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--math/auto-libm-test-in6
-rw-r--r--math/auto-libm-test-out318
-rw-r--r--sysdeps/i386/fpu/libm-test-ulps8
-rw-r--r--sysdeps/x86_64/fpu/libm-test-ulps26
5 files changed, 357 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index b0a17b0634..fa79590929 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2015-03-24  Joseph Myers  <joseph@codesourcery.com>
+
+	* math/auto-libm-test-in: Add more tests of log2.
+	* math/auto-libm-test-out: Regenerated.
+	* sysdeps/i386/fpu/libm-test-ulps: Update.
+	* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
+
 2015-03-23  Roland McGrath  <roland@hack.frob.com>
 
 	* libio/iofdopen.c: Move FD_FLAGS declaration into its first use,
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 4a9f935764..91d2ae6f41 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -1656,6 +1656,12 @@ log2 2.0
 log2 16.0
 log2 256.0
 log2 0.75
+log2 0x1.28d3b4p+0
+log2 0xe.d99dap-4
+log2 0x1.63d202d04392cp+0
+log2 0xf.d9ce0b1a50e08p-4
+log2 0x1.07465bdc7e41b52ep+0
+log2 0xf.4dfb4p-48
 log2 min
 log2 min_subnorm
 
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index 223caf2c30..8d3122907e 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -133788,6 +133788,324 @@ log2 0.75
 = log2 tonearest ldbl-128ibm 0xcp-4L : -0x6.a3fe5c6042978605ff4edf5f98p-4L : inexact-ok
 = log2 towardzero ldbl-128ibm 0xcp-4L : -0x6.a3fe5c6042978605ff4edf5f96p-4L : inexact-ok
 = log2 upward ldbl-128ibm 0xcp-4L : -0x6.a3fe5c6042978605ff4edf5f96p-4L : inexact-ok
+log2 0x1.28d3b4p+0
+= log2 downward flt-32 0x1.28d3b4p+0f : 0x3.6a6844p-4f : inexact-ok
+= log2 tonearest flt-32 0x1.28d3b4p+0f : 0x3.6a6848p-4f : inexact-ok
+= log2 towardzero flt-32 0x1.28d3b4p+0f : 0x3.6a6844p-4f : inexact-ok
+= log2 upward flt-32 0x1.28d3b4p+0f : 0x3.6a6848p-4f : inexact-ok
+= log2 downward dbl-64 0x1.28d3b4p+0 : 0x3.6a6846287159cp-4 : inexact-ok
+= log2 tonearest dbl-64 0x1.28d3b4p+0 : 0x3.6a6846287159cp-4 : inexact-ok
+= log2 towardzero dbl-64 0x1.28d3b4p+0 : 0x3.6a6846287159cp-4 : inexact-ok
+= log2 upward dbl-64 0x1.28d3b4p+0 : 0x3.6a6846287159ep-4 : inexact-ok
+= log2 downward ldbl-96-intel 0x1.28d3b4p+0L : 0x3.6a6846287159cebp-4L : inexact-ok
+= log2 tonearest ldbl-96-intel 0x1.28d3b4p+0L : 0x3.6a6846287159cebp-4L : inexact-ok
+= log2 towardzero ldbl-96-intel 0x1.28d3b4p+0L : 0x3.6a6846287159cebp-4L : inexact-ok
+= log2 upward ldbl-96-intel 0x1.28d3b4p+0L : 0x3.6a6846287159ceb4p-4L : inexact-ok
+= log2 downward ldbl-96-m68k 0x1.28d3b4p+0L : 0x3.6a6846287159cebp-4L : inexact-ok
+= log2 tonearest ldbl-96-m68k 0x1.28d3b4p+0L : 0x3.6a6846287159cebp-4L : inexact-ok
+= log2 towardzero ldbl-96-m68k 0x1.28d3b4p+0L : 0x3.6a6846287159cebp-4L : inexact-ok
+= log2 upward ldbl-96-m68k 0x1.28d3b4p+0L : 0x3.6a6846287159ceb4p-4L : inexact-ok
+= log2 downward ldbl-128 0x1.28d3b4p+0L : 0x3.6a6846287159ceb1f8d965deea72p-4L : inexact-ok
+= log2 tonearest ldbl-128 0x1.28d3b4p+0L : 0x3.6a6846287159ceb1f8d965deea72p-4L : inexact-ok
+= log2 towardzero ldbl-128 0x1.28d3b4p+0L : 0x3.6a6846287159ceb1f8d965deea72p-4L : inexact-ok
+= log2 upward ldbl-128 0x1.28d3b4p+0L : 0x3.6a6846287159ceb1f8d965deea74p-4L : inexact-ok
+= log2 downward ldbl-128ibm 0x1.28d3b4p+0L : 0x3.6a6846287159ceb1f8d965deeap-4L : inexact-ok
+= log2 tonearest ldbl-128ibm 0x1.28d3b4p+0L : 0x3.6a6846287159ceb1f8d965deeap-4L : inexact-ok
+= log2 towardzero ldbl-128ibm 0x1.28d3b4p+0L : 0x3.6a6846287159ceb1f8d965deeap-4L : inexact-ok
+= log2 upward ldbl-128ibm 0x1.28d3b4p+0L : 0x3.6a6846287159ceb1f8d965deebp-4L : inexact-ok
+log2 0xe.d99dap-4
+= log2 downward flt-32 0xe.d99dap-4f : -0x1.b8bdfp-4f : inexact-ok
+= log2 tonearest flt-32 0xe.d99dap-4f : -0x1.b8bdeep-4f : inexact-ok
+= log2 towardzero flt-32 0xe.d99dap-4f : -0x1.b8bdeep-4f : inexact-ok
+= log2 upward flt-32 0xe.d99dap-4f : -0x1.b8bdeep-4f : inexact-ok
+= log2 downward dbl-64 0xe.d99dap-4 : -0x1.b8bdee5bd4283p-4 : inexact-ok
+= log2 tonearest dbl-64 0xe.d99dap-4 : -0x1.b8bdee5bd4282p-4 : inexact-ok
+= log2 towardzero dbl-64 0xe.d99dap-4 : -0x1.b8bdee5bd4282p-4 : inexact-ok
+= log2 upward dbl-64 0xe.d99dap-4 : -0x1.b8bdee5bd4282p-4 : inexact-ok
+= log2 downward ldbl-96-intel 0xe.d99dap-4L : -0x1.b8bdee5bd428255p-4L : inexact-ok
+= log2 tonearest ldbl-96-intel 0xe.d99dap-4L : -0x1.b8bdee5bd428254ep-4L : inexact-ok
+= log2 towardzero ldbl-96-intel 0xe.d99dap-4L : -0x1.b8bdee5bd428254ep-4L : inexact-ok
+= log2 upward ldbl-96-intel 0xe.d99dap-4L : -0x1.b8bdee5bd428254ep-4L : inexact-ok
+= log2 downward ldbl-96-m68k 0xe.d99dap-4L : -0x1.b8bdee5bd428255p-4L : inexact-ok
+= log2 tonearest ldbl-96-m68k 0xe.d99dap-4L : -0x1.b8bdee5bd428254ep-4L : inexact-ok
+= log2 towardzero ldbl-96-m68k 0xe.d99dap-4L : -0x1.b8bdee5bd428254ep-4L : inexact-ok
+= log2 upward ldbl-96-m68k 0xe.d99dap-4L : -0x1.b8bdee5bd428254ep-4L : inexact-ok
+= log2 downward ldbl-128 0xe.d99dap-4L : -0x1.b8bdee5bd428254ebf7ead086211p-4L : inexact-ok
+= log2 tonearest ldbl-128 0xe.d99dap-4L : -0x1.b8bdee5bd428254ebf7ead086211p-4L : inexact-ok
+= log2 towardzero ldbl-128 0xe.d99dap-4L : -0x1.b8bdee5bd428254ebf7ead08621p-4L : inexact-ok
+= log2 upward ldbl-128 0xe.d99dap-4L : -0x1.b8bdee5bd428254ebf7ead08621p-4L : inexact-ok
+= log2 downward ldbl-128ibm 0xe.d99dap-4L : -0x1.b8bdee5bd428254ebf7ead08628p-4L : inexact-ok
+= log2 tonearest ldbl-128ibm 0xe.d99dap-4L : -0x1.b8bdee5bd428254ebf7ead0862p-4L : inexact-ok
+= log2 towardzero ldbl-128ibm 0xe.d99dap-4L : -0x1.b8bdee5bd428254ebf7ead0862p-4L : inexact-ok
+= log2 upward ldbl-128ibm 0xe.d99dap-4L : -0x1.b8bdee5bd428254ebf7ead0862p-4L : inexact-ok
+log2 0x1.63d202d04392cp+0
+= log2 downward flt-32 0x1.63d204p+0f : 0x7.999f28p-4f : inexact-ok
+= log2 tonearest flt-32 0x1.63d204p+0f : 0x7.999f28p-4f : inexact-ok
+= log2 towardzero flt-32 0x1.63d204p+0f : 0x7.999f28p-4f : inexact-ok
+= log2 upward flt-32 0x1.63d204p+0f : 0x7.999f3p-4f : inexact-ok
+= log2 downward dbl-64 0x1.63d204p+0 : 0x7.999f2a94857bp-4 : inexact-ok
+= log2 tonearest dbl-64 0x1.63d204p+0 : 0x7.999f2a94857b4p-4 : inexact-ok
+= log2 towardzero dbl-64 0x1.63d204p+0 : 0x7.999f2a94857bp-4 : inexact-ok
+= log2 upward dbl-64 0x1.63d204p+0 : 0x7.999f2a94857b4p-4 : inexact-ok
+= log2 downward ldbl-96-intel 0x1.63d204p+0L : 0x7.999f2a94857b22ep-4L : inexact-ok
+= log2 tonearest ldbl-96-intel 0x1.63d204p+0L : 0x7.999f2a94857b22ep-4L : inexact-ok
+= log2 towardzero ldbl-96-intel 0x1.63d204p+0L : 0x7.999f2a94857b22ep-4L : inexact-ok
+= log2 upward ldbl-96-intel 0x1.63d204p+0L : 0x7.999f2a94857b22e8p-4L : inexact-ok
+= log2 downward ldbl-96-m68k 0x1.63d204p+0L : 0x7.999f2a94857b22ep-4L : inexact-ok
+= log2 tonearest ldbl-96-m68k 0x1.63d204p+0L : 0x7.999f2a94857b22ep-4L : inexact-ok
+= log2 towardzero ldbl-96-m68k 0x1.63d204p+0L : 0x7.999f2a94857b22ep-4L : inexact-ok
+= log2 upward ldbl-96-m68k 0x1.63d204p+0L : 0x7.999f2a94857b22e8p-4L : inexact-ok
+= log2 downward ldbl-128 0x1.63d204p+0L : 0x7.999f2a94857b22e23de191021e94p-4L : inexact-ok
+= log2 tonearest ldbl-128 0x1.63d204p+0L : 0x7.999f2a94857b22e23de191021e94p-4L : inexact-ok
+= log2 towardzero ldbl-128 0x1.63d204p+0L : 0x7.999f2a94857b22e23de191021e94p-4L : inexact-ok
+= log2 upward ldbl-128 0x1.63d204p+0L : 0x7.999f2a94857b22e23de191021e98p-4L : inexact-ok
+= log2 downward ldbl-128ibm 0x1.63d204p+0L : 0x7.999f2a94857b22e23de191021ep-4L : inexact-ok
+= log2 tonearest ldbl-128ibm 0x1.63d204p+0L : 0x7.999f2a94857b22e23de191021ep-4L : inexact-ok
+= log2 towardzero ldbl-128ibm 0x1.63d204p+0L : 0x7.999f2a94857b22e23de191021ep-4L : inexact-ok
+= log2 upward ldbl-128ibm 0x1.63d204p+0L : 0x7.999f2a94857b22e23de191022p-4L : inexact-ok
+= log2 downward flt-32 0x1.63d202p+0f : 0x7.999f08p-4f : inexact-ok
+= log2 tonearest flt-32 0x1.63d202p+0f : 0x7.999f08p-4f : inexact-ok
+= log2 towardzero flt-32 0x1.63d202p+0f : 0x7.999f08p-4f : inexact-ok
+= log2 upward flt-32 0x1.63d202p+0f : 0x7.999f1p-4f : inexact-ok
+= log2 downward dbl-64 0x1.63d202p+0 : 0x7.999f095d7e15p-4 : inexact-ok
+= log2 tonearest dbl-64 0x1.63d202p+0 : 0x7.999f095d7e15p-4 : inexact-ok
+= log2 towardzero dbl-64 0x1.63d202p+0 : 0x7.999f095d7e15p-4 : inexact-ok
+= log2 upward dbl-64 0x1.63d202p+0 : 0x7.999f095d7e154p-4 : inexact-ok
+= log2 downward ldbl-96-intel 0x1.63d202p+0L : 0x7.999f095d7e150198p-4L : inexact-ok
+= log2 tonearest ldbl-96-intel 0x1.63d202p+0L : 0x7.999f095d7e150198p-4L : inexact-ok
+= log2 towardzero ldbl-96-intel 0x1.63d202p+0L : 0x7.999f095d7e150198p-4L : inexact-ok
+= log2 upward ldbl-96-intel 0x1.63d202p+0L : 0x7.999f095d7e1501ap-4L : inexact-ok
+= log2 downward ldbl-96-m68k 0x1.63d202p+0L : 0x7.999f095d7e150198p-4L : inexact-ok
+= log2 tonearest ldbl-96-m68k 0x1.63d202p+0L : 0x7.999f095d7e150198p-4L : inexact-ok
+= log2 towardzero ldbl-96-m68k 0x1.63d202p+0L : 0x7.999f095d7e150198p-4L : inexact-ok
+= log2 upward ldbl-96-m68k 0x1.63d202p+0L : 0x7.999f095d7e1501ap-4L : inexact-ok
+= log2 downward ldbl-128 0x1.63d202p+0L : 0x7.999f095d7e150199097308f7442p-4L : inexact-ok
+= log2 tonearest ldbl-128 0x1.63d202p+0L : 0x7.999f095d7e150199097308f7442p-4L : inexact-ok
+= log2 towardzero ldbl-128 0x1.63d202p+0L : 0x7.999f095d7e150199097308f7442p-4L : inexact-ok
+= log2 upward ldbl-128 0x1.63d202p+0L : 0x7.999f095d7e150199097308f74424p-4L : inexact-ok
+= log2 downward ldbl-128ibm 0x1.63d202p+0L : 0x7.999f095d7e150199097308f744p-4L : inexact-ok
+= log2 tonearest ldbl-128ibm 0x1.63d202p+0L : 0x7.999f095d7e150199097308f744p-4L : inexact-ok
+= log2 towardzero ldbl-128ibm 0x1.63d202p+0L : 0x7.999f095d7e150199097308f744p-4L : inexact-ok
+= log2 upward ldbl-128ibm 0x1.63d202p+0L : 0x7.999f095d7e150199097308f746p-4L : inexact-ok
+= log2 downward dbl-64 0x1.63d202d04392cp+0 : 0x7.999f16e03b54cp-4 : inexact-ok
+= log2 tonearest dbl-64 0x1.63d202d04392cp+0 : 0x7.999f16e03b55p-4 : inexact-ok
+= log2 towardzero dbl-64 0x1.63d202d04392cp+0 : 0x7.999f16e03b54cp-4 : inexact-ok
+= log2 upward dbl-64 0x1.63d202d04392cp+0 : 0x7.999f16e03b55p-4 : inexact-ok
+= log2 downward ldbl-96-intel 0x1.63d202d04392cp+0L : 0x7.999f16e03b54e0fp-4L : inexact-ok
+= log2 tonearest ldbl-96-intel 0x1.63d202d04392cp+0L : 0x7.999f16e03b54e0f8p-4L : inexact-ok
+= log2 towardzero ldbl-96-intel 0x1.63d202d04392cp+0L : 0x7.999f16e03b54e0fp-4L : inexact-ok
+= log2 upward ldbl-96-intel 0x1.63d202d04392cp+0L : 0x7.999f16e03b54e0f8p-4L : inexact-ok
+= log2 downward ldbl-96-m68k 0x1.63d202d04392cp+0L : 0x7.999f16e03b54e0fp-4L : inexact-ok
+= log2 tonearest ldbl-96-m68k 0x1.63d202d04392cp+0L : 0x7.999f16e03b54e0f8p-4L : inexact-ok
+= log2 towardzero ldbl-96-m68k 0x1.63d202d04392cp+0L : 0x7.999f16e03b54e0fp-4L : inexact-ok
+= log2 upward ldbl-96-m68k 0x1.63d202d04392cp+0L : 0x7.999f16e03b54e0f8p-4L : inexact-ok
+= log2 downward ldbl-128 0x1.63d202d04392cp+0L : 0x7.999f16e03b54e0f55354326ba2c4p-4L : inexact-ok
+= log2 tonearest ldbl-128 0x1.63d202d04392cp+0L : 0x7.999f16e03b54e0f55354326ba2c8p-4L : inexact-ok
+= log2 towardzero ldbl-128 0x1.63d202d04392cp+0L : 0x7.999f16e03b54e0f55354326ba2c4p-4L : inexact-ok
+= log2 upward ldbl-128 0x1.63d202d04392cp+0L : 0x7.999f16e03b54e0f55354326ba2c8p-4L : inexact-ok
+= log2 downward ldbl-128ibm 0x1.63d202d04392cp+0L : 0x7.999f16e03b54e0f55354326ba2p-4L : inexact-ok
+= log2 tonearest ldbl-128ibm 0x1.63d202d04392cp+0L : 0x7.999f16e03b54e0f55354326ba2p-4L : inexact-ok
+= log2 towardzero ldbl-128ibm 0x1.63d202d04392cp+0L : 0x7.999f16e03b54e0f55354326ba2p-4L : inexact-ok
+= log2 upward ldbl-128ibm 0x1.63d202d04392cp+0L : 0x7.999f16e03b54e0f55354326ba4p-4L : inexact-ok
+log2 0xf.d9ce0b1a50e08p-4
+= log2 downward flt-32 0xf.d9ce1p-4f : -0x3.75cc4p-8f : inexact-ok
+= log2 tonearest flt-32 0xf.d9ce1p-4f : -0x3.75cc4p-8f : inexact-ok
+= log2 towardzero flt-32 0xf.d9ce1p-4f : -0x3.75cc3cp-8f : inexact-ok
+= log2 upward flt-32 0xf.d9ce1p-4f : -0x3.75cc3cp-8f : inexact-ok
+= log2 downward dbl-64 0xf.d9ce1p-4 : -0x3.75cc3f2233d66p-8 : inexact-ok
+= log2 tonearest dbl-64 0xf.d9ce1p-4 : -0x3.75cc3f2233d66p-8 : inexact-ok
+= log2 towardzero dbl-64 0xf.d9ce1p-4 : -0x3.75cc3f2233d64p-8 : inexact-ok
+= log2 upward dbl-64 0xf.d9ce1p-4 : -0x3.75cc3f2233d64p-8 : inexact-ok
+= log2 downward ldbl-96-intel 0xf.d9ce1p-4L : -0x3.75cc3f2233d65c74p-8L : inexact-ok
+= log2 tonearest ldbl-96-intel 0xf.d9ce1p-4L : -0x3.75cc3f2233d65c7p-8L : inexact-ok
+= log2 towardzero ldbl-96-intel 0xf.d9ce1p-4L : -0x3.75cc3f2233d65c7p-8L : inexact-ok
+= log2 upward ldbl-96-intel 0xf.d9ce1p-4L : -0x3.75cc3f2233d65c7p-8L : inexact-ok
+= log2 downward ldbl-96-m68k 0xf.d9ce1p-4L : -0x3.75cc3f2233d65c74p-8L : inexact-ok
+= log2 tonearest ldbl-96-m68k 0xf.d9ce1p-4L : -0x3.75cc3f2233d65c7p-8L : inexact-ok
+= log2 towardzero ldbl-96-m68k 0xf.d9ce1p-4L : -0x3.75cc3f2233d65c7p-8L : inexact-ok
+= log2 upward ldbl-96-m68k 0xf.d9ce1p-4L : -0x3.75cc3f2233d65c7p-8L : inexact-ok
+= log2 downward ldbl-128 0xf.d9ce1p-4L : -0x3.75cc3f2233d65c71f491713f54cap-8L : inexact-ok
+= log2 tonearest ldbl-128 0xf.d9ce1p-4L : -0x3.75cc3f2233d65c71f491713f54c8p-8L : inexact-ok
+= log2 towardzero ldbl-128 0xf.d9ce1p-4L : -0x3.75cc3f2233d65c71f491713f54c8p-8L : inexact-ok
+= log2 upward ldbl-128 0xf.d9ce1p-4L : -0x3.75cc3f2233d65c71f491713f54c8p-8L : inexact-ok
+= log2 downward ldbl-128ibm 0xf.d9ce1p-4L : -0x3.75cc3f2233d65c71f491713f55p-8L : inexact-ok
+= log2 tonearest ldbl-128ibm 0xf.d9ce1p-4L : -0x3.75cc3f2233d65c71f491713f55p-8L : inexact-ok
+= log2 towardzero ldbl-128ibm 0xf.d9ce1p-4L : -0x3.75cc3f2233d65c71f491713f54p-8L : inexact-ok
+= log2 upward ldbl-128ibm 0xf.d9ce1p-4L : -0x3.75cc3f2233d65c71f491713f54p-8L : inexact-ok
+= log2 downward flt-32 0xf.d9cep-4f : -0x3.75cdb4p-8f : inexact-ok
+= log2 tonearest flt-32 0xf.d9cep-4f : -0x3.75cdb4p-8f : inexact-ok
+= log2 towardzero flt-32 0xf.d9cep-4f : -0x3.75cdbp-8f : inexact-ok
+= log2 upward flt-32 0xf.d9cep-4f : -0x3.75cdbp-8f : inexact-ok
+= log2 downward dbl-64 0xf.d9cep-4 : -0x3.75cdb3f0a0b66p-8 : inexact-ok
+= log2 tonearest dbl-64 0xf.d9cep-4 : -0x3.75cdb3f0a0b66p-8 : inexact-ok
+= log2 towardzero dbl-64 0xf.d9cep-4 : -0x3.75cdb3f0a0b64p-8 : inexact-ok
+= log2 upward dbl-64 0xf.d9cep-4 : -0x3.75cdb3f0a0b64p-8 : inexact-ok
+= log2 downward ldbl-96-intel 0xf.d9cep-4L : -0x3.75cdb3f0a0b65598p-8L : inexact-ok
+= log2 tonearest ldbl-96-intel 0xf.d9cep-4L : -0x3.75cdb3f0a0b65598p-8L : inexact-ok
+= log2 towardzero ldbl-96-intel 0xf.d9cep-4L : -0x3.75cdb3f0a0b65594p-8L : inexact-ok
+= log2 upward ldbl-96-intel 0xf.d9cep-4L : -0x3.75cdb3f0a0b65594p-8L : inexact-ok
+= log2 downward ldbl-96-m68k 0xf.d9cep-4L : -0x3.75cdb3f0a0b65598p-8L : inexact-ok
+= log2 tonearest ldbl-96-m68k 0xf.d9cep-4L : -0x3.75cdb3f0a0b65598p-8L : inexact-ok
+= log2 towardzero ldbl-96-m68k 0xf.d9cep-4L : -0x3.75cdb3f0a0b65594p-8L : inexact-ok
+= log2 upward ldbl-96-m68k 0xf.d9cep-4L : -0x3.75cdb3f0a0b65594p-8L : inexact-ok
+= log2 downward ldbl-128 0xf.d9cep-4L : -0x3.75cdb3f0a0b655972857a48ecdfap-8L : inexact-ok
+= log2 tonearest ldbl-128 0xf.d9cep-4L : -0x3.75cdb3f0a0b655972857a48ecdfap-8L : inexact-ok
+= log2 towardzero ldbl-128 0xf.d9cep-4L : -0x3.75cdb3f0a0b655972857a48ecdf8p-8L : inexact-ok
+= log2 upward ldbl-128 0xf.d9cep-4L : -0x3.75cdb3f0a0b655972857a48ecdf8p-8L : inexact-ok
+= log2 downward ldbl-128ibm 0xf.d9cep-4L : -0x3.75cdb3f0a0b655972857a48ecep-8L : inexact-ok
+= log2 tonearest ldbl-128ibm 0xf.d9cep-4L : -0x3.75cdb3f0a0b655972857a48ecep-8L : inexact-ok
+= log2 towardzero ldbl-128ibm 0xf.d9cep-4L : -0x3.75cdb3f0a0b655972857a48ecdp-8L : inexact-ok
+= log2 upward ldbl-128ibm 0xf.d9cep-4L : -0x3.75cdb3f0a0b655972857a48ecdp-8L : inexact-ok
+= log2 downward dbl-64 0xf.d9ce0b1a50e08p-4 : -0x3.75ccb13d89cc8p-8 : inexact-ok
+= log2 tonearest dbl-64 0xf.d9ce0b1a50e08p-4 : -0x3.75ccb13d89cc6p-8 : inexact-ok
+= log2 towardzero dbl-64 0xf.d9ce0b1a50e08p-4 : -0x3.75ccb13d89cc6p-8 : inexact-ok
+= log2 upward dbl-64 0xf.d9ce0b1a50e08p-4 : -0x3.75ccb13d89cc6p-8 : inexact-ok
+= log2 downward ldbl-96-intel 0xf.d9ce0b1a50e08p-4L : -0x3.75ccb13d89cc66fp-8L : inexact-ok
+= log2 tonearest ldbl-96-intel 0xf.d9ce0b1a50e08p-4L : -0x3.75ccb13d89cc66fp-8L : inexact-ok
+= log2 towardzero ldbl-96-intel 0xf.d9ce0b1a50e08p-4L : -0x3.75ccb13d89cc66ecp-8L : inexact-ok
+= log2 upward ldbl-96-intel 0xf.d9ce0b1a50e08p-4L : -0x3.75ccb13d89cc66ecp-8L : inexact-ok
+= log2 downward ldbl-96-m68k 0xf.d9ce0b1a50e08p-4L : -0x3.75ccb13d89cc66fp-8L : inexact-ok
+= log2 tonearest ldbl-96-m68k 0xf.d9ce0b1a50e08p-4L : -0x3.75ccb13d89cc66fp-8L : inexact-ok
+= log2 towardzero ldbl-96-m68k 0xf.d9ce0b1a50e08p-4L : -0x3.75ccb13d89cc66ecp-8L : inexact-ok
+= log2 upward ldbl-96-m68k 0xf.d9ce0b1a50e08p-4L : -0x3.75ccb13d89cc66ecp-8L : inexact-ok
+= log2 downward ldbl-128 0xf.d9ce0b1a50e08p-4L : -0x3.75ccb13d89cc66ee72a7e068c0eap-8L : inexact-ok
+= log2 tonearest ldbl-128 0xf.d9ce0b1a50e08p-4L : -0x3.75ccb13d89cc66ee72a7e068c0eap-8L : inexact-ok
+= log2 towardzero ldbl-128 0xf.d9ce0b1a50e08p-4L : -0x3.75ccb13d89cc66ee72a7e068c0e8p-8L : inexact-ok
+= log2 upward ldbl-128 0xf.d9ce0b1a50e08p-4L : -0x3.75ccb13d89cc66ee72a7e068c0e8p-8L : inexact-ok
+= log2 downward ldbl-128ibm 0xf.d9ce0b1a50e08p-4L : -0x3.75ccb13d89cc66ee72a7e068c1p-8L : inexact-ok
+= log2 tonearest ldbl-128ibm 0xf.d9ce0b1a50e08p-4L : -0x3.75ccb13d89cc66ee72a7e068c1p-8L : inexact-ok
+= log2 towardzero ldbl-128ibm 0xf.d9ce0b1a50e08p-4L : -0x3.75ccb13d89cc66ee72a7e068cp-8L : inexact-ok
+= log2 upward ldbl-128ibm 0xf.d9ce0b1a50e08p-4L : -0x3.75ccb13d89cc66ee72a7e068cp-8L : inexact-ok
+log2 0x1.07465bdc7e41b52ep+0
+= log2 downward flt-32 0x1.07465cp+0f : 0xa.59594p-8f : inexact-ok
+= log2 tonearest flt-32 0x1.07465cp+0f : 0xa.59594p-8f : inexact-ok
+= log2 towardzero flt-32 0x1.07465cp+0f : 0xa.59594p-8f : inexact-ok
+= log2 upward flt-32 0x1.07465cp+0f : 0xa.59595p-8f : inexact-ok
+= log2 downward dbl-64 0x1.07465cp+0 : 0xa.5959448ade0b8p-8 : inexact-ok
+= log2 tonearest dbl-64 0x1.07465cp+0 : 0xa.5959448ade0cp-8 : inexact-ok
+= log2 towardzero dbl-64 0x1.07465cp+0 : 0xa.5959448ade0b8p-8 : inexact-ok
+= log2 upward dbl-64 0x1.07465cp+0 : 0xa.5959448ade0cp-8 : inexact-ok
+= log2 downward ldbl-96-intel 0x1.07465cp+0L : 0xa.5959448ade0bdcbp-8L : inexact-ok
+= log2 tonearest ldbl-96-intel 0x1.07465cp+0L : 0xa.5959448ade0bdcbp-8L : inexact-ok
+= log2 towardzero ldbl-96-intel 0x1.07465cp+0L : 0xa.5959448ade0bdcbp-8L : inexact-ok
+= log2 upward ldbl-96-intel 0x1.07465cp+0L : 0xa.5959448ade0bdccp-8L : inexact-ok
+= log2 downward ldbl-96-m68k 0x1.07465cp+0L : 0xa.5959448ade0bdcbp-8L : inexact-ok
+= log2 tonearest ldbl-96-m68k 0x1.07465cp+0L : 0xa.5959448ade0bdcbp-8L : inexact-ok
+= log2 towardzero ldbl-96-m68k 0x1.07465cp+0L : 0xa.5959448ade0bdcbp-8L : inexact-ok
+= log2 upward ldbl-96-m68k 0x1.07465cp+0L : 0xa.5959448ade0bdccp-8L : inexact-ok
+= log2 downward ldbl-128 0x1.07465cp+0L : 0xa.5959448ade0bdcb61198f8dd2668p-8L : inexact-ok
+= log2 tonearest ldbl-128 0x1.07465cp+0L : 0xa.5959448ade0bdcb61198f8dd2668p-8L : inexact-ok
+= log2 towardzero ldbl-128 0x1.07465cp+0L : 0xa.5959448ade0bdcb61198f8dd2668p-8L : inexact-ok
+= log2 upward ldbl-128 0x1.07465cp+0L : 0xa.5959448ade0bdcb61198f8dd267p-8L : inexact-ok
+= log2 downward ldbl-128ibm 0x1.07465cp+0L : 0xa.5959448ade0bdcb61198f8dd24p-8L : inexact-ok
+= log2 tonearest ldbl-128ibm 0x1.07465cp+0L : 0xa.5959448ade0bdcb61198f8dd28p-8L : inexact-ok
+= log2 towardzero ldbl-128ibm 0x1.07465cp+0L : 0xa.5959448ade0bdcb61198f8dd24p-8L : inexact-ok
+= log2 upward ldbl-128ibm 0x1.07465cp+0L : 0xa.5959448ade0bdcb61198f8dd28p-8L : inexact-ok
+= log2 downward flt-32 0x1.07465ap+0f : 0xa.59567p-8f : inexact-ok
+= log2 tonearest flt-32 0x1.07465ap+0f : 0xa.59567p-8f : inexact-ok
+= log2 towardzero flt-32 0x1.07465ap+0f : 0xa.59567p-8f : inexact-ok
+= log2 upward flt-32 0x1.07465ap+0f : 0xa.59568p-8f : inexact-ok
+= log2 downward dbl-64 0x1.07465ap+0 : 0xa.5956764b14a98p-8 : inexact-ok
+= log2 tonearest dbl-64 0x1.07465ap+0 : 0xa.5956764b14aap-8 : inexact-ok
+= log2 towardzero dbl-64 0x1.07465ap+0 : 0xa.5956764b14a98p-8 : inexact-ok
+= log2 upward dbl-64 0x1.07465ap+0 : 0xa.5956764b14aap-8 : inexact-ok
+= log2 downward ldbl-96-intel 0x1.07465ap+0L : 0xa.5956764b14a9d7dp-8L : inexact-ok
+= log2 tonearest ldbl-96-intel 0x1.07465ap+0L : 0xa.5956764b14a9d7ep-8L : inexact-ok
+= log2 towardzero ldbl-96-intel 0x1.07465ap+0L : 0xa.5956764b14a9d7dp-8L : inexact-ok
+= log2 upward ldbl-96-intel 0x1.07465ap+0L : 0xa.5956764b14a9d7ep-8L : inexact-ok
+= log2 downward ldbl-96-m68k 0x1.07465ap+0L : 0xa.5956764b14a9d7dp-8L : inexact-ok
+= log2 tonearest ldbl-96-m68k 0x1.07465ap+0L : 0xa.5956764b14a9d7ep-8L : inexact-ok
+= log2 towardzero ldbl-96-m68k 0x1.07465ap+0L : 0xa.5956764b14a9d7dp-8L : inexact-ok
+= log2 upward ldbl-96-m68k 0x1.07465ap+0L : 0xa.5956764b14a9d7ep-8L : inexact-ok
+= log2 downward ldbl-128 0x1.07465ap+0L : 0xa.5956764b14a9d7da921863b84ba8p-8L : inexact-ok
+= log2 tonearest ldbl-128 0x1.07465ap+0L : 0xa.5956764b14a9d7da921863b84bbp-8L : inexact-ok
+= log2 towardzero ldbl-128 0x1.07465ap+0L : 0xa.5956764b14a9d7da921863b84ba8p-8L : inexact-ok
+= log2 upward ldbl-128 0x1.07465ap+0L : 0xa.5956764b14a9d7da921863b84bbp-8L : inexact-ok
+= log2 downward ldbl-128ibm 0x1.07465ap+0L : 0xa.5956764b14a9d7da921863b848p-8L : inexact-ok
+= log2 tonearest ldbl-128ibm 0x1.07465ap+0L : 0xa.5956764b14a9d7da921863b84cp-8L : inexact-ok
+= log2 towardzero ldbl-128ibm 0x1.07465ap+0L : 0xa.5956764b14a9d7da921863b848p-8L : inexact-ok
+= log2 upward ldbl-128ibm 0x1.07465ap+0L : 0xa.5956764b14a9d7da921863b84cp-8L : inexact-ok
+= log2 downward dbl-64 0x1.07465bdc7e41cp+0 : 0xa.595912bb7fffp-8 : inexact-ok
+= log2 tonearest dbl-64 0x1.07465bdc7e41cp+0 : 0xa.595912bb7fffp-8 : inexact-ok
+= log2 towardzero dbl-64 0x1.07465bdc7e41cp+0 : 0xa.595912bb7fffp-8 : inexact-ok
+= log2 upward dbl-64 0x1.07465bdc7e41cp+0 : 0xa.595912bb7fff8p-8 : inexact-ok
+= log2 downward ldbl-96-intel 0x1.07465bdc7e41cp+0L : 0xa.595912bb7fff0bap-8L : inexact-ok
+= log2 tonearest ldbl-96-intel 0x1.07465bdc7e41cp+0L : 0xa.595912bb7fff0bap-8L : inexact-ok
+= log2 towardzero ldbl-96-intel 0x1.07465bdc7e41cp+0L : 0xa.595912bb7fff0bap-8L : inexact-ok
+= log2 upward ldbl-96-intel 0x1.07465bdc7e41cp+0L : 0xa.595912bb7fff0bbp-8L : inexact-ok
+= log2 downward ldbl-96-m68k 0x1.07465bdc7e41cp+0L : 0xa.595912bb7fff0bap-8L : inexact-ok
+= log2 tonearest ldbl-96-m68k 0x1.07465bdc7e41cp+0L : 0xa.595912bb7fff0bap-8L : inexact-ok
+= log2 towardzero ldbl-96-m68k 0x1.07465bdc7e41cp+0L : 0xa.595912bb7fff0bap-8L : inexact-ok
+= log2 upward ldbl-96-m68k 0x1.07465bdc7e41cp+0L : 0xa.595912bb7fff0bbp-8L : inexact-ok
+= log2 downward ldbl-128 0x1.07465bdc7e41cp+0L : 0xa.595912bb7fff0ba2d9d999b5e91p-8L : inexact-ok
+= log2 tonearest ldbl-128 0x1.07465bdc7e41cp+0L : 0xa.595912bb7fff0ba2d9d999b5e918p-8L : inexact-ok
+= log2 towardzero ldbl-128 0x1.07465bdc7e41cp+0L : 0xa.595912bb7fff0ba2d9d999b5e91p-8L : inexact-ok
+= log2 upward ldbl-128 0x1.07465bdc7e41cp+0L : 0xa.595912bb7fff0ba2d9d999b5e918p-8L : inexact-ok
+= log2 downward ldbl-128ibm 0x1.07465bdc7e41cp+0L : 0xa.595912bb7fff0ba2d9d999b5e8p-8L : inexact-ok
+= log2 tonearest ldbl-128ibm 0x1.07465bdc7e41cp+0L : 0xa.595912bb7fff0ba2d9d999b5e8p-8L : inexact-ok
+= log2 towardzero ldbl-128ibm 0x1.07465bdc7e41cp+0L : 0xa.595912bb7fff0ba2d9d999b5e8p-8L : inexact-ok
+= log2 upward ldbl-128ibm 0x1.07465bdc7e41cp+0L : 0xa.595912bb7fff0ba2d9d999b5ecp-8L : inexact-ok
+= log2 downward dbl-64 0x1.07465bdc7e41bp+0 : 0xa.595912bb7fe88p-8 : inexact-ok
+= log2 tonearest dbl-64 0x1.07465bdc7e41bp+0 : 0xa.595912bb7fe88p-8 : inexact-ok
+= log2 towardzero dbl-64 0x1.07465bdc7e41bp+0 : 0xa.595912bb7fe88p-8 : inexact-ok
+= log2 upward dbl-64 0x1.07465bdc7e41bp+0 : 0xa.595912bb7fe9p-8 : inexact-ok
+= log2 downward ldbl-96-intel 0x1.07465bdc7e41bp+0L : 0xa.595912bb7fe899ap-8L : inexact-ok
+= log2 tonearest ldbl-96-intel 0x1.07465bdc7e41bp+0L : 0xa.595912bb7fe899ap-8L : inexact-ok
+= log2 towardzero ldbl-96-intel 0x1.07465bdc7e41bp+0L : 0xa.595912bb7fe899ap-8L : inexact-ok
+= log2 upward ldbl-96-intel 0x1.07465bdc7e41bp+0L : 0xa.595912bb7fe899bp-8L : inexact-ok
+= log2 downward ldbl-96-m68k 0x1.07465bdc7e41bp+0L : 0xa.595912bb7fe899ap-8L : inexact-ok
+= log2 tonearest ldbl-96-m68k 0x1.07465bdc7e41bp+0L : 0xa.595912bb7fe899ap-8L : inexact-ok
+= log2 towardzero ldbl-96-m68k 0x1.07465bdc7e41bp+0L : 0xa.595912bb7fe899ap-8L : inexact-ok
+= log2 upward ldbl-96-m68k 0x1.07465bdc7e41bp+0L : 0xa.595912bb7fe899bp-8L : inexact-ok
+= log2 downward ldbl-128 0x1.07465bdc7e41bp+0L : 0xa.595912bb7fe899a4a195bab6756p-8L : inexact-ok
+= log2 tonearest ldbl-128 0x1.07465bdc7e41bp+0L : 0xa.595912bb7fe899a4a195bab67568p-8L : inexact-ok
+= log2 towardzero ldbl-128 0x1.07465bdc7e41bp+0L : 0xa.595912bb7fe899a4a195bab6756p-8L : inexact-ok
+= log2 upward ldbl-128 0x1.07465bdc7e41bp+0L : 0xa.595912bb7fe899a4a195bab67568p-8L : inexact-ok
+= log2 downward ldbl-128ibm 0x1.07465bdc7e41bp+0L : 0xa.595912bb7fe899a4a195bab674p-8L : inexact-ok
+= log2 tonearest ldbl-128ibm 0x1.07465bdc7e41bp+0L : 0xa.595912bb7fe899a4a195bab674p-8L : inexact-ok
+= log2 towardzero ldbl-128ibm 0x1.07465bdc7e41bp+0L : 0xa.595912bb7fe899a4a195bab674p-8L : inexact-ok
+= log2 upward ldbl-128ibm 0x1.07465bdc7e41bp+0L : 0xa.595912bb7fe899a4a195bab678p-8L : inexact-ok
+= log2 downward ldbl-96-intel 0x1.07465bdc7e41b52ep+0L : 0xa.595912bb7fefddcp-8L : inexact-ok
+= log2 tonearest ldbl-96-intel 0x1.07465bdc7e41b52ep+0L : 0xa.595912bb7fefdddp-8L : inexact-ok
+= log2 towardzero ldbl-96-intel 0x1.07465bdc7e41b52ep+0L : 0xa.595912bb7fefddcp-8L : inexact-ok
+= log2 upward ldbl-96-intel 0x1.07465bdc7e41b52ep+0L : 0xa.595912bb7fefdddp-8L : inexact-ok
+= log2 downward ldbl-96-m68k 0x1.07465bdc7e41b52ep+0L : 0xa.595912bb7fefddcp-8L : inexact-ok
+= log2 tonearest ldbl-96-m68k 0x1.07465bdc7e41b52ep+0L : 0xa.595912bb7fefdddp-8L : inexact-ok
+= log2 towardzero ldbl-96-m68k 0x1.07465bdc7e41b52ep+0L : 0xa.595912bb7fefddcp-8L : inexact-ok
+= log2 upward ldbl-96-m68k 0x1.07465bdc7e41b52ep+0L : 0xa.595912bb7fefdddp-8L : inexact-ok
+= log2 downward ldbl-128 0x1.07465bdc7e41b52ep+0L : 0xa.595912bb7fefddcbce0cb3878e3p-8L : inexact-ok
+= log2 tonearest ldbl-128 0x1.07465bdc7e41b52ep+0L : 0xa.595912bb7fefddcbce0cb3878e3p-8L : inexact-ok
+= log2 towardzero ldbl-128 0x1.07465bdc7e41b52ep+0L : 0xa.595912bb7fefddcbce0cb3878e3p-8L : inexact-ok
+= log2 upward ldbl-128 0x1.07465bdc7e41b52ep+0L : 0xa.595912bb7fefddcbce0cb3878e38p-8L : inexact-ok
+= log2 downward ldbl-128ibm 0x1.07465bdc7e41b52ep+0L : 0xa.595912bb7fefddcbce0cb3878cp-8L : inexact-ok
+= log2 tonearest ldbl-128ibm 0x1.07465bdc7e41b52ep+0L : 0xa.595912bb7fefddcbce0cb3879p-8L : inexact-ok
+= log2 towardzero ldbl-128ibm 0x1.07465bdc7e41b52ep+0L : 0xa.595912bb7fefddcbce0cb3878cp-8L : inexact-ok
+= log2 upward ldbl-128ibm 0x1.07465bdc7e41b52ep+0L : 0xa.595912bb7fefddcbce0cb3879p-8L : inexact-ok
+log2 0xf.4dfb4p-48
+= log2 downward flt-32 0xf.4dfb4p-48f : -0x2.c10694p+4f : inexact-ok
+= log2 tonearest flt-32 0xf.4dfb4p-48f : -0x2.c10694p+4f : inexact-ok
+= log2 towardzero flt-32 0xf.4dfb4p-48f : -0x2.c1069p+4f : inexact-ok
+= log2 upward flt-32 0xf.4dfb4p-48f : -0x2.c1069p+4f : inexact-ok
+= log2 downward dbl-64 0xf.4dfb4p-48 : -0x2.c106931f2bfd2p+4 : inexact-ok
+= log2 tonearest dbl-64 0xf.4dfb4p-48 : -0x2.c106931f2bfdp+4 : inexact-ok
+= log2 towardzero dbl-64 0xf.4dfb4p-48 : -0x2.c106931f2bfdp+4 : inexact-ok
+= log2 upward dbl-64 0xf.4dfb4p-48 : -0x2.c106931f2bfdp+4 : inexact-ok
+= log2 downward ldbl-96-intel 0xf.4dfb4p-48L : -0x2.c106931f2bfd0af8p+4L : inexact-ok
+= log2 tonearest ldbl-96-intel 0xf.4dfb4p-48L : -0x2.c106931f2bfd0af4p+4L : inexact-ok
+= log2 towardzero ldbl-96-intel 0xf.4dfb4p-48L : -0x2.c106931f2bfd0af4p+4L : inexact-ok
+= log2 upward ldbl-96-intel 0xf.4dfb4p-48L : -0x2.c106931f2bfd0af4p+4L : inexact-ok
+= log2 downward ldbl-96-m68k 0xf.4dfb4p-48L : -0x2.c106931f2bfd0af8p+4L : inexact-ok
+= log2 tonearest ldbl-96-m68k 0xf.4dfb4p-48L : -0x2.c106931f2bfd0af4p+4L : inexact-ok
+= log2 towardzero ldbl-96-m68k 0xf.4dfb4p-48L : -0x2.c106931f2bfd0af4p+4L : inexact-ok
+= log2 upward ldbl-96-m68k 0xf.4dfb4p-48L : -0x2.c106931f2bfd0af4p+4L : inexact-ok
+= log2 downward ldbl-128 0xf.4dfb4p-48L : -0x2.c106931f2bfd0af427fc474396b2p+4L : inexact-ok
+= log2 tonearest ldbl-128 0xf.4dfb4p-48L : -0x2.c106931f2bfd0af427fc474396bp+4L : inexact-ok
+= log2 towardzero ldbl-128 0xf.4dfb4p-48L : -0x2.c106931f2bfd0af427fc474396bp+4L : inexact-ok
+= log2 upward ldbl-128 0xf.4dfb4p-48L : -0x2.c106931f2bfd0af427fc474396bp+4L : inexact-ok
+= log2 downward ldbl-128ibm 0xf.4dfb4p-48L : -0x2.c106931f2bfd0af427fc474397p+4L : inexact-ok
+= log2 tonearest ldbl-128ibm 0xf.4dfb4p-48L : -0x2.c106931f2bfd0af427fc474397p+4L : inexact-ok
+= log2 towardzero ldbl-128ibm 0xf.4dfb4p-48L : -0x2.c106931f2bfd0af427fc474396p+4L : inexact-ok
+= log2 upward ldbl-128ibm 0xf.4dfb4p-48L : -0x2.c106931f2bfd0af427fc474396p+4L : inexact-ok
 log2 min
 = log2 downward flt-32 0x4p-128f : -0x7.ep+4f : inexact-ok
 = log2 tonearest flt-32 0x4p-128f : -0x7.ep+4f : inexact-ok
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
index 302ea4c2b9..e03dbaeeae 100644
--- a/sysdeps/i386/fpu/libm-test-ulps
+++ b/sysdeps/i386/fpu/libm-test-ulps
@@ -1651,6 +1651,14 @@ ifloat: 1
 ildouble: 1
 ldouble: 1
 
+Function: "log2":
+ildouble: 1
+ldouble: 1
+
+Function: "log2_downward":
+ildouble: 1
+ldouble: 1
+
 Function: "log2_towardzero":
 double: 1
 float: 1
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index 5cfb73f900..39dfff8e1e 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -1735,24 +1735,34 @@ ifloat: 1
 ildouble: 1
 ldouble: 1
 
+Function: "log2":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+
 Function: "log2_downward":
-double: 2
-float: 2
-idouble: 2
-ifloat: 2
+double: 3
+float: 3
+idouble: 3
+ifloat: 3
+ildouble: 1
+ldouble: 1
 
 Function: "log2_towardzero":
 double: 1
-float: 1
+float: 2
 idouble: 1
-ifloat: 1
+ifloat: 2
 ildouble: 1
 ldouble: 1
 
 Function: "log2_upward":
-double: 2
+double: 3
 float: 2
-idouble: 2
+idouble: 3
 ifloat: 2
 ildouble: 1
 ldouble: 1