Implement C23 logp1

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.
This commit is contained in:
Joseph Myers 2024-06-17 13:47:09 +00:00
parent ca38eff280
commit bb014f50c4
80 changed files with 725 additions and 12 deletions

2
NEWS
View File

@ -26,7 +26,7 @@ Major new features:
functions for float, double, long double, _FloatN and _FloatNx, and a functions for float, double, long double, _FloatN and _FloatNx, and a
type-generic macro in <tgmath.h>. 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 * 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 as if it were a setuid process. This is currently a testing tool to allow

View File

@ -745,13 +745,25 @@ to subtraction of two numbers that are nearly equal.
@deftypefunx {long double} log1pl (long double @var{x}) @deftypefunx {long double} log1pl (long double @var{x})
@deftypefunx _FloatN log1pfN (_Float@var{N} @var{x}) @deftypefunx _FloatN log1pfN (_Float@var{N} @var{x})
@deftypefunx _FloatNx log1pfNx (_Float@var{N}x @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} @standards{ISO, math.h}
@standardsx{log1pfN, TS 18661-3:2015, math.h} @standardsx{log1pfN, TS 18661-3:2015, math.h}
@standardsx{log1pfNx, 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{}} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
These functions return a value equivalent to @w{@code{log (1 + @var{x})}}. 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 They are computed in a way that is accurate even if @var{x} is
near zero. near zero.
The @code{logp1} names for these functions are from TS 18661-4:2015.
@end deftypefun @end deftypefun
@deftypefun double log2p1 (double @var{x}) @deftypefun double log2p1 (double @var{x})

View File

