]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Implement C23 logp1
authorJoseph Myers <josmyers@redhat.com>
Mon, 17 Jun 2024 13:47:09 +0000 (13:47 +0000)
committerJoseph Myers <josmyers@redhat.com>
Mon, 17 Jun 2024 13:47:09 +0000 (13:47 +0000)
C23 adds various <math.h> function families originally defined in TS
18661-4.  Add the logp1 functions (aliases for log1p functions - the
name is intended to be more consistent with the new log2p1 and
log10p1, where clearly it would have been very confusing to name those
functions log21p and log101p).  As aliases rather than new functions,
the content of this patch is somewhat different from those actually
adding new functions.

Tests are shared with log1p, so this patch *does* mechanically update
all affected libm-test-ulps files to expect the same errors for both
functions.

The vector versions of log1p on aarch64 and x86_64 are *not* updated
to have logp1 aliases (and thus there are no corresponding header,
tests, abilist or ulps changes for vector functions either).  It would
be reasonable for such vector aliases and corresponding changes to
other files to be made separately.  For now, the log1p tests instead
avoid testing logp1 in the vector case (a Makefile change is needed to
avoid problems with grep, used in generating the .c files for vector
function tests, matching more than one ALL_RM_TEST line in a file
testing multiple functions with the same inputs, when it assumes that
the .inc file only has a single such line).

Tested for x86_64 and x86, and with build-many-glibcs.py.

80 files changed:
NEWS
manual/math.texi
math/Makefile
math/Versions
math/bits/mathcalls.h
math/gen-tgmath-tests.py
math/libm-test-log1p.inc
math/test-tgmath.c
math/tgmath.h
math/w_log1p_template.c
sysdeps/aarch64/libm-test-ulps
sysdeps/alpha/fpu/libm-test-ulps
sysdeps/arc/fpu/libm-test-ulps
sysdeps/arc/nofpu/libm-test-ulps
sysdeps/arm/libm-test-ulps
sysdeps/csky/fpu/libm-test-ulps
sysdeps/csky/nofpu/libm-test-ulps
sysdeps/hppa/fpu/libm-test-ulps
sysdeps/i386/fpu/libm-test-ulps
sysdeps/i386/i686/fpu/multiarch/libm-test-ulps
sysdeps/ieee754/float128/Makefile
sysdeps/ieee754/float128/float128_private.h
sysdeps/ieee754/ldbl-128/Makefile
sysdeps/ieee754/ldbl-128ibm-compat/Versions
sysdeps/ieee754/ldbl-96/Makefile
sysdeps/ieee754/ldbl-opt/Makefile
sysdeps/ieee754/ldbl-opt/nldbl-log1p.c
sysdeps/loongarch/lp64/libm-test-ulps
sysdeps/m68k/coldfire/fpu/libm-test-ulps
sysdeps/mach/hurd/i386/libm.abilist
sysdeps/mach/hurd/x86_64/libm.abilist
sysdeps/microblaze/libm-test-ulps
sysdeps/mips/mips32/libm-test-ulps
sysdeps/mips/mips64/libm-test-ulps
sysdeps/nios2/libm-test-ulps
sysdeps/or1k/fpu/libm-test-ulps
sysdeps/or1k/nofpu/libm-test-ulps
sysdeps/powerpc/fpu/libm-test-ulps
sysdeps/powerpc/nofpu/libm-test-ulps
sysdeps/powerpc/powerpc64/le/fpu/multiarch/Makefile
sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc-redirects.h
sysdeps/powerpc/powerpc64/le/fpu/multiarch/float128-ifunc.h
sysdeps/powerpc/powerpc64/le/fpu/multiarch/math-type-macros-float128.h
sysdeps/riscv/nofpu/libm-test-ulps
sysdeps/riscv/rvd/libm-test-ulps
sysdeps/s390/fpu/libm-test-ulps
sysdeps/sh/libm-test-ulps
sysdeps/sparc/fpu/libm-test-ulps
sysdeps/unix/sysv/linux/aarch64/libm.abilist
sysdeps/unix/sysv/linux/alpha/libm.abilist
sysdeps/unix/sysv/linux/arc/libm.abilist
sysdeps/unix/sysv/linux/arm/be/libm.abilist
sysdeps/unix/sysv/linux/arm/le/libm.abilist
sysdeps/unix/sysv/linux/csky/libm.abilist
sysdeps/unix/sysv/linux/hppa/libm.abilist
sysdeps/unix/sysv/linux/i386/libm.abilist
sysdeps/unix/sysv/linux/loongarch/lp64/libm.abilist
sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist
sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist
sysdeps/unix/sysv/linux/microblaze/be/libm.abilist
sysdeps/unix/sysv/linux/microblaze/le/libm.abilist
sysdeps/unix/sysv/linux/mips/mips32/libm.abilist
sysdeps/unix/sysv/linux/mips/mips64/libm.abilist
sysdeps/unix/sysv/linux/nios2/libm.abilist
sysdeps/unix/sysv/linux/or1k/libm.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist
sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist
sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist
sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist
sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist
sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist
sysdeps/unix/sysv/linux/sh/be/libm.abilist
sysdeps/unix/sysv/linux/sh/le/libm.abilist
sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist
sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist
sysdeps/unix/sysv/linux/x86_64/64/libm.abilist
sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist
sysdeps/x86_64/fpu/libm-test-ulps

diff --git a/NEWS b/NEWS
index 20e263f581a3e3c77ddac0187a7d727ec5e4a997..c5fbdc6138d7198c2020bf7c1cc78f452054b661 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -26,7 +26,7 @@ Major new features:
   functions for float, double, long double, _FloatN and _FloatNx, and a
   type-generic macro in <tgmath.h>.
 
-  - Logarithmic functions: log2p1.
+  - Logarithmic functions: log2p1, logp1.
 
 * A new tunable, glibc.rtld.enable_secure, used to run a program
   as if it were a setuid process. This is currently a testing tool to allow
