mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
Make totalorder and totalordermag functions take pointer arguments.
The resolution of C floating-point Clarification Request 25 <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2397.htm#dr_25> is that the totalorder and totalordermag functions should take pointer arguments, and this has been adopted in C2X (with const added; note that the integration of this change into C2X is present in the C standard git repository but postdates the most recent public PDF draft). This patch updates glibc accordingly. As a defect resolution, the API is changed unconditionally rather than supporting any sort of TS 18661-1 mode for compilation with the old version of the API. There are compat symbols for existing binaries that pass floating-point arguments directly. As a consequence of changing to pointer arguments, there are no longer type-generic macros in tgmath.h for these functions. Because of the fairly complicated logic for creating libm function aliases and determining the set of aliases to create in a given glibc configuration, rather than duplicating all that in individual source files to create the versioned and compat symbols, the source files for the various versions of totalorder functions are set up to redefine weak_alias before using libm_alias_* macros to create the symbols required. In turn, this requires creating a separate alias for each symbol version pointing to the same implementation (see binutils bug <https://sourceware.org/bugzilla/show_bug.cgi?id=23840>), which is done automatically using __COUNTER__. (As I noted in <https://sourceware.org/ml/libc-alpha/2018-10/msg00631.html>, it might well make sense for glibc's symbol versioning macros to do that alias creation with __COUNTER__ themselves, which would somewhat simplify the logic in the totalorder source files.) It is of course desirable to test the compat symbols. I did this with the generic libm-test machinery, but didn't wish to duplicate the actual tables of test inputs and outputs, and thought it risky to attempt to have a single object file refer to both default and compat versions of the same function in order to test them together. Thus, I created libm-test-compat_totalorder.inc and libm-test-compat_totalordermag.inc which include the generated .c files (with the processed version of those tables of inputs) from the non-compat tests, and added appropriate dependencies. I think this provides sufficient test coverage for the compat symbols without also needing to make the special ldbl-96 and ldbl-128ibm tests (of peculiarities relating to the representations of those formats that can't be covered in the generic tests) run for the compat symbols. Tests of compat symbols need to be internal tests, meaning _ISOMAC is not defined. Making some libm-test tests into internal tests showed up two other issues. GCC diagnoses duplicate macro definitions of __STDC_* macros, including __STDC_WANT_IEC_60559_TYPES_EXT__; I added an appropriate conditional and filed <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91451> for this issue. On ia64, include/setjmp.h ends up getting included indirectly from libm-symbols.h, resulting in conflicting definitions of the STR macro (also defined in libm-test-driver.c); I renamed the macros in include/setjmp.h. (It's arguable that we should have common internal headers used everywhere for stringizing and concatenation macros.) Tested for x86_64 and x86, and with build-many-glibcs.py. * 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.
This commit is contained in:
parent
c2adefbafc
commit
42760d7646
155
ChangeLog
155
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]
|
||||
|
7
NEWS
7
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:
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
||||
|
@ -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))
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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. */
|
||||
|
@ -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.
|
||||
|
56
math/libm-test-compat_totalorder.inc
Normal file
56
math/libm-test-compat_totalorder.inc
Normal file
@ -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:
|
||||
*/
|
56
math/libm-test-compat_totalordermag.inc
Normal file
56
math/libm-test-compat_totalordermag.inc
Normal file
@ -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:
|
||||
*/
|
@ -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 \
|
||||
|
@ -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:
|
||||
|
@ -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:
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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. */
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
double
|
||||
attribute_hidden
|
||||
totalorderl (double x, double y)
|
||||
totalorderl (const double *x, const double *y)
|
||||
{
|
||||
return totalorder (x, y);
|
||||
}
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
double
|
||||
attribute_hidden
|
||||
totalordermagl (double x, double y)
|
||||
totalordermagl (const double *x, const double *y)
|
||||
{
|
||||
return totalordermag (x, y);
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user