@ -966,6 +966,7 @@ tgmath3-macros = \
log2 \ log2 \
log2p1 \ log2p1 \
logb \ logb \
logp1 \
lrint \ lrint \
lround \ lround \
nearbyint \ nearbyint \
@ -1145,7 +1146,7 @@ $(foreach t,$(libm-tests-vector),$(objpfx)$(t).c): $(objpfx)test-%.c:
type_func=$*; \ type_func=$*; \
type=$${type_func%-*}; \ type=$${type_func%-*}; \
func=$${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/_.*//'); \ | sed 's/.*RUN_TEST_LOOP_//;s/_.*//'); \
( \ ( \
echo "#include <test-$$type.h>"; \ echo "#include <test-$$type.h>"; \
@ -1375,7 +1376,7 @@ CFLAGS-s_llrint.c += -fno-builtin-llrintl
CFLAGS-s_llround.c += -fno-builtin-llroundl CFLAGS-s_llround.c += -fno-builtin-llroundl
CFLAGS-e_log.c += -fno-builtin-logl CFLAGS-e_log.c += -fno-builtin-logl
CFLAGS-w_log10.c += -fno-builtin-log10l 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-e_log2.c += -fno-builtin-log2l
CFLAGS-s_log2p1.c += -fno-builtin-log2p1l CFLAGS-s_log2p1.c += -fno-builtin-log2p1l
CFLAGS-s_logb.c += -fno-builtin-logbl 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-s_llround.c += -fno-builtin-llroundf32x -fno-builtin-llroundf64
CFLAGS-e_log.c += -fno-builtin-logf32x -fno-builtin-logf64 CFLAGS-e_log.c += -fno-builtin-logf32x -fno-builtin-logf64
CFLAGS-w_log10.c += -fno-builtin-log10f32x -fno-builtin-log10f64 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-e_log2.c += -fno-builtin-log2f32x -fno-builtin-log2f64
CFLAGS-s_log2p1.c += -fno-builtin-log2p1f32x -fno-builtin-log2p1f64 CFLAGS-s_log2p1.c += -fno-builtin-log2p1f32x -fno-builtin-log2p1f64
CFLAGS-s_logb.c += -fno-builtin-logbf32x -fno-builtin-logbf64 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-s_llroundf.c += -fno-builtin-llroundf32
CFLAGS-e_logf.c += -fno-builtin-logf32 CFLAGS-e_logf.c += -fno-builtin-logf32
CFLAGS-w_log10f.c += -fno-builtin-log10f32 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-e_log2f.c += -fno-builtin-log2f32
CFLAGS-s_log2p1f.c += -fno-builtin-log2p1f32 CFLAGS-s_log2p1f.c += -fno-builtin-log2p1f32
CFLAGS-s_logbf.c += -fno-builtin-logbf32 CFLAGS-s_logbf.c += -fno-builtin-logbf32

View File

@ -642,7 +642,9 @@ libm {
GLIBC_2.40 { GLIBC_2.40 {
# Functions not involving _Float64x or _Float128, for all configurations. # Functions not involving _Float64x or _Float128, for all configurations.
log2p1; log2p1f; log2p1l; log2p1f32; log2p1f64; log2p1f32x; log2p1; log2p1f; log2p1l; log2p1f32; log2p1f64; log2p1f32x;
logp1; logp1f; logp1l; logp1f32; logp1f64; logp1f32x;
# Functions involving _Float64x or _Float128, for some configurations. # Functions involving _Float64x or _Float128, for some configurations.
log2p1f64x; log2p1f128; log2p1f64x; log2p1f128;
logp1f64x; logp1f128;
} }
} }

View File

@ -115,6 +115,9 @@ __MATHCALL_VEC (exp10,, (_Mdouble_ __x));
/* Return log2(1 + X). */ /* Return log2(1 + X). */
__MATHCALL (log2p1,, (_Mdouble_ __x)); __MATHCALL (log2p1,, (_Mdouble_ __x));
/* Return log(1 + X). */
__MATHCALL (logp1,, (_Mdouble_ __x));
#endif #endif
#if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99 #if defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99

View File

@ -744,6 +744,7 @@ class Tests(object):
# TS 18661-4 functions. # TS 18661-4 functions.
self.add_tests('exp10', 'r', ['r']) self.add_tests('exp10', 'r', ['r'])
self.add_tests('log2p1', 'r', ['r']) self.add_tests('log2p1', 'r', ['r'])
self.add_tests('logp1', 'r', ['r'])
# C23 functions. # C23 functions.
self.add_tests('fmaximum', 'r', ['r', 'r']) self.add_tests('fmaximum', 'r', ['r', 'r'])
self.add_tests('fmaximum_mag', 'r', ['r', 'r']) self.add_tests('fmaximum_mag', 'r', ['r', 'r'])

View File

@ -40,10 +40,22 @@ log1p_test (void)
ALL_RM_TEST (log1p, 0, log1p_test_data, RUN_TEST_LOOP_f_f, END); 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 static void
do_test (void) do_test (void)
{ {
log1p_test (); log1p_test ();
#if !TEST_MATHVEC
logp1_test ();
#endif
} }
/* /*

View File

@ -48,7 +48,7 @@ volatile int count_cdouble;
volatile int count_cfloat; volatile int count_cfloat;
volatile int count_cldouble; volatile int count_cldouble;
#define NCALLS 160 #define NCALLS 162
#define NCALLS_INT 4 #define NCALLS_INT 4
#define NCCALLS 47 #define NCCALLS 47
@ -256,6 +256,7 @@ F(compile_test) (void)
a = exp10 (exp10 (x)); a = exp10 (exp10 (x));
b = log2 (log2 (a)); b = log2 (log2 (a));
a = log2p1 (log2p1 (x)); a = log2p1 (log2p1 (x));
a = logp1 (logp1 (x));
a = pow (pow (x, a), pow (c, b)); a = pow (pow (x, a), pow (c, b));
b = sqrt (sqrt (a)); b = sqrt (sqrt (a));
a = hypot (hypot (x, b), hypot (c, a)); a = hypot (hypot (x, b), hypot (c, a));
@ -370,6 +371,7 @@ F(compile_test) (void)
a = exp10 (y); a = exp10 (y);
a = log2 (y); a = log2 (y);
a = log2p1 (y); a = log2p1 (y);
a = logp1 (y);
a = pow (y, y); a = pow (y, y);
a = sqrt (y); a = sqrt (y);
a = hypot (y, y); a = hypot (y, y);
@ -651,6 +653,14 @@ TYPE
return x; return x;
} }
TYPE
(F(logp1)) (TYPE x)
{
++count;
P ();
return x;
}
TYPE TYPE
(F(pow)) (TYPE x, TYPE y) (F(pow)) (TYPE x, TYPE y)
{ {

View File

@ -877,6 +877,9 @@
/* Return log2(1 + X). */ /* Return log2(1 + X). */
#define log2p1(Val) __TGMATH_UNARY_REAL_ONLY (Val, log2p1) #define log2p1(Val) __TGMATH_UNARY_REAL_ONLY (Val, log2p1)
/* Return log(1 + X). */
#define logp1(Val) __TGMATH_UNARY_REAL_ONLY (Val, logp1)
#endif #endif

View File

@ -33,3 +33,5 @@ M_DECL_FUNC (__w_log1p) (FLOAT x)
return M_SUF (__log1p) (x); return M_SUF (__log1p) (x);
} }
declare_mgen_alias (__w_log1p, log1p) declare_mgen_alias (__w_log1p, log1p)
strong_alias (M_SUF (__w_log1p), M_SUF (__w_logp1))
declare_mgen_alias (__w_logp1, logp1)