index c99501ccb14e96b1ed0b672328db3a5190506478..56f2295cfdcc85ac30737278a0c360672bc3d3d6 100644 (file)
@@ -745,13 +745,25 @@ to subtraction of two numbers that are nearly equal.
 @deftypefunx {long double} log1pl (long double @var{x})
 @deftypefunx _FloatN log1pfN (_Float@var{N} @var{x})
 @deftypefunx _FloatNx log1pfNx (_Float@var{N}x @var{x})
+@deftypefunx double logp1 (double @var{x})
+@deftypefunx float logp1f (float @var{x})
+@deftypefunx {long double} logp1l (long double @var{x})
+@deftypefunx _FloatN logp1fN (_Float@var{N} @var{x})
+@deftypefunx _FloatNx logp1fNx (_Float@var{N}x @var{x})
 @standards{ISO, math.h}
 @standardsx{log1pfN, TS 18661-3:2015, math.h}
 @standardsx{log1pfNx, TS 18661-3:2015, math.h}
+@standardsx{logp1, TS 18661-4:2015, math.h}
+@standardsx{logp1f, TS 18661-4:2015, math.h}
+@standardsx{logp1l, TS 18661-4:2015, math.h}
+@standardsx{logp1fN, TS 18661-4:2015, math.h}
+@standardsx{logp1fNx, TS 18661-4:2015, math.h}
 @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
 These functions return a value equivalent to @w{@code{log (1 + @var{x})}}.
 They are computed in a way that is accurate even if @var{x} is
 near zero.
+
+The @code{logp1} names for these functions are from TS 18661-4:2015.
 @end deftypefun
 
 @deftypefun double log2p1 (double @var{x})
index 58e5c070cf0e753a1f0050b6b2f793fbe3527a54..c55976cba896b1b962f6ba9fc0afaac851b290f9 100644 (file)
@@ -966,6 +966,7 @@ tgmath3-macros = \
   log2 \
   log2p1 \
   logb \
+  logp1 \
   lrint \
   lround \
   nearbyint \
