mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
Add narrowing subtract functions.
This patch adds the narrowing subtract functions from TS 18661-1 to glibc's libm: fsub, fsubl, dsubl, f32subf64, f32subf32x, f32xsubf64 for all configurations; f32subf64x, f32subf128, f64subf64x, f64subf128, f32xsubf64x, f32xsubf128, f64xsubf128 for configurations with _Float64x and _Float128; __nldbl_dsubl for ldbl-opt. The changes are essentially the same as for the narrowing add 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 sub. (libm-test-funcs-narrow): Likewise. * math/Versions (GLIBC_2.28): Add narrowing subtract functions. * math/bits/mathcalls-narrow.h (sub): Use __MATHCALL_NARROW. * math/gen-auto-libm-tests.c (test_functions): Add sub. * math/math-narrow.h (CHECK_NARROW_SUB): New macro. (NARROW_SUB_ROUND_TO_ODD): Likewise. (NARROW_SUB_TRIVIAL): Likewise. * sysdeps/ieee754/float128/float128_private.h (__fsubl): New macro. (__dsubl): Likewise. * sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add fsub and dsub. (CFLAGS-nldbl-dsub.c): New variable. (CFLAGS-nldbl-fsub.c): Likewise. * sysdeps/ieee754/ldbl-opt/Versions (GLIBC_2.28): Add __nldbl_dsubl. * sysdeps/ieee754/ldbl-opt/nldbl-compat.h (__nldbl_dsubl): New prototype. * manual/arith.texi (Misc FP Arithmetic): Document fsub, fsubl, dsubl, fMsubfN, fMsubfNx, fMxsubfN and fMxsubfNx. * math/auto-libm-test-in: Add tests of sub. * math/auto-libm-test-out-narrow-sub: New generated file. * math/libm-test-narrow-sub.inc: New file. * sysdeps/i386/fpu/s_f32xsubf64.c: Likewise. * sysdeps/ieee754/dbl-64/s_f32xsubf64.c: Likewise. * sysdeps/ieee754/dbl-64/s_fsub.c: Likewise. * sysdeps/ieee754/float128/s_f32subf128.c: Likewise. * sysdeps/ieee754/float128/s_f64subf128.c: Likewise. * sysdeps/ieee754/float128/s_f64xsubf128.c: Likewise. * sysdeps/ieee754/ldbl-128/s_dsubl.c: Likewise. * sysdeps/ieee754/ldbl-128/s_f64xsubf128.c: Likewise. * sysdeps/ieee754/ldbl-128/s_fsubl.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_dsubl.c: Likewise. * sysdeps/ieee754/ldbl-128ibm/s_fsubl.c: Likewise. * sysdeps/ieee754/ldbl-96/s_dsubl.c: Likewise. * sysdeps/ieee754/ldbl-96/s_fsubl.c: Likewise. * sysdeps/ieee754/ldbl-opt/nldbl-dsub.c: Likewise. * sysdeps/ieee754/ldbl-opt/nldbl-fsub.c: Likewise. * sysdeps/ieee754/soft-fp/s_dsubl.c: Likewise. * sysdeps/ieee754/soft-fp/s_fsub.c: Likewise. * sysdeps/ieee754/soft-fp/s_fsubl.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/tile/tilegx32/libm.abilist: Likewise. * sysdeps/unix/sysv/linux/tile/tilegx64/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:
parent
d473f01520
commit
8d3f9e85cf
73
ChangeLog
73
ChangeLog
@ -1,3 +1,76 @@
|
||||
2018-03-20 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* math/Makefile (libm-narrow-fns): Add sub.
|
||||
(libm-test-funcs-narrow): Likewise.
|
||||
* math/Versions (GLIBC_2.28): Add narrowing subtract functions.
|
||||
* math/bits/mathcalls-narrow.h (sub): Use __MATHCALL_NARROW.
|
||||
* math/gen-auto-libm-tests.c (test_functions): Add sub.
|
||||
* math/math-narrow.h (CHECK_NARROW_SUB): New macro.
|
||||
(NARROW_SUB_ROUND_TO_ODD): Likewise.
|
||||
(NARROW_SUB_TRIVIAL): Likewise.
|
||||
* sysdeps/ieee754/float128/float128_private.h (__fsubl): New
|
||||
macro.
|
||||
(__dsubl): Likewise.
|
||||
* sysdeps/ieee754/ldbl-opt/Makefile (libnldbl-calls): Add fsub and
|
||||
dsub.
|
||||
(CFLAGS-nldbl-dsub.c): New variable.
|
||||
(CFLAGS-nldbl-fsub.c): Likewise.
|
||||
* sysdeps/ieee754/ldbl-opt/Versions (GLIBC_2.28): Add
|
||||
__nldbl_dsubl.
|
||||
* sysdeps/ieee754/ldbl-opt/nldbl-compat.h (__nldbl_dsubl): New
|
||||
prototype.
|
||||
* manual/arith.texi (Misc FP Arithmetic): Document fsub, fsubl,
|
||||
dsubl, fMsubfN, fMsubfNx, fMxsubfN and fMxsubfNx.
|
||||
* math/auto-libm-test-in: Add tests of sub.
|
||||
* math/auto-libm-test-out-narrow-sub: New generated file.
|
||||
* math/libm-test-narrow-sub.inc: New file.
|
||||
* sysdeps/i386/fpu/s_f32xsubf64.c: Likewise.
|
||||
* sysdeps/ieee754/dbl-64/s_f32xsubf64.c: Likewise.
|
||||
* sysdeps/ieee754/dbl-64/s_fsub.c: Likewise.
|
||||
* sysdeps/ieee754/float128/s_f32subf128.c: Likewise.
|
||||
* sysdeps/ieee754/float128/s_f64subf128.c: Likewise.
|
||||
* sysdeps/ieee754/float128/s_f64xsubf128.c: Likewise.
|
||||
* sysdeps/ieee754/ldbl-128/s_dsubl.c: Likewise.
|
||||
* sysdeps/ieee754/ldbl-128/s_f64xsubf128.c: Likewise.
|
||||
* sysdeps/ieee754/ldbl-128/s_fsubl.c: Likewise.
|
||||
* sysdeps/ieee754/ldbl-128ibm/s_dsubl.c: Likewise.
|
||||
* sysdeps/ieee754/ldbl-128ibm/s_fsubl.c: Likewise.
|
||||
* sysdeps/ieee754/ldbl-96/s_dsubl.c: Likewise.
|
||||
* sysdeps/ieee754/ldbl-96/s_fsubl.c: Likewise.
|
||||
* sysdeps/ieee754/ldbl-opt/nldbl-dsub.c: Likewise.
|
||||
* sysdeps/ieee754/ldbl-opt/nldbl-fsub.c: Likewise.
|
||||
* sysdeps/ieee754/soft-fp/s_dsubl.c: Likewise.
|
||||
* sysdeps/ieee754/soft-fp/s_fsub.c: Likewise.
|
||||
* sysdeps/ieee754/soft-fp/s_fsubl.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/tile/tilegx32/libm.abilist: Likewise.
|
||||
* sysdeps/unix/sysv/linux/tile/tilegx64/libm.abilist: Likewise.
|
||||
* sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise.
|
||||
* sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise.
|
||||
|
||||
2018-03-19 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
[BZ #20079]
|
||||
|
3
NEWS
3
NEWS
@ -15,6 +15,9 @@ Major new features:
|
||||
- fadd, faddl, daddl and corresponding fMaddfN, fMaddfNx, fMxaddfN and
|
||||
fMxaddfNx functions.
|
||||
|
||||
- fsub, fsubl, dsubl and corresponding fMsubfN, fMsubfNx, fMxsubfN and
|
||||
fMxsubfNx 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.
|
||||
|
@ -2210,6 +2210,25 @@ function without any intermediate rounding to the type of the
|
||||
arguments.
|
||||
@end deftypefun
|
||||
|
||||
@deftypefun float fsub (double @var{x}, double @var{y})
|
||||
@deftypefunx float fsubl (long double @var{x}, long double @var{y})
|
||||
@deftypefunx double dsubl (long double @var{x}, long double @var{y})
|
||||
@deftypefunx _FloatM fMsubfN (_Float@var{N} @var{x}, _Float@var{N} @var{y})
|
||||
@deftypefunx _FloatM fMsubfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y})
|
||||
@deftypefunx _FloatMx fMxsubfN (_Float@var{N} @var{x}, _Float@var{N} @var{y})
|
||||
@deftypefunx _FloatMx fMxsubfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y})
|
||||
@standards{TS 18661-1:2014, math.h}
|
||||
@standardsx{fMsubfN, TS 18661-3:2015, math.h}
|
||||
@standardsx{fMsubfNx, TS 18661-3:2015, math.h}
|
||||
@standardsx{fMxsubfN, TS 18661-3:2015, math.h}
|
||||
@standardsx{fMxsubfNx, 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
|
||||
|
@ -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
|
||||
libm-narrow-fns = add 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
|
||||
libm-test-funcs-narrow = add 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)
|
||||
|
@ -555,9 +555,14 @@ libm {
|
||||
# Functions not involving _Float64x or _Float128, for all configurations.
|
||||
fadd; faddl; daddl;
|
||||
f32addf32x; f32addf64; f32xaddf64;
|
||||
fsub; fsubl; dsubl;
|
||||
f32subf32x; f32subf64; f32xsubf64;
|
||||
# Functions involving _Float64x or _Float128, for some configurations.
|
||||
f32addf64x; f32addf128;
|
||||
f32xaddf64x; f32xaddf128; f64addf64x; f64addf128;
|
||||
f64xaddf128;
|
||||
f32subf64x; f32subf128;
|
||||
f32xsubf64x; f32xsubf128; f64subf64x; f64subf128;
|
||||
f64xsubf128;
|
||||
}
|
||||
}
|
||||
|
@ -7195,6 +7195,101 @@ sinh 0x2.c5d37700c6bb03a8p+12 no-test-inline
|
||||
sinh 0x2.c5d37700c6bb03a6c24b6c9b494cp+12 no-test-inline
|
||||
sinh 0x2.c5d37700c6bb03a6c24b6c9b494ep+12 no-test-inline
|
||||
|
||||
sub 0 0
|
||||
sub 0 -0
|
||||
sub -0 0
|
||||
sub -0 -0
|
||||
sub max max
|
||||
sub max -max
|
||||
sub -max max
|
||||
sub -max -max
|
||||
sub min min missing-underflow:arg-ibm128
|
||||
sub min -min missing-underflow:arg-ibm128
|
||||
sub -min min missing-underflow:arg-ibm128
|
||||
sub -min -min missing-underflow:arg-ibm128
|
||||
sub min_subnorm min_subnorm missing-underflow:arg-ibm128
|
||||
sub min_subnorm -min_subnorm missing-underflow:arg-ibm128
|
||||
sub -min_subnorm min_subnorm missing-underflow:arg-ibm128
|
||||
sub -min_subnorm -min_subnorm missing-underflow:arg-ibm128
|
||||
sub 1 2
|
||||
sub 1 -2
|
||||
sub -1 2
|
||||
sub -1 -2
|
||||
sub 100.5 0.75
|
||||
sub 100.5 -0.75
|
||||
sub -100.5 0.75
|
||||
sub -100.5 -0.75
|
||||
sub 1 0x1p-23
|
||||
sub 1 0x1.7fp-23
|
||||
sub 1 0x1.8p-23
|
||||
sub 1 0x1.81p-23
|
||||
sub 1 0x1p-24
|
||||
sub 1 0x1.1p-24
|
||||
sub 1 0x0.fp-24
|
||||
sub 1 min
|
||||
sub 1 -min
|
||||
sub 1 min_subnorm
|
||||
sub 1 -min_subnorm
|
||||
sub -1 min
|
||||
sub -1 -min
|
||||
sub -1 min_subnorm
|
||||
sub -1 -min_subnorm
|
||||
# Cases where larger argument is half way between two values of a
|
||||
# floating-point format, so that double rounding would sometimes yield
|
||||
# the wrong result.
|
||||
sub 0x1.000001p0 min
|
||||
sub 0x1.000001p0 -min
|
||||
sub 0x1.000001p0 min_subnorm
|
||||
sub 0x1.000001p0 -min_subnorm
|
||||
sub -0x1.000001p0 min
|
||||
sub -0x1.000001p0 -min
|
||||
sub -0x1.000001p0 min_subnorm
|
||||
sub -0x1.000001p0 -min_subnorm
|
||||
sub 0x1.00000000000008p0 min
|
||||
sub 0x1.00000000000008p0 -min
|
||||
sub 0x1.00000000000008p0 min_subnorm
|
||||
sub 0x1.00000000000008p0 -min_subnorm
|
||||
sub -0x1.00000000000008p0 min
|
||||
sub -0x1.00000000000008p0 -min
|
||||
sub -0x1.00000000000008p0 min_subnorm
|
||||
sub -0x1.00000000000008p0 -min_subnorm
|
||||
sub 0x1.0000000000000001p0 min
|
||||
sub 0x1.0000000000000001p0 -min
|
||||
sub 0x1.0000000000000001p0 min_subnorm
|
||||
sub 0x1.0000000000000001p0 -min_subnorm
|
||||
sub -0x1.0000000000000001p0 min
|
||||
sub -0x1.0000000000000001p0 -min
|
||||
sub -0x1.0000000000000001p0 min_subnorm
|
||||
sub -0x1.0000000000000001p0 -min_subnorm
|
||||
# Two values representable in the same format with difference very
|
||||
# close to half way between two representable values. In particular,
|
||||
# verify that there is no intermediate rounding to 64 bits when
|
||||
# subtracting two double values.
|
||||
sub 1 0x1.000002p-24
|
||||
sub 1 -0x1.000002p-24
|
||||
sub 1 0x0.ffffffp-24
|
||||
sub 1 -0x0.ffffffp-24
|
||||
sub 0x1.000002p0 0x1.000002p-24
|
||||
sub 0x1.000002p0 -0x1.000002p-24
|
||||
sub 0x1.000002p0 0x0.ffffffp-24
|
||||
sub 0x1.000002p0 -0x0.ffffffp-24
|
||||
sub 1 0x1.0000000000001p-53
|
||||
sub 1 -0x1.0000000000001p-53
|
||||
sub 1 0x0.fffffffffffff8p-53
|
||||
sub 1 -0x0.fffffffffffff8p-53
|
||||
sub 0x1.0000000000001p0 0x1.0000000000001p-53
|
||||
sub 0x1.0000000000001p0 -0x1.0000000000001p-53
|
||||
sub 0x1.0000000000001p0 0x0.fffffffffffff8p-53
|
||||
sub 0x1.0000000000001p0 -0x0.fffffffffffff8p-53
|
||||
sub 1 0x1.0000000000000002p-64
|
||||
sub 1 -0x1.0000000000000002p-64
|
||||
sub 1 0x0.ffffffffffffffffp-64
|
||||
sub 1 -0x0.ffffffffffffffffp-64
|
||||
sub 0x1.0000000000000002p0 0x1.0000000000000002p-64
|
||||
sub 0x1.0000000000000002p0 -0x1.0000000000000002p-64
|
||||
sub 0x1.0000000000000002p0 0x0.ffffffffffffffffp-64
|
||||
sub 0x1.0000000000000002p0 -0x0.ffffffffffffffffp-64
|
||||
|
||||
sqrt 0
|
||||
sqrt -0
|
||||
sqrt 2209
|
||||
|
23487
math/auto-libm-test-out-narrow-sub
Normal file
23487
math/auto-libm-test-out-narrow-sub
Normal file
File diff suppressed because it is too large
Load Diff
@ -22,3 +22,6 @@
|
||||
|
||||
/* Add. */
|
||||
__MATHCALL_NARROW (__MATHCALL_NAME (add), __MATHCALL_REDIR_NAME (add), 2);
|
||||
|
||||
/* Subtract. */
|
||||
__MATHCALL_NARROW (__MATHCALL_NAME (sub), __MATHCALL_REDIR_NAME (sub), 2);
|
||||
|
@ -584,6 +584,7 @@ static test_function test_functions[] =
|
||||
FUNC ("sincos", ARGS1 (type_fp), RET2 (type_fp, type_fp), false, false,
|
||||
false, CALC (mpfr_f_11, mpfr_sin_cos)),
|
||||
FUNC_mpfr_f_f ("sinh", mpfr_sinh, false),
|
||||
FUNC_mpfr_ff_f ("sub", mpfr_sub, true),
|
||||
FUNC_mpfr_f_f ("sqrt", mpfr_sqrt, true),
|
||||
FUNC_mpfr_f_f ("tan", mpfr_tan, false),
|
||||
FUNC_mpfr_f_f ("tanh", mpfr_tanh, false),
|
||||
|
179
math/libm-test-narrow-sub.inc
Normal file
179
math/libm-test-narrow-sub.inc
Normal file
@ -0,0 +1,179 @@
|
||||
/* Test narrowing subtract.
|
||||
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 sub_test_data[] =
|
||||
{
|
||||
TEST_aa_f (sub, arg_qnan_value, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_qnan_value, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_qnan_value, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_qnan_value, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_qnan_value, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_qnan_value, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, -arg_qnan_value, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, -arg_qnan_value, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_snan_value, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_snan_value, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, -arg_snan_value, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, -arg_snan_value, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_snan_value, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_snan_value, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, -arg_snan_value, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, -arg_snan_value, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
|
||||
TEST_aa_f (sub, arg_qnan_value, arg_plus_zero, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_qnan_value, arg_minus_zero, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_qnan_value, arg_plus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_qnan_value, arg_minus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_qnan_value, arg_min_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_qnan_value, -arg_min_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_qnan_value, arg_min_subnorm_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_qnan_value, -arg_min_subnorm_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_qnan_value, arg_max_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_qnan_value, -arg_max_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_plus_zero, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_minus_zero, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_plus_infty, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_minus_infty, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_min_value, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_min_value, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_min_subnorm_value, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_min_subnorm_value, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_max_value, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_max_value, arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_qnan_value, arg_plus_zero, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_qnan_value, arg_minus_zero, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_qnan_value, arg_plus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_qnan_value, arg_minus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_qnan_value, arg_min_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_qnan_value, -arg_min_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_qnan_value, arg_min_subnorm_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_qnan_value, -arg_min_subnorm_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_qnan_value, arg_max_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_qnan_value, -arg_max_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_plus_zero, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_minus_zero, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_plus_infty, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_minus_infty, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_min_value, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_min_value, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_min_subnorm_value, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_min_subnorm_value, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_max_value, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_max_value, -arg_qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
|
||||
TEST_aa_f (sub, arg_snan_value, arg_plus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_snan_value, arg_minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_snan_value, arg_plus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_snan_value, arg_minus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_snan_value, arg_min_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_snan_value, -arg_min_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_snan_value, arg_min_subnorm_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_snan_value, -arg_min_subnorm_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_snan_value, arg_max_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_snan_value, -arg_max_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_plus_zero, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_minus_zero, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_plus_infty, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_minus_infty, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_min_value, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, -arg_min_value, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_min_subnorm_value, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, -arg_min_subnorm_value, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_max_value, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, -arg_max_value, arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, -arg_snan_value, arg_plus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, -arg_snan_value, arg_minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, -arg_snan_value, arg_plus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, -arg_snan_value, arg_minus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, -arg_snan_value, arg_min_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, -arg_snan_value, -arg_min_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, -arg_snan_value, arg_min_subnorm_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, -arg_snan_value, -arg_min_subnorm_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, -arg_snan_value, arg_max_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, -arg_snan_value, -arg_max_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_plus_zero, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_minus_zero, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_plus_infty, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_minus_infty, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_min_value, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, -arg_min_value, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_min_subnorm_value, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, -arg_min_subnorm_value, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, arg_max_value, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
TEST_aa_f (sub, -arg_max_value, -arg_snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION),
|
||||
|
||||
TEST_aa_f (sub, arg_plus_infty, arg_plus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
|
||||
TEST_aa_f (sub, arg_plus_infty, arg_minus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_minus_infty, arg_plus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_minus_infty, arg_minus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
|
||||
|
||||
TEST_aa_f (sub, arg_plus_infty, arg_plus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_plus_infty, arg_minus_zero, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_plus_infty, arg_min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_plus_infty, -arg_min_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_plus_infty, arg_min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_plus_infty, -arg_min_subnorm_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_plus_infty, arg_max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
|
||||
TEST_aa_f (sub, arg_plus_infty, -arg_max_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
|
||||
TEST_aa_f (sub, arg_plus_zero, arg_plus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_minus_zero, arg_plus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_min_value, arg_plus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_min_value, arg_plus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_min_subnorm_value, arg_plus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_min_subnorm_value, arg_plus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_max_value, arg_plus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_max_value, arg_plus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_minus_infty, arg_plus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_minus_infty, arg_minus_zero, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_minus_infty, arg_min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_minus_infty, -arg_min_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_minus_infty, arg_min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_minus_infty, -arg_min_subnorm_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_minus_infty, arg_max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
|
||||
TEST_aa_f (sub, arg_minus_infty, -arg_max_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_ROUNDING_IBM128_LIBGCC),
|
||||
TEST_aa_f (sub, arg_plus_zero, arg_minus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_minus_zero, arg_minus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_min_value, arg_minus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_min_value, arg_minus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_min_subnorm_value, arg_minus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_min_subnorm_value, arg_minus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, arg_max_value, arg_minus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
TEST_aa_f (sub, -arg_max_value, arg_minus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||
|
||||
AUTO_TESTS_aa_f (sub),
|
||||
};
|
||||
|
||||
static void
|
||||
sub_test (void)
|
||||
{
|
||||
ALL_RM_TEST (sub, 1, sub_test_data, RUN_TEST_LOOP_aa_f, END);
|
||||
}
|
||||
|
||||
static void
|
||||
do_test (void)
|
||||
{
|
||||
sub_test ();
|
||||
}
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* mode:c
|
||||
* End:
|
||||
*/
|
@ -107,6 +107,64 @@
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* Check for error conditions from a narrowing subtract function
|
||||
returning RET with arguments X and Y and set errno as needed.
|
||||
Overflow and underflow can occur for finite arguments and a domain
|
||||
error for infinite ones. */
|
||||
#define CHECK_NARROW_SUB(RET, X, Y) \
|
||||
do \
|
||||
{ \
|
||||
if (!isfinite (RET)) \
|
||||
{ \
|
||||
if (isnan (RET)) \
|
||||
{ \
|
||||
if (!isnan (X) && !isnan (Y)) \
|
||||
__set_errno (EDOM); \
|
||||
} \
|
||||
else if (isfinite (X) && isfinite (Y)) \
|
||||
__set_errno (ERANGE); \
|
||||
} \
|
||||
else if ((RET) == 0 && (X) != (Y)) \
|
||||
__set_errno (ERANGE); \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* Implement narrowing subtract 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_SUB_ROUND_TO_ODD(X, Y, TYPE, UNION, SUFFIX, MANTISSA) \
|
||||
do \
|
||||
{ \
|
||||
TYPE ret; \
|
||||
\
|
||||
/* Ensure a zero result is computed in the original rounding \
|
||||
mode. */ \
|
||||
if ((X) == (Y)) \
|
||||
ret = (TYPE) ((X) - (Y)); \
|
||||
else \
|
||||
ret = (TYPE) ROUND_TO_ODD (math_opt_barrier (X) - (Y), \
|
||||
UNION, SUFFIX, MANTISSA); \
|
||||
\
|
||||
CHECK_NARROW_SUB (ret, (X), (Y)); \
|
||||
return ret; \
|
||||
} \
|
||||
while (0)
|
||||
|
||||
/* Implement a narrowing subtract 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_SUB_TRIVIAL(X, Y, TYPE) \
|
||||
do \
|
||||
{ \
|
||||
TYPE ret; \
|
||||
\
|
||||
ret = (TYPE) ((X) - (Y)); \
|
||||
CHECK_NARROW_SUB (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
|
||||
|
41
sysdeps/i386/fpu/s_f32xsubf64.c
Normal file
41
sysdeps/i386/fpu/s_f32xsubf64.c
Normal file
@ -0,0 +1,41 @@
|
||||
/* Subtract _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 <fpu_control.h>
|
||||
#include <math_private.h>
|
||||
#include <math-narrow.h>
|
||||
|
||||
_Float32x
|
||||
__f32xsubf64 (_Float64 x, _Float64 y)
|
||||
{
|
||||
/* To avoid double rounding, set double precision for the subtraction.
|
||||
math_narrow_eval is still needed to eliminate excess range in the
|
||||
case of overflow. If the result of the subtraction is in the
|
||||
subnormal range for double, it is exact, so no issues of double
|
||||
rounding for subnormals arise. */
|
||||
fpu_control_t cw, cw_double;
|
||||
_FPU_GETCW (cw);
|
||||
cw_double = (cw & ~_FPU_EXTENDED) | _FPU_DOUBLE;
|
||||
_FPU_SETCW (cw_double);
|
||||
_Float32x ret = math_narrow_eval (x - y);
|
||||
_FPU_SETCW (cw);
|
||||
CHECK_NARROW_SUB (ret, x, y);
|
||||
return ret;
|
||||
}
|
||||
libm_alias_float32x_float64 (sub)
|
30
sysdeps/ieee754/dbl-64/s_f32xsubf64.c
Normal file
30
sysdeps/ieee754/dbl-64/s_f32xsubf64.c
Normal file
@ -0,0 +1,30 @@
|
||||
/* Subtract _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 dsubl __hide_dsubl
|
||||
#include <math.h>
|
||||
#undef dsubl
|
||||
|
||||
#include <math-narrow.h>
|
||||
|
||||
_Float32x
|
||||
__f32xsubf64 (_Float64 x, _Float64 y)
|
||||
{
|
||||
NARROW_SUB_TRIVIAL (x, y, _Float32x);
|
||||
}
|
||||
libm_alias_float32x_float64 (sub)
|
34
sysdeps/ieee754/dbl-64/s_fsub.c
Normal file
34
sysdeps/ieee754/dbl-64/s_fsub.c
Normal file
@ -0,0 +1,34 @@
|
||||
/* Subtract 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 f32subf64 __hide_f32subf64
|
||||
#define f32subf32x __hide_f32subf32x
|
||||
#define fsubl __hide_fsubl
|
||||
#include <math.h>
|
||||
#undef f32subf64
|
||||
#undef f32subf32x
|
||||
#undef fsubl
|
||||
|
||||
#include <math-narrow.h>
|
||||
|
||||
float
|
||||
__fsub (double x, double y)
|
||||
{
|
||||
NARROW_SUB_ROUND_TO_ODD (x, y, float, union ieee754_double, , mantissa1);
|
||||
}
|
||||
libm_alias_float_double (sub)
|
@ -258,6 +258,8 @@
|
||||
|
||||
#define __faddl __f32addf128
|
||||
#define __daddl __f64addf128
|
||||
#define __fsubl __f32subf128
|
||||
#define __dsubl __f64subf128
|
||||
|
||||
/* __nexttowardf128 is not _Float128 API. */
|
||||
#define __nexttowardl __nexttowardf128_do_not_use
|
||||
|
6
sysdeps/ieee754/float128/s_f32subf128.c
Normal file
6
sysdeps/ieee754/float128/s_f32subf128.c
Normal file
@ -0,0 +1,6 @@
|
||||
#define f32subf64x __hide_f32subf64x
|
||||
#define f32subf128 __hide_f32subf128
|
||||
#include <float128_private.h>
|
||||
#undef f32subf64x
|
||||
#undef f32subf128
|
||||
#include "../ldbl-128/s_fsubl.c"
|
10
sysdeps/ieee754/float128/s_f64subf128.c
Normal file
10
sysdeps/ieee754/float128/s_f64subf128.c
Normal file
@ -0,0 +1,10 @@
|
||||
#define f32xsubf64x __hide_f32xsubf64x
|
||||
#define f32xsubf128 __hide_f32xsubf128
|
||||
#define f64subf64x __hide_f64subf64x
|
||||
#define f64subf128 __hide_f64subf128
|
||||
#include <float128_private.h>
|
||||
#undef f32xsubf64x
|
||||
#undef f32xsubf128
|
||||
#undef f64subf64x
|
||||
#undef f64subf128
|
||||
#include "../ldbl-128/s_dsubl.c"
|
2
sysdeps/ieee754/float128/s_f64xsubf128.c
Normal file
2
sysdeps/ieee754/float128/s_f64xsubf128.c
Normal file
@ -0,0 +1,2 @@
|
||||
#include <float128_private.h>
|
||||
#include "../ldbl-128/s_f64xsubf128.c"
|
37
sysdeps/ieee754/ldbl-128/s_dsubl.c
Normal file
37
sysdeps/ieee754/ldbl-128/s_dsubl.c
Normal file
@ -0,0 +1,37 @@
|
||||
/* Subtract 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 f32xsubf64x __hide_f32xsubf64x
|
||||
#define f32xsubf128 __hide_f32xsubf128
|
||||
#define f64subf64x __hide_f64subf64x
|
||||
#define f64subf128 __hide_f64subf128
|
||||
#include <math.h>
|
||||
#undef f32xsubf64x
|
||||
#undef f32xsubf128
|
||||
#undef f64subf64x
|
||||
#undef f64subf128
|
||||
|
||||
#include <math-narrow.h>
|
||||
|
||||
double
|
||||
__dsubl (_Float128 x, _Float128 y)
|
||||
{
|
||||
NARROW_SUB_ROUND_TO_ODD (x, y, double, union ieee854_long_double, l,
|
||||
mantissa3);
|
||||
}
|
||||
libm_alias_double_ldouble (sub)
|
38
sysdeps/ieee754/ldbl-128/s_f64xsubf128.c
Normal file
38
sysdeps/ieee754/ldbl-128/s_f64xsubf128.c
Normal file
@ -0,0 +1,38 @@
|
||||
/* Subtract _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
|
||||
__f64xsubf128 (_Float128 x, _Float128 y)
|
||||
{
|
||||
#if __HAVE_FLOAT64X_LONG_DOUBLE && __HAVE_DISTINCT_FLOAT128
|
||||
NARROW_SUB_ROUND_TO_ODD (x, y, _Float64x, union ieee854_long_double, l,
|
||||
mantissa3);
|
||||
#else
|
||||
NARROW_SUB_TRIVIAL (x, y, _Float64x);
|
||||
#endif
|
||||
}
|
||||
libm_alias_float64x_float128 (sub)
|
33
sysdeps/ieee754/ldbl-128/s_fsubl.c
Normal file
33
sysdeps/ieee754/ldbl-128/s_fsubl.c
Normal file
@ -0,0 +1,33 @@
|
||||
/* Subtract 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 f32subf64x __hide_f32subf64x
|
||||
#define f32subf128 __hide_f32subf128
|
||||
#include <math.h>
|
||||
#undef f32subf64x
|
||||
#undef f32subf128
|
||||
|
||||
#include <math-narrow.h>
|
||||
|
||||
float
|
||||
__fsubl (_Float128 x, _Float128 y)
|
||||
{
|
||||
NARROW_SUB_ROUND_TO_ODD (x, y, float, union ieee854_long_double, l,
|
||||
mantissa3);
|
||||
}
|
||||
libm_alias_float_ldouble (sub)
|
27
sysdeps/ieee754/ldbl-128ibm/s_dsubl.c
Normal file
27
sysdeps/ieee754/ldbl-128ibm/s_dsubl.c
Normal file
@ -0,0 +1,27 @@
|
||||
/* Subtract 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
|
||||
__dsubl (long double x, long double y)
|
||||
{
|
||||
NARROW_SUB_TRIVIAL (x, y, double);
|
||||
}
|
||||
libm_alias_double_ldouble (sub)
|
27
sysdeps/ieee754/ldbl-128ibm/s_fsubl.c
Normal file
27
sysdeps/ieee754/ldbl-128ibm/s_fsubl.c
Normal file
@ -0,0 +1,27 @@
|
||||
/* Subtract 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
|
||||
__fsubl (long double x, long double y)
|
||||
{
|
||||
NARROW_SUB_TRIVIAL (x, y, float);
|
||||
}
|
||||
libm_alias_float_ldouble (sub)
|
33
sysdeps/ieee754/ldbl-96/s_dsubl.c
Normal file
33
sysdeps/ieee754/ldbl-96/s_dsubl.c
Normal file
@ -0,0 +1,33 @@
|
||||
/* Subtract 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 f32xsubf64x __hide_f32xsubf64x
|
||||
#define f64subf64x __hide_f64subf64x
|
||||
#include <math.h>
|
||||
#undef f32xsubf64x
|
||||
#undef f64subf64x
|
||||
|
||||
#include <math-narrow.h>
|
||||
|
||||
double
|
||||
__dsubl (long double x, long double y)
|
||||
{
|
||||
NARROW_SUB_ROUND_TO_ODD (x, y, double, union ieee854_long_double, l,
|
||||
mantissa1);
|
||||
}
|
||||
libm_alias_double_ldouble (sub)
|
31
sysdeps/ieee754/ldbl-96/s_fsubl.c
Normal file
31
sysdeps/ieee754/ldbl-96/s_fsubl.c
Normal file
@ -0,0 +1,31 @@
|
||||
/* Subtract 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 f32subf64x __hide_f32subf64x
|
||||
#include <math.h>
|
||||
#undef f32subf64x
|
||||
|
||||
#include <math-narrow.h>
|
||||
|
||||
float
|
||||
__fsubl (long double x, long double y)
|
||||
{
|
||||
NARROW_SUB_ROUND_TO_ODD (x, y, float, union ieee854_long_double, l,
|
||||
mantissa1);
|
||||
}
|
||||
libm_alias_float_ldouble (sub)
|
@ -44,7 +44,8 @@ libnldbl-calls = asprintf dprintf fprintf fscanf fwprintf fwscanf iovfscanf \
|
||||
isoc99_vwscanf isoc99_vfwscanf isoc99_vswscanf \
|
||||
nextup nextdown totalorder totalordermag getpayload \
|
||||
canonicalize setpayload setpayloadsig llogb fmaxmag fminmag \
|
||||
roundeven fromfp ufromfp fromfpx ufromfpx fadd dadd
|
||||
roundeven fromfp ufromfp fromfpx ufromfpx fadd dadd \
|
||||
fsub dsub
|
||||
libnldbl-routines = $(libnldbl-calls:%=nldbl-%)
|
||||
libnldbl-inhibit-o = $(object-suffixes)
|
||||
libnldbl-static-only-routines = $(libnldbl-routines)
|
||||
@ -87,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-dsub.c = -fno-builtin-dsubl
|
||||
CFLAGS-nldbl-erf.c = -fno-builtin-erfl
|
||||
CFLAGS-nldbl-erfc.c = -fno-builtin-erfcl
|
||||
CFLAGS-nldbl-exp.c = -fno-builtin-expl
|
||||
@ -107,6 +109,7 @@ CFLAGS-nldbl-fmod.c = -fno-builtin-fmodl
|
||||
CFLAGS-nldbl-frexp.c = -fno-builtin-frexpl
|
||||
CFLAGS-nldbl-fromfp.c = -fno-builtin-fromfpl
|
||||
CFLAGS-nldbl-fromfpx.c = -fno-builtin-fromfpxl
|
||||
CFLAGS-nldbl-fsub.c = -fno-builtin-fsubl
|
||||
CFLAGS-nldbl-gamma.c = -fno-builtin-gammal
|
||||
CFLAGS-nldbl-getpayload.c = -fno-builtin-getpayloadl
|
||||
CFLAGS-nldbl-hypot.c = -fno-builtin-hypotl
|
||||
|
@ -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_daddl; __nldbl_dsubl;
|
||||
}
|
||||
}
|
||||
|
@ -104,5 +104,6 @@ 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_dsubl (double, double) __THROW;
|
||||
|
||||
#endif /* __NLDBL_COMPAT_H */
|
||||
|
28
sysdeps/ieee754/ldbl-opt/nldbl-dsub.c
Normal file
28
sysdeps/ieee754/ldbl-opt/nldbl-dsub.c
Normal file
@ -0,0 +1,28 @@
|
||||
/* Compatibility routine for IEEE double as long double for dsub.
|
||||
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 dsubl __hide_dsubl
|
||||
#include "nldbl-compat.h"
|
||||
#undef dsubl
|
||||
|
||||
double
|
||||
attribute_hidden
|
||||
dsubl (double x, double y)
|
||||
{
|
||||
return __nldbl_dsubl (x, y);
|
||||
}
|
28
sysdeps/ieee754/ldbl-opt/nldbl-fsub.c
Normal file
28
sysdeps/ieee754/ldbl-opt/nldbl-fsub.c
Normal file
@ -0,0 +1,28 @@
|
||||
/* Compatibility routine for IEEE double as long double for fsub.
|
||||
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 fsubl __hide_fsubl
|
||||
#include "nldbl-compat.h"
|
||||
#undef fsubl
|
||||
|
||||
float
|
||||
attribute_hidden
|
||||
fsubl (double x, double y)
|
||||
{
|
||||
return fsub (x, y);
|
||||
}
|
59
sysdeps/ieee754/soft-fp/s_dsubl.c
Normal file
59
sysdeps/ieee754/soft-fp/s_dsubl.c
Normal file
@ -0,0 +1,59 @@
|
||||
/* Subtract 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 f32xsubf64x __hide_f32xsubf64x
|
||||
#define f32xsubf128 __hide_f32xsubf128
|
||||
#define f64subf64x __hide_f64subf64x
|
||||
#define f64subf128 __hide_f64subf128
|
||||
#include <math.h>
|
||||
#undef f32xsubf64x
|
||||
#undef f32xsubf128
|
||||
#undef f64subf64x
|
||||
#undef f64subf128
|
||||
|
||||
#include <math-narrow.h>
|
||||
#include <soft-fp.h>
|
||||
#include <double.h>
|
||||
#include <quad.h>
|
||||
|
||||
double
|
||||
__dsubl (_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_SEMIRAW_Q (X, x);
|
||||
FP_UNPACK_SEMIRAW_Q (Y, y);
|
||||
FP_SUB_Q (R, X, Y);
|
||||
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
|
||||
FP_TRUNC (D, Q, 2, 4, RN, R);
|
||||
#else
|
||||
FP_TRUNC (D, Q, 1, 2, RN, R);
|
||||
#endif
|
||||
FP_PACK_SEMIRAW_D (ret, RN);
|
||||
FP_HANDLE_EXCEPTIONS;
|
||||
CHECK_NARROW_SUB (ret, x, y);
|
||||
return ret;
|
||||
}
|
||||
libm_alias_double_ldouble (sub)
|
56
sysdeps/ieee754/soft-fp/s_fsub.c
Normal file
56
sysdeps/ieee754/soft-fp/s_fsub.c
Normal file
@ -0,0 +1,56 @@
|
||||
/* Subtract 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 f32subf64 __hide_f32subf64
|
||||
#define f32subf32x __hide_f32subf32x
|
||||
#define fsubl __hide_fsubl
|
||||
#include <math.h>
|
||||
#undef f32subf64
|
||||
#undef f32subf32x
|
||||
#undef fsubl
|
||||
|
||||
#include <math-narrow.h>
|
||||
#include <soft-fp.h>
|
||||
#include <single.h>
|
||||
#include <double.h>
|
||||
|
||||
float
|
||||
__fsub (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_SEMIRAW_D (X, x);
|
||||
FP_UNPACK_SEMIRAW_D (Y, y);
|
||||
FP_SUB_D (R, X, Y);
|
||||
#if _FP_W_TYPE_SIZE < _FP_FRACBITS_D
|
||||
FP_TRUNC (S, D, 1, 2, RN, R);
|
||||
#else
|
||||
FP_TRUNC (S, D, 1, 1, RN, R);
|
||||
#endif
|
||||
FP_PACK_SEMIRAW_S (ret, RN);
|
||||
FP_HANDLE_EXCEPTIONS;
|
||||
CHECK_NARROW_SUB (ret, x, y);
|
||||
return ret;
|
||||
}
|
||||
libm_alias_float_double (sub)
|
55
sysdeps/ieee754/soft-fp/s_fsubl.c
Normal file
55
sysdeps/ieee754/soft-fp/s_fsubl.c
Normal file
@ -0,0 +1,55 @@
|
||||
/* Subtract 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 f32subf64x __hide_f32subf64x
|
||||
#define f32subf128 __hide_f32subf128
|
||||
#include <math.h>
|
||||
#undef f32subf64x
|
||||
#undef f32subf128
|
||||
|
||||
#include <math-narrow.h>
|
||||
#include <soft-fp.h>
|
||||
#include <single.h>
|
||||
#include <quad.h>
|
||||
|
||||
float
|
||||
__fsubl (_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_SEMIRAW_Q (X, x);
|
||||
FP_UNPACK_SEMIRAW_Q (Y, y);
|
||||
FP_SUB_Q (R, X, Y);
|
||||
#if (2 * _FP_W_TYPE_SIZE) < _FP_FRACBITS_Q
|
||||
FP_TRUNC (S, Q, 1, 4, RN, R);
|
||||
#else
|
||||
FP_TRUNC (S, Q, 1, 2, RN, R);
|
||||
#endif
|
||||
FP_PACK_SEMIRAW_S (ret, RN);
|
||||
FP_HANDLE_EXCEPTIONS;
|
||||
CHECK_NARROW_SUB (ret, x, y);
|
||||
return ret;
|
||||
}
|
||||
libm_alias_float_ldouble (sub)
|
@ -1026,16 +1026,29 @@ GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.27 ynf64x F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 daddl 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 f32subf128 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32subf64x F
|
||||
GLIBC_2.28 f32xaddf128 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xaddf64x F
|
||||
GLIBC_2.28 f32xsubf128 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 f32xsubf64x F
|
||||
GLIBC_2.28 f64addf128 F
|
||||
GLIBC_2.28 f64addf64x F
|
||||
GLIBC_2.28 f64subf128 F
|
||||
GLIBC_2.28 f64subf64x F
|
||||
GLIBC_2.28 f64xaddf128 F
|
||||
GLIBC_2.28 f64xsubf128 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
GLIBC_2.4 GLIBC_2.4 A
|
||||
|
@ -2635,6 +2635,10 @@ Function: "sqrt_upward":
|
||||
ildouble: 1
|
||||
ldouble: 1
|
||||
|
||||
Function: "sub_ldouble":
|
||||
double: 1
|
||||
float: 1
|
||||
|
||||
Function: "tan":
|
||||
float: 3
|
||||
float128: 1
|
||||
|
@ -988,15 +988,28 @@ GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.27 ynf64x F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 daddl 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 f32subf128 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32subf64x F
|
||||
GLIBC_2.28 f32xaddf128 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xaddf64x F
|
||||
GLIBC_2.28 f32xsubf128 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 f32xsubf64x F
|
||||
GLIBC_2.28 f64addf128 F
|
||||
GLIBC_2.28 f64addf64x F
|
||||
GLIBC_2.28 f64subf128 F
|
||||
GLIBC_2.28 f64subf64x F
|
||||
GLIBC_2.28 f64xaddf128 F
|
||||
GLIBC_2.28 f64xsubf128 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
|
@ -998,19 +998,33 @@ GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.27 ynf64x F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 __nldbl_daddl F
|
||||
GLIBC_2.28 __nldbl_dsubl F
|
||||
GLIBC_2.28 daddl 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 f32subf128 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32subf64x F
|
||||
GLIBC_2.28 f32xaddf128 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xaddf64x F
|
||||
GLIBC_2.28 f32xsubf128 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 f32xsubf64x F
|
||||
GLIBC_2.28 f64addf128 F
|
||||
GLIBC_2.28 f64addf64x F
|
||||
GLIBC_2.28 f64subf128 F
|
||||
GLIBC_2.28 f64subf64x F
|
||||
GLIBC_2.28 f64xaddf128 F
|
||||
GLIBC_2.28 f64xsubf128 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
GLIBC_2.3.4 GLIBC_2.3.4 A
|
||||
GLIBC_2.3.4 __c1_cabsf F
|
||||
GLIBC_2.3.4 __c1_cacosf F
|
||||
|
@ -437,11 +437,17 @@ GLIBC_2.27 ynf32x F
|
||||
GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 daddl F
|
||||
GLIBC_2.28 dsubl F
|
||||
GLIBC_2.28 f32addf32x F
|
||||
GLIBC_2.28 f32addf64 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
GLIBC_2.4 GLIBC_2.4 A
|
||||
GLIBC_2.4 _LIB_VERSION D 0x4
|
||||
GLIBC_2.4 __clog10 F
|
||||
|
@ -749,10 +749,16 @@ GLIBC_2.27 ynf32x F
|
||||
GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 daddl F
|
||||
GLIBC_2.28 dsubl F
|
||||
GLIBC_2.28 f32addf32x F
|
||||
GLIBC_2.28 f32addf64 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
GLIBC_2.4 GLIBC_2.4 A
|
||||
GLIBC_2.4 exp2l F
|
||||
|
@ -1035,16 +1035,29 @@ GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.27 ynf64x F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 daddl 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 f32subf128 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32subf64x F
|
||||
GLIBC_2.28 f32xaddf128 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xaddf64x F
|
||||
GLIBC_2.28 f32xsubf128 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 f32xsubf64x F
|
||||
GLIBC_2.28 f64addf128 F
|
||||
GLIBC_2.28 f64addf64x F
|
||||
GLIBC_2.28 f64subf128 F
|
||||
GLIBC_2.28 f64subf64x F
|
||||
GLIBC_2.28 f64xaddf128 F
|
||||
GLIBC_2.28 f64xsubf128 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
GLIBC_2.4 GLIBC_2.4 A
|
||||
|
@ -964,16 +964,29 @@ GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.27 ynf64x F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 daddl 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 f32subf128 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32subf64x F
|
||||
GLIBC_2.28 f32xaddf128 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xaddf64x F
|
||||
GLIBC_2.28 f32xsubf128 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 f32xsubf64x F
|
||||
GLIBC_2.28 f64addf128 F
|
||||
GLIBC_2.28 f64addf64x F
|
||||
GLIBC_2.28 f64subf128 F
|
||||
GLIBC_2.28 f64subf64x F
|
||||
GLIBC_2.28 f64xaddf128 F
|
||||
GLIBC_2.28 f64xsubf128 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
GLIBC_2.4 GLIBC_2.4 A
|
||||
|
@ -437,11 +437,17 @@ GLIBC_2.27 ynf32x F
|
||||
GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 daddl F
|
||||
GLIBC_2.28 dsubl F
|
||||
GLIBC_2.28 f32addf32x F
|
||||
GLIBC_2.28 f32addf64 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
GLIBC_2.4 GLIBC_2.4 A
|
||||
GLIBC_2.4 _LIB_VERSION D 0x4
|
||||
GLIBC_2.4 __clog10 F
|
||||
|
@ -791,9 +791,15 @@ GLIBC_2.27 ynf32x F
|
||||
GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 daddl F
|
||||
GLIBC_2.28 dsubl F
|
||||
GLIBC_2.28 f32addf32x F
|
||||
GLIBC_2.28 f32addf64 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
GLIBC_2.4 GLIBC_2.4 A
|
||||
|
@ -748,8 +748,14 @@ GLIBC_2.27 ynf32x F
|
||||
GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 daddl F
|
||||
GLIBC_2.28 dsubl F
|
||||
GLIBC_2.28 f32addf32x F
|
||||
GLIBC_2.28 f32addf64 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
|
@ -750,11 +750,17 @@ GLIBC_2.27 ynf32x F
|
||||
GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 daddl F
|
||||
GLIBC_2.28 dsubl F
|
||||
GLIBC_2.28 f32addf32x F
|
||||
GLIBC_2.28 f32addf64 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
GLIBC_2.4 GLIBC_2.4 A
|
||||
GLIBC_2.4 exp2l F
|
||||
_gp_disp _gp_disp A
|
||||
|
@ -990,16 +990,29 @@ GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.27 ynf64x F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 daddl 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 f32subf128 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32subf64x F
|
||||
GLIBC_2.28 f32xaddf128 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xaddf64x F
|
||||
GLIBC_2.28 f32xsubf128 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 f32xsubf64x F
|
||||
GLIBC_2.28 f64addf128 F
|
||||
GLIBC_2.28 f64addf64x F
|
||||
GLIBC_2.28 f64subf128 F
|
||||
GLIBC_2.28 f64subf64x F
|
||||
GLIBC_2.28 f64xaddf128 F
|
||||
GLIBC_2.28 f64xsubf128 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
GLIBC_2.4 GLIBC_2.4 A
|
||||
|
@ -748,8 +748,14 @@ GLIBC_2.27 ynf32x F
|
||||
GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 daddl F
|
||||
GLIBC_2.28 dsubl F
|
||||
GLIBC_2.28 f32addf32x F
|
||||
GLIBC_2.28 f32addf64 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
|
@ -793,12 +793,19 @@ GLIBC_2.27 ynf32x F
|
||||
GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 __nldbl_daddl F
|
||||
GLIBC_2.28 __nldbl_dsubl F
|
||||
GLIBC_2.28 daddl F
|
||||
GLIBC_2.28 dsubl F
|
||||
GLIBC_2.28 f32addf32x F
|
||||
GLIBC_2.28 f32addf64 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
GLIBC_2.4 GLIBC_2.4 A
|
||||
GLIBC_2.4 __clog10l F
|
||||
GLIBC_2.4 __finitel F
|
||||
|
@ -792,12 +792,19 @@ GLIBC_2.27 ynf32x F
|
||||
GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 __nldbl_daddl F
|
||||
GLIBC_2.28 __nldbl_dsubl F
|
||||
GLIBC_2.28 daddl F
|
||||
GLIBC_2.28 dsubl F
|
||||
GLIBC_2.28 f32addf32x F
|
||||
GLIBC_2.28 f32addf64 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
GLIBC_2.4 GLIBC_2.4 A
|
||||
GLIBC_2.4 __clog10l F
|
||||
GLIBC_2.4 __finitel F
|
||||
|
@ -1029,16 +1029,30 @@ GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.27 ynf64x F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 __nldbl_daddl F
|
||||
GLIBC_2.28 __nldbl_dsubl F
|
||||
GLIBC_2.28 daddl 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 f32subf128 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32subf64x F
|
||||
GLIBC_2.28 f32xaddf128 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xaddf64x F
|
||||
GLIBC_2.28 f32xsubf128 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 f32xsubf64x F
|
||||
GLIBC_2.28 f64addf128 F
|
||||
GLIBC_2.28 f64addf64x F
|
||||
GLIBC_2.28 f64subf128 F
|
||||
GLIBC_2.28 f64subf64x F
|
||||
GLIBC_2.28 f64xaddf128 F
|
||||
GLIBC_2.28 f64xsubf128 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
|
@ -468,12 +468,19 @@ GLIBC_2.27 ynf32x F
|
||||
GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 __nldbl_daddl F
|
||||
GLIBC_2.28 __nldbl_dsubl F
|
||||
GLIBC_2.28 daddl F
|
||||
GLIBC_2.28 dsubl F
|
||||
GLIBC_2.28 f32addf32x F
|
||||
GLIBC_2.28 f32addf64 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
GLIBC_2.3 GLIBC_2.3 A
|
||||
GLIBC_2.3 _LIB_VERSION D 0x4
|
||||
GLIBC_2.3 __clog10 F
|
||||
|
@ -970,15 +970,28 @@ GLIBC_2.27 ynf64x F
|
||||
GLIBC_2.27 ynl F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 daddl 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 f32subf128 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32subf64x F
|
||||
GLIBC_2.28 f32xaddf128 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xaddf64x F
|
||||
GLIBC_2.28 f32xsubf128 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 f32xsubf64x F
|
||||
GLIBC_2.28 f64addf128 F
|
||||
GLIBC_2.28 f64addf64x F
|
||||
GLIBC_2.28 f64subf128 F
|
||||
GLIBC_2.28 f64subf64x F
|
||||
GLIBC_2.28 f64xaddf128 F
|
||||
GLIBC_2.28 f64xsubf128 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
|
@ -988,19 +988,33 @@ GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.27 ynf64x F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 __nldbl_daddl F
|
||||
GLIBC_2.28 __nldbl_dsubl F
|
||||
GLIBC_2.28 daddl 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 f32subf128 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32subf64x F
|
||||
GLIBC_2.28 f32xaddf128 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xaddf64x F
|
||||
GLIBC_2.28 f32xsubf128 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 f32xsubf64x F
|
||||
GLIBC_2.28 f64addf128 F
|
||||
GLIBC_2.28 f64addf64x F
|
||||
GLIBC_2.28 f64subf128 F
|
||||
GLIBC_2.28 f64subf64x F
|
||||
GLIBC_2.28 f64xaddf128 F
|
||||
GLIBC_2.28 f64xsubf128 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
GLIBC_2.4 GLIBC_2.4 A
|
||||
GLIBC_2.4 __clog10l F
|
||||
GLIBC_2.4 __finitel F
|
||||
|
@ -986,19 +986,33 @@ GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.27 ynf64x F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 __nldbl_daddl F
|
||||
GLIBC_2.28 __nldbl_dsubl F
|
||||
GLIBC_2.28 daddl 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 f32subf128 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32subf64x F
|
||||
GLIBC_2.28 f32xaddf128 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xaddf64x F
|
||||
GLIBC_2.28 f32xsubf128 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 f32xsubf64x F
|
||||
GLIBC_2.28 f64addf128 F
|
||||
GLIBC_2.28 f64addf64x F
|
||||
GLIBC_2.28 f64subf128 F
|
||||
GLIBC_2.28 f64subf64x F
|
||||
GLIBC_2.28 f64xaddf128 F
|
||||
GLIBC_2.28 f64xsubf128 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
GLIBC_2.4 GLIBC_2.4 A
|
||||
GLIBC_2.4 __clog10l F
|
||||
GLIBC_2.4 __finitel F
|
||||
|
@ -749,10 +749,16 @@ GLIBC_2.27 ynf32x F
|
||||
GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 daddl F
|
||||
GLIBC_2.28 dsubl F
|
||||
GLIBC_2.28 f32addf32x F
|
||||
GLIBC_2.28 f32addf64 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
GLIBC_2.4 GLIBC_2.4 A
|
||||
GLIBC_2.4 exp2l F
|
||||
|
@ -995,19 +995,33 @@ GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.27 ynf64x F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 __nldbl_daddl F
|
||||
GLIBC_2.28 __nldbl_dsubl F
|
||||
GLIBC_2.28 daddl 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 f32subf128 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32subf64x F
|
||||
GLIBC_2.28 f32xaddf128 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xaddf64x F
|
||||
GLIBC_2.28 f32xsubf128 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 f32xsubf64x F
|
||||
GLIBC_2.28 f64addf128 F
|
||||
GLIBC_2.28 f64addf64x F
|
||||
GLIBC_2.28 f64subf128 F
|
||||
GLIBC_2.28 f64subf64x F
|
||||
GLIBC_2.28 f64xaddf128 F
|
||||
GLIBC_2.28 f64xsubf128 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
GLIBC_2.4 GLIBC_2.4 A
|
||||
GLIBC_2.4 __clog10l F
|
||||
GLIBC_2.4 __finitel F
|
||||
|
@ -989,16 +989,29 @@ GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.27 ynf64x F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 daddl 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 f32subf128 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32subf64x F
|
||||
GLIBC_2.28 f32xaddf128 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xaddf64x F
|
||||
GLIBC_2.28 f32xsubf128 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 f32xsubf64x F
|
||||
GLIBC_2.28 f64addf128 F
|
||||
GLIBC_2.28 f64addf64x F
|
||||
GLIBC_2.28 f64subf128 F
|
||||
GLIBC_2.28 f64subf64x F
|
||||
GLIBC_2.28 f64xaddf128 F
|
||||
GLIBC_2.28 f64xsubf128 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
GLIBC_2.4 GLIBC_2.4 A
|
||||
|
@ -749,8 +749,14 @@ GLIBC_2.27 ynf32x F
|
||||
GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 daddl F
|
||||
GLIBC_2.28 dsubl F
|
||||
GLIBC_2.28 f32addf32x F
|
||||
GLIBC_2.28 f32addf64 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
|
@ -749,8 +749,14 @@ GLIBC_2.27 ynf32x F
|
||||
GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 daddl F
|
||||
GLIBC_2.28 dsubl F
|
||||
GLIBC_2.28 f32addf32x F
|
||||
GLIBC_2.28 f32addf64 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
|
@ -1024,16 +1024,29 @@ GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.27 ynf64x F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 daddl 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 f32subf128 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32subf64x F
|
||||
GLIBC_2.28 f32xaddf128 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xaddf64x F
|
||||
GLIBC_2.28 f32xsubf128 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 f32xsubf64x F
|
||||
GLIBC_2.28 f64addf128 F
|
||||
GLIBC_2.28 f64addf64x F
|
||||
GLIBC_2.28 f64subf128 F
|
||||
GLIBC_2.28 f64subf64x F
|
||||
GLIBC_2.28 f64xaddf128 F
|
||||
GLIBC_2.28 f64xsubf128 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
GLIBC_2.4 GLIBC_2.4 A
|
||||
|
@ -1023,15 +1023,28 @@ GLIBC_2.27 ynf64 F
|
||||
GLIBC_2.27 ynf64x F
|
||||
GLIBC_2.28 GLIBC_2.28 A
|
||||
GLIBC_2.28 daddl 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 f32subf128 F
|
||||
GLIBC_2.28 f32subf32x F
|
||||
GLIBC_2.28 f32subf64 F
|
||||
GLIBC_2.28 f32subf64x F
|
||||
GLIBC_2.28 f32xaddf128 F
|
||||
GLIBC_2.28 f32xaddf64 F
|
||||
GLIBC_2.28 f32xaddf64x F
|
||||
GLIBC_2.28 f32xsubf128 F
|
||||
GLIBC_2.28 f32xsubf64 F
|
||||
GLIBC_2.28 f32xsubf64x F
|
||||
GLIBC_2.28 f64addf128 F
|
||||
GLIBC_2.28 f64addf64x F
|
||||
GLIBC_2.28 f64subf128 F
|
||||
GLIBC_2.28 f64subf64x F
|
||||
GLIBC_2.28 f64xaddf128 F
|
||||
GLIBC_2.28 f64xsubf128 F
|
||||
GLIBC_2.28 fadd F
|
||||
GLIBC_2.28 faddl F
|
||||
GLIBC_2.28 fsub F
|
||||
GLIBC_2.28 fsubl F
|
||||
|
Loading…
Reference in New Issue
Block a user