Add narrowing divide functions.

This patch adds the narrowing divide functions from TS 18661-1 to
glibc's libm: fdiv, fdivl, ddivl, f32divf64, f32divf32x, f32xdivf64
for all configurations; f32divf64x, f32divf128, f64divf64x,
f64divf128, f32xdivf64x, f32xdivf128, f64xdivf128 for configurations
with _Float64x and _Float128; __nldbl_ddivl for ldbl-opt.

The changes are mostly essentially the same as for the other narrowing
functions, so the description of those generally applies to this patch
as well.

Tested for x86_64, x86, mips64 (all three ABIs, both hard and soft
float) and powerpc, and with build-many-glibcs.py.

	* math/Makefile (libm-narrow-fns): Add div.
	(libm-test-funcs-narrow): Likewise.
	* math/Versions (GLIBC_2.28): Add narrowing divide functions.
	* math/bits/mathcalls-narrow.h (div): Use __MATHCALL_NARROW.
	* math/gen-auto-libm-tests.c (test_functions): Add div.
	* math/math-narrow.h (CHECK_NARROW_DIV): New macro.
	(NARROW_DIV_ROUND_TO_ODD): Likewise.
	(NARROW_DIV_TRIVIAL): Likewise.
	* sysdeps/ieee754/float128/float128_private.h (__fdivl): New
	macro.
	(__ddivl): Likewise.
	* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add fdiv and
	ddiv.
	(CFLAGS-nldbl-ddiv.c): New variable.
	(CFLAGS-nldbl-fdiv.c): Likewise.
	* sysdeps/ieee754/ldbl-opt/Versions (GLIBC_2.28): Add
	__nldbl_ddivl.
	* sysdeps/ieee754/ldbl-opt/nldbl-compat.h (__nldbl_ddivl): New
	prototype.
	* manual/arith.texi (Misc FP Arithmetic): Document fdiv, fdivl,
	ddivl, fMdivfN, fMdivfNx, fMxdivfN and fMxdivfNx.
	* math/auto-libm-test-in: Add tests of div.
	* math/auto-libm-test-out-narrow-div: New generated file.
	* math/libm-test-narrow-div.inc: New file.
	* sysdeps/i386/fpu/s_f32xdivf64.c: Likewise.
	* sysdeps/ieee754/dbl-64/s_f32xdivf64.c: Likewise.
	* sysdeps/ieee754/dbl-64/s_fdiv.c: Likewise.
	* sysdeps/ieee754/float128/s_f32divf128.c: Likewise.
	* sysdeps/ieee754/float128/s_f64divf128.c: Likewise.
	* sysdeps/ieee754/float128/s_f64xdivf128.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_ddivl.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_f64xdivf128.c: Likewise.
	* sysdeps/ieee754/ldbl-128/s_fdivl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_ddivl.c: Likewise.
	* sysdeps/ieee754/ldbl-128ibm/s_fdivl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_ddivl.c: Likewise.
	* sysdeps/ieee754/ldbl-96/s_fdivl.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/nldbl-ddiv.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/nldbl-fdiv.c: Likewise.
	* sysdeps/ieee754/soft-fp/s_ddivl.c: Likewise.
	* sysdeps/ieee754/soft-fp/s_fdiv.c: Likewise.
	* sysdeps/ieee754/soft-fp/s_fdivl.c: Likewise.
	* sysdeps/powerpc/fpu/libm-test-ulps: Update.
	* sysdeps/mach/hurd/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
This commit is contained in:
Joseph Myers 2018-05-17 00:40:52 +00:00
parent 8c78faa9ef
commit 632a6cbe44
59 changed files with 22648 additions and 4 deletions

View File

@ -1,3 +1,74 @@
2018-05-17 Joseph Myers <joseph@codesourcery.com>
* math/Makefile (libm-narrow-fns): Add div.
(libm-test-funcs-narrow): Likewise.
* math/Versions (GLIBC_2.28): Add narrowing divide functions.
* math/bits/mathcalls-narrow.h (div): Use __MATHCALL_NARROW.
* math/gen-auto-libm-tests.c (test_functions): Add div.
* math/math-narrow.h (CHECK_NARROW_DIV): New macro.
(NARROW_DIV_ROUND_TO_ODD): Likewise.
(NARROW_DIV_TRIVIAL): Likewise.
* sysdeps/ieee754/float128/float128_private.h (__fdivl): New
macro.
(__ddivl): Likewise.
* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add fdiv and
ddiv.
(CFLAGS-nldbl-ddiv.c): New variable.
(CFLAGS-nldbl-fdiv.c): Likewise.
* sysdeps/ieee754/ldbl-opt/Versions (GLIBC_2.28): Add
__nldbl_ddivl.
* sysdeps/ieee754/ldbl-opt/nldbl-compat.h (__nldbl_ddivl): New
prototype.
* manual/arith.texi (Misc FP Arithmetic): Document fdiv, fdivl,
ddivl, fMdivfN, fMdivfNx, fMxdivfN and fMxdivfNx.
* math/auto-libm-test-in: Add tests of div.
* math/auto-libm-test-out-narrow-div: New generated file.
* math/libm-test-narrow-div.inc: New file.
* sysdeps/i386/fpu/s_f32xdivf64.c: Likewise.
* sysdeps/ieee754/dbl-64/s_f32xdivf64.c: Likewise.
* sysdeps/ieee754/dbl-64/s_fdiv.c: Likewise.
* sysdeps/ieee754/float128/s_f32divf128.c: Likewise.
* sysdeps/ieee754/float128/s_f64divf128.c: Likewise.
* sysdeps/ieee754/float128/s_f64xdivf128.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_ddivl.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_f64xdivf128.c: Likewise.
* sysdeps/ieee754/ldbl-128/s_fdivl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/s_ddivl.c: Likewise.
* sysdeps/ieee754/ldbl-128ibm/s_fdivl.c: Likewise.
* sysdeps/ieee754/ldbl-96/s_ddivl.c: Likewise.
* sysdeps/ieee754/ldbl-96/s_fdivl.c: Likewise.
* sysdeps/ieee754/ldbl-opt/nldbl-ddiv.c: Likewise.
* sysdeps/ieee754/ldbl-opt/nldbl-fdiv.c: Likewise.
* sysdeps/ieee754/soft-fp/s_ddivl.c: Likewise.
* sysdeps/ieee754/soft-fp/s_fdiv.c: Likewise.
* sysdeps/ieee754/soft-fp/s_fdivl.c: Likewise.
* sysdeps/powerpc/fpu/libm-test-ulps: Update.
* sysdeps/mach/hurd/i386/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm-le.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
2018-05-16 Adhemerval Zanella <adhemerval.zanella@linaro.org>
[BZ #23178]

3
NEWS
View File

@ -21,6 +21,9 @@ Major new features:
- fmul, fmull, dmull and corresponding fMmulfN, fMmulfNx, fMxmulfN and
fMxmulfNx functions.
- fdiv, fdivl, ddivl and corresponding fMdivfN, fMdivfNx, fMxdivfN and
fMxdivfNx functions.
* Nominative and genitive month names are now supported for the Catalan and
Czech languages. The Catalan and Greek languages now support abbreviated
alternative month names.

View File

@ -2248,6 +2248,25 @@ function without any intermediate rounding to the type of the
arguments.
@end deftypefun
@deftypefun float fdiv (double @var{x}, double @var{y})
@deftypefunx float fdivl (long double @var{x}, long double @var{y})
@deftypefunx double ddivl (long double @var{x}, long double @var{y})
@deftypefunx _FloatM fMdivfN (_Float@var{N} @var{x}, _Float@var{N} @var{y})
@deftypefunx _FloatM fMdivfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y})
@deftypefunx _FloatMx fMxdivfN (_Float@var{N} @var{x}, _Float@var{N} @var{y})
@deftypefunx _FloatMx fMxdivfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y})
@standards{TS 18661-1:2014, math.h}
@standardsx{fMdivfN, TS 18661-3:2015, math.h}
@standardsx{fMdivfNx, TS 18661-3:2015, math.h}
@standardsx{fMxdivfN, TS 18661-3:2015, math.h}
@standardsx{fMxdivfNx, TS 18661-3:2015, math.h}
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
These functions, from TS 18661-1:2014 and TS 18661-3:2015, return
@math{@var{x} / @var{y}}, rounded once to the return type of the
function without any intermediate rounding to the type of the
arguments.
@end deftypefun
@node Complex Numbers
@section Complex Numbers
@pindex complex.h