View File

@ -1412,6 +1412,26 @@ double: 1
float: 2 float: 2
ldouble: 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": Function: "pow":
double: 1 double: 1
float: 1 float: 1

View File

@ -1221,6 +1221,26 @@ double: 1
float: 2 float: 2
ldouble: 1 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": Function: "pow":
double: 1 double: 1
float: 1 float: 1

View File

@ -979,6 +979,22 @@ Function: "log_upward":
double: 1 double: 1
float: 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": Function: "pow":
double: 1 double: 1
float: 1 float: 1

View File

@ -234,6 +234,10 @@ Function: "log2":
double: 2 double: 2
float: 1 float: 1
Function: "logp1":
double: 1
float: 1
Function: "pow": Function: "pow":
double: 1 double: 1

View File

@ -991,6 +991,22 @@ Function: "log_upward":
double: 1 double: 1
float: 2 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": Function: "pow":
double: 1 double: 1
float: 1 float: 1

View File

@ -950,6 +950,22 @@ double: 2
Function: "log2_upward": Function: "log2_upward":
double: 3 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": Function: "pow":
double: 1 double: 1

View File

@ -964,6 +964,22 @@ Function: "log_upward":
double: 1 double: 1
float: 2 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": Function: "pow":
double: 1 double: 1
float: 1 float: 1

View File

@ -1000,6 +1000,22 @@ Function: "log_upward":
double: 1 double: 1
float: 2 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": Function: "pow":
double: 1 double: 1
float: 1 float: 1

View File

@ -1436,6 +1436,29 @@ double: 1
float128: 1 float128: 1
ldouble: 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": Function: "pow":
double: 1 double: 1
float128: 2 float128: 2

View File

@ -1463,6 +1463,29 @@ double: 1
float128: 1 float128: 1
ldouble: 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": Function: "pow":
double: 1 double: 1
float128: 2 float128: 2

View File

@ -100,7 +100,7 @@ CFLAGS-s_llrintf128.c += -fno-builtin-llrintf64x
CFLAGS-s_llroundf128.c += -fno-builtin-llroundf64x CFLAGS-s_llroundf128.c += -fno-builtin-llroundf64x
CFLAGS-e_logf128.c += -fno-builtin-logf64x CFLAGS-e_logf128.c += -fno-builtin-logf64x
CFLAGS-w_log10f128.c += -fno-builtin-log10f64x 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-e_log2f128.c += -fno-builtin-log2f64x
CFLAGS-s_logbf128.c += -fno-builtin-logbf64x CFLAGS-s_logbf128.c += -fno-builtin-logbf64x
CFLAGS-s_lrintf128.c += -fno-builtin-lrintf64x CFLAGS-s_lrintf128.c += -fno-builtin-lrintf64x

View File

@ -358,6 +358,7 @@
#define llroundl llroundf128 #define llroundl llroundf128
#define log1pl log1pf128 #define log1pl log1pf128
#define logbl logbf128 #define logbl logbf128
#define logp1l logp1f128
#define logl logf128 #define logl logf128
#define lrintl lrintf128 #define lrintl lrintf128
#define lroundl lroundf128 #define lroundl lroundf128

View 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-s_llroundl.c += -fno-builtin-llroundf64x -fno-builtin-llroundf128
CFLAGS-e_logl.c += -fno-builtin-logf64x -fno-builtin-logf128 CFLAGS-e_logl.c += -fno-builtin-logf64x -fno-builtin-logf128
CFLAGS-w_log10l.c += -fno-builtin-log10f64x -fno-builtin-log10f128 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-e_log2l.c += -fno-builtin-log2f64x -fno-builtin-log2f128
CFLAGS-s_logbl.c += -fno-builtin-logbf64x -fno-builtin-logbf128 CFLAGS-s_logbl.c += -fno-builtin-logbf64x -fno-builtin-logbf128
CFLAGS-s_lrintl.c += -fno-builtin-lrintf64x -fno-builtin-lrintf128 CFLAGS-s_lrintl.c += -fno-builtin-lrintf64x -fno-builtin-lrintf128

