auto-import glibc-2.4-3 on branch devel from glibc-2.4-3.src.rpm

This commit is contained in:
Jakub Jelinek 2006-03-07 13:39:01 +00:00
parent ac0e846b35
commit 6f71a8469c
3 changed files with 205 additions and 34 deletions

View File

@ -1,6 +1,12 @@
--- glibc-20060306T1239/ChangeLog 6 Mar 2006 10:59:43 -0000 1.10062 --- glibc-20060306T1239/ChangeLog 6 Mar 2006 10:59:43 -0000 1.10062
+++ glibc-20060306T1239-fedora/ChangeLog 7 Mar 2006 08:24:11 -0000 1.8782.2.173 +++ glibc-20060306T1239-fedora/ChangeLog 7 Mar 2006 13:28:11 -0000 1.8782.2.174
@@ -1,3 +1,37 @@ @@ -1,3 +1,43 @@
+2006-03-07 Jakub Jelinek <jakub@redhat.com>
+
+ * math/libm-test.inc [TEST_LDOUBLE] (ceil_test, floor_test, rint_test,
+ round_test, trunc_test): Only run some of the new tests if
+ LDBL_MANT_DIG > 100.
+
+2006-03-03 Steven Munroe <sjmunroe@us.ibm.com> +2006-03-03 Steven Munroe <sjmunroe@us.ibm.com>
+ Alan Modra <amodra@bigpond.net.au> + Alan Modra <amodra@bigpond.net.au>
+ +
@ -38,7 +44,7 @@
2006-03-06 Roland McGrath <roland@redhat.com> 2006-03-06 Roland McGrath <roland@redhat.com>
* version.h (VERSION): 2.4 * version.h (VERSION): 2.4
@@ -18,6 +52,34 @@ @@ -18,6 +58,34 @@
_SC_CPUTIME and _SC_THREAD_CPUTIME here. _SC_CPUTIME and _SC_THREAD_CPUTIME here.
* sysdeps/unix/sysv/linux/x86_64/sysconf.c (__sysconf): Likewise. * sysdeps/unix/sysv/linux/x86_64/sysconf.c (__sysconf): Likewise.
@ -73,7 +79,7 @@
2006-03-05 Roland McGrath <roland@redhat.com> 2006-03-05 Roland McGrath <roland@redhat.com>
* malloc/malloc.c (MALLOC_ALIGNMENT): Revert to (2 * SIZE_SZ) value. * malloc/malloc.c (MALLOC_ALIGNMENT): Revert to (2 * SIZE_SZ) value.
@@ -1030,6 +1092,11 @@ @@ -1030,6 +1098,11 @@
(__MATHDECL_2): Use __REDIRECT_NTH instead of __REDIRECT (__MATHDECL_2): Use __REDIRECT_NTH instead of __REDIRECT
followed by __THROW. followed by __THROW.
@ -85,7 +91,7 @@
2006-02-02 Ulrich Drepper <drepper@redhat.com> 2006-02-02 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/futimesat.c [__NR_futimesat] * sysdeps/unix/sysv/linux/futimesat.c [__NR_futimesat]
@@ -1089,6 +1156,11 @@ @@ -1089,6 +1162,11 @@
* sysdeps/ieee754/ldbl-128/s_llrintl.c (__llrintl): Fix a typo. * sysdeps/ieee754/ldbl-128/s_llrintl.c (__llrintl): Fix a typo.
* sysdeps/s390/fpu/libm-test-ulps: Remove llrint ulps. * sysdeps/s390/fpu/libm-test-ulps: Remove llrint ulps.
@ -97,7 +103,7 @@
2006-01-19 Thomas Schwinge <tschwinge@gnu.org> 2006-01-19 Thomas Schwinge <tschwinge@gnu.org>
* libio/genops.c: Include <stdbool.h>. * libio/genops.c: Include <stdbool.h>.
@@ -3515,6 +3587,10 @@ @@ -3515,6 +3593,10 @@
* elf/order2mod2.c (init): Cast ignored value to void. * elf/order2mod2.c (init): Cast ignored value to void.
@ -108,7 +114,7 @@
2005-12-27 Ulrich Drepper <drepper@redhat.com> 2005-12-27 Ulrich Drepper <drepper@redhat.com>
* elf/tst-tls13.c (do_test): Avoid using the library path when * elf/tst-tls13.c (do_test): Avoid using the library path when
@@ -3798,6 +3874,26 @@ @@ -3798,6 +3880,26 @@
* sysdeps/unix/sysv/linux/time.c: If __NR_time is not defined, * sysdeps/unix/sysv/linux/time.c: If __NR_time is not defined,
use sysdeps/unix/time.c implementation. use sysdeps/unix/time.c implementation.
@ -135,7 +141,7 @@
2005-12-19 Ulrich Drepper <drepper@redhat.com> 2005-12-19 Ulrich Drepper <drepper@redhat.com>
[BZ #1955] [BZ #1955]
@@ -6916,6 +7012,11 @@ @@ -6916,6 +7018,11 @@
R_ARM_TLS_TPOFF32, R_ARM_TLS_GD32, R_ARM_TLS_LDM32, R_ARM_TLS_TPOFF32, R_ARM_TLS_GD32, R_ARM_TLS_LDM32,
R_ARM_TLS_LDO32, R_ARM_TLS_IE32, R_ARM_TLS_LE32): New macros. R_ARM_TLS_LDO32, R_ARM_TLS_IE32, R_ARM_TLS_LE32): New macros.
@ -147,7 +153,7 @@
2005-10-03 Roland McGrath <roland@redhat.com> 2005-10-03 Roland McGrath <roland@redhat.com>
* sysdeps/powerpc/nofpu: Directory removed, saved in ports repository. * sysdeps/powerpc/nofpu: Directory removed, saved in ports repository.
@@ -7910,6 +8011,12 @@ @@ -7910,6 +8017,12 @@
* argp/argp-help.c (__argp_error): __asprintf -> vasprintf. * argp/argp-help.c (__argp_error): __asprintf -> vasprintf.
(__argp_failure): Likewise. (__argp_failure): Likewise.
@ -160,7 +166,7 @@
2005-08-08 Ulrich Drepper <drepper@redhat.com> 2005-08-08 Ulrich Drepper <drepper@redhat.com>
* nscd/cache.c (cache_add): Commit hash table and header to disk. * nscd/cache.c (cache_add): Commit hash table and header to disk.
@@ -8034,6 +8141,17 @@ @@ -8034,6 +8147,17 @@
__syslog_chk. __syslog_chk.
* misc/Versions: Export __syslog_chk and __vsyslog_chk. * misc/Versions: Export __syslog_chk and __vsyslog_chk.
@ -178,7 +184,7 @@
2005-07-28 Thomas Schwinge <schwinge@nic-nac-project.de> 2005-07-28 Thomas Schwinge <schwinge@nic-nac-project.de>
[BZ #1137] [BZ #1137]
@@ -11094,6 +11212,18 @@ @@ -11094,6 +11218,18 @@
* scripts/soversions.awk: Fix default version set handling. * scripts/soversions.awk: Fix default version set handling.
@ -1140,7 +1146,7 @@
__malloc_hook = tr_mallochook; __malloc_hook = tr_mallochook;
--- glibc-20060306T1239/math/libm-test.inc 28 Jan 2006 00:35:55 -0000 1.69 --- glibc-20060306T1239/math/libm-test.inc 28 Jan 2006 00:35:55 -0000 1.69
+++ glibc-20060306T1239-fedora/math/libm-test.inc 7 Mar 2006 08:24:12 -0000 1.61.2.7 +++ glibc-20060306T1239-fedora/math/libm-test.inc 7 Mar 2006 13:28:12 -0000 1.61.2.8
@@ -1628,8 +1628,12 @@ ceil_test (void) @@ -1628,8 +1628,12 @@ ceil_test (void)
TEST_f_f (ceil, M_PIl, 4.0); TEST_f_f (ceil, M_PIl, 4.0);
@ -1154,24 +1160,27 @@
#ifdef TEST_LDOUBLE #ifdef TEST_LDOUBLE
/* The result can only be represented in long double. */ /* The result can only be represented in long double. */
@@ -1644,6 +1648,13 @@ ceil_test (void) @@ -1645,6 +1649,15 @@ ceil_test (void)
TEST_f_f (ceil, -4503599627370496.5L, -4503599627370496.0L);
TEST_f_f (ceil, -4503599627370496.75L, -4503599627370496.0L); TEST_f_f (ceil, -4503599627370496.75L, -4503599627370496.0L);
TEST_f_f (ceil, -4503599627370497.5L, -4503599627370497.0L); TEST_f_f (ceil, -4503599627370497.5L, -4503599627370497.0L);
+
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (ceil, 4503599627370494.5000000000001L, 4503599627370495.0L); + TEST_f_f (ceil, 4503599627370494.5000000000001L, 4503599627370495.0L);
+ TEST_f_f (ceil, 4503599627370495.5000000000001L, 4503599627370496.0L); + TEST_f_f (ceil, 4503599627370495.5000000000001L, 4503599627370496.0L);
+ TEST_f_f (ceil, 4503599627370496.5000000000001L, 4503599627370497.0L); + TEST_f_f (ceil, 4503599627370496.5000000000001L, 4503599627370497.0L);
+ TEST_f_f (ceil, -4503599627370494.5000000000001L, -4503599627370494.0L); + TEST_f_f (ceil, -4503599627370494.5000000000001L, -4503599627370494.0L);
+ TEST_f_f (ceil, -4503599627370495.5000000000001L, -4503599627370495.0L); + TEST_f_f (ceil, -4503599627370495.5000000000001L, -4503599627370495.0L);
+ TEST_f_f (ceil, -4503599627370496.5000000000001L, -4503599627370496.0L); + TEST_f_f (ceil, -4503599627370496.5000000000001L, -4503599627370496.0L);
+# endif
+
TEST_f_f (ceil, 9007199254740991.5L, 9007199254740992.0L); TEST_f_f (ceil, 9007199254740991.5L, 9007199254740992.0L);
TEST_f_f (ceil, 9007199254740992.25L, 9007199254740993.0L); TEST_f_f (ceil, 9007199254740992.25L, 9007199254740993.0L);
@@ -1657,6 +1668,20 @@ ceil_test (void) TEST_f_f (ceil, 9007199254740992.5L, 9007199254740993.0L);
@@ -1657,6 +1670,22 @@ ceil_test (void)
TEST_f_f (ceil, -9007199254740992.75L, -9007199254740992.0L); TEST_f_f (ceil, -9007199254740992.75L, -9007199254740992.0L);
TEST_f_f (ceil, -9007199254740993.5L, -9007199254740993.0L); TEST_f_f (ceil, -9007199254740993.5L, -9007199254740993.0L);
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (ceil, 9007199254740991.0000000000001L, 9007199254740992.0L); + TEST_f_f (ceil, 9007199254740991.0000000000001L, 9007199254740992.0L);
+ TEST_f_f (ceil, 9007199254740992.0000000000001L, 9007199254740993.0L); + TEST_f_f (ceil, 9007199254740992.0000000000001L, 9007199254740993.0L);
+ TEST_f_f (ceil, 9007199254740993.0000000000001L, 9007199254740994.0L); + TEST_f_f (ceil, 9007199254740993.0000000000001L, 9007199254740994.0L);
@ -1185,11 +1194,12 @@
+ TEST_f_f (ceil, -9007199254740991.5000000000001L, -9007199254740991.0L); + TEST_f_f (ceil, -9007199254740991.5000000000001L, -9007199254740991.0L);
+ TEST_f_f (ceil, -9007199254740992.5000000000001L, -9007199254740992.0L); + TEST_f_f (ceil, -9007199254740992.5000000000001L, -9007199254740992.0L);
+ TEST_f_f (ceil, -9007199254740993.5000000000001L, -9007199254740993.0L); + TEST_f_f (ceil, -9007199254740993.5000000000001L, -9007199254740993.0L);
+# endif
+ +
TEST_f_f (ceil, 72057594037927935.5L, 72057594037927936.0L); TEST_f_f (ceil, 72057594037927935.5L, 72057594037927936.0L);
TEST_f_f (ceil, 72057594037927936.25L, 72057594037927937.0L); TEST_f_f (ceil, 72057594037927936.25L, 72057594037927937.0L);
TEST_f_f (ceil, 72057594037927936.5L, 72057594037927937.0L); TEST_f_f (ceil, 72057594037927936.5L, 72057594037927937.0L);
@@ -2628,9 +2653,12 @@ floor_test (void) @@ -2628,9 +2657,12 @@ floor_test (void)
TEST_f_f (floor, M_PIl, 3.0); TEST_f_f (floor, M_PIl, 3.0);
TEST_f_f (floor, -M_PIl, -4.0); TEST_f_f (floor, -M_PIl, -4.0);
@ -1203,35 +1213,41 @@
#ifdef TEST_LDOUBLE #ifdef TEST_LDOUBLE
/* The result can only be represented in long double. */ /* The result can only be represented in long double. */
@@ -2639,12 +2667,18 @@ floor_test (void) @@ -2639,12 +2671,22 @@ floor_test (void)
TEST_f_f (floor, 4503599627370496.5L, 4503599627370496.0L); TEST_f_f (floor, 4503599627370496.5L, 4503599627370496.0L);
TEST_f_f (floor, 4503599627370496.75L, 4503599627370496.0L); TEST_f_f (floor, 4503599627370496.75L, 4503599627370496.0L);
TEST_f_f (floor, 4503599627370497.5L, 4503599627370497.0L); TEST_f_f (floor, 4503599627370497.5L, 4503599627370497.0L);
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (floor, 4503599627370494.5000000000001L, 4503599627370494.0L); + TEST_f_f (floor, 4503599627370494.5000000000001L, 4503599627370494.0L);
+ TEST_f_f (floor, 4503599627370495.5000000000001L, 4503599627370495.0L); + TEST_f_f (floor, 4503599627370495.5000000000001L, 4503599627370495.0L);
+ TEST_f_f (floor, 4503599627370496.5000000000001L, 4503599627370496.0L); + TEST_f_f (floor, 4503599627370496.5000000000001L, 4503599627370496.0L);
+# endif
TEST_f_f (floor, -4503599627370495.5L, -4503599627370496.0L); TEST_f_f (floor, -4503599627370495.5L, -4503599627370496.0L);
TEST_f_f (floor, -4503599627370496.25L, -4503599627370497.0L); TEST_f_f (floor, -4503599627370496.25L, -4503599627370497.0L);
TEST_f_f (floor, -4503599627370496.5L, -4503599627370497.0L); TEST_f_f (floor, -4503599627370496.5L, -4503599627370497.0L);
TEST_f_f (floor, -4503599627370496.75L, -4503599627370497.0L); TEST_f_f (floor, -4503599627370496.75L, -4503599627370497.0L);
TEST_f_f (floor, -4503599627370497.5L, -4503599627370498.0L); TEST_f_f (floor, -4503599627370497.5L, -4503599627370498.0L);
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (floor, -4503599627370494.5000000000001L, -4503599627370495.0L); + TEST_f_f (floor, -4503599627370494.5000000000001L, -4503599627370495.0L);
+ TEST_f_f (floor, -4503599627370495.5000000000001L, -4503599627370496.0L); + TEST_f_f (floor, -4503599627370495.5000000000001L, -4503599627370496.0L);
+ TEST_f_f (floor, -4503599627370496.5000000000001L, -4503599627370497.0L); + TEST_f_f (floor, -4503599627370496.5000000000001L, -4503599627370497.0L);
+# endif
TEST_f_f (floor, 9007199254740991.5L, 9007199254740991.0L); TEST_f_f (floor, 9007199254740991.5L, 9007199254740991.0L);
TEST_f_f (floor, 9007199254740992.25L, 9007199254740992.0L); TEST_f_f (floor, 9007199254740992.25L, 9007199254740992.0L);
@@ -2652,12 +2686,26 @@ floor_test (void) @@ -2652,12 +2694,30 @@ floor_test (void)
TEST_f_f (floor, 9007199254740992.75L, 9007199254740992.0L); TEST_f_f (floor, 9007199254740992.75L, 9007199254740992.0L);
TEST_f_f (floor, 9007199254740993.5L, 9007199254740993.0L); TEST_f_f (floor, 9007199254740993.5L, 9007199254740993.0L);
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (floor, 9007199254740991.0000000000001L, 9007199254740991.0L); + TEST_f_f (floor, 9007199254740991.0000000000001L, 9007199254740991.0L);
+ TEST_f_f (floor, 9007199254740992.0000000000001L, 9007199254740992.0L); + TEST_f_f (floor, 9007199254740992.0000000000001L, 9007199254740992.0L);
+ TEST_f_f (floor, 9007199254740993.0000000000001L, 9007199254740993.0L); + TEST_f_f (floor, 9007199254740993.0000000000001L, 9007199254740993.0L);
+ TEST_f_f (floor, 9007199254740991.5000000000001L, 9007199254740991.0L); + TEST_f_f (floor, 9007199254740991.5000000000001L, 9007199254740991.0L);
+ TEST_f_f (floor, 9007199254740992.5000000000001L, 9007199254740992.0L); + TEST_f_f (floor, 9007199254740992.5000000000001L, 9007199254740992.0L);
+ TEST_f_f (floor, 9007199254740993.5000000000001L, 9007199254740993.0L); + TEST_f_f (floor, 9007199254740993.5000000000001L, 9007199254740993.0L);
+# endif
+ +
TEST_f_f (floor, -9007199254740991.5L, -9007199254740992.0L); TEST_f_f (floor, -9007199254740991.5L, -9007199254740992.0L);
TEST_f_f (floor, -9007199254740992.25L, -9007199254740993.0L); TEST_f_f (floor, -9007199254740992.25L, -9007199254740993.0L);
@ -1239,17 +1255,19 @@
TEST_f_f (floor, -9007199254740992.75L, -9007199254740993.0L); TEST_f_f (floor, -9007199254740992.75L, -9007199254740993.0L);
TEST_f_f (floor, -9007199254740993.5L, -9007199254740994.0L); TEST_f_f (floor, -9007199254740993.5L, -9007199254740994.0L);
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (floor, -9007199254740991.0000000000001L, -9007199254740992.0L); + TEST_f_f (floor, -9007199254740991.0000000000001L, -9007199254740992.0L);
+ TEST_f_f (floor, -9007199254740992.0000000000001L, -9007199254740993.0L); + TEST_f_f (floor, -9007199254740992.0000000000001L, -9007199254740993.0L);
+ TEST_f_f (floor, -9007199254740993.0000000000001L, -9007199254740994.0L); + TEST_f_f (floor, -9007199254740993.0000000000001L, -9007199254740994.0L);
+ TEST_f_f (floor, -9007199254740991.5000000000001L, -9007199254740992.0L); + TEST_f_f (floor, -9007199254740991.5000000000001L, -9007199254740992.0L);
+ TEST_f_f (floor, -9007199254740992.5000000000001L, -9007199254740993.0L); + TEST_f_f (floor, -9007199254740992.5000000000001L, -9007199254740993.0L);
+ TEST_f_f (floor, -9007199254740993.5000000000001L, -9007199254740994.0L); + TEST_f_f (floor, -9007199254740993.5000000000001L, -9007199254740994.0L);
+# endif
+ +
TEST_f_f (floor, 72057594037927935.5L, 72057594037927935.0L); TEST_f_f (floor, 72057594037927935.5L, 72057594037927935.0L);
TEST_f_f (floor, 72057594037927936.25L, 72057594037927936.0L); TEST_f_f (floor, 72057594037927936.25L, 72057594037927936.0L);
TEST_f_f (floor, 72057594037927936.5L, 72057594037927936.0L); TEST_f_f (floor, 72057594037927936.5L, 72057594037927936.0L);
@@ -3971,6 +4019,12 @@ rint_test (void) @@ -3971,6 +4031,12 @@ rint_test (void)
TEST_f_f (rint, -2.5, -2.0); TEST_f_f (rint, -2.5, -2.0);
TEST_f_f (rint, -3.5, -4.0); TEST_f_f (rint, -3.5, -4.0);
TEST_f_f (rint, -4.5, -4.0); TEST_f_f (rint, -4.5, -4.0);
@ -1262,14 +1280,16 @@
#ifdef TEST_LDOUBLE #ifdef TEST_LDOUBLE
/* The result can only be represented in long double. */ /* The result can only be represented in long double. */
TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L); TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L);
@@ -3978,12 +4032,34 @@ rint_test (void) @@ -3978,12 +4044,38 @@ rint_test (void)
TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L); TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L);
TEST_f_f (rint, 4503599627370496.75L, 4503599627370497.0L); TEST_f_f (rint, 4503599627370496.75L, 4503599627370497.0L);
TEST_f_f (rint, 4503599627370497.5L, 4503599627370498.0L); TEST_f_f (rint, 4503599627370497.5L, 4503599627370498.0L);
+ +
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370495.0L); + TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370495.0L);
+ TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370496.0L); + TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370496.0L);
+ TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370497.0L); + TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370497.0L);
+# endif
TEST_f_f (rint, -4503599627370495.5L, -4503599627370496.0L); TEST_f_f (rint, -4503599627370495.5L, -4503599627370496.0L);
TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L); TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L);
@ -1277,51 +1297,7 @@
TEST_f_f (rint, -4503599627370496.75L, -4503599627370497.0L); TEST_f_f (rint, -4503599627370496.75L, -4503599627370497.0L);
TEST_f_f (rint, -4503599627370497.5L, -4503599627370498.0L); TEST_f_f (rint, -4503599627370497.5L, -4503599627370498.0L);
+ +
+ TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370495.0L); +# if LDBL_MANT_DIG > 100
+ TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370496.0L);
+ TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370497.0L);
+
+ TEST_f_f (rint, 9007199254740991.0000000000001L, 9007199254740991.0L);
+ TEST_f_f (rint, 9007199254740992.0000000000001L, 9007199254740992.0L);
+ TEST_f_f (rint, 9007199254740993.0000000000001L, 9007199254740993.0L);
+ TEST_f_f (rint, 9007199254740991.5000000000001L, 9007199254740992.0L);
+ TEST_f_f (rint, 9007199254740992.5000000000001L, 9007199254740993.0L);
+ TEST_f_f (rint, 9007199254740993.5000000000001L, 9007199254740994.0L);
+
+ TEST_f_f (rint, -9007199254740991.0000000000001L, -9007199254740991.0L);
+ TEST_f_f (rint, -9007199254740992.0000000000001L, -9007199254740992.0L);
+ TEST_f_f (rint, -9007199254740993.0000000000001L, -9007199254740993.0L);
+ TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740992.0L);
+ TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740993.0L);
+ TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740994.0L);
TEST_f_f (rint, 9007199254740991.5L, 9007199254740992.0L);
TEST_f_f (rint, 9007199254740992.25L, 9007199254740992.0L);
@@ -4039,6 +4115,45 @@ rint_test_tonearest (void)
TEST_f_f (rint, -1.0, -1.0);
TEST_f_f (rint, -1.5, -2.0);
TEST_f_f (rint, -2.0, -2.0);
+ TEST_f_f (rint, 0.1, 0.0);
+ TEST_f_f (rint, 0.25, 0.0);
+ TEST_f_f (rint, 0.625, 1.0);
+ TEST_f_f (rint, -0.1, -0.0);
+ TEST_f_f (rint, -0.25, -0.0);
+ TEST_f_f (rint, -0.625, -1.0);
+#ifdef TEST_LDOUBLE
+ /* The result can only be represented in long double. */
+ TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L);
+ TEST_f_f (rint, 4503599627370496.25L, 4503599627370496.0L);
+ TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L);
+ TEST_f_f (rint, 4503599627370496.75L, 4503599627370497.0L);
+ TEST_f_f (rint, 4503599627370497.5L, 4503599627370498.0L);
+ TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370495.0L);
+ TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370496.0L);
+ TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370497.0L);
+ TEST_f_f (rint, -4503599627370495.5L, -4503599627370496.0L);
+ TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L);
+ TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L);
+ TEST_f_f (rint, -4503599627370496.75L, -4503599627370497.0L);
+ TEST_f_f (rint, -4503599627370497.5L, -4503599627370498.0L);
+ TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370495.0L); + TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370495.0L);
+ TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370496.0L); + TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370496.0L);
+ TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370497.0L); + TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370497.0L);
@ -1339,11 +1315,61 @@
+ TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740992.0L); + TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740992.0L);
+ TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740993.0L); + TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740993.0L);
+ TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740994.0L); + TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740994.0L);
+# endif
TEST_f_f (rint, 9007199254740991.5L, 9007199254740992.0L);
TEST_f_f (rint, 9007199254740992.25L, 9007199254740992.0L);
@@ -4039,6 +4131,49 @@ rint_test_tonearest (void)
TEST_f_f (rint, -1.0, -1.0);
TEST_f_f (rint, -1.5, -2.0);
TEST_f_f (rint, -2.0, -2.0);
+ TEST_f_f (rint, 0.1, 0.0);
+ TEST_f_f (rint, 0.25, 0.0);
+ TEST_f_f (rint, 0.625, 1.0);
+ TEST_f_f (rint, -0.1, -0.0);
+ TEST_f_f (rint, -0.25, -0.0);
+ TEST_f_f (rint, -0.625, -1.0);
+#ifdef TEST_LDOUBLE
+ /* The result can only be represented in long double. */
+ TEST_f_f (rint, 4503599627370495.5L, 4503599627370496.0L);
+ TEST_f_f (rint, 4503599627370496.25L, 4503599627370496.0L);
+ TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L);
+ TEST_f_f (rint, 4503599627370496.75L, 4503599627370497.0L);
+ TEST_f_f (rint, 4503599627370497.5L, 4503599627370498.0L);
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370495.0L);
+ TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370496.0L);
+ TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370497.0L);
+# endif
+ TEST_f_f (rint, -4503599627370495.5L, -4503599627370496.0L);
+ TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L);
+ TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L);
+ TEST_f_f (rint, -4503599627370496.75L, -4503599627370497.0L);
+ TEST_f_f (rint, -4503599627370497.5L, -4503599627370498.0L);
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370495.0L);
+ TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370496.0L);
+ TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370497.0L);
+
+ TEST_f_f (rint, 9007199254740991.0000000000001L, 9007199254740991.0L);
+ TEST_f_f (rint, 9007199254740992.0000000000001L, 9007199254740992.0L);
+ TEST_f_f (rint, 9007199254740993.0000000000001L, 9007199254740993.0L);
+ TEST_f_f (rint, 9007199254740991.5000000000001L, 9007199254740992.0L);
+ TEST_f_f (rint, 9007199254740992.5000000000001L, 9007199254740993.0L);
+ TEST_f_f (rint, 9007199254740993.5000000000001L, 9007199254740994.0L);
+
+ TEST_f_f (rint, -9007199254740991.0000000000001L, -9007199254740991.0L);
+ TEST_f_f (rint, -9007199254740992.0000000000001L, -9007199254740992.0L);
+ TEST_f_f (rint, -9007199254740993.0000000000001L, -9007199254740993.0L);
+ TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740992.0L);
+ TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740993.0L);
+ TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740994.0L);
+# endif
+#endif +#endif
} }
fesetround(save_round_mode); fesetround(save_round_mode);
@@ -4066,6 +4181,45 @@ rint_test_towardzero (void) @@ -4066,6 +4201,49 @@ rint_test_towardzero (void)
TEST_f_f (rint, -1.0, -1.0); TEST_f_f (rint, -1.0, -1.0);
TEST_f_f (rint, -1.5, -1.0); TEST_f_f (rint, -1.5, -1.0);
TEST_f_f (rint, -2.0, -2.0); TEST_f_f (rint, -2.0, -2.0);
@ -1360,14 +1386,17 @@
+ TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L); + TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L);
+ TEST_f_f (rint, 4503599627370496.75L, 4503599627370496.0L); + TEST_f_f (rint, 4503599627370496.75L, 4503599627370496.0L);
+ TEST_f_f (rint, 4503599627370497.5L, 4503599627370497.0L); + TEST_f_f (rint, 4503599627370497.5L, 4503599627370497.0L);
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370494.0L); + TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370494.0L);
+ TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370495.0L); + TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370495.0L);
+ TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370496.0L); + TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370496.0L);
+# endif
+ TEST_f_f (rint, -4503599627370495.5L, -4503599627370495.0L); + TEST_f_f (rint, -4503599627370495.5L, -4503599627370495.0L);
+ TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L); + TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L);
+ TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L); + TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L);
+ TEST_f_f (rint, -4503599627370496.75L, -4503599627370496.0L); + TEST_f_f (rint, -4503599627370496.75L, -4503599627370496.0L);
+ TEST_f_f (rint, -4503599627370497.5L, -4503599627370497.0L); + TEST_f_f (rint, -4503599627370497.5L, -4503599627370497.0L);
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370494.0L); + TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370494.0L);
+ TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370495.0L); + TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370495.0L);
+ TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370496.0L); + TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370496.0L);
@ -1385,11 +1414,12 @@
+ TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740991.0L); + TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740991.0L);
+ TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740992.0L); + TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740992.0L);
+ TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740993.0L); + TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740993.0L);
+# endif
+#endif +#endif
} }
fesetround(save_round_mode); fesetround(save_round_mode);
@@ -4093,6 +4247,45 @@ rint_test_downward (void) @@ -4093,6 +4271,49 @@ rint_test_downward (void)
TEST_f_f (rint, -1.0, -1.0); TEST_f_f (rint, -1.0, -1.0);
TEST_f_f (rint, -1.5, -2.0); TEST_f_f (rint, -1.5, -2.0);
TEST_f_f (rint, -2.0, -2.0); TEST_f_f (rint, -2.0, -2.0);
@ -1406,14 +1436,17 @@
+ TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L); + TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L);
+ TEST_f_f (rint, 4503599627370496.75L, 4503599627370496.0L); + TEST_f_f (rint, 4503599627370496.75L, 4503599627370496.0L);
+ TEST_f_f (rint, 4503599627370497.5L, 4503599627370497.0L); + TEST_f_f (rint, 4503599627370497.5L, 4503599627370497.0L);
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370494.0L); + TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370494.0L);
+ TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370495.0L); + TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370495.0L);
+ TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370496.0L); + TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370496.0L);
+# endif
+ TEST_f_f (rint, -4503599627370495.5L, -4503599627370496.0L); + TEST_f_f (rint, -4503599627370495.5L, -4503599627370496.0L);
+ TEST_f_f (rint, -4503599627370496.25L, -4503599627370497.0L); + TEST_f_f (rint, -4503599627370496.25L, -4503599627370497.0L);
+ TEST_f_f (rint, -4503599627370496.5L, -4503599627370497.0L); + TEST_f_f (rint, -4503599627370496.5L, -4503599627370497.0L);
+ TEST_f_f (rint, -4503599627370496.75L, -4503599627370497.0L); + TEST_f_f (rint, -4503599627370496.75L, -4503599627370497.0L);
+ TEST_f_f (rint, -4503599627370497.5L, -4503599627370498.0L); + TEST_f_f (rint, -4503599627370497.5L, -4503599627370498.0L);
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370495.0L); + TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370495.0L);
+ TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370496.0L); + TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370496.0L);
+ TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370497.0L); + TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370497.0L);
@ -1431,11 +1464,12 @@
+ TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740992.0L); + TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740992.0L);
+ TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740993.0L); + TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740993.0L);
+ TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740994.0L); + TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740994.0L);
+# endif
+#endif +#endif
} }
fesetround(save_round_mode); fesetround(save_round_mode);
@@ -4120,6 +4313,45 @@ rint_test_upward (void) @@ -4120,6 +4341,49 @@ rint_test_upward (void)
TEST_f_f (rint, -1.0, -1.0); TEST_f_f (rint, -1.0, -1.0);
TEST_f_f (rint, -1.5, -1.0); TEST_f_f (rint, -1.5, -1.0);
TEST_f_f (rint, -2.0, -2.0); TEST_f_f (rint, -2.0, -2.0);
@ -1452,14 +1486,17 @@
+ TEST_f_f (rint, 4503599627370496.5L, 4503599627370497.0L); + TEST_f_f (rint, 4503599627370496.5L, 4503599627370497.0L);
+ TEST_f_f (rint, 4503599627370496.75L, 4503599627370497.0L); + TEST_f_f (rint, 4503599627370496.75L, 4503599627370497.0L);
+ TEST_f_f (rint, 4503599627370497.5L, 4503599627370498.0L); + TEST_f_f (rint, 4503599627370497.5L, 4503599627370498.0L);
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370495.0L); + TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370495.0L);
+ TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370496.0L); + TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370496.0L);
+ TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370497.0L); + TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370497.0L);
+# endif
+ TEST_f_f (rint, -4503599627370495.5L, -4503599627370495.0L); + TEST_f_f (rint, -4503599627370495.5L, -4503599627370495.0L);
+ TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L); + TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L);
+ TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L); + TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L);
+ TEST_f_f (rint, -4503599627370496.75L, -4503599627370496.0L); + TEST_f_f (rint, -4503599627370496.75L, -4503599627370496.0L);
+ TEST_f_f (rint, -4503599627370497.5L, -4503599627370497.0L); + TEST_f_f (rint, -4503599627370497.5L, -4503599627370497.0L);
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370494.0L); + TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370494.0L);
+ TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370495.0L); + TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370495.0L);
+ TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370496.0L); + TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370496.0L);
@ -1477,11 +1514,12 @@
+ TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740991.0L); + TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740991.0L);
+ TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740992.0L); + TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740992.0L);
+ TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740993.0L); + TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740993.0L);
+# endif
+#endif +#endif
} }
fesetround(save_round_mode); fesetround(save_round_mode);
@@ -4142,6 +4374,12 @@ round_test (void) @@ -4142,6 +4406,12 @@ round_test (void)
TEST_f_f (round, -0.8L, -1.0); TEST_f_f (round, -0.8L, -1.0);
TEST_f_f (round, 1.5, 2.0); TEST_f_f (round, 1.5, 2.0);
TEST_f_f (round, -1.5, -2.0); TEST_f_f (round, -1.5, -2.0);
@ -1494,31 +1532,36 @@
TEST_f_f (round, 2097152.5, 2097153); TEST_f_f (round, 2097152.5, 2097153);
TEST_f_f (round, -2097152.5, -2097153); TEST_f_f (round, -2097152.5, -2097153);
@@ -4151,13 +4389,19 @@ round_test (void) @@ -4151,13 +4421,23 @@ round_test (void)
TEST_f_f (round, 4503599627370496.25L, 4503599627370496.0L); TEST_f_f (round, 4503599627370496.25L, 4503599627370496.0L);
TEST_f_f (round, 4503599627370496.5L, 4503599627370497.0L); TEST_f_f (round, 4503599627370496.5L, 4503599627370497.0L);
TEST_f_f (round, 4503599627370496.75L, 4503599627370497.0L); TEST_f_f (round, 4503599627370496.75L, 4503599627370497.0L);
- TEST_f_f (round, 4503599627370497.5L, 4503599627370498.0L); - TEST_f_f (round, 4503599627370497.5L, 4503599627370498.0L);
+ TEST_f_f (round, 4503599627370497.5L, 4503599627370498.0L); + TEST_f_f (round, 4503599627370497.5L, 4503599627370498.0L);
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (round, 4503599627370494.5000000000001L, 4503599627370495.0L); + TEST_f_f (round, 4503599627370494.5000000000001L, 4503599627370495.0L);
+ TEST_f_f (round, 4503599627370495.5000000000001L, 4503599627370496.0L); + TEST_f_f (round, 4503599627370495.5000000000001L, 4503599627370496.0L);
+ TEST_f_f (round, 4503599627370496.5000000000001L, 4503599627370497.0L); + TEST_f_f (round, 4503599627370496.5000000000001L, 4503599627370497.0L);
+# endif
TEST_f_f (round, -4503599627370495.5L, -4503599627370496.0L); TEST_f_f (round, -4503599627370495.5L, -4503599627370496.0L);
TEST_f_f (round, -4503599627370496.25L, -4503599627370496.0L); TEST_f_f (round, -4503599627370496.25L, -4503599627370496.0L);
TEST_f_f (round, -4503599627370496.5L, -4503599627370497.0L); TEST_f_f (round, -4503599627370496.5L, -4503599627370497.0L);
TEST_f_f (round, -4503599627370496.75L, -4503599627370497.0L); TEST_f_f (round, -4503599627370496.75L, -4503599627370497.0L);
TEST_f_f (round, -4503599627370497.5L, -4503599627370498.0L); TEST_f_f (round, -4503599627370497.5L, -4503599627370498.0L);
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (round, -4503599627370494.5000000000001L, -4503599627370495.0L); + TEST_f_f (round, -4503599627370494.5000000000001L, -4503599627370495.0L);
+ TEST_f_f (round, -4503599627370495.5000000000001L, -4503599627370496.0L); + TEST_f_f (round, -4503599627370495.5000000000001L, -4503599627370496.0L);
+ TEST_f_f (round, -4503599627370496.5000000000001L, -4503599627370497.0L); + TEST_f_f (round, -4503599627370496.5000000000001L, -4503599627370497.0L);
+# endif
TEST_f_f (round, 9007199254740991.5L, 9007199254740992.0L); TEST_f_f (round, 9007199254740991.5L, 9007199254740992.0L);
TEST_f_f (round, 9007199254740992.25L, 9007199254740992.0L); TEST_f_f (round, 9007199254740992.25L, 9007199254740992.0L);
@@ -4171,6 +4415,20 @@ round_test (void) @@ -4171,6 +4451,22 @@ round_test (void)
TEST_f_f (round, -9007199254740992.75L, -9007199254740993.0L); TEST_f_f (round, -9007199254740992.75L, -9007199254740993.0L);
TEST_f_f (round, -9007199254740993.5L, -9007199254740994.0L); TEST_f_f (round, -9007199254740993.5L, -9007199254740994.0L);
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (round, 9007199254740991.0000000000001L, 9007199254740991.0L); + TEST_f_f (round, 9007199254740991.0000000000001L, 9007199254740991.0L);
+ TEST_f_f (round, 9007199254740992.0000000000001L, 9007199254740992.0L); + TEST_f_f (round, 9007199254740992.0000000000001L, 9007199254740992.0L);
+ TEST_f_f (round, 9007199254740993.0000000000001L, 9007199254740993.0L); + TEST_f_f (round, 9007199254740993.0000000000001L, 9007199254740993.0L);
@ -1532,11 +1575,12 @@
+ TEST_f_f (round, -9007199254740991.5000000000001L, -9007199254740992.0L); + TEST_f_f (round, -9007199254740991.5000000000001L, -9007199254740992.0L);
+ TEST_f_f (round, -9007199254740992.5000000000001L, -9007199254740993.0L); + TEST_f_f (round, -9007199254740992.5000000000001L, -9007199254740993.0L);
+ TEST_f_f (round, -9007199254740993.5000000000001L, -9007199254740994.0L); + TEST_f_f (round, -9007199254740993.5000000000001L, -9007199254740994.0L);
+# endif
+ +
TEST_f_f (round, 72057594037927935.5L, 72057594037927936.0L); TEST_f_f (round, 72057594037927935.5L, 72057594037927936.0L);
TEST_f_f (round, 72057594037927936.25L, 72057594037927936.0L); TEST_f_f (round, 72057594037927936.25L, 72057594037927936.0L);
TEST_f_f (round, 72057594037927936.5L, 72057594037927937.0L); TEST_f_f (round, 72057594037927936.5L, 72057594037927937.0L);
@@ -4541,7 +4799,11 @@ trunc_test (void) @@ -4541,7 +4837,11 @@ trunc_test (void)
TEST_f_f (trunc, 0, 0); TEST_f_f (trunc, 0, 0);
TEST_f_f (trunc, minus_zero, minus_zero); TEST_f_f (trunc, minus_zero, minus_zero);
@ -1548,13 +1592,15 @@
TEST_f_f (trunc, -0.625, minus_zero); TEST_f_f (trunc, -0.625, minus_zero);
TEST_f_f (trunc, 1, 1); TEST_f_f (trunc, 1, 1);
TEST_f_f (trunc, -1, -1); TEST_f_f (trunc, -1, -1);
@@ -4565,11 +4827,19 @@ trunc_test (void) @@ -4565,11 +4865,23 @@ trunc_test (void)
TEST_f_f (trunc, 4503599627370496.75L, 4503599627370496.0L); TEST_f_f (trunc, 4503599627370496.75L, 4503599627370496.0L);
TEST_f_f (trunc, 4503599627370497.5L, 4503599627370497.0L); TEST_f_f (trunc, 4503599627370497.5L, 4503599627370497.0L);
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (trunc, 4503599627370494.5000000000001L, 4503599627370494.0L); + TEST_f_f (trunc, 4503599627370494.5000000000001L, 4503599627370494.0L);
+ TEST_f_f (trunc, 4503599627370495.5000000000001L, 4503599627370495.0L); + TEST_f_f (trunc, 4503599627370495.5000000000001L, 4503599627370495.0L);
+ TEST_f_f (trunc, 4503599627370496.5000000000001L, 4503599627370496.0L); + TEST_f_f (trunc, 4503599627370496.5000000000001L, 4503599627370496.0L);
+# endif
+ +
TEST_f_f (trunc, -4503599627370495.5L, -4503599627370495.0L); TEST_f_f (trunc, -4503599627370495.5L, -4503599627370495.0L);
TEST_f_f (trunc, -4503599627370496.25L, -4503599627370496.0L); TEST_f_f (trunc, -4503599627370496.25L, -4503599627370496.0L);
@ -1562,22 +1608,26 @@
TEST_f_f (trunc, -4503599627370496.75L, -4503599627370496.0L); TEST_f_f (trunc, -4503599627370496.75L, -4503599627370496.0L);
TEST_f_f (trunc, -4503599627370497.5L, -4503599627370497.0L); TEST_f_f (trunc, -4503599627370497.5L, -4503599627370497.0L);
+ +
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (trunc, -4503599627370494.5000000000001L, -4503599627370494.0L); + TEST_f_f (trunc, -4503599627370494.5000000000001L, -4503599627370494.0L);
+ TEST_f_f (trunc, -4503599627370495.5000000000001L, -4503599627370495.0L); + TEST_f_f (trunc, -4503599627370495.5000000000001L, -4503599627370495.0L);
+ TEST_f_f (trunc, -4503599627370496.5000000000001L, -4503599627370496.0L); + TEST_f_f (trunc, -4503599627370496.5000000000001L, -4503599627370496.0L);
+# endif
TEST_f_f (trunc, 9007199254740991.5L, 9007199254740991.0L); TEST_f_f (trunc, 9007199254740991.5L, 9007199254740991.0L);
TEST_f_f (trunc, 9007199254740992.25L, 9007199254740992.0L); TEST_f_f (trunc, 9007199254740992.25L, 9007199254740992.0L);
@@ -4577,12 +4847,26 @@ trunc_test (void) @@ -4577,12 +4889,30 @@ trunc_test (void)
TEST_f_f (trunc, 9007199254740992.75L, 9007199254740992.0L); TEST_f_f (trunc, 9007199254740992.75L, 9007199254740992.0L);
TEST_f_f (trunc, 9007199254740993.5L, 9007199254740993.0L); TEST_f_f (trunc, 9007199254740993.5L, 9007199254740993.0L);
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (trunc, 9007199254740991.0000000000001L, 9007199254740991.0L); + TEST_f_f (trunc, 9007199254740991.0000000000001L, 9007199254740991.0L);
+ TEST_f_f (trunc, 9007199254740992.0000000000001L, 9007199254740992.0L); + TEST_f_f (trunc, 9007199254740992.0000000000001L, 9007199254740992.0L);
+ TEST_f_f (trunc, 9007199254740993.0000000000001L, 9007199254740993.0L); + TEST_f_f (trunc, 9007199254740993.0000000000001L, 9007199254740993.0L);
+ TEST_f_f (trunc, 9007199254740991.5000000000001L, 9007199254740991.0L); + TEST_f_f (trunc, 9007199254740991.5000000000001L, 9007199254740991.0L);
+ TEST_f_f (trunc, 9007199254740992.5000000000001L, 9007199254740992.0L); + TEST_f_f (trunc, 9007199254740992.5000000000001L, 9007199254740992.0L);
+ TEST_f_f (trunc, 9007199254740993.5000000000001L, 9007199254740993.0L); + TEST_f_f (trunc, 9007199254740993.5000000000001L, 9007199254740993.0L);
+# endif
+ +
TEST_f_f (trunc, -9007199254740991.5L, -9007199254740991.0L); TEST_f_f (trunc, -9007199254740991.5L, -9007199254740991.0L);
TEST_f_f (trunc, -9007199254740992.25L, -9007199254740992.0L); TEST_f_f (trunc, -9007199254740992.25L, -9007199254740992.0L);
@ -1585,12 +1635,14 @@
TEST_f_f (trunc, -9007199254740992.75L, -9007199254740992.0L); TEST_f_f (trunc, -9007199254740992.75L, -9007199254740992.0L);
TEST_f_f (trunc, -9007199254740993.5L, -9007199254740993.0L); TEST_f_f (trunc, -9007199254740993.5L, -9007199254740993.0L);
+# if LDBL_MANT_DIG > 100
+ TEST_f_f (trunc, -9007199254740991.0000000000001L, -9007199254740991.0L); + TEST_f_f (trunc, -9007199254740991.0000000000001L, -9007199254740991.0L);
+ TEST_f_f (trunc, -9007199254740992.0000000000001L, -9007199254740992.0L); + TEST_f_f (trunc, -9007199254740992.0000000000001L, -9007199254740992.0L);
+ TEST_f_f (trunc, -9007199254740993.0000000000001L, -9007199254740993.0L); + TEST_f_f (trunc, -9007199254740993.0000000000001L, -9007199254740993.0L);
+ TEST_f_f (trunc, -9007199254740991.5000000000001L, -9007199254740991.0L); + TEST_f_f (trunc, -9007199254740991.5000000000001L, -9007199254740991.0L);
+ TEST_f_f (trunc, -9007199254740992.5000000000001L, -9007199254740992.0L); + TEST_f_f (trunc, -9007199254740992.5000000000001L, -9007199254740992.0L);
+ TEST_f_f (trunc, -9007199254740993.5000000000001L, -9007199254740993.0L); + TEST_f_f (trunc, -9007199254740993.5000000000001L, -9007199254740993.0L);
+# endif
+ +
TEST_f_f (trunc, 72057594037927935.5L, 72057594037927935.0L); TEST_f_f (trunc, 72057594037927935.5L, 72057594037927935.0L);
TEST_f_f (trunc, 72057594037927936.25L, 72057594037927936.0L); TEST_f_f (trunc, 72057594037927936.25L, 72057594037927936.0L);
@ -4916,6 +4968,122 @@
+ } + }
+ return a; + return a;
+} +}
--- glibc-20060306T1239/sysdeps/powerpc/powerpc64/fpu/s_rintl.S 28 Jan 2006 00:07:31 -0000 1.1
+++ glibc-20060306T1239-fedora/sysdeps/powerpc/powerpc64/fpu/s_rintl.S 1 Jan 1970 00:00:00 -0000
@@ -1,113 +0,0 @@
-/* Round to int long double floating-point values.
- IBM extended format long double version.
- Copyright (C) 2004, 2006 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* This has been coded in assembler because GCC makes such a mess of it
- when it's coded in C. */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
- .section ".toc","aw"
-.LC0: /* 2**52 */
- .tc FD_43300000_0[TC],0x4330000000000000
- .section ".text"
-
-ENTRY (__rintl)
- lfd fp13,.LC0@toc(2)
- fabs fp0,fp1
- fsub fp12,fp13,fp13 /* generate 0.0 */
- fabs fp9,fp2
- fcmpu cr7,fp0,fp13 /* if (fabs(x) > TWO52) */
- fcmpu cr6,fp1,fp12 /* if (x > 0.0) */
- bnl- cr7,.L2
- fmr fp2,fp12
- bng- cr6,.L1
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fsub fp1,fp1,fp13 /* x-= TWO52; */
- fabs fp1,fp1 /* if (x == 0.0) */
- blr /* x = 0.0; */
-.L1:
- bnllr- cr6 /* if (x < 0.0) */
- fsub fp1,fp1,fp13 /* x-= TWO52; */
- fadd fp1,fp1,fp13 /* x+= TWO52; */
- fnabs fp1,fp1 /* if (x == 0.0) */
- blr /* x = -0.0; */
-
-/* The high double is > TWO52 so we need to round the low double and
- perhaps the high double. In this case we have to round the low
- double and handle any adjustment to the high double that may be
- caused by rounding (up). This is complicated by the fact that the
- high double may already be rounded and the low double may have the
- opposite sign to compensate.This gets a bit tricky so we use the
- following algorithm:
-
- tau = floor(x_high/TWO52);
- x0 = x_high - tau;
- x1 = x_low + tau;
- r1 = rint(x1);
- y_high = x0 + r1;
- y_low = x0 - y_high + r1;
- return y; */
-.L2:
- fcmpu cr7,fp9,fp13 /* if (|x_low| > TWO52) */
- fcmpu cr0,fp9,fp12 /* || (|x_low| == 0.0) */
- fcmpu cr5,fp2,fp12 /* if (x_low > 0.0) */
- bgelr- cr7 /* return x; */
- beqlr- cr0
- fdiv fp8,fp1,fp13 /* x_high/TWO52 */
-
- bng- cr6,.L6 /* if (x > 0.0) */
- fctidz fp0,fp8
- fcfid fp8,fp0 /* tau = floor(x_high/TWO52); */
- fadd fp8,fp8,fp8 /* tau++; Make tau even */
- bng cr5,.L4 /* if (x_low > 0.0) */
- fmr fp3,fp1
- fmr fp4,fp2
- b .L5
-.L4: /* if (x_low < 0.0) */
- fsub fp3,fp1,fp8 /* x0 = x_high - tau; */
- fadd fp4,fp2,fp8 /* x1 = x_low + tau; */
-.L5:
- fadd fp5,fp4,fp13 /* r1 = x1 + TWO52; */
- fsub fp5,fp5,fp13 /* r1 = r1 - TWO52; */
- b .L9
-.L6: /* if (x < 0.0) */
- fctidz fp0,fp8
- fcfid fp8,fp0 /* tau = floor(x_high/TWO52); */
- fadd fp8,fp8,fp8 /* tau++; Make tau even */
- bnl cr5,.L7 /* if (x_low < 0.0) */
- fmr fp3,fp1
- fmr fp4,fp2
- b .L8
-.L7: /* if (x_low > 0.0) */
- fsub fp3,fp1,fp8 /* x0 = x_high - tau; */
- fadd fp4,fp2,fp8 /* x1 = x_low + tau; */
-.L8:
- fsub fp5,fp13,fp4 /* r1 = TWO52 - x1; */
- fsub fp0,fp5,fp13 /* r1 = - (r1 - TWO52); */
- fneg fp5,fp0
-.L9:
- fadd fp1,fp3,fp5 /* y_high = x0 + r1; */
- fsub fp2,fp3,fp1 /* y_low = x0 - y_high + r1; */
- fadd fp2,fp2,fp5
- blr
-END (__rintl)
-
-long_double_symbol (libm, __rintl, rintl)
--- glibc-20060306T1239/sysdeps/unix/nice.c 28 Sep 2002 19:13:13 -0000 1.6 --- glibc-20060306T1239/sysdeps/unix/nice.c 28 Sep 2002 19:13:13 -0000 1.6
+++ glibc-20060306T1239-fedora/sysdeps/unix/nice.c 22 Sep 2004 21:21:08 -0000 1.6.2.1 +++ glibc-20060306T1239-fedora/sysdeps/unix/nice.c 22 Sep 2004 21:21:08 -0000 1.6.2.1
@@ -41,7 +41,12 @@ nice (int incr) @@ -41,7 +41,12 @@ nice (int incr)

