about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@linux-m68k.org>2012-09-05 12:37:16 +0200
committerAndreas Schwab <schwab@linux-m68k.org>2012-09-05 12:40:45 +0200
commite1343020fb81b1d034d667aea2d8744afc245e40 (patch)
tree5b0bc32d586d7b4ff9b92e60bdcd5573d28894b2
parent0a9f1987ad038f533a4cdff67f5895bb189f6598 (diff)
downloadglibc-e1343020fb81b1d034d667aea2d8744afc245e40.tar.gz
glibc-e1343020fb81b1d034d667aea2d8744afc245e40.tar.xz
glibc-e1343020fb81b1d034d667aea2d8744afc245e40.zip
Correctly handle Motorola extended float format in tst-strtod-round
-rw-r--r--ChangeLog8
-rw-r--r--stdlib/gen-tst-strtod-round.c9
-rw-r--r--stdlib/tst-strtod-round.c495
3 files changed, 492 insertions, 20 deletions
diff --git a/ChangeLog b/ChangeLog
index bae0699ea0..d8960216fa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2012-09-05  Andreas Schwab  <schwab@linux-m68k.org>
+
+	* stdlib/gen-tst-strtod-round.c (formats): Add Motorola extended
+	float format.
+	* stdlib/tst-strtod-round.c (TEST) [LDBL_MANT_DIG == 64 &&
+	LDBL_MAX_EXP]: Add case for Motorola extended float format.
+	(test): Regenerate.
+
 2012-09-04  David S. Miller  <davem@davemloft.net>
 
 	* sysdeps/sparc/sparc32/sparcv9/addmul_1.S: New file.
diff --git a/stdlib/gen-tst-strtod-round.c b/stdlib/gen-tst-strtod-round.c
index 0a89ff71af..f4ad270152 100644
--- a/stdlib/gen-tst-strtod-round.c
+++ b/stdlib/gen-tst-strtod-round.c
@@ -85,11 +85,14 @@ round_for_all (const char *s)
     int emin;
     int emax;
     bool need_exact;
-  } formats[6] = {
+  } formats[7] = {
     { "f", 24, -148, 128, false },
     { "", 53, -1073, 1024, false },
     { "L", 53, -1073, 1024, false },
+    /* This is the Intel extended float format.  */
     { "L", 64, -16444, 16384, false },
+    /* This is the Motorola extended float format.  */
+    { "L", 64, -16445, 16384, false },
     { "L", 106, -1073, 1024, true },
     { "L", 113, -16493, 16384, false },
   };
@@ -103,11 +106,11 @@ round_for_all (const char *s)
     }
   mpfr_printf ("\",\n");
   int i;
-  for (i = 0; i < 6; i++)
+  for (i = 0; i < 7; i++)
     {
       round_str (s, formats[i].suffix, formats[i].prec,
 		 formats[i].emin, formats[i].emax, formats[i].need_exact);
-      if (i < 5)
+      if (i < 6)
 	mpfr_printf (",\n");
     }
   mpfr_printf ("),\n");
diff --git a/stdlib/tst-strtod-round.c b/stdlib/tst-strtod-round.c
index 07881e33e1..3e75c11c91 100644
--- a/stdlib/tst-strtod-round.c
+++ b/stdlib/tst-strtod-round.c
@@ -33,28 +33,45 @@ struct test {
 };
 
 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
-# define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u, \
-	      ld64d, ld64n, ld64z, ld64u, ld106exact,			\
-	      ld106d, ld106n, ld106z, ld106u,				\
-	      ld113d, ld113n, ld113z, ld113u)				\
+# define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u,  \
+	      ld64id, ld64in, ld64iz, ld64iu,				      \
+	      ld64md, ld64mn, ld64mz, ld64mu,				      \
+	      ld106exact, ld106d, ld106n, ld106z, ld106u,		      \
+	      ld113d, ld113n, ld113z, ld113u)				      \
   { s, fn, dn, true, ld53n }
 #elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
-# define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u, \
-	      ld64d, ld64n, ld64z, ld64u, ld106exact,			\
-	      ld106d, ld106n, ld106z, ld106u,				\
-	      ld113d, ld113n, ld113z, ld113u)				\
-  { s, fn, dn, true, ld64n }
+# if defined __i386__ || defined __x86_64__ || defined __ia64__
+/* This is for the Intel extended float format.  */
+#  define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u, \
+	       ld64id, ld64in, ld64iz, ld64iu,				      \
+	       ld64md, ld64mn, ld64mz, ld64mu,				      \
+	       ld106exact, ld106d, ld106n, ld106z, ld106u,		      \
+	       ld113d, ld113n, ld113z, ld113u)				      \
+  { s, fn, dn, true, ld64in }
+# elif defined __mc68000__
+/* This is for the Motorola extended float format.  */
+#  define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u, \
+	       ld64id, ld64in, ld64iz, ld64iu,				      \
+	       ld64md, ld64mn, ld64mz, ld64mu,				      \
+	       ld106exact, ld106d, ld106n, ld106z, ld106u,		      \
+	       ld113d, ld113n, ld113z, ld113u)				      \
+  { s, fn, dn, true, ld64mn }
+# else
+#  error "unknown long double format"
+# endif
 #elif LDBL_MANT_DIG == 106 && LDBL_MAX_EXP == 1024
-# define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u, \
-	      ld64d, ld64n, ld64z, ld64u, ld106exact,			\
-	      ld106d, ld106n, ld106z, ld106u,				\
-	      ld113d, ld113n, ld113z, ld113u)				\
+# define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u,  \
+	      ld64id, ld64in, ld64iz, ld64iu,				      \
+	      ld64md, ld64mn, ld64mz, ld64mu,				      \
+	      ld106exact, ld106d, ld106n, ld106z, ld106u,		      \
+	      ld113d, ld113n, ld113z, ld113u)				      \
   { s, fn, dn, ld106exact, ld106n }
 #elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384
-# define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u, \
-	      ld64d, ld64n, ld64z, ld64u, ld106exact,			\
-	      ld106d, ld106n, ld106z, ld106u,				\
-	      ld113d, ld113n, ld113z, ld113u)				\
+# define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u,  \
+	      ld64id, ld64in, ld64iz, ld64iu,				      \
+	      ld64md, ld64mn, ld64mz, ld64mu,				      \
+	      ld106exact, ld106d, ld106n, ld106z, ld106u,		      \
+	      ld113d, ld113n, ld113z, ld113u)				      \
   { s, fn, dn, true, ld113n }
 #else
 # error "unknown long double format"