View File

@ -89,7 +89,7 @@ libm-compat-calls = \
w_lgammaF_r_compat w_lgammaF_compat2 w_expF_compat \
w_lgamma_compatF k_standardF
libm-narrow-fns = add mul sub
libm-narrow-fns = add div mul sub
libm-narrow-types-basic = s_fF s_f32xFf64
libm-narrow-types-ldouble-yes = s_fFl s_dFl
libm-narrow-types-float128-yes = s_f32Ff128 s_f64Ff128 s_f64xFf128
@ -284,7 +284,7 @@ libm-test-funcs-noauto = canonicalize ceil cimag conj copysign cproj creal \
scalbln scalbn setpayload setpayloadsig signbit \
significand totalorder totalordermag trunc ufromfp \
ufromfpx
libm-test-funcs-narrow = add mul sub
libm-test-funcs-narrow = add div mul sub
libm-test-funcs-all = $(libm-test-funcs-auto) $(libm-test-funcs-noauto)
libm-test-c-auto = $(foreach f,$(libm-test-funcs-auto),libm-test-$(f).c)
libm-test-c-noauto = $(foreach f,$(libm-test-funcs-noauto),libm-test-$(f).c)

View File

@ -555,6 +555,8 @@ libm {
# Functions not involving _Float64x or _Float128, for all configurations.
fadd; faddl; daddl;
f32addf32x; f32addf64; f32xaddf64;
fdiv; fdivl; ddivl;
f32divf32x; f32divf64; f32xdivf64;
fmul; fmull; dmull;
f32mulf32x; f32mulf64; f32xmulf64;
fsub; fsubl; dsubl;
@ -563,6 +565,9 @@ libm {
f32addf64x; f32addf128;
f32xaddf64x; f32xaddf128; f64addf64x; f64addf128;
f64xaddf128;
f32divf64x; f32divf128;
f32xdivf64x; f32xdivf128; f64divf64x; f64divf128;
f64xdivf128;
f32mulf64x; f32mulf128;
f32xmulf64x; f32xmulf128; f64mulf64x; f64mulf128;
f64xmulf128;

View File

@ -4758,6 +4758,80 @@ ctanh -min 0
ctanh min_subnorm 0
ctanh -min_subnorm 0
div 0 min
div 0 -min
div 0 min_subnorm
div 0 -min_subnorm
div 0 max
div 0 -max
div -0 min
div -0 -min
div -0 min_subnorm
div -0 -min_subnorm
div -0 max
div -0 -max
div max max xfail:ibm128-libgcc
div max -max xfail:ibm128-libgcc
div -max max xfail:ibm128-libgcc
div -max -max xfail:ibm128-libgcc
div min min
div min -min
div -min min
div -min -min
div min_subnorm min_subnorm
div min_subnorm -min_subnorm
div -min_subnorm min_subnorm
div -min_subnorm -min_subnorm
div max min xfail-rounding:ibm128-libgcc
div max -min xfail-rounding:ibm128-libgcc
div -max min xfail-rounding:ibm128-libgcc
div -max -min xfail-rounding:ibm128-libgcc
div max min_subnorm xfail-rounding:ibm128-libgcc
div max -min_subnorm xfail-rounding:ibm128-libgcc
div -max min_subnorm xfail-rounding:ibm128-libgcc
div -max -min_subnorm xfail-rounding:ibm128-libgcc
div min max xfail-rounding:ibm128-libgcc
div min -max xfail-rounding:ibm128-libgcc
div -min max xfail-rounding:ibm128-libgcc
div -min -max xfail-rounding:ibm128-libgcc
div min_subnorm max xfail-rounding:ibm128-libgcc
div min_subnorm -max xfail-rounding:ibm128-libgcc
div -min_subnorm max xfail-rounding:ibm128-libgcc
div -min_subnorm -max xfail-rounding:ibm128-libgcc
div 1 2
div 1 -2
div -1 2
div -1 -2
div 100.5 0.75
div 100.5 -0.75
div -100.5 0.75
div -100.5 -0.75
# Cases where the ratio of two values in a wider format is very close
# to half way between two representable values in a narrower format,
# so that double rounding would sometimes yield the wrong result. For
# a narrower format of width a and a wider format of width w, take
# b = w - a; these examples are of the form
# (1 + 2^-a + 2^-b + 2^(1-w)) / (1 + 2^-b). These examples have
# ratios of the form (1 + 2^-a) to the width of the wider format, but
# the mathematical value is slightly greater, so that rounding once
# should round the result up but double rounding would wrongly round
# the result down.
# a = 24, w = 53.
div 0x1.0000010800001p0 0x1.00000008p0
# a = 24, w = 64.
div 0x1.0000010001000002p0 0x1.0000000001p0
# a = 24, w = 113.
div 0x1.0000010000000000000000800001p0 0x1.00000000000000000000008p0
# a = 53, w = 64.
div 0x1.0020000000000802p0 0x1.002p0
# a = 53, w = 113.
div 0x1.0000000000000810000000000001p0 0x1.000000000000001p0
# a = 64, w = 113.
div 0x1.0000000000008001000000000001p0 0x1.0000000000008p0
# Similar, for double rounding to 64-bit of a division of 53-bit values.
div 0x1ffe1p0 0xfffp0
erf 0
erf -0
erf 0.125

File diff suppressed because it is too large Load Diff

View File

@ -23,6 +23,9 @@
/* Add. */
__MATHCALL_NARROW (__MATHCALL_NAME (add), __MATHCALL_REDIR_NAME (add), 2);
/* Divide. */
__MATHCALL_NARROW (__MATHCALL_NAME (div), __MATHCALL_REDIR_NAME (div), 2);
/* Multiply. */
__MATHCALL_NARROW (__MATHCALL_NAME (mul), __MATHCALL_REDIR_NAME (mul), 2);

View File

@ -561,6 +561,7 @@ static test_function test_functions[] =
FUNC_mpc_c_c ("csqrt", mpc_sqrt, false),
FUNC_mpc_c_c ("ctan", mpc_tan, false),
FUNC_mpc_c_c ("ctanh", mpc_tanh, false),
FUNC_mpfr_ff_f ("div", mpfr_div, true),
FUNC_mpfr_f_f ("erf", mpfr_erf, false),
FUNC_mpfr_f_f ("erfc", mpfr_erfc, false),
FUNC_mpfr_f_f ("exp", mpfr_exp, false),

View File

@ -0,0 +1,197 @@
/* Test narrowing divide.
Copyright (C) 2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#include "libm-test-driver.c"
static const struct test_aa_f_data div_test_data[] =
{
TEST_aa_f (div, arg_qnan_value, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_qnan_value, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_qnan_value, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_qnan_value, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_qnan_value, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_qnan_value, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, -arg_qnan_value, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, -arg_qnan_value, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_snan_value, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_snan_value, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, -arg_snan_value, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, -arg_snan_value, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_snan_value, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_snan_value, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, -arg_snan_value, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, -arg_snan_value, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_qnan_value, arg_plus_zero, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_qnan_value, arg_minus_zero, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_qnan_value, arg_plus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_qnan_value, arg_minus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_qnan_value, arg_min_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_qnan_value, -arg_min_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_qnan_value, arg_min_subnorm_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_qnan_value, -arg_min_subnorm_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_qnan_value, arg_max_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_qnan_value, -arg_max_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_plus_zero, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_minus_zero, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_plus_infty, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_minus_infty, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_min_value, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_min_value, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_min_subnorm_value, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_min_subnorm_value, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_max_value, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_max_value, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_qnan_value, arg_plus_zero, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_qnan_value, arg_minus_zero, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_qnan_value, arg_plus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_qnan_value, arg_minus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_qnan_value, arg_min_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_qnan_value, -arg_min_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_qnan_value, arg_min_subnorm_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_qnan_value, -arg_min_subnorm_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_qnan_value, arg_max_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_qnan_value, -arg_max_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_plus_zero, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_minus_zero, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_plus_infty, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_minus_infty, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_min_value, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_min_value, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_min_subnorm_value, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_min_subnorm_value, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_max_value, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_max_value, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_snan_value, arg_plus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_snan_value, arg_minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_snan_value, arg_plus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_snan_value, arg_minus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_snan_value, arg_min_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_snan_value, -arg_min_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_snan_value, arg_min_subnorm_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_snan_value, -arg_min_subnorm_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_snan_value, arg_max_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_snan_value, -arg_max_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_plus_zero, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_minus_zero, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_plus_infty, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_minus_infty, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_min_value, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, -arg_min_value, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_min_subnorm_value, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, -arg_min_subnorm_value, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_max_value, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, -arg_max_value, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, -arg_snan_value, arg_plus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, -arg_snan_value, arg_minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, -arg_snan_value, arg_plus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, -arg_snan_value, arg_minus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, -arg_snan_value, arg_min_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, -arg_snan_value, -arg_min_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, -arg_snan_value, arg_min_subnorm_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, -arg_snan_value, -arg_min_subnorm_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, -arg_snan_value, arg_max_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, -arg_snan_value, -arg_max_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_plus_zero, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_minus_zero, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_plus_infty, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_minus_infty, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_min_value, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, -arg_min_value, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_min_subnorm_value, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, -arg_min_subnorm_value, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_max_value, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, -arg_max_value, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
TEST_aa_f (div, arg_plus_infty, arg_plus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
TEST_aa_f (div, arg_plus_infty, arg_minus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
TEST_aa_f (div, arg_minus_infty, arg_plus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
TEST_aa_f (div, arg_minus_infty, arg_minus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
TEST_aa_f (div, arg_plus_zero, arg_plus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
TEST_aa_f (div, arg_plus_zero, arg_minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
TEST_aa_f (div, arg_minus_zero, arg_plus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
TEST_aa_f (div, arg_minus_zero, arg_minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
TEST_aa_f (div, arg_plus_infty, arg_plus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_plus_infty, arg_minus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_plus_infty, arg_min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_plus_infty, -arg_min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_plus_infty, arg_min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_plus_infty, -arg_min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_plus_infty, arg_max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_plus_infty, -arg_max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_plus_zero, arg_plus_infty, plus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_minus_zero, arg_plus_infty, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_min_value, arg_plus_infty, plus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_min_value, arg_plus_infty, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_min_subnorm_value, arg_plus_infty, plus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_min_subnorm_value, arg_plus_infty, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_max_value, arg_plus_infty, plus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_max_value, arg_plus_infty, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_minus_infty, arg_plus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_minus_infty, arg_minus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_minus_infty, arg_min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_minus_infty, -arg_min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_minus_infty, arg_min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_minus_infty, -arg_min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_minus_infty, arg_max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_minus_infty, -arg_max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_plus_zero, arg_minus_infty, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_minus_zero, arg_minus_infty, plus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_min_value, arg_minus_infty, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_min_value, arg_minus_infty, plus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_min_subnorm_value, arg_minus_infty, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_min_subnorm_value, arg_minus_infty, plus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_max_value, arg_minus_infty, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, -arg_max_value, arg_minus_infty, plus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
TEST_aa_f (div, arg_min_value, arg_plus_zero, plus_infty, NO_INEXACT_EXCEPTION|DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
TEST_aa_f (div, -arg_min_value, arg_plus_zero, minus_infty, NO_INEXACT_EXCEPTION|DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
TEST_aa_f (div, arg_min_subnorm_value, arg_plus_zero, plus_infty, NO_INEXACT_EXCEPTION|DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
TEST_aa_f (div, -arg_min_subnorm_value, arg_plus_zero, minus_infty, NO_INEXACT_EXCEPTION|DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
TEST_aa_f (div, arg_max_value, arg_plus_zero, plus_infty, NO_INEXACT_EXCEPTION|DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
TEST_aa_f (div, -arg_max_value, arg_plus_zero, minus_infty, NO_INEXACT_EXCEPTION|DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
TEST_aa_f (div, arg_min_value, arg_minus_zero, minus_infty, NO_INEXACT_EXCEPTION|DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
TEST_aa_f (div, -arg_min_value, arg_minus_zero, plus_infty, NO_INEXACT_EXCEPTION|DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
TEST_aa_f (div, arg_min_subnorm_value, arg_minus_zero, minus_infty, NO_INEXACT_EXCEPTION|DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
TEST_aa_f (div, -arg_min_subnorm_value, arg_minus_zero, plus_infty, NO_INEXACT_EXCEPTION|DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
TEST_aa_f (div, arg_max_value, arg_minus_zero, minus_infty, NO_INEXACT_EXCEPTION|DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
TEST_aa_f (div, -arg_max_value, arg_minus_zero, plus_infty, NO_INEXACT_EXCEPTION|DIVIDE_BY_ZERO_EXCEPTION|ERRNO_ERANGE),
AUTO_TESTS_aa_f (div),
};
static void
div_test (void)
{
ALL_RM_TEST (div, 1, div_test_data, RUN_TEST_LOOP_aa_f, END);
}
static void
do_test (void)
{
div_test ();
}
/*
* Local Variables:
* mode:c
* End:
*/

View File

@ -219,6 +219,59 @@
} \
while (0)
/* Check for error conditions from a narrowing divide function
returning RET with arguments X and Y and set errno as needed.
Overflow, underflow and divide-by-zero can occur for finite
arguments and a domain error for Inf / Inf and 0 / 0. */
#define CHECK_NARROW_DIV(RET, X, Y) \
do \
{ \
if (!isfinite (RET)) \
{ \
if (isnan (RET)) \
{ \
if (!isnan (X) && !isnan (Y)) \
__set_errno (EDOM); \
} \
else if (isfinite (X)) \
__set_errno (ERANGE); \
} \
else if ((RET) == 0 && (X) != 0 && !isinf (Y)) \
__set_errno (ERANGE); \
} \
while (0)
/* Implement narrowing divide using round-to-odd. The arguments are
X and Y, the return type is TYPE and UNION, MANTISSA and SUFFIX are
as for ROUND_TO_ODD. */
#define NARROW_DIV_ROUND_TO_ODD(X, Y, TYPE, UNION, SUFFIX, MANTISSA) \
do \
{ \
TYPE ret; \
\
ret = (TYPE) ROUND_TO_ODD (math_opt_barrier (X) / (Y), \
UNION, SUFFIX, MANTISSA); \
\
CHECK_NARROW_DIV (ret, (X), (Y)); \
return ret; \
} \
while (0)
/* Implement a narrowing divide function that is not actually
narrowing or where no attempt is made to be correctly rounding (the
latter only applies to IBM long double). The arguments are X and Y
and the return type is TYPE. */
#define NARROW_DIV_TRIVIAL(X, Y, TYPE) \
do \
{ \
TYPE ret; \
\
ret = (TYPE) ((X) / (Y)); \
CHECK_NARROW_DIV (ret, (X), (Y)); \
return ret; \
} \
while (0)
/* The following macros declare aliases for a narrowing function. The
sole argument is the base name of a family of functions, such as
"add". If any platform changes long double format after the

View File

@ -0,0 +1,29 @@
/* Divide _Float64 values, converting the result to _Float32x. i386 version.
Copyright (C) 2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow.h>
_Float32x
__f32xdivf64 (_Float64 x, _Float64 y)
{
/* To avoid double rounding, use round-to-odd on long double. */
NARROW_DIV_ROUND_TO_ODD ((long double) x, (long double) y, double,
union ieee854_long_double, l, mantissa1);
}
libm_alias_float32x_float64 (div)

