diff options
61 files changed, 24780 insertions, 4 deletions
@@ -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] @@ -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. diff --git a/manual/arith.texi b/manual/arith.texi index 39f2a5da58..116788ba9a 100644 --- a/manual/arith.texi +++ b/manual/arith.texi @@ -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 diff --git a/math/Makefile b/math/Makefile index 12dcedd7f7..7cc0d16b0c 100644 --- a/math/Makefile +++ b/math/Makefile @@ -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) diff --git a/math/Versions b/math/Versions index 9191c0f648..87c7ff601c 100644 --- a/math/Versions +++ b/math/Versions @@ -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; f32a |