@@ -1145,7 +1146,7 @@ $(foreach t,$(libm-tests-vector),$(objpfx)$(t).c): $(objpfx)test-%.c:
        type_func=$*; \
        type=$${type_func%-*}; \
        func=$${type_func##*-}; \
-       func_args=$$(grep ALL_RM_TEST libm-test-$$func.inc \
+       func_args=$$(grep "ALL_RM_TEST ($$func," libm-test-$$func.inc \
                     | sed 's/.*RUN_TEST_LOOP_//;s/_.*//'); \
        ( \
          echo "#include <test-$$type.h>"; \
@@ -1375,7 +1376,7 @@ CFLAGS-s_llrint.c += -fno-builtin-llrintl
 CFLAGS-s_llround.c += -fno-builtin-llroundl
 CFLAGS-e_log.c += -fno-builtin-logl
 CFLAGS-w_log10.c += -fno-builtin-log10l
-CFLAGS-w_log1p.c += -fno-builtin-log1pl
+CFLAGS-w_log1p.c += -fno-builtin-log1pl -fno-builtin-logp1l
 CFLAGS-e_log2.c += -fno-builtin-log2l
 CFLAGS-s_log2p1.c += -fno-builtin-log2p1l
 CFLAGS-s_logb.c += -fno-builtin-logbl
@@ -1501,7 +1502,7 @@ CFLAGS-s_llrint.c += -fno-builtin-llrintf32x -fno-builtin-llrintf64
 CFLAGS-s_llround.c += -fno-builtin-llroundf32x -fno-builtin-llroundf64
 CFLAGS-e_log.c += -fno-builtin-logf32x -fno-builtin-logf64
 CFLAGS-w_log10.c += -fno-builtin-log10f32x -fno-builtin-log10f64
-CFLAGS-w_log1p.c += -fno-builtin-log1pf32x -fno-builtin-log1pf64
+CFLAGS-w_log1p.c += -fno-builtin-log1pf32x -fno-builtin-log1pf64 -fno-builtin-logp1f32x -fno-builtin-logp1f64
 CFLAGS-e_log2.c += -fno-builtin-log2f32x -fno-builtin-log2f64
 CFLAGS-s_log2p1.c += -fno-builtin-log2p1f32x -fno-builtin-log2p1f64
 CFLAGS-s_logb.c += -fno-builtin-logbf32x -fno-builtin-logbf64
@@ -1616,7 +1617,7 @@ CFLAGS-s_llrintf.c += -fno-builtin-llrintf32
 CFLAGS-s_llroundf.c += -fno-builtin-llroundf32
 CFLAGS-e_logf.c += -fno-builtin-logf32
 CFLAGS-w_log10f.c += -fno-builtin-log10f32
-CFLAGS-w_log1pf.c += -fno-builtin-log1pf32
+CFLAGS-w_log1pf.c += -fno-builtin-log1pf32 -fno-builtin-logp1f32
 CFLAGS-e_log2f.c += -fno-builtin-log2f32
 CFLAGS-s_log2p1f.c += -fno-builtin-log2p1f32
 CFLAGS-s_logbf.c += -fno-builtin-logbf32
index 46b9b870102aea0296262bf2ca6991299329265f..f6ddd2f4f714f9689b28c0ab0a81afcac82d4981 100644 (file)
@@ -642,7 +642,9 @@ libm {
   GLIBC_2.40 {
     # Functions not involving _Float64x or _Float128, for all configurations.
     log2p1; log2p1f; log2p1l; log2p1f32; log2p1f64; log2p1f32x;
+    logp1; logp1f; logp1l; logp1f32; logp1f64; logp1f32x;
     # Functions involving _Float64x or _Float128, for some configurations.
     log2p1f64x; log2p1f128;
+    logp1f64x; logp1f128;
   }
 }
index fbfc27a4522cd4e93f1368c9555ee2a0c3856213..40f9cf35f74aca441bc910bc1c1c6ab77aefe63d 100644 (file)
@@ -115,6 +115,9 @@ __MATHCALL_VEC (exp10,, (_Mdouble_ __x));
 
 /* Return log2(1 + X).  */
 __MATHCALL (log2p1,, (_Mdouble_ __x));
+
+/* Return log(1 + X).  */
+__MATHCALL (logp1,, (_Mdouble_ __x));
 #endif
 
 #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
index 1131481fad4b30d335b372c49758fb0474018faa..307b65793909538a9c751456d5ef8aefe9fcaca9 100755 (executable)
@@ -744,6 +744,7 @@ class Tests(object):
         # TS 18661-4 functions.
         self.add_tests('exp10', 'r', ['r'])
         self.add_tests('log2p1', 'r', ['r'])
+        self.add_tests('logp1', 'r', ['r'])
         # C23 functions.
         self.add_tests('fmaximum', 'r', ['r', 'r'])
         self.add_tests('fmaximum_mag', 'r', ['r', 'r'])
index 67ad03f67cb8534e0075d676a6ff658a6491e37e..bcac6ffa4c057ec8d3c27e9027d084a25c12c0d1 100644 (file)
@@ -40,10 +40,22 @@ log1p_test (void)
   ALL_RM_TEST (log1p, 0, log1p_test_data, RUN_TEST_LOOP_f_f, END);
 }
 
+#if !TEST_MATHVEC
+static void
+logp1_test (void)
+{
+  /* logp1 uses the same test data as log1p.  */
+  ALL_RM_TEST (logp1, 0, log1p_test_data, RUN_TEST_LOOP_f_f, END);
+}
+#endif
+
 static void
 do_test (void)
 {
   log1p_test ();
+#if !TEST_MATHVEC
+  logp1_test ();
+#endif
 }
 
 /*
index 141e96bd6e21c5c58209cec53cc8824c87041c81..290e9cb19f5600febb8f6e0838fa0542c56ed12b 100644 (file)
@@ -48,7 +48,7 @@ volatile int count_cdouble;
 volatile int count_cfloat;
 volatile int count_cldouble;
 
-#define NCALLS     160
+#define NCALLS     162
 #define NCALLS_INT 4
 #define NCCALLS    47
 
@@ -256,6 +256,7 @@ F(compile_test) (void)
   a = exp10 (exp10 (x));
   b = log2 (log2 (a));
   a = log2p1 (log2p1 (x));
+  a = logp1 (logp1 (x));
   a = pow (pow (x, a), pow (c, b));
   b = sqrt (sqrt (a));
   a = hypot (hypot (x, b), hypot (c, a));
@@ -370,6 +371,7 @@ F(compile_test) (void)
       a = exp10 (y);
       a = log2 (y);
       a = log2p1 (y);
+      a = logp1 (y);
       a = pow (y, y);
       a = sqrt (y);
       a = hypot (y, y);
@@ -651,6 +653,14 @@ TYPE
   return x;
 }
 
+TYPE
+(F(logp1)) (TYPE x)
+{
+  ++count;
+  P ();
+  return x;
+}
+
 TYPE
 (F(pow)) (TYPE x, TYPE y)
 {
index d9ee3e3a176766bd3eae477872bc7f0288404475..78fd2f5ae8baa8f636f24abdd9abf15022674cd9 100644 (file)
 
 /* Return log2(1 + X).  */
 #define log2p1(Val) __TGMATH_UNARY_REAL_ONLY (Val, log2p1)
+
+/* Return log(1 + X).  */
+#define logp1(Val) __TGMATH_UNARY_REAL_ONLY (Val, logp1)
 #endif
 
 
index bfdedb0c76cf1a201e6ac2fd70e525c24f4c16a1..100f2cdcf817fa638579083287d3e6e8e24929e0 100644 (file)
@@ -33,3 +33,5 @@ M_DECL_FUNC (__w_log1p) (FLOAT x)
   return M_SUF (__log1p) (x);
 }
 declare_mgen_alias (__w_log1p, log1p)
+strong_alias (M_SUF (__w_log1p), M_SUF (__w_logp1))
+declare_mgen_alias (__w_logp1, logp1)
index 656d4b0169b245d51081709cefd8e19425513b78..bcae2764ef5582688daec657714e1c558306dbba 100644 (file)
@@ -1412,6 +1412,26 @@ double: 1
 float: 2
 ldouble: 1
 
+Function: "logp1":
+double: 1
+float: 1
+ldouble: 3
+
+Function: "logp1_downward":
+double: 1
+float: 2
+ldouble: 3
+
+Function: "logp1_towardzero":
+double: 2
+float: 2
+ldouble: 3
+
+Function: "logp1_upward":
+double: 2
+float: 2
+ldouble: 2
+
 Function: "pow":
 double: 1
 float: 1
index f2929d6ffc2bbb1b125b938a9794e55d800fd812..392d23f80a86e351f8e74843715f35dc6bf5f498 100644 (file)
@@ -1221,6 +1221,26 @@ double: 1
 float: 2
 ldouble: 1
 
+Function: "logp1":
+double: 1
+float: 1
+ldouble: 3
+
+Function: "logp1_downward":
+double: 2
+float: 2
+ldouble: 3
+
+Function: "logp1_towardzero":
+double: 2
+float: 2
+ldouble: 3
+
+Function: "logp1_upward":
+double: 2
+float: 2
+ldouble: 2
+
 Function: "pow":
 double: 1
 float: 1
index 56ff9149cbb69c4c96562a1451ab7cd6f295637e..41c8ef16d782d12fa01b23288e5a9e68df2e4529 100644 (file)
@@ -979,6 +979,22 @@ Function: "log_upward":
 double: 1
 float: 1
 
+Function: "logp1":
+double: 1
+float: 1
+
+Function: "logp1_downward":
+double: 1
+float: 2
+
+Function: "logp1_towardzero":
+double: 2
+float: 2
+
+Function: "logp1_upward":
+double: 2
+float: 2
+
 Function: "pow":
 double: 1
 float: 1
index 6ac2830b2594d97ae74a8d621455a86f7cb1eb5a..d3f45957d42c554041da7cb6d682612e033d77b2 100644 (file)
@@ -234,6 +234,10 @@ Function: "log2":
 double: 2
 float: 1
 
+Function: "logp1":
+double: 1
+float: 1
+
 Function: "pow":
 double: 1
 
index fc7ba1439a3f7de8d160a2a650a358a18b0cbc2c..c96ec03e315d6d62e2005bfe2a640ace02033c2a 100644 (file)
@@ -991,6 +991,22 @@ Function: "log_upward":
 double: 1
 float: 2
 
+Function: "logp1":
+double: 1
+float: 1
+
+Function: "logp1_downward":
+double: 2
+float: 2
+
+Function: "logp1_towardzero":
+double: 2
+float: 2
+
+Function: "logp1_upward":
+double: 2
+float: 2
+
 Function: "pow":
 double: 1
 float: 1
index 6e1356e53251bb9f7cb4846a5fce598622db7830..fc634f89cae94c8db7f103b05ca9d9eebb8095e0 100644 (file)
@@ -950,6 +950,22 @@ double: 2
 Function: "log2_upward":
 double: 3
 
+Function: "logp1":
+double: 1
+float: 1
+
+Function: "logp1_downward":
+double: 2
+float: 2
+
+Function: "logp1_towardzero":
+double: 2
+float: 2
+
+Function: "logp1_upward":
+double: 2
+float: 2
+
 Function: "pow":
 double: 1
 
index 8a2de74d794ed34b38f392423cc97ffdb8d50aae..a1e28c8ee01a3439c1c3d8f03f92cd4c8d99cf98 100644 (file)
@@ -964,6 +964,22 @@ Function: "log_upward":
 double: 1
 float: 2
 
+Function: "logp1":
+double: 1
+float: 1
+
+Function: "logp1_downward":
+double: 2
+float: 2
+
+Function: "logp1_towardzero":
+double: 2
+float: 2
+
+Function: "logp1_upward":
+double: 2
+float: 2
+
 Function: "pow":
 double: 1
 float: 1
index 3d60fc25a14d053f500da9ec993d7e5e662bbc7f..8b4dfb685032f0b629e18b6bf941aa4d1128e748 100644 (file)
@@ -1000,6 +1000,22 @@ Function: "log_upward":
 double: 1
 float: 2
 
+Function: "logp1":
+double: 1
+float: 1
+
+Function: "logp1_downward":
+double: 2
+float: 2
+
+Function: "logp1_towardzero":
+double: 2
+float: 2
+
+Function: "logp1_upward":
+double: 2
+float: 2
+
 Function: "pow":
 double: 1
 float: 1
index f2139fc172ceef7b74931c8572ced5e48fa89d1b..ef851562d186bc69bc81ed86d2e1ee63c01e6e8f 100644 (file)
@@ -1436,6 +1436,29 @@ double: 1
 float128: 1
 ldouble: 1
 
+Function: "logp1":
+double: 1
+float128: 3
+ldouble: 2
+
+Function: "logp1_downward":
+double: 1
+float: 1
+float128: 3
+ldouble: 4
+
+Function: "logp1_towardzero":
+double: 1
+float: 1
+float128: 3
+ldouble: 4
+
+Function: "logp1_upward":
+double: 1
+float: 1
+float128: 2
+ldouble: 3
+
 Function: "pow":
 double: 1
 float128: 2
index b892c43e59c87e04654868375d9695a31a1a4a96..e2b2492e2f656d30026bc03feae92b0dc2a4e32e 100644 (file)
@@ -1463,6 +1463,29 @@ double: 1
 float128: 1
 ldouble: 1
 
+Function: "logp1":
+double: 1
+float128: 3
+ldouble: 2
+
+Function: "logp1_downward":
+double: 1
+float: 1
+float128: 3
+ldouble: 4
+
+Function: "logp1_towardzero":
+double: 1
+float: 1
+float128: 3
+ldouble: 4
+
+Function: "logp1_upward":
+double: 1
+float: 1
+float128: 2
+ldouble: 3
+
 Function: "pow":
 double: 1
 float128: 2
index f869e80f268ba4466462499f62cba8208310883d..f0f6aae6ae1d6f0da3beac1aa81b36eabb960a32 100644 (file)
@@ -100,7 +100,7 @@ CFLAGS-s_llrintf128.c += -fno-builtin-llrintf64x
 CFLAGS-s_llroundf128.c += -fno-builtin-llroundf64x
 CFLAGS-e_logf128.c += -fno-builtin-logf64x
 CFLAGS-w_log10f128.c += -fno-builtin-log10f64x
-CFLAGS-w_log1pf128.c += -fno-builtin-log1pf64x
+CFLAGS-w_log1pf128.c += -fno-builtin-log1pf64x -fno-builtin-logp1f64x
 CFLAGS-e_log2f128.c += -fno-builtin-log2f64x
 CFLAGS-s_logbf128.c += -fno-builtin-logbf64x
 CFLAGS-s_lrintf128.c += -fno-builtin-lrintf64x
index 38a8bdd0fe1d3422f93dcda19f89f6edfccab786..19aa6c46f201656070987e4840cc160bb11b50c9 100644 (file)
 #define llroundl llroundf128
 #define log1pl log1pf128
 #define logbl logbf128
+#define logp1l logp1f128
 #define logl logf128
 #define lrintl lrintf128
 #define lroundl lroundf128
index 9cbfc7ff6e8cd6f7b874c8a45cb43fcd750de56b..1901238c5b2d5e08e9f71ec415091560c34a74dc 100644 (file)
@@ -89,7 +89,7 @@ CFLAGS-s_llrintl.c += -fno-builtin-llrintf64x -fno-builtin-llrintf128
 CFLAGS-s_llroundl.c += -fno-builtin-llroundf64x -fno-builtin-llroundf128
 CFLAGS-e_logl.c += -fno-builtin-logf64x -fno-builtin-logf128
 CFLAGS-w_log10l.c += -fno-builtin-log10f64x -fno-builtin-log10f128
-CFLAGS-w_log1pl.c += -fno-builtin-log1pf64x -fno-builtin-log1pf128
+CFLAGS-w_log1pl.c += -fno-builtin-log1pf64x -fno-builtin-log1pf128 -fno-builtin-logp1f64x -fno-builtin-logp1f128
 CFLAGS-e_log2l.c += -fno-builtin-log2f64x -fno-builtin-log2f128
 CFLAGS-s_logbl.c += -fno-builtin-logbf64x -fno-builtin-logbf128
 CFLAGS-s_lrintl.c += -fno-builtin-lrintf64x -fno-builtin-lrintf128
index c9a74366fd9c3f0fea4f293f5a79674ba0ae2afa..018e0a8871f65a6878e9a35a438333af380ea91b 100644 (file)
@@ -139,6 +139,7 @@ libm {
   }
   GLIBC_2.40 {
     __log2p1ieee128;
+    __logp1ieee128;
   }
 }
 libc {
index 170e77b2f9fe60955031686ca424347fddfc38da..a3ec2c54ca798ca0d44836d123e8bf8804bac073 100644 (file)
@@ -110,7 +110,7 @@ CFLAGS-s_llrintl.c += -fno-builtin-llrintf64x
 CFLAGS-s_llroundl.c += -fno-builtin-llroundf64x
 CFLAGS-e_logl.c += -fno-builtin-logf64x
 CFLAGS-w_log10l.c += -fno-builtin-log10f64x
-CFLAGS-w_log1pl.c += -fno-builtin-log1pf64x
+CFLAGS-w_log1pl.c += -fno-builtin-log1pf64x -fno-builtin-logp1f64x
 CFLAGS-e_log2l.c += -fno-builtin-log2f64x
 CFLAGS-s_logbl.c += -fno-builtin-logbf64x
 CFLAGS-s_lrintl.c += -fno-builtin-lrintf64x
index d1eda5d022437f0dfa487702cb74e156f9ee0742..9c204ff9b3822f75dd36415877ebcdbc95bdaa2f 100644 (file)
@@ -341,7 +341,7 @@ CFLAGS-nldbl-llrint.c = -fno-builtin-llrintl
 CFLAGS-nldbl-llround.c = -fno-builtin-llroundl
 CFLAGS-nldbl-log.c = -fno-builtin-logl
 CFLAGS-nldbl-log10.c = -fno-builtin-log10l
-CFLAGS-nldbl-log1p.c = -fno-builtin-log1pl
+CFLAGS-nldbl-log1p.c = -fno-builtin-log1pl -fno-builtin-logp1l
 CFLAGS-nldbl-log2.c = -fno-builtin-log2l
 CFLAGS-nldbl-log2p1.c = -fno-builtin-log2p1l
 CFLAGS-nldbl-logb.c = -fno-builtin-logbl
index 455b25a9f40a955dca48f2d433caa05b3eb4529a..b0de985183f4e7110dda1065e07d8eafe1a6d077 100644 (file)
@@ -6,3 +6,4 @@ log1pl (double x)
 {
   return log1p (x);
 }
+weak_alias (log1pl, logp1l)
index 185c5b4e929ab643444417d5ce0d53be62aa0750..f9db4d3eace0b4df7ad6cab5bf89e2b8c006e54c 100644 (file)
@@ -1232,6 +1232,26 @@ Function: "log_upward":
 double: 1
 ldouble: 2
 
+Function: "logp1":
+double: 1
+float: 1
+ldouble: 3
+
+Function: "logp1_downward":
+double: 2
+float: 2
+ldouble: 3
+
+Function: "logp1_towardzero":
+double: 2
+float: 2
+ldouble: 3
+
+Function: "logp1_upward":
+double: 2
+float: 2
+ldouble: 2
+
 Function: "pow":
 double: 1
 ldouble: 2
index ad3649f8900b7efcb21568535ec5806ed9c18389..1b25a70e3ffe6298ee393ddc20e4bd320d2f207e 100644 (file)
@@ -134,6 +134,9 @@ float: 2
 Function: "log1p":
 float: 1
 
+Function: "logp1":
+float: 1
+
 Function: "sincos":
 double: 1
 float: 1
index 113daa4b44d79a0f9d65c9a09fc71bf2aeecbd3a..88010e5b2d709d3a2d865b66d2b423922cd42cad 100644 (file)
@@ -1189,3 +1189,11 @@ GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1f64x F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f128 F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1f64x F
+GLIBC_2.40 logp1l F
index 0c7ffd4e3f74b66888ff117d3e07f0da4492d827..394e5988cb9e744723a453988b0810ef123d0ce8 100644 (file)
@@ -1046,3 +1046,11 @@ GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1f64x F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f128 F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1f64x F
+GLIBC_2.40 logp1l F
index faa31849137ea1ea8344c0a3f3e3e25af2177f12..d3666eb7d4d04923a07f6fdf90346cf9564efbb1 100644 (file)
@@ -231,6 +231,10 @@ Function: "log2":
 double: 2
 float: 1
 
+Function: "logp1":
+double: 1
+float: 1
+
 Function: "pow":
 float: 1
 
index 5720e73288c33f96e7c3ff52b0d224c4b591afbd..2984d0d42bf27ae27ae72ba126401b5dbe24ecc2 100644 (file)
@@ -975,6 +975,22 @@ Function: "log_upward":
 double: 1
 float: 2
 
+Function: "logp1":
+double: 1
+float: 1
+
+Function: "logp1_downward":
+double: 2
+float: 2
+
+Function: "logp1_towardzero":
+double: 2
+float: 2
+
+Function: "logp1_upward":
+double: 2
+float: 2
+
 Function: "pow":
 double: 1
 float: 1
index 933aba47350b777d039bce13f030b10527f0ccee..f2fd0581baf9a64ccc4b3f34fa77a9a729db0627 100644 (file)
@@ -1223,6 +1223,26 @@ double: 1
 float: 2
 ldouble: 1
 
+Function: "logp1":
+double: 1
+float: 1
+ldouble: 3
+
+Function: "logp1_downward":
+double: 2
+float: 2
+ldouble: 3
+
+Function: "logp1_towardzero":
+double: 2
+float: 2
+ldouble: 3
+
+Function: "logp1_upward":
+double: 2
+float: 2
+ldouble: 2
+
 Function: "pow":
 double: 1
 float: 1
index 2cbef489bb043712228035456a3793e579dad80d..c8d1a722f7d6a21c87dce9975ed50ce9822812b8 100644 (file)
@@ -237,6 +237,10 @@ Function: "log2":
 double: 2
 float: 1
 
+Function: "logp1":
+double: 1
+float: 1
+
 Function: "pow":
 double: 1
 float: 3
index 948ec01cdc087fb927cf3a0742b3d4781a802d17..59b9f072f5d6af3e1e04492b7ffdbe01c2df5c27 100644 (file)
@@ -955,6 +955,22 @@ double: 1
 Function: "log2_upward":
 double: 1
 
+Function: "logp1":
+double: 1
+float: 1
+
+Function: "logp1_downward":
+double: 2
+float: 2
+
+Function: "logp1_towardzero":
+double: 2
+float: 2
+
+Function: "logp1_upward":
+double: 2
+float: 2
+
 Function: "pow":
 double: 1
 
index 785bae70d0da80c2262f6aba3e6d9930bb82564e..726855faaad6f790568d81bc304c414723f7ed63 100644 (file)
@@ -953,6 +953,22 @@ double: 1
 Function: "log2_upward":
 double: 1
 
+Function: "logp1":
+double: 1
+float: 1
+
+Function: "logp1_downward":
+double: 2
+float: 2
+
+Function: "logp1_towardzero":
+double: 2
+float: 2
+
+Function: "logp1_upward":
+double: 2
+float: 2
+
 Function: "pow":
 double: 1
 
index 78e9a9ad6e1f0ef2e52ddfcedd8e3725e7c6ba32..e41e585979d84697d5fd2d7d0fac37718115624e 100644 (file)
@@ -1546,6 +1546,30 @@ float: 2
 float128: 1
 ldouble: 1
 
+Function: "logp1":
+double: 1
+float: 1
+float128: 3
+ldouble: 2
+
+Function: "logp1_downward":
+double: 1
+float: 2
+float128: 3
+ldouble: 2
+
+Function: "logp1_towardzero":
+double: 2
+float: 2
+float128: 3
+ldouble: 3
+
+Function: "logp1_upward":
+double: 2
+float: 2
+float128: 2
+ldouble: 3
+
 Function: "mul_downward_ldouble":
 double: 1
 float: 1
index 35a1e7b7fd9e0b0d079cea4aee11fd486f942a0a..94d737a400e78c1cbc32970943691cd49ae3d504 100644 (file)
@@ -1260,6 +1260,26 @@ double: 1
 float: 2
 ldouble: 1
 
+Function: "logp1":
+double: 1
+float: 1
+ldouble: 2
+
+Function: "logp1_downward":
+double: 2
+float: 2
+ldouble: 2
+
+Function: "logp1_towardzero":
+double: 2
+float: 2
+ldouble: 2
+
+Function: "logp1_upward":
+double: 2
+float: 2
+ldouble: 2
+
 Function: "mul_downward_ldouble":
 double: 1
 float: 1
index b59c4b21baf1a74e8841201874cee2c27e33957f..43d9e5fa134dfdf7946cbf574e8205a06b6adef6 100644 (file)
@@ -295,7 +295,7 @@ CFLAGS-s_llrintf128-ifunc.c += -fno-builtin-llrintf64x
 CFLAGS-s_llroundf128-ifunc.c += -fno-builtin-llroundf64x
 CFLAGS-e_logf128-ifunc.c += -fno-builtin-logf64x
 CFLAGS-w_log10f128-ifunc.c += -fno-builtin-log10f64x
-CFLAGS-w_log1pf128-ifunc.c += -fno-builtin-log1pf64x
+CFLAGS-w_log1pf128-ifunc.c += -fno-builtin-log1pf64x -fno-builtin-logp1f64x
 CFLAGS-e_log2f128-ifunc.c += -fno-builtin-log2f64x
 CFLAGS-s_logbf128-ifunc.c += -fno-builtin-logbf64x
 CFLAGS-s_lrintf128-ifunc.c += -fno-builtin-lrintf64x
index 40df525ea5ed4bc8d4b3588dff8277f8a56fea57..155aabc4b0867834ff48cc35c543da2dc3254a12 100644 (file)
@@ -33,6 +33,10 @@ extern __typeof (ldexpf128) F128_SFX_APPEND (__ldexpf128);
 
 #define __ldexpf128 F128_SFX_APPEND (__ldexpf128)
 
+extern __typeof (log1pf128) F128_SFX_APPEND (__w_log1pf128);
+
+#define __w_log1pf128 F128_SFX_APPEND (__w_log1pf128)
+
 /* libm_hidden_proto is disabled by the time we reach here.
    Ensure some internally called functions are still called
    without going through the PLT.  Note, this code is only
index ce337e42577f67c71b5722beceeb0e0c46d3893f..f235f824aef0939cec952ade4efa840a69c2350a 100644 (file)
 
 /* Ensure the wrapper functions get exposed via IFUNC, not the
    wrappee (e.g __w_log1pf128_power8 instead of __log1pf128_power8.  */
-#define DECL_ALIAS_w_log1p(x) MAKE_IFUNCP_WRAP_R(w_,x,)
+#define DECL_ALIAS_w_log1p(x)                  \
+  MAKE_IFUNCP_WRAP_R (w_, x, )                 \
+  MAKE_IFUNCP_WRAP_R (w_, logp1, )
 #define DECL_ALIAS_w_scalbln(x) MAKE_IFUNCP_WRAP_R(w_,x,)
 
 /* These are declared in their respective jX objects.  */
index 790d9743f8e3b04e90bc0a59918db9d254b3742c..0506db0855b58ff1d457f9f2bfb78f0a8635ddc3 100644 (file)
@@ -106,11 +106,13 @@ F128_REDIR (__remainderf128);
 extern _Float128 __wrap_scalbnf128 (_Float128, int);
 extern _Float128 __w_scalblnf128 (_Float128, long int);
 extern _Float128 __w_log1pf128 (_Float128);
+extern _Float128 __w_logp1f128 (_Float128);
 extern _Float128 __scalbf128 (_Float128, _Float128);
 F128_REDIR (__scalbf128);
 F128_REDIR (__wrap_scalbnf128);
 F128_REDIR (__w_scalblnf128);
 F128_REDIR (__w_log1pf128);
+F128_REDIR (__w_logp1f128);
 
 /* Include the redirects shared with math_private.h users.  */
 #include <float128-ifunc-redirects.h>
index bc7e615177a3926b28985a0001988d94eaded851..d8cff3e077f7c57c6d2754d942b30340579278ee 100644 (file)
@@ -1208,6 +1208,26 @@ Function: "log_upward":
 double: 1
 ldouble: 1
 
+Function: "logp1":
+double: 1
+float: 1
+ldouble: 3
+
+Function: "logp1_downward":
+double: 1
+float: 2
+ldouble: 3
+
+Function: "logp1_towardzero":
+double: 2
+float: 2
+ldouble: 3
+
+Function: "logp1_upward":
+double: 2
+float: 2
+ldouble: 2
+
 Function: "pow":
 double: 1
 ldouble: 2
index a3a05a8705477b269bf1880744d293443d333bfa..fced981030a46f7b36fb8407d6651b072ee78da4 100644 (file)
@@ -1212,6 +1212,26 @@ Function: "log_upward":
 double: 1
 ldouble: 2
 
+Function: "logp1":
+double: 1
+float: 1
+ldouble: 3
+
+Function: "logp1_downward":
+double: 1
+float: 2
+ldouble: 3
+
+Function: "logp1_towardzero":
+double: 2
+float: 2
+ldouble: 3
+
+Function: "logp1_upward":
+double: 2
+float: 2
+ldouble: 2
+
 Function: "pow":
 double: 1
 ldouble: 2
index e24adb94e8e4cc0b57143411d7943023b97a3bb6..f2da8493f8569a70750d7cc0c2df2e29eb3b219b 100644 (file)
@@ -1230,6 +1230,26 @@ ldouble: 2
 Function: "log_upward":
 ldouble: 1
 
+Function: "logp1":
+double: 1
+float: 1
+ldouble: 3
+
+Function: "logp1_downward":
+double: 1
+float: 2
+ldouble: 3
+
+Function: "logp1_towardzero":
+double: 2
+float: 2
+ldouble: 3
+
+Function: "logp1_upward":
+double: 2
+float: 2
+ldouble: 2
+
 Function: "pow":
 double: 1
 ldouble: 2
index 9c297f4481525e0a254bc4778b8bf692b9e93fef..3c84259941789fd98eddfa3eaab7cc3f510261b4 100644 (file)
@@ -475,6 +475,14 @@ float: 1
 Function: "log2_towardzero":
 double: 2
 
+Function: "logp1":
+double: 1
+float: 1
+
+Function: "logp1_towardzero":
+double: 2
+float: 2
+
 Function: "pow":
 double: 1
 float: 1
index 2d490e071363c8af74f43a98ccbd4a837e0f32a6..d6a6b70d667654742d4e324abc2f5d31e235f0c0 100644 (file)
@@ -1223,6 +1223,26 @@ double: 1
 float: 2
 ldouble: 1
 
+Function: "logp1":
+double: 1
+float: 1
+ldouble: 3
+
+Function: "logp1_downward":
+double: 2
+float: 2
+ldouble: 3
+
+Function: "logp1_towardzero":
+double: 2
+float: 2
+ldouble: 3
+
+Function: "logp1_upward":
+double: 2
+float: 2
+ldouble: 2
+
 Function: "pow":
 double: 1
 float: 3
index a4bb539670446cca9e42745f3da744d48bafbdfa..40027fc3d3e227b620b854eeea1abcb7817c593c 100644 (file)
@@ -1157,3 +1157,11 @@ GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1f64x F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f128 F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1f64x F
+GLIBC_2.40 logp1l F
index 8ff65e3f7e9da5f2b9fe693f51bbbcc24d1dbc71..5967de89a192c5500b55872d993ac9a2826ef3e6 100644 (file)
@@ -1316,3 +1316,11 @@ GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1f64x F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f128 F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1f64x F
+GLIBC_2.40 logp1l F
index af9df2673c10ee681201efd11fc88d75704bc3ff..57affc37fc3756ee2b707b69bda3f2ed99698ca1 100644 (file)
@@ -763,3 +763,9 @@ GLIBC_2.40 log2p1f32 F
 GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1l F
index 0e460259f33c6d7e68f0ceb8dc3137f86bc6da3d..e225b995c1b7d2724a9d825b816c07da766b3624 100644 (file)
@@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F
 GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1l F
index 0e460259f33c6d7e68f0ceb8dc3137f86bc6da3d..e225b995c1b7d2724a9d825b816c07da766b3624 100644 (file)
@@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F
 GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1l F
index 4c1216044da3048d30fe15bc83b3cba6fa6c0748..2a9f9a6779c368efddf0c83db6b219f1e20402a7 100644 (file)
@@ -829,3 +829,9 @@ GLIBC_2.40 log2p1f32 F
 GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1l F
index 3ea5b611eb4cb3232ce6ed4cab4002588862bfa0..6fa800390dcdb2407faf56966e5ac303395c9bc6 100644 (file)
@@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F
 GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1l F
index 696e52e65a4a8ad6d5ad3c9f01eb23d6feeeb2e6..b6b1aa0289e81d823f44be6ad099b7ea940e4cb7 100644 (file)
@@ -1196,3 +1196,11 @@ GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1f64x F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f128 F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1f64x F
+GLIBC_2.40 logp1l F
index 1c6f02ac5a6112a2fd83d07290bb9d50513515c1..b225d61eac3a9a49cdd20a5640c8b5f16ddca157 100644 (file)
@@ -1036,3 +1036,11 @@ GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1f64x F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f128 F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1f64x F
+GLIBC_2.40 logp1l F
index 0e460259f33c6d7e68f0ceb8dc3137f86bc6da3d..e225b995c1b7d2724a9d825b816c07da766b3624 100644 (file)
@@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F
 GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1l F
index be8262bb489d36f186b7a683c1b0b54d795f970e..cd4cafbe14e00a40da2928d7422397b9f4e6d5b2 100644 (file)
@@ -890,3 +890,9 @@ GLIBC_2.40 log2p1f32 F
 GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1l F
index cc091b2d4edf3e6b282328afb9fbc6eebb2c0175..604af40dacc9a60326cfbf09db0a196b65820d3d 100644 (file)
@@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F
 GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1l F
index cc091b2d4edf3e6b282328afb9fbc6eebb2c0175..604af40dacc9a60326cfbf09db0a196b65820d3d 100644 (file)
@@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F
 GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1l F
index 4d442a989d9e1215efb190be9a072162363b9c4c..56ec45feb01390c45cf49bd5ace056ce38e69fcd 100644 (file)
@@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F
 GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1l F
index ae7b4a755836903650ed1e8decd1c7fd8ef9e608..e97dd13eb4286b8cdd2be2cad4c042b87d62d6d2 100644 (file)
@@ -1157,3 +1157,11 @@ GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1f64x F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f128 F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1f64x F
+GLIBC_2.40 logp1l F
index 9ed3fbdee4b0ad55c442d86facb3a7340b739689..1603d163a2694bcbd85d2f0b56a2ae9cf546204e 100644 (file)
@@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F
 GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1l F
index 69655f7d2392971200c18813ad5a9ae8792e47dc..7565572118dd6c1f5047f627603ac6bd54357295 100644 (file)
@@ -763,3 +763,9 @@ GLIBC_2.40 log2p1f32 F
 GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1l F
index 564eb87d4b26937e6463083bcb5cc0abf2045b64..1f61a9cb316a31be726841d8ddc0d742b8a2b28f 100644 (file)
@@ -1001,3 +1001,9 @@ GLIBC_2.40 log2p1f32 F
 GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1l F
index a57eedb779d43ea96196e69c3cfdfdc7e44250e1..c9af2d21b903154b3ff195ee42f523b68cf40b1d 100644 (file)
@@ -1000,3 +1000,9 @@ GLIBC_2.40 log2p1f32 F
 GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1l F
index 7564069a3768002c4c516253b212163c4ed4fe9d..b0af67d524ede0c63ea875f8e2ae83a5281272e4 100644 (file)
@@ -994,3 +994,9 @@ GLIBC_2.40 log2p1f32 F
 GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1l F
index b02a7115af3d762c25712d59235b1c6758a23fbe..28f3ee62644708adfc7f6b3298ff7ce6bc8eb218 100644 (file)
@@ -1322,6 +1322,7 @@ GLIBC_2.38 fmod F
 GLIBC_2.38 fmodf F
 GLIBC_2.39 exp10 F
 GLIBC_2.40 __log2p1ieee128 F
+GLIBC_2.40 __logp1ieee128 F
 GLIBC_2.40 log2p1 F
 GLIBC_2.40 log2p1f F
 GLIBC_2.40 log2p1f128 F
@@ -1330,3 +1331,11 @@ GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1f64x F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f128 F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1f64x F
+GLIBC_2.40 logp1l F
index 7bf0bd7c7a7468552c2b52ceef64be61ccc86f0d..dae4531180ecd4cce433a3e7ff6ea19b58c1695e 100644 (file)
@@ -1036,3 +1036,11 @@ GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1f64x F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f128 F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1f64x F
+GLIBC_2.40 logp1l F
index c22d9bb7c6c4dd308a3170f1b2a7891e4e90f5d6..dc506b8a8b7e7bd24473f168f66486316667091b 100644 (file)
@@ -1133,3 +1133,11 @@ GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1f64x F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f128 F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1f64x F
+GLIBC_2.40 logp1l F
index 2fb712ec71a8da63ffdabb8b118fc4da02a60b7d..818e2c419ebf8b3c96682f84e9ee17385a445680 100644 (file)
@@ -1260,3 +1260,11 @@ GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1f64x F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f128 F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1f64x F
+GLIBC_2.40 logp1l F
index 40489589a7f7052d79c5462fa13c053dc14422d9..03d51e1dfec5357a32f383b88fcb247a4f353fdb 100644 (file)
@@ -1260,3 +1260,11 @@ GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1f64x F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f128 F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1f64x F
+GLIBC_2.40 logp1l F
index a5363e90d605ef9d488d2869f82b88c0a0cfc6c7..b6a03d11465d361d038cc849f8c7782ee7b12cac 100644 (file)
@@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F
 GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1l F
index a5363e90d605ef9d488d2869f82b88c0a0cfc6c7..b6a03d11465d361d038cc849f8c7782ee7b12cac 100644 (file)
@@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F
 GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1l F
index 9bda9bdeb507d2fa3a0a5dacecb0c1fe737c7c73..312544d653919cbab0b64c7884d52a310b9d02e6 100644 (file)
@@ -1267,3 +1267,11 @@ GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1f64x F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f128 F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1f64x F
+GLIBC_2.40 logp1l F
index 61d2aa05a9be0c01922e1a4650f6c4b253d10a3b..391b583a66e05f8b4c238721c9c3c45f8d5e3518 100644 (file)
@@ -1157,3 +1157,11 @@ GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1f64x F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f128 F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1f64x F
+GLIBC_2.40 logp1l F
index bbf646fe7f5750c11331896b5270d307b0d91d67..47b5b9178df6a8d6abae2e25b15e15548bcfe9b1 100644 (file)
@@ -1190,3 +1190,11 @@ GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1f64x F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f128 F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1f64x F
+GLIBC_2.40 logp1l F
index 7c7b884dde84be0f24c477f7ea669a2ca96e1b0a..809c5f4186ef6924039d214f7c98ec3a561d5dc6 100644 (file)
@@ -1190,3 +1190,11 @@ GLIBC_2.40 log2p1f32x F
 GLIBC_2.40 log2p1f64 F
 GLIBC_2.40 log2p1f64x F
 GLIBC_2.40 log2p1l F
+GLIBC_2.40 logp1 F
+GLIBC_2.40 logp1f F
+GLIBC_2.40 logp1f128 F
+GLIBC_2.40 logp1f32 F
+GLIBC_2.40 logp1f32x F
+GLIBC_2.40 logp1f64 F
+GLIBC_2.40 logp1f64x F
+GLIBC_2.40 logp1l F
index 893c22b19b5b547d820421032b4351634cc076cd..97876cadf26dfb7a35cf1bc40f71b94e8aee46a7 100644 (file)
@@ -1907,6 +1907,30 @@ float: 3
 Function: "log_vlen8_avx2":
 float: 3
 
+Function: "logp1":
+double: 1
+float: 1
+float128: 3
+ldouble: 2
+
+Function: "logp1_downward":
+double: 2
+float: 2
+float128: 3
+ldouble: 4
+
+Function: "logp1_towardzero":
+double: 2
+float: 2
+float128: 3
+ldouble: 4
+
+Function: "logp1_upward":
+double: 2
+float: 2
+float128: 2
+ldouble: 3
+
 Function: "pow":
 double: 1
 float: 1