View File

@ -0,0 +1,30 @@
/* Divide _Float64 values, converting the result to _Float32x.
Copyright (C) 2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#define ddivl __hide_ddivl
#include <math.h>
#undef ddivl
#include <math-narrow.h>
_Float32x
__f32xdivf64 (_Float64 x, _Float64 y)
{
NARROW_DIV_TRIVIAL (x, y, _Float32x);
}
libm_alias_float32x_float64 (div)

View File

@ -0,0 +1,34 @@
/* Divide double values, narrowing the result to float.
Copyright (C) 2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#define f32divf64 __hide_f32divf64
#define f32divf32x __hide_f32divf32x
#define fdivl __hide_fdivl
#include <math.h>
#undef f32divf64
#undef f32divf32x
#undef fdivl
#include <math-narrow.h>
float
__fdiv (double x, double y)
{
NARROW_DIV_ROUND_TO_ODD (x, y, float, union ieee754_double, , mantissa1);
}
libm_alias_float_double (div)

View File

@ -258,6 +258,8 @@
#define __faddl __f32addf128
#define __daddl __f64addf128
#define __fdivl __f32divf128
#define __ddivl __f64divf128
#define __fmull __f32mulf128
#define __dmull __f64mulf128
#define __fsubl __f32subf128

View File

@ -0,0 +1,6 @@
#define f32divf64x __hide_f32divf64x
#define f32divf128 __hide_f32divf128
#include <float128_private.h>
#undef f32divf64x
#undef f32divf128
#include "../ldbl-128/s_fdivl.c"

View File

@ -0,0 +1,10 @@
#define f32xdivf64x __hide_f32xdivf64x
#define f32xdivf128 __hide_f32xdivf128
#define f64divf64x __hide_f64divf64x
#define f64divf128 __hide_f64divf128
#include <float128_private.h>
#undef f32xdivf64x
#undef f32xdivf128
#undef f64divf64x
#undef f64divf128
#include "../ldbl-128/s_ddivl.c"

View File

@ -0,0 +1,2 @@
#include <float128_private.h>
#include "../ldbl-128/s_f64xdivf128.c"

View File

@ -0,0 +1,37 @@
/* Divide long double (ldbl-128) values, narrowing the result to double.
Copyright (C) 2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#define f32xdivf64x __hide_f32xdivf64x
#define f32xdivf128 __hide_f32xdivf128
#define f64divf64x __hide_f64divf64x
#define f64divf128 __hide_f64divf128
#include <math.h>
#undef f32xdivf64x
#undef f32xdivf128
#undef f64divf64x
#undef f64divf128
#include <math-narrow.h>
double
__ddivl (_Float128 x, _Float128 y)
{
NARROW_DIV_ROUND_TO_ODD (x, y, double, union ieee854_long_double, l,
mantissa3);
}
libm_alias_double_ldouble (div)

View File

@ -0,0 +1,38 @@
/* Divide _Float128 values, converting the result to _Float64x.
Copyright (C) 2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow.h>
/* math_ldbl.h defines _Float128 to long double for this directory,
but when they are different, this function must be defined with
_Float128 arguments to avoid defining an alias with an incompatible
type. */
#undef _Float128
_Float64x
__f64xdivf128 (_Float128 x, _Float128 y)
{
#if __HAVE_FLOAT64X_LONG_DOUBLE && __HAVE_DISTINCT_FLOAT128
NARROW_DIV_ROUND_TO_ODD (x, y, _Float64x, union ieee854_long_double, l,
mantissa3);
#else
NARROW_DIV_TRIVIAL (x, y, _Float64x);
#endif
}
libm_alias_float64x_float128 (div)