View File

@ -3,7 +3,7 @@
%define glibcsrcdir glibc-20060306T1239 %define glibcsrcdir glibc-20060306T1239
%define glibc_release_tarballs 0 %define glibc_release_tarballs 0
%define glibcversion 2.4 %define glibcversion 2.4
%define glibcrelease 2 %define glibcrelease 3
%define auxarches i586 i686 athlon sparcv9 alphaev6 %define auxarches i586 i686 athlon sparcv9 alphaev6
%define prelinkarches noarch %define prelinkarches noarch
%define xenarches i686 athlon %define xenarches i686 athlon
@ -1349,6 +1349,9 @@ rm -f *.filelist*
%endif %endif
%changelog %changelog
* Tue Mar 7 2006 Jakub Jelinek <jakub@redhat.com> 2.4-3
- really fix rintl on ppc64
* Tue Mar 7 2006 Jakub Jelinek <jakub@redhat.com> 2.4-2 * Tue Mar 7 2006 Jakub Jelinek <jakub@redhat.com> 2.4-2
- accurate unwind info for lowlevellock.h stubs on %%{ix86} - accurate unwind info for lowlevellock.h stubs on %%{ix86}
- fix ppc/ppc64 ceill, floorl, rintl, roundl and truncl (BZ#2423) - fix ppc/ppc64 ceill, floorl, rintl, roundl and truncl (BZ#2423)

View File

@ -1,2 +1,2 @@
c3bd549b42829d73aad876a10435ae73 glibc-20060306T1239.tar.bz2 c3bd549b42829d73aad876a10435ae73 glibc-20060306T1239.tar.bz2
ad9e233a573f227fb9efd93e2f387fdf glibc-fedora-20060306T1239.tar.bz2 f4732d93d3749c864b1909e9f9d39524 glibc-fedora-20060306T1239.tar.bz2