View File

@ -139,6 +139,7 @@ libm {
} }
GLIBC_2.40 { GLIBC_2.40 {
__log2p1ieee128; __log2p1ieee128;
__logp1ieee128;
} }
} }
libc { libc {

View File

@ -110,7 +110,7 @@ CFLAGS-s_llrintl.c += -fno-builtin-llrintf64x
CFLAGS-s_llroundl.c += -fno-builtin-llroundf64x CFLAGS-s_llroundl.c += -fno-builtin-llroundf64x
CFLAGS-e_logl.c += -fno-builtin-logf64x CFLAGS-e_logl.c += -fno-builtin-logf64x
CFLAGS-w_log10l.c += -fno-builtin-log10f64x 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-e_log2l.c += -fno-builtin-log2f64x
CFLAGS-s_logbl.c += -fno-builtin-logbf64x CFLAGS-s_logbl.c += -fno-builtin-logbf64x
CFLAGS-s_lrintl.c += -fno-builtin-lrintf64x CFLAGS-s_lrintl.c += -fno-builtin-lrintf64x

View File

@ -341,7 +341,7 @@ CFLAGS-nldbl-llrint.c = -fno-builtin-llrintl
CFLAGS-nldbl-llround.c = -fno-builtin-llroundl CFLAGS-nldbl-llround.c = -fno-builtin-llroundl
CFLAGS-nldbl-log.c = -fno-builtin-logl CFLAGS-nldbl-log.c = -fno-builtin-logl
CFLAGS-nldbl-log10.c = -fno-builtin-log10l 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-log2.c = -fno-builtin-log2l
CFLAGS-nldbl-log2p1.c = -fno-builtin-log2p1l CFLAGS-nldbl-log2p1.c = -fno-builtin-log2p1l
CFLAGS-nldbl-logb.c = -fno-builtin-logbl CFLAGS-nldbl-logb.c = -fno-builtin-logbl

View File

@ -6,3 +6,4 @@ log1pl (double x)
{ {
return log1p (x); return log1p (x);
} }
weak_alias (log1pl, logp1l)

View File

@ -1232,6 +1232,26 @@ Function: "log_upward":
double: 1 double: 1
ldouble: 2 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": Function: "pow":
double: 1 double: 1
ldouble: 2 ldouble: 2

View File

@ -134,6 +134,9 @@ float: 2
Function: "log1p": Function: "log1p":
float: 1 float: 1
Function: "logp1":
float: 1
Function: "sincos": Function: "sincos":
double: 1 double: 1
float: 1 float: 1

View File

@ -1189,3 +1189,11 @@ GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1f64x F
GLIBC_2.40 log2p1l 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

View File

@ -1046,3 +1046,11 @@ GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1f64x F
GLIBC_2.40 log2p1l 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

View File

@ -231,6 +231,10 @@ Function: "log2":
double: 2 double: 2
float: 1 float: 1
Function: "logp1":
double: 1
float: 1
Function: "pow": Function: "pow":
float: 1 float: 1

View File

@ -975,6 +975,22 @@ Function: "log_upward":
double: 1 double: 1
float: 2 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": Function: "pow":
double: 1 double: 1
float: 1 float: 1

View File

@ -1223,6 +1223,26 @@ double: 1
float: 2 float: 2
ldouble: 1 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": Function: "pow":
double: 1 double: 1
float: 1 float: 1

View File

@ -237,6 +237,10 @@ Function: "log2":
double: 2 double: 2
float: 1 float: 1
Function: "logp1":
double: 1
float: 1
Function: "pow": Function: "pow":
double: 1 double: 1
float: 3 float: 3

View File

@ -955,6 +955,22 @@ double: 1
Function: "log2_upward": Function: "log2_upward":
double: 1 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": Function: "pow":
double: 1 double: 1

View File

@ -953,6 +953,22 @@ double: 1
Function: "log2_upward": Function: "log2_upward":
double: 1 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": Function: "pow":
double: 1 double: 1

View File

@ -1546,6 +1546,30 @@ float: 2
float128: 1 float128: 1
ldouble: 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": Function: "mul_downward_ldouble":
double: 1 double: 1
float: 1 float: 1

View File

@ -1260,6 +1260,26 @@ double: 1
float: 2 float: 2
ldouble: 1 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": Function: "mul_downward_ldouble":
double: 1 double: 1
float: 1 float: 1

View File

@ -295,7 +295,7 @@ CFLAGS-s_llrintf128-ifunc.c += -fno-builtin-llrintf64x
CFLAGS-s_llroundf128-ifunc.c += -fno-builtin-llroundf64x CFLAGS-s_llroundf128-ifunc.c += -fno-builtin-llroundf64x
CFLAGS-e_logf128-ifunc.c += -fno-builtin-logf64x CFLAGS-e_logf128-ifunc.c += -fno-builtin-logf64x
CFLAGS-w_log10f128-ifunc.c += -fno-builtin-log10f64x 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-e_log2f128-ifunc.c += -fno-builtin-log2f64x
CFLAGS-s_logbf128-ifunc.c += -fno-builtin-logbf64x CFLAGS-s_logbf128-ifunc.c += -fno-builtin-logbf64x
CFLAGS-s_lrintf128-ifunc.c += -fno-builtin-lrintf64x CFLAGS-s_lrintf128-ifunc.c += -fno-builtin-lrintf64x

View File

@ -33,6 +33,10 @@ extern __typeof (ldexpf128) F128_SFX_APPEND (__ldexpf128);
#define __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. /* libm_hidden_proto is disabled by the time we reach here.
Ensure some internally called functions are still called Ensure some internally called functions are still called
without going through the PLT. Note, this code is only without going through the PLT. Note, this code is only

View File

@ -138,7 +138,9 @@
/* Ensure the wrapper functions get exposed via IFUNC, not the /* Ensure the wrapper functions get exposed via IFUNC, not the
wrappee (e.g __w_log1pf128_power8 instead of __log1pf128_power8. */ 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,) #define DECL_ALIAS_w_scalbln(x) MAKE_IFUNCP_WRAP_R(w_,x,)
/* These are declared in their respective jX objects. */ /* These are declared in their respective jX objects. */

View File

@ -106,11 +106,13 @@ F128_REDIR (__remainderf128);
extern _Float128 __wrap_scalbnf128 (_Float128, int); extern _Float128 __wrap_scalbnf128 (_Float128, int);
extern _Float128 __w_scalblnf128 (_Float128, long int); extern _Float128 __w_scalblnf128 (_Float128, long int);
extern _Float128 __w_log1pf128 (_Float128); extern _Float128 __w_log1pf128 (_Float128);
extern _Float128 __w_logp1f128 (_Float128);
extern _Float128 __scalbf128 (_Float128, _Float128); extern _Float128 __scalbf128 (_Float128, _Float128);
F128_REDIR (__scalbf128); F128_REDIR (__scalbf128);
F128_REDIR (__wrap_scalbnf128); F128_REDIR (__wrap_scalbnf128);
F128_REDIR (__w_scalblnf128); F128_REDIR (__w_scalblnf128);
F128_REDIR (__w_log1pf128); F128_REDIR (__w_log1pf128);
F128_REDIR (__w_logp1f128);
/* Include the redirects shared with math_private.h users. */ /* Include the redirects shared with math_private.h users. */
#include <float128-ifunc-redirects.h> #include <float128-ifunc-redirects.h>

View File

@ -1208,6 +1208,26 @@ Function: "log_upward":
double: 1 double: 1
ldouble: 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": Function: "pow":
double: 1 double: 1
ldouble: 2 ldouble: 2

View File

@ -1212,6 +1212,26 @@ Function: "log_upward":
double: 1 double: 1
ldouble: 2 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": Function: "pow":
double: 1 double: 1
ldouble: 2 ldouble: 2

View File

@ -1230,6 +1230,26 @@ ldouble: 2
Function: "log_upward": Function: "log_upward":
ldouble: 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": Function: "pow":
double: 1 double: 1
ldouble: 2 ldouble: 2

View File

@ -475,6 +475,14 @@ float: 1
Function: "log2_towardzero": Function: "log2_towardzero":
double: 2 double: 2
Function: "logp1":
double: 1
float: 1
Function: "logp1_towardzero":
double: 2
float: 2
Function: "pow": Function: "pow":
double: 1 double: 1
float: 1 float: 1

View File

@ -1223,6 +1223,26 @@ double: 1
float: 2 float: 2
ldouble: 1 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": Function: "pow":
double: 1 double: 1
float: 3 float: 3

View File

@ -1157,3 +1157,11 @@ GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1f64x F
GLIBC_2.40 log2p1l 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

View File

@ -1316,3 +1316,11 @@ GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1f64x F
GLIBC_2.40 log2p1l 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

View File

@ -763,3 +763,9 @@ GLIBC_2.40 log2p1f32 F
GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1l 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

View File

@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F
GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1l 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

View File

@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F
GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1l 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

View File

@ -829,3 +829,9 @@ GLIBC_2.40 log2p1f32 F
GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1l 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

View File

@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F
GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1l 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

View File

@ -1196,3 +1196,11 @@ GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1f64x F
GLIBC_2.40 log2p1l 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

View File

@ -1036,3 +1036,11 @@ GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1f64x F
GLIBC_2.40 log2p1l 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

View File

@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F
GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1l 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

View File

@ -890,3 +890,9 @@ GLIBC_2.40 log2p1f32 F
GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1l 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

View File

@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F
GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1l 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

View File

@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F
GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1l 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

View File

@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F
GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1l 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

View File

@ -1157,3 +1157,11 @@ GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1f64x F
GLIBC_2.40 log2p1l 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

View File

@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F
GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1l 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

View File

@ -763,3 +763,9 @@ GLIBC_2.40 log2p1f32 F
GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1l 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

View File

@ -1001,3 +1001,9 @@ GLIBC_2.40 log2p1f32 F
GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1l 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

View File

@ -1000,3 +1000,9 @@ GLIBC_2.40 log2p1f32 F
GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1l 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

View File

@ -994,3 +994,9 @@ GLIBC_2.40 log2p1f32 F
GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1l 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

View File

@ -1322,6 +1322,7 @@ GLIBC_2.38 fmod F
GLIBC_2.38 fmodf F GLIBC_2.38 fmodf F
GLIBC_2.39 exp10 F GLIBC_2.39 exp10 F
GLIBC_2.40 __log2p1ieee128 F GLIBC_2.40 __log2p1ieee128 F
GLIBC_2.40 __logp1ieee128 F
GLIBC_2.40 log2p1 F GLIBC_2.40 log2p1 F
GLIBC_2.40 log2p1f F GLIBC_2.40 log2p1f F
GLIBC_2.40 log2p1f128 F GLIBC_2.40 log2p1f128 F
@ -1330,3 +1331,11 @@ GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1f64x F
GLIBC_2.40 log2p1l 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

View File

@ -1036,3 +1036,11 @@ GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1f64x F
GLIBC_2.40 log2p1l 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

View File

@ -1133,3 +1133,11 @@ GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1f64x F
GLIBC_2.40 log2p1l 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

View File

@ -1260,3 +1260,11 @@ GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1f64x F
GLIBC_2.40 log2p1l 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

View File

@ -1260,3 +1260,11 @@ GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1f64x F
GLIBC_2.40 log2p1l 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

View File

@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F
GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1l 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

View File

@ -854,3 +854,9 @@ GLIBC_2.40 log2p1f32 F
GLIBC_2.40 log2p1f32x F GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1l 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

View File

@ -1267,3 +1267,11 @@ GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1f64x F
GLIBC_2.40 log2p1l 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

View File

@ -1157,3 +1157,11 @@ GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1f64x F
GLIBC_2.40 log2p1l 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

View File

@ -1190,3 +1190,11 @@ GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1f64x F
GLIBC_2.40 log2p1l 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

View File

@ -1190,3 +1190,11 @@ GLIBC_2.40 log2p1f32x F
GLIBC_2.40 log2p1f64 F GLIBC_2.40 log2p1f64 F
GLIBC_2.40 log2p1f64x F GLIBC_2.40 log2p1f64x F
GLIBC_2.40 log2p1l 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

View File

@ -1907,6 +1907,30 @@ float: 3
Function: "log_vlen8_avx2": Function: "log_vlen8_avx2":
float: 3 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": Function: "pow":
double: 1 double: 1
float: 1 float: 1