View File

@ -0,0 +1,33 @@
/* Divide long double (ldbl-128) values, narrowing the result to float.
Copyright (C) 2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#define f32divf64x __hide_f32divf64x
#define f32divf128 __hide_f32divf128
#include <math.h>
#undef f32divf64x
#undef f32divf128
#include <math-narrow.h>
float
__fdivl (_Float128 x, _Float128 y)
{
NARROW_DIV_ROUND_TO_ODD (x, y, float, union ieee854_long_double, l,
mantissa3);
}
libm_alias_float_ldouble (div)

View File

@ -0,0 +1,27 @@
/* Divide long double (ldbl-128ibm) values, narrowing the result to double.
Copyright (C) 2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow.h>
double
__ddivl (long double x, long double y)
{
NARROW_DIV_TRIVIAL (x, y, double);
}
libm_alias_double_ldouble (div)

View File

@ -0,0 +1,27 @@
/* Divide long double (ldbl-128ibm) values, narrowing the result to float.
Copyright (C) 2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#include <math.h>
#include <math-narrow.h>
float
__fdivl (long double x, long double y)
{
NARROW_DIV_TRIVIAL (x, y, float);
}
libm_alias_float_ldouble (div)

View File

@ -0,0 +1,33 @@
/* Divide long double (ldbl-96) values, narrowing the result to double.
Copyright (C) 2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#define f32xdivf64x __hide_f32xdivf64x
#define f64divf64x __hide_f64divf64x
#include <math.h>
#undef f32xdivf64x
#undef f64divf64x
#include <math-narrow.h>
double
__ddivl (long double x, long double y)
{
NARROW_DIV_ROUND_TO_ODD (x, y, double, union ieee854_long_double, l,
mantissa1);
}
libm_alias_double_ldouble (div)

View File

@ -0,0 +1,31 @@
/* Divide long double (ldbl-96) values, narrowing the result to float.
Copyright (C) 2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#define f32divf64x __hide_f32divf64x
#include <math.h>
#undef f32divf64x
#include <math-narrow.h>
float
__fdivl (long double x, long double y)
{
NARROW_DIV_ROUND_TO_ODD (x, y, float, union ieee854_long_double, l,
mantissa1);
}
libm_alias_float_ldouble (div)

View File

@ -45,7 +45,7 @@ libnldbl-calls = asprintf dprintf fprintf fscanf fwprintf fwscanf iovfscanf \
nextup nextdown totalorder totalordermag getpayload \
canonicalize setpayload setpayloadsig llogb fmaxmag fminmag \
roundeven fromfp ufromfp fromfpx ufromfpx fadd dadd \
fmul dmul fsub dsub
fdiv ddiv fmul dmul fsub dsub
libnldbl-routines = $(libnldbl-calls:%=nldbl-%)
libnldbl-inhibit-o = $(object-suffixes)
libnldbl-static-only-routines = $(libnldbl-routines)
@ -88,6 +88,7 @@ CFLAGS-nldbl-csqrt.c = -fno-builtin-csqrtl
CFLAGS-nldbl-ctan.c = -fno-builtin-ctanl
CFLAGS-nldbl-ctanh.c = -fno-builtin-ctanhl
CFLAGS-nldbl-dadd.c = -fno-builtin-daddl
CFLAGS-nldbl-ddiv.c = -fno-builtin-ddivl
CFLAGS-nldbl-dmul.c = -fno-builtin-dmull
CFLAGS-nldbl-dsub.c = -fno-builtin-dsubl
CFLAGS-nldbl-erf.c = -fno-builtin-erfl
@ -99,6 +100,7 @@ CFLAGS-nldbl-expm1.c = -fno-builtin-expm1l
CFLAGS-nldbl-fabs.c = -fno-builtin-fabsl
CFLAGS-nldbl-fadd.c = -fno-builtin-faddl
CFLAGS-nldbl-fdim.c = -fno-builtin-fdiml
CFLAGS-nldbl-fdiv.c = -fno-builtin-fdivl
CFLAGS-nldbl-finite.c = -fno-builtin-finitel
CFLAGS-nldbl-floor.c = -fno-builtin-floorl
CFLAGS-nldbl-fma.c = -fno-builtin-fmal

View File

@ -101,6 +101,6 @@ libm {
# Functions taking long double = double argument and rounding
# result to double (same as f32x*f64 functions, but those names
# are not reserved in TS 18661-1).
__nldbl_daddl; __nldbl_dmull; __nldbl_dsubl;
__nldbl_daddl; __nldbl_ddivl; __nldbl_dmull; __nldbl_dsubl;
}
}

View File

@ -104,6 +104,7 @@ extern void __nldbl___vsyslog_chk (int, int, const char *, va_list);
/* The original declarations of these were hidden by the including
file. */
extern double __nldbl_daddl (double, double) __THROW;
extern double __nldbl_ddivl (double, double) __THROW;
extern double __nldbl_dmull (double, double) __THROW;
extern double __nldbl_dsubl (double, double) __THROW;

