diff options
author | Joseph Myers <joseph@codesourcery.com> | 2021-09-28 23:31:35 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2021-09-28 23:31:35 +0000 |
commit | 90f0ac10a74b2d43b5a65aab4be40565e359be43 (patch) | |
tree | ab0e73d7c60a7255fa5e7c9cbe58e80c3eb8d9cd | |
parent | 5bf07e1b3a74232bfb8332275110be1a5da50f83 (diff) | |
download | glibc-90f0ac10a74b2d43b5a65aab4be40565e359be43.tar.gz glibc-90f0ac10a74b2d43b5a65aab4be40565e359be43.tar.xz glibc-90f0ac10a74b2d43b5a65aab4be40565e359be43.zip |
Add fmaximum, fminimum functions
C2X adds new <math.h> functions for floating-point maximum and minimum, corresponding to the new operations that were added in IEEE 754-2019 because of concerns about the old operations not being associative in the presence of signaling NaNs. fmaximum and fminimum handle NaNs like most <math.h> functions (any NaN argument means the result is a quiet NaN). fmaximum_num and fminimum_num handle both quiet and signaling NaNs the way fmax and fmin handle quiet NaNs (if one argument is a number and the other is a NaN, return the number), but still raise "invalid" for a signaling NaN argument, making them exceptions to the normal rule that a function with a floating-point result raising "invalid" also returns a quiet NaN. fmaximum_mag, fminimum_mag, fmaximum_mag_num and fminimum_mag_num are corresponding functions returning the argument with greatest or least absolute value. All these functions also treat +0 as greater than -0. There are also corresponding <tgmath.h> type-generic macros. Add these functions to glibc. The implementations use type-generic templates based on those for fmax, fmin, fmaxmag and fminmag, and test inputs are based on those for those functions with appropriate adjustments to the expected results. The RISC-V maintainers might wish to add optimized versions of fmaximum_num and fminimum_num (for float and double), since RISC-V (F extension version 2.2 and later) provides instructions corresponding to those functions - though it might be at least as useful to add architecture-independent built-in functions to GCC and teach the RISC-V back end to expand those functions inline, which is what you generally want for functions that can be implemented with a single instruction. Tested for x86_64 and x86, and with build-many-glibcs.py.
66 files changed, 3634 insertions, 11 deletions
diff --git a/NEWS b/NEWS index 9ae04b2f20..6bc98873ab 100644 --- a/NEWS +++ b/NEWS @@ -32,6 +32,13 @@ Major new features: - ffma, ffmal, dfmal and corresponding fMfmafN, fMfmafNx, fMxfmafN and fMxfmafNx functions. +* <math.h> functions for floating-point maximum and minimum, + corresponding to new operations in IEEE 754-2019, and corresponding + <tgmath.h> macros, are added from draft ISO C2X: fmaximum, + fmaximum_num, fmaximum_mag, fmaximum_mag_num, fminimum, fminimum_num, + fminimum_mag, fminimum_mag_num and corresponding functions for float, + long double, _FloatN and _FloatNx. + * The __STDC_IEC_60559_BFP__ and __STDC_IEC_60559_COMPLEX__ macros are predefined as specified in TS 18661-1:2014. diff --git a/manual/arith.texi b/manual/arith.texi index 6a158e624d..edb9cfdafb 100644 --- a/manual/arith.texi +++ b/manual/arith.texi @@ -2097,8 +2097,8 @@ and @var{y}. It is similar to the expression @end smallexample except that @var{x} and @var{y} are only evaluated once. -If an argument is NaN, the other argument is returned. If both arguments -are NaN, NaN is returned. +If an argument is a quiet NaN, the other argument is returned. If both arguments +are NaN, or either is a signaling NaN, NaN is returned. @end deftypefun @deftypefun double fmax (double @var{x}, double @var{y}) @@ -2113,8 +2113,58 @@ are NaN, NaN is returned. The @code{fmax} function returns the greater of the two values @var{x} and @var{y}. -If an argument is NaN, the other argument is returned. If both arguments -are NaN, NaN is returned. +If an argument is a quiet NaN, the other argument is returned. If both arguments +are NaN, or either is a signaling NaN, NaN is returned. +@end deftypefun + +@deftypefun double fminimum (double @var{x}, double @var{y}) +@deftypefunx float fminimumf (float @var{x}, float @var{y}) +@deftypefunx {long double} fminimuml (long double @var{x}, long double @var{y}) +@deftypefunx _FloatN fminimumfN (_Float@var{N} @var{x}, _Float@var{N} @var{y}) +@deftypefunx _FloatNx fminimumfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y}) +@standards{C2X, math.h} +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +The @code{fminimum} function returns the lesser of the two values @var{x} +and @var{y}. Unlike @code{fmin}, if either argument is a NaN, NaN is returned. +Positive zero is treated as greater than negative zero. +@end deftypefun + +@deftypefun double fmaximum (double @var{x}, double @var{y}) +@deftypefunx float fmaximumf (float @var{x}, float @var{y}) +@deftypefunx {long double} fmaximuml (long double @var{x}, long double @var{y}) +@deftypefunx _FloatN fmaximumfN (_Float@var{N} @var{x}, _Float@var{N} @var{y}) +@deftypefunx _FloatNx fmaximumfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y}) +@standards{C2X, math.h} +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +The @code{fmaximum} function returns the greater of the two values @var{x} +and @var{y}. Unlike @code{fmax}, if either argument is a NaN, NaN is returned. +Positive zero is treated as greater than negative zero. +@end deftypefun + +@deftypefun double fminimum_num (double @var{x}, double @var{y}) +@deftypefunx float fminimum_numf (float @var{x}, float @var{y}) +@deftypefunx {long double} fminimum_numl (long double @var{x}, long double @var{y}) +@deftypefunx _FloatN fminimum_numfN (_Float@var{N} @var{x}, _Float@var{N} @var{y}) +@deftypefunx _FloatNx fminimum_numfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y}) +@standards{C2X, math.h} +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +The @code{fminimum_num} function returns the lesser of the two values +@var{x} and @var{y}. If one argument is a number and the other is a +NaN, even a signaling NaN, the number is returned. Positive zero is +treated as greater than negative zero. +@end deftypefun + +@deftypefun double fmaximum_num (double @var{x}, double @var{y}) +@deftypefunx float fmaximum_numf (float @var{x}, float @var{y}) +@deftypefunx {long double} fmaximum_numl (long double @var{x}, long double @var{y}) +@deftypefunx _FloatN fmaximum_numfN (_Float@var{N} @var{x}, _Float@var{N} @var{y}) +@deftypefunx _FloatNx fmaximum_numfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y}) +@standards{C2X, math.h} +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +The @code{fmaximum_num} function returns the greater of the two values +@var{x} and @var{y}. If one argument is a number and the other is a +NaN, even a signaling NaN, the number is returned. Positive zero is +treated as greater than negative zero. @end deftypefun @deftypefun double fminmag (double @var{x}, double @var{y}) @@ -2147,6 +2197,58 @@ have the same absolute value, or either is NaN, they behave the same as the @code{fmax} functions. @end deftypefun +@deftypefun double fminimum_mag (double @var{x}, double @var{y}) +@deftypefunx float fminimum_magf (float @var{x}, float @var{y}) +@deftypefunx {long double} fminimum_magl (long double @var{x}, long double @var{y}) +@deftypefunx _FloatN fminimum_magfN (_Float@var{N} @var{x}, _Float@var{N} @var{y}) +@deftypefunx _FloatNx fminimum_magfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y}) +@standards{C2X, math.h} +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +These functions return whichever of the two values @var{x} and @var{y} +has the smaller absolute value. If both have the same absolute value, +or either is NaN, they behave the same as the @code{fminimum} +functions. +@end deftypefun + +@deftypefun double fmaximum_mag (double @var{x}, double @var{y}) +@deftypefunx float fmaximum_magf (float @var{x}, float @var{y}) +@deftypefunx {long double} fmaximum_magl (long double @var{x}, long double @var{y}) +@deftypefunx _FloatN fmaximum_magfN (_Float@var{N} @var{x}, _Float@var{N} @var{y}) +@deftypefunx _FloatNx fmaximum_magfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y}) +@standards{C2X, math.h} +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +These functions return whichever of the two values @var{x} and @var{y} +has the greater absolute value. If both have the same absolute value, +or either is NaN, they behave the same as the @code{fmaximum} +functions. +@end deftypefun + +@deftypefun double fminimum_mag_num (double @var{x}, double @var{y}) +@deftypefunx float fminimum_mag_numf (float @var{x}, float @var{y}) +@deftypefunx {long double} fminimum_mag_numl (long double @var{x}, long double @var{y}) +@deftypefunx _FloatN fminimum_mag_numfN (_Float@var{N} @var{x}, _Float@var{N} @var{y}) +@deftypefunx _FloatNx fminimum_mag_numfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y}) +@standards{C2X, math.h} +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +These functions return whichever of the two values @var{x} and @var{y} +has the smaller absolute value. If both have the same absolute value, +or either is NaN, they behave the same as the @code{fminimum_num} +functions. +@end deftypefun + +@deftypefun double fmaximum_mag_num (double @var{x}, double @var{y}) +@deftypefunx float fmaximum_mag_numf (float @var{x}, float @var{y}) +@deftypefunx {long double} fmaximum_mag_numl (long double @var{x}, long double @var{y}) +@deftypefunx _FloatN fmaximum_mag_numfN (_Float@var{N} @var{x}, _Float@var{N} @var{y}) +@deftypefunx _FloatNx fmaximum_mag_numfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y}) +@standards{C2X, math.h} +@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} +These functions return whichever of the two values @var{x} and @var{y} +has the greater absolute value. If both have the same absolute value, +or either is NaN, they behave the same as the @code{fmaximum_num} +functions. +@end deftypefun + @deftypefun double fdim (double @var{x}, double @var{y}) @deftypefunx float fdimf (float @var{x}, float @var{y}) @deftypefunx {long double} fdiml (long double @var{x}, long double @var{y}) diff --git a/math/Makefile b/math/Makefile index 8d67bfff7e..af734d41c4 100644 --- a/math/Makefile +++ b/math/Makefile @@ -60,7 +60,10 @@ gen-libm-calls = cargF conjF cimagF crealF cabsF e_scalbF s_cacosF \ w_exp2F w_fmodF w_hypotF w_j0F w_j1F w_jnF w_logF \ w_log10F w_log2F w_powF w_remainderF w_scalbF \ w_sinhF w_sqrtF \ - w_tgammaF w_lgammaF w_lgammaF_r w_expF e_exp2F + w_tgammaF w_lgammaF w_lgammaF_r w_expF e_exp2F \ + s_fmaximumF s_fmaximum_magF s_fmaximum_numF \ + s_fmaximum_mag_numF s_fminimumF s_fminimum_magF \ + s_fminimum_numF s_fminimum_mag_numF libm-calls = \ e_acosF e_acoshF e_asinF e_atan2F e_atanhF e_coshF e_expF e_fmodF \ @@ -287,9 +290,11 @@ libm-test-funcs-auto = acos acosh asin asinh atan atan2 atanh cabs cacos \ lgamma log log10 log1p log2 pow sin sincos sinh sqrt \ tan tanh tgamma y0 y1 yn libm-test-funcs-noauto = canonicalize ceil cimag conj copysign cproj creal \ - fabs fdim floor fmax fmaxmag fmin fminmag fmod \ - fpclassify frexp fromfp fromfpx getpayload ilogb \ - iscanonical iseqsig isfinite isgreater \ + fabs fdim floor fmax fmaximum fmaximum_mag \ + fmaximum_mag_num fmaximum_num fmaxmag fmin fminimum \ + fminimum_mag fminimum_mag_num fminimum_num fminmag \ + fmod fpclassify frexp fromfp fromfpx getpayload \ + ilogb iscanonical iseqsig isfinite isgreater \ isgreaterequal isinf isless islessequal \ islessgreater isnan isnormal issignaling issubnormal \ isunordered iszero llogb llrint llround logb lrint \ @@ -375,7 +380,9 @@ tgmath3-macros = atan2 cbrt ceil copysign erf erfc exp2 expm1 fdim floor \ nextafter nexttoward remainder remquo rint round scalbn \ scalbln tgamma trunc acos asin atan acosh asinh atanh cos \ sin tan cosh sinh tanh exp log pow sqrt fabs carg cimag conj \ - cproj creal roundeven nextup nextdown fminmag fmaxmag llogb \ + cproj creal roundeven nextup nextdown fminmag fmaxmag \ + fmaximum fmaximum_mag fmaximum_num fmaximum_mag_num \ + fminimum fminimum_mag fminimum_num fminimum_mag_num llogb \ fromfp fromfpx ufromfp ufromfpx scalb $(tgmath3-narrow-macros) tgmath3-macro-tests = $(addprefix test-tgmath3-,$(tgmath3-macros)) tests += $(tgmath3-macro-tests) @@ -682,8 +689,16 @@ CFLAGS-s_finite.c += -fno-builtin-finitel CFLAGS-s_floor.c += -fno-builtin-floorl CFLAGS-s_fma.c += -fno-builtin-fmal CFLAGS-s_fmax.c += -fno-builtin-fmaxl +CFLAGS-s_fmaximum.c += -fno-builtin-fmaximuml +CFLAGS-s_fmaximum_mag.c += -fno-builtin-fmaximum_magl +CFLAGS-s_fmaximum_mag_num.c += -fno-builtin-fmaximum_mag_numl +CFLAGS-s_fmaximum_num.c += -fno-builtin-fmaximum_numl CFLAGS-s_fmaxmag.c += -fno-builtin-fmaxmagl CFLAGS-s_fmin.c += -fno-builtin-fminl +CFLAGS-s_fminimum.c += -fno-builtin-fminimuml +CFLAGS-s_fminimum_mag.c += -fno-builtin-fminimum_magl +CFLAGS-s_fminimum_mag_num.c += -fno-builtin-fminimum_mag_numl +CFLAGS-s_fminimum_num.c += -fno-builtin-fminimum_numl CFLAGS-s_fminmag.c += -fno-builtin-fminmagl CFLAGS-w_fmod.c += -fno-builtin-fmodl CFLAGS-s_fmul.c += -fno-builtin-fmull diff --git a/math/Versions b/math/Versions index 1a25b2ce9a..a4b5405ddc 100644 --- a/math/Versions +++ b/math/Versions @@ -599,6 +599,20 @@ libm { f32fmaf32x; f32fmaf64; f32xfmaf64; fsqrt; fsqrtl; dsqrtl; f32sqrtf32x; f32sqrtf64; f32xsqrtf64; + fmaximum; fmaximumf; fmaximuml; fmaximumf32; fmaximumf64; fmaximumf32x; + fmaximum_num; fmaximum_numf; fmaximum_numl; + fmaximum_numf32; fmaximum_numf64; fmaximum_numf32x; + fmaximum_mag; fmaximum_magf; fmaximum_magl; + fmaximum_magf32; fmaximum_magf64; fmaximum_magf32x; + fmaximum_mag_num; fmaximum_mag_numf; fmaximum_mag_numl; + fmaximum_mag_numf32; fmaximum_mag_numf64; fmaximum_mag_numf32x; + fminimum; fminimumf; fminimuml; fminimumf32; fminimumf64; fminimumf32x; + fminimum_num; fminimum_numf; fminimum_numl; + fminimum_numf32; fminimum_numf64; fminimum_numf32x; + fminimum_mag; fminimum_magf; fminimum_magl; + fminimum_magf32; fminimum_magf64; fminimum_magf32x; + fminimum_mag_num; fminimum_mag_numf; fminimum_mag_numl; + fminimum_mag_numf32; fminimum_mag_numf64; fminimum_mag_numf32x; # Functions involving _Float64x or _Float128, for some configurations. f32fmaf64x; f32fmaf128; f32xfmaf64x; f32xfmaf128; f64fmaf64x; f64fmaf128; @@ -606,5 +620,13 @@ libm { f32sqrtf64x; f32sqrtf128; f32xsqrtf64x; f32xsqrtf128; f64sqrtf64x; f64sqrtf128; f64xsqrtf128; + fmaximumf64x; fmaximumf128; + fmaximum_numf64x; fmaximum_numf128; + fmaximum_magf64x; fmaximum_magf128; + fmaximum_mag_numf64x; fmaximum_mag_numf128; + fminimumf64x; fminimumf128; + fminimum_numf64x; fminimum_numf128; + fminimum_magf64x; fminimum_magf128; + fminimum_mag_numf64x; fminimum_mag_numf128; } } diff --git a/math/bits/mathcalls.h b/math/bits/mathcalls.h index dc145b4bcf..ee0c6d7219 100644 --- a/math/bits/mathcalls.h +++ b/math/bits/mathcalls.h @@ -378,6 +378,32 @@ __MATHCALLX (fmaxmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); __MATHCALLX (fminmag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); #endif +#if __GLIBC_USE (ISOC2X) +/* Return maximum value from X and Y. */ +__MATHCALLX (fmaximum,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + +/* Return minimum value from X and Y. */ +__MATHCALLX (fminimum,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + +/* Return maximum numeric value from X and Y. */ +__MATHCALLX (fmaximum_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + +/* Return minimum numeric value from X and Y. */ +__MATHCALLX (fminimum_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + +/* Return value with maximum magnitude. */ +__MATHCALLX (fmaximum_mag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + +/* Return value with minimum magnitude. */ +__MATHCALLX (fminimum_mag,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + +/* Return numeric value with maximum magnitude. */ +__MATHCALLX (fmaximum_mag_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); + +/* Return numeric value with minimum magnitude. */ +__MATHCALLX (fminimum_mag_num,, (_Mdouble_ __x, _Mdouble_ __y), (__const__)); +#endif + #if __GLIBC_USE (IEC_60559_EXT) || __MATH_DECLARING_FLOATN /* Total order operation. */ __MATHDECL_1 (int, totalorder,, (const _Mdouble_ *__x, diff --git a/math/gen-tgmath-tests.py b/math/gen-tgmath-tests.py index 6d32a4b6e4..d433b484b8 100755 --- a/math/gen-tgmath-tests.py +++ b/math/gen-tgmath-tests.py @@ -707,6 +707,15 @@ class Tests(object): ('_Float32x', 'f32x'), ('_Float64x', 'f64x')): self.add_tests(prefix + fn, ret, ['r'] * args) + # C2X functions. + self.add_tests('fmaximum', 'r', ['r', 'r']) + self.add_tests('fmaximum_mag', 'r', ['r', 'r']) + self.add_tests('fmaximum_num', 'r', ['r', 'r']) + self.add_tests('fmaximum_mag_num', 'r', ['r', 'r']) + self.add_tests('fminimum', 'r', ['r', 'r']) + self.add_tests('fminimum_mag', 'r', ['r', 'r']) + self.add_tests('fminimum_num', 'r', ['r', 'r']) + self.add_tests('fminimum_mag_num', 'r', ['r', 'r']) # Miscellaneous functions. self.add_tests('scalb', 's', ['s', 's']) diff --git a/math/libm-test-fmaximum.inc b/math/libm-test-fmaximum.inc new file mode 100644 index 0000000000..72e12c4dfa --- /dev/null +++ b/math/libm-test-fmaximum.inc @@ -0,0 +1,130 @@ +/* Test fmaximum. + Copyright (C) 1997-2021 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 + <https://www.gnu.org/licenses/>. */ + +#include "libm-test-driver.c" + +static const struct test_ff_f_data fmaximum_test_data[] = + { + TEST_ff_f (fmaximum, 0, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, 0, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, minus_zero, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, min_subnorm_value, -min_subnorm_value, min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, -min_subnorm_value, min_subnorm_value, min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, min_value, -min_value, min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, -min_value, min_value, min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, max_value, -max_value, max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, -max_value, max_value, max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, 9, 0, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, 0, 9, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, -9, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, 0, -9, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + TEST_ff_f (fmaximum, plus_infty, 9, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, 0, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, -9, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, plus_infty, -9, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + TEST_ff_f (fmaximum, minus_infty, 9, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, minus_infty, -9, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, 9, minus_infty, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, -9, minus_infty, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + TEST_ff_f (fmaximum, 0, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, 0, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, minus_zero, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, minus_zero, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, 9, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, 9, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, -9, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, -9, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, 0, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, 0, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, minus_zero, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, minus_zero, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, 9, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, 9, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, -9, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, -9, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, qnan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, -qnan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, qnan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, -qnan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, qnan_value, 9, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, -qnan_value, 9, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, qnan_value, -9, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, -qnan_value, -9, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, snan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, -snan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, snan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, -snan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, snan_value, 9, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, -snan_value, 9, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, snan_value, -9, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, -snan_value, -9, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, plus_infty, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, plus_infty, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, minus_infty, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, minus_infty, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, plus_infty, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, plus_infty, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, minus_infty, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, minus_infty, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, qnan_value, plus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, -qnan_value, plus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, qnan_value, minus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, -qnan_value, minus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, snan_value, plus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, -snan_value, plus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, snan_value, minus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, -snan_value, minus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, qnan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, -qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, -qnan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum, qnan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, qnan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, -qnan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, -qnan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, snan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, snan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, -snan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, -snan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, snan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, snan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, -snan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum, -snan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + }; + +static void +fmaximum_test (void) +{ + ALL_RM_TEST (fmaximum, 1, fmaximum_test_data, RUN_TEST_LOOP_ff_f, END); +} + +static void +do_test (void) +{ + fmaximum_test (); +} + +/* + * Local Variables: + * mode:c + * End: + */ diff --git a/math/libm-test-fmaximum_mag.inc b/math/libm-test-fmaximum_mag.inc new file mode 100644 index 0000000000..556188fada --- /dev/null +++ b/math/libm-test-fmaximum_mag.inc @@ -0,0 +1,144 @@ +/* Test fmaximum_mag. + Copyright (C) 1997-2021 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 + <https://www.gnu.org/licenses/>. */ + +#include "libm-test-driver.c" + +static const struct test_ff_f_data fmaximum_mag_test_data[] = + { + TEST_ff_f (fmaximum_mag, 0, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, 0, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, minus_zero, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, min_subnorm_value, min_subnorm_value, min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, min_subnorm_value, -min_subnorm_value, min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -min_subnorm_value, min_subnorm_value, min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -min_subnorm_value, -min_subnorm_value, -min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, min_value, min_value, min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, min_value, -min_value, min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -min_value, min_value, min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -min_value, -min_value, -min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, max_value, max_value, max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, max_value, -max_value, max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -max_value, max_value, max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -max_value, -max_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, max_value, min_value, max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, max_value, -min_value, max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -max_value, min_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -max_value, -min_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, min_value, max_value, max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, min_value, -max_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -min_value, max_value, max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -min_value, -max_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, 9, 0, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, 0, 9, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -9, 0, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, 0, -9, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + TEST_ff_f (fmaximum_mag, plus_infty, 9, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, 0, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -9, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, plus_infty, -9, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + TEST_ff_f (fmaximum_mag, minus_infty, 9, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, minus_infty, -9, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, 9, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -9, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + TEST_ff_f (fmaximum_mag, 0, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, 0, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, minus_zero, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, minus_zero, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, 9, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, 9, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -9, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -9, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, 0, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, 0, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, minus_zero, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, minus_zero, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, 9, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, 9, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, -9, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, -9, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, qnan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -qnan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, qnan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -qnan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, qnan_value, 9, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -qnan_value, 9, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, qnan_value, -9, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -qnan_value, -9, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, snan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, -snan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, snan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, -snan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, snan_value, 9, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, -snan_value, 9, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, snan_value, -9, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, -snan_value, -9, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, plus_infty, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, plus_infty, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, minus_infty, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, minus_infty, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, plus_infty, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, plus_infty, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, minus_infty, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, minus_infty, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, qnan_value, plus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -qnan_value, plus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, qnan_value, minus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -qnan_value, minus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, snan_value, plus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, -snan_value, plus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, snan_value, minus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, -snan_value, minus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, qnan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, -qnan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag, qnan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, qnan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, -qnan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, -qnan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, snan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, snan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, -snan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, -snan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, snan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, snan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, -snan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag, -snan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + }; + +static void +fmaximum_mag_test (void) +{ + ALL_RM_TEST (fmaximum_mag, 1, fmaximum_mag_test_data, RUN_TEST_LOOP_ff_f, END); +} + +static void +do_test (void) +{ + fmaximum_mag_test (); +} + +/* + * Local Variables: + * mode:c + * End: + */ diff --git a/math/libm-test-fmaximum_mag_num.inc b/math/libm-test-fmaximum_mag_num.inc new file mode 100644 index 0000000000..75cc46484a --- /dev/null +++ b/math/libm-test-fmaximum_mag_num.inc @@ -0,0 +1,144 @@ +/* Test fmaximum_mag_num. + Copyright (C) 1997-2021 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 + <https://www.gnu.org/licenses/>. */ + +#include "libm-test-driver.c" + +static const struct test_ff_f_data fmaximum_mag_num_test_data[] = + { + TEST_ff_f (fmaximum_mag_num, 0, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, 0, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, minus_zero, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, min_subnorm_value, min_subnorm_value, min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, min_subnorm_value, -min_subnorm_value, min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -min_subnorm_value, min_subnorm_value, min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -min_subnorm_value, -min_subnorm_value, -min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, min_value, min_value, min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, min_value, -min_value, min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -min_value, min_value, min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -min_value, -min_value, -min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, max_value, max_value, max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, max_value, -max_value, max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -max_value, max_value, max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -max_value, -max_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, max_value, min_value, max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, max_value, -min_value, max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -max_value, min_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -max_value, -min_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, min_value, max_value, max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, min_value, -max_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -min_value, max_value, max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -min_value, -max_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, 9, 0, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, 0, 9, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -9, 0, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, 0, -9, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + TEST_ff_f (fmaximum_mag_num, plus_infty, 9, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, 0, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -9, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, plus_infty, -9, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + TEST_ff_f (fmaximum_mag_num, minus_infty, 9, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, minus_infty, -9, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, 9, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -9, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + TEST_ff_f (fmaximum_mag_num, 0, qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, 0, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, minus_zero, qnan_value, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, minus_zero, -qnan_value, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, 9, qnan_value, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, 9, -qnan_value, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -9, qnan_value, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -9, -qnan_value, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, 0, snan_value, 0, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, 0, -snan_value, 0, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, minus_zero, snan_value, minus_zero, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, minus_zero, -snan_value, minus_zero, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, 9, snan_value, 9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, 9, -snan_value, 9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, -9, snan_value, -9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, -9, -snan_value, -9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, qnan_value, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -qnan_value, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, qnan_value, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -qnan_value, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, qnan_value, 9, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -qnan_value, 9, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, qnan_value, -9, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -qnan_value, -9, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, snan_value, 0, 0, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, -snan_value, 0, 0, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, snan_value, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, -snan_value, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, snan_value, 9, 9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, -snan_value, 9, 9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, snan_value, -9, -9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, -snan_value, -9, -9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, plus_infty, qnan_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, plus_infty, -qnan_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, minus_infty, qnan_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, minus_infty, -qnan_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, plus_infty, snan_value, plus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, plus_infty, -snan_value, plus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, minus_infty, snan_value, minus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, minus_infty, -snan_value, minus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, qnan_value, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -qnan_value, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, qnan_value, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -qnan_value, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, snan_value, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, -snan_value, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, snan_value, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, -snan_value, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, qnan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, -qnan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_mag_num, qnan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, qnan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, -qnan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, -qnan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, snan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, snan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, -snan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, -snan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, snan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, snan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, -snan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_mag_num, -snan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + }; + +static void +fmaximum_mag_num_test (void) +{ + ALL_RM_TEST (fmaximum_mag_num, 1, fmaximum_mag_num_test_data, RUN_TEST_LOOP_ff_f, END); +} + +static void +do_test (void) +{ + fmaximum_mag_num_test (); +} + +/* + * Local Variables: + * mode:c + * End: + */ diff --git a/math/libm-test-fmaximum_num.inc b/math/libm-test-fmaximum_num.inc new file mode 100644 index 0000000000..948be9ada2 --- /dev/null +++ b/math/libm-test-fmaximum_num.inc @@ -0,0 +1,130 @@ +/* Test fmaximum_num. + Copyright (C) 1997-2021 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 + <https://www.gnu.org/licenses/>. */ + +#include "libm-test-driver.c" + +static const struct test_ff_f_data fmaximum_num_test_data[] = + { + TEST_ff_f (fmaximum_num, 0, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, 0, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, minus_zero, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, min_subnorm_value, -min_subnorm_value, min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, -min_subnorm_value, min_subnorm_value, min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, min_value, -min_value, min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, -min_value, min_value, min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, max_value, -max_value, max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, -max_value, max_value, max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, 9, 0, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, 0, 9, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, -9, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, 0, -9, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + TEST_ff_f (fmaximum_num, plus_infty, 9, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, 0, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, -9, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, plus_infty, -9, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + TEST_ff_f (fmaximum_num, minus_infty, 9, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, minus_infty, -9, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, 9, minus_infty, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, -9, minus_infty, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + TEST_ff_f (fmaximum_num, 0, qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, 0, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, minus_zero, qnan_value, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, minus_zero, -qnan_value, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, 9, qnan_value, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, 9, -qnan_value, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, -9, qnan_value, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, -9, -qnan_value, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, 0, snan_value, 0, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, 0, -snan_value, 0, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, minus_zero, snan_value, minus_zero, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, minus_zero, -snan_value, minus_zero, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, 9, snan_value, 9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, 9, -snan_value, 9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, -9, snan_value, -9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, -9, -snan_value, -9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, qnan_value, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, -qnan_value, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, qnan_value, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, -qnan_value, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, qnan_value, 9, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, -qnan_value, 9, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, qnan_value, -9, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, -qnan_value, -9, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, snan_value, 0, 0, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, -snan_value, 0, 0, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, snan_value, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, -snan_value, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, snan_value, 9, 9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, -snan_value, 9, 9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, snan_value, -9, -9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, -snan_value, -9, -9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, plus_infty, qnan_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, plus_infty, -qnan_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, minus_infty, qnan_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, minus_infty, -qnan_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, plus_infty, snan_value, plus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, plus_infty, -snan_value, plus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, minus_infty, snan_value, minus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, minus_infty, -snan_value, minus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, qnan_value, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, -qnan_value, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, qnan_value, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, -qnan_value, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, snan_value, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, -snan_value, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, snan_value, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, -snan_value, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, qnan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, -qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, -qnan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fmaximum_num, qnan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, qnan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, -qnan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, -qnan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, snan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, snan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, -snan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, -snan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, snan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, snan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, -snan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fmaximum_num, -snan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + }; + +static void +fmaximum_num_test (void) +{ + ALL_RM_TEST (fmaximum_num, 1, fmaximum_num_test_data, RUN_TEST_LOOP_ff_f, END); +} + +static void +do_test (void) +{ + fmaximum_num_test (); +} + +/* + * Local Variables: + * mode:c + * End: + */ diff --git a/math/libm-test-fminimum.inc b/math/libm-test-fminimum.inc new file mode 100644 index 0000000000..ff37fb115e --- /dev/null +++ b/math/libm-test-fminimum.inc @@ -0,0 +1,129 @@ +/* Test fminimum. + Copyright (C) 1997-2021 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 + <https://www.gnu.org/licenses/>. */ + +#include "libm-test-driver.c" + +static const struct test_ff_f_data fminimum_test_data[] = + { + TEST_ff_f (fminimum, 0, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, 0, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, minus_zero, 0, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, min_subnorm_value, -min_subnorm_value, -min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, -min_subnorm_value, min_subnorm_value, -min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, min_value, -min_value, -min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, -min_value, min_value, -min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, max_value, -max_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, -max_value, max_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, 9, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, 0, 9, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, -9, 0, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, 0, -9, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + TEST_ff_f (fminimum, plus_infty, 9, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, 9, plus_infty, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, plus_infty, -9, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, -9, plus_infty, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, minus_infty, 9, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, minus_infty, -9, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, 9, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, -9, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + TEST_ff_f (fminimum, 0, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, 0, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, minus_zero, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, minus_zero, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, 9, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, 9, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, -9, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, -9, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, 0, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, 0, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, minus_zero, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, minus_zero, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, 9, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, 9, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, -9, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, -9, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, qnan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, -qnan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, qnan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, -qnan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, qnan_value, 9, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, -qnan_value, 9, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, qnan_value, -9, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, -qnan_value, -9, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, snan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, -snan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, snan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, -snan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, snan_value, 9, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, -snan_value, 9, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, snan_value, -9, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, -snan_value, -9, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, plus_infty, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, plus_infty, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, minus_infty, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, minus_infty, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, plus_infty, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, plus_infty, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, minus_infty, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, minus_infty, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, qnan_value, plus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, -qnan_value, plus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, qnan_value, minus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, -qnan_value, minus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, snan_value, plus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, -snan_value, plus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, snan_value, minus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, -snan_value, minus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, qnan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, -qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, -qnan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum, qnan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, qnan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, -qnan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, -qnan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, snan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, snan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, -snan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, -snan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, snan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, snan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, -snan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum, -snan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + }; + +static void +fminimum_test (void) +{ + ALL_RM_TEST (fminimum, 1, fminimum_test_data, RUN_TEST_LOOP_ff_f, END); +} + +static void +do_test (void) +{ + fminimum_test (); +} + +/* + * Local Variables: + * mode:c + * End: + */ diff --git a/math/libm-test-fminimum_mag.inc b/math/libm-test-fminimum_mag.inc new file mode 100644 index 0000000000..b3e85b38ef --- /dev/null +++ b/math/libm-test-fminimum_mag.inc @@ -0,0 +1,143 @@ +/* Test fminimum_mag. + Copyright (C) 1997-2021 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 + <https://www.gnu.org/licenses/>. */ + +#include "libm-test-driver.c" + +static const struct test_ff_f_data fminimum_mag_test_data[] = + { + TEST_ff_f (fminimum_mag, 0, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, 0, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, minus_zero, 0, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, min_subnorm_value, min_subnorm_value, min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, min_subnorm_value, -min_subnorm_value, -min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -min_subnorm_value, min_subnorm_value, -min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -min_subnorm_value, -min_subnorm_value, -min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, min_value, min_value, min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, min_value, -min_value, -min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -min_value, min_value, -min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -min_value, -min_value, -min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, max_value, max_value, max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, max_value, -max_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -max_value, max_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -max_value, -max_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, max_value, min_value, min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, max_value, -min_value, -min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -max_value, min_value, min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -max_value, -min_value, -min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, min_value, max_value, min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, min_value, -max_value, min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -min_value, max_value, -min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -min_value, -max_value, -min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, 9, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, 0, 9, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -9, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, 0, -9, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + TEST_ff_f (fminimum_mag, plus_infty, 9, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, 9, plus_infty, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, plus_infty, -9, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -9, plus_infty, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, minus_infty, 9, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, minus_infty, -9, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, 9, minus_infty, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -9, minus_infty, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + TEST_ff_f (fminimum_mag, 0, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, 0, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, minus_zero, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, minus_zero, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, 9, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, 9, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -9, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -9, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, 0, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, 0, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, minus_zero, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, minus_zero, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, 9, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, 9, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, -9, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, -9, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, qnan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -qnan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, qnan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -qnan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, qnan_value, 9, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -qnan_value, 9, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, qnan_value, -9, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -qnan_value, -9, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, snan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, -snan_value, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, snan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, -snan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, snan_value, 9, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, -snan_value, 9, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, snan_value, -9, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, -snan_value, -9, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, plus_infty, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, plus_infty, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, minus_infty, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, minus_infty, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, plus_infty, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, plus_infty, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, minus_infty, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, minus_infty, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, qnan_value, plus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -qnan_value, plus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, qnan_value, minus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -qnan_value, minus_infty, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, snan_value, plus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, -snan_value, plus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, snan_value, minus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, -snan_value, minus_infty, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, qnan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, -qnan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag, qnan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, qnan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, -qnan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, -qnan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, snan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, snan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, -snan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, -snan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, snan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, snan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, -snan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag, -snan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + }; + +static void +fminimum_mag_test (void) +{ + ALL_RM_TEST (fminimum_mag, 1, fminimum_mag_test_data, RUN_TEST_LOOP_ff_f, END); +} + +static void +do_test (void) +{ + fminimum_mag_test (); +} + +/* + * Local Variables: + * mode:c + * End: + */ diff --git a/math/libm-test-fminimum_mag_num.inc b/math/libm-test-fminimum_mag_num.inc new file mode 100644 index 0000000000..f9e824c4cd --- /dev/null +++ b/math/libm-test-fminimum_mag_num.inc @@ -0,0 +1,143 @@ +/* Test fminimum_mag_num. + Copyright (C) 1997-2021 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 + <https://www.gnu.org/licenses/>. */ + +#include "libm-test-driver.c" + +static const struct test_ff_f_data fminimum_mag_num_test_data[] = + { + TEST_ff_f (fminimum_mag_num, 0, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, 0, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, minus_zero, 0, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, min_subnorm_value, min_subnorm_value, min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, min_subnorm_value, -min_subnorm_value, -min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -min_subnorm_value, min_subnorm_value, -min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -min_subnorm_value, -min_subnorm_value, -min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, min_value, min_value, min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, min_value, -min_value, -min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -min_value, min_value, -min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -min_value, -min_value, -min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, max_value, max_value, max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, max_value, -max_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -max_value, max_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -max_value, -max_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, max_value, min_value, min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, max_value, -min_value, -min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -max_value, min_value, min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -max_value, -min_value, -min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, min_value, max_value, min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, min_value, -max_value, min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -min_value, max_value, -min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -min_value, -max_value, -min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, 9, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, 0, 9, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -9, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, 0, -9, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + TEST_ff_f (fminimum_mag_num, plus_infty, 9, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, 9, plus_infty, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, plus_infty, -9, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -9, plus_infty, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, minus_infty, 9, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, minus_infty, -9, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, 9, minus_infty, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -9, minus_infty, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + TEST_ff_f (fminimum_mag_num, 0, qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, 0, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, minus_zero, qnan_value, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, minus_zero, -qnan_value, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, 9, qnan_value, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, 9, -qnan_value, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -9, qnan_value, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -9, -qnan_value, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, 0, snan_value, 0, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, 0, -snan_value, 0, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, minus_zero, snan_value, minus_zero, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, minus_zero, -snan_value, minus_zero, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, 9, snan_value, 9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, 9, -snan_value, 9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, -9, snan_value, -9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, -9, -snan_value, -9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, qnan_value, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -qnan_value, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, qnan_value, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -qnan_value, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, qnan_value, 9, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -qnan_value, 9, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, qnan_value, -9, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -qnan_value, -9, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, snan_value, 0, 0, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, -snan_value, 0, 0, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, snan_value, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, -snan_value, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, snan_value, 9, 9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, -snan_value, 9, 9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, snan_value, -9, -9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, -snan_value, -9, -9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, plus_infty, qnan_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, plus_infty, -qnan_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, minus_infty, qnan_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, minus_infty, -qnan_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, plus_infty, snan_value, plus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, plus_infty, -snan_value, plus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, minus_infty, snan_value, minus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, minus_infty, -snan_value, minus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, qnan_value, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -qnan_value, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, qnan_value, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -qnan_value, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, snan_value, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, -snan_value, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, snan_value, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, -snan_value, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, qnan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, -qnan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_mag_num, qnan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, qnan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, -qnan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, -qnan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, snan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, snan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, -snan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, -snan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, snan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, snan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, -snan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_mag_num, -snan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + }; + +static void +fminimum_mag_num_test (void) +{ + ALL_RM_TEST (fminimum_mag_num, 1, fminimum_mag_num_test_data, RUN_TEST_LOOP_ff_f, END); +} + +static void +do_test (void) +{ + fminimum_mag_num_test (); +} + +/* + * Local Variables: + * mode:c + * End: + */ diff --git a/math/libm-test-fminimum_num.inc b/math/libm-test-fminimum_num.inc new file mode 100644 index 0000000000..74c4df234c --- /dev/null +++ b/math/libm-test-fminimum_num.inc @@ -0,0 +1,129 @@ +/* Test fminimum_num. + Copyright (C) 1997-2021 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 + <https://www.gnu.org/licenses/>. */ + +#include "libm-test-driver.c" + +static const struct test_ff_f_data fminimum_num_test_data[] = + { + TEST_ff_f (fminimum_num, 0, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, 0, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, minus_zero, 0, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, min_subnorm_value, -min_subnorm_value, -min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, -min_subnorm_value, min_subnorm_value, -min_subnorm_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, min_value, -min_value, -min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, -min_value, min_value, -min_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, max_value, -max_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, -max_value, max_value, -max_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, 9, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, 0, 9, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, -9, 0, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, 0, -9, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + TEST_ff_f (fminimum_num, plus_infty, 9, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, 9, plus_infty, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, plus_infty, -9, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, -9, plus_infty, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, minus_infty, 9, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, minus_infty, -9, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, 9, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, -9, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + + TEST_ff_f (fminimum_num, 0, qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, 0, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, minus_zero, qnan_value, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, minus_zero, -qnan_value, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, 9, qnan_value, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, 9, -qnan_value, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, -9, qnan_value, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, -9, -qnan_value, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, 0, snan_value, 0, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, 0, -snan_value, 0, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, minus_zero, snan_value, minus_zero, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, minus_zero, -snan_value, minus_zero, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, 9, snan_value, 9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, 9, -snan_value, 9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, -9, snan_value, -9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, -9, -snan_value, -9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, qnan_value, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, -qnan_value, 0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, qnan_value, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, -qnan_value, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, qnan_value, 9, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, -qnan_value, 9, 9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, qnan_value, -9, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, -qnan_value, -9, -9, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, snan_value, 0, 0, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, -snan_value, 0, 0, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, snan_value, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, -snan_value, minus_zero, minus_zero, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, snan_value, 9, 9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, -snan_value, 9, 9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, snan_value, -9, -9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, -snan_value, -9, -9, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, plus_infty, qnan_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, plus_infty, -qnan_value, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, minus_infty, qnan_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, minus_infty, -qnan_value, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, plus_infty, snan_value, plus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, plus_infty, -snan_value, plus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, minus_infty, snan_value, minus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, minus_infty, -snan_value, minus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, qnan_value, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, -qnan_value, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, qnan_value, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, -qnan_value, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, snan_value, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, -snan_value, plus_infty, plus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, snan_value, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, -snan_value, minus_infty, minus_infty, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, qnan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, -qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, -qnan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_ff_f (fminimum_num, qnan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, qnan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, -qnan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, -qnan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, snan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, snan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, -snan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, -snan_value, -qnan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, snan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, snan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, -snan_value, snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + TEST_ff_f (fminimum_num, -snan_value, -snan_value, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION), + }; + +static void +fminimum_num_test (void) +{ + ALL_RM_TEST (fminimum_num, 1, fminimum_num_test_data, RUN_TEST_LOOP_ff_f, END); +} + +static void +do_test (void) +{ + fminimum_num_test (); +} + +/* + * Local Variables: + * mode:c + * End: + */ diff --git a/math/s_fmaximum_mag_num_template.c b/math/s_fmaximum_mag_num_template.c new file mode 100644 index 0000000000..5c9cef21fd --- /dev/null +++ b/math/s_fmaximum_mag_num_template.c @@ -0,0 +1,35 @@ +/* Return number with maximum magnitude. + Copyright (C) 2016-2021 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 + <https://www.gnu.org/licenses/>. */ + +#include <math.h> + +FLOAT +M_DECL_FUNC (__fmaximum_mag_num) (FLOAT x, FLOAT y) +{ + FLOAT ax = M_FABS (x); + FLOAT ay = M_FABS (y); + if (isgreater (ax, ay)) + return x; + else if (isless (ax, ay)) + return y; + else if (ax == ay) + return (M_COPYSIGN (1, x) >= M_COPYSIGN (1, y) ? x : y); + else + return isnan (y) ? (isnan (x) ? x + y : x) : y; +} +declare_mgen_alias (__fmaximum_mag_num, fmaximum_mag_num); diff --git a/math/s_fmaximum_mag_template.c b/math/s_fmaximum_mag_template.c new file mode 100644 index 0000000000..7e9a020344 --- /dev/null +++ b/math/s_fmaximum_mag_template.c @@ -0,0 +1,35 @@ +/* Return value with maximum magnitude. + Copyright (C) 2016-2021 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 + <https://www.gnu.org/licenses/>. */ + +#include <math.h> + +FLOAT +M_DECL_FUNC (__fmaximum_mag) (FLOAT x, FLOAT y) +{ + FLOAT ax = M_FABS (x); + FLOAT ay = M_FABS (y); + if (isgreater (ax, ay)) + return x; + else if (isless (ax, ay)) + return y; + else if (ax == ay) + return (M_COPYSIGN (1, x) >= M_COPYSIGN (1, y) ? x : y); + else + return x + y; +} +declare_mgen_alias (__fmaximum_mag, fmaximum_mag); diff --git a/math/s_fmaximum_num_template.c b/math/s_fmaximum_num_template.c new file mode 100644 index 0000000000..ce0042fd5c --- /dev/null +++ b/math/s_fmaximum_num_template.c @@ -0,0 +1,33 @@ +/* Return maximum number of X and Y. + Copyright (C) 1997-2021 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 + <https://www.gnu.org/licenses/>. */ + +#include <math.h> + +FLOAT +M_DECL_FUNC (__fmaximum_num) (FLOAT x, FLOAT y) +{ + if (isgreater (x, y)) + return x; + else if (isless (x, y)) + return y; + else if (x == y) + return (M_COPYSIGN (1, x) >= M_COPYSIGN (1, y) ? x : y); + else + return isnan (y) ? (isnan (x) ? x + y : x) : y; +} +declare_mgen_alias (__fmaximum_num, fmaximum_num); diff --git a/math/s_fmaximum_template.c b/math/s_fmaximum_template.c new file mode 100644 index 0000000000..e49c5d3c0f --- /dev/null +++ b/math/s_fmaximum_template.c @@ -0,0 +1,33 @@ +/* Return maximum of X and Y. + Copyright (C) 1997-2021 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 + <https://www.gnu.org/licenses/>. */ + +#include <math.h> + +FLOAT +M_DECL_FUNC (__fmaximum) (FLOAT x, FLOAT y) +{ + if (isgreater (x, y)) + return x; + else if (isless (x, y)) + return y; + else if (x == y) + return (M_COPYSIGN (1, x) >= M_COPYSIGN (1, y) ? x : y); + else + return x + y; +} +declare_mgen_alias (__fmaximum, fmaximum); diff --git a/math/s_fminimum_mag_num_template.c b/math/s_fminimum_mag_num_template.c new file mode 100644 index 0000000000..f2dc3821ba --- /dev/null +++ b/math/s_fminimum_mag_num_template.c @@ -0,0 +1,35 @@ +/* Return number with minimum magnitude. + Copyright (C) 2016-2021 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 + <https://www.gnu.org/licenses/>. */ + +#include <math.h> + +FLOAT +M_DECL_FUNC (__fminimum_mag_num) (FLOAT x, FLOAT y) +{ + FLOAT ax = M_FABS (x); + FLOAT ay = M_FABS (y); + if (isless (ax, ay)) + return x; + else if (isgreater (ax, ay)) + return y; + else if (ax == ay) + return (M_COPYSIGN (1, x) <= M_COPYSIGN (1, y) ? x : y); + else + return isnan (y) ? (isnan (x) ? x + y : x) : y; +} +declare_mgen_alias (__fminimum_mag_num, fminimum_mag_num); diff --git a/math/s_fminimum_mag_template.c b/math/s_fminimum_mag_template.c new file mode 100644 index 0000000000..4a35596ba1 --- /dev/null +++ b/math/s_fminimum_mag_template.c @@ -0,0 +1,35 @@ +/* Return value with minimum magnitude. + Copyright (C) 2016-2021 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 + <https://www.gnu.org/licenses/>. */ + +#include <math.h> + +FLOAT +M_DECL_FUNC (__fminimum_mag) (FLOAT x, FLOAT y) +{ + FLOAT ax = M_FABS (x); + FLOAT ay = M_FABS (y); + if (isless (ax, ay)) + return x; + else if (isgreater (ax, ay)) + return y; + else if (ax == ay) + return (M_COPYSIGN (1, x) <= M_COPYSIGN (1, y) ? x : y); + else + return x + y; +} +declare_mgen_alias (__fminimum_mag, fminimum_mag); diff --git a/math/s_fminimum_num_template.c b/math/s_fminimum_num_template.c new file mode 100644 index 0000000000..cdc245da32 --- /dev/null +++ b/math/s_fminimum_num_template.c @@ -0,0 +1,33 @@ +/* Return minimum number of X and Y. + Copyright (C) 1997-2021 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 + <https://www.gnu.org/licenses/>. */ + +#include <math.h> + +FLOAT +M_DECL_FUNC (__fminimum_num) (FLOAT x, FLOAT y) +{ + if (isless (x, y)) + return x; + else if (isgreater (x, y)) + return y; + else if (x == y) + return (M_COPYSIGN (1, x) <= M_COPYSIGN (1, y) ? x : y); + else + return isnan (y) ? (isnan (x) ? x + y : x) : y; +} +declare_mgen_alias (__fminimum_num, fminimum_num); diff --git a/math/s_fminimum_template.c b/math/s_fminimum_template.c new file mode 100644 index 0000000000..9da7beb674 --- /dev/null +++ b/math/s_fminimum_template.c @@ -0,0 +1,33 @@ +/* Return minimum of X and Y. + Copyright (C) 1997-2021 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 + <https://www.gnu.org/licenses/>. */ + +#include <math.h> + +FLOAT +M_DECL_FUNC (__fminimum) (FLOAT x, FLOAT y) +{ + if (isless (x, y)) + return x; + else if (isgreater (x, y)) + return y; + else if (x == y) + return (M_COPYSIGN (1, x) <= M_COPYSIGN (1, y) ? x : y); + else + return x + y; +} +declare_mgen_alias (__fminimum, fminimum); diff --git a/math/test-tgmath.c b/math/test-tgmath.c index 6ec7760c62..f9b5fc640f 100644 --- a/math/test-tgmath.c +++ b/math/test-tgmath.c @@ -48,7 +48,7 @@ volatile int count_cdouble; volatile int count_cfloat; volatile int count_cldouble; -#define NCALLS 132 +#define NCALLS 156 #define NCALLS_INT 4 #define NCCALLS 47 @@ -290,6 +290,14 @@ F(compile_test) (void) a = fmin (fmin (x, a), fmin (c, b)); b = fmaxmag (fmaxmag (a, x), fmaxmag (c, b)); a = fminmag (fminmag (x, a), fminmag (c, b)); + b = fmaximum (fmaximum (a, x), fmaximum (c, b)); + a = fminimum (fminimum (x, a), fminimum (c, b)); + b = fmaximum_num (fmaximum_num (a, x), fmaximum_num (c, b)); + a = fminimum_num (fminimum_num (x, a), fminimum_num (c, b)); + b = fmaximum_mag (fmaximum_mag (a, x), fmaximum_mag (c, b)); + a = fminimum_mag (fminimum_mag (x, a), fminimum_mag (c, b)); + b = fmaximum_mag_num (fmaximum_mag_num (a, x), fmaximum_mag_num (c, b)); + a = fminimum_mag_num (fminimum_mag_num (x, a), fminimum_mag_num (c, b)); b = fma (sin (a), sin (x), sin (c)); #ifdef TEST_INT @@ -393,6 +401,14 @@ F(compile_test) (void) a = fmin (y, y); a = fmaxmag (y, y); a = fminmag (y, y); + a = fmaximum (y, y); + a = fminimum (y, y); + a = fmaximum_num (y, y); + a = fminimum_num (y, y); + a = fmaximum_mag (y, y); + a = fminimum_mag (y, y); + a = fmaximum_mag_num (y, y); + a = fminimum_mag_num (y, y); a = fma (y, y, y); #ifdef TEST_INT @@ -944,6 +960,70 @@ TYPE } TYPE +(F(fminimum)) (TYPE x, TYPE y) +{ + ++count; + P (); + return x + y; +} + +TYPE +(F(fmaximum)) (TYPE x, TYPE y) +{ + ++count; + P (); + return x + y; +} + +TYPE +(F(fminimum_num)) (TYPE x, TYPE y) +{ + ++count; + P (); + return x + y; +} + +TYPE +(F(fmaximum_num)) (TYPE x, TYPE y) +{ + ++count; + P (); + return x + y; +} + +TYPE +(F(fminimum_mag)) (TYPE x, TYPE y) +{ + ++count; + P (); + return x + y; +} + +TYPE +(F(fmaximum_mag)) (TYPE x, TYPE y) +{ + ++count; + P (); + return x + y; +} + +TYPE +(F(fminimum_mag_num)) (TYPE x, TYPE y) +{ + ++count; + P (); + return x + y; +} + +TYPE +(F(fmaximum_mag_num)) (TYPE x, TYPE y) +{ + ++count; + P (); + return x + y; +} + +TYPE (F(fma)) (TYPE x, TYPE y, TYPE z) { ++count; diff --git a/math/tgmath.h b/math/tgmath.h index 5fdc7982b2..9868353c46 100644 --- a/math/tgmath.h +++ b/math/tgmath.h @@ -929,6 +929,38 @@ # define fminmag(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fminmag) #endif +#if __GLIBC_USE (ISOC2X) +/* Return maximum value from X and Y. */ +# define fmaximum(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fmaximum) + +/* Return minimum value from X and Y. */ +# define fminimum(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fminimum) + +/* Return maximum numeric value from X and Y. */ +# define fmaximum_num(Val1, Val2) \ + __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fmaximum_num) + +/* Return minimum numeric value from X and Y. */ +# define fminimum_num(Val1, Val2) \ + __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fminimum_num) + +/* Return value with maximum magnitude. */ +# define fmaximum_mag(Val1, Val2) \ + __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fmaximum_mag) + +/* Return value with minimum magnitude. */ +# define fminimum_mag(Val1, Val2) \ + __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fminimum_mag) + +/* Return numeric value with maximum magnitude. */ +# define fmaximum_mag_num(Val1, Val2) \ + __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fmaximum_mag_num) + +/* Return numeric value with minimum magnitude. */ +# define fminimum_mag_num(Val1, Val2) \ + __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fminimum_mag_num) +#endif + /* Absolute value, conjugates, and projection. */ diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Versions b/sysdeps/ieee754/ldbl-128ibm-compat/Versions index 03a66134c4..d4ffd3762b 100644 --- a/sysdeps/ieee754/ldbl-128ibm-compat/Versions +++ b/sysdeps/ieee754/ldbl-128ibm-compat/Versions @@ -128,6 +128,14 @@ libm { __f64fmaieee128; __f32sqrtieee128; __f64sqrtieee128; + __fmaximumieee128; + __fmaximum_numieee128; + __fmaximum_magieee128; + __fmaximum_mag_numieee128; + __fminimumieee128; + __fminimum_numieee128; + __fminimum_magieee128; + __fminimum_mag_numieee128; } } libc { diff --git a/sysdeps/ieee754/ldbl-opt/Makefile b/sysdeps/ieee754/ldbl-opt/Makefile index 6b21680033..1d01846476 100644 --- a/sysdeps/ieee754/ldbl-opt/Makefile +++ b/sysdeps/ieee754/ldbl-opt/Makefile @@ -45,7 +45,9 @@ 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 \ - fdiv ddiv ffma dfma fmul dmul fsqrt dsqrt fsub dsub + fdiv ddiv ffma dfma fmul dmul fsqrt dsqrt fsub dsub \ + fmaximum fmaximum_mag fmaximum_num fmaximum_mag_num \ + fminimum fminimum_mag fminimum_num fminimum_mag_num libnldbl-routines = $(libnldbl-calls:%=nldbl-%) libnldbl-inhibit-o = $(object-suffixes) libnldbl-static-only-routines = $(libnldbl-routines) @@ -108,8 +110,16 @@ CFLAGS-nldbl-finite.c = -fno-builtin-finitel CFLAGS-nldbl-floor.c = -fno-builtin-floorl CFLAGS-nldbl-fma.c = -fno-builtin-fmal CFLAGS-nldbl-fmax.c = -fno-builtin-fmaxl +CFLAGS-nldbl-fmaximum.c += -fno-builtin-fmaximuml +CFLAGS-nldbl-fmaximum_mag.c += -fno-builtin-fmaximum_magl +CFLAGS-nldbl-fmaximum_mag_num.c += -fno-builtin-fmaximum_mag_numl +CFLAGS-nldbl-fmaximum_num.c += -fno-builtin-fmaximum_numl CFLAGS-nldbl-fmaxmag.c = -fno-builtin-fmaxmagl CFLAGS-nldbl-fmin.c = -fno-builtin-fminl +CFLAGS-nldbl-fminimum.c += -fno-builtin-fminimuml +CFLAGS-nldbl-fminimum_mag.c += -fno-builtin-fminimum_magl +CFLAGS-nldbl-fminimum_mag_num.c += -fno-builtin-fminimum_mag_numl +CFLAGS-nldbl-fminimum_num.c += -fno-builtin-fminimum_numl CFLAGS-nldbl-fminmag.c = -fno-builtin-fminmagl CFLAGS-nldbl-fmod.c = -fno-builtin-fmodl CFLAGS-nldbl-fmul.c = -fno-builtin-fmull diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum.c b/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum.c new file mode 100644 index 0000000000..f26de00184 --- /dev/null +++ b/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum.c @@ -0,0 +1,26 @@ +/* Compatibility routine for IEEE double as long double for fmaximum. + Copyright (C) 2021 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 + <https://www.gnu.org/licenses/>. */ + +#include "nldbl-compat.h" + +double +attribute_hidden +fmaximuml (double x, double y) +{ + return fmaximum (x, y); +} diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_mag.c b/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_mag.c new file mode 100644 index 0000000000..5c6f9e6fbb --- /dev/null +++ b/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_mag.c @@ -0,0 +1,26 @@ +/* Compatibility routine for IEEE double as long double for fmaximum_mag. + Copyright (C) 2021 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 + <https://www.gnu.org/licenses/>. */ + +#include "nldbl-compat.h" + +double +attribute_hidden +fmaximum_magl (double x, double y) +{ + return fmaximum_mag (x, y); +} diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_mag_num.c b/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_mag_num.c new file mode 100644 index 0000000000..66c84e3ec0 --- /dev/null +++ b/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_mag_num.c @@ -0,0 +1,26 @@ +/* Compatibility routine for IEEE double as long double for fmaximum_mag_num. + Copyright (C) 2021 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 + <https://www.gnu.org/licenses/>. */ + +#include "nldbl-compat.h" + +double +attribute_hidden +fmaximum_mag_numl (double x, double y) +{ + return fmaximum_mag_num (x, y); +} diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_num.c b/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_num.c new file mode 100644 index 0000000000..72fba4a477 --- /dev/null +++ b/sysdeps/ieee754/ldbl-opt/nldbl-fmaximum_num.c @@ -0,0 +1,26 @@ +/* Compatibility routine for IEEE double as long double for fmaximum_num. + Copyright (C) 2021 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 + <https://www.gnu.org/licenses/>. */ + +#include "nldbl-compat.h" + +double +attribute_hidden +fmaximum_numl (double x, double y) +{ + return fmaximum_num (x, y); +} diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fminimum.c b/sysdeps/ieee754/ldbl-opt/nldbl-fminimum.c new file mode 100644 index 0000000000..9247a814fe --- /dev/null +++ b/sysdeps/ieee754/ldbl-opt/nldbl-fminimum.c @@ -0,0 +1,26 @@ +/* Compatibility routine for IEEE double as long double for fminimum. + Copyright (C) 2021 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 + <https://www.gnu.org/licenses/>. */ + +#include "nldbl-compat.h" + +double +attribute_hidden +fminimuml (double x, double y) +{ + return fminimum (x, y); +} diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fminimum_mag.c b/sysdeps/ieee754/ldbl-opt/nldbl-fminimum_mag.c new file mode 100644 index 0000000000..175f6d7d92 --- /dev/null +++ b/sysdeps/ieee754/ldbl-opt/nldbl-fminimum_mag.c @@ -0,0 +1,26 @@ +/* Compatibility routine for IEEE double as long double for fminimum_mag. + Copyright (C) 2021 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 + <https://www.gnu.org/licenses/>. */ + +#include "nldbl-compat.h" + +double +attribute_hidden +fminimum_magl (double x, double y) +{ + return fminimum_mag (x, y); +} diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fminimum_mag_num.c b/sysdeps/ieee754/ldbl-opt/nldbl-fminimum_mag_num.c new file mode 100644 index 0000000000..b37b4a5e68 --- /dev/null +++ b/sysdeps/ieee754/ldbl-opt/nldbl-fminimum_mag_num.c @@ -0,0 +1,26 @@ +/* Compatibility routine for IEEE double as long double for fminimum_mag_num. + Copyright (C) 2021 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 + <https://www.gnu.org/licenses/>. */ + +#include "nldbl-compat.h" + +double +attribute_hidden +fminimum_mag_numl (double x, double y) +{ + return fminimum_mag_num (x, y); +} diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-fminimum_num.c b/sysdeps/ieee754/ldbl-opt/nldbl-fminimum_num.c new file mode 100644 index 0000000000..2cbd5a8188 --- /dev/null +++ b/sysdeps/ieee754/ldbl-opt/nldbl-fminimum_num.c @@ -0,0 +1,26 @@ +/* Compatibility routine for IEEE double as long double for fminimum_num. + Copyright (C) 2021 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 + <https://www.gnu.org/licenses/>. */ + +#include "nldbl-compat.h" + +double +attribute_hidden +fminimum_numl (double x, double y) +{ + return fminimum_num (x, y); +} diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist index 51e1bc00fd..abf91bd142 100644 --- a/sysdeps/mach/hurd/i386/libm.abilist +++ b/sysdeps/mach/hurd/i386/libm.abilist @@ -1113,5 +1113,69 @@ GLIBC_2.35 f64xfmaf128 F GLIBC_2.35 f64xsqrtf128 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf128 F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numf64x F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf128 F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magf64x F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf128 F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numf64x F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf128 F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximumf64x F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf128 F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numf64x F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf128 F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magf64x F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf128 F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numf64x F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf128 F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimumf64x F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F diff --git a/sysdeps/powerpc/nofpu/Makefile b/sysdeps/powerpc/nofpu/Makefile index 80c762ebdf..3b51ff6d18 100644 --- a/sysdeps/powerpc/nofpu/Makefile +++ b/sysdeps/powerpc/nofpu/Makefile @@ -50,4 +50,8 @@ CFLAGS-e_log2l.c += -fno-builtin-fabsl CFLAGS-e_remainderl.c += -fno-builtin-fabsl CFLAGS-s_fmaxmagl.c += -fno-builtin-fabsl CFLAGS-s_fminmagl.c += -fno-builtin-fabsl +CFLAGS-s_fmaximum_magl.c += -fno-builtin-fabsl +CFLAGS-s_fmaximum_mag_numl.c += -fno-builtin-fabsl +CFLAGS-s_fminimum_magl.c += -fno-builtin-fabsl +CFLAGS-s_fminimum_mag_numl.c += -fno-builtin-fabsl endif diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist index 9bf30560a0..1cef7d3db7 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist @@ -1078,5 +1078,69 @@ GLIBC_2.35 f64xfmaf128 F GLIBC_2.35 f64xsqrtf128 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf128 F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numf64x F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf128 F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magf64x F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf128 F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numf64x F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf128 F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximumf64x F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf128 F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numf64x F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf128 F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magf64x F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf128 F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numf64x F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf128 F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimumf64x F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist index a1ad3c7682..59d51021fa 100644 --- a/sysdeps/unix/sysv/linux/alpha/libm.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist @@ -1135,6 +1135,70 @@ GLIBC_2.35 f64xfmaf128 F GLIBC_2.35 f64xsqrtf128 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf128 F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numf64x F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf128 F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magf64x F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf128 F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numf64x F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf128 F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximumf64x F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf128 F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numf64x F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf128 F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magf64x F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf128 F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numf64x F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf128 F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimumf64x F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.4 __clog10l F diff --git a/sysdeps/unix/sysv/linux/arc/libm.abilist b/sysdeps/unix/sysv/linux/arc/libm.abilist index 32aa436456..f2169f8f57 100644 --- a/sysdeps/unix/sysv/linux/arc/libm.abilist +++ b/sysdeps/unix/sysv/linux/arc/libm.abilist @@ -707,5 +707,53 @@ GLIBC_2.35 f32xfmaf64 F GLIBC_2.35 f32xsqrtf64 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/arm/be/libm.abilist b/sysdeps/unix/sysv/linux/arm/be/libm.abilist index 6567ac7730..44666ad7cd 100644 --- a/sysdeps/unix/sysv/linux/arm/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/be/libm.abilist @@ -481,6 +481,54 @@ GLIBC_2.35 f32xfmaf64 F GLIBC_2.35 f32xsqrtf64 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.4 _LIB_VERSION D 0x4 diff --git a/sysdeps/unix/sysv/linux/arm/le/libm.abilist b/sysdeps/unix/sysv/linux/arm/le/libm.abilist index 6567ac7730..44666ad7cd 100644 --- a/sysdeps/unix/sysv/linux/arm/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/le/libm.abilist @@ -481,6 +481,54 @@ GLIBC_2.35 f32xfmaf64 F GLIBC_2.35 f32xsqrtf64 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.4 _LIB_VERSION D 0x4 diff --git a/sysdeps/unix/sysv/linux/csky/libm.abilist b/sysdeps/unix/sysv/linux/csky/libm.abilist index e76270cf1d..225a5e9b81 100644 --- a/sysdeps/unix/sysv/linux/csky/libm.abilist +++ b/sysdeps/unix/sysv/linux/csky/libm.abilist @@ -773,5 +773,53 @@ GLIBC_2.35 f32xfmaf64 F GLIBC_2.35 f32xsqrtf64 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist index 8c80c9f2af..35d316a720 100644 --- a/sysdeps/unix/sysv/linux/hppa/libm.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist @@ -792,6 +792,54 @@ GLIBC_2.35 f32xfmaf64 F GLIBC_2.35 f32xsqrtf64 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/i386/libm.abilist b/sysdeps/unix/sysv/linux/i386/libm.abilist index 51ebd7f227..ef99b3e104 100644 --- a/sysdeps/unix/sysv/linux/i386/libm.abilist +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist @@ -1120,5 +1120,69 @@ GLIBC_2.35 f64xfmaf128 F GLIBC_2.35 f64xsqrtf128 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf128 F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numf64x F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf128 F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magf64x F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf128 F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numf64x F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf128 F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximumf64x F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf128 F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numf64x F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf128 F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magf64x F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf128 F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numf64x F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf128 F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimumf64x F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/ia64/libm.abilist b/sysdeps/unix/sysv/linux/ia64/libm.abilist index a817771484..31933a7ff5 100644 --- a/sysdeps/unix/sysv/linux/ia64/libm.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libm.abilist @@ -1050,5 +1050,69 @@ GLIBC_2.35 f64xfmaf128 F GLIBC_2.35 f64xsqrtf128 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf128 F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numf64x F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf128 F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magf64x F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf128 F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numf64x F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf128 F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximumf64x F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf128 F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numf64x F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf128 F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magf64x F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf128 F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numf64x F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf128 F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimumf64x F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist index 6567ac7730..44666ad7cd 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist @@ -481,6 +481,54 @@ GLIBC_2.35 f32xfmaf64 F GLIBC_2.35 f32xsqrtf64 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.4 _LIB_VERSION D 0x4 diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist index 3503533664..58316c96ae 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist @@ -832,5 +832,53 @@ GLIBC_2.35 f32xfmaf64 F GLIBC_2.35 f32xsqrtf64 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist index 3115cd6afe..b5e5da0272 100644 --- a/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/be/libm.abilist @@ -793,5 +793,53 @@ GLIBC_2.35 f32xfmaf64 F GLIBC_2.35 f32xsqrtf64 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist index 3115cd6afe..b5e5da0272 100644 --- a/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/le/libm.abilist @@ -793,5 +793,53 @@ GLIBC_2.35 f32xfmaf64 F GLIBC_2.35 f32xsqrtf64 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist index 82995a9c3b..4113d3170d 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist @@ -792,6 +792,54 @@ GLIBC_2.35 f32xfmaf64 F GLIBC_2.35 f32xsqrtf64 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist index df8eaa2dba..18fe9cc57a 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist @@ -1078,5 +1078,69 @@ GLIBC_2.35 f64xfmaf128 F GLIBC_2.35 f64xsqrtf128 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf128 F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numf64x F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf128 F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magf64x F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf128 F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numf64x F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf128 F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximumf64x F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf128 F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numf64x F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf128 F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magf64x F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf128 F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numf64x F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf128 F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimumf64x F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/nios2/libm.abilist b/sysdeps/unix/sysv/linux/nios2/libm.abilist index df148c1990..3a2b34ecc2 100644 --- a/sysdeps/unix/sysv/linux/nios2/libm.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libm.abilist @@ -793,5 +793,53 @@ GLIBC_2.35 f32xfmaf64 F GLIBC_2.35 f32xsqrtf64 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist index ff9046d243..740cc8f55b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist @@ -838,6 +838,54 @@ GLIBC_2.35 f32xfmaf64 F GLIBC_2.35 f32xsqrtf64 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.4 __clog10l F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist index 24cfb00ce6..16fb30566b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist @@ -837,6 +837,54 @@ GLIBC_2.35 f32xfmaf64 F GLIBC_2.35 f32xsqrtf64 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.4 __clog10l F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist index 29d4892722..ad4b98c09a 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist @@ -831,6 +831,54 @@ GLIBC_2.35 f32xfmaf64 F GLIBC_2.35 f32xsqrtf64 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.4 __clog10l F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist index 07753c0cce..955765051c 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist @@ -1218,6 +1218,14 @@ GLIBC_2.35 __f32fmaieee128 F GLIBC_2.35 __f32sqrtieee128 F GLIBC_2.35 __f64fmaieee128 F GLIBC_2.35 __f64sqrtieee128 F +GLIBC_2.35 __fmaximum_mag_numieee128 F +GLIBC_2.35 __fmaximum_magieee128 F +GLIBC_2.35 __fmaximum_numieee128 F +GLIBC_2.35 __fmaximumieee128 F +GLIBC_2.35 __fminimum_mag_numieee128 F +GLIBC_2.35 __fminimum_magieee128 F +GLIBC_2.35 __fminimum_numieee128 F +GLIBC_2.35 __fminimumieee128 F GLIBC_2.35 dfmal F GLIBC_2.35 dsqrtl F GLIBC_2.35 f32fmaf128 F @@ -1242,5 +1250,69 @@ GLIBC_2.35 f64xfmaf128 F GLIBC_2.35 f64xsqrtf128 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf128 F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numf64x F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf128 F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magf64x F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf128 F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numf64x F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf128 F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximumf64x F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf128 F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numf64x F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf128 F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magf64x F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf128 F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numf64x F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf128 F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimumf64x F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist b/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist index ed5bd3bf6b..45ca5c677a 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv32/libm.abilist @@ -962,5 +962,69 @@ GLIBC_2.35 f64xfmaf128 F GLIBC_2.35 f64xsqrtf128 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf128 F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numf64x F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf128 F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magf64x F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf128 F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numf64x F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf128 F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximumf64x F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf128 F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numf64x F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf128 F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magf64x F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf128 F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numf64x F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf128 F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimumf64x F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist index e592d9da6e..4838edf991 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist @@ -1059,5 +1059,69 @@ GLIBC_2.35 f64xfmaf128 F GLIBC_2.35 f64xsqrtf128 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf128 F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numf64x F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf128 F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magf64x F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf128 F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numf64x F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf128 F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximumf64x F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf128 F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numf64x F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf128 F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magf64x F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf128 F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numf64x F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf128 F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimumf64x F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist index 6f55647398..1f5bd7754d 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist @@ -1079,6 +1079,70 @@ GLIBC_2.35 f64xfmaf128 F GLIBC_2.35 f64xsqrtf128 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf128 F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numf64x F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf128 F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magf64x F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf128 F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numf64x F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf128 F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximumf64x F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf128 F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numf64x F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf128 F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magf64x F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf128 F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numf64x F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf128 F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimumf64x F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.4 __clog10l F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist index 237a880c6a..0b18481f39 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist @@ -1079,6 +1079,70 @@ GLIBC_2.35 f64xfmaf128 F GLIBC_2.35 f64xsqrtf128 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf128 F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numf64x F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf128 F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magf64x F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf128 F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numf64x F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf128 F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximumf64x F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf128 F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numf64x F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf128 F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magf64x F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf128 F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numf64x F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf128 F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimumf64x F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.4 __clog10l F diff --git a/sysdeps/unix/sysv/linux/sh/be/libm.abilist b/sysdeps/unix/sysv/linux/sh/be/libm.abilist index bdd8edfa13..f525a9e77e 100644 --- a/sysdeps/unix/sysv/linux/sh/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/be/libm.abilist @@ -792,6 +792,54 @@ GLIBC_2.35 f32xfmaf64 F GLIBC_2.35 f32xsqrtf64 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/sh/le/libm.abilist b/sysdeps/unix/sysv/linux/sh/le/libm.abilist index bdd8edfa13..f525a9e77e 100644 --- a/sysdeps/unix/sysv/linux/sh/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/le/libm.abilist @@ -792,6 +792,54 @@ GLIBC_2.35 f32xfmaf64 F GLIBC_2.35 f32xsqrtf64 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.4 exp2l F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist index 76ab323332..727d1ce707 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist @@ -1086,6 +1086,70 @@ GLIBC_2.35 f64xfmaf128 F GLIBC_2.35 f64xsqrtf128 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf128 F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numf64x F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf128 F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magf64x F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf128 F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numf64x F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf128 F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximumf64x F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf128 F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numf64x F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf128 F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magf64x F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf128 F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numf64x F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf128 F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimumf64x F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F GLIBC_2.4 __clog10l F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist index d1c2fe6714..0f57574523 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist @@ -1078,5 +1078,69 @@ GLIBC_2.35 f64xfmaf128 F GLIBC_2.35 f64xsqrtf128 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf128 F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numf64x F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf128 F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magf64x F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf128 F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numf64x F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf128 F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximumf64x F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf128 F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numf64x F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf128 F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magf64x F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf128 F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numf64x F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf128 F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimumf64x F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist index 13e1d9f0c8..574789e061 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist @@ -1111,5 +1111,69 @@ GLIBC_2.35 f64xfmaf128 F GLIBC_2.35 f64xsqrtf128 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf128 F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numf64x F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf128 F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magf64x F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf128 F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numf64x F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf128 F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximumf64x F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf128 F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numf64x F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf128 F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magf64x F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf128 F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numf64x F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf128 F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimumf64x F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist index 40b5f7f9b0..1dc89b304d 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist @@ -1111,5 +1111,69 @@ GLIBC_2.35 f64xfmaf128 F GLIBC_2.35 f64xsqrtf128 F GLIBC_2.35 ffma F GLIBC_2.35 ffmal F +GLIBC_2.35 fmaximum F +GLIBC_2.35 fmaximum_mag F +GLIBC_2.35 fmaximum_mag_num F +GLIBC_2.35 fmaximum_mag_numf F +GLIBC_2.35 fmaximum_mag_numf128 F +GLIBC_2.35 fmaximum_mag_numf32 F +GLIBC_2.35 fmaximum_mag_numf32x F +GLIBC_2.35 fmaximum_mag_numf64 F +GLIBC_2.35 fmaximum_mag_numf64x F +GLIBC_2.35 fmaximum_mag_numl F +GLIBC_2.35 fmaximum_magf F +GLIBC_2.35 fmaximum_magf128 F +GLIBC_2.35 fmaximum_magf32 F +GLIBC_2.35 fmaximum_magf32x F +GLIBC_2.35 fmaximum_magf64 F +GLIBC_2.35 fmaximum_magf64x F +GLIBC_2.35 fmaximum_magl F +GLIBC_2.35 fmaximum_num F +GLIBC_2.35 fmaximum_numf F +GLIBC_2.35 fmaximum_numf128 F +GLIBC_2.35 fmaximum_numf32 F +GLIBC_2.35 fmaximum_numf32x F +GLIBC_2.35 fmaximum_numf64 F +GLIBC_2.35 fmaximum_numf64x F +GLIBC_2.35 fmaximum_numl F +GLIBC_2.35 fmaximumf F +GLIBC_2.35 fmaximumf128 F +GLIBC_2.35 fmaximumf32 F +GLIBC_2.35 fmaximumf32x F +GLIBC_2.35 fmaximumf64 F +GLIBC_2.35 fmaximumf64x F +GLIBC_2.35 fmaximuml F +GLIBC_2.35 fminimum F +GLIBC_2.35 fminimum_mag F +GLIBC_2.35 fminimum_mag_num F +GLIBC_2.35 fminimum_mag_numf F +GLIBC_2.35 fminimum_mag_numf128 F +GLIBC_2.35 fminimum_mag_numf32 F +GLIBC_2.35 fminimum_mag_numf32x F +GLIBC_2.35 fminimum_mag_numf64 F +GLIBC_2.35 fminimum_mag_numf64x F +GLIBC_2.35 fminimum_mag_numl F +GLIBC_2.35 fminimum_magf F +GLIBC_2.35 fminimum_magf128 F +GLIBC_2.35 fminimum_magf32 F +GLIBC_2.35 fminimum_magf32x F +GLIBC_2.35 fminimum_magf64 F +GLIBC_2.35 fminimum_magf64x F +GLIBC_2.35 fminimum_magl F +GLIBC_2.35 fminimum_num F +GLIBC_2.35 fminimum_numf F +GLIBC_2.35 fminimum_numf128 F +GLIBC_2.35 fminimum_numf32 F +GLIBC_2.35 fminimum_numf32x F +GLIBC_2.35 fminimum_numf64 F +GLIBC_2.35 fminimum_numf64x F +GLIBC_2.35 fminimum_numl F +GLIBC_2.35 fminimumf F +GLIBC_2.35 fminimumf128 F +GLIBC_2.35 fminimumf32 F +GLIBC_2.35 fminimumf32x F +GLIBC_2.35 fminimumf64 F +GLIBC_2.35 fminimumf64x F +GLIBC_2.35 fminimuml F GLIBC_2.35 fsqrt F GLIBC_2.35 fsqrtl F |