diff options
59 files changed, 1521 insertions, 579 deletions
diff --git a/ChangeLog b/ChangeLog index c49d952a0a..586f9dc4b8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,158 @@ +2019-08-15 Joseph Myers <joseph@codesourcery.com> + + * math/bits/mathcalls.h + [__GLIBC_USE (IEC_60559_BFP_EXT) || __MATH_DECLARING_FLOATN] + (totalorder): Take pointer arguments. + [__GLIBC_USE (IEC_60559_BFP_EXT) || __MATH_DECLARING_FLOATN] + (totalordermag): Likewise. + * manual/arith.texi (totalorder): Likewise. + (totalorderf): Likewise. + (totalorderl): Likewise. + (totalorderfN): Likewise. + (totalorderfNx): Likewise. + (totalordermag): Likewise. + (totalordermagf): Likewise. + (totalordermagl): Likewise. + (totalordermagfN): Likewise. + (totalordermagfNx): Likewise. + * math/tgmath.h (__TGMATH_BINARY_REAL_RET_ONLY): Remove macro. + [__GLIBC_USE (IEC_60559_BFP_EXT)] (totalorder): Likewise. + [__GLIBC_USE (IEC_60559_BFP_EXT)] (totalordermag): Likewise. + * math/Versions (GLIBC_2.31): Add totalorder, totalorderf, + totalorderl, totalordermag, totalordermagf, totalordermagl, + totalorderf32, totalorderf64, totalorderf32x, totalordermagf32, + totalordermagf64, totalordermagf32x, totalorderf64x, + totalordermagf64x, totalorderf128 and totalordermagf128. + * math/Makefile (libm-test-funcs-noauto): Add compat_totalorder + and compat_totalordermag. + (libm-test-funcs-compat): New variable. + (libm-tests-compat): Likewise. + (tests): Do not include compat tests. + (tests-internal): Add compat tests. + ($(foreach t,$(libm-tests-base), + $(objpfx)$(t)-compat_totalorder.o)): Depend + on $(objpfx)libm-test-totalorder.c. + ($(foreach t,$(libm-tests-base), + $(objpfx)$(t)-compat_totalordermag.o): Depend on + $(objpfx)libm-test-totalordermag.c. + (tgmath3-macros): Remove totalorder and totalordermag. + * math/libm-test-compat_totalorder.inc: New file. + * math/libm-test-compat_totalordermag.inc: Likewise. + * math/libm-test-driver.c (struct test_ff_i_data): Update comment. + (RUN_TEST_fpfp_b): New macro. + (RUN_TEST_LOOP_fpfp_b): Likewise. + * math/libm-test-totalorder.inc (totalorder_test_data): Use + TEST_fpfp_b. + (totalorder_test): Condition on [!COMPAT_TEST]. + (do_test): Likewise. + * math/libm-test-totalordermag.inc (totalordermag_test_data): Use + TEST_fpfp_b. + (totalordermag_test): Condition on [!COMPAT_TEST]. + (do_test): Likewise. + * math/gen-tgmath-tests.py (Tests.add_all_tests): Remove + totalorder and totalordermag. + * math/test-tgmath.c (NCALLS): Change to 132. + (F(compile_test)): Do not call totalorder or totalordermag. + (F(totalorder)): Remove. + (F(totalordermag)): Likewise. + * include/float.h (__STDC_WANT_IEC_60559_TYPES_EXT__): Do not + define if [__STDC_WANT_IEC_60559_TYPES_EXT__]. + * include/setjmp.h [!_ISOMAC] (STR_HELPER): Rename to + SJSTR_HELPER. + [!_ISOMAC] (STR): Rename to SJSTR. Update call to STR_HELPER. + [!_ISOMAC] (TEST_SIZE): Update call to STR. + [!_ISOMAC] (TEST_ALIGN): Likewise. + [!_ISOMAC] (TEST_OFFSET): Likewise. + * sysdeps/ieee754/dbl-64/s_totalorder.c: Include <shlib-compat.h> + and <first-versions.h>. + (__totalorder): Take pointer arguments. Add symbol versions and + compat symbols. + * sysdeps/ieee754/dbl-64/s_totalordermag.c: Include + <shlib-compat.h> and <first-versions.h>. + (__totalordermag): Take pointer arguments. Add symbol versions + and compat symbols. + * sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c: Include + <shlib-compat.h> and <first-versions.h>. + (__totalorder): Take pointer arguments. Add symbol versions and + compat symbols. + * sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c: Include + <shlib-compat.h> and <first-versions.h>. + (__totalordermag): Take pointer arguments. Add symbol versions + and compat symbols. + * sysdeps/ieee754/float128/float128_private.h + (__totalorder_compatl): New macro. + (__totalordermag_compatl): Likewise. + * sysdeps/ieee754/flt-32/s_totalorderf.c: Include <shlib-compat.h> + and <first-versions.h>. + (__totalorderf): Take pointer arguments. Add symbol versions and + compat symbols. + * sysdeps/ieee754/flt-32/s_totalordermagf.c: Include + <shlib-compat.h> and <first-versions.h>. + (__totalordermagf): Take pointer arguments. Add symbol versions + and compat symbols. + * sysdeps/ieee754/ldbl-128/s_totalorderl.c: Include + <shlib-compat.h> and <first-versions.h>. + (__totalorderl): Take pointer arguments. Add symbol versions and + compat symbols. + * sysdeps/ieee754/ldbl-128/s_totalordermagl.c: Include + <shlib-compat.h> and <first-versions.h>. + (__totalordermagl): Take pointer arguments. Add symbol versions + and compat symbols. + * sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c: Include + <shlib-compat.h>. + (__totalorderl): Take pointer arguments. Add symbol versions and + compat symbols. + * sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c: Include + <shlib-compat.h>. + (__totalordermagl): Take pointer arguments. Add symbol versions + and compat symbols. + * sysdeps/ieee754/ldbl-96/s_totalorderl.c: Include + <shlib-compat.h> and <first-versions.h>. + (__totalorderl): Take pointer arguments. Add symbol versions and + compat symbols. + * sysdeps/ieee754/ldbl-96/s_totalordermagl.c: Include + <shlib-compat.h> and <first-versions.h>. + (__totalordermagl): Take pointer arguments. Add symbol versions + and compat symbols. + * sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c (totalorderl): Take + pointer arguments. + * sysdeps/ieee754/ldbl-opt/nldbl-totalordermag.c (totalordermagl): + Likewise. + * sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c + (do_test): Update calls to totalorderl and totalordermagl. + * sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c (do_test): + Update calls to totalorderl and totalordermagl. + * sysdeps/mach/hurd/i386/libm.abilist: Update. + * sysdeps/unix/sysv/linux/aarch64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/alpha/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/arm/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/csky/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/hppa/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/i386/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/ia64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/microblaze/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/mips/mips64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/nios2/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist: + Likewise. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist: + Likewise. + * sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/sh/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/64/libm.abilist: Likewise. + * sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist: Likewise. + 2019-08-15 Florian Weimer <fweimer@redhat.com> [BZ #24899] diff --git a/NEWS b/NEWS index 8ca7585c2c..045720b3fb 100644 --- a/NEWS +++ b/NEWS @@ -18,7 +18,12 @@ Major new features: Deprecated and removed features, and other changes affecting compatibility: - [Add deprecations, removals and changes affecting compatibility here] +* The totalorder and totalordermag functions, and the corresponding + functions for other floating-point types, now take pointer arguments to + avoid signaling NaNs possibly being converted to quiet NaNs in argument + passing. This is in accordance with the resolution of Clarification + Request 25 to TS 18661-1, as applied for C2X. Existing binaries that pass + floating-point arguments directly will continue to work. Changes to build and runtime requirements: diff --git a/include/float.h b/include/float.h index 7e65bb83cb..0f79ed695a 100644 --- a/include/float.h +++ b/include/float.h @@ -4,7 +4,9 @@ #define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION #include <bits/libc-header-start.h> -#ifndef _ISOMAC +/* Some tests also define this macro, requiring a check here to avoid + errors for duplicate definitions (see GCC bug 91451). */ +#if !defined _ISOMAC && !defined __STDC_WANT_IEC_60559_TYPES_EXT__ # define __STDC_WANT_IEC_60559_TYPES_EXT__ #endif diff --git a/include/setjmp.h b/include/setjmp.h index 263bc64b3d..e13017edd2 100644 --- a/include/setjmp.h +++ b/include/setjmp.h @@ -35,21 +35,21 @@ extern __typeof (__sigsetjmp) __sigsetjmp attribute_hidden; # include <stddef.h> # include <jmp_buf-macros.h> -# define STR_HELPER(x) #x -# define STR(x) STR_HELPER(x) +# define SJSTR_HELPER(x) #x +# define SJSTR(x) SJSTR_HELPER(x) # define TEST_SIZE(type, size) \ _Static_assert (sizeof (type) == size, \ "size of " #type " != " \ - STR (size)) + SJSTR (size)) # define TEST_ALIGN(type, align) \ _Static_assert (__alignof__ (type) == align , \ "align of " #type " != " \ - STR (align)) + SJSTR (align)) # define TEST_OFFSET(type, member, offset) \ _Static_assert (offsetof (type, member) == offset, \ "offset of " #member " field of " #type " != " \ - STR (offset)) + SJSTR (offset)) /* Check if jmp_buf have the expected sizes. */ TEST_SIZE (jmp_buf, JMP_BUF_SIZE); diff --git a/manual/arith.texi b/manual/arith.texi index 6ca7902b3d..89c2c064f1 100644 --- a/manual/arith.texi +++ b/manual/arith.texi @@ -2020,21 +2020,23 @@ exception and sets @code{errno} to @code{EDOM} if either argument is a NaN. @end deftypefn -@deftypefun int totalorder (double @var{x}, double @var{y}) -@deftypefunx int totalorderf (float @var{x}, float @var{y}) -@deftypefunx int totalorderl (long double @var{x}, long double @var{y}) -@deftypefunx int totalorderfN (_Float@var{N} @var{x}, _Float@var{N} @var{y}) -@deftypefunx int totalorderfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y}) +@deftypefun int totalorder (const double *@var{x}, const double *@var{y}) +@deftypefunx int totalorderf (const float *@var{x}, const float *@var{y}) +@deftypefunx int totalorderl (const long double *@var{x}, const long double *@var{y}) +@deftypefunx int totalorderfN (const _Float@var{N} *@var{x}, const _Float@var{N} *@var{y}) +@deftypefunx int totalorderfNx (const _Float@var{N}x *@var{x}, const _Float@var{N}x *@var{y}) @standards{TS 18661-1:2014, math.h} @standardsx{totalorderfN, TS 18661-3:2015, math.h} @standardsx{totalorderfNx, TS 18661-3:2015, math.h} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} These functions determine whether the total order relationship, -defined in IEEE 754-2008, is true for @var{x} and @var{y}, returning +defined in IEEE 754-2008, is true for @code{*@var{x}} and +@code{*@var{y}}, returning nonzero if it is true and zero if it is false. No exceptions are raised even for signaling NaNs. The relationship is true if they are the same floating-point value (including sign for zero and NaNs, and -payload for NaNs), or if @var{x} comes before @var{y} in the following +payload for NaNs), or if @code{*@var{x}} comes before @code{*@var{y}} +in the following order: negative quiet NaNs, in order of decreasing payload; negative signaling NaNs, in order of decreasing payload; negative infinity; finite numbers, in ascending order, with negative zero before positive @@ -2043,18 +2045,18 @@ increasing payload; positive quiet NaNs, in order of increasing payload. @end deftypefun -@deftypefun int totalordermag (double @var{x}, double @var{y}) -@deftypefunx int totalordermagf (float @var{x}, float @var{y}) -@deftypefunx int totalordermagl (long double @var{x}, long double @var{y}) -@deftypefunx int totalordermagfN (_Float@var{N} @var{x}, _Float@var{N} @var{y}) -@deftypefunx int totalordermagfNx (_Float@var{N}x @var{x}, _Float@var{N}x @var{y}) +@deftypefun int totalordermag (const double *@var{x}, const double *@var{y}) +@deftypefunx int totalordermagf (const float *@var{x}, const float *@var{y}) +@deftypefunx int totalordermagl (const long double *@var{x}, const long double *@var{y}) +@deftypefunx int totalordermagfN (const _Float@var{N} *@var{x}, const _Float@var{N} *@var{y}) +@deftypefunx int totalordermagfNx (const _Float@var{N}x *@var{x}, const _Float@var{N}x *@var{y}) @standards{TS 18661-1:2014, math.h} @standardsx{totalordermagfN, TS 18661-3:2015, math.h} @standardsx{totalordermagfNx, TS 18661-3:2015, math.h} @safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}} These functions determine whether the total order relationship, -defined in IEEE 754-2008, is true for the absolute values of @var{x} -and @var{y}, returning nonzero if it is true and zero if it is false. +defined in IEEE 754-2008, is true for the absolute values of @code{*@var{x}} +and @code{*@var{y}}, returning nonzero if it is true and zero if it is false. No exceptions are raised even for signaling NaNs. @end deftypefun diff --git a/math/Makefile b/math/Makefile index cb4eaec6a9..15c864c98b 100644 --- a/math/Makefile +++ b/math/Makefile @@ -287,7 +287,8 @@ libm-test-funcs-noauto = canonicalize ceil cimag conj copysign cproj creal \ nextup remainder remquo rint round roundeven scalb \ scalbln scalbn setpayload setpayloadsig signbit \ significand totalorder totalordermag trunc ufromfp \ - ufromfpx + ufromfpx compat_totalorder compat_totalordermag +libm-test-funcs-compat = compat_totalorder compat_totalordermag libm-test-funcs-narrow = add div mul sub libm-test-funcs-all = $(libm-test-funcs-auto) $(libm-test-funcs-noauto) libm-test-c-auto = $(foreach f,$(libm-test-funcs-auto),libm-test-$(f).c) @@ -319,6 +320,11 @@ libm-tests-vector = $(foreach t,$(libmvec-tests),\ $(foreach f,$($(t)-funcs),test-$(t)-$(f))) libm-tests = $(libm-tests-normal) $(libm-tests-finite) $(libm-tests-inline) \ $(libm-tests-narrow) $(libm-tests-vector) +libm-tests-compat = $(foreach t,$(libm-tests-base-normal) \ + $(libm-tests-base-finite) \ + $(libm-tests-base-inline),\ + $(foreach f,$(libm-test-funcs-compat),\ + $(t)-$(f))) libm-tests-for-type = $(foreach f,$(libm-test-funcs-all),\ test-$(1)-$(f) test-$(1)-finite-$(f) \ test-i$(1)-$(f)) \ @@ -327,7 +333,8 @@ libm-tests-for-type = $(foreach f,$(libm-test-funcs-all),\ libm-tests.o = $(addsuffix .o,$(libm-tests)) -tests += $(libm-tests) +tests += $(filter-out $(libm-tests-compat),$(libm-tests)) +tests-internal += $(libm-tests-compat) generated += $(addsuffix .c,$(libm-tests)) \ $(foreach t,$(test-types),libm-test-support-$(t).c) @@ -352,6 +359,15 @@ $(libm-test-c-narrow-obj): $(objpfx)libm-test%.c: libm-test%.inc \ $(make-target-directory) $(PYTHON) gen-libm-test.py -c $< -a auto-libm-test-out$* -C $@ +# Tests for totalorder compat symbols reuse the table of tests as +# processed by gen-libm-test.py, so add dependencies on the generated +# .c files. +$(foreach t,$(libm-tests-base),\ + $(objpfx)$(t)-compat_totalorder.o): $(objpfx)libm-test-totalorder.c + +$(foreach t,$(libm-tests-base),\ + $(objpfx)$(t)-compat_totalordermag.o): $(objpfx)libm-test-totalordermag.c + tgmath3-macros = atan2 cbrt ceil copysign erf erfc exp2 expm1 fdim floor \ fma fmax fmin fmod frexp hypot ilogb ldexp lgamma llrint \ llround log10 log1p log2 logb lrint lround nearbyint \ @@ -359,8 +375,7 @@ tgmath3-macros = atan2 cbrt ceil copysign erf erfc exp2 expm1 fdim floor \ 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 \ - fromfp fromfpx ufromfp ufromfpx totalorder totalordermag \ - scalb + fromfp fromfpx ufromfp ufromfpx scalb tgmath3-macro-tests = $(addprefix test-tgmath3-,$(tgmath3-macros)) tests += $(tgmath3-macro-tests) generated += $(addsuffix .c,$(tgmath3-macro-tests)) diff --git a/math/Versions b/math/Versions index f1ab297577..d892c5f911 100644 --- a/math/Versions +++ b/math/Versions @@ -579,4 +579,15 @@ libm { # No SVID compatible error handling. exp; exp2; log; log2; pow; } + GLIBC_2.31 { + # totalorder changed to take pointer arguments. + totalorder; totalorderf; totalorderl; + totalordermag; totalordermagf; totalordermagl; + totalorderf32; totalorderf64; totalorderf32x; + totalordermagf32; totalordermagf64; totalordermagf32x; + totalorderf64x; + totalordermagf64x; + totalorderf128; + totalordermagf128; + } } diff --git a/math/bits/mathcalls.h b/math/bits/mathcalls.h index 47808a2915..66832c7827 100644 --- a/math/bits/mathcalls.h +++ b/math/bits/mathcalls.h @@ -373,11 +373,12 @@ __MATHDECL_1 (int, canonicalize,, (_Mdouble_ *__cx, const _Mdouble_ *__x)); #if __GLIBC_USE (IEC_60559_BFP_EXT) || __MATH_DECLARING_FLOATN /* Total order operation. */ -__MATHDECL_1 (int, totalorder,, (_Mdouble_ __x, _Mdouble_ __y)) +__MATHDECL_1 (int, totalorder,, (const _Mdouble_ *__x, const _Mdouble_ *__y)) __attribute__ ((__const__)); /* Total order operation on absolute values. */ -__MATHDECL_1 (int, totalordermag,, (_Mdouble_ __x, _Mdouble_ __y)) +__MATHDECL_1 (int, totalordermag,, (const _Mdouble_ *__x, + const _Mdouble_ *__y)) __attribute__ ((__const__)); /* Get NaN payload. */ diff --git a/math/gen-tgmath-tests.py b/math/gen-tgmath-tests.py index 724a437b69..2a7d94e737 100755 --- a/math/gen-tgmath-tests.py +++ b/math/gen-tgmath-tests.py @@ -575,8 +575,6 @@ class Tests(object): self.add_tests('fromfpx', 'intmax_t', ['r', 'int', 'unsigned int']) self.add_tests('ufromfp', 'uintmax_t', ['r', 'int', 'unsigned int']) self.add_tests('ufromfpx', 'uintmax_t', ['r', 'int', 'unsigned int']) - self.add_tests('totalorder', 'int', ['r', 'r']) - self.add_tests('totalordermag', 'int', ['r', 'r']) # The functions that round their result to a narrower type, # and the associated type-generic macros, are not yet # supported by this script or by glibc. diff --git a/math/libm-test-compat_totalorder.inc b/math/libm-test-compat_totalorder.inc new file mode 100644 index 0000000000..7ad87342fd --- /dev/null +++ b/math/libm-test-compat_totalorder.inc @@ -0,0 +1,56 @@ +/* Test totalorder compat symbol. + Copyright (C) 2019 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <shlib-compat.h> +#include <first-versions.h> +#define COMPAT_TEST +#include "libm-test-totalorder.c" + +#define CONCATX(x, y) x ## y +#define CONCAT(x, y) CONCATX (x, y) +#define COMPAT_VER CONCAT (FIRST_VERSION_libm_, FUNC_TEST (totalorder)) + +#if TEST_COMPAT (libm, COMPAT_VER, GLIBC_2_31) + +int FUNC_TEST (compat_totalorder) (FLOAT, FLOAT); +compat_symbol_reference (libm, + FUNC_TEST (compat_totalorder), + FUNC_TEST (totalorder), + COMPAT_VER); + +static void +compat_totalorder_test (void) +{ + ALL_RM_TEST (compat_totalorder, 1, totalorder_test_data, RUN_TEST_LOOP_ff_b, END); +} + +#endif + +static void +do_test (void) +{ +#if TEST_COMPAT (libm, GLIBC_2_25, GLIBC_2_31) + compat_totalorder_test (); +#endif +} + +/* + * Local Variables: + * mode:c + * End: + */ diff --git a/math/libm-test-compat_totalordermag.inc b/math/libm-test-compat_totalordermag.inc new file mode 100644 index 0000000000..1f82946fbf --- /dev/null +++ b/math/libm-test-compat_totalordermag.inc @@ -0,0 +1,56 @@ +/* Test totalordermag compat symbol. + Copyright (C) 2019 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <shlib-compat.h> +#include <first-versions.h> +#define COMPAT_TEST +#include "libm-test-totalordermag.c" + +#define CONCATX(x, y) x ## y +#define CONCAT(x, y) CONCATX (x, y) +#define COMPAT_VER CONCAT (FIRST_VERSION_libm_, FUNC_TEST (totalordermag)) + +#if TEST_COMPAT (libm, COMPAT_VER, GLIBC_2_31) + +int FUNC_TEST (compat_totalordermag) (FLOAT, FLOAT); +compat_symbol_reference (libm, + FUNC_TEST (compat_totalordermag), + FUNC_TEST (totalordermag), + COMPAT_VER); + +static void +compat_totalordermag_test (void) +{ + ALL_RM_TEST (compat_totalordermag, 1, totalordermag_test_data, RUN_TEST_LOOP_ff_b, END); +} + +#endif + +static void +do_test (void) +{ +#if TEST_COMPAT (libm, GLIBC_2_25, GLIBC_2_31) + compat_totalordermag_test (); +#endif +} + +/* + * Local Variables: + * mode:c + * End: + */ diff --git a/math/libm-test-driver.c b/math/libm-test-driver.c index 4640f30d64..d9b9b383ad 100644 --- a/math/libm-test-driver.c +++ b/math/libm-test-driver.c @@ -326,7 +326,8 @@ struct test_f_i_data int exceptions; } rd, rn, rz, ru; }; -/* Used for both RUN_TEST_LOOP_ff_b and RUN_TEST_LOOP_ff_i_tg. */ +/* Used for RUN_TEST_LOOP_ff_b, RUN_TEST_LOOP_fpfp_b and + RUN_TEST_LOOP_ff_i_tg. */ struct test_ff_i_data { const char *arg_str; @@ -860,6 +861,26 @@ struct test_Ff_b1_data (ARRAY)[i].RM_##ROUNDING_MODE.expected, \ (ARRAY)[i].RM_##ROUNDING_MODE.exceptions); \ ROUND_RESTORE_ ## ROUNDING_MODE +#define RUN_TEST_fpfp_b(ARG_STR, FUNC_NAME, ARG1, ARG2, EXPECTED, \ + EXCEPTIONS) \ + do \ + if (enable_test (EXCEPTIONS)) \ + { \ + COMMON_TEST_SETUP (ARG_STR); \ + check_bool (test_name, \ + FUNC_TEST (FUNC_NAME) (&(ARG1), &(ARG2)), \ + EXPECTED, EXCEPTIONS); \ + COMMON_TEST_CLEANUP; \ + } \ + while (0) +#define RUN_TEST_LOOP_fpfp_b(FUNC_NAME, ARRAY, ROUNDING_MODE) \ + IF_ROUND_INIT_ ## ROUNDING_MODE \ + for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++) \ + RUN_TEST_fpfp_b ((ARRAY)[i].arg_str, FUNC_NAME, \ + (ARRAY)[i].arg1, (ARRAY)[i].arg2, \ + (ARRAY)[i].RM_##ROUNDING_MODE.expected, \ + (ARRAY)[i].RM_##ROUNDING_MODE.exceptions); \ + ROUND_RESTORE_ ## ROUNDING_MODE #define RUN_TEST_ff_i_tg(ARG_STR, FUNC_NAME, ARG1, ARG2, EXPECTED, \ EXCEPTIONS) \ do \ diff --git a/math/libm-test-totalorder.inc b/math/libm-test-totalorder.inc index dc6106e2a4..9f3216b485 100644 --- a/math/libm-test-totalorder.inc +++ b/math/libm-test-totalorder.inc @@ -20,249 +20,250 @@ static const struct test_ff_i_data totalorder_test_data[] = { - TEST_ff_b (totalorder, minus_zero, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, minus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, minus_zero, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, minus_zero, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, minus_zero, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, minus_zero, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, minus_zero, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, minus_zero, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, minus_zero, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, plus_zero, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, plus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, plus_zero, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, plus_zero, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, plus_zero, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, plus_zero, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, plus_zero, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, plus_zero, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, plus_zero, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 1, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 1, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 1, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 1, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 1, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 1, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 1, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 1, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 1, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, minus_infty, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, minus_infty, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, minus_infty, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, minus_infty, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, minus_infty, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, minus_infty, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, minus_infty, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, minus_infty, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, minus_infty, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, plus_infty, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, plus_infty, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, plus_infty, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, plus_infty, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, plus_infty, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, plus_infty, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, plus_infty, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, plus_infty, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, plus_infty, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value, snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, minus_zero, -min_subnorm_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, minus_zero, min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, plus_zero, -min_subnorm_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, plus_zero, min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -min_subnorm_value, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -min_subnorm_value, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, min_subnorm_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, min_subnorm_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, min_value, max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, min_value, -max_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -min_value, max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -min_value, -max_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, max_value, min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, max_value, -min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -max_value, min_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -max_value, -min_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value_pl ("0x1"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value_pl ("0x1"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value_pl ("0x1"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value_pl ("0x2"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value_pl ("0x2"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value_pl ("0x2"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value_pl ("0x1"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value_pl ("0x1"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value_pl ("0x1"), -qnan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value_pl ("0x2"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value_pl ("0x2"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value_pl ("0x2"), -qnan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0x1"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0x1"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0x1"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0x2"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0x2"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0x2"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0x1"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0x1"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0x2"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0x2"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0x2"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0x3fffff"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0x3fffff"), snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0x3fffff"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0x1"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0x1"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0x2"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0x2"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0x2"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0x1"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0x1"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0x2"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0x2"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0x2"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0x1"), -snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0x1"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0x2"), -snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0x2"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0x2"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, minus_zero, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, minus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, minus_zero, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, minus_zero, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, minus_zero, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, minus_zero, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, minus_zero, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, minus_zero, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, minus_zero, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, plus_zero, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, plus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, plus_zero, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, plus_zero, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, plus_zero, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, plus_zero, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, plus_zero, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, plus_zero, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, plus_zero, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 1, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 1, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 1, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 1, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 1, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 1, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 1, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 1, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 1, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, minus_infty, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, minus_infty, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, minus_infty, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, minus_infty, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, minus_infty, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, minus_infty, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, minus_infty, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, minus_infty, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, minus_infty, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, plus_infty, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, plus_infty, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, plus_infty, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, plus_infty, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, plus_infty, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, plus_infty, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, plus_infty, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, plus_infty, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, plus_infty, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value, -qnan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value, snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, minus_zero, -min_subnorm_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, minus_zero, min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, plus_zero, -min_subnorm_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, plus_zero, min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -min_subnorm_value, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -min_subnorm_value, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, min_subnorm_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, min_subnorm_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, min_value, max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, min_value, -max_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -min_value, max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -min_value, -max_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, max_value, min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, max_value, -min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -max_value, min_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -max_value, -min_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x1"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x1"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x1"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x2"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x2"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x2"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x1"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x1"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x1"), -qnan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x2"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x2"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x2"), -qnan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x1"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x1"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x1"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x2"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x2"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x2"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0x1"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0x1"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0x2"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0x2"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0x2"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0x3fffff"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0x3fffff"), snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0x3fffff"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0x1"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0x1"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0x2"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0x2"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0x2"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x1"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x1"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x2"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x2"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x2"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x1"), -snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x1"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x2"), -snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x2"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x2"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), #if PAYLOAD_DIG >= 34 - TEST_ff_b (totalorder, qnan_value_pl ("0xffffffff"), qnan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0xffffffff"), -qnan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value_pl ("0x100000000"), qnan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0x100000000"), -qnan_value_pl ("0xffffffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0xffffffff"), snan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0xffffffff"), -snan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0x100000000"), snan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0x100000000"), -snan_value_pl ("0xffffffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value_pl ("0x100000000"), qnan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0x100000000"), -qnan_value_pl ("0x200000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, qnan_value_pl ("0x200000000"), qnan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -qnan_value_pl ("0x200000000"), -qnan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0x100000000"), snan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0x100000000"), -snan_value_pl ("0x200000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, snan_value_pl ("0x200000000"), snan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, -snan_value_pl ("0x200000000"), -snan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0xffffffff"), qnan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0xffffffff"), -qnan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x100000000"), qnan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x100000000"), -qnan_value_pl ("0xffffffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0xffffffff"), snan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0xffffffff"), -snan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0x100000000"), snan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x100000000"), -snan_value_pl ("0xffffffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x100000000"), qnan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x100000000"), -qnan_value_pl ("0x200000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x200000000"), qnan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x200000000"), -qnan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0x100000000"), snan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x100000000"), -snan_value_pl ("0x200000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, snan_value_pl ("0x200000000"), snan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x200000000"), -snan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), #endif #if PAYLOAD_DIG >= 66 - TEST_ff_b (totalorder, qnan_value_pl ("0xffffffffffffffff"), qnan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalorder, -qnan_value_pl ("0xffffffffffffffff"), -qnan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalorder, qnan_value_pl ("0x10000000000000000"), qnan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalorder, -qnan_value_pl ("0x10000000000000000"), -qnan_value_pl ("0xffffffffffffffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalorder, snan_value_pl ("0xffffffffffffffff"), snan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalorder, -snan_value_pl ("0xffffffffffffffff"), -snan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalorder, snan_value_pl ("0x10000000000000000"), snan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalorder, -snan_value_pl ("0x10000000000000000"), -snan_value_pl ("0xffffffffffffffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalorder, qnan_value_pl ("0x10000000000000000"), qnan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalorder, -qnan_value_pl ("0x10000000000000000"), -qnan_value_pl ("0x20000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalorder, qnan_value_pl ("0x20000000000000000"), qnan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalorder, -qnan_value_pl ("0x20000000000000000"), -qnan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalorder, snan_value_pl ("0x10000000000000000"), snan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalorder, -snan_value_pl ("0x10000000000000000"), -snan_value_pl ("0x20000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalorder, snan_value_pl ("0x20000000000000000"), snan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalorder, -snan_value_pl ("0x20000000000000000"), -snan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalorder, qnan_value_pl ("0xffffffffffffffff"), qnan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0xffffffffffffffff"), -qnan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x10000000000000000"), qnan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x10000000000000000"), -qnan_value_pl ("0xffffffffffffffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalorder, snan_value_pl ("0xffffffffffffffff"), snan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalorder, -snan_value_pl ("0xffffffffffffffff"), -snan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalorder, snan_value_pl ("0x10000000000000000"), snan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x10000000000000000"), -snan_value_pl ("0xffffffffffffffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x10000000000000000"), qnan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x10000000000000000"), -qnan_value_pl ("0x20000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalorder, qnan_value_pl ("0x20000000000000000"), qnan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalorder, -qnan_value_pl ("0x20000000000000000"), -qnan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalorder, snan_value_pl ("0x10000000000000000"), snan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x10000000000000000"), -snan_value_pl ("0x20000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalorder, snan_value_pl ("0x20000000000000000"), snan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalorder, -snan_value_pl ("0x20000000000000000"), -snan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), #endif - TEST_ff_b (totalorder, 1, 0x1.000002p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 0x1.000002p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 1, 0x0.ffffffp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 0x0.ffffffp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 1, 0x1.000002p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 0x1.000002p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 1, 0x0.ffffffp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 0x0.ffffffp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), #if MANT_DIG >= 53 - TEST_ff_b (totalorder, 1, 0x1.0000000000001p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 0x1.0000000000001p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 1, 0x0.fffffffffffff8p0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 0x0.fffffffffffff8p0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 1, 0x1.0000000000001p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 0x1.0000000000001p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 1, 0x0.fffffffffffff8p0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 0x0.fffffffffffff8p0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), #endif #if MANT_DIG >= 64 - TEST_ff_b (totalorder, 1, 0x1.0000000000000002p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 0x1.0000000000000002p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 1, 0x0.ffffffffffffffffp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 0x0.ffffffffffffffffp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 1, 0x1.0000000000000002p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 0x1.0000000000000002p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 1, 0x0.ffffffffffffffffp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 0x0.ffffffffffffffffp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), #endif #if MANT_DIG >= 106 - TEST_ff_b (totalorder, 1, 0x1.000000000000000000000000008p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 0x1.000000000000000000000000008p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 1, 0x0.ffffffffffffffffffffffffffcp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 0x0.ffffffffffffffffffffffffffcp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 1, 0x1.000000000000000000000000008p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 0x1.000000000000000000000000008p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 1, 0x0.ffffffffffffffffffffffffffcp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 0x0.ffffffffffffffffffffffffffcp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), #endif #if MANT_DIG >= 113 - TEST_ff_b (totalorder, 1, 0x1.0000000000000000000000000001p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 0x1.0000000000000000000000000001p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 1, 0x0.ffffffffffffffffffffffffffff8p0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalorder, 0x0.ffffffffffffffffffffffffffff8p0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 1, 0x1.0000000000000000000000000001p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 0x1.0000000000000000000000000001p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 1, 0x0.ffffffffffffffffffffffffffff8p0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalorder, 0x0.ffffffffffffffffffffffffffff8p0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), #endif }; +#ifndef COMPAT_TEST static void totalorder_test (void) { - ALL_RM_TEST (totalorder, 1, totalorder_test_data, RUN_TEST_LOOP_ff_b, END); + ALL_RM_TEST (totalorder, 1, totalorder_test_data, RUN_TEST_LOOP_fpfp_b, END); } static void @@ -270,6 +271,7 @@ do_test (void) { totalorder_test (); } +#endif /* * Local Variables: diff --git a/math/libm-test-totalordermag.inc b/math/libm-test-totalordermag.inc index c20deaf4a9..78de2c755c 100644 --- a/math/libm-test-totalordermag.inc +++ b/math/libm-test-totalordermag.inc @@ -20,249 +20,250 @@ static const struct test_ff_i_data totalordermag_test_data[] = { - TEST_ff_b (totalordermag, minus_zero, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, minus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, minus_zero, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, minus_zero, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, minus_zero, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, minus_zero, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, minus_zero, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, minus_zero, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, minus_zero, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, plus_zero, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, plus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, plus_zero, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, plus_zero, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, plus_zero, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, plus_zero, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, plus_zero, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, plus_zero, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, plus_zero, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 1, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 1, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 1, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 1, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 1, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 1, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 1, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 1, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 1, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, minus_infty, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, minus_infty, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, minus_infty, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, minus_infty, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, minus_infty, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, minus_infty, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, minus_infty, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, minus_infty, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, minus_infty, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, plus_infty, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, plus_infty, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, plus_infty, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, plus_infty, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, plus_infty, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, plus_infty, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, plus_infty, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, plus_infty, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, plus_infty, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value, snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value, snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, minus_zero, -min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, minus_zero, min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, plus_zero, -min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, plus_zero, min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -min_subnorm_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -min_subnorm_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, min_subnorm_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, min_subnorm_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, min_value, max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, min_value, -max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -min_value, max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -min_value, -max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, max_value, min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, max_value, -min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -max_value, min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -max_value, -min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value_pl ("0x1"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value_pl ("0x1"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value_pl ("0x1"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value_pl ("0x2"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value_pl ("0x2"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value_pl ("0x2"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value_pl ("0x1"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value_pl ("0x1"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value_pl ("0x1"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value_pl ("0x2"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value_pl ("0x2"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value_pl ("0x2"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x1"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x1"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x1"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x2"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x2"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x2"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0x1"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0x1"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0x2"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0x2"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0x2"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0x3fffff"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0x3fffff"), snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0x3fffff"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0x1"), -snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0x1"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0x2"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0x2"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0x2"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0x1"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0x1"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0x2"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0x2"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0x2"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0x1"), -snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0x1"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0x2"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0x2"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0x2"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, minus_zero, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, minus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, minus_zero, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, minus_zero, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, minus_zero, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, minus_zero, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, minus_zero, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, minus_zero, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, minus_zero, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, plus_zero, minus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, plus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, plus_zero, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, plus_zero, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, plus_zero, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, plus_zero, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, plus_zero, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, plus_zero, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, plus_zero, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 1, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 1, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 1, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 1, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 1, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 1, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 1, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 1, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 1, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, minus_infty, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, minus_infty, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, minus_infty, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, minus_infty, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, minus_infty, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, minus_infty, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, minus_infty, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, minus_infty, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, minus_infty, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, plus_infty, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, plus_infty, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, plus_infty, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, plus_infty, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, plus_infty, plus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, plus_infty, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, plus_infty, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, plus_infty, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, plus_infty, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value, plus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value, qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value, -qnan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value, snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value, snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value, -snan_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value, snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value, -snan_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, minus_zero, -min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, minus_zero, min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, plus_zero, -min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, plus_zero, min_subnorm_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -min_subnorm_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -min_subnorm_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, min_subnorm_value, minus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, min_subnorm_value, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, min_value, max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, min_value, -max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -min_value, max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -min_value, -max_value, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, max_value, min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, max_value, -min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -max_value, min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -max_value, -min_value, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x1"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x1"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x1"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x2"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x2"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x2"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x1"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x1"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x1"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x2"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x2"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x2"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x1"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x1"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x1"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x2"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x2"), qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x2"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x3fffff"), qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x1"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x2"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x3fffff"), -qnan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x1"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x1"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x2"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x2"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x2"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x3fffff"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x3fffff"), snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x3fffff"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x1"), -snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x1"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x2"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x2"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x2"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x3fffff"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x1"), snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x1"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x2"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x2"), snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x2"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x3fffff"), snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x1"), -snan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x1"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x2"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x2"), -snan_value_pl ("0x2"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x2"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x1"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x2"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x3fffff"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x3fffff"), qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x3fffff"), -qnan_value_pl ("0x1"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x1"), snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), #if PAYLOAD_DIG >= 34 - TEST_ff_b (totalordermag, qnan_value_pl ("0xffffffff"), qnan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0xffffffff"), -qnan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value_pl ("0x100000000"), qnan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x100000000"), -qnan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0xffffffff"), snan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0xffffffff"), -snan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0x100000000"), snan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0x100000000"), -snan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value_pl ("0x100000000"), qnan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x100000000"), -qnan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, qnan_value_pl ("0x200000000"), qnan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x200000000"), -qnan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0x100000000"), snan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0x100000000"), -snan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, snan_value_pl ("0x200000000"), snan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, -snan_value_pl ("0x200000000"), -snan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0xffffffff"), qnan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0xffffffff"), -qnan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x100000000"), qnan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x100000000"), -qnan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0xffffffff"), snan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0xffffffff"), -snan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x100000000"), snan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x100000000"), -snan_value_pl ("0xffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x100000000"), qnan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x100000000"), -qnan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x200000000"), qnan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x200000000"), -qnan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x100000000"), snan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x100000000"), -snan_value_pl ("0x200000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x200000000"), snan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x200000000"), -snan_value_pl ("0x100000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), #endif #if PAYLOAD_DIG >= 66 - TEST_ff_b (totalordermag, qnan_value_pl ("0xffffffffffffffff"), qnan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalordermag, -qnan_value_pl ("0xffffffffffffffff"), -qnan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalordermag, qnan_value_pl ("0x10000000000000000"), qnan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x10000000000000000"), -qnan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalordermag, snan_value_pl ("0xffffffffffffffff"), snan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalordermag, -snan_value_pl ("0xffffffffffffffff"), -snan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalordermag, snan_value_pl ("0x10000000000000000"), snan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalordermag, -snan_value_pl ("0x10000000000000000"), -snan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalordermag, qnan_value_pl ("0x10000000000000000"), qnan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x10000000000000000"), -qnan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalordermag, qnan_value_pl ("0x20000000000000000"), qnan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalordermag, -qnan_value_pl ("0x20000000000000000"), -qnan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalordermag, snan_value_pl ("0x10000000000000000"), snan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalordermag, -snan_value_pl ("0x10000000000000000"), -snan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalordermag, snan_value_pl ("0x20000000000000000"), snan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), - TEST_ff_b (totalordermag, -snan_value_pl ("0x20000000000000000"), -snan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0xffffffffffffffff"), qnan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0xffffffffffffffff"), -qnan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x10000000000000000"), qnan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x10000000000000000"), -qnan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalordermag, snan_value_pl ("0xffffffffffffffff"), snan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0xffffffffffffffff"), -snan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x10000000000000000"), snan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x10000000000000000"), -snan_value_pl ("0xffffffffffffffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x10000000000000000"), qnan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x10000000000000000"), -qnan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalordermag, qnan_value_pl ("0x20000000000000000"), qnan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalordermag, -qnan_value_pl ("0x20000000000000000"), -qnan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x10000000000000000"), snan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x10000000000000000"), -snan_value_pl ("0x20000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalordermag, snan_value_pl ("0x20000000000000000"), snan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), + TEST_fpfp_b (totalordermag, -snan_value_pl ("0x20000000000000000"), -snan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD), #endif - TEST_ff_b (totalordermag, 1, 0x1.000002p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 0x1.000002p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 1, 0x0.ffffffp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 0x0.ffffffp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 1, 0x1.000002p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 0x1.000002p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 1, 0x0.ffffffp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 0x0.ffffffp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), #if MANT_DIG >= 53 - TEST_ff_b (totalordermag, 1, 0x1.0000000000001p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 0x1.0000000000001p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 1, 0x0.fffffffffffff8p0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 0x0.fffffffffffff8p0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 1, 0x1.0000000000001p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 0x1.0000000000001p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 1, 0x0.fffffffffffff8p0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 0x0.fffffffffffff8p0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), #endif #if MANT_DIG >= 64 - TEST_ff_b (totalordermag, 1, 0x1.0000000000000002p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 0x1.0000000000000002p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 1, 0x0.ffffffffffffffffp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 0x0.ffffffffffffffffp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 1, 0x1.0000000000000002p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 0x1.0000000000000002p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 1, 0x0.ffffffffffffffffp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 0x0.ffffffffffffffffp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), #endif #if MANT_DIG >= 106 - TEST_ff_b (totalordermag, 1, 0x1.000000000000000000000000008p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 0x1.000000000000000000000000008p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 1, 0x0.ffffffffffffffffffffffffffcp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 0x0.ffffffffffffffffffffffffffcp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 1, 0x1.000000000000000000000000008p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 0x1.000000000000000000000000008p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 1, 0x0.ffffffffffffffffffffffffffcp0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 0x0.ffffffffffffffffffffffffffcp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), #endif #if MANT_DIG >= 113 - TEST_ff_b (totalordermag, 1, 0x1.0000000000000000000000000001p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 0x1.0000000000000000000000000001p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 1, 0x0.ffffffffffffffffffffffffffff8p0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), - TEST_ff_b (totalordermag, 0x0.ffffffffffffffffffffffffffff8p0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 1, 0x1.0000000000000000000000000001p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 0x1.0000000000000000000000000001p0, 1, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 1, 0x0.ffffffffffffffffffffffffffff8p0, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), + TEST_fpfp_b (totalordermag, 0x0.ffffffffffffffffffffffffffff8p0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED), #endif }; +#ifndef COMPAT_TEST static void totalordermag_test (void) { - ALL_RM_TEST (totalordermag, 1, totalordermag_test_data, RUN_TEST_LOOP_ff_b, END); + ALL_RM_TEST (totalordermag, 1, totalordermag_test_data, RUN_TEST_LOOP_fpfp_b, END); } static void @@ -270,6 +271,7 @@ do_test (void) { totalordermag_test (); } +#endif /* * Local Variables: diff --git a/math/test-tgmath.c b/math/test-tgmath.c index 2d8d57ec14..f8f1e5b56e 100644 --- a/math/test-tgmath.c +++ b/math/test-tgmath.c @@ -52,7 +52,7 @@ volatile int count_cdouble; volatile int count_cfloat; volatile int count_cldouble; -#define NCALLS 134 +#define NCALLS 132 #define NCALLS_INT 4 #define NCCALLS 47 @@ -295,8 +295,6 @@ F(compile_test) (void) b = fmaxmag (fmaxmag (a, x), fmaxmag (c, b)); a = fminmag (fminmag (x, a), fminmag (c, b)); b = fma (sin (a), sin (x), sin (c)); - a = totalorder (x, b); - b = totalordermag (x, a); #ifdef TEST_INT a = atan2 (i, b); @@ -400,8 +398,6 @@ F(compile_test) (void) a = fmaxmag (y, y); a = fminmag (y, y); a = fma (y, y, y); - a = totalorder (y, y); - a = totalordermag (y, y); #ifdef TEST_INT a = atan2 (i, y); @@ -959,22 +955,6 @@ TYPE return x + y + z; } -int -(F(totalorder)) (TYPE x, TYPE y) -{ - ++count; - P (); - return x + y; -} - -int -(F(totalordermag)) (TYPE x, TYPE y) -{ - ++count; - P (); - return x + y; -} - complex TYPE (F(cacos)) (complex TYPE x) { diff --git a/math/tgmath.h b/math/tgmath.h index 0c00e66b42..d9dfca459b 100644 --- a/math/tgmath.h +++ b/math/tgmath.h @@ -230,8 +230,6 @@ __TGMATH_2 (Fct, (Val1), (Val2)) # define __TGMATH_BINARY_REAL_STD_ONLY(Val1, Val2, Fct) \ __TGMATH_2STD (Fct, (Val1), (Val2)) -# define __TGMATH_BINARY_REAL_RET_ONLY(Val1, Val2, Fct) \ - __TGMATH_2 (Fct, (Val1), (Val2)) # define __TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY(Val1, Val2, Val3, Fct) \ __TGMATH_3 (Fct, (Val1), (Val2), (Val3)) # define __TGMATH_TERNARY_REAL_ONLY(Val1, Val2, Val3, Fct) \ @@ -326,18 +324,6 @@ + (__tgmath_real_type (Val2)) 0)) \ Fct##f (Val1, Val2))) -# define __TGMATH_BINARY_REAL_RET_ONLY(Val1, Val2, Fct) \ - (__extension__ ((sizeof ((Val1) + (Val2)) > sizeof (double) \ - && __builtin_classify_type ((Val1) + (Val2)) == 8) \ - ? __TGMATH_F128 ((Val1) + (Val2), Fct, (Val1, Val2)) \ - __tgml(Fct) (Val1, Val2) \ - : (sizeof (+(Val1)) == sizeof (double) \ - || sizeof (+(Val2)) == sizeof (double) \ - || __builtin_classify_type (Val1) != 8 \ - || __builtin_classify_type (Val2) != 8) \ - ? Fct (Val1, Val2) \ - : Fct##f (Val1, Val2))) - # define __TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY(Val1, Val2, Val3, Fct) \ (__extension__ ((sizeof ((Val1) + (Val2)) > sizeof (double) \ && __builtin_classify_type ((Val1) + (Val2)) == 8) \ @@ -732,16 +718,6 @@ # define fminmag(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fminmag) #endif -#if __GLIBC_USE (IEC_60559_BFP_EXT) -/* Total order operation. */ -# define totalorder(Val1, Val2) \ - __TGMATH_BINARY_REAL_RET_ONLY (Val1, Val2, totalorder) - -/* Total order operation on absolute values. */ -# define totalordermag(Val1, Val2) \ - __TGMATH_BINARY_REAL_RET_ONLY (Val1, Val2, totalordermag) -#endif - /* Absolute value, conjugates, and projection. */ diff --git a/sysdeps/ieee754/dbl-64/s_totalorder.c b/sysdeps/ieee754/dbl-64/s_totalorder.c index 0243a82b61..b97a0c1c8b 100644 --- a/sysdeps/ieee754/dbl-64/s_totalorder.c +++ b/sysdeps/ieee754/dbl-64/s_totalorder.c @@ -21,14 +21,16 @@ #include <libm-alias-double.h> #include <nan-high-order-bit.h> #include <stdint.h> +#include <shlib-compat.h> +#include <first-versions.h> int -__totalorder (double x, double y) +__totalorder (const double *x, const double *y) { int32_t hx, hy; uint32_t lx, ly; - EXTRACT_WORDS (hx, lx, x); - EXTRACT_WORDS (hy, ly, y); + EXTRACT_WORDS (hx, lx, *x); + EXTRACT_WORDS (hy, ly, *y); #if HIGH_ORDER_BIT_IS_SET_FOR_SNAN uint32_t uhx = hx & 0x7fffffff, uhy = hy & 0x7fffffff; /* For the preferred quiet NaN convention, this operation is a @@ -50,4 +52,29 @@ __totalorder (double x, double y) ly ^= hy_sign; return hx < hy || (hx == hy && lx <= ly); } +#ifdef SHARED +# define CONCATX(x, y) x ## y +# define CONCAT(x, y) CONCATX (x, y) +# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__) +# define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + versioned_symbol (libm, name, aliasname, GLIBC_2_31) +# undef weak_alias +# define weak_alias(name, aliasname) \ + do_symbol (name, UNIQUE_ALIAS (name), aliasname); +#endif libm_alias_double (__totalorder, totalorder) +#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31) +int +attribute_compat_text_section +__totalorder_compat (double x, double y) +{ + return __totalorder (&x, &y); +} +#undef do_symbol +#define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + compat_symbol (libm, name, aliasname, \ + CONCAT (FIRST_VERSION_libm_, aliasname)) +libm_alias_double (__totalorder_compat, totalorder) +#endif diff --git a/sysdeps/ieee754/dbl-64/s_totalordermag.c b/sysdeps/ieee754/dbl-64/s_totalordermag.c index fadb20bf1d..c75536ce73 100644 --- a/sysdeps/ieee754/dbl-64/s_totalordermag.c +++ b/sysdeps/ieee754/dbl-64/s_totalordermag.c @@ -21,14 +21,16 @@ #include <libm-alias-double.h> #include <nan-high-order-bit.h> #include <stdint.h> +#include <shlib-compat.h> +#include <first-versions.h> int -__totalordermag (double x, double y) +__totalordermag (const double *x, const double *y) { uint32_t hx, hy; uint32_t lx, ly; - EXTRACT_WORDS (hx, lx, x); - EXTRACT_WORDS (hy, ly, y); + EXTRACT_WORDS (hx, lx, *x); + EXTRACT_WORDS (hy, ly, *y); hx &= 0x7fffffff; hy &= 0x7fffffff; #if HIGH_ORDER_BIT_IS_SET_FOR_SNAN @@ -45,4 +47,29 @@ __totalordermag (double x, double y) #endif return hx < hy || (hx == hy && lx <= ly); } +#ifdef SHARED +# define CONCATX(x, y) x ## y +# define CONCAT(x, y) CONCATX (x, y) +# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__) +# define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + versioned_symbol (libm, name, aliasname, GLIBC_2_31) +# undef weak_alias +# define weak_alias(name, aliasname) \ + do_symbol (name, UNIQUE_ALIAS (name), aliasname); +#endif libm_alias_double (__totalordermag, totalordermag) +#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31) +int +attribute_compat_text_section +__totalordermag_compat (double x, double y) +{ + return __totalordermag (&x, &y); +} +#undef do_symbol +#define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + compat_symbol (libm, name, aliasname, \ + CONCAT (FIRST_VERSION_libm_, aliasname)) +libm_alias_double (__totalordermag_compat, totalordermag) +#endif diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c index 0e28e6f16e..24545ffd58 100644 --- a/sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c +++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c @@ -21,13 +21,15 @@ #include <nan-high-order-bit.h> #include <libm-alias-double.h> #include <stdint.h> +#include <shlib-compat.h> +#include <first-versions.h> int -__totalorder (double x, double y) +__totalorder (const double *x, const double *y) { int64_t ix, iy; - EXTRACT_WORDS64 (ix, x); - EXTRACT_WORDS64 (iy, y); + EXTRACT_WORDS64 (ix, *x); + EXTRACT_WORDS64 (iy, *y); #if HIGH_ORDER_BIT_IS_SET_FOR_SNAN /* For the preferred quiet NaN convention, this operation is a comparison of the representations of the arguments interpreted as @@ -46,4 +48,29 @@ __totalorder (double x, double y) iy ^= iy_sign >> 1; return ix <= iy; } +#ifdef SHARED +# define CONCATX(x, y) x ## y +# define CONCAT(x, y) CONCATX (x, y) +# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__) +# define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + versioned_symbol (libm, name, aliasname, GLIBC_2_31) +# undef weak_alias +# define weak_alias(name, aliasname) \ + do_symbol (name, UNIQUE_ALIAS (name), aliasname); +#endif libm_alias_double (__totalorder, totalorder) +#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31) +int +attribute_compat_text_section +__totalorder_compat (double x, double y) +{ + return __totalorder (&x, &y); +} +#undef do_symbol +#define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + compat_symbol (libm, name, aliasname, \ + CONCAT (FIRST_VERSION_libm_, aliasname)) +libm_alias_double (__totalorder_compat, totalorder) +#endif diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c index bbd1f1c841..12066e3c7c 100644 --- a/sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c +++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c @@ -21,13 +21,15 @@ #include <nan-high-order-bit.h> #include <libm-alias-double.h> #include <stdint.h> +#include <shlib-compat.h> +#include <first-versions.h> int -__totalordermag (double x, double y) +__totalordermag (const double *x, const double *y) { uint64_t ix, iy; - EXTRACT_WORDS64 (ix, x); - EXTRACT_WORDS64 (iy, y); + EXTRACT_WORDS64 (ix, *x); + EXTRACT_WORDS64 (iy, *y); ix &= 0x7fffffffffffffffULL; iy &= 0x7fffffffffffffffULL; #if HIGH_ORDER_BIT_IS_SET_FOR_SNAN @@ -43,4 +45,29 @@ __totalordermag (double x, double y) #endif return ix <= iy; } +#ifdef SHARED +# define CONCATX(x, y) x ## y +# define CONCAT(x, y) CONCATX (x, y) +# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__) +# define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + versioned_symbol (libm, name, aliasname, GLIBC_2_31) +# undef weak_alias +# define weak_alias(name, aliasname) \ + do_symbol (name, UNIQUE_ALIAS (name), aliasname); +#endif libm_alias_double (__totalordermag, totalordermag) +#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31) +int +attribute_compat_text_section +__totalordermag_compat (double x, double y) +{ + return __totalordermag (&x, &y); +} +#undef do_symbol +#define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + compat_symbol (libm, name, aliasname, \ + CONCAT (FIRST_VERSION_libm_, aliasname)) +libm_alias_double (__totalordermag_compat, totalordermag) +#endif diff --git a/sysdeps/ieee754/float128/float128_private.h b/sysdeps/ieee754/float128/float128_private.h index f3917b4638..4737d05482 100644 --- a/sysdeps/ieee754/float128/float128_private.h +++ b/sysdeps/ieee754/float128/float128_private.h @@ -253,7 +253,9 @@ #define __tanhl __tanhf128 #define __tanl __tanf128 #define __totalorderl __totalorderf128 +#define __totalorder_compatl __totalorder_compatf128 #define __totalordermagl __totalordermagf128 +#define __totalordermag_compatl __totalordermag_compatf128 #define __truncl __truncf128 #define __x2y2m1l __x2y2m1f128 diff --git a/sysdeps/ieee754/flt-32/s_totalorderf.c b/sysdeps/ieee754/flt-32/s_totalorderf.c index 71ea5968ab..250f2289ce 100644 --- a/sysdeps/ieee754/flt-32/s_totalorderf.c +++ b/sysdeps/ieee754/flt-32/s_totalorderf.c @@ -21,13 +21,15 @@ #include <libm-alias-float.h> #include <nan-high-order-bit.h> #include <stdint.h> +#include <shlib-compat.h> +#include <first-versions.h> int -__totalorderf (float x, float y) +__totalorderf (const float *x, const float *y) { int32_t ix, iy; - GET_FLOAT_WORD (ix, x); - GET_FLOAT_WORD (iy, y); + GET_FLOAT_WORD (ix, *x); + GET_FLOAT_WORD (iy, *y); #if HIGH_ORDER_BIT_IS_SET_FOR_SNAN /* For the preferred quiet NaN convention, this operation is a comparison of the representations of the arguments interpreted as @@ -45,4 +47,29 @@ __totalorderf (float x, float y) iy ^= iy_sign >> 1; return ix <= iy; } +#ifdef SHARED +# define CONCATX(x, y) x ## y +# define CONCAT(x, y) CONCATX (x, y) +# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__) +# define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + versioned_symbol (libm, name, aliasname, GLIBC_2_31) +# undef weak_alias +# define weak_alias(name, aliasname) \ + do_symbol (name, UNIQUE_ALIAS (name), aliasname); +#endif libm_alias_float (__totalorder, totalorder) +#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31) +int +attribute_compat_text_section +__totalorder_compatf (float x, float y) +{ + return __totalorderf (&x, &y); +} +#undef do_symbol +#define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + compat_symbol (libm, name, aliasname, \ + CONCAT (FIRST_VERSION_libm_, aliasname)) +libm_alias_float (__totalorder_compat, totalorder) +#endif diff --git a/sysdeps/ieee754/flt-32/s_totalordermagf.c b/sysdeps/ieee754/flt-32/s_totalordermagf.c index 3733a2597c..5d1729b54f 100644 --- a/sysdeps/ieee754/flt-32/s_totalordermagf.c +++ b/sysdeps/ieee754/flt-32/s_totalordermagf.c @@ -21,13 +21,15 @@ #include <libm-alias-float.h> #include <nan-high-order-bit.h> #include <stdint.h> +#include <shlib-compat.h> +#include <first-versions.h> int -__totalordermagf (float x, float y) +__totalordermagf (const float *x, const float *y) { uint32_t ix, iy; - GET_FLOAT_WORD (ix, x); - GET_FLOAT_WORD (iy, y); + GET_FLOAT_WORD (ix, *x); + GET_FLOAT_WORD (iy, *y); ix &= 0x7fffffff; iy &= 0x7fffffff; #if HIGH_ORDER_BIT_IS_SET_FOR_SNAN @@ -43,4 +45,29 @@ __totalordermagf (float x, float y) #endif return ix <= iy; } +#ifdef SHARED +# define CONCATX(x, y) x ## y +# define CONCAT(x, y) CONCATX (x, y) +# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__) +# define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + versioned_symbol (libm, name, aliasname, GLIBC_2_31) +# undef weak_alias +# define weak_alias(name, aliasname) \ + do_symbol (name, UNIQUE_ALIAS (name), aliasname); +#endif libm_alias_float (__totalordermag, totalordermag) +#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31) +int +attribute_compat_text_section +__totalordermag_compatf (float x, float y) +{ + return __totalordermagf (&x, &y); +} +#undef do_symbol +#define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + compat_symbol (libm, name, aliasname, \ + CONCAT (FIRST_VERSION_libm_, aliasname)) +libm_alias_float (__totalordermag_compat, totalordermag) +#endif diff --git a/sysdeps/ieee754/ldbl-128/s_totalorderl.c b/sysdeps/ieee754/ldbl-128/s_totalorderl.c index c4ece246fd..357b917195 100644 --- a/sysdeps/ieee754/ldbl-128/s_totalorderl.c +++ b/sysdeps/ieee754/ldbl-128/s_totalorderl.c @@ -21,14 +21,16 @@ #include <libm-alias-ldouble.h> #include <nan-high-order-bit.h> #include <stdint.h> +#include <shlib-compat.h> +#include <first-versions.h> int -__totalorderl (_Float128 x, _Float128 y) +__totalorderl (const _Float128 *x, const _Float128 *y) { int64_t hx, hy; uint64_t lx, ly; - GET_LDOUBLE_WORDS64 (hx, lx, x); - GET_LDOUBLE_WORDS64 (hy, ly, y); + GET_LDOUBLE_WORDS64 (hx, lx, *x); + GET_LDOUBLE_WORDS64 (hy, ly, *y); #if HIGH_ORDER_BIT_IS_SET_FOR_SNAN uint64_t uhx = hx & 0x7fffffffffffffffULL; uint64_t uhy = hy & 0x7fffffffffffffffULL; @@ -53,4 +55,29 @@ __totalorderl (_Float128 x, _Float128 y) ly ^= hy_sign; return hx < hy || (hx == hy && lx <= ly); } +#ifdef SHARED +# define CONCATX(x, y) x ## y +# define CONCAT(x, y) CONCATX (x, y) +# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__) +# define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + versioned_symbol (libm, name, aliasname, GLIBC_2_31) +# undef weak_alias +# define weak_alias(name, aliasname) \ + do_symbol (name, UNIQUE_ALIAS (name), aliasname); +#endif libm_alias_ldouble (__totalorder, totalorder) +#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31) +int +attribute_compat_text_section +__totalorder_compatl (_Float128 x, _Float128 y) +{ + return __totalorderl (&x, &y); +} +#undef do_symbol +#define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + compat_symbol (libm, name, aliasname, \ + CONCAT (FIRST_VERSION_libm_, aliasname)) +libm_alias_ldouble (__totalorder_compat, totalorder) +#endif diff --git a/sysdeps/ieee754/ldbl-128/s_totalordermagl.c b/sysdeps/ieee754/ldbl-128/s_totalordermagl.c index 6d9be6d3e5..601581c846 100644 --- a/sysdeps/ieee754/ldbl-128/s_totalordermagl.c +++ b/sysdeps/ieee754/ldbl-128/s_totalordermagl.c @@ -21,14 +21,16 @@ #include <libm-alias-ldouble.h> #include <nan-high-order-bit.h> #include <stdint.h> +#include <shlib-compat.h> +#include <first-versions.h> int -__totalordermagl (_Float128 x, _Float128 y) +__totalordermagl (const _Float128 *x, const _Float128 *y) { uint64_t hx, hy; uint64_t lx, ly; - GET_LDOUBLE_WORDS64 (hx, lx, x); - GET_LDOUBLE_WORDS64 (hy, ly, y); + GET_LDOUBLE_WORDS64 (hx, lx, *x); + GET_LDOUBLE_WORDS64 (hy, ly, *y); hx &= 0x7fffffffffffffffULL; hy &= 0x7fffffffffffffffULL; #if HIGH_ORDER_BIT_IS_SET_FOR_SNAN @@ -47,4 +49,29 @@ __totalordermagl (_Float128 x, _Float128 y) #endif return hx < hy || (hx == hy && lx <= ly); } +#ifdef SHARED +# define CONCATX(x, y) x ## y +# define CONCAT(x, y) CONCATX (x, y) +# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__) +# define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + versioned_symbol (libm, name, aliasname, GLIBC_2_31) +# undef weak_alias +# define weak_alias(name, aliasname) \ + do_symbol (name, UNIQUE_ALIAS (name), aliasname); +#endif libm_alias_ldouble (__totalordermag, totalordermag) +#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31) +int +attribute_compat_text_section +__totalordermag_compatl (_Float128 x, _Float128 y) +{ + return __totalordermagl (&x, &y); +} +#undef do_symbol +#define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + compat_symbol (libm, name, aliasname, \ + CONCAT (FIRST_VERSION_libm_, aliasname)) +libm_alias_ldouble (__totalordermag_compat, totalordermag) +#endif diff --git a/sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c b/sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c index fa5e9a6631..c96f387166 100644 --- a/sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c +++ b/sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c @@ -20,16 +20,17 @@ #include <math_private.h> #include <nan-high-order-bit.h> #include <stdint.h> +#include <shlib-compat.h> int -__totalorderl (long double x, long double y) +__totalorderl (const long double *x, const long double *y) { double xhi, xlo, yhi, ylo; int64_t hx, hy, lx, ly; - ldbl_unpack (x, &xhi, &xlo); + ldbl_unpack (*x, &xhi, &xlo); EXTRACT_WORDS64 (hx, xhi); - ldbl_unpack (y, &yhi, &ylo); + ldbl_unpack (*y, &yhi, &ylo); EXTRACT_WORDS64 (hy, yhi); #if HIGH_ORDER_BIT_IS_SET_FOR_SNAN # error not implemented @@ -60,4 +61,13 @@ __totalorderl (long double x, long double y) ly ^= ly_sign >> 1; return lx <= ly; } -weak_alias (__totalorderl, totalorderl) +versioned_symbol (libm, __totalorderl, totalorderl, GLIBC_2_31); +#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31) +int +attribute_compat_text_section +__totalorder_compatl (long double x, long double y) +{ + return __totalorderl (&x, &y); +} +compat_symbol (libm, __totalorder_compatl, totalorderl, GLIBC_2_25); +#endif diff --git a/sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c b/sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c index 21b6b34274..ca7193a163 100644 --- a/sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c +++ b/sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c @@ -20,16 +20,17 @@ #include <math_private.h> #include <nan-high-order-bit.h> #include <stdint.h> +#include <shlib-compat.h> int -__totalordermagl (long double x, long double y) +__totalordermagl (const long double *x, const long double *y) { double xhi, xlo, yhi, ylo; int64_t hx, hy, lx, ly; - ldbl_unpack (x, &xhi, &xlo); + ldbl_unpack (*x, &xhi, &xlo); EXTRACT_WORDS64 (hx, xhi); - ldbl_unpack (y, &yhi, &ylo); + ldbl_unpack (*y, &yhi, &ylo); EXTRACT_WORDS64 (hy, yhi); #if HIGH_ORDER_BIT_IS_SET_FOR_SNAN # error not implemented @@ -62,4 +63,13 @@ __totalordermagl (long double x, long double y) ly ^= ly_sign >> 1; return lx <= ly; } -weak_alias (__totalordermagl, totalordermagl) +versioned_symbol (libm, __totalordermagl, totalordermagl, GLIBC_2_31); +#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31) +int +attribute_compat_text_section +__totalordermag_compatl (long double x, long double y) +{ + return __totalordermagl (&x, &y); +} +compat_symbol (libm, __totalordermag_compatl, totalordermagl, GLIBC_2_25); +#endif diff --git a/sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c b/sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c index 6071ba38b0..60d22c4286 100644 --- a/sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c +++ b/sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c @@ -46,8 +46,8 @@ do_test (void) { long double ldx = ldbl_pack (tests[i].hi, tests[i].lo1); long double ldy = ldbl_pack (tests[i].hi, tests[i].lo2); - bool to1 = totalorderl (ldx, ldy); - bool to2 = totalorderl (ldy, ldx); + bool to1 = totalorderl (&ldx, &ldy); + bool to2 = totalorderl (&ldy, &ldx); if (to1 && to2) printf ("PASS: test %zu\n", i); else @@ -55,8 +55,8 @@ do_test (void) printf ("FAIL: test %zu\n", i); result = 1; } - to1 = totalordermagl (ldx, ldy); - to2 = totalordermagl (ldy, ldx); + to1 = totalordermagl (&ldx, &ldy); + to2 = totalordermagl (&ldy, &ldx); if (to1 && to2) printf ("PASS: test %zu (totalordermagl)\n", i); else diff --git a/sysdeps/ieee754/ldbl-96/s_totalorderl.c b/sysdeps/ieee754/ldbl-96/s_totalorderl.c index 5334401c0e..d80a592093 100644 --- a/sysdeps/ieee754/ldbl-96/s_totalorderl.c +++ b/sysdeps/ieee754/ldbl-96/s_totalorderl.c @@ -22,15 +22,17 @@ #include <libm-alias-ldouble.h> #include <nan-high-order-bit.h> #include <stdint.h> +#include <shlib-compat.h> +#include <first-versions.h> int -__totalorderl (long double x, long double y) +__totalorderl (const long double *x, const long double *y) { int16_t expx, expy; uint32_t hx, hy; uint32_t lx, ly; - GET_LDOUBLE_WORDS (expx, hx, lx, x); - GET_LDOUBLE_WORDS (expy, hy, ly, y); + GET_LDOUBLE_WORDS (expx, hx, lx, *x); + GET_LDOUBLE_WORDS (expy, hy, ly, *y); if (LDBL_MIN_EXP == -16382) { /* M68K variant: for the greatest exponent, the high mantissa @@ -56,4 +58,29 @@ __totalorderl (long double x, long double y) ly ^= y_sign; return expx < expy || (expx == expy && (hx < hy || (hx == hy && lx <= ly))); } +#ifdef SHARED +# define CONCATX(x, y) x ## y +# define CONCAT(x, y) CONCATX (x, y) +# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__) +# define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + versioned_symbol (libm, name, aliasname, GLIBC_2_31) +# undef weak_alias +# define weak_alias(name, aliasname) \ + do_symbol (name, UNIQUE_ALIAS (name), aliasname); +#endif libm_alias_ldouble (__totalorder, totalorder) +#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31) +int +attribute_compat_text_section +__totalorder_compatl (long double x, long double y) +{ + return __totalorderl (&x, &y); +} +#undef do_symbol +#define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + compat_symbol (libm, name, aliasname, \ + CONCAT (FIRST_VERSION_libm_, aliasname)) +libm_alias_ldouble (__totalorder_compat, totalorder) +#endif diff --git a/sysdeps/ieee754/ldbl-96/s_totalordermagl.c b/sysdeps/ieee754/ldbl-96/s_totalordermagl.c index db27ffa755..c26f21511d 100644 --- a/sysdeps/ieee754/ldbl-96/s_totalordermagl.c +++ b/sysdeps/ieee754/ldbl-96/s_totalordermagl.c @@ -22,15 +22,17 @@ #include <libm-alias-ldouble.h> #include <nan-high-order-bit.h> #include <stdint.h> +#include <shlib-compat.h> +#include <first-versions.h> int -__totalordermagl (long double x, long double y) +__totalordermagl (const long double *x, const long double *y) { uint16_t expx, expy; uint32_t hx, hy; uint32_t lx, ly; - GET_LDOUBLE_WORDS (expx, hx, lx, x); - GET_LDOUBLE_WORDS (expy, hy, ly, y); + GET_LDOUBLE_WORDS (expx, hx, lx, *x); + GET_LDOUBLE_WORDS (expy, hy, ly, *y); expx &= 0x7fff; expy &= 0x7fff; if (LDBL_MIN_EXP == -16382) @@ -50,4 +52,29 @@ __totalordermagl (long double x, long double y) #endif return expx < expy || (expx == expy && (hx < hy || (hx == hy && lx <= ly))); } +#ifdef SHARED +# define CONCATX(x, y) x ## y +# define CONCAT(x, y) CONCATX (x, y) +# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__) +# define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + versioned_symbol (libm, name, aliasname, GLIBC_2_31) +# undef weak_alias +# define weak_alias(name, aliasname) \ + do_symbol (name, UNIQUE_ALIAS (name), aliasname); +#endif libm_alias_ldouble (__totalordermag, totalordermag) +#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31) +int +attribute_compat_text_section +__totalordermag_compatl (long double x, long double y) +{ + return __totalordermagl (&x, &y); +} +#undef do_symbol +#define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + compat_symbol (libm, name, aliasname, \ + CONCAT (FIRST_VERSION_libm_, aliasname)) +libm_alias_ldouble (__totalordermag_compat, totalordermag) +#endif diff --git a/sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c b/sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c index ec35ad5b61..7aad238eef 100644 --- a/sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c +++ b/sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c @@ -51,10 +51,10 @@ do_test (void) SET_LDOUBLE_WORDS (ldny, 0xffff, (tests[i] >> 32) | 0x80000000, tests[i] & 0xffffffffULL); - bool to1 = totalorderl (ldx, ldy); - bool to2 = totalorderl (ldy, ldx); - bool to3 = totalorderl (ldnx, ldny); - bool to4 = totalorderl (ldny, ldnx); + bool to1 = totalorderl (&ldx, &ldy); + bool to2 = totalorderl (&ldy, &ldx); + bool to3 = totalorderl (&ldnx, &ldny); + bool to4 = totalorderl (&ldny, &ldnx); if (to1 && to2 && to3 && to4) printf ("PASS: test %zu\n", i); else @@ -62,10 +62,10 @@ do_test (void) printf ("FAIL: test %zu\n", i); result = 1; } - to1 = totalordermagl (ldx, ldy); - to2 = totalordermagl (ldy, ldx); - to3 = totalordermagl (ldnx, ldny); - to4 = totalordermagl (ldny, ldnx); + to1 = totalordermagl (&ldx, &ldy); + to2 = totalordermagl (&ldy, &ldx); + to3 = totalordermagl (&ldnx, &ldny); + to4 = totalordermagl (&ldny, &ldnx); if (to1 && to2 && to3 && to4) printf ("PASS: test %zu (totalordermagl)\n", i); else diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c b/sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c index 79b32ad93d..4876cdeb6e 100644 --- a/sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c +++ b/sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c @@ -20,7 +20,7 @@ double attribute_hidden -totalorderl (double x, double y) +totalorderl (const double *x, const double *y) { return totalorder (x, y); } diff --git a/sysdeps/ieee754/ldbl-opt/nldbl-totalordermag.c b/sysdeps/ieee754/ldbl-opt/nldbl-totalordermag.c index f63f5a5c2d..f521ce6610 100644 --- a/sysdeps/ieee754/ldbl-opt/nldbl-totalordermag.c +++ b/sysdeps/ieee754/ldbl-opt/nldbl-totalordermag.c @@ -20,7 +20,7 @@ double attribute_hidden -totalordermagl (double x, double y) +totalordermagl (const double *x, const double *y) { return totalordermag (x, y); } diff --git a/sysdeps/mach/hurd/i386/libm.abilist b/sysdeps/mach/hurd/i386/libm.abilist index 5208057586..1a41ae589f 100644 --- a/sysdeps/mach/hurd/i386/libm.abilist +++ b/sysdeps/mach/hurd/i386/libm.abilist @@ -1073,3 +1073,19 @@ GLIBC_2.29 exp2 F GLIBC_2.29 log F GLIBC_2.29 log2 F GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf128 F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderf64x F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf128 F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagf64x F +GLIBC_2.31 totalordermagl F diff --git a/sysdeps/unix/sysv/linux/aarch64/libm.abilist b/sysdeps/unix/sysv/linux/aarch64/libm.abilist index d38ebfb510..62e1fee467 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libm.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libm.abilist @@ -1037,3 +1037,19 @@ GLIBC_2.29 exp2 F GLIBC_2.29 log F GLIBC_2.29 log2 F GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf128 F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderf64x F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf128 F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagf64x F +GLIBC_2.31 totalordermagl F diff --git a/sysdeps/unix/sysv/linux/alpha/libm.abilist b/sysdeps/unix/sysv/linux/alpha/libm.abilist index 1157dcf398..08ac3905a0 100644 --- a/sysdeps/unix/sysv/linux/alpha/libm.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libm.abilist @@ -1094,6 +1094,22 @@ GLIBC_2.3.4 csinhf F GLIBC_2.3.4 csqrtf F GLIBC_2.3.4 ctanf F GLIBC_2.3.4 ctanhf F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf128 F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderf64x F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf128 F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagf64x F +GLIBC_2.31 totalordermagl F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/arm/libm.abilist b/sysdeps/unix/sysv/linux/arm/libm.abilist index 547e7bcd9f..dd5931f288 100644 --- a/sysdeps/unix/sysv/linux/arm/libm.abilist +++ b/sysdeps/unix/sysv/linux/arm/libm.abilist @@ -458,6 +458,18 @@ GLIBC_2.29 exp2 F GLIBC_2.29 log F GLIBC_2.29 log2 F GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagl F GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F GLIBC_2.4 __clog10f F diff --git a/sysdeps/unix/sysv/linux/csky/libm.abilist b/sysdeps/unix/sysv/linux/csky/libm.abilist index 497f622644..88cdf00342 100644 --- a/sysdeps/unix/sysv/linux/csky/libm.abilist +++ b/sysdeps/unix/sysv/linux/csky/libm.abilist @@ -751,3 +751,15 @@ GLIBC_2.29 ynf32 F GLIBC_2.29 ynf32x F GLIBC_2.29 ynf64 F GLIBC_2.29 ynl F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagl F diff --git a/sysdeps/unix/sysv/linux/hppa/libm.abilist b/sysdeps/unix/sysv/linux/hppa/libm.abilist index 4bdd605269..e7686d71cf 100644 --- a/sysdeps/unix/sysv/linux/hppa/libm.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libm.abilist @@ -769,4 +769,16 @@ GLIBC_2.29 exp2 F GLIBC_2.29 log F GLIBC_2.29 log2 F GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagl 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 087e29790e..e67f9d7d27 100644 --- a/sysdeps/unix/sysv/linux/i386/libm.abilist +++ b/sysdeps/unix/sysv/linux/i386/libm.abilist @@ -1080,3 +1080,19 @@ GLIBC_2.29 exp2 F GLIBC_2.29 log F GLIBC_2.29 log2 F GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf128 F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderf64x F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf128 F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagf64x F +GLIBC_2.31 totalordermagl F diff --git a/sysdeps/unix/sysv/linux/ia64/libm.abilist b/sysdeps/unix/sysv/linux/ia64/libm.abilist index fff5eb17b3..0cf637f248 100644 --- a/sysdeps/unix/sysv/linux/ia64/libm.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libm.abilist @@ -1010,3 +1010,19 @@ GLIBC_2.29 exp2 F GLIBC_2.29 log F GLIBC_2.29 log2 F GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf128 F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderf64x F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf128 F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagf64x F +GLIBC_2.31 totalordermagl F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist index 547e7bcd9f..dd5931f288 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist @@ -458,6 +458,18 @@ GLIBC_2.29 exp2 F GLIBC_2.29 log F GLIBC_2.29 log2 F GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagl F GLIBC_2.4 _LIB_VERSION D 0x4 GLIBC_2.4 __clog10 F GLIBC_2.4 __clog10f F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist index 5f422643b1..f0b17ae485 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist @@ -809,3 +809,15 @@ GLIBC_2.29 exp2 F GLIBC_2.29 log F GLIBC_2.29 log2 F GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagl F diff --git a/sysdeps/unix/sysv/linux/microblaze/libm.abilist b/sysdeps/unix/sysv/linux/microblaze/libm.abilist index bbeeebf776..8dedc9a8a6 100644 --- a/sysdeps/unix/sysv/linux/microblaze/libm.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/libm.abilist @@ -770,3 +770,15 @@ GLIBC_2.29 exp2 F GLIBC_2.29 log F GLIBC_2.29 log2 F GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagl F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist index 93405d1641..a221d7be09 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/libm.abilist @@ -769,4 +769,16 @@ GLIBC_2.29 exp2 F GLIBC_2.29 log F GLIBC_2.29 log2 F GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagl 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 33f67a5d3d..823f87277e 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/libm.abilist @@ -1037,3 +1037,19 @@ GLIBC_2.29 exp2 F GLIBC_2.29 log F GLIBC_2.29 log2 F GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf128 F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderf64x F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf128 F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagf64x F +GLIBC_2.31 totalordermagl F diff --git a/sysdeps/unix/sysv/linux/nios2/libm.abilist b/sysdeps/unix/sysv/linux/nios2/libm.abilist index ecbe596898..64ac932c6a 100644 --- a/sysdeps/unix/sysv/linux/nios2/libm.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libm.abilist @@ -770,3 +770,15 @@ GLIBC_2.29 exp2 F GLIBC_2.29 log F GLIBC_2.29 log2 F GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist index a47fca400a..3fab31ff9c 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libm.abilist @@ -815,6 +815,18 @@ GLIBC_2.29 exp2 F GLIBC_2.29 log F GLIBC_2.29 log2 F GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagl F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist index ca7095fe72..b90d28a8fe 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libm.abilist @@ -814,6 +814,18 @@ GLIBC_2.29 exp2 F GLIBC_2.29 log F GLIBC_2.29 log2 F GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagl F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist index 9c6cf06d13..1369ab510c 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libm.abilist @@ -808,6 +808,18 @@ GLIBC_2.3 y1l F GLIBC_2.3 yn F GLIBC_2.3 ynf F GLIBC_2.3 ynl F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagl F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist index 554dcd2623..d479a64fca 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libm.abilist @@ -1081,3 +1081,19 @@ GLIBC_2.29 exp2 F GLIBC_2.29 log F GLIBC_2.29 log2 F GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf128 F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderf64x F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf128 F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagf64x F +GLIBC_2.31 totalordermagl F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist index 361fce20bb..90d9073188 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libm.abilist @@ -1019,3 +1019,19 @@ GLIBC_2.28 fmul F GLIBC_2.28 fmull F GLIBC_2.28 fsub F GLIBC_2.28 fsubl F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf128 F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderf64x F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf128 F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagf64x F +GLIBC_2.31 totalordermagl F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist index be5d286bf2..cd6be8e584 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist @@ -1038,6 +1038,22 @@ GLIBC_2.29 exp2 F GLIBC_2.29 log F GLIBC_2.29 log2 F GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf128 F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderf64x F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf128 F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagf64x F +GLIBC_2.31 totalordermagl F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist index 512fbc8630..5291424feb 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist @@ -1038,6 +1038,22 @@ GLIBC_2.29 exp2 F GLIBC_2.29 log F GLIBC_2.29 log2 F GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf128 F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderf64x F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf128 F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagf64x F +GLIBC_2.31 totalordermagl F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/sh/libm.abilist b/sysdeps/unix/sysv/linux/sh/libm.abilist index 09d97d6f52..de0f1c57c3 100644 --- a/sysdeps/unix/sysv/linux/sh/libm.abilist +++ b/sysdeps/unix/sysv/linux/sh/libm.abilist @@ -769,4 +769,16 @@ GLIBC_2.29 exp2 F GLIBC_2.29 log F GLIBC_2.29 log2 F GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagl 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 3240ff6aa3..fc52ebf64e 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist @@ -1045,6 +1045,22 @@ GLIBC_2.29 exp2 F GLIBC_2.29 log F GLIBC_2.29 log2 F GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf128 F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderf64x F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf128 F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagf64x F +GLIBC_2.31 totalordermagl F GLIBC_2.4 __clog10l F GLIBC_2.4 __finitel F GLIBC_2.4 __fpclassifyl F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist index 351331beb7..5288a28533 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist @@ -1037,3 +1037,19 @@ GLIBC_2.29 exp2 F GLIBC_2.29 log F GLIBC_2.29 log2 F GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf128 F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderf64x F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf128 F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagf64x F +GLIBC_2.31 totalordermagl F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist index 087f4db051..d620e465d2 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libm.abilist @@ -1071,3 +1071,19 @@ GLIBC_2.29 exp2 F GLIBC_2.29 log F GLIBC_2.29 log2 F GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf128 F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderf64x F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf128 F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagf64x F +GLIBC_2.31 totalordermagl F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist index e9a1cc0d5c..44b0eddc50 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist @@ -1071,3 +1071,19 @@ GLIBC_2.29 exp2 F GLIBC_2.29 log F GLIBC_2.29 log2 F GLIBC_2.29 pow F +GLIBC_2.31 totalorder F +GLIBC_2.31 totalorderf F +GLIBC_2.31 totalorderf128 F +GLIBC_2.31 totalorderf32 F +GLIBC_2.31 totalorderf32x F +GLIBC_2.31 totalorderf64 F +GLIBC_2.31 totalorderf64x F +GLIBC_2.31 totalorderl F +GLIBC_2.31 totalordermag F +GLIBC_2.31 totalordermagf F +GLIBC_2.31 totalordermagf128 F +GLIBC_2.31 totalordermagf32 F +GLIBC_2.31 totalordermagf32x F +GLIBC_2.31 totalordermagf64 F +GLIBC_2.31 totalordermagf64x F +GLIBC_2.31 totalordermagl F |