From 9e97f239eae1f2b1d2e694d844c0f6fd7c4dd271 Mon Sep 17 00:00:00 2001 From: Wilco Dijkstra Date: Thu, 7 Jan 2021 15:26:26 +0000 Subject: [PATCH] Remove dbl-64/wordsize-64 (part 2) Remove the wordsize-64 implementations by merging them into the main dbl-64 directory. The second patch just moves all wordsize-64 files and removes a few wordsize-64 uses in comments and Implies files. Reviewed-by: Adhemerval Zanella --- sysdeps/aarch64/Implies | 1 - sysdeps/alpha/Implies | 1 - sysdeps/ieee754/dbl-64/{wordsize-64 => }/e_acosh.c | 0 sysdeps/ieee754/dbl-64/{wordsize-64 => }/e_cosh.c | 0 sysdeps/ieee754/dbl-64/{wordsize-64 => }/e_fmod.c | 0 sysdeps/ieee754/dbl-64/{wordsize-64 => }/e_log10.c | 0 sysdeps/ieee754/dbl-64/{wordsize-64 => }/s_frexp.c | 0 sysdeps/ieee754/dbl-64/s_getpayload.c | 15 ++--- sysdeps/ieee754/dbl-64/s_issignaling.c | 14 ++-- .../ieee754/dbl-64/{wordsize-64 => }/s_llround.c | 0 .../ieee754/dbl-64/{wordsize-64 => }/s_lround.c | 0 sysdeps/ieee754/dbl-64/{wordsize-64 => }/s_modf.c | 0 .../ieee754/dbl-64/{wordsize-64 => }/s_remquo.c | 0 .../ieee754/dbl-64/{wordsize-64 => }/s_roundeven.c | 1 - .../ieee754/dbl-64/{wordsize-64 => }/s_scalbln.c | 0 .../ieee754/dbl-64/{wordsize-64 => }/s_scalbn.c | 0 .../dbl-64/{wordsize-64 => }/s_setpayload_main.c | 2 +- sysdeps/ieee754/dbl-64/s_totalorder.c | 32 ++++----- sysdeps/ieee754/dbl-64/s_totalordermag.c | 24 ++++--- sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c | 38 ----------- sysdeps/ieee754/dbl-64/wordsize-64/s_issignaling.c | 43 ------------ sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c | 76 ---------------------- .../ieee754/dbl-64/wordsize-64/s_totalordermag.c | 73 --------------------- sysdeps/mips/mips64/Implies | 1 - sysdeps/s390/s390-64/Implies | 1 - sysdeps/sparc/sparc64/Implies | 1 - sysdeps/x86_64/Implies | 1 - 27 files changed, 38 insertions(+), 286 deletions(-) rename sysdeps/ieee754/dbl-64/{wordsize-64 => }/e_acosh.c (100%) rename sysdeps/ieee754/dbl-64/{wordsize-64 => }/e_cosh.c (100%) rename sysdeps/ieee754/dbl-64/{wordsize-64 => }/e_fmod.c (100%) rename sysdeps/ieee754/dbl-64/{wordsize-64 => }/e_log10.c (100%) rename sysdeps/ieee754/dbl-64/{wordsize-64 => }/s_frexp.c (100%) rename sysdeps/ieee754/dbl-64/{wordsize-64 => }/s_llround.c (100%) rename sysdeps/ieee754/dbl-64/{wordsize-64 => }/s_lround.c (100%) rename sysdeps/ieee754/dbl-64/{wordsize-64 => }/s_modf.c (100%) rename sysdeps/ieee754/dbl-64/{wordsize-64 => }/s_remquo.c (100%) rename sysdeps/ieee754/dbl-64/{wordsize-64 => }/s_roundeven.c (98%) rename sysdeps/ieee754/dbl-64/{wordsize-64 => }/s_scalbln.c (100%) rename sysdeps/ieee754/dbl-64/{wordsize-64 => }/s_scalbn.c (100%) rename sysdeps/ieee754/dbl-64/{wordsize-64 => }/s_setpayload_main.c (97%) delete mode 100644 sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c delete mode 100644 sysdeps/ieee754/dbl-64/wordsize-64/s_issignaling.c delete mode 100644 sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c delete mode 100644 sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c diff --git a/sysdeps/aarch64/Implies b/sysdeps/aarch64/Implies index a1d5e2e742..30800d54c3 100644 --- a/sysdeps/aarch64/Implies +++ b/sysdeps/aarch64/Implies @@ -1,5 +1,4 @@ wordsize-64 ieee754/ldbl-128 -ieee754/dbl-64/wordsize-64 ieee754/dbl-64 ieee754/flt-32 diff --git a/sysdeps/alpha/Implies b/sysdeps/alpha/Implies index 18fc4f339d..b15c7616d6 100644 --- a/sysdeps/alpha/Implies +++ b/sysdeps/alpha/Implies @@ -1,6 +1,5 @@ wordsize-64 # Alpha uses IEEE 754 single, double and quad precision floating point. ieee754/ldbl-128 -ieee754/dbl-64/wordsize-64 ieee754/dbl-64 ieee754/flt-32 diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/e_acosh.c b/sysdeps/ieee754/dbl-64/e_acosh.c similarity index 100% rename from sysdeps/ieee754/dbl-64/wordsize-64/e_acosh.c rename to sysdeps/ieee754/dbl-64/e_acosh.c diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/e_cosh.c b/sysdeps/ieee754/dbl-64/e_cosh.c similarity index 100% rename from sysdeps/ieee754/dbl-64/wordsize-64/e_cosh.c rename to sysdeps/ieee754/dbl-64/e_cosh.c diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/e_fmod.c b/sysdeps/ieee754/dbl-64/e_fmod.c similarity index 100% rename from sysdeps/ieee754/dbl-64/wordsize-64/e_fmod.c rename to sysdeps/ieee754/dbl-64/e_fmod.c diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/e_log10.c b/sysdeps/ieee754/dbl-64/e_log10.c similarity index 100% rename from sysdeps/ieee754/dbl-64/wordsize-64/e_log10.c rename to sysdeps/ieee754/dbl-64/e_log10.c diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_frexp.c b/sysdeps/ieee754/dbl-64/s_frexp.c similarity index 100% rename from sysdeps/ieee754/dbl-64/wordsize-64/s_frexp.c rename to sysdeps/ieee754/dbl-64/s_frexp.c diff --git a/sysdeps/ieee754/dbl-64/s_getpayload.c b/sysdeps/ieee754/dbl-64/s_getpayload.c index 30eae8b2e0..d095d2077d 100644 --- a/sysdeps/ieee754/dbl-64/s_getpayload.c +++ b/sysdeps/ieee754/dbl-64/s_getpayload.c @@ -1,4 +1,4 @@ -/* Get NaN payload. dbl-64 version. +/* Get NaN payload. Copyright (C) 2016-2021 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -16,22 +16,21 @@ License along with the GNU C Library; if not, see . */ -#include #include #include #include #include +#include double __getpayload (const double *x) { - uint32_t hx, lx; - EXTRACT_WORDS (hx, lx, *x); - if ((hx & 0x7ff00000) != 0x7ff00000 - || ((hx & 0xfffff) | lx) == 0) + uint64_t ix; + EXTRACT_WORDS64 (ix, *x); + if ((ix & 0x7ff0000000000000ULL) != 0x7ff0000000000000ULL + || (ix & 0xfffffffffffffULL) == 0) return -1; - hx &= 0x7ffff; - uint64_t ix = ((uint64_t) hx << 32) | lx; + ix &= 0x7ffffffffffffULL; if (FIX_INT_FP_CONVERT_ZERO && ix == 0) return 0.0f; return (double) ix; diff --git a/sysdeps/ieee754/dbl-64/s_issignaling.c b/sysdeps/ieee754/dbl-64/s_issignaling.c index d3344e5116..5fb6fbc7d4 100644 --- a/sysdeps/ieee754/dbl-64/s_issignaling.c +++ b/sysdeps/ieee754/dbl-64/s_issignaling.c @@ -23,25 +23,21 @@ int __issignaling (double x) { + uint64_t xi; + EXTRACT_WORDS64 (xi, x); #if HIGH_ORDER_BIT_IS_SET_FOR_SNAN - uint32_t hxi; - GET_HIGH_WORD (hxi, x); /* We only have to care about the high-order bit of x's significand, because having it set (sNaN) already makes the significand different from that used to designate infinity. */ - return (hxi & 0x7ff80000) == 0x7ff80000; + return (xi & UINT64_C (0x7ff8000000000000)) == UINT64_C (0x7ff8000000000000); #else - uint32_t hxi, lxi; - EXTRACT_WORDS (hxi, lxi, x); /* To keep the following comparison simple, toggle the quiet/signaling bit, so that it is set for sNaNs. This is inverse to IEEE 754-2008 (as well as common practice for IEEE 754-1985). */ - hxi ^= 0x00080000; - /* If lxi != 0, then set any suitable bit of the significand in hxi. */ - hxi |= (lxi | -lxi) >> 31; + xi ^= UINT64_C (0x0008000000000000); /* We have to compare for greater (instead of greater or equal), because x's significand being all-zero designates infinity not NaN. */ - return (hxi & 0x7fffffff) > 0x7ff80000; + return (xi & UINT64_C (0x7fffffffffffffff)) > UINT64_C (0x7ff8000000000000); #endif } libm_hidden_def (__issignaling) diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c b/sysdeps/ieee754/dbl-64/s_llround.c similarity index 100% rename from sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c rename to sysdeps/ieee754/dbl-64/s_llround.c diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c b/sysdeps/ieee754/dbl-64/s_lround.c similarity index 100% rename from sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c rename to sysdeps/ieee754/dbl-64/s_lround.c diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_modf.c b/sysdeps/ieee754/dbl-64/s_modf.c similarity index 100% rename from sysdeps/ieee754/dbl-64/wordsize-64/s_modf.c rename to sysdeps/ieee754/dbl-64/s_modf.c diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c b/sysdeps/ieee754/dbl-64/s_remquo.c similarity index 100% rename from sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c rename to sysdeps/ieee754/dbl-64/s_remquo.c diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c b/sysdeps/ieee754/dbl-64/s_roundeven.c similarity index 98% rename from sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c rename to sysdeps/ieee754/dbl-64/s_roundeven.c index 289804c840..943b2c634c 100644 --- a/sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c +++ b/sysdeps/ieee754/dbl-64/s_roundeven.c @@ -1,5 +1,4 @@ /* Round to nearest integer value, rounding halfway cases to even. - dbl-64/wordsize-64 version. Copyright (C) 2016-2021 Free Software Foundation, Inc. This file is part of the GNU C Library. diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_scalbln.c b/sysdeps/ieee754/dbl-64/s_scalbln.c similarity index 100% rename from sysdeps/ieee754/dbl-64/wordsize-64/s_scalbln.c rename to sysdeps/ieee754/dbl-64/s_scalbln.c diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_scalbn.c b/sysdeps/ieee754/dbl-64/s_scalbn.c similarity index 100% rename from sysdeps/ieee754/dbl-64/wordsize-64/s_scalbn.c rename to sysdeps/ieee754/dbl-64/s_scalbn.c diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_setpayload_main.c b/sysdeps/ieee754/dbl-64/s_setpayload_main.c similarity index 97% rename from sysdeps/ieee754/dbl-64/wordsize-64/s_setpayload_main.c rename to sysdeps/ieee754/dbl-64/s_setpayload_main.c index b622a50985..e0014a3b09 100644 --- a/sysdeps/ieee754/dbl-64/wordsize-64/s_setpayload_main.c +++ b/sysdeps/ieee754/dbl-64/s_setpayload_main.c @@ -1,4 +1,4 @@ -/* Set NaN payload. dbl-64/wordsize-64 version. +/* Set NaN payload. Copyright (C) 2016-2021 Free Software Foundation, Inc. This file is part of the GNU C Library. diff --git a/sysdeps/ieee754/dbl-64/s_totalorder.c b/sysdeps/ieee754/dbl-64/s_totalorder.c index ace32e0827..13bde9e538 100644 --- a/sysdeps/ieee754/dbl-64/s_totalorder.c +++ b/sysdeps/ieee754/dbl-64/s_totalorder.c @@ -1,4 +1,4 @@ -/* Total order operation. dbl-64 version. +/* Total order operation. Copyright (C) 2016-2021 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -18,8 +18,8 @@ #include #include -#include #include +#include #include #include #include @@ -27,30 +27,26 @@ int __totalorder (const double *x, const double *y) { - int32_t hx, hy; - uint32_t lx, ly; - EXTRACT_WORDS (hx, lx, *x); - EXTRACT_WORDS (hy, ly, *y); + int64_t ix, iy; + EXTRACT_WORDS64 (ix, *x); + EXTRACT_WORDS64 (iy, *y); #if HIGH_ORDER_BIT_IS_SET_FOR_SNAN - uint32_t uhx = hx & 0x7fffffff, uhy = hy & 0x7fffffff; /* For the preferred quiet NaN convention, this operation is a comparison of the representations of the arguments interpreted as sign-magnitude integers. If both arguments are NaNs, invert the quiet/signaling bit so comparing that way works. */ - if ((uhx > 0x7ff00000 || (uhx == 0x7ff00000 && lx != 0)) - && (uhy > 0x7ff00000 || (uhy == 0x7ff00000 && ly != 0))) + if ((ix & 0x7fffffffffffffffULL) > 0x7ff0000000000000ULL + && (iy & 0x7fffffffffffffffULL) > 0x7ff0000000000000ULL) { - hx ^= 0x00080000; - hy ^= 0x00080000; + ix ^= 0x0008000000000000ULL; + iy ^= 0x0008000000000000ULL; } #endif - uint32_t hx_sign = hx >> 31; - uint32_t hy_sign = hy >> 31; - hx ^= hx_sign >> 1; - lx ^= hx_sign; - hy ^= hy_sign >> 1; - ly ^= hy_sign; - return hx < hy || (hx == hy && lx <= ly); + uint64_t ix_sign = ix >> 63; + uint64_t iy_sign = iy >> 63; + ix ^= ix_sign >> 1; + iy ^= iy_sign >> 1; + return ix <= iy; } #ifdef SHARED # define CONCATX(x, y) x ## y diff --git a/sysdeps/ieee754/dbl-64/s_totalordermag.c b/sysdeps/ieee754/dbl-64/s_totalordermag.c index e6efc387a2..fd8aade28c 100644 --- a/sysdeps/ieee754/dbl-64/s_totalordermag.c +++ b/sysdeps/ieee754/dbl-64/s_totalordermag.c @@ -1,4 +1,4 @@ -/* Total order operation on absolute values. dbl-64 version. +/* Total order operation on absolute values. Copyright (C) 2016-2021 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -18,8 +18,8 @@ #include #include -#include #include +#include #include #include #include @@ -27,25 +27,23 @@ int __totalordermag (const double *x, const double *y) { - uint32_t hx, hy; - uint32_t lx, ly; - EXTRACT_WORDS (hx, lx, *x); - EXTRACT_WORDS (hy, ly, *y); - hx &= 0x7fffffff; - hy &= 0x7fffffff; + uint64_t ix, iy; + EXTRACT_WORDS64 (ix, *x); + EXTRACT_WORDS64 (iy, *y); + ix &= 0x7fffffffffffffffULL; + iy &= 0x7fffffffffffffffULL; #if HIGH_ORDER_BIT_IS_SET_FOR_SNAN /* For the preferred quiet NaN convention, this operation is a comparison of the representations of the absolute values of the arguments. If both arguments are NaNs, invert the quiet/signaling bit so comparing that way works. */ - if ((hx > 0x7ff00000 || (hx == 0x7ff00000 && lx != 0)) - && (hy > 0x7ff00000 || (hy == 0x7ff00000 && ly != 0))) + if (ix > 0x7ff0000000000000ULL && iy > 0x7ff0000000000000ULL) { - hx ^= 0x00080000; - hy ^= 0x00080000; + ix ^= 0x0008000000000000ULL; + iy ^= 0x0008000000000000ULL; } #endif - return hx < hy || (hx == hy && lx <= ly); + return ix <= iy; } #ifdef SHARED # define CONCATX(x, y) x ## y diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c deleted file mode 100644 index 5e4ccd9ad1..0000000000 --- a/sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Get NaN payload. dbl-64/wordsize-64 version. - Copyright (C) 2016-2021 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include -#include -#include - -double -__getpayload (const double *x) -{ - uint64_t ix; - EXTRACT_WORDS64 (ix, *x); - if ((ix & 0x7ff0000000000000ULL) != 0x7ff0000000000000ULL - || (ix & 0xfffffffffffffULL) == 0) - return -1; - ix &= 0x7ffffffffffffULL; - if (FIX_INT_FP_CONVERT_ZERO && ix == 0) - return 0.0f; - return (double) ix; -} -libm_alias_double (__getpayload, getpayload) diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_issignaling.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_issignaling.c deleted file mode 100644 index 5fb6fbc7d4..0000000000 --- a/sysdeps/ieee754/dbl-64/wordsize-64/s_issignaling.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Test for signaling NaN. - Copyright (C) 2013-2021 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include - -int -__issignaling (double x) -{ - uint64_t xi; - EXTRACT_WORDS64 (xi, x); -#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN - /* We only have to care about the high-order bit of x's significand, because - having it set (sNaN) already makes the significand different from that - used to designate infinity. */ - return (xi & UINT64_C (0x7ff8000000000000)) == UINT64_C (0x7ff8000000000000); -#else - /* To keep the following comparison simple, toggle the quiet/signaling bit, - so that it is set for sNaNs. This is inverse to IEEE 754-2008 (as well as - common practice for IEEE 754-1985). */ - xi ^= UINT64_C (0x0008000000000000); - /* We have to compare for greater (instead of greater or equal), because x's - significand being all-zero designates infinity not NaN. */ - return (xi & UINT64_C (0x7fffffffffffffff)) > UINT64_C (0x7ff8000000000000); -#endif -} -libm_hidden_def (__issignaling) diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c deleted file mode 100644 index 1e83b45008..0000000000 --- a/sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c +++ /dev/null @@ -1,76 +0,0 @@ -/* Total order operation. dbl-64/wordsize-64 version. - Copyright (C) 2016-2021 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include -#include -#include -#include -#include - -int -__totalorder (const double *x, const double *y) -{ - int64_t ix, iy; - EXTRACT_WORDS64 (ix, *x); - EXTRACT_WORDS64 (iy, *y); -#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN - /* For the preferred quiet NaN convention, this operation is a - comparison of the representations of the arguments interpreted as - sign-magnitude integers. If both arguments are NaNs, invert the - quiet/signaling bit so comparing that way works. */ - if ((ix & 0x7fffffffffffffffULL) > 0x7ff0000000000000ULL - && (iy & 0x7fffffffffffffffULL) > 0x7ff0000000000000ULL) - { - ix ^= 0x0008000000000000ULL; - iy ^= 0x0008000000000000ULL; - } -#endif - uint64_t ix_sign = ix >> 63; - uint64_t iy_sign = iy >> 63; - ix ^= ix_sign >> 1; - iy ^= iy_sign >> 1; - return ix <= iy; -} -#ifdef SHARED -# define CONCATX(x, y) x ## y -# define CONCAT(x, y) CONCATX (x, y) -# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__) -# define do_symbol(orig_name, name, aliasname) \ - strong_alias (orig_name, name) \ - versioned_symbol (libm, name, aliasname, GLIBC_2_31) -# undef weak_alias -# define weak_alias(name, aliasname) \ - do_symbol (name, UNIQUE_ALIAS (name), aliasname); -#endif -libm_alias_double (__totalorder, totalorder) -#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31) -int -attribute_compat_text_section -__totalorder_compat (double x, double y) -{ - return __totalorder (&x, &y); -} -#undef do_symbol -#define do_symbol(orig_name, name, aliasname) \ - strong_alias (orig_name, name) \ - compat_symbol (libm, name, aliasname, \ - CONCAT (FIRST_VERSION_libm_, aliasname)) -libm_alias_double (__totalorder_compat, totalorder) -#endif diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c deleted file mode 100644 index 2da739782a..0000000000 --- a/sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c +++ /dev/null @@ -1,73 +0,0 @@ -/* Total order operation on absolute values. dbl-64/wordsize-64 version. - Copyright (C) 2016-2021 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#include -#include -#include -#include -#include -#include -#include - -int -__totalordermag (const double *x, const double *y) -{ - uint64_t ix, iy; - EXTRACT_WORDS64 (ix, *x); - EXTRACT_WORDS64 (iy, *y); - ix &= 0x7fffffffffffffffULL; - iy &= 0x7fffffffffffffffULL; -#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN - /* For the preferred quiet NaN convention, this operation is a - comparison of the representations of the absolute values of the - arguments. If both arguments are NaNs, invert the - quiet/signaling bit so comparing that way works. */ - if (ix > 0x7ff0000000000000ULL && iy > 0x7ff0000000000000ULL) - { - ix ^= 0x0008000000000000ULL; - iy ^= 0x0008000000000000ULL; - } -#endif - return ix <= iy; -} -#ifdef SHARED -# define CONCATX(x, y) x ## y -# define CONCAT(x, y) CONCATX (x, y) -# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__) -# define do_symbol(orig_name, name, aliasname) \ - strong_alias (orig_name, name) \ - versioned_symbol (libm, name, aliasname, GLIBC_2_31) -# undef weak_alias -# define weak_alias(name, aliasname) \ - do_symbol (name, UNIQUE_ALIAS (name), aliasname); -#endif -libm_alias_double (__totalordermag, totalordermag) -#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31) -int -attribute_compat_text_section -__totalordermag_compat (double x, double y) -{ - return __totalordermag (&x, &y); -} -#undef do_symbol -#define do_symbol(orig_name, name, aliasname) \ - strong_alias (orig_name, name) \ - compat_symbol (libm, name, aliasname, \ - CONCAT (FIRST_VERSION_libm_, aliasname)) -libm_alias_double (__totalordermag_compat, totalordermag) -#endif diff --git a/sysdeps/mips/mips64/Implies b/sysdeps/mips/mips64/Implies index b476b8b298..826ff1541f 100644 --- a/sysdeps/mips/mips64/Implies +++ b/sysdeps/mips/mips64/Implies @@ -1,5 +1,4 @@ # MIPS uses IEEE 754 floating point. mips/ieee754 ieee754/flt-32 -ieee754/dbl-64/wordsize-64 ieee754/dbl-64 diff --git a/sysdeps/s390/s390-64/Implies b/sysdeps/s390/s390-64/Implies index 7603c9859c..a8cae95f9d 100644 --- a/sysdeps/s390/s390-64/Implies +++ b/sysdeps/s390/s390-64/Implies @@ -1,2 +1 @@ wordsize-64 -ieee754/dbl-64/wordsize-64 diff --git a/sysdeps/sparc/sparc64/Implies b/sysdeps/sparc/sparc64/Implies index fe5eccd855..4536a19655 100644 --- a/sysdeps/sparc/sparc64/Implies +++ b/sysdeps/sparc/sparc64/Implies @@ -1,6 +1,5 @@ wordsize-64 # SPARC uses IEEE 754 floating point. ieee754/ldbl-128 -ieee754/dbl-64/wordsize-64 ieee754/dbl-64 ieee754/flt-32 diff --git a/sysdeps/x86_64/Implies b/sysdeps/x86_64/Implies index 3d7ded70d2..c458625d72 100644 --- a/sysdeps/x86_64/Implies +++ b/sysdeps/x86_64/Implies @@ -1,6 +1,5 @@ x86 ieee754/float128 ieee754/ldbl-96 -ieee754/dbl-64/wordsize-64 ieee754/dbl-64 ieee754/flt-32 -- 2.11.4.GIT