@@ -81,6 +98,10 @@ static const struct test tests[] = {
 	0x2.0000000000003p+44L,
 	0x2.0000000000003p+44L,
 	0x2.0000000000003p+44L,
+	0x2.0000000000003p+44L,
+	0x2.0000000000003p+44L,
+	0x2.0000000000003p+44L,
+	0x2.0000000000003p+44L,
 	true,
 	0x2.0000000000003p+44L,
 	0x2.0000000000003p+44L,
@@ -107,6 +128,10 @@ static const struct test tests[] = {
 	0x1.0000010000000002p+0L,
 	0x1.0000010000000002p+0L,
 	0x1.0000010000000004p+0L,
+	0x1.0000010000000002p+0L,
+	0x1.0000010000000002p+0L,
+	0x1.0000010000000002p+0L,
+	0x1.0000010000000004p+0L,
 	false,
 	0x1.0000010000000002048242f2ffp+0L,
 	0x1.0000010000000002048242f2ff8p+0L,
@@ -133,6 +158,10 @@ static const struct test tests[] = {
 	0x1.0000010000000002p+0L,
 	0x1.0000010000000002p+0L,
 	0x1.0000010000000004p+0L,
+	0x1.0000010000000002p+0L,
+	0x1.0000010000000002p+0L,
+	0x1.0000010000000002p+0L,
+	0x1.0000010000000004p+0L,
 	false,
 	0x1.0000010000000002048242f2ffp+0L,
 	0x1.0000010000000002048242f2ff8p+0L,
@@ -159,6 +188,10 @@ static const struct test tests[] = {
 	0x1.000001000000000cp+0L,
 	0x1.000001000000000ap+0L,
 	0x1.000001000000000cp+0L,
+	0x1.000001000000000ap+0L,
+	0x1.000001000000000cp+0L,
+	0x1.000001000000000ap+0L,
+	0x1.000001000000000cp+0L,
 	false,
 	0x1.000001000000000b3db12bdc21p+0L,
 	0x1.000001000000000b3db12bdc21p+0L,
@@ -185,6 +218,10 @@ static const struct test tests[] = {
 	0x1.000000fffffffff8p+0L,
 	0x1.000000fffffffff8p+0L,
 	0x1.000000fffffffffap+0L,
+	0x1.000000fffffffff8p+0L,
+	0x1.000000fffffffff8p+0L,
+	0x1.000000fffffffff8p+0L,
+	0x1.000000fffffffffap+0L,
 	false,
 	0x1.000000fffffffff8cb535a09dd8p+0L,
 	0x1.000000fffffffff8cb535a09dd8p+0L,
@@ -211,6 +248,10 @@ static const struct test tests[] = {
 	0x1.0000010000000056p+0L,
 	0x1.0000010000000054p+0L,
 	0x1.0000010000000056p+0L,
+	0x1.0000010000000054p+0L,
+	0x1.0000010000000056p+0L,
+	0x1.0000010000000054p+0L,
+	0x1.0000010000000056p+0L,
 	false,
 	0x1.0000010000000055072873252f8p+0L,
 	0x1.0000010000000055072873253p+0L,
@@ -237,6 +278,10 @@ static const struct test tests[] = {
 	0x1.00000100000001c6p+0L,
 	0x1.00000100000001c4p+0L,
 	0x1.00000100000001c6p+0L,
+	0x1.00000100000001c4p+0L,
+	0x1.00000100000001c6p+0L,
+	0x1.00000100000001c4p+0L,
+	0x1.00000100000001c6p+0L,
 	false,
 	0x1.00000100000001c5f67cd79279p+0L,
 	0x1.00000100000001c5f67cd792798p+0L,
@@ -263,6 +308,10 @@ static const struct test tests[] = {
 	0x1.000001000000103p+0L,
 	0x1.000001000000102ep+0L,
 	0x1.000001000000103p+0L,
+	0x1.000001000000102ep+0L,
+	0x1.000001000000103p+0L,
+	0x1.000001000000102ep+0L,
+	0x1.000001000000103p+0L,
 	false,
 	0x1.000001000000102f4fc8c3d757p+0L,
 	0x1.000001000000102f4fc8c3d7578p+0L,
@@ -289,6 +338,10 @@ static const struct test tests[] = {
 	0x1.000000fffffea7e6p+0L,
 	0x1.000000fffffea7e4p+0L,
 	0x1.000000fffffea7e6p+0L,
+	0x1.000000fffffea7e4p+0L,
+	0x1.000000fffffea7e6p+0L,
+	0x1.000000fffffea7e4p+0L,
+	0x1.000000fffffea7e6p+0L,
 	false,
 	0x1.000000fffffea7e5975eb11da7p+0L,
 	0x1.000000fffffea7e5975eb11da78p+0L,
@@ -315,6 +368,10 @@ static const struct test tests[] = {
 	0x1.000000fffff36598p+0L,
 	0x1.000000fffff36596p+0L,
 	0x1.000000fffff36598p+0L,
+	0x1.000000fffff36596p+0L,
+	0x1.000000fffff36598p+0L,
+	0x1.000000fffff36596p+0L,
+	0x1.000000fffff36598p+0L,
 	false,
 	0x1.000000fffff36597d40e1b5026p+0L,
 	0x1.000000fffff36597d40e1b50268p+0L,
@@ -341,6 +398,10 @@ static const struct test tests[] = {
 	0x1.000001000063fca2p+0L,
 	0x1.000001000063fcap+0L,
 	0x1.000001000063fca2p+0L,
+	0x1.000001000063fcap+0L,
+	0x1.000001000063fca2p+0L,
+	0x1.000001000063fcap+0L,
+	0x1.000001000063fca2p+0L,
 	false,
 	0x1.000001000063fca17533f5572f8p+0L,
 	0x1.000001000063fca17533f5573p+0L,
@@ -367,6 +428,10 @@ static const struct test tests[] = {
 	0x1.000000fffae49caap+0L,
 	0x1.000000fffae49ca8p+0L,
 	0x1.000000fffae49caap+0L,
+	0x1.000000fffae49ca8p+0L,
+	0x1.000000fffae49caap+0L,
+	0x1.000000fffae49ca8p+0L,
+	0x1.000000fffae49caap+0L,
 	false,
 	0x1.000000fffae49ca916dacfff38p+0L,
 	0x1.000000fffae49ca916dacfff38p+0L,
@@ -393,6 +458,10 @@ static const struct test tests[] = {
 	0x1.000000fffae49caap+0L,
 	0x1.000000fffae49ca8p+0L,
 	0x1.000000fffae49caap+0L,
+	0x1.000000fffae49ca8p+0L,
+	0x1.000000fffae49caap+0L,
+	0x1.000000fffae49ca8p+0L,
+	0x1.000000fffae49caap+0L,
 	false,
 	0x1.000000fffae49ca916dacfff38p+0L,
 	0x1.000000fffae49ca916dacfff38p+0L,
@@ -419,6 +488,10 @@ static const struct test tests[] = {
 	0x1.00000101b2b29a46p+0L,
 	0x1.00000101b2b29a46p+0L,
 	0x1.00000101b2b29a48p+0L,
+	0x1.00000101b2b29a46p+0L,
+	0x1.00000101b2b29a46p+0L,
+	0x1.00000101b2b29a46p+0L,
+	0x1.00000101b2b29a48p+0L,
 	false,
 	0x1.00000101b2b29a4692b67b7ca3p+0L,
 	0x1.00000101b2b29a4692b67b7ca3p+0L,
@@ -445,6 +518,10 @@ static const struct test tests[] = {
 	0x1.00000101b2b29a46p+0L,
 	0x1.00000101b2b29a46p+0L,
 	0x1.00000101b2b29a48p+0L,
+	0x1.00000101b2b29a46p+0L,
+	0x1.00000101b2b29a46p+0L,
+	0x1.00000101b2b29a46p+0L,
+	0x1.00000101b2b29a48p+0L,
 	false,
 	0x1.00000101b2b29a4692b67b7ca3p+0L,
 	0x1.00000101b2b29a4692b67b7ca3p+0L,
@@ -471,6 +548,10 @@ static const struct test tests[] = {
 	0x1.000001ad7f29abcap+0L,
 	0x1.000001ad7f29abcap+0L,
 	0x1.000001ad7f29abccp+0L,
+	0x1.000001ad7f29abcap+0L,
+	0x1.000001ad7f29abcap+0L,
+	0x1.000001ad7f29abcap+0L,
+	0x1.000001ad7f29abccp+0L,
 	false,
 	0x1.000001ad7f29abcaf485787a65p+0L,
 	0x1.000001ad7f29abcaf485787a65p+0L,
@@ -497,6 +578,10 @@ static const struct test tests[] = {
 	0x1p+0L,
 	0x1p+0L,
 	0x1p+0L,
+	0x1p+0L,
+	0x1p+0L,
+	0x1p+0L,
+	0x1p+0L,
 	true,
 	0x1p+0L,
 	0x1p+0L,
@@ -523,6 +608,10 @@ static const struct test tests[] = {
 	0x1.0000000000000802p+0L,
 	0x1.00000000000008p+0L,
 	0x1.0000000000000802p+0L,
+	0x1.00000000000008p+0L,
+	0x1.0000000000000802p+0L,
+	0x1.00000000000008p+0L,
+	0x1.0000000000000802p+0L,
 	false,
 	0x1.0000000000000801fc96557232p+0L,
 	0x1.0000000000000801fc96557232p+0L,
@@ -549,6 +638,10 @@ static const struct test tests[] = {
 	0x1.00000000000008p+0L,
 	0x1.00000000000008p+0L,
 	0x1.0000000000000802p+0L,
+	0x1.00000000000008p+0L,
+	0x1.00000000000008p+0L,
+	0x1.00000000000008p+0L,
+	0x1.0000000000000802p+0L,
 	false,
 	0x1.00000000000008002459c076c48p+0L,
 	0x1.00000000000008002459c076c5p+0L,
@@ -575,6 +668,10 @@ static const struct test tests[] = {
 	0x1.00000000000008p+0L,
 	0x1.00000000000007fep+0L,
 	0x1.00000000000008p+0L,
+	0x1.00000000000007fep+0L,
+	0x1.00000000000008p+0L,
+	0x1.00000000000007fep+0L,
+	0x1.00000000000008p+0L,
 	false,
 	0x1.00000000000007fff5207e5dap+0L,
 	0x1.00000000000007fff5207e5da08p+0L,
@@ -601,6 +698,10 @@ static const struct test tests[] = {
 	0x1.00000000000008p+0L,
 	0x1.00000000000007fep+0L,
 	0x1.00000000000008p+0L,
+	0x1.00000000000007fep+0L,
+	0x1.00000000000008p+0L,
+	0x1.00000000000007fep+0L,
+	0x1.00000000000008p+0L,
 	false,
 	0x1.00000000000007ffc5e73c447b8p+0L,
 	0x1.00000000000007ffc5e73c447cp+0L,
@@ -627,6 +728,10 @@ static const struct test tests[] = {
 	0x1.0000000000000802p+0L,
 	0x1.00000000000008p+0L,
 	0x1.0000000000000802p+0L,
+	0x1.00000000000008p+0L,
+	0x1.0000000000000802p+0L,
+	0x1.00000000000008p+0L,
+	0x1.0000000000000802p+0L,
 	false,
 	0x1.00000000000008016eea8f26c48p+0L,
 	0x1.00000000000008016eea8f26c48p+0L,
@@ -653,6 +758,10 @@ static const struct test tests[] = {
 	0x1.00000000000008p+0L,
 	0x1.00000000000007fep+0L,
 	0x1.00000000000008p+0L,
+	0x1.00000000000007fep+0L,
+	0x1.00000000000008p+0L,
+	0x1.00000000000007fep+0L,
+	0x1.00000000000008p+0L,
 	false,
 	0x1.00000000000007ff96adfa2b57p+0L,
 	0x1.00000000000007ff96adfa2b578p+0L,
@@ -679,6 +788,10 @@ static const struct test tests[] = {
 	0x1.00000000000007eep+0L,
 	0x1.00000000000007ecp+0L,
 	0x1.00000000000007eep+0L,
+	0x1.00000000000007ecp+0L,
+	0x1.00000000000007eep+0L,
+	0x1.00000000000007ecp+0L,
+	0x1.00000000000007eep+0L,
 	false,
 	0x1.00000000000007ed24502859138p+0L,
 	0x1.00000000000007ed24502859138p+0L,
@@ -705,6 +818,10 @@ static const struct test tests[] = {
 	0x1.0000000000000734p+0L,
 	0x1.0000000000000734p+0L,
 	0x1.0000000000000736p+0L,
+	0x1.0000000000000734p+0L,
+	0x1.0000000000000734p+0L,
+	0x1.0000000000000734p+0L,
+	0x1.0000000000000736p+0L,
 	false,
 	0x1.0000000000000734aca5f6226fp+0L,
 	0x1.0000000000000734aca5f6226fp+0L,
@@ -731,6 +848,10 @@ static const struct test tests[] = {
 	0x1.b005314e2421e8p-32L,
 	0x1.b005314e2421e7fep-32L,
 	0x1.b005314e2421e8p-32L,
+	0x1.b005314e2421e7fep-32L,
+	0x1.b005314e2421e8p-32L,
+	0x1.b005314e2421e7fep-32L,
+	0x1.b005314e2421e8p-32L,
 	false,
 	0x1.b005314e2421e7ffb472840c5ap-32L,
 	0x1.b005314e2421e7ffb472840c5a8p-32L,
@@ -759,6 +880,10 @@ static const struct test tests[] = {
 	0xcp-152L,
 	0xcp-152L,
 	0xcp-152L,
+	0xcp-152L,
+	0xcp-152L,
+	0xcp-152L,
+	0xcp-152L,
 	true,
 	0xcp-152L,
 	0xcp-152L,
@@ -785,6 +910,10 @@ static const struct test tests[] = {
 	0x1.000001p+0L,
 	0x1.000000fffffffffep+0L,
 	0x1.000001p+0L,
+	0x1.000000fffffffffep+0L,
+	0x1.000001p+0L,
+	0x1.000000fffffffffep+0L,
+	0x1.000001p+0L,
 	false,
 	0x1.000000fffffffffffffffce7b78p+0L,
 	0x1.000000fffffffffffffffce7b8p+0L,
@@ -811,6 +940,10 @@ static const struct test tests[] = {
 	0x1.000001p+0L,
 	0x1.000001p+0L,
 	0x1.000001p+0L,
+	0x1.000001p+0L,
+	0x1.000001p+0L,
+	0x1.000001p+0L,
+	0x1.000001p+0L,
 	true,
 	0x1.000001p+0L,
 	0x1.000001p+0L,
@@ -837,6 +970,10 @@ static const struct test tests[] = {
 	0x1.000001p+0L,
 	0x1.000001p+0L,
 	0x1.0000010000000002p+0L,
+	0x1.000001p+0L,
+	0x1.000001p+0L,
+	0x1.000001p+0L,
+	0x1.0000010000000002p+0L,
 	false,
 	0x1.00000100000000000000031848p+0L,
 	0x1.00000100000000000000031848p+0L,
@@ -863,6 +1000,10 @@ static const struct test tests[] = {
 	0x1.000002p+0L,
 	0x1.000002p+0L,
 	0x1.000002p+0L,
+	0x1.000002p+0L,
+	0x1.000002p+0L,
+	0x1.000002p+0L,
+	0x1.000002p+0L,
 	true,
 	0x1.000002p+0L,
 	0x1.000002p+0L,
@@ -889,6 +1030,10 @@ static const struct test tests[] = {
 	0x1.000003p+0L,
 	0x1.000002fffffffffep+0L,
 	0x1.000003p+0L,
+	0x1.000002fffffffffep+0L,
+	0x1.000003p+0L,
+	0x1.000002fffffffffep+0L,
+	0x1.000003p+0L,
 	false,
 	0x1.000002fffffffffffffffce7b78p+0L,
 	0x1.000002fffffffffffffffce7b8p+0L,
@@ -915,6 +1060,10 @@ static const struct test tests[] = {
 	0x1.000003p+0L,
 	0x1.000003p+0L,
 	0x1.000003p+0L,
+	0x1.000003p+0L,
+	0x1.000003p+0L,
+	0x1.000003p+0L,
+	0x1.000003p+0L,
 	true,
 	0x1.000003p+0L,
 	0x1.000003p+0L,
@@ -941,6 +1090,10 @@ static const struct test tests[] = {
 	0x1.000003p+0L,
 	0x1.000003p+0L,
 	0x1.0000030000000002p+0L,
+	0x1.000003p+0L,
+	0x1.000003p+0L,
+	0x1.000003p+0L,
+	0x1.0000030000000002p+0L,
 	false,
 	0x1.00000300000000000000031848p+0L,
 	0x1.00000300000000000000031848p+0L,
@@ -967,6 +1120,10 @@ static const struct test tests[] = {
 	0x1.000004p+0L,
 	0x1.000004p+0L,
 	0x1.000004p+0L,
+	0x1.000004p+0L,
+	0x1.000004p+0L,
+	0x1.000004p+0L,
+	0x1.000004p+0L,
 	true,
 	0x1.000004p+0L,
 	0x1.000004p+0L,
@@ -993,6 +1150,10 @@ static const struct test tests[] = {
 	0x2p-64L,
 	0x2p-64L,
 	0x2p-64L,
+	0x2p-64L,
+	0x2p-64L,
+	0x2p-64L,
+	0x2p-64L,
 	true,
 	0x2p-64L,
 	0x2p-64L,
@@ -1020,6 +1181,10 @@ static const struct test tests[] = {
 	0x2.000002p-64L,
 	0x2.000001fffffffffcp-64L,
 	0x2.000002p-64L,
+	0x2.000001fffffffffcp-64L,
+	0x2.000002p-64L,
+	0x2.000001fffffffffcp-64L,
+	0x2.000002p-64L,
 	false,
 	0x2.000001ffffffffffffffffffffp-64L,
 	0x2.000002p-64L,
@@ -1047,6 +1212,10 @@ static const struct test tests[] = {
 	0x2.000002p-64L,
 	0x2.000002p-64L,
 	0x2.000002p-64L,
+	0x2.000002p-64L,
+	0x2.000002p-64L,
+	0x2.000002p-64L,
+	0x2.000002p-64L,
 	true,
 	0x2.000002p-64L,
 	0x2.000002p-64L,
@@ -1074,6 +1243,10 @@ static const struct test tests[] = {
 	0x2.000002p-64L,
 	0x2.000002p-64L,
 	0x2.0000020000000004p-64L,
+	0x2.000002p-64L,
+	0x2.000002p-64L,
+	0x2.000002p-64L,
+	0x2.0000020000000004p-64L,
 	false,
 	0x2.000002p-64L,
 	0x2.000002p-64L,
@@ -1101,6 +1274,10 @@ static const struct test tests[] = {
 	0x2.000004p-64L,
 	0x2.000004p-64L,
 	0x2.000004p-64L,
+	0x2.000004p-64L,
+	0x2.000004p-64L,
+	0x2.000004p-64L,
+	0x2.000004p-64L,
 	true,
 	0x2.000004p-64L,
 	0x2.000004p-64L,
@@ -1128,6 +1305,10 @@ static const struct test tests[] = {
 	0x2.000006p-64L,
 	0x2.000005fffffffffcp-64L,
 	0x2.000006p-64L,
+	0x2.000005fffffffffcp-64L,
+	0x2.000006p-64L,
+	0x2.000005fffffffffcp-64L,
+	0x2.000006p-64L,
 	false,
 	0x2.000005ffffffffffffffffffffp-64L,
 	0x2.000006p-64L,
@@ -1155,6 +1336,10 @@ static const struct test tests[] = {
 	0x2.000006p-64L,
 	0x2.000006p-64L,
 	0x2.000006p-64L,
+	0x2.000006p-64L,
+	0x2.000006p-64L,
+	0x2.000006p-64L,
+	0x2.000006p-64L,
 	true,
 	0x2.000006p-64L,
 	0x2.000006p-64L,
@@ -1182,6 +1367,10 @@ static const struct test tests[] = {
 	0x2.000006p-64L,
 	0x2.000006p-64L,
 	0x2.0000060000000004p-64L,
+	0x2.000006p-64L,
+	0x2.000006p-64L,
+	0x2.000006p-64L,
+	0x2.0000060000000004p-64L,
 	false,
 	0x2.000006p-64L,
 	0x2.000006p-64L,
@@ -1209,6 +1398,10 @@ static const struct test tests[] = {
 	0x2.000008p-64L,
 	0x2.000008p-64L,
 	0x2.000008p-64L,
+	0x2.000008p-64L,
+	0x2.000008p-64L,
+	0x2.000008p-64L,
+	0x2.000008p-64L,
 	true,
 	0x2.000008p-64L,
 	0x2.000008p-64L,
@@ -1236,6 +1429,10 @@ static const struct test tests[] = {
 	0x1p-120L,
 	0x1p-120L,
 	0x1p-120L,
+	0x1p-120L,
+	0x1p-120L,
+	0x1p-120L,
+	0x1p-120L,
 	true,
 	0x1p-120L,
 	0x1p-120L,
@@ -1263,6 +1460,10 @@ static const struct test tests[] = {
 	0x1.000001p-120L,
 	0x1.000000fffffffffep-120L,
 	0x1.000001p-120L,
+	0x1.000000fffffffffep-120L,
+	0x1.000001p-120L,
+	0x1.000000fffffffffep-120L,
+	0x1.000001p-120L,
 	false,
 	0x1.000000ffffffffffffffffffff8p-120L,
 	0x1.000001p-120L,
@@ -1290,6 +1491,10 @@ static const struct test tests[] = {
 	0x1.000001p-120L,
 	0x1.000001p-120L,
 	0x1.000001p-120L,
+	0x1.000001p-120L,
+	0x1.000001p-120L,
+	0x1.000001p-120L,
+	0x1.000001p-120L,
 	true,
 	0x1.000001p-120L,
 	0x1.000001p-120L,
@@ -1317,6 +1522,10 @@ static const struct test tests[] = {
 	0x1.000001p-120L,
 	0x1.000001p-120L,
 	0x1.0000010000000002p-120L,
+	0x1.000001p-120L,
+	0x1.000001p-120L,
+	0x1.000001p-120L,
+	0x1.0000010000000002p-120L,
 	false,
 	0x1.000001p-120L,
 	0x1.000001p-120L,
@@ -1344,6 +1553,10 @@ static const struct test tests[] = {
 	0x1.000002p-120L,
 	0x1.000002p-120L,
 	0x1.000002p-120L,
+	0x1.000002p-120L,
+	0x1.000002p-120L,
+	0x1.000002p-120L,
+	0x1.000002p-120L,
 	true,
 	0x1.000002p-120L,
 	0x1.000002p-120L,
@@ -1371,6 +1584,10 @@ static const struct test tests[] = {
 	0x1.000003p-120L,
 	0x1.000002fffffffffep-120L,
 	0x1.000003p-120L,
+	0x1.000002fffffffffep-120L,
+	0x1.000003p-120L,
+	0x1.000002fffffffffep-120L,
+	0x1.000003p-120L,
 	false,
 	0x1.000002ffffffffffffffffffff8p-120L,
 	0x1.000003p-120L,
@@ -1398,6 +1615,10 @@ static const struct test tests[] = {
 	0x1.000003p-120L,
 	0x1.000003p-120L,
 	0x1.000003p-120L,
+	0x1.000003p-120L,
+	0x1.000003p-120L,
+	0x1.000003p-120L,
+	0x1.000003p-120L,
 	true,
 	0x1.000003p-120L,
 	0x1.000003p-120L,
@@ -1425,6 +1646,10 @@ static const struct test tests[] = {
 	0x1.000003p-120L,
 	0x1.000003p-120L,
 	0x1.0000030000000002p-120L,
+	0x1.000003p-120L,
+	0x1.000003p-120L,
+	0x1.000003p-120L,
+	0x1.0000030000000002p-120L,
 	false,
 	0x1.000003p-120L,
 	0x1.000003p-120L,
@@ -1452,6 +1677,10 @@ static const struct test tests[] = {
 	0x1.000004p-120L,
 	0x1.000004p-120L,
 	0x1.000004p-120L,
+	0x1.000004p-120L,
+	0x1.000004p-120L,
+	0x1.000004p-120L,
+	0x1.000004p-120L,
 	true,
 	0x1.000004p-120L,
 	0x1.000004p-120L,
@@ -1478,6 +1707,10 @@ static const struct test tests[] = {
 	0xf.fffff8p+124L,
 	0xf.fffff7fffffffffp+124L,
 	0xf.fffff8p+124L,
+	0xf.fffff7fffffffffp+124L,
+	0xf.fffff8p+124L,
+	0xf.fffff7fffffffffp+124L,
+	0xf.fffff8p+124L,
 	false,
 	0xf.fffff7fffffffffffffffffffcp+124L,
 	0xf.fffff8p+124L,
@@ -1504,6 +1737,10 @@ static const struct test tests[] = {
 	0xf.fffff8p+124L,
 	0xf.fffff8p+124L,
 	0xf.fffff8p+124L,
+	0xf.fffff8p+124L,
+	0xf.fffff8p+124L,
+	0xf.fffff8p+124L,
+	0xf.fffff8p+124L,
 	true,
 	0xf.fffff8p+124L,
 	0xf.fffff8p+124L,
@@ -1530,6 +1767,10 @@ static const struct test tests[] = {
 	0xf.fffff8p+124L,
 	0xf.fffff8p+124L,
 	0xf.fffff8000000001p+124L,
+	0xf.fffff8p+124L,
+	0xf.fffff8p+124L,
+	0xf.fffff8p+124L,
+	0xf.fffff8000000001p+124L,
 	false,
 	0xf.fffff8p+124L,
 	0xf.fffff8p+124L,
@@ -1556,6 +1797,10 @@ static const struct test tests[] = {
 	-0xf.fffff8p+124L,
 	-0xf.fffff7fffffffffp+124L,
 	-0xf.fffff7fffffffffp+124L,
+	-0xf.fffff8p+124L,
+	-0xf.fffff8p+124L,
+	-0xf.fffff7fffffffffp+124L,
+	-0xf.fffff7fffffffffp+124L,
 	false,
 	-0xf.fffff8p+124L,
 	-0xf.fffff8p+124L,
@@ -1582,6 +1827,10 @@ static const struct test tests[] = {
 	-0xf.fffff8p+124L,
 	-0xf.fffff8p+124L,
 	-0xf.fffff8p+124L,
+	-0xf.fffff8p+124L,
+	-0xf.fffff8p+124L,
+	-0xf.fffff8p+124L,
+	-0xf.fffff8p+124L,
 	true,
 	-0xf.fffff8p+124L,
 	-0xf.fffff8p+124L,
@@ -1608,6 +1857,10 @@ static const struct test tests[] = {
 	-0xf.fffff8p+124L,
 	-0xf.fffff8p+124L,
 	-0xf.fffff8p+124L,
+	-0xf.fffff8000000001p+124L,
+	-0xf.fffff8p+124L,
+	-0xf.fffff8p+124L,
+	-0xf.fffff8p+124L,
 	false,
 	-0xf.fffff800000000000000000004p+124L,
 	-0xf.fffff8p+124L,
@@ -1639,6 +1892,10 @@ static const struct test tests[] = {
 	0xf.ffffffffffffcp+1020L,
 	0xf.ffffffffffffbffp+1020L,
 	0xf.ffffffffffffcp+1020L,
+	0xf.ffffffffffffbffp+1020L,
+	0xf.ffffffffffffcp+1020L,
+	0xf.ffffffffffffbffp+1020L,
+	0xf.ffffffffffffcp+1020L,
 	false,
 	0xf.ffffffffffffbffffffffffffcp+1020L,
 	0xf.ffffffffffffcp+1020L,
@@ -1670,6 +1927,10 @@ static const struct test tests[] = {
 	0xf.ffffffffffffcp+1020L,
 	0xf.ffffffffffffcp+1020L,
 	0xf.ffffffffffffcp+1020L,
+	0xf.ffffffffffffcp+1020L,
+	0xf.ffffffffffffcp+1020L,
+	0xf.ffffffffffffcp+1020L,
+	0xf.ffffffffffffcp+1020L,
 	true,
 	0xf.ffffffffffffcp+1020L,
 	0xf.ffffffffffffcp+1020L,
@@ -1701,6 +1962,10 @@ static const struct test tests[] = {
 	0xf.ffffffffffffcp+1020L,
 	0xf.ffffffffffffcp+1020L,
 	0xf.ffffffffffffc01p+1020L,
+	0xf.ffffffffffffcp+1020L,
+	0xf.ffffffffffffcp+1020L,
+	0xf.ffffffffffffcp+1020L,
+	0xf.ffffffffffffc01p+1020L,
 	false,
 	0xf.ffffffffffffcp+1020L,
 	0xf.ffffffffffffcp+1020L,
@@ -1732,6 +1997,10 @@ static const struct test tests[] = {
 	-0xf.ffffffffffffcp+1020L,
 	-0xf.ffffffffffffbffp+1020L,
 	-0xf.ffffffffffffbffp+1020L,
+	-0xf.ffffffffffffcp+1020L,
+	-0xf.ffffffffffffcp+1020L,
+	-0xf.ffffffffffffbffp+1020L,
+	-0xf.ffffffffffffbffp+1020L,
 	false,
 	-0xf.ffffffffffffcp+1020L,
 	-0xf.ffffffffffffcp+1020L,
@@ -1763,6 +2032,10 @@ static const struct test tests[] = {
 	-0xf.ffffffffffffcp+1020L,
 	-0xf.ffffffffffffcp+1020L,
 	-0xf.ffffffffffffcp+1020L,
+	-0xf.ffffffffffffcp+1020L,
+	-0xf.ffffffffffffcp+1020L,
+	-0xf.ffffffffffffcp+1020L,
+	-0xf.ffffffffffffcp+1020L,
 	true,
 	-0xf.ffffffffffffcp+1020L,
 	-0xf.ffffffffffffcp+1020L,
@@ -1794,6 +2067,10 @@ static const struct test tests[] = {
 	-0xf.ffffffffffffcp+1020L,
 	-0xf.ffffffffffffcp+1020L,
 	-0xf.ffffffffffffcp+1020L,
+	-0xf.ffffffffffffc01p+1020L,
+	-0xf.ffffffffffffcp+1020L,
+	-0xf.ffffffffffffcp+1020L,
+	-0xf.ffffffffffffcp+1020L,
 	false,
 	-0xf.ffffffffffffc0000000000004p+1020L,
 	-0xf.ffffffffffffcp+1020L,
@@ -1902,6 +2179,10 @@ static const struct test tests[] = {
 	0xf.fffffffffffffffp+16380L,
 	0xf.fffffffffffffffp+16380L,
 	INFINITY,
+	0xf.fffffffffffffffp+16380L,
+	0xf.fffffffffffffffp+16380L,
+	0xf.fffffffffffffffp+16380L,
+	INFINITY,
 	false,
 	0xf.fffffffffffffffffffffffffcp+1020L,
 	INFINITY,
@@ -2010,6 +2291,10 @@ static const struct test tests[] = {
 	INFINITY,
 	0xf.fffffffffffffffp+16380L,
 	INFINITY,
+	0xf.fffffffffffffffp+16380L,
+	INFINITY,
+	0xf.fffffffffffffffp+16380L,
+	INFINITY,
 	false,
 	0xf.fffffffffffffffffffffffffcp+1020L,
 	INFINITY,
@@ -2118,6 +2403,10 @@ static const struct test tests[] = {
 	INFINITY,
 	0xf.fffffffffffffffp+16380L,
 	INFINITY,
+	0xf.fffffffffffffffp+16380L,
+	INFINITY,
+	0xf.fffffffffffffffp+16380L,
+	INFINITY,
 	false,
 	0xf.fffffffffffffffffffffffffcp+1020L,
 	INFINITY,
@@ -2226,6 +2515,10 @@ static const struct test tests[] = {
 	-0xf.fffffffffffffffp+16380L,
 	-0xf.fffffffffffffffp+16380L,
 	-0xf.fffffffffffffffp+16380L,
+	-INFINITY,
+	-0xf.fffffffffffffffp+16380L,
+	-0xf.fffffffffffffffp+16380L,
+	-0xf.fffffffffffffffp+16380L,
 	false,
 	-INFINITY,
 	-INFINITY,
@@ -2334,6 +2627,10 @@ static const struct test tests[] = {
 	-INFINITY,
 	-0xf.fffffffffffffffp+16380L,
 	-0xf.fffffffffffffffp+16380L,
+	-INFINITY,
+	-INFINITY,
+	-0xf.fffffffffffffffp+16380L,
+	-0xf.fffffffffffffffp+16380L,
 	false,
 	-INFINITY,
 	-INFINITY,
@@ -2442,6 +2739,10 @@ static const struct test tests[] = {
 	-INFINITY,
 	-0xf.fffffffffffffffp+16380L,
 	-0xf.fffffffffffffffp+16380L,
+	-INFINITY,
+	-INFINITY,
+	-0xf.fffffffffffffffp+16380L,
+	-0xf.fffffffffffffffp+16380L,
 	false,
 	-INFINITY,
 	-INFINITY,
@@ -2550,6 +2851,10 @@ static const struct test tests[] = {
 	INFINITY,
 	0xf.fffffffffffffffp+16380L,
 	INFINITY,
+	0xf.fffffffffffffffp+16380L,
+	INFINITY,
+	0xf.fffffffffffffffp+16380L,
+	INFINITY,
 	false,
 	0xf.fffffffffffffffffffffffffcp+1020L,
 	INFINITY,
@@ -2658,6 +2963,10 @@ static const struct test tests[] = {
 	INFINITY,
 	0xf.fffffffffffffffp+16380L,
 	INFINITY,
+	0xf.fffffffffffffffp+16380L,
+	INFINITY,
+	0xf.fffffffffffffffp+16380L,
+	INFINITY,
 	false,
 	0xf.fffffffffffffffffffffffffcp+1020L,
 	INFINITY,
@@ -2766,6 +3075,10 @@ static const struct test tests[] = {
 	INFINITY,
 	0xf.fffffffffffffffp+16380L,
 	INFINITY,
+	0xf.fffffffffffffffp+16380L,
+	INFINITY,
+	0xf.fffffffffffffffp+16380L,
+	INFINITY,
 	false,
 	0xf.fffffffffffffffffffffffffcp+1020L,
 	INFINITY,
@@ -2874,6 +3187,10 @@ static const struct test tests[] = {
 	-INFINITY,
 	-0xf.fffffffffffffffp+16380L,
 	-0xf.fffffffffffffffp+16380L,
+	-INFINITY,
+	-INFINITY,
+	-0xf.fffffffffffffffp+16380L,
+	-0xf.fffffffffffffffp+16380L,
 	false,
 	-INFINITY,
 	-INFINITY,
@@ -2982,6 +3299,10 @@ static const struct test tests[] = {
 	-INFINITY,
 	-0xf.fffffffffffffffp+16380L,
 	-0xf.fffffffffffffffp+16380L,
+	-INFINITY,
+	-INFINITY,
+	-0xf.fffffffffffffffp+16380L,
+	-0xf.fffffffffffffffp+16380L,
 	false,
 	-INFINITY,
 	-INFINITY,
@@ -3090,6 +3411,10 @@ static const struct test tests[] = {
 	-INFINITY,
 	-0xf.fffffffffffffffp+16380L,
 	-0xf.fffffffffffffffp+16380L,
+	-INFINITY,
+	-INFINITY,
+	-0xf.fffffffffffffffp+16380L,
+	-0xf.fffffffffffffffp+16380L,
 	false,
 	-INFINITY,
 	-INFINITY,
@@ -3117,6 +3442,10 @@ static const struct test tests[] = {
 	0xcp-152L,
 	0xb.fffffffffffffffp-152L,
 	0xcp-152L,
+	0xb.fffffffffffffffp-152L,
+	0xcp-152L,
+	0xb.fffffffffffffffp-152L,
+	0xcp-152L,
 	false,
 	0xb.fffffffffffffffffffffffffcp-152L,
 	0xcp-152L,
@@ -3144,6 +3473,10 @@ static const struct test tests[] = {
 	0xcp-152L,
 	0xcp-152L,
 	0xcp-152L,
+	0xcp-152L,
+	0xcp-152L,
+	0xcp-152L,
+	0xcp-152L,
 	true,
 	0xcp-152L,
 	0xcp-152L,
@@ -3171,6 +3504,10 @@ static const struct test tests[] = {
 	0xcp-152L,
 	0xcp-152L,
 	0xc.000000000000001p-152L,
+	0xcp-152L,
+	0xcp-152L,
+	0xcp-152L,
+	0xc.000000000000001p-152L,
 	false,
 	0xcp-152L,
 	0xcp-152L,
@@ -3198,6 +3535,10 @@ static const struct test tests[] = {
 	-0xcp-152L,
 	-0xb.fffffffffffffffp-152L,
 	-0xb.fffffffffffffffp-152L,
+	-0xcp-152L,
+	-0xcp-152L,
+	-0xb.fffffffffffffffp-152L,
+	-0xb.fffffffffffffffp-152L,
 	false,
 	-0xcp-152L,
 	-0xcp-152L,
@@ -3225,6 +3566,10 @@ static const struct test tests[] = {
 	-0xcp-152L,
 	-0xcp-152L,
 	-0xcp-152L,
+	-0xcp-152L,
+	-0xcp-152L,
+	-0xcp-152L,
+	-0xcp-152L,
 	true,
 	-0xcp-152L,
 	-0xcp-152L,
@@ -3252,6 +3597,10 @@ static const struct test tests[] = {
 	-0xcp-152L,
 	-0xcp-152L,
 	-0xcp-152L,
+	-0xc.000000000000001p-152L,
+	-0xcp-152L,
+	-0xcp-152L,
+	-0xcp-152L,
 	false,
 	-0xc.00000000000000000000000004p-152L,
 	-0xcp-152L,
@@ -3279,6 +3628,10 @@ static const struct test tests[] = {
 	0x1.4p-148L,
 	0x1.3ffffffffffffffep-148L,
 	0x1.4p-148L,
+	0x1.3ffffffffffffffep-148L,
+	0x1.4p-148L,
+	0x1.3ffffffffffffffep-148L,
+	0x1.4p-148L,
 	false,
 	0x1.3fffffffffffffffffffffffff8p-148L,
 	0x1.4p-148L,
@@ -3306,6 +3659,10 @@ static const struct test tests[] = {
 	0x1.4p-148L,
 	0x1.4p-148L,
 	0x1.4p-148L,
+	0x1.4p-148L,
+	0x1.4p-148L,
+	0x1.4p-148L,
+	0x1.4p-148L,
 	true,
 	0x1.4p-148L,
 	0x1.4p-148L,
@@ -3333,6 +3690,10 @@ static const struct test tests[] = {
 	0x1.4p-148L,
 	0x1.4p-148L,
 	0x1.4000000000000002p-148L,
+	0x1.4p-148L,
+	0x1.4p-148L,
+	0x1.4p-148L,
+	0x1.4000000000000002p-148L,
 	false,
 	0x1.4p-148L,
 	0x1.4p-148L,
@@ -3360,6 +3721,10 @@ static const struct test tests[] = {
 	-0x1.4p-148L,
 	-0x1.3ffffffffffffffep-148L,
 	-0x1.3ffffffffffffffep-148L,
+	-0x1.4p-148L,
+	-0x1.4p-148L,
+	-0x1.3ffffffffffffffep-148L,
+	-0x1.3ffffffffffffffep-148L,
 	false,
 	-0x1.4p-148L,
 	-0x1.4p-148L,
@@ -3387,6 +3752,10 @@ static const struct test tests[] = {
 	-0x1.4p-148L,
 	-0x1.4p-148L,
 	-0x1.4p-148L,
+	-0x1.4p-148L,
+	-0x1.4p-148L,
+	-0x1.4p-148L,
+	-0x1.4p-148L,
 	true,
 	-0x1.4p-148L,
 	-0x1.4p-148L,
@@ -3414,6 +3783,10 @@ static const struct test tests[] = {
 	-0x1.4p-148L,
 	-0x1.4p-148L,
 	-0x1.4p-148L,
+	-0x1.4000000000000002p-148L,
+	-0x1.4p-148L,
+	-0x1.4p-148L,
+	-0x1.4p-148L,
 	false,
 	-0x1.400000000000000000000000008p-148L,
 	-0x1.4p-148L,
@@ -3452,6 +3825,10 @@ static const struct test tests[] = {
 	0x6p-1076L,
 	0x5.fffffffffffffff8p-1076L,
 	0x6p-1076L,
+	0x5.fffffffffffffff8p-1076L,
+	0x6p-1076L,
+	0x5.fffffffffffffff8p-1076L,
+	0x6p-1076L,
 	false,
 	0x4p-1076L,
 	0x4p-1076L,
@@ -3490,6 +3867,10 @@ static const struct test tests[] = {
 	0x6p-1076L,
 	0x6p-1076L,
 	0x6p-1076L,
+	0x6p-1076L,
+	0x6p-1076L,
+	0x6p-1076L,
+	0x6p-1076L,
 	true,
 	0x4p-1076L,
 	0x8p-1076L,
@@ -3528,6 +3909,10 @@ static const struct test tests[] = {
 	0x6p-1076L,
 	0x6p-1076L,
 	0x6.0000000000000008p-1076L,
+	0x6p-1076L,
+	0x6p-1076L,
+	0x6p-1076L,
+	0x6.0000000000000008p-1076L,
 	false,
 	0x4p-1076L,
 	0x8p-1076L,
@@ -3566,6 +3951,10 @@ static const struct test tests[] = {
 	-0x6p-1076L,
 	-0x5.fffffffffffffff8p-1076L,
 	-0x5.fffffffffffffff8p-1076L,
+	-0x6p-1076L,
+	-0x6p-1076L,
+	-0x5.fffffffffffffff8p-1076L,
+	-0x5.fffffffffffffff8p-1076L,
 	false,
 	-0x8p-1076L,
 	-0x4p-1076L,
@@ -3604,6 +3993,10 @@ static const struct test tests[] = {
 	-0x6p-1076L,
 	-0x6p-1076L,
 	-0x6p-1076L,
+	-0x6p-1076L,
+	-0x6p-1076L,
+	-0x6p-1076L,
+	-0x6p-1076L,
 	true,
 	-0x8p-1076L,
 	-0x8p-1076L,
@@ -3642,6 +4035,10 @@ static const struct test tests[] = {
 	-0x6p-1076L,
 	-0x6p-1076L,
 	-0x6p-1076L,
+	-0x6.0000000000000008p-1076L,
+	-0x6p-1076L,
+	-0x6p-1076L,
+	-0x6p-1076L,
 	false,
 	-0x8p-1076L,
 	-0x8p-1076L,
@@ -3859,6 +4256,10 @@ static const struct test tests[] = {
 	0x8p-16448L,
 	0x8p-16448L,
 	0x1p-16444L,
+	0x8p-16448L,
+	0xcp-16448L,
+	0x8p-16448L,
+	0xcp-16448L,
 	false,
 	0x0p+0L,
 	0x0p+0L,
@@ -4076,6 +4477,10 @@ static const struct test tests[] = {
 	0x1p-16444L,
 	0x8p-16448L,
 	0x1p-16444L,
+	0xcp-16448L,
+	0xcp-16448L,
+	0xcp-16448L,
+	0xcp-16448L,
 	false,
 	0x0p+0L,
 	0x0p+0L,
@@ -4293,6 +4698,10 @@ static const struct test tests[] = {
 	0x1p-16444L,
 	0x8p-16448L,
 	0x1p-16444L,
+	0xcp-16448L,
+	0xcp-16448L,
+	0xcp-16448L,
+	0x1p-16444L,
 	false,
 	0x0p+0L,
 	0x0p+0L,
@@ -4510,6 +4919,10 @@ static const struct test tests[] = {
 	-0x8p-16448L,
 	-0x8p-16448L,
 	-0x8p-16448L,
+	-0xcp-16448L,
+	-0xcp-16448L,
+	-0x8p-16448L,
+	-0x8p-16448L,
 	false,
 	-0x4p-1076L,
 	-0x0p+0L,
@@ -4727,6 +5140,10 @@ static const struct test tests[] = {
 	-0x1p-16444L,
 	-0x8p-16448L,
 	-0x8p-16448L,
+	-0xcp-16448L,
+	-0xcp-16448L,
+	-0xcp-16448L,
+	-0xcp-16448L,
 	false,
 	-0x4p-1076L,
 	-0x0p+0L,
@@ -4944,6 +5361,10 @@ static const struct test tests[] = {
 	-0x1p-16444L,
 	-0x8p-16448L,
 	-0x8p-16448L,
+	-0x1p-16444L,
+	-0xcp-16448L,
+	-0xcp-16448L,
+	-0xcp-16448L,
 	false,
 	-0x4p-1076L,
 	-0x0p+0L,
@@ -5161,6 +5582,10 @@ static const struct test tests[] = {
 	0x8p-16448L,
 	0x8p-16448L,
 	0x1p-16444L,
+	0x8p-16448L,
+	0xcp-16448L,
+	0x8p-16448L,
+	0xcp-16448L,
 	false,
 	0x0p+0L,
 	0x0p+0L,
@@ -5378,6 +5803,10 @@ static const struct test tests[] = {
 	0x1p-16444L,
 	0x8p-16448L,
 	0x1p-16444L,
+	0xcp-16448L,
+	0xcp-16448L,
+	0xcp-16448L,
+	0xcp-16448L,
 	false,
 	0x0p+0L,
 	0x0p+0L,
@@ -5595,6 +6024,10 @@ static const struct test tests[] = {
 	0x1p-16444L,
 	0x8p-16448L,
 	0x1p-16444L,
+	0xcp-16448L,
+	0xcp-16448L,
+	0xcp-16448L,
+	0x1p-16444L,
 	false,
 	0x0p+0L,
 	0x0p+0L,
@@ -5812,6 +6245,10 @@ static const struct test tests[] = {
 	-0x8p-16448L,
 	-0x8p-16448L,
 	-0x8p-16448L,
+	-0xcp-16448L,
+	-0xcp-16448L,
+	-0x8p-16448L,
+	-0x8p-16448L,
 	false,
 	-0x4p-1076L,
 	-0x0p+0L,
@@ -6029,6 +6466,10 @@ static const struct test tests[] = {
 	-0x1p-16444L,
 	-0x8p-16448L,
 	-0x8p-16448L,
+	-0xcp-16448L,
+	-0xcp-16448L,
+	-0xcp-16448L,
+	-0xcp-16448L,
 	false,
 	-0x4p-1076L,
 	-0x0p+0L,
@@ -6246,6 +6687,10 @@ static const struct test tests[] = {
 	-0x1p-16444L,
 	-0x8p-16448L,
 	-0x8p-16448L,
+	-0x1p-16444L,
+	-0xcp-16448L,
+	-0xcp-16448L,
+	-0xcp-16448L,
 	false,
 	-0x4p-1076L,
 	-0x0p+0L,
@@ -6272,6 +6717,10 @@ static const struct test tests[] = {
 	-0x3.8p-152L,
 	-0x3.8p-152L,
 	-0x3.8p-152L,
+	-0x3.8p-152L,
+	-0x3.8p-152L,
+	-0x3.8p-152L,
+	-0x3.8p-152L,
 	true,
 	-0x3.8p-152L,
 	-0x3.8p-152L,
@@ -6298,6 +6747,10 @@ static const struct test tests[] = {
 	-0x1.cp-1076L,
 	-0x1.cp-1076L,
 	-0x1.cp-1076L,
+	-0x1.cp-1076L,
+	-0x1.cp-1076L,
+	-0x1.cp-1076L,
+	-0x1.cp-1076L,
 	false,
 	-0x4p-1076L,
 	-0x0p+0L,
@@ -6324,6 +6777,10 @@ static const struct test tests[] = {
 	-0x0p+0L,
 	-0x0p+0L,
 	-0x0p+0L,
+	-0x4p-16448L,
+	-0x4p-16448L,
+	-0x0p+0L,
+	-0x0p+0L,
 	false,
 	-0x4p-1076L,
 	-0x0p+0L,
@@ -6350,6 +6807,10 @@ static const struct test tests[] = {
 	-0x0p+0L,
 	-0x0p+0L,
 	-0x0p+0L,
+	-0x4p-16448L,
+	-0x0p+0L,
+	-0x0p+0L,
+	-0x0p+0L,
 	false,
 	-0x4p-1076L,
 	-0x0p+0L,