mirror of git://sourceware.org/git/glibc.git
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>
|
2019-08-15 Florian Weimer <fweimer@redhat.com>
|
||||||
|
|
||||||
[BZ #24899]
|
[BZ #24899]
|
||||||
|
|
7
NEWS
7
NEWS
|
@ -18,7 +18,12 @@ Major new features:
|
||||||
|
|
||||||
Deprecated and removed features, and other changes affecting compatibility:
|
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:
|
Changes to build and runtime requirements:
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION
|
#define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION
|
||||||
#include <bits/libc-header-start.h>
|
#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__
|
# define __STDC_WANT_IEC_60559_TYPES_EXT__
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -35,21 +35,21 @@ extern __typeof (__sigsetjmp) __sigsetjmp attribute_hidden;
|
||||||
# include <stddef.h>
|
# include <stddef.h>
|
||||||
# include <jmp_buf-macros.h>
|
# include <jmp_buf-macros.h>
|
||||||
|
|
||||||
# define STR_HELPER(x) #x
|
# define SJSTR_HELPER(x) #x
|
||||||
# define STR(x) STR_HELPER(x)
|
# define SJSTR(x) SJSTR_HELPER(x)
|
||||||
|
|
||||||
# define TEST_SIZE(type, size) \
|
# define TEST_SIZE(type, size) \
|
||||||
_Static_assert (sizeof (type) == size, \
|
_Static_assert (sizeof (type) == size, \
|
||||||
"size of " #type " != " \
|
"size of " #type " != " \
|
||||||
STR (size))
|
SJSTR (size))
|
||||||
# define TEST_ALIGN(type, align) \
|
# define TEST_ALIGN(type, align) \
|
||||||
_Static_assert (__alignof__ (type) == align , \
|
_Static_assert (__alignof__ (type) == align , \
|
||||||
"align of " #type " != " \
|
"align of " #type " != " \
|
||||||
STR (align))
|
SJSTR (align))
|
||||||
# define TEST_OFFSET(type, member, offset) \
|
# define TEST_OFFSET(type, member, offset) \
|
||||||
_Static_assert (offsetof (type, member) == offset, \
|
_Static_assert (offsetof (type, member) == offset, \
|
||||||
"offset of " #member " field of " #type " != " \
|
"offset of " #member " field of " #type " != " \
|
||||||
STR (offset))
|
SJSTR (offset))
|
||||||
|
|
||||||
/* Check if jmp_buf have the expected sizes. */
|
/* Check if jmp_buf have the expected sizes. */
|
||||||
TEST_SIZE (jmp_buf, JMP_BUF_SIZE);
|
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.
|
NaN.
|
||||||
@end deftypefn
|
@end deftypefn
|
||||||
|
|
||||||
@deftypefun int totalorder (double @var{x}, double @var{y})
|
@deftypefun int totalorder (const double *@var{x}, const double *@var{y})
|
||||||
@deftypefunx int totalorderf (float @var{x}, float @var{y})
|
@deftypefunx int totalorderf (const float *@var{x}, const float *@var{y})
|
||||||
@deftypefunx int totalorderl (long double @var{x}, long double @var{y})
|
@deftypefunx int totalorderl (const long double *@var{x}, const long double *@var{y})
|
||||||
@deftypefunx int totalorderfN (_Float@var{N} @var{x}, _Float@var{N} @var{y})
|
@deftypefunx int totalorderfN (const _Float@var{N} *@var{x}, const _Float@var{N} *@var{y})
|
||||||
@deftypefunx int totalorderfNx (_Float@var{N}x @var{x}, _Float@var{N}x @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}
|
@standards{TS 18661-1:2014, math.h}
|
||||||
@standardsx{totalorderfN, TS 18661-3:2015, math.h}
|
@standardsx{totalorderfN, TS 18661-3:2015, math.h}
|
||||||
@standardsx{totalorderfNx, TS 18661-3:2015, math.h}
|
@standardsx{totalorderfNx, TS 18661-3:2015, math.h}
|
||||||
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
|
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
|
||||||
These functions determine whether the total order relationship,
|
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
|
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
|
raised even for signaling NaNs. The relationship is true if they are
|
||||||
the same floating-point value (including sign for zero and NaNs, and
|
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
|
order: negative quiet NaNs, in order of decreasing payload; negative
|
||||||
signaling NaNs, in order of decreasing payload; negative infinity;
|
signaling NaNs, in order of decreasing payload; negative infinity;
|
||||||
finite numbers, in ascending order, with negative zero before positive
|
finite numbers, in ascending order, with negative zero before positive
|
||||||
|
@ -2043,18 +2045,18 @@ increasing payload; positive quiet NaNs, in order of increasing
|
||||||
payload.
|
payload.
|
||||||
@end deftypefun
|
@end deftypefun
|
||||||
|
|
||||||
@deftypefun int totalordermag (double @var{x}, double @var{y})
|
@deftypefun int totalordermag (const double *@var{x}, const double *@var{y})
|
||||||
@deftypefunx int totalordermagf (float @var{x}, float @var{y})
|
@deftypefunx int totalordermagf (const float *@var{x}, const float *@var{y})
|
||||||
@deftypefunx int totalordermagl (long double @var{x}, long double @var{y})
|
@deftypefunx int totalordermagl (const long double *@var{x}, const long double *@var{y})
|
||||||
@deftypefunx int totalordermagfN (_Float@var{N} @var{x}, _Float@var{N} @var{y})
|
@deftypefunx int totalordermagfN (const _Float@var{N} *@var{x}, const _Float@var{N} *@var{y})
|
||||||
@deftypefunx int totalordermagfNx (_Float@var{N}x @var{x}, _Float@var{N}x @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}
|
@standards{TS 18661-1:2014, math.h}
|
||||||
@standardsx{totalordermagfN, TS 18661-3:2015, math.h}
|
@standardsx{totalordermagfN, TS 18661-3:2015, math.h}
|
||||||
@standardsx{totalordermagfNx, TS 18661-3:2015, math.h}
|
@standardsx{totalordermagfNx, TS 18661-3:2015, math.h}
|
||||||
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
|
@safety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
|
||||||
These functions determine whether the total order relationship,
|
These functions determine whether the total order relationship,
|
||||||
defined in IEEE 754-2008, is true for the absolute values of @var{x}
|
defined in IEEE 754-2008, is true for the absolute values of @code{*@var{x}}
|
||||||
and @var{y}, returning nonzero if it is true and zero if it is false.
|
and @code{*@var{y}}, returning nonzero if it is true and zero if it is false.
|
||||||
No exceptions are raised even for signaling NaNs.
|
No exceptions are raised even for signaling NaNs.
|
||||||
@end deftypefun
|
@end deftypefun
|
||||||
|
|
||||||
|
|
|
@ -287,7 +287,8 @@ libm-test-funcs-noauto = canonicalize ceil cimag conj copysign cproj creal \
|
||||||
nextup remainder remquo rint round roundeven scalb \
|
nextup remainder remquo rint round roundeven scalb \
|
||||||
scalbln scalbn setpayload setpayloadsig signbit \
|
scalbln scalbn setpayload setpayloadsig signbit \
|
||||||
significand totalorder totalordermag trunc ufromfp \
|
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-narrow = add div mul sub
|
||||||
libm-test-funcs-all = $(libm-test-funcs-auto) $(libm-test-funcs-noauto)
|
libm-test-funcs-all = $(libm-test-funcs-auto) $(libm-test-funcs-noauto)
|
||||||
libm-test-c-auto = $(foreach f,$(libm-test-funcs-auto),libm-test-$(f).c)
|
libm-test-c-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)))
|
$(foreach f,$($(t)-funcs),test-$(t)-$(f)))
|
||||||
libm-tests = $(libm-tests-normal) $(libm-tests-finite) $(libm-tests-inline) \
|
libm-tests = $(libm-tests-normal) $(libm-tests-finite) $(libm-tests-inline) \
|
||||||
$(libm-tests-narrow) $(libm-tests-vector)
|
$(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),\
|
libm-tests-for-type = $(foreach f,$(libm-test-funcs-all),\
|
||||||
test-$(1)-$(f) test-$(1)-finite-$(f) \
|
test-$(1)-$(f) test-$(1)-finite-$(f) \
|
||||||
test-i$(1)-$(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))
|
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)) \
|
generated += $(addsuffix .c,$(libm-tests)) \
|
||||||
$(foreach t,$(test-types),libm-test-support-$(t).c)
|
$(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)
|
$(make-target-directory)
|
||||||
$(PYTHON) gen-libm-test.py -c $< -a auto-libm-test-out$* -C $@
|
$(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 \
|
tgmath3-macros = atan2 cbrt ceil copysign erf erfc exp2 expm1 fdim floor \
|
||||||
fma fmax fmin fmod frexp hypot ilogb ldexp lgamma llrint \
|
fma fmax fmin fmod frexp hypot ilogb ldexp lgamma llrint \
|
||||||
llround log10 log1p log2 logb lrint lround nearbyint \
|
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 \
|
scalbln tgamma trunc acos asin atan acosh asinh atanh cos \
|
||||||
sin tan cosh sinh tanh exp log pow sqrt fabs carg cimag conj \
|
sin tan cosh sinh tanh exp log pow sqrt fabs carg cimag conj \
|
||||||
cproj creal roundeven nextup nextdown fminmag fmaxmag llogb \
|
cproj creal roundeven nextup nextdown fminmag fmaxmag llogb \
|
||||||
fromfp fromfpx ufromfp ufromfpx totalorder totalordermag \
|
fromfp fromfpx ufromfp ufromfpx scalb
|
||||||
scalb
|
|
||||||
tgmath3-macro-tests = $(addprefix test-tgmath3-,$(tgmath3-macros))
|
tgmath3-macro-tests = $(addprefix test-tgmath3-,$(tgmath3-macros))
|
||||||
tests += $(tgmath3-macro-tests)
|
tests += $(tgmath3-macro-tests)
|
||||||
generated += $(addsuffix .c,$(tgmath3-macro-tests))
|
generated += $(addsuffix .c,$(tgmath3-macro-tests))
|
||||||
|
|
|
@ -579,4 +579,15 @@ libm {
|
||||||
# No SVID compatible error handling.
|
# No SVID compatible error handling.
|
||||||
exp; exp2; log; log2; pow;
|
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
|
#if __GLIBC_USE (IEC_60559_BFP_EXT) || __MATH_DECLARING_FLOATN
|
||||||
/* Total order operation. */
|
/* Total order operation. */
|
||||||
__MATHDECL_1 (int, totalorder,, (_Mdouble_ __x, _Mdouble_ __y))
|
__MATHDECL_1 (int, totalorder,, (const _Mdouble_ *__x, const _Mdouble_ *__y))
|
||||||
__attribute__ ((__const__));
|
__attribute__ ((__const__));
|
||||||
|
|
||||||
/* Total order operation on absolute values. */
|
/* 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__));
|
__attribute__ ((__const__));
|
||||||
|
|
||||||
/* Get NaN payload. */
|
/* Get NaN payload. */
|
||||||
|
|
|
@ -575,8 +575,6 @@ class Tests(object):
|
||||||
self.add_tests('fromfpx', 'intmax_t', ['r', 'int', 'unsigned int'])
|
self.add_tests('fromfpx', 'intmax_t', ['r', 'int', 'unsigned int'])
|
||||||
self.add_tests('ufromfp', 'uintmax_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('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,
|
# The functions that round their result to a narrower type,
|
||||||
# and the associated type-generic macros, are not yet
|
# and the associated type-generic macros, are not yet
|
||||||
# supported by this script or by glibc.
|
# supported by this script or by glibc.
|
||||||
|
|
|
@ -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:
|
||||||
|
*/
|
|
@ -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;
|
int exceptions;
|
||||||
} rd, rn, rz, ru;
|
} 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
|
struct test_ff_i_data
|
||||||
{
|
{
|
||||||
const char *arg_str;
|
const char *arg_str;
|
||||||
|
@ -860,6 +861,26 @@ struct test_Ff_b1_data
|
||||||
(ARRAY)[i].RM_##ROUNDING_MODE.expected, \
|
(ARRAY)[i].RM_##ROUNDING_MODE.expected, \
|
||||||
(ARRAY)[i].RM_##ROUNDING_MODE.exceptions); \
|
(ARRAY)[i].RM_##ROUNDING_MODE.exceptions); \
|
||||||
ROUND_RESTORE_ ## ROUNDING_MODE
|
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, \
|
#define RUN_TEST_ff_i_tg(ARG_STR, FUNC_NAME, ARG1, ARG2, EXPECTED, \
|
||||||
EXCEPTIONS) \
|
EXCEPTIONS) \
|
||||||
do \
|
do \
|
||||||
|
|
|
@ -20,249 +20,250 @@
|
||||||
|
|
||||||
static const struct test_ff_i_data totalorder_test_data[] =
|
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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_b (totalorder, 1, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||||
TEST_ff_b (totalorder, 1, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
TEST_fpfp_b (totalorder, 1, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||||
TEST_ff_b (totalorder, 1, minus_infty, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
TEST_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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, -qnan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||||
#if PAYLOAD_DIG >= 34
|
#if PAYLOAD_DIG >= 34
|
||||||
TEST_ff_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"), 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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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, -snan_value_pl ("0x200000000"), -snan_value_pl ("0x100000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||||
#endif
|
#endif
|
||||||
#if PAYLOAD_DIG >= 66
|
#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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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, -snan_value_pl ("0x20000000000000000"), -snan_value_pl ("0x10000000000000000"), 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
|
||||||
#endif
|
#endif
|
||||||
TEST_ff_b (totalorder, 1, 0x1.000002p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
TEST_fpfp_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_fpfp_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_fpfp_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, 0x0.ffffffp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||||
#if MANT_DIG >= 53
|
#if MANT_DIG >= 53
|
||||||
TEST_ff_b (totalorder, 1, 0x1.0000000000001p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
TEST_fpfp_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_fpfp_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_fpfp_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, 0x0.fffffffffffff8p0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||||
#endif
|
#endif
|
||||||
#if MANT_DIG >= 64
|
#if MANT_DIG >= 64
|
||||||
TEST_ff_b (totalorder, 1, 0x1.0000000000000002p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
TEST_fpfp_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_fpfp_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_fpfp_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, 0x0.ffffffffffffffffp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||||
#endif
|
#endif
|
||||||
#if MANT_DIG >= 106
|
#if MANT_DIG >= 106
|
||||||
TEST_ff_b (totalorder, 1, 0x1.000000000000000000000000008p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
TEST_fpfp_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_fpfp_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_fpfp_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, 0x0.ffffffffffffffffffffffffffcp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||||
#endif
|
#endif
|
||||||
#if MANT_DIG >= 113
|
#if MANT_DIG >= 113
|
||||||
TEST_ff_b (totalorder, 1, 0x1.0000000000000000000000000001p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
TEST_fpfp_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_fpfp_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_fpfp_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, 0x0.ffffffffffffffffffffffffffff8p0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifndef COMPAT_TEST
|
||||||
static void
|
static void
|
||||||
totalorder_test (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
|
static void
|
||||||
|
@ -270,6 +271,7 @@ do_test (void)
|
||||||
{
|
{
|
||||||
totalorder_test ();
|
totalorder_test ();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Local Variables:
|
* Local Variables:
|
||||||
|
|
|
@ -20,249 +20,250 @@
|
||||||
|
|
||||||
static const struct test_ff_i_data totalordermag_test_data[] =
|
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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_b (totalordermag, 1, plus_zero, 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||||
TEST_ff_b (totalordermag, 1, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
TEST_fpfp_b (totalordermag, 1, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||||
TEST_ff_b (totalordermag, 1, minus_infty, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
TEST_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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, -qnan_value_pl ("0x1"), -snan_value_pl ("0x3fffff"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||||
#if PAYLOAD_DIG >= 34
|
#if PAYLOAD_DIG >= 34
|
||||||
TEST_ff_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_ff_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_ff_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_ff_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_ff_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_ff_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_ff_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_ff_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_ff_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_ff_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_ff_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_ff_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_ff_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_ff_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_ff_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),
|
||||||
TEST_ff_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
|
#endif
|
||||||
#if PAYLOAD_DIG >= 66
|
#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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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_fpfp_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, -snan_value_pl ("0x20000000000000000"), -snan_value_pl ("0x10000000000000000"), 0, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED|XFAIL_FLOAT128_PAYLOAD),
|
||||||
#endif
|
#endif
|
||||||
TEST_ff_b (totalordermag, 1, 0x1.000002p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
TEST_fpfp_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_fpfp_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_fpfp_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, 0x0.ffffffp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||||
#if MANT_DIG >= 53
|
#if MANT_DIG >= 53
|
||||||
TEST_ff_b (totalordermag, 1, 0x1.0000000000001p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
TEST_fpfp_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_fpfp_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_fpfp_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, 0x0.fffffffffffff8p0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||||
#endif
|
#endif
|
||||||
#if MANT_DIG >= 64
|
#if MANT_DIG >= 64
|
||||||
TEST_ff_b (totalordermag, 1, 0x1.0000000000000002p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
TEST_fpfp_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_fpfp_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_fpfp_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, 0x0.ffffffffffffffffp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||||
#endif
|
#endif
|
||||||
#if MANT_DIG >= 106
|
#if MANT_DIG >= 106
|
||||||
TEST_ff_b (totalordermag, 1, 0x1.000000000000000000000000008p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
TEST_fpfp_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_fpfp_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_fpfp_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, 0x0.ffffffffffffffffffffffffffcp0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||||
#endif
|
#endif
|
||||||
#if MANT_DIG >= 113
|
#if MANT_DIG >= 113
|
||||||
TEST_ff_b (totalordermag, 1, 0x1.0000000000000000000000000001p0, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
TEST_fpfp_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_fpfp_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_fpfp_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, 0x0.ffffffffffffffffffffffffffff8p0, 1, 1, NO_INEXACT_EXCEPTION|ERRNO_UNCHANGED),
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifndef COMPAT_TEST
|
||||||
static void
|
static void
|
||||||
totalordermag_test (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
|
static void
|
||||||
|
@ -270,6 +271,7 @@ do_test (void)
|
||||||
{
|
{
|
||||||
totalordermag_test ();
|
totalordermag_test ();
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Local Variables:
|
* Local Variables:
|
||||||
|
|
|
@ -52,7 +52,7 @@ volatile int count_cdouble;
|
||||||
volatile int count_cfloat;
|
volatile int count_cfloat;
|
||||||
volatile int count_cldouble;
|
volatile int count_cldouble;
|
||||||
|
|
||||||
#define NCALLS 134
|
#define NCALLS 132
|
||||||
#define NCALLS_INT 4
|
#define NCALLS_INT 4
|
||||||
#define NCCALLS 47
|
#define NCCALLS 47
|
||||||
|
|
||||||
|
@ -295,8 +295,6 @@ F(compile_test) (void)
|
||||||
b = fmaxmag (fmaxmag (a, x), fmaxmag (c, b));
|
b = fmaxmag (fmaxmag (a, x), fmaxmag (c, b));
|
||||||
a = fminmag (fminmag (x, a), fminmag (c, b));
|
a = fminmag (fminmag (x, a), fminmag (c, b));
|
||||||
b = fma (sin (a), sin (x), sin (c));
|
b = fma (sin (a), sin (x), sin (c));
|
||||||
a = totalorder (x, b);
|
|
||||||
b = totalordermag (x, a);
|
|
||||||
|
|
||||||
#ifdef TEST_INT
|
#ifdef TEST_INT
|
||||||
a = atan2 (i, b);
|
a = atan2 (i, b);
|
||||||
|
@ -400,8 +398,6 @@ F(compile_test) (void)
|
||||||
a = fmaxmag (y, y);
|
a = fmaxmag (y, y);
|
||||||
a = fminmag (y, y);
|
a = fminmag (y, y);
|
||||||
a = fma (y, y, y);
|
a = fma (y, y, y);
|
||||||
a = totalorder (y, y);
|
|
||||||
a = totalordermag (y, y);
|
|
||||||
|
|
||||||
#ifdef TEST_INT
|
#ifdef TEST_INT
|
||||||
a = atan2 (i, y);
|
a = atan2 (i, y);
|
||||||
|
@ -959,22 +955,6 @@ TYPE
|
||||||
return x + y + z;
|
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
|
complex TYPE
|
||||||
(F(cacos)) (complex TYPE x)
|
(F(cacos)) (complex TYPE x)
|
||||||
{
|
{
|
||||||
|
|
|
@ -230,8 +230,6 @@
|
||||||
__TGMATH_2 (Fct, (Val1), (Val2))
|
__TGMATH_2 (Fct, (Val1), (Val2))
|
||||||
# define __TGMATH_BINARY_REAL_STD_ONLY(Val1, Val2, Fct) \
|
# define __TGMATH_BINARY_REAL_STD_ONLY(Val1, Val2, Fct) \
|
||||||
__TGMATH_2STD (Fct, (Val1), (Val2))
|
__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) \
|
# define __TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY(Val1, Val2, Val3, Fct) \
|
||||||
__TGMATH_3 (Fct, (Val1), (Val2), (Val3))
|
__TGMATH_3 (Fct, (Val1), (Val2), (Val3))
|
||||||
# define __TGMATH_TERNARY_REAL_ONLY(Val1, Val2, Val3, Fct) \
|
# define __TGMATH_TERNARY_REAL_ONLY(Val1, Val2, Val3, Fct) \
|
||||||
|
@ -326,18 +324,6 @@
|
||||||
+ (__tgmath_real_type (Val2)) 0)) \
|
+ (__tgmath_real_type (Val2)) 0)) \
|
||||||
Fct##f (Val1, Val2)))
|
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) \
|
# define __TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY(Val1, Val2, Val3, Fct) \
|
||||||
(__extension__ ((sizeof ((Val1) + (Val2)) > sizeof (double) \
|
(__extension__ ((sizeof ((Val1) + (Val2)) > sizeof (double) \
|
||||||
&& __builtin_classify_type ((Val1) + (Val2)) == 8) \
|
&& __builtin_classify_type ((Val1) + (Val2)) == 8) \
|
||||||
|
@ -732,16 +718,6 @@
|
||||||
# define fminmag(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fminmag)
|
# define fminmag(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fminmag)
|
||||||
#endif
|
#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. */
|
/* Absolute value, conjugates, and projection. */
|
||||||
|
|
||||||
|
|
|
@ -21,14 +21,16 @@
|
||||||
#include <libm-alias-double.h>
|
#include <libm-alias-double.h>
|
||||||
#include <nan-high-order-bit.h>
|
#include <nan-high-order-bit.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <shlib-compat.h>
|
||||||
|
#include <first-versions.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
__totalorder (double x, double y)
|
__totalorder (const double *x, const double *y)
|
||||||
{
|
{
|
||||||
int32_t hx, hy;
|
int32_t hx, hy;
|
||||||
uint32_t lx, ly;
|
uint32_t lx, ly;
|
||||||
EXTRACT_WORDS (hx, lx, x);
|
EXTRACT_WORDS (hx, lx, *x);
|
||||||
EXTRACT_WORDS (hy, ly, y);
|
EXTRACT_WORDS (hy, ly, *y);
|
||||||
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
|
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
|
||||||
uint32_t uhx = hx & 0x7fffffff, uhy = hy & 0x7fffffff;
|
uint32_t uhx = hx & 0x7fffffff, uhy = hy & 0x7fffffff;
|
||||||
/* For the preferred quiet NaN convention, this operation is a
|
/* For the preferred quiet NaN convention, this operation is a
|
||||||
|
@ -50,4 +52,29 @@ __totalorder (double x, double y)
|
||||||
ly ^= hy_sign;
|
ly ^= hy_sign;
|
||||||
return hx < hy || (hx == hy && lx <= ly);
|
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)
|
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 <libm-alias-double.h>
|
||||||
#include <nan-high-order-bit.h>
|
#include <nan-high-order-bit.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <shlib-compat.h>
|
||||||
|
#include <first-versions.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
__totalordermag (double x, double y)
|
__totalordermag (const double *x, const double *y)
|
||||||
{
|
{
|
||||||
uint32_t hx, hy;
|
uint32_t hx, hy;
|
||||||
uint32_t lx, ly;
|
uint32_t lx, ly;
|
||||||
EXTRACT_WORDS (hx, lx, x);
|
EXTRACT_WORDS (hx, lx, *x);
|
||||||
EXTRACT_WORDS (hy, ly, y);
|
EXTRACT_WORDS (hy, ly, *y);
|
||||||
hx &= 0x7fffffff;
|
hx &= 0x7fffffff;
|
||||||
hy &= 0x7fffffff;
|
hy &= 0x7fffffff;
|
||||||
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
|
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
|
||||||
|
@ -45,4 +47,29 @@ __totalordermag (double x, double y)
|
||||||
#endif
|
#endif
|
||||||
return hx < hy || (hx == hy && lx <= ly);
|
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)
|
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 <nan-high-order-bit.h>
|
||||||
#include <libm-alias-double.h>
|
#include <libm-alias-double.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <shlib-compat.h>
|
||||||
|
#include <first-versions.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
__totalorder (double x, double y)
|
__totalorder (const double *x, const double *y)
|
||||||
{
|
{
|
||||||
int64_t ix, iy;
|
int64_t ix, iy;
|
||||||
EXTRACT_WORDS64 (ix, x);
|
EXTRACT_WORDS64 (ix, *x);
|
||||||
EXTRACT_WORDS64 (iy, y);
|
EXTRACT_WORDS64 (iy, *y);
|
||||||
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
|
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
|
||||||
/* For the preferred quiet NaN convention, this operation is a
|
/* For the preferred quiet NaN convention, this operation is a
|
||||||
comparison of the representations of the arguments interpreted as
|
comparison of the representations of the arguments interpreted as
|
||||||
|
@ -46,4 +48,29 @@ __totalorder (double x, double y)
|
||||||
iy ^= iy_sign >> 1;
|
iy ^= iy_sign >> 1;
|
||||||
return ix <= iy;
|
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)
|
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 <nan-high-order-bit.h>
|
||||||
#include <libm-alias-double.h>
|
#include <libm-alias-double.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <shlib-compat.h>
|
||||||
|
#include <first-versions.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
__totalordermag (double x, double y)
|
__totalordermag (const double *x, const double *y)
|
||||||
{
|
{
|
||||||
uint64_t ix, iy;
|
uint64_t ix, iy;
|
||||||
EXTRACT_WORDS64 (ix, x);
|
EXTRACT_WORDS64 (ix, *x);
|
||||||
EXTRACT_WORDS64 (iy, y);
|
EXTRACT_WORDS64 (iy, *y);
|
||||||
ix &= 0x7fffffffffffffffULL;
|
ix &= 0x7fffffffffffffffULL;
|
||||||
iy &= 0x7fffffffffffffffULL;
|
iy &= 0x7fffffffffffffffULL;
|
||||||
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
|
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
|
||||||
|
@ -43,4 +45,29 @@ __totalordermag (double x, double y)
|
||||||
#endif
|
#endif
|
||||||
return ix <= iy;
|
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)
|
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 __tanhl __tanhf128
|
||||||
#define __tanl __tanf128
|
#define __tanl __tanf128
|
||||||
#define __totalorderl __totalorderf128
|
#define __totalorderl __totalorderf128
|
||||||
|
#define __totalorder_compatl __totalorder_compatf128
|
||||||
#define __totalordermagl __totalordermagf128
|
#define __totalordermagl __totalordermagf128
|
||||||
|
#define __totalordermag_compatl __totalordermag_compatf128
|
||||||
#define __truncl __truncf128
|
#define __truncl __truncf128
|
||||||
#define __x2y2m1l __x2y2m1f128
|
#define __x2y2m1l __x2y2m1f128
|
||||||
|
|
||||||
|
|
|
@ -21,13 +21,15 @@
|
||||||
#include <libm-alias-float.h>
|
#include <libm-alias-float.h>
|
||||||
#include <nan-high-order-bit.h>
|
#include <nan-high-order-bit.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <shlib-compat.h>
|
||||||
|
#include <first-versions.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
__totalorderf (float x, float y)
|
__totalorderf (const float *x, const float *y)
|
||||||
{
|
{
|
||||||
int32_t ix, iy;
|
int32_t ix, iy;
|
||||||
GET_FLOAT_WORD (ix, x);
|
GET_FLOAT_WORD (ix, *x);
|
||||||
GET_FLOAT_WORD (iy, y);
|
GET_FLOAT_WORD (iy, *y);
|
||||||
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
|
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
|
||||||
/* For the preferred quiet NaN convention, this operation is a
|
/* For the preferred quiet NaN convention, this operation is a
|
||||||
comparison of the representations of the arguments interpreted as
|
comparison of the representations of the arguments interpreted as
|
||||||
|
@ -45,4 +47,29 @@ __totalorderf (float x, float y)
|
||||||
iy ^= iy_sign >> 1;
|
iy ^= iy_sign >> 1;
|
||||||
return ix <= iy;
|
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)
|
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 <libm-alias-float.h>
|
||||||
#include <nan-high-order-bit.h>
|
#include <nan-high-order-bit.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <shlib-compat.h>
|
||||||
|
#include <first-versions.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
__totalordermagf (float x, float y)
|
__totalordermagf (const float *x, const float *y)
|
||||||
{
|
{
|
||||||
uint32_t ix, iy;
|
uint32_t ix, iy;
|
||||||
GET_FLOAT_WORD (ix, x);
|
GET_FLOAT_WORD (ix, *x);
|
||||||
GET_FLOAT_WORD (iy, y);
|
GET_FLOAT_WORD (iy, *y);
|
||||||
ix &= 0x7fffffff;
|
ix &= 0x7fffffff;
|
||||||
iy &= 0x7fffffff;
|
iy &= 0x7fffffff;
|
||||||
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
|
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
|
||||||
|
@ -43,4 +45,29 @@ __totalordermagf (float x, float y)
|
||||||
#endif
|
#endif
|
||||||
return ix <= iy;
|
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)
|
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 <libm-alias-ldouble.h>
|
||||||
#include <nan-high-order-bit.h>
|
#include <nan-high-order-bit.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <shlib-compat.h>
|
||||||
|
#include <first-versions.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
__totalorderl (_Float128 x, _Float128 y)
|
__totalorderl (const _Float128 *x, const _Float128 *y)
|
||||||
{
|
{
|
||||||
int64_t hx, hy;
|
int64_t hx, hy;
|
||||||
uint64_t lx, ly;
|
uint64_t lx, ly;
|
||||||
GET_LDOUBLE_WORDS64 (hx, lx, x);
|
GET_LDOUBLE_WORDS64 (hx, lx, *x);
|
||||||
GET_LDOUBLE_WORDS64 (hy, ly, y);
|
GET_LDOUBLE_WORDS64 (hy, ly, *y);
|
||||||
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
|
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
|
||||||
uint64_t uhx = hx & 0x7fffffffffffffffULL;
|
uint64_t uhx = hx & 0x7fffffffffffffffULL;
|
||||||
uint64_t uhy = hy & 0x7fffffffffffffffULL;
|
uint64_t uhy = hy & 0x7fffffffffffffffULL;
|
||||||
|
@ -53,4 +55,29 @@ __totalorderl (_Float128 x, _Float128 y)
|
||||||
ly ^= hy_sign;
|
ly ^= hy_sign;
|
||||||
return hx < hy || (hx == hy && lx <= ly);
|
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)
|
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 <libm-alias-ldouble.h>
|
||||||
#include <nan-high-order-bit.h>
|
#include <nan-high-order-bit.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <shlib-compat.h>
|
||||||
|
#include <first-versions.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
__totalordermagl (_Float128 x, _Float128 y)
|
__totalordermagl (const _Float128 *x, const _Float128 *y)
|
||||||
{
|
{
|
||||||
uint64_t hx, hy;
|
uint64_t hx, hy;
|
||||||
uint64_t lx, ly;
|
uint64_t lx, ly;
|
||||||
GET_LDOUBLE_WORDS64 (hx, lx, x);
|
GET_LDOUBLE_WORDS64 (hx, lx, *x);
|
||||||
GET_LDOUBLE_WORDS64 (hy, ly, y);
|
GET_LDOUBLE_WORDS64 (hy, ly, *y);
|
||||||
hx &= 0x7fffffffffffffffULL;
|
hx &= 0x7fffffffffffffffULL;
|
||||||
hy &= 0x7fffffffffffffffULL;
|
hy &= 0x7fffffffffffffffULL;
|
||||||
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
|
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
|
||||||
|
@ -47,4 +49,29 @@ __totalordermagl (_Float128 x, _Float128 y)
|
||||||
#endif
|
#endif
|
||||||
return hx < hy || (hx == hy && lx <= ly);
|
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)
|
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 <math_private.h>
|
||||||
#include <nan-high-order-bit.h>
|
#include <nan-high-order-bit.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <shlib-compat.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
__totalorderl (long double x, long double y)
|
__totalorderl (const long double *x, const long double *y)
|
||||||
{
|
{
|
||||||
double xhi, xlo, yhi, ylo;
|
double xhi, xlo, yhi, ylo;
|
||||||
int64_t hx, hy, lx, ly;
|
int64_t hx, hy, lx, ly;
|
||||||
|
|
||||||
ldbl_unpack (x, &xhi, &xlo);
|
ldbl_unpack (*x, &xhi, &xlo);
|
||||||
EXTRACT_WORDS64 (hx, xhi);
|
EXTRACT_WORDS64 (hx, xhi);
|
||||||
ldbl_unpack (y, &yhi, &ylo);
|
ldbl_unpack (*y, &yhi, &ylo);
|
||||||
EXTRACT_WORDS64 (hy, yhi);
|
EXTRACT_WORDS64 (hy, yhi);
|
||||||
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
|
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
|
||||||
# error not implemented
|
# error not implemented
|
||||||
|
@ -60,4 +61,13 @@ __totalorderl (long double x, long double y)
|
||||||
ly ^= ly_sign >> 1;
|
ly ^= ly_sign >> 1;
|
||||||
return lx <= ly;
|
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 <math_private.h>
|
||||||
#include <nan-high-order-bit.h>
|
#include <nan-high-order-bit.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <shlib-compat.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
__totalordermagl (long double x, long double y)
|
__totalordermagl (const long double *x, const long double *y)
|
||||||
{
|
{
|
||||||
double xhi, xlo, yhi, ylo;
|
double xhi, xlo, yhi, ylo;
|
||||||
int64_t hx, hy, lx, ly;
|
int64_t hx, hy, lx, ly;
|
||||||
|
|
||||||
ldbl_unpack (x, &xhi, &xlo);
|
ldbl_unpack (*x, &xhi, &xlo);
|
||||||
EXTRACT_WORDS64 (hx, xhi);
|
EXTRACT_WORDS64 (hx, xhi);
|
||||||
ldbl_unpack (y, &yhi, &ylo);
|
ldbl_unpack (*y, &yhi, &ylo);
|
||||||
EXTRACT_WORDS64 (hy, yhi);
|
EXTRACT_WORDS64 (hy, yhi);
|
||||||
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
|
#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
|
||||||
# error not implemented
|
# error not implemented
|
||||||
|
@ -62,4 +63,13 @@ __totalordermagl (long double x, long double y)
|
||||||
ly ^= ly_sign >> 1;
|
ly ^= ly_sign >> 1;
|
||||||
return lx <= ly;
|
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 ldx = ldbl_pack (tests[i].hi, tests[i].lo1);
|
||||||
long double ldy = ldbl_pack (tests[i].hi, tests[i].lo2);
|
long double ldy = ldbl_pack (tests[i].hi, tests[i].lo2);
|
||||||
bool to1 = totalorderl (ldx, ldy);
|
bool to1 = totalorderl (&ldx, &ldy);
|
||||||
bool to2 = totalorderl (ldy, ldx);
|
bool to2 = totalorderl (&ldy, &ldx);
|
||||||
if (to1 && to2)
|
if (to1 && to2)
|
||||||
printf ("PASS: test %zu\n", i);
|
printf ("PASS: test %zu\n", i);
|
||||||
else
|
else
|
||||||
|
@ -55,8 +55,8 @@ do_test (void)
|
||||||
printf ("FAIL: test %zu\n", i);
|
printf ("FAIL: test %zu\n", i);
|
||||||
result = 1;
|
result = 1;
|
||||||
}
|
}
|
||||||
to1 = totalordermagl (ldx, ldy);
|
to1 = totalordermagl (&ldx, &ldy);
|
||||||
to2 = totalordermagl (ldy, ldx);
|
to2 = totalordermagl (&ldy, &ldx);
|
||||||
if (to1 && to2)
|
if (to1 && to2)
|
||||||
printf ("PASS: test %zu (totalordermagl)\n", i);
|
printf ("PASS: test %zu (totalordermagl)\n", i);
|
||||||
else
|
else
|
||||||
|
|
|
@ -22,15 +22,17 @@
|
||||||
#include <libm-alias-ldouble.h>
|
#include <libm-alias-ldouble.h>
|
||||||
#include <nan-high-order-bit.h>
|
#include <nan-high-order-bit.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <shlib-compat.h>
|
||||||
|
#include <first-versions.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
__totalorderl (long double x, long double y)
|
__totalorderl (const long double *x, const long double *y)
|
||||||
{
|
{
|
||||||
int16_t expx, expy;
|
int16_t expx, expy;
|
||||||
uint32_t hx, hy;
|
uint32_t hx, hy;
|
||||||
uint32_t lx, ly;
|
uint32_t lx, ly;
|
||||||
GET_LDOUBLE_WORDS (expx, hx, lx, x);
|
GET_LDOUBLE_WORDS (expx, hx, lx, *x);
|
||||||
GET_LDOUBLE_WORDS (expy, hy, ly, y);
|
GET_LDOUBLE_WORDS (expy, hy, ly, *y);
|
||||||
if (LDBL_MIN_EXP == -16382)
|
if (LDBL_MIN_EXP == -16382)
|
||||||
{
|
{
|
||||||
/* M68K variant: for the greatest exponent, the high mantissa
|
/* M68K variant: for the greatest exponent, the high mantissa
|
||||||
|
@ -56,4 +58,29 @@ __totalorderl (long double x, long double y)
|
||||||
ly ^= y_sign;
|
ly ^= y_sign;
|
||||||
return expx < expy || (expx == expy && (hx < hy || (hx == hy && lx <= ly)));
|
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)
|
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 <libm-alias-ldouble.h>
|
||||||
#include <nan-high-order-bit.h>
|
#include <nan-high-order-bit.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <shlib-compat.h>
|
||||||
|
#include <first-versions.h>
|
||||||
|
|
||||||
int
|
int
|
||||||
__totalordermagl (long double x, long double y)
|
__totalordermagl (const long double *x, const long double *y)
|
||||||
{
|
{
|
||||||
uint16_t expx, expy;
|
uint16_t expx, expy;
|
||||||
uint32_t hx, hy;
|
uint32_t hx, hy;
|
||||||
uint32_t lx, ly;
|
uint32_t lx, ly;
|
||||||
GET_LDOUBLE_WORDS (expx, hx, lx, x);
|
GET_LDOUBLE_WORDS (expx, hx, lx, *x);
|
||||||
GET_LDOUBLE_WORDS (expy, hy, ly, y);
|
GET_LDOUBLE_WORDS (expy, hy, ly, *y);
|
||||||
expx &= 0x7fff;
|
expx &= 0x7fff;
|
||||||
expy &= 0x7fff;
|
expy &= 0x7fff;
|
||||||
if (LDBL_MIN_EXP == -16382)
|
if (LDBL_MIN_EXP == -16382)
|
||||||
|
@ -50,4 +52,29 @@ __totalordermagl (long double x, long double y)
|
||||||
#endif
|
#endif
|
||||||
return expx < expy || (expx == expy && (hx < hy || (hx == hy && lx <= ly)));
|
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)
|
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,
|
SET_LDOUBLE_WORDS (ldny, 0xffff,
|
||||||
(tests[i] >> 32) | 0x80000000,
|
(tests[i] >> 32) | 0x80000000,
|
||||||
tests[i] & 0xffffffffULL);
|
tests[i] & 0xffffffffULL);
|
||||||
bool to1 = totalorderl (ldx, ldy);
|
bool to1 = totalorderl (&ldx, &ldy);
|
||||||
bool to2 = totalorderl (ldy, ldx);
|
bool to2 = totalorderl (&ldy, &ldx);
|
||||||
bool to3 = totalorderl (ldnx, ldny);
|
bool to3 = totalorderl (&ldnx, &ldny);
|
||||||
bool to4 = totalorderl (ldny, ldnx);
|
bool to4 = totalorderl (&ldny, &ldnx);
|
||||||
if (to1 && to2 && to3 && to4)
|
if (to1 && to2 && to3 && to4)
|
||||||
printf ("PASS: test %zu\n", i);
|
printf ("PASS: test %zu\n", i);
|
||||||
else
|
else
|
||||||
|
@ -62,10 +62,10 @@ do_test (void)
|
||||||
printf ("FAIL: test %zu\n", i);
|
printf ("FAIL: test %zu\n", i);
|
||||||
result = 1;
|
result = 1;
|
||||||
}
|
}
|
||||||
to1 = totalordermagl (ldx, ldy);
|
to1 = totalordermagl (&ldx, &ldy);
|
||||||
to2 = totalordermagl (ldy, ldx);
|
to2 = totalordermagl (&ldy, &ldx);
|
||||||
to3 = totalordermagl (ldnx, ldny);
|
to3 = totalordermagl (&ldnx, &ldny);
|
||||||
to4 = totalordermagl (ldny, ldnx);
|
to4 = totalordermagl (&ldny, &ldnx);
|
||||||
if (to1 && to2 && to3 && to4)
|
if (to1 && to2 && to3 && to4)
|
||||||
printf ("PASS: test %zu (totalordermagl)\n", i);
|
printf ("PASS: test %zu (totalordermagl)\n", i);
|
||||||
else
|
else
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
double
|
double
|
||||||
attribute_hidden
|
attribute_hidden
|
||||||
totalorderl (double x, double y)
|
totalorderl (const double *x, const double *y)
|
||||||
{
|
{
|
||||||
return totalorder (x, y);
|
return totalorder (x, y);
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
|
|
||||||
double
|
double
|
||||||
attribute_hidden
|
attribute_hidden
|
||||||
totalordermagl (double x, double y)
|
totalordermagl (const double *x, const double *y)
|
||||||
{
|
{
|
||||||
return totalordermag (x, y);
|
return totalordermag (x, y);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1073,3 +1073,19 @@ GLIBC_2.29 exp2 F
|
||||||
GLIBC_2.29 log F
|
GLIBC_2.29 log F
|
||||||
GLIBC_2.29 log2 F
|
GLIBC_2.29 log2 F
|
||||||
GLIBC_2.29 pow 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 log F
|
||||||
GLIBC_2.29 log2 F
|
GLIBC_2.29 log2 F
|
||||||
GLIBC_2.29 pow 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 csqrtf F
|
||||||
GLIBC_2.3.4 ctanf F
|
GLIBC_2.3.4 ctanf F
|
||||||
GLIBC_2.3.4 ctanhf 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 __clog10l F
|
||||||
GLIBC_2.4 __finitel F
|
GLIBC_2.4 __finitel F
|
||||||
GLIBC_2.4 __fpclassifyl F
|
GLIBC_2.4 __fpclassifyl F
|
||||||
|
|
|
@ -458,6 +458,18 @@ GLIBC_2.29 exp2 F
|
||||||
GLIBC_2.29 log F
|
GLIBC_2.29 log F
|
||||||
GLIBC_2.29 log2 F
|
GLIBC_2.29 log2 F
|
||||||
GLIBC_2.29 pow 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 _LIB_VERSION D 0x4
|
||||||
GLIBC_2.4 __clog10 F
|
GLIBC_2.4 __clog10 F
|
||||||
GLIBC_2.4 __clog10f F
|
GLIBC_2.4 __clog10f F
|
||||||
|
|
|
@ -751,3 +751,15 @@ GLIBC_2.29 ynf32 F
|
||||||
GLIBC_2.29 ynf32x F
|
GLIBC_2.29 ynf32x F
|
||||||
GLIBC_2.29 ynf64 F
|
GLIBC_2.29 ynf64 F
|
||||||
GLIBC_2.29 ynl 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 log F
|
||||||
GLIBC_2.29 log2 F
|
GLIBC_2.29 log2 F
|
||||||
GLIBC_2.29 pow 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
|
GLIBC_2.4 exp2l F
|
||||||
|
|
|
@ -1080,3 +1080,19 @@ GLIBC_2.29 exp2 F
|
||||||
GLIBC_2.29 log F
|
GLIBC_2.29 log F
|
||||||
GLIBC_2.29 log2 F
|
GLIBC_2.29 log2 F
|
||||||
GLIBC_2.29 pow 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 log F
|
||||||
GLIBC_2.29 log2 F
|
GLIBC_2.29 log2 F
|
||||||
GLIBC_2.29 pow 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 log F
|
||||||
GLIBC_2.29 log2 F
|
GLIBC_2.29 log2 F
|
||||||
GLIBC_2.29 pow 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 _LIB_VERSION D 0x4
|
||||||
GLIBC_2.4 __clog10 F
|
GLIBC_2.4 __clog10 F
|
||||||
GLIBC_2.4 __clog10f F
|
GLIBC_2.4 __clog10f F
|
||||||
|
|
|
@ -809,3 +809,15 @@ GLIBC_2.29 exp2 F
|
||||||
GLIBC_2.29 log F
|
GLIBC_2.29 log F
|
||||||
GLIBC_2.29 log2 F
|
GLIBC_2.29 log2 F
|
||||||
GLIBC_2.29 pow 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 log F
|
||||||
GLIBC_2.29 log2 F
|
GLIBC_2.29 log2 F
|
||||||
GLIBC_2.29 pow 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 log F
|
||||||
GLIBC_2.29 log2 F
|
GLIBC_2.29 log2 F
|
||||||
GLIBC_2.29 pow 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
|
GLIBC_2.4 exp2l F
|
||||||
|
|
|
@ -1037,3 +1037,19 @@ GLIBC_2.29 exp2 F
|
||||||
GLIBC_2.29 log F
|
GLIBC_2.29 log F
|
||||||
GLIBC_2.29 log2 F
|
GLIBC_2.29 log2 F
|
||||||
GLIBC_2.29 pow 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 log F
|
||||||
GLIBC_2.29 log2 F
|
GLIBC_2.29 log2 F
|
||||||
GLIBC_2.29 pow 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 log F
|
||||||
GLIBC_2.29 log2 F
|
GLIBC_2.29 log2 F
|
||||||
GLIBC_2.29 pow 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 __clog10l F
|
||||||
GLIBC_2.4 __finitel F
|
GLIBC_2.4 __finitel F
|
||||||
GLIBC_2.4 __fpclassifyl F
|
GLIBC_2.4 __fpclassifyl F
|
||||||
|
|
|
@ -814,6 +814,18 @@ GLIBC_2.29 exp2 F
|
||||||
GLIBC_2.29 log F
|
GLIBC_2.29 log F
|
||||||
GLIBC_2.29 log2 F
|
GLIBC_2.29 log2 F
|
||||||
GLIBC_2.29 pow 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 __clog10l F
|
||||||
GLIBC_2.4 __finitel F
|
GLIBC_2.4 __finitel F
|
||||||
GLIBC_2.4 __fpclassifyl F
|
GLIBC_2.4 __fpclassifyl F
|
||||||
|
|
|
@ -808,6 +808,18 @@ GLIBC_2.3 y1l F
|
||||||
GLIBC_2.3 yn F
|
GLIBC_2.3 yn F
|
||||||
GLIBC_2.3 ynf F
|
GLIBC_2.3 ynf F
|
||||||
GLIBC_2.3 ynl 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 __clog10l F
|
||||||
GLIBC_2.4 __finitel F
|
GLIBC_2.4 __finitel F
|
||||||
GLIBC_2.4 __fpclassifyl F
|
GLIBC_2.4 __fpclassifyl F
|
||||||
|
|
|
@ -1081,3 +1081,19 @@ GLIBC_2.29 exp2 F
|
||||||
GLIBC_2.29 log F
|
GLIBC_2.29 log F
|
||||||
GLIBC_2.29 log2 F
|
GLIBC_2.29 log2 F
|
||||||
GLIBC_2.29 pow 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 fmull F
|
||||||
GLIBC_2.28 fsub F
|
GLIBC_2.28 fsub F
|
||||||
GLIBC_2.28 fsubl 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 log F
|
||||||
GLIBC_2.29 log2 F
|
GLIBC_2.29 log2 F
|
||||||
GLIBC_2.29 pow 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 __clog10l F
|
||||||
GLIBC_2.4 __finitel F
|
GLIBC_2.4 __finitel F
|
||||||
GLIBC_2.4 __fpclassifyl F
|
GLIBC_2.4 __fpclassifyl F
|
||||||
|
|
|
@ -1038,6 +1038,22 @@ GLIBC_2.29 exp2 F
|
||||||
GLIBC_2.29 log F
|
GLIBC_2.29 log F
|
||||||
GLIBC_2.29 log2 F
|
GLIBC_2.29 log2 F
|
||||||
GLIBC_2.29 pow 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 __clog10l F
|
||||||
GLIBC_2.4 __finitel F
|
GLIBC_2.4 __finitel F
|
||||||
GLIBC_2.4 __fpclassifyl F
|
GLIBC_2.4 __fpclassifyl F
|
||||||
|
|
|
@ -769,4 +769,16 @@ GLIBC_2.29 exp2 F
|
||||||
GLIBC_2.29 log F
|
GLIBC_2.29 log F
|
||||||
GLIBC_2.29 log2 F
|
GLIBC_2.29 log2 F
|
||||||
GLIBC_2.29 pow 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
|
GLIBC_2.4 exp2l F
|
||||||
|
|
|
@ -1045,6 +1045,22 @@ GLIBC_2.29 exp2 F
|
||||||
GLIBC_2.29 log F
|
GLIBC_2.29 log F
|
||||||
GLIBC_2.29 log2 F
|
GLIBC_2.29 log2 F
|
||||||
GLIBC_2.29 pow 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 __clog10l F
|
||||||
GLIBC_2.4 __finitel F
|
GLIBC_2.4 __finitel F
|
||||||
GLIBC_2.4 __fpclassifyl F
|
GLIBC_2.4 __fpclassifyl F
|
||||||
|
|
|
@ -1037,3 +1037,19 @@ GLIBC_2.29 exp2 F
|
||||||
GLIBC_2.29 log F
|
GLIBC_2.29 log F
|
||||||
GLIBC_2.29 log2 F
|
GLIBC_2.29 log2 F
|
||||||
GLIBC_2.29 pow 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 log F
|
||||||
GLIBC_2.29 log2 F
|
GLIBC_2.29 log2 F
|
||||||
GLIBC_2.29 pow 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 log F
|
||||||
GLIBC_2.29 log2 F
|
GLIBC_2.29 log2 F
|
||||||
GLIBC_2.29 pow 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