View File

@ -0,0 +1,28 @@
/* Compatibility routine for IEEE double as long double for ddiv.
Copyright (C) 2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#define ddivl __hide_ddivl
#include "nldbl-compat.h"
#undef ddivl
double
attribute_hidden
ddivl (double x, double y)
{
return __nldbl_ddivl (x, y);
}

View File

@ -0,0 +1,28 @@
/* Compatibility routine for IEEE double as long double for fdiv.
Copyright (C) 2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#define fdivl __hide_fdivl
#include "nldbl-compat.h"
#undef fdivl
float
attribute_hidden
fdivl (double x, double y)
{
return fdiv (x, y);
}

View File

@ -0,0 +1,59 @@
/* Divide long double (ldbl-128) values, narrowing the result to
double, using soft-fp.
Copyright (C) 2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#define f32xdivf64x __hide_f32xdivf64x
#define f32xdivf128 __hide_f32xdivf128
#define f64divf64x __hide_f64divf64x
#define f64divf128 __hide_f64divf128
#include <math.h>
#undef f32xdivf64x
#undef f32xdivf128
#undef f64divf64x
#undef f64divf128
#include <math-narrow.h>
#include <soft-fp.h>
#include <double.h>
#include <quad.h>
double
__ddivl (_Float128 x, _Float128 y)
{
FP_DECL_EX;
FP_DECL_Q (X);
FP_DECL_Q (Y);
FP_DECL_Q (R);
FP_DECL_D (RN);
double ret;
FP_INIT_ROUNDMODE;
FP_UNPACK_Q (X, x);
FP_UNPACK_Q (Y, y);
FP_DIV_Q (R, X, Y);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
FP_TRUNC_COOKED (D, Q, 2, 4, RN, R);
#else
FP_TRUNC_COOKED (D, Q, 1, 2, RN, R);
#endif
FP_PACK_D (ret, RN);
FP_HANDLE_EXCEPTIONS;
CHECK_NARROW_DIV (ret, x, y);
return ret;
}
libm_alias_double_ldouble (div)

View File

@ -0,0 +1,56 @@
/* Divide double values, narrowing the result to float, using soft-fp.
Copyright (C) 2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#define f32divf64 __hide_f32divf64
#define f32divf32x __hide_f32divf32x
#define fdivl __hide_fdivl
#include <math.h>
#undef f32divf64
#undef f32divf32x
#undef fdivl
#include <math-narrow.h>
#include <soft-fp.h>
#include <single.h>
#include <double.h>
float
__fdiv (double x, double y)
{
FP_DECL_EX;
FP_DECL_D (X);
FP_DECL_D (Y);
FP_DECL_D (R);
FP_DECL_S (RN);
float ret;
FP_INIT_ROUNDMODE;
FP_UNPACK_D (X, x);
FP_UNPACK_D (Y, y);
FP_DIV_D (R, X, Y);
#if _FP_W_TYPE_SIZE < _FP_FRACBITS_D
FP_TRUNC_COOKED (S, D, 1, 2, RN, R);
#else
FP_TRUNC_COOKED (S, D, 1, 1, RN, R);
#endif
FP_PACK_S (ret, RN);
FP_HANDLE_EXCEPTIONS;
CHECK_NARROW_DIV (ret, x, y);
return ret;
}
libm_alias_float_double (div)

View File

@ -0,0 +1,55 @@
/* Divide long double (ldbl-128) values, narrowing the result to
float, using soft-fp.
Copyright (C) 2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#define f32divf64x __hide_f32divf64x
#define f32divf128 __hide_f32divf128
#include <math.h>
#undef f32divf64x
#undef f32divf128
#include <math-narrow.h>
#include <soft-fp.h>
#include <single.h>
#include <quad.h>
float
__fdivl (_Float128 x, _Float128 y)
{
FP_DECL_EX;
FP_DECL_Q (X);
FP_DECL_Q (Y);
FP_DECL_Q (R);
FP_DECL_S (RN);
float ret;
FP_INIT_ROUNDMODE;
FP_UNPACK_Q (X, x);
FP_UNPACK_Q (Y, y);
FP_DIV_Q (R, X, Y);
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
FP_TRUNC_COOKED (S, Q, 1, 4, RN, R);
#else
FP_TRUNC_COOKED (S, Q, 1, 2, RN, R);
#endif
FP_PACK_S (ret, RN);
FP_HANDLE_EXCEPTIONS;
CHECK_NARROW_DIV (ret, x, y);
return ret;
}
libm_alias_float_ldouble (div)

View File

@ -1017,12 +1017,17 @@ GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.27 ynf64x F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf128 F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32addf64x F
GLIBC_2.28 f32divf128 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32divf64x F
GLIBC_2.28 f32mulf128 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
@ -1034,6 +1039,9 @@ GLIBC_2.28 f32subf64x F
GLIBC_2.28 f32xaddf128 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xaddf64x F
GLIBC_2.28 f32xdivf128 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xdivf64x F
GLIBC_2.28 f32xmulf128 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xmulf64x F
@ -1042,15 +1050,20 @@ GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 f32xsubf64x F
GLIBC_2.28 f64addf128 F
GLIBC_2.28 f64addf64x F
GLIBC_2.28 f64divf128 F
GLIBC_2.28 f64divf64x F
GLIBC_2.28 f64mulf128 F
GLIBC_2.28 f64mulf64x F
GLIBC_2.28 f64subf128 F
GLIBC_2.28 f64subf64x F
GLIBC_2.28 f64xaddf128 F
GLIBC_2.28 f64xdivf128 F
GLIBC_2.28 f64xmulf128 F
GLIBC_2.28 f64xsubf128 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -1823,6 +1823,9 @@ ifloat128: 5
ildouble: 10
ldouble: 10
Function: "div_ldouble":
float: 1
Function: "erf":
double: 1
float: 1

View File

@ -981,12 +981,17 @@ GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.27 ynf64x F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf128 F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32addf64x F
GLIBC_2.28 f32divf128 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32divf64x F
GLIBC_2.28 f32mulf128 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
@ -998,6 +1003,9 @@ GLIBC_2.28 f32subf64x F
GLIBC_2.28 f32xaddf128 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xaddf64x F
GLIBC_2.28 f32xdivf128 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xdivf64x F
GLIBC_2.28 f32xmulf128 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xmulf64x F
@ -1006,15 +1014,20 @@ GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 f32xsubf64x F
GLIBC_2.28 f64addf128 F
GLIBC_2.28 f64addf64x F
GLIBC_2.28 f64divf128 F
GLIBC_2.28 f64divf64x F
GLIBC_2.28 f64mulf128 F
GLIBC_2.28 f64mulf64x F
GLIBC_2.28 f64subf128 F
GLIBC_2.28 f64subf64x F
GLIBC_2.28 f64xaddf128 F
GLIBC_2.28 f64xdivf128 F
GLIBC_2.28 f64xmulf128 F
GLIBC_2.28 f64xsubf128 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -988,15 +988,21 @@ GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.27 ynf64x F
GLIBC_2.28 __nldbl_daddl F
GLIBC_2.28 __nldbl_ddivl F
GLIBC_2.28 __nldbl_dmull F
GLIBC_2.28 __nldbl_dsubl F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf128 F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32addf64x F
GLIBC_2.28 f32divf128 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32divf64x F
GLIBC_2.28 f32mulf128 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
@ -1008,6 +1014,9 @@ GLIBC_2.28 f32subf64x F
GLIBC_2.28 f32xaddf128 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xaddf64x F
GLIBC_2.28 f32xdivf128 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xdivf64x F
GLIBC_2.28 f32xmulf128 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xmulf64x F
@ -1016,15 +1025,20 @@ GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 f32xsubf64x F
GLIBC_2.28 f64addf128 F
GLIBC_2.28 f64addf64x F
GLIBC_2.28 f64divf128 F
GLIBC_2.28 f64divf64x F
GLIBC_2.28 f64mulf128 F
GLIBC_2.28 f64mulf64x F
GLIBC_2.28 f64subf128 F
GLIBC_2.28 f64subf64x F
GLIBC_2.28 f64xaddf128 F
GLIBC_2.28 f64xdivf128 F
GLIBC_2.28 f64xmulf128 F
GLIBC_2.28 f64xsubf128 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -430,19 +430,25 @@ GLIBC_2.27 ynf32 F
GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
GLIBC_2.28 f32subf32x F
GLIBC_2.28 f32subf64 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -741,19 +741,25 @@ GLIBC_2.27 ynf32 F
GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
GLIBC_2.28 f32subf32x F
GLIBC_2.28 f32subf64 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -1024,12 +1024,17 @@ GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.27 ynf64x F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf128 F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32addf64x F
GLIBC_2.28 f32divf128 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32divf64x F
GLIBC_2.28 f32mulf128 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
@ -1041,6 +1046,9 @@ GLIBC_2.28 f32subf64x F
GLIBC_2.28 f32xaddf128 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xaddf64x F
GLIBC_2.28 f32xdivf128 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xdivf64x F
GLIBC_2.28 f32xmulf128 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xmulf64x F
@ -1049,15 +1057,20 @@ GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 f32xsubf64x F
GLIBC_2.28 f64addf128 F
GLIBC_2.28 f64addf64x F
GLIBC_2.28 f64divf128 F
GLIBC_2.28 f64divf64x F
GLIBC_2.28 f64mulf128 F
GLIBC_2.28 f64mulf64x F
GLIBC_2.28 f64subf128 F
GLIBC_2.28 f64subf64x F
GLIBC_2.28 f64xaddf128 F
GLIBC_2.28 f64xdivf128 F
GLIBC_2.28 f64xmulf128 F
GLIBC_2.28 f64xsubf128 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -954,12 +954,17 @@ GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.27 ynf64x F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf128 F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32addf64x F
GLIBC_2.28 f32divf128 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32divf64x F
GLIBC_2.28 f32mulf128 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
@ -971,6 +976,9 @@ GLIBC_2.28 f32subf64x F
GLIBC_2.28 f32xaddf128 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xaddf64x F
GLIBC_2.28 f32xdivf128 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xdivf64x F
GLIBC_2.28 f32xmulf128 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xmulf64x F
@ -979,15 +987,20 @@ GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 f32xsubf64x F
GLIBC_2.28 f64addf128 F
GLIBC_2.28 f64addf64x F
GLIBC_2.28 f64divf128 F
GLIBC_2.28 f64divf64x F
GLIBC_2.28 f64mulf128 F
GLIBC_2.28 f64mulf64x F
GLIBC_2.28 f64subf128 F
GLIBC_2.28 f64subf64x F
GLIBC_2.28 f64xaddf128 F
GLIBC_2.28 f64xdivf128 F
GLIBC_2.28 f64xmulf128 F
GLIBC_2.28 f64xsubf128 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -430,19 +430,25 @@ GLIBC_2.27 ynf32 F
GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
GLIBC_2.28 f32subf32x F
GLIBC_2.28 f32subf64 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -781,19 +781,25 @@ GLIBC_2.27 ynf32 F
GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
GLIBC_2.28 f32subf32x F
GLIBC_2.28 f32subf64 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -742,19 +742,25 @@ GLIBC_2.27 ynf32 F
GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
GLIBC_2.28 f32subf32x F
GLIBC_2.28 f32subf64 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -741,19 +741,25 @@ GLIBC_2.27 ynf32 F
GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
GLIBC_2.28 f32subf32x F
GLIBC_2.28 f32subf64 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -981,12 +981,17 @@ GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.27 ynf64x F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf128 F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32addf64x F
GLIBC_2.28 f32divf128 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32divf64x F
GLIBC_2.28 f32mulf128 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
@ -998,6 +1003,9 @@ GLIBC_2.28 f32subf64x F
GLIBC_2.28 f32xaddf128 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xaddf64x F
GLIBC_2.28 f32xdivf128 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xdivf64x F
GLIBC_2.28 f32xmulf128 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xmulf64x F
@ -1006,15 +1014,20 @@ GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 f32xsubf64x F
GLIBC_2.28 f64addf128 F
GLIBC_2.28 f64addf64x F
GLIBC_2.28 f64divf128 F
GLIBC_2.28 f64divf64x F
GLIBC_2.28 f64mulf128 F
GLIBC_2.28 f64mulf64x F
GLIBC_2.28 f64subf128 F
GLIBC_2.28 f64subf64x F
GLIBC_2.28 f64xaddf128 F
GLIBC_2.28 f64xdivf128 F
GLIBC_2.28 f64xmulf128 F
GLIBC_2.28 f64xsubf128 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -742,19 +742,25 @@ GLIBC_2.27 ynf32 F
GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
GLIBC_2.28 f32subf32x F
GLIBC_2.28 f32subf64 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -783,22 +783,29 @@ GLIBC_2.27 ynf32 F
GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.28 __nldbl_daddl F
GLIBC_2.28 __nldbl_ddivl F
GLIBC_2.28 __nldbl_dmull F
GLIBC_2.28 __nldbl_dsubl F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
GLIBC_2.28 f32subf32x F
GLIBC_2.28 f32subf64 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -782,22 +782,29 @@ GLIBC_2.27 ynf32 F
GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.28 __nldbl_daddl F
GLIBC_2.28 __nldbl_ddivl F
GLIBC_2.28 __nldbl_dmull F
GLIBC_2.28 __nldbl_dsubl F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
GLIBC_2.28 f32subf32x F
GLIBC_2.28 f32subf64 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -1021,15 +1021,21 @@ GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.27 ynf64x F
GLIBC_2.28 __nldbl_daddl F
GLIBC_2.28 __nldbl_ddivl F
GLIBC_2.28 __nldbl_dmull F
GLIBC_2.28 __nldbl_dsubl F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf128 F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32addf64x F
GLIBC_2.28 f32divf128 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32divf64x F
GLIBC_2.28 f32mulf128 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
@ -1041,6 +1047,9 @@ GLIBC_2.28 f32subf64x F
GLIBC_2.28 f32xaddf128 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xaddf64x F
GLIBC_2.28 f32xdivf128 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xdivf64x F
GLIBC_2.28 f32xmulf128 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xmulf64x F
@ -1049,15 +1058,20 @@ GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 f32xsubf64x F
GLIBC_2.28 f64addf128 F
GLIBC_2.28 f64addf64x F
GLIBC_2.28 f64divf128 F
GLIBC_2.28 f64divf64x F
GLIBC_2.28 f64mulf128 F
GLIBC_2.28 f64mulf64x F
GLIBC_2.28 f64subf128 F
GLIBC_2.28 f64subf64x F
GLIBC_2.28 f64xaddf128 F
GLIBC_2.28 f64xdivf128 F
GLIBC_2.28 f64xmulf128 F
GLIBC_2.28 f64xsubf128 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -461,22 +461,29 @@ GLIBC_2.27 ynf32 F
GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.28 __nldbl_daddl F
GLIBC_2.28 __nldbl_ddivl F
GLIBC_2.28 __nldbl_dmull F
GLIBC_2.28 __nldbl_dsubl F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
GLIBC_2.28 f32subf32x F
GLIBC_2.28 f32subf64 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -968,12 +968,17 @@ GLIBC_2.27 ynf64 F
GLIBC_2.27 ynf64x F
GLIBC_2.27 ynl F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf128 F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32addf64x F
GLIBC_2.28 f32divf128 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32divf64x F
GLIBC_2.28 f32mulf128 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
@ -985,6 +990,9 @@ GLIBC_2.28 f32subf64x F
GLIBC_2.28 f32xaddf128 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xaddf64x F
GLIBC_2.28 f32xdivf128 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xdivf64x F
GLIBC_2.28 f32xmulf128 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xmulf64x F
@ -993,15 +1001,20 @@ GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 f32xsubf64x F
GLIBC_2.28 f64addf128 F
GLIBC_2.28 f64addf64x F
GLIBC_2.28 f64divf128 F
GLIBC_2.28 f64divf64x F
GLIBC_2.28 f64mulf128 F
GLIBC_2.28 f64mulf64x F
GLIBC_2.28 f64subf128 F
GLIBC_2.28 f64subf64x F
GLIBC_2.28 f64xaddf128 F
GLIBC_2.28 f64xdivf128 F
GLIBC_2.28 f64xmulf128 F
GLIBC_2.28 f64xsubf128 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -978,15 +978,21 @@ GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.27 ynf64x F
GLIBC_2.28 __nldbl_daddl F
GLIBC_2.28 __nldbl_ddivl F
GLIBC_2.28 __nldbl_dmull F
GLIBC_2.28 __nldbl_dsubl F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf128 F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32addf64x F
GLIBC_2.28 f32divf128 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32divf64x F
GLIBC_2.28 f32mulf128 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
@ -998,6 +1004,9 @@ GLIBC_2.28 f32subf64x F
GLIBC_2.28 f32xaddf128 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xaddf64x F
GLIBC_2.28 f32xdivf128 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xdivf64x F
GLIBC_2.28 f32xmulf128 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xmulf64x F
@ -1006,15 +1015,20 @@ GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 f32xsubf64x F
GLIBC_2.28 f64addf128 F
GLIBC_2.28 f64addf64x F
GLIBC_2.28 f64divf128 F
GLIBC_2.28 f64divf64x F
GLIBC_2.28 f64mulf128 F
GLIBC_2.28 f64mulf64x F
GLIBC_2.28 f64subf128 F
GLIBC_2.28 f64subf64x F
GLIBC_2.28 f64xaddf128 F
GLIBC_2.28 f64xdivf128 F
GLIBC_2.28 f64xmulf128 F
GLIBC_2.28 f64xsubf128 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -978,15 +978,21 @@ GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.27 ynf64x F
GLIBC_2.28 __nldbl_daddl F
GLIBC_2.28 __nldbl_ddivl F
GLIBC_2.28 __nldbl_dmull F
GLIBC_2.28 __nldbl_dsubl F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf128 F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32addf64x F
GLIBC_2.28 f32divf128 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32divf64x F
GLIBC_2.28 f32mulf128 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
@ -998,6 +1004,9 @@ GLIBC_2.28 f32subf64x F
GLIBC_2.28 f32xaddf128 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xaddf64x F
GLIBC_2.28 f32xdivf128 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xdivf64x F
GLIBC_2.28 f32xmulf128 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xmulf64x F
@ -1006,15 +1015,20 @@ GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 f32xsubf64x F
GLIBC_2.28 f64addf128 F
GLIBC_2.28 f64addf64x F
GLIBC_2.28 f64divf128 F
GLIBC_2.28 f64divf64x F
GLIBC_2.28 f64mulf128 F
GLIBC_2.28 f64mulf64x F
GLIBC_2.28 f64subf128 F
GLIBC_2.28 f64subf64x F
GLIBC_2.28 f64xaddf128 F
GLIBC_2.28 f64xdivf128 F
GLIBC_2.28 f64xmulf128 F
GLIBC_2.28 f64xsubf128 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -741,19 +741,25 @@ GLIBC_2.27 ynf32 F
GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
GLIBC_2.28 f32subf32x F
GLIBC_2.28 f32subf64 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -985,15 +985,21 @@ GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.27 ynf64x F
GLIBC_2.28 __nldbl_daddl F
GLIBC_2.28 __nldbl_ddivl F
GLIBC_2.28 __nldbl_dmull F
GLIBC_2.28 __nldbl_dsubl F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf128 F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32addf64x F
GLIBC_2.28 f32divf128 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32divf64x F
GLIBC_2.28 f32mulf128 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
@ -1005,6 +1011,9 @@ GLIBC_2.28 f32subf64x F
GLIBC_2.28 f32xaddf128 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xaddf64x F
GLIBC_2.28 f32xdivf128 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xdivf64x F
GLIBC_2.28 f32xmulf128 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xmulf64x F
@ -1013,15 +1022,20 @@ GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 f32xsubf64x F
GLIBC_2.28 f64addf128 F
GLIBC_2.28 f64addf64x F
GLIBC_2.28 f64divf128 F
GLIBC_2.28 f64divf64x F
GLIBC_2.28 f64mulf128 F
GLIBC_2.28 f64mulf64x F
GLIBC_2.28 f64subf128 F
GLIBC_2.28 f64subf64x F
GLIBC_2.28 f64xaddf128 F
GLIBC_2.28 f64xdivf128 F
GLIBC_2.28 f64xmulf128 F
GLIBC_2.28 f64xsubf128 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -981,12 +981,17 @@ GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.27 ynf64x F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf128 F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32addf64x F
GLIBC_2.28 f32divf128 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32divf64x F
GLIBC_2.28 f32mulf128 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
@ -998,6 +1003,9 @@ GLIBC_2.28 f32subf64x F
GLIBC_2.28 f32xaddf128 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xaddf64x F
GLIBC_2.28 f32xdivf128 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xdivf64x F
GLIBC_2.28 f32xmulf128 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xmulf64x F
@ -1006,15 +1014,20 @@ GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 f32xsubf64x F
GLIBC_2.28 f64addf128 F
GLIBC_2.28 f64addf64x F
GLIBC_2.28 f64divf128 F
GLIBC_2.28 f64divf64x F
GLIBC_2.28 f64mulf128 F
GLIBC_2.28 f64mulf64x F
GLIBC_2.28 f64subf128 F
GLIBC_2.28 f64subf64x F
GLIBC_2.28 f64xaddf128 F
GLIBC_2.28 f64xdivf128 F
GLIBC_2.28 f64xmulf128 F
GLIBC_2.28 f64xsubf128 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -1015,12 +1015,17 @@ GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.27 ynf64x F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf128 F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32addf64x F
GLIBC_2.28 f32divf128 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32divf64x F
GLIBC_2.28 f32mulf128 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
@ -1032,6 +1037,9 @@ GLIBC_2.28 f32subf64x F
GLIBC_2.28 f32xaddf128 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xaddf64x F
GLIBC_2.28 f32xdivf128 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xdivf64x F
GLIBC_2.28 f32xmulf128 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xmulf64x F
@ -1040,15 +1048,20 @@ GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 f32xsubf64x F
GLIBC_2.28 f64addf128 F
GLIBC_2.28 f64addf64x F
GLIBC_2.28 f64divf128 F
GLIBC_2.28 f64divf64x F
GLIBC_2.28 f64mulf128 F
GLIBC_2.28 f64mulf64x F
GLIBC_2.28 f64subf128 F
GLIBC_2.28 f64subf64x F
GLIBC_2.28 f64xaddf128 F
GLIBC_2.28 f64xdivf128 F
GLIBC_2.28 f64xmulf128 F
GLIBC_2.28 f64xsubf128 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F

View File

@ -1015,12 +1015,17 @@ GLIBC_2.27 ynf32x F
GLIBC_2.27 ynf64 F
GLIBC_2.27 ynf64x F
GLIBC_2.28 daddl F
GLIBC_2.28 ddivl F
GLIBC_2.28 dmull F
GLIBC_2.28 dsubl F
GLIBC_2.28 f32addf128 F
GLIBC_2.28 f32addf32x F
GLIBC_2.28 f32addf64 F
GLIBC_2.28 f32addf64x F
GLIBC_2.28 f32divf128 F
GLIBC_2.28 f32divf32x F
GLIBC_2.28 f32divf64 F
GLIBC_2.28 f32divf64x F
GLIBC_2.28 f32mulf128 F
GLIBC_2.28 f32mulf32x F
GLIBC_2.28 f32mulf64 F
@ -1032,6 +1037,9 @@ GLIBC_2.28 f32subf64x F
GLIBC_2.28 f32xaddf128 F
GLIBC_2.28 f32xaddf64 F
GLIBC_2.28 f32xaddf64x F
GLIBC_2.28 f32xdivf128 F
GLIBC_2.28 f32xdivf64 F
GLIBC_2.28 f32xdivf64x F
GLIBC_2.28 f32xmulf128 F
GLIBC_2.28 f32xmulf64 F
GLIBC_2.28 f32xmulf64x F
@ -1040,15 +1048,20 @@ GLIBC_2.28 f32xsubf64 F
GLIBC_2.28 f32xsubf64x F
GLIBC_2.28 f64addf128 F
GLIBC_2.28 f64addf64x F
GLIBC_2.28 f64divf128 F
GLIBC_2.28 f64divf64x F
GLIBC_2.28 f64mulf128 F
GLIBC_2.28 f64mulf64x F
GLIBC_2.28 f64subf128 F
GLIBC_2.28 f64subf64x F
GLIBC_2.28 f64xaddf128 F
GLIBC_2.28 f64xdivf128 F
GLIBC_2.28 f64xmulf128 F
GLIBC_2.28 f64xsubf128 F
GLIBC_2.28 fadd F
GLIBC_2.28 faddl F
GLIBC_2.28 fdiv F
GLIBC_2.28 fdivl F
GLIBC_2.28 fmul F
GLIBC_2.28 fmull F
GLIBC_2.28 fsub F