about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPaul E. Murphy <murphyp@linux.vnet.ibm.com>2016-05-09 17:59:37 -0500
committerPaul E. Murphy <murphyp@linux.vnet.ibm.com>2016-05-25 13:33:36 -0500
commit1ced34c00a0aa26dca5aab811a967c1e52c33fe9 (patch)
treec08873d06a2c935f555d7b03fb84674af813cc7d
parentb4d80349bb8b91fd64d6e860af5c0bd503b15f97 (diff)
downloadglibc-1ced34c00a0aa26dca5aab811a967c1e52c33fe9.tar.gz
glibc-1ced34c00a0aa26dca5aab811a967c1e52c33fe9.tar.xz
glibc-1ced34c00a0aa26dca5aab811a967c1e52c33fe9.zip
Refactor tst-strtod-round.c for type-generic-ness
Reduce much of the redundancy in this file, and attempt
to coral the type specific stuff to ease adding an new type.
-rw-r--r--ChangeLog42
-rw-r--r--stdlib/gen-tst-strtod-round.c48
-rw-r--r--stdlib/tst-strtod-round-data.h7596
-rw-r--r--stdlib/tst-strtod-round.c304
-rw-r--r--stdlib/tst-strtod.h8
5 files changed, 3638 insertions, 4360 deletions
diff --git a/ChangeLog b/ChangeLog
index 89c2a9c0f5..2a4cf83228 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,45 @@
+2016-05-25  Paul E. Murphy  <murphyp@linux.vnet.ibm.com>
+
+	* stdlib/gen-tst-strtod-round.c: Add backslash to
+	compile command in comment.
+	(printfp): Remove the literal suffix, and define an infinite
+	value as INF to avoid expansion clash with INFINITY.
+	(round_str): Remove the literal suffix.
+	(round_for_all): Likewise, remove the now duplicate ldbl-64
+	entry, and remove some magic constants.
+
+	* stdlib/tst-strtod-round.c: (TEST): Redefine to reduce
+	duplication.  Remove duplicate dbl-64 and ldbl-64 entries.
+	(ROUNDING_TESTS_long_double): Define as 0 for ibm128.
+	(_CONCAT): New macro.
+	(CONCAT): Likewise.
+	(CHOOSE_ld): Likewise.
+	(CHOOSE_f): Likewise.
+	(CHOOSE_d): Likewise.
+	(FTYPE_MEMBER): Likewise.
+	(BOOL_MEMBER): Likewise.
+	(STRUCT_FOREACH_FLOAT_FTYPE): Likewise.
+	(STRUCT_FOREACH_FLOAT_BOOL): Likewise.
+	(_XNTRY): Likewise.
+	(XNTRY): Likewise.
+	(_ENTRY): Likewise.
+	(ENTRY): Likewise.
+	(test_exactness): Generate members via macro.
+	(test_results): Likewise.
+	(test): Update members.
+	(TEST): Redefine using new macros.
+	(INF): New macro.
+	(fetestmodes): New structure.
+	(do_test): Refactor to be type generic.
+	(test_in_one_mode): Refactor duplicate code into
+	(GEN_ONE_TEST): New macro.
+
+	* stdlib/tst-strtod-round-data.h: Regenerate.
+
+	* stdlib/tst-strtod.h (GEN_TEST_STRTOD_FOREACH):
+	Extend to pass additional arbitrary parameters to
+	generators.
+
 2016-05-25  Joseph Myers  <joseph@codesourcery.com>
 
 	[BZ #15479]
diff --git a/stdlib/gen-tst-strtod-round.c b/stdlib/gen-tst-strtod-round.c
index fa5562ee00..1c2823f5be 100644
--- a/stdlib/gen-tst-strtod-round.c
+++ b/stdlib/gen-tst-strtod-round.c
@@ -19,7 +19,7 @@
 
 /* Compile this program as:
 
-   gcc -std=gnu11 -O2 -Wall -Wextra gen-tst-strtod-round.c -lmpfr
+   gcc -std=gnu11 -O2 -Wall -Wextra gen-tst-strtod-round.c -lmpfr \
      -o gen-tst-strtod-round
 
    (use of current MPFR version recommended) and run it as:
@@ -60,19 +60,18 @@ string_to_fp (mpfr_t f, const char *s, mpfr_rnd_t rnd)
 #endif
 }
 
-static void
-print_fp (FILE *fout, mpfr_t f, const char *suffix, const char *suffix2)
+void
+print_fp (FILE *fout, mpfr_t f, const char *suffix)
 {
   if (mpfr_inf_p (f))
-    mpfr_fprintf (fout, "\t%sINFINITY%s", mpfr_signbit (f) ? "-" : "",
-		  suffix2);
+    mpfr_fprintf (fout, "\t%sINF%s", mpfr_signbit (f) ? "-" : "", suffix);
   else
-    mpfr_fprintf (fout, "\t%Ra%s%s", f, suffix, suffix2);
+    mpfr_fprintf (fout, "\t%Ra%s", f, suffix);
 }
 
 static void
-round_str (FILE *fout, const char *s, const char *suffix,
-	   int prec, int emin, int emax, bool ibm_ld)
+round_str (FILE *fout, const char *s, int prec, int emin, int emax,
+	   bool ibm_ld)
 {
   mpfr_t f;
   mpfr_set_default_prec (prec);
@@ -94,13 +93,13 @@ round_str (FILE *fout, const char *s, const char *suffix,
       mpfr_clear (max_value);
     }
   mpfr_fprintf (fout, "\t%s,\n", r ? "false" : "true");
-  print_fp (fout, f, suffix, ",\n");
+  print_fp (fout, f, ",\n");
   string_to_fp (f, s, MPFR_RNDN);
-  print_fp (fout, f, suffix, ",\n");
+  print_fp (fout, f, ",\n");
   string_to_fp (f, s, MPFR_RNDZ);
-  print_fp (fout, f, suffix, ",\n");
+  print_fp (fout, f, ",\n");
   string_to_fp (f, s, MPFR_RNDU);
-  print_fp (fout, f, suffix, "");
+  print_fp (fout, f, "");
   mpfr_clear (f);
 }
 
@@ -108,21 +107,19 @@ static void
 round_for_all (FILE *fout, const char *s)
 {
   static const struct fmt {
-    const char *suffix;
     int prec;
     int emin;
     int emax;
     bool ibm_ld;
-  } formats[7] = {
-    { "f", 24, -148, 128, false },
-    { "", 53, -1073, 1024, false },
-    { "L", 53, -1073, 1024, false },
+  } formats[] = {
+    { 24, -148, 128, false },
+    { 53, -1073, 1024, false },
     /* This is the Intel extended float format.  */
-    { "L", 64, -16444, 16384, false },
+    { 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 },
+    { 64, -16445, 16384, false },
+    { 106, -1073, 1024, true },
+    { 113, -16493, 16384, false },
   };
   mpfr_fprintf (fout, "  TEST (\"");
   const char *p;
@@ -134,11 +131,12 @@ round_for_all (FILE *fout, const char *s)
     }
   mpfr_fprintf (fout, "\",\n");
   int i;
-  for (i = 0; i < 7; i++)
+  int n_formats = sizeof (formats) / sizeof (formats[0]);
+  for (i = 0; i < n_formats; i++)
     {
-      round_str (fout, s, formats[i].suffix, formats[i].prec,
-		 formats[i].emin, formats[i].emax, formats[i].ibm_ld);
-      if (i < 6)
+      round_str (fout, s, formats[i].prec, formats[i].emin,
+		 formats[i].emax, formats[i].ibm_ld);
+      if (i < n_formats - 1)
 	mpfr_fprintf (fout, ",\n");
     }
   mpfr_fprintf (fout, "),\n");
diff --git a/stdlib/tst-strtod-round-data.h b/stdlib/tst-strtod-round-data.h
index 352d785fc2..1fd3aa87e1 100644
--- a/stdlib/tst-strtod-round-data.h
+++ b/stdlib/tst-strtod-round-data.h
@@ -2,2147 +2,1852 @@
 static const struct test tests[] = {
   TEST ("3.518437208883201171875E+013",
 	false,
-	0x2p+44f,
-	0x2p+44f,
-	0x2p+44f,
-	0x2.000004p+44f,
+	0x2p+44,
+	0x2p+44,
+	0x2p+44,
+	0x2.000004p+44,
 	false,
 	0x2.0000000000002p+44,
 	0x2.0000000000004p+44,
 	0x2.0000000000002p+44,
 	0x2.0000000000004p+44,
-	false,
-	0x2.0000000000002p+44L,
-	0x2.0000000000004p+44L,
-	0x2.0000000000002p+44L,
-	0x2.0000000000004p+44L,
-	true,
-	0x2.0000000000003p+44L,
-	0x2.0000000000003p+44L,
-	0x2.0000000000003p+44L,
-	0x2.0000000000003p+44L,
-	true,
-	0x2.0000000000003p+44L,
-	0x2.0000000000003p+44L,
-	0x2.0000000000003p+44L,
-	0x2.0000000000003p+44L,
-	true,
-	0x2.0000000000003p+44L,
-	0x2.0000000000003p+44L,
-	0x2.0000000000003p+44L,
-	0x2.0000000000003p+44L,
-	true,
-	0x2.0000000000003p+44L,
-	0x2.0000000000003p+44L,
-	0x2.0000000000003p+44L,
-	0x2.0000000000003p+44L),
+	true,
+	0x2.0000000000003p+44,
+	0x2.0000000000003p+44,
+	0x2.0000000000003p+44,
+	0x2.0000000000003p+44,
+	true,
+	0x2.0000000000003p+44,
+	0x2.0000000000003p+44,
+	0x2.0000000000003p+44,
+	0x2.0000000000003p+44,
+	true,
+	0x2.0000000000003p+44,
+	0x2.0000000000003p+44,
+	0x2.0000000000003p+44,
+	0x2.0000000000003p+44,
+	true,
+	0x2.0000000000003p+44,
+	0x2.0000000000003p+44,
+	0x2.0000000000003p+44,
+	0x2.0000000000003p+44),
   TEST ("1.00000005960464477550",
 	false,
-	0x1p+0f,
-	0x1.000002p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1.000002p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1.000001p+0,
 	0x1.000001p+0,
 	0x1.000001p+0,
 	0x1.0000010000001p+0,
 	false,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.0000010000001p+0L,
-	false,
-	0x1.0000010000000002p+0L,
-	0x1.0000010000000002p+0L,
-	0x1.0000010000000002p+0L,
-	0x1.0000010000000004p+0L,
-	false,
-	0x1.0000010000000002p+0L,
-	0x1.0000010000000002p+0L,
-	0x1.0000010000000002p+0L,
-	0x1.0000010000000004p+0L,
-	false,
-	0x1.0000010000000002048242f2ffp+0L,
-	0x1.0000010000000002048242f2ff8p+0L,
-	0x1.0000010000000002048242f2ffp+0L,
-	0x1.0000010000000002048242f2ff8p+0L,
-	false,
-	0x1.0000010000000002048242f2ff66p+0L,
-	0x1.0000010000000002048242f2ff67p+0L,
-	0x1.0000010000000002048242f2ff66p+0L,
-	0x1.0000010000000002048242f2ff67p+0L),
+	0x1.0000010000000002p+0,
+	0x1.0000010000000002p+0,
+	0x1.0000010000000002p+0,
+	0x1.0000010000000004p+0,
+	false,
+	0x1.0000010000000002p+0,
+	0x1.0000010000000002p+0,
+	0x1.0000010000000002p+0,
+	0x1.0000010000000004p+0,
+	false,
+	0x1.0000010000000002048242f2ffp+0,
+	0x1.0000010000000002048242f2ff8p+0,
+	0x1.0000010000000002048242f2ffp+0,
+	0x1.0000010000000002048242f2ff8p+0,
+	false,
+	0x1.0000010000000002048242f2ff66p+0,
+	0x1.0000010000000002048242f2ff67p+0,
+	0x1.0000010000000002048242f2ff66p+0,
+	0x1.0000010000000002048242f2ff67p+0),
   TEST ("1.0000000596046447755",
 	false,
-	0x1p+0f,
-	0x1.000002p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1.000002p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1.000001p+0,
 	0x1.000001p+0,
 	0x1.000001p+0,
 	0x1.0000010000001p+0,
 	false,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.0000010000001p+0L,
-	false,
-	0x1.0000010000000002p+0L,
-	0x1.0000010000000002p+0L,
-	0x1.0000010000000002p+0L,
-	0x1.0000010000000004p+0L,
-	false,
-	0x1.0000010000000002p+0L,
-	0x1.0000010000000002p+0L,
-	0x1.0000010000000002p+0L,
-	0x1.0000010000000004p+0L,
-	false,
-	0x1.0000010000000002048242f2ffp+0L,
-	0x1.0000010000000002048242f2ff8p+0L,
-	0x1.0000010000000002048242f2ffp+0L,
-	0x1.0000010000000002048242f2ff8p+0L,
-	false,
-	0x1.0000010000000002048242f2ff66p+0L,
-	0x1.0000010000000002048242f2ff67p+0L,
-	0x1.0000010000000002048242f2ff66p+0L,
-	0x1.0000010000000002048242f2ff67p+0L),
+	0x1.0000010000000002p+0,
+	0x1.0000010000000002p+0,
+	0x1.0000010000000002p+0,
+	0x1.0000010000000004p+0,
+	false,
+	0x1.0000010000000002p+0,
+	0x1.0000010000000002p+0,
+	0x1.0000010000000002p+0,
+	0x1.0000010000000004p+0,
+	false,
+	0x1.0000010000000002048242f2ffp+0,
+	0x1.0000010000000002048242f2ff8p+0,
+	0x1.0000010000000002048242f2ffp+0,
+	0x1.0000010000000002048242f2ff8p+0,
+	false,
+	0x1.0000010000000002048242f2ff66p+0,
+	0x1.0000010000000002048242f2ff67p+0,
+	0x1.0000010000000002048242f2ff66p+0,
+	0x1.0000010000000002048242f2ff67p+0),
   TEST ("1.000000059604644776",
 	false,
-	0x1p+0f,
-	0x1.000002p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1.000002p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1.000001p+0,
 	0x1.000001p+0,
 	0x1.000001p+0,
 	0x1.0000010000001p+0,
 	false,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.0000010000001p+0L,
-	false,
-	0x1.000001000000000ap+0L,
-	0x1.000001000000000cp+0L,
-	0x1.000001000000000ap+0L,
-	0x1.000001000000000cp+0L,
-	false,
-	0x1.000001000000000ap+0L,
-	0x1.000001000000000cp+0L,
-	0x1.000001000000000ap+0L,
-	0x1.000001000000000cp+0L,
-	false,
-	0x1.000001000000000b3db12bdc21p+0L,
-	0x1.000001000000000b3db12bdc21p+0L,
-	0x1.000001000000000b3db12bdc21p+0L,
-	0x1.000001000000000b3db12bdc218p+0L,
-	false,
-	0x1.000001000000000b3db12bdc213cp+0L,
-	0x1.000001000000000b3db12bdc213dp+0L,
-	0x1.000001000000000b3db12bdc213cp+0L,
-	0x1.000001000000000b3db12bdc213dp+0L),
+	0x1.000001000000000ap+0,
+	0x1.000001000000000cp+0,
+	0x1.000001000000000ap+0,
+	0x1.000001000000000cp+0,
+	false,
+	0x1.000001000000000ap+0,
+	0x1.000001000000000cp+0,
+	0x1.000001000000000ap+0,
+	0x1.000001000000000cp+0,
+	false,
+	0x1.000001000000000b3db12bdc21p+0,
+	0x1.000001000000000b3db12bdc21p+0,
+	0x1.000001000000000b3db12bdc21p+0,
+	0x1.000001000000000b3db12bdc218p+0,
+	false,
+	0x1.000001000000000b3db12bdc213cp+0,
+	0x1.000001000000000b3db12bdc213dp+0,
+	0x1.000001000000000b3db12bdc213cp+0,
+	0x1.000001000000000b3db12bdc213dp+0),
   TEST ("1.000000059604644775",
 	false,
-	0x1p+0f,
-	0x1p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1.000000fffffffp+0,
 	0x1.000001p+0,
 	0x1.000000fffffffp+0,
 	0x1.000001p+0,
 	false,
-	0x1.000000fffffffp+0L,
-	0x1.000001p+0L,
-	0x1.000000fffffffp+0L,
-	0x1.000001p+0L,
-	false,
-	0x1.000000fffffffff8p+0L,
-	0x1.000000fffffffff8p+0L,
-	0x1.000000fffffffff8p+0L,
-	0x1.000000fffffffffap+0L,
-	false,
-	0x1.000000fffffffff8p+0L,
-	0x1.000000fffffffff8p+0L,
-	0x1.000000fffffffff8p+0L,
-	0x1.000000fffffffffap+0L,
-	false,
-	0x1.000000fffffffff8cb535a09dd8p+0L,
-	0x1.000000fffffffff8cb535a09dd8p+0L,
-	0x1.000000fffffffff8cb535a09dd8p+0L,
-	0x1.000000fffffffff8cb535a09dep+0L,
-	false,
-	0x1.000000fffffffff8cb535a09dd9p+0L,
-	0x1.000000fffffffff8cb535a09dd91p+0L,
-	0x1.000000fffffffff8cb535a09dd9p+0L,
-	0x1.000000fffffffff8cb535a09dd91p+0L),
+	0x1.000000fffffffff8p+0,
+	0x1.000000fffffffff8p+0,
+	0x1.000000fffffffff8p+0,
+	0x1.000000fffffffffap+0,
+	false,
+	0x1.000000fffffffff8p+0,
+	0x1.000000fffffffff8p+0,
+	0x1.000000fffffffff8p+0,
+	0x1.000000fffffffffap+0,
+	false,
+	0x1.000000fffffffff8cb535a09dd8p+0,
+	0x1.000000fffffffff8cb535a09dd8p+0,
+	0x1.000000fffffffff8cb535a09dd8p+0,
+	0x1.000000fffffffff8cb535a09dep+0,
+	false,
+	0x1.000000fffffffff8cb535a09dd9p+0,
+	0x1.000000fffffffff8cb535a09dd91p+0,
+	0x1.000000fffffffff8cb535a09dd9p+0,
+	0x1.000000fffffffff8cb535a09dd91p+0),
   TEST ("1.00000005960464478",
 	false,
-	0x1p+0f,
-	0x1.000002p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1.000002p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1.000001p+0,
 	0x1.000001p+0,
 	0x1.000001p+0,
 	0x1.0000010000001p+0,
 	false,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.0000010000001p+0L,
-	false,
-	0x1.0000010000000054p+0L,
-	0x1.0000010000000056p+0L,
-	0x1.0000010000000054p+0L,
-	0x1.0000010000000056p+0L,
-	false,
-	0x1.0000010000000054p+0L,
-	0x1.0000010000000056p+0L,
-	0x1.0000010000000054p+0L,
-	0x1.0000010000000056p+0L,
-	false,
-	0x1.0000010000000055072873252f8p+0L,
-	0x1.0000010000000055072873253p+0L,
-	0x1.0000010000000055072873252f8p+0L,
-	0x1.0000010000000055072873253p+0L,
-	false,
-	0x1.0000010000000055072873252febp+0L,
-	0x1.0000010000000055072873252febp+0L,
-	0x1.0000010000000055072873252febp+0L,
-	0x1.0000010000000055072873252fecp+0L),
+	0x1.0000010000000054p+0,
+	0x1.0000010000000056p+0,
+	0x1.0000010000000054p+0,
+	0x1.0000010000000056p+0,
+	false,
+	0x1.0000010000000054p+0,
+	0x1.0000010000000056p+0,
+	0x1.0000010000000054p+0,
+	0x1.0000010000000056p+0,
+	false,
+	0x1.0000010000000055072873252f8p+0,
+	0x1.0000010000000055072873253p+0,
+	0x1.0000010000000055072873252f8p+0,
+	0x1.0000010000000055072873253p+0,
+	false,
+	0x1.0000010000000055072873252febp+0,
+	0x1.0000010000000055072873252febp+0,
+	0x1.0000010000000055072873252febp+0,
+	0x1.0000010000000055072873252fecp+0),
   TEST ("1.0000000596046448",
 	false,
-	0x1p+0f,
-	0x1.000002p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1.000002p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1.000001p+0,
 	0x1.000001p+0,
 	0x1.000001p+0,
 	0x1.0000010000001p+0,
 	false,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.0000010000001p+0L,
-	false,
-	0x1.00000100000001c4p+0L,
-	0x1.00000100000001c6p+0L,
-	0x1.00000100000001c4p+0L,
-	0x1.00000100000001c6p+0L,
-	false,
-	0x1.00000100000001c4p+0L,
-	0x1.00000100000001c6p+0L,
-	0x1.00000100000001c4p+0L,
-	0x1.00000100000001c6p+0L,
-	false,
-	0x1.00000100000001c5f67cd79279p+0L,
-	0x1.00000100000001c5f67cd792798p+0L,
-	0x1.00000100000001c5f67cd79279p+0L,
-	0x1.00000100000001c5f67cd792798p+0L,
-	false,
-	0x1.00000100000001c5f67cd7927953p+0L,
-	0x1.00000100000001c5f67cd7927954p+0L,
-	0x1.00000100000001c5f67cd7927953p+0L,
-	0x1.00000100000001c5f67cd7927954p+0L),
+	0x1.00000100000001c4p+0,
+	0x1.00000100000001c6p+0,
+	0x1.00000100000001c4p+0,
+	0x1.00000100000001c6p+0,
+	false,
+	0x1.00000100000001c4p+0,
+	0x1.00000100000001c6p+0,
+	0x1.00000100000001c4p+0,
+	0x1.00000100000001c6p+0,
+	false,
+	0x1.00000100000001c5f67cd79279p+0,
+	0x1.00000100000001c5f67cd792798p+0,
+	0x1.00000100000001c5f67cd79279p+0,
+	0x1.00000100000001c5f67cd792798p+0,
+	false,
+	0x1.00000100000001c5f67cd7927953p+0,
+	0x1.00000100000001c5f67cd7927954p+0,
+	0x1.00000100000001c5f67cd7927953p+0,
+	0x1.00000100000001c5f67cd7927954p+0),
   TEST ("1.000000059604645",
 	false,
-	0x1p+0f,
-	0x1.000002p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1.000002p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1.0000010000001p+0,
 	0x1.0000010000001p+0,
 	0x1.0000010000001p+0,
 	0x1.0000010000002p+0,
 	false,
-	0x1.0000010000001p+0L,
-	0x1.0000010000001p+0L,
-	0x1.0000010000001p+0L,
-	0x1.0000010000002p+0L,
-	false,
-	0x1.000001000000102ep+0L,
-	0x1.000001000000103p+0L,
-	0x1.000001000000102ep+0L,
-	0x1.000001000000103p+0L,
-	false,
-	0x1.000001000000102ep+0L,
-	0x1.000001000000103p+0L,
-	0x1.000001000000102ep+0L,
-	0x1.000001000000103p+0L,
-	false,
-	0x1.000001000000102f4fc8c3d757p+0L,
-	0x1.000001000000102f4fc8c3d7578p+0L,
-	0x1.000001000000102f4fc8c3d757p+0L,
-	0x1.000001000000102f4fc8c3d7578p+0L,
-	false,
-	0x1.000001000000102f4fc8c3d75769p+0L,
-	0x1.000001000000102f4fc8c3d75769p+0L,
-	0x1.000001000000102f4fc8c3d75769p+0L,
-	0x1.000001000000102f4fc8c3d7576ap+0L),
+	0x1.000001000000102ep+0,
+	0x1.000001000000103p+0,
+	0x1.000001000000102ep+0,
+	0x1.000001000000103p+0,
+	false,
+	0x1.000001000000102ep+0,
+	0x1.000001000000103p+0,
+	0x1.000001000000102ep+0,
+	0x1.000001000000103p+0,
+	false,
+	0x1.000001000000102f4fc8c3d757p+0,
+	0x1.000001000000102f4fc8c3d7578p+0,
+	0x1.000001000000102f4fc8c3d757p+0,
+	0x1.000001000000102f4fc8c3d7578p+0,
+	false,
+	0x1.000001000000102f4fc8c3d75769p+0,
+	0x1.000001000000102f4fc8c3d75769p+0,
+	0x1.000001000000102f4fc8c3d75769p+0,
+	0x1.000001000000102f4fc8c3d7576ap+0),
   TEST ("1.00000005960464",
 	false,
-	0x1p+0f,
-	0x1p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1.000000fffffeap+0,
 	0x1.000000fffffeap+0,
 	0x1.000000fffffeap+0,
 	0x1.000000fffffebp+0,
 	false,
-	0x1.000000fffffeap+0L,
-	0x1.000000fffffeap+0L,
-	0x1.000000fffffeap+0L,
-	0x1.000000fffffebp+0L,
-	false,
-	0x1.000000fffffea7e4p+0L,
-	0x1.000000fffffea7e6p+0L,
-	0x1.000000fffffea7e4p+0L,
-	0x1.000000fffffea7e6p+0L,
-	false,
-	0x1.000000fffffea7e4p+0L,
-	0x1.000000fffffea7e6p+0L,
-	0x1.000000fffffea7e4p+0L,
-	0x1.000000fffffea7e6p+0L,
-	false,
-	0x1.000000fffffea7e5975eb11da7p+0L,
-	0x1.000000fffffea7e5975eb11da78p+0L,
-	0x1.000000fffffea7e5975eb11da7p+0L,
-	0x1.000000fffffea7e5975eb11da78p+0L,
-	false,
-	0x1.000000fffffea7e5975eb11da74ap+0L,
-	0x1.000000fffffea7e5975eb11da74bp+0L,
-	0x1.000000fffffea7e5975eb11da74ap+0L,
-	0x1.000000fffffea7e5975eb11da74bp+0L),
+	0x1.000000fffffea7e4p+0,
+	0x1.000000fffffea7e6p+0,
+	0x1.000000fffffea7e4p+0,
+	0x1.000000fffffea7e6p+0,
+	false,
+	0x1.000000fffffea7e4p+0,
+	0x1.000000fffffea7e6p+0,
+	0x1.000000fffffea7e4p+0,
+	0x1.000000fffffea7e6p+0,
+	false,
+	0x1.000000fffffea7e5975eb11da7p+0,
+	0x1.000000fffffea7e5975eb11da78p+0,
+	0x1.000000fffffea7e5975eb11da7p+0,
+	0x1.000000fffffea7e5975eb11da78p+0,
+	false,
+	0x1.000000fffffea7e5975eb11da74ap+0,
+	0x1.000000fffffea7e5975eb11da74bp+0,
+	0x1.000000fffffea7e5975eb11da74ap+0,
+	0x1.000000fffffea7e5975eb11da74bp+0),
   TEST ("1.0000000596046",
 	false,
-	0x1p+0f,
-	0x1p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1.000000fffff36p+0,
 	0x1.000000fffff36p+0,
 	0x1.000000fffff36p+0,
 	0x1.000000fffff37p+0,
 	false,
-	0x1.000000fffff36p+0L,
-	0x1.000000fffff36p+0L,
-	0x1.000000fffff36p+0L,
-	0x1.000000fffff37p+0L,
-	false,
-	0x1.000000fffff36596p+0L,
-	0x1.000000fffff36598p+0L,
-	0x1.000000fffff36596p+0L,
-	0x1.000000fffff36598p+0L,
-	false,
-	0x1.000000fffff36596p+0L,
-	0x1.000000fffff36598p+0L,
-	0x1.000000fffff36596p+0L,
-	0x1.000000fffff36598p+0L,
-	false,
-	0x1.000000fffff36597d40e1b5026p+0L,
-	0x1.000000fffff36597d40e1b50268p+0L,
-	0x1.000000fffff36597d40e1b5026p+0L,
-	0x1.000000fffff36597d40e1b50268p+0L,
-	false,
-	0x1.000000fffff36597d40e1b502655p+0L,
-	0x1.000000fffff36597d40e1b502656p+0L,
-	0x1.000000fffff36597d40e1b502655p+0L,
-	0x1.000000fffff36597d40e1b502656p+0L),
+	0x1.000000fffff36596p+0,
+	0x1.000000fffff36598p+0,
+	0x1.000000fffff36596p+0,
+	0x1.000000fffff36598p+0,
+	false,
+	0x1.000000fffff36596p+0,
+	0x1.000000fffff36598p+0,
+	0x1.000000fffff36596p+0,
+	0x1.000000fffff36598p+0,
+	false,
+	0x1.000000fffff36597d40e1b5026p+0,
+	0x1.000000fffff36597d40e1b50268p+0,
+	0x1.000000fffff36597d40e1b5026p+0,
+	0x1.000000fffff36597d40e1b50268p+0,
+	false,
+	0x1.000000fffff36597d40e1b502655p+0,
+	0x1.000000fffff36597d40e1b502656p+0,
+	0x1.000000fffff36597d40e1b502655p+0,
+	0x1.000000fffff36597d40e1b502656p+0),
   TEST ("1.000000059605",
 	false,
-	0x1p+0f,
-	0x1.000002p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1.000002p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1.000001000063fp+0,
 	0x1.000001000064p+0,
 	0x1.000001000063fp+0,
 	0x1.000001000064p+0,
 	false,
-	0x1.000001000063fp+0L,
-	0x1.000001000064p+0L,
-	0x1.000001000063fp+0L,
-	0x1.000001000064p+0L,
-	false,
-	0x1.000001000063fcap+0L,
-	0x1.000001000063fca2p+0L,
-	0x1.000001000063fcap+0L,
-	0x1.000001000063fca2p+0L,
-	false,
-	0x1.000001000063fcap+0L,
-	0x1.000001000063fca2p+0L,
-	0x1.000001000063fcap+0L,
-	0x1.000001000063fca2p+0L,
-	false,
-	0x1.000001000063fca17533f5572f8p+0L,
-	0x1.000001000063fca17533f5573p+0L,
-	0x1.000001000063fca17533f5572f8p+0L,
-	0x1.000001000063fca17533f5573p+0L,
-	false,
-	0x1.000001000063fca17533f5572fe9p+0L,
-	0x1.000001000063fca17533f5572feap+0L,
-	0x1.000001000063fca17533f5572fe9p+0L,
-	0x1.000001000063fca17533f5572feap+0L),
+	0x1.000001000063fcap+0,
+	0x1.000001000063fca2p+0,
+	0x1.000001000063fcap+0,
+	0x1.000001000063fca2p+0,
+	false,
+	0x1.000001000063fcap+0,
+	0x1.000001000063fca2p+0,
+	0x1.000001000063fcap+0,
+	0x1.000001000063fca2p+0,
+	false,
+	0x1.000001000063fca17533f5572f8p+0,
+	0x1.000001000063fca17533f5573p+0,
+	0x1.000001000063fca17533f5572f8p+0,
+	0x1.000001000063fca17533f5573p+0,
+	false,
+	0x1.000001000063fca17533f5572fe9p+0,
+	0x1.000001000063fca17533f5572feap+0,
+	0x1.000001000063fca17533f5572fe9p+0,
+	0x1.000001000063fca17533f5572feap+0),
   TEST ("1.00000005960",
 	false,
-	0x1p+0f,
-	0x1p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1.000000fffae49p+0,
 	0x1.000000fffae4ap+0,
 	0x1.000000fffae49p+0,
 	0x1.000000fffae4ap+0,
 	false,
-	0x1.000000fffae49p+0L,
-	0x1.000000fffae4ap+0L,
-	0x1.000000fffae49p+0L,
-	0x1.000000fffae4ap+0L,
-	false,
-	0x1.000000fffae49ca8p+0L,
-	0x1.000000fffae49caap+0L,
-	0x1.000000fffae49ca8p+0L,
-	0x1.000000fffae49caap+0L,
-	false,
-	0x1.000000fffae49ca8p+0L,
-	0x1.000000fffae49caap+0L,
-	0x1.000000fffae49ca8p+0L,
-	0x1.000000fffae49caap+0L,
-	false,
-	0x1.000000fffae49ca916dacfff38p+0L,
-	0x1.000000fffae49ca916dacfff38p+0L,
-	0x1.000000fffae49ca916dacfff38p+0L,
-	0x1.000000fffae49ca916dacfff388p+0L,
-	false,
-	0x1.000000fffae49ca916dacfff382dp+0L,
-	0x1.000000fffae49ca916dacfff382dp+0L,
-	0x1.000000fffae49ca916dacfff382dp+0L,
-	0x1.000000fffae49ca916dacfff382ep+0L),
+	0x1.000000fffae49ca8p+0,
+	0x1.000000fffae49caap+0,
+	0x1.000000fffae49ca8p+0,
+	0x1.000000fffae49caap+0,
+	false,
+	0x1.000000fffae49ca8p+0,
+	0x1.000000fffae49caap+0,
+	0x1.000000fffae49ca8p+0,
+	0x1.000000fffae49caap+0,
+	false,
+	0x1.000000fffae49ca916dacfff38p+0,
+	0x1.000000fffae49ca916dacfff38p+0,
+	0x1.000000fffae49ca916dacfff38p+0,
+	0x1.000000fffae49ca916dacfff388p+0,
+	false,
+	0x1.000000fffae49ca916dacfff382dp+0,
+	0x1.000000fffae49ca916dacfff382dp+0,
+	0x1.000000fffae49ca916dacfff382dp+0,
+	0x1.000000fffae49ca916dacfff382ep+0),
   TEST ("1.0000000596",
 	false,
-	0x1p+0f,
-	0x1p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1.000000fffae49p+0,
 	0x1.000000fffae4ap+0,
 	0x1.000000fffae49p+0,
 	0x1.000000fffae4ap+0,
 	false,
-	0x1.000000fffae49p+0L,
-	0x1.000000fffae4ap+0L,
-	0x1.000000fffae49p+0L,
-	0x1.000000fffae4ap+0L,
-	false,
-	0x1.000000fffae49ca8p+0L,
-	0x1.000000fffae49caap+0L,
-	0x1.000000fffae49ca8p+0L,
-	0x1.000000fffae49caap+0L,
-	false,
-	0x1.000000fffae49ca8p+0L,
-	0x1.000000fffae49caap+0L,
-	0x1.000000fffae49ca8p+0L,
-	0x1.000000fffae49caap+0L,
-	false,
-	0x1.000000fffae49ca916dacfff38p+0L,
-	0x1.000000fffae49ca916dacfff38p+0L,
-	0x1.000000fffae49ca916dacfff38p+0L,
-	0x1.000000fffae49ca916dacfff388p+0L,
-	false,
-	0x1.000000fffae49ca916dacfff382dp+0L,
-	0x1.000000fffae49ca916dacfff382dp+0L,
-	0x1.000000fffae49ca916dacfff382dp+0L,
-	0x1.000000fffae49ca916dacfff382ep+0L),
+	0x1.000000fffae49ca8p+0,
+	0x1.000000fffae49caap+0,
+	0x1.000000fffae49ca8p+0,
+	0x1.000000fffae49caap+0,
+	false,
+	0x1.000000fffae49ca8p+0,
+	0x1.000000fffae49caap+0,
+	0x1.000000fffae49ca8p+0,
+	0x1.000000fffae49caap+0,
+	false,
+	0x1.000000fffae49ca916dacfff38p+0,
+	0x1.000000fffae49ca916dacfff38p+0,
+	0x1.000000fffae49ca916dacfff38p+0,
+	0x1.000000fffae49ca916dacfff388p+0,
+	false,
+	0x1.000000fffae49ca916dacfff382dp+0,
+	0x1.000000fffae49ca916dacfff382dp+0,
+	0x1.000000fffae49ca916dacfff382dp+0,
+	0x1.000000fffae49ca916dacfff382ep+0),
   TEST ("1.000000060",
 	false,
-	0x1p+0f,
-	0x1.000002p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1.000002p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1.00000101b2b29p+0,
 	0x1.00000101b2b2ap+0,
 	0x1.00000101b2b29p+0,
 	0x1.00000101b2b2ap+0,
 	false,
-	0x1.00000101b2b29p+0L,
-	0x1.00000101b2b2ap+0L,
-	0x1.00000101b2b29p+0L,
-	0x1.00000101b2b2ap+0L,
-	false,
-	0x1.00000101b2b29a46p+0L,
-	0x1.00000101b2b29a46p+0L,
-	0x1.00000101b2b29a46p+0L,
-	0x1.00000101b2b29a48p+0L,
-	false,
-	0x1.00000101b2b29a46p+0L,
-	0x1.00000101b2b29a46p+0L,
-	0x1.00000101b2b29a46p+0L,
-	0x1.00000101b2b29a48p+0L,
-	false,
-	0x1.00000101b2b29a4692b67b7ca3p+0L,
-	0x1.00000101b2b29a4692b67b7ca3p+0L,
-	0x1.00000101b2b29a4692b67b7ca3p+0L,
-	0x1.00000101b2b29a4692b67b7ca38p+0L,
-	false,
-	0x1.00000101b2b29a4692b67b7ca313p+0L,
-	0x1.00000101b2b29a4692b67b7ca314p+0L,
-	0x1.00000101b2b29a4692b67b7ca313p+0L,
-	0x1.00000101b2b29a4692b67b7ca314p+0L),
+	0x1.00000101b2b29a46p+0,
+	0x1.00000101b2b29a46p+0,
+	0x1.00000101b2b29a46p+0,
+	0x1.00000101b2b29a48p+0,
+	false,
+	0x1.00000101b2b29a46p+0,
+	0x1.00000101b2b29a46p+0,
+	0x1.00000101b2b29a46p+0,
+	0x1.00000101b2b29a48p+0,
+	false,
+	0x1.00000101b2b29a4692b67b7ca3p+0,
+	0x1.00000101b2b29a4692b67b7ca3p+0,
+	0x1.00000101b2b29a4692b67b7ca3p+0,
+	0x1.00000101b2b29a4692b67b7ca38p+0,
+	false,
+	0x1.00000101b2b29a4692b67b7ca313p+0,
+	0x1.00000101b2b29a4692b67b7ca314p+0,
+	0x1.00000101b2b29a4692b67b7ca313p+0,
+	0x1.00000101b2b29a4692b67b7ca314p+0),
   TEST ("1.00000006",
 	false,
-	0x1p+0f,
-	0x1.000002p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1.000002p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1.00000101b2b29p+0,
 	0x1.00000101b2b2ap+0,
 	0x1.00000101b2b29p+0,
 	0x1.00000101b2b2ap+0,
 	false,
-	0x1.00000101b2b29p+0L,
-	0x1.00000101b2b2ap+0L,
-	0x1.00000101b2b29p+0L,
-	0x1.00000101b2b2ap+0L,
-	false,
-	0x1.00000101b2b29a46p+0L,
-	0x1.00000101b2b29a46p+0L,
-	0x1.00000101b2b29a46p+0L,
-	0x1.00000101b2b29a48p+0L,
-	false,
-	0x1.00000101b2b29a46p+0L,
-	0x1.00000101b2b29a46p+0L,
-	0x1.00000101b2b29a46p+0L,
-	0x1.00000101b2b29a48p+0L,
-	false,
-	0x1.00000101b2b29a4692b67b7ca3p+0L,
-	0x1.00000101b2b29a4692b67b7ca3p+0L,
-	0x1.00000101b2b29a4692b67b7ca3p+0L,
-	0x1.00000101b2b29a4692b67b7ca38p+0L,
-	false,
-	0x1.00000101b2b29a4692b67b7ca313p+0L,
-	0x1.00000101b2b29a4692b67b7ca314p+0L,
-	0x1.00000101b2b29a4692b67b7ca313p+0L,
-	0x1.00000101b2b29a4692b67b7ca314p+0L),
+	0x1.00000101b2b29a46p+0,
+	0x1.00000101b2b29a46p+0,
+	0x1.00000101b2b29a46p+0,
+	0x1.00000101b2b29a48p+0,
+	false,
+	0x1.00000101b2b29a46p+0,
+	0x1.00000101b2b29a46p+0,
+	0x1.00000101b2b29a46p+0,
+	0x1.00000101b2b29a48p+0,
+	false,
+	0x1.00000101b2b29a4692b67b7ca3p+0,
+	0x1.00000101b2b29a4692b67b7ca3p+0,
+	0x1.00000101b2b29a4692b67b7ca3p+0,
+	0x1.00000101b2b29a4692b67b7ca38p+0,
+	false,
+	0x1.00000101b2b29a4692b67b7ca313p+0,
+	0x1.00000101b2b29a4692b67b7ca314p+0,
+	0x1.00000101b2b29a4692b67b7ca313p+0,
+	0x1.00000101b2b29a4692b67b7ca314p+0),
   TEST ("1.0000001",
 	false,
-	0x1p+0f,
-	0x1.000002p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1.000002p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1.000001ad7f29ap+0,
 	0x1.000001ad7f29bp+0,
 	0x1.000001ad7f29ap+0,
 	0x1.000001ad7f29bp+0,
 	false,
-	0x1.000001ad7f29ap+0L,
-	0x1.000001ad7f29bp+0L,
-	0x1.000001ad7f29ap+0L,
-	0x1.000001ad7f29bp+0L,
-	false,
-	0x1.000001ad7f29abcap+0L,
-	0x1.000001ad7f29abcap+0L,
-	0x1.000001ad7f29abcap+0L,
-	0x1.000001ad7f29abccp+0L,
-	false,
-	0x1.000001ad7f29abcap+0L,
-	0x1.000001ad7f29abcap+0L,
-	0x1.000001ad7f29abcap+0L,
-	0x1.000001ad7f29abccp+0L,
-	false,
-	0x1.000001ad7f29abcaf485787a65p+0L,
-	0x1.000001ad7f29abcaf485787a65p+0L,
-	0x1.000001ad7f29abcaf485787a65p+0L,
-	0x1.000001ad7f29abcaf485787a658p+0L,
-	false,
-	0x1.000001ad7f29abcaf485787a652p+0L,
-	0x1.000001ad7f29abcaf485787a6521p+0L,
-	0x1.000001ad7f29abcaf485787a652p+0L,
-	0x1.000001ad7f29abcaf485787a6521p+0L),
+	0x1.000001ad7f29abcap+0,
+	0x1.000001ad7f29abcap+0,
+	0x1.000001ad7f29abcap+0,
+	0x1.000001ad7f29abccp+0,
+	false,
+	0x1.000001ad7f29abcap+0,
+	0x1.000001ad7f29abcap+0,
+	0x1.000001ad7f29abcap+0,
+	0x1.000001ad7f29abccp+0,
+	false,
+	0x1.000001ad7f29abcaf485787a65p+0,
+	0x1.000001ad7f29abcaf485787a65p+0,
+	0x1.000001ad7f29abcaf485787a65p+0,
+	0x1.000001ad7f29abcaf485787a658p+0,
+	false,
+	0x1.000001ad7f29abcaf485787a652p+0,
+	0x1.000001ad7f29abcaf485787a6521p+0,
+	0x1.000001ad7f29abcaf485787a652p+0,
+	0x1.000001ad7f29abcaf485787a6521p+0),
   TEST ("1.000000",
 	true,
-	0x1p+0f,
-	0x1p+0f,
-	0x1p+0f,
-	0x1p+0f,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	true,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	true,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	true,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
 	true,
 	0x1p+0,
 	0x1p+0,
 	0x1p+0,
 	0x1p+0,
 	true,
-	0x1p+0L,
-	0x1p+0L,
-	0x1p+0L,
-	0x1p+0L,
-	true,
-	0x1p+0L,
-	0x1p+0L,
-	0x1p+0L,
-	0x1p+0L,
-	true,
-	0x1p+0L,
-	0x1p+0L,
-	0x1p+0L,
-	0x1p+0L,
-	true,
-	0x1p+0L,
-	0x1p+0L,
-	0x1p+0L,
-	0x1p+0L,
-	true,
-	0x1p+0L,
-	0x1p+0L,
-	0x1p+0L,
-	0x1p+0L),
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0),
   TEST ("1.00000000000000011113",
 	false,
-	0x1p+0f,
-	0x1p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1p+0,
 	0x1.0000000000001p+0,
 	0x1p+0,
 	0x1.0000000000001p+0,
 	false,
-	0x1p+0L,
-	0x1.0000000000001p+0L,
-	0x1p+0L,
-	0x1.0000000000001p+0L,
-	false,
-	0x1.00000000000008p+0L,
-	0x1.0000000000000802p+0L,
-	0x1.00000000000008p+0L,
-	0x1.0000000000000802p+0L,
-	false,
-	0x1.00000000000008p+0L,
-	0x1.0000000000000802p+0L,
-	0x1.00000000000008p+0L,
-	0x1.0000000000000802p+0L,
-	false,
-	0x1.0000000000000801fc96557232p+0L,
-	0x1.0000000000000801fc96557232p+0L,
-	0x1.0000000000000801fc96557232p+0L,
-	0x1.0000000000000801fc965572328p+0L,
-	false,
-	0x1.0000000000000801fc9655723222p+0L,
-	0x1.0000000000000801fc9655723222p+0L,
-	0x1.0000000000000801fc9655723222p+0L,
-	0x1.0000000000000801fc9655723223p+0L),
+	0x1.00000000000008p+0,
+	0x1.0000000000000802p+0,
+	0x1.00000000000008p+0,
+	0x1.0000000000000802p+0,
+	false,
+	0x1.00000000000008p+0,
+	0x1.0000000000000802p+0,
+	0x1.00000000000008p+0,
+	0x1.0000000000000802p+0,
+	false,
+	0x1.0000000000000801fc96557232p+0,
+	0x1.0000000000000801fc96557232p+0,
+	0x1.0000000000000801fc96557232p+0,
+	0x1.0000000000000801fc965572328p+0,
+	false,
+	0x1.0000000000000801fc9655723222p+0,
+	0x1.0000000000000801fc9655723222p+0,
+	0x1.0000000000000801fc9655723222p+0,
+	0x1.0000000000000801fc9655723223p+0),
   TEST ("1.00000000000000011103",
 	false,
-	0x1p+0f,
-	0x1p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1p+0,
 	0x1.0000000000001p+0,
 	0x1p+0,
 	0x1.0000000000001p+0,
 	false,
-	0x1p+0L,
-	0x1.0000000000001p+0L,
-	0x1p+0L,
-	0x1.0000000000001p+0L,
-	false,
-	0x1.00000000000008p+0L,
-	0x1.00000000000008p+0L,
-	0x1.00000000000008p+0L,
-	0x1.0000000000000802p+0L,
-	false,
-	0x1.00000000000008p+0L,
-	0x1.00000000000008p+0L,
-	0x1.00000000000008p+0L,
-	0x1.0000000000000802p+0L,
-	false,
-	0x1.00000000000008002459c076c48p+0L,
-	0x1.00000000000008002459c076c5p+0L,
-	0x1.00000000000008002459c076c48p+0L,
-	0x1.00000000000008002459c076c5p+0L,
-	false,
-	0x1.00000000000008002459c076c4f7p+0L,
-	0x1.00000000000008002459c076c4f8p+0L,
-	0x1.00000000000008002459c076c4f7p+0L,
-	0x1.00000000000008002459c076c4f8p+0L),
+	0x1.00000000000008p+0,
+	0x1.00000000000008p+0,
+	0x1.00000000000008p+0,
+	0x1.0000000000000802p+0,
+	false,
+	0x1.00000000000008p+0,
+	0x1.00000000000008p+0,
+	0x1.00000000000008p+0,
+	0x1.0000000000000802p+0,
+	false,
+	0x1.00000000000008002459c076c48p+0,
+	0x1.00000000000008002459c076c5p+0,
+	0x1.00000000000008002459c076c48p+0,
+	0x1.00000000000008002459c076c5p+0,
+	false,
+	0x1.00000000000008002459c076c4f7p+0,
+	0x1.00000000000008002459c076c4f8p+0,
+	0x1.00000000000008002459c076c4f7p+0,
+	0x1.00000000000008002459c076c4f8p+0),
   TEST ("1.00000000000000011102",
 	false,
-	0x1p+0f,
-	0x1p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1p+0,
 	0x1p+0,
 	0x1p+0,
 	0x1.0000000000001p+0,
 	false,
-	0x1p+0L,
-	0x1p+0L,
-	0x1p+0L,
-	0x1.0000000000001p+0L,
-	false,
-	0x1.00000000000007fep+0L,
-	0x1.00000000000008p+0L,
-	0x1.00000000000007fep+0L,
-	0x1.00000000000008p+0L,
-	false,
-	0x1.00000000000007fep+0L,
-	0x1.00000000000008p+0L,
-	0x1.00000000000007fep+0L,
-	0x1.00000000000008p+0L,
-	false,
-	0x1.00000000000007fff5207e5dap+0L,
-	0x1.00000000000007fff5207e5da08p+0L,
-	0x1.00000000000007fff5207e5dap+0L,
-	0x1.00000000000007fff5207e5da08p+0L,
-	false,
-	0x1.00000000000007fff5207e5da073p+0L,
-	0x1.00000000000007fff5207e5da073p+0L,
-	0x1.00000000000007fff5207e5da073p+0L,
-	0x1.00000000000007fff5207e5da074p+0L),
+	0x1.00000000000007fep+0,
+	0x1.00000000000008p+0,
+	0x1.00000000000007fep+0,
+	0x1.00000000000008p+0,
+	false,
+	0x1.00000000000007fep+0,
+	0x1.00000000000008p+0,
+	0x1.00000000000007fep+0,
+	0x1.00000000000008p+0,
+	false,
+	0x1.00000000000007fff5207e5dap+0,
+	0x1.00000000000007fff5207e5da08p+0,
+	0x1.00000000000007fff5207e5dap+0,
+	0x1.00000000000007fff5207e5da08p+0,
+	false,
+	0x1.00000000000007fff5207e5da073p+0,
+	0x1.00000000000007fff5207e5da073p+0,
+	0x1.00000000000007fff5207e5da073p+0,
+	0x1.00000000000007fff5207e5da074p+0),
   TEST ("1.00000000000000011101",
 	false,
-	0x1p+0f,
-	0x1p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1p+0,
 	0x1p+0,
 	0x1p+0,
 	0x1.0000000000001p+0,
 	false,
-	0x1p+0L,
-	0x1p+0L,
-	0x1p+0L,
-	0x1.0000000000001p+0L,
-	false,
-	0x1.00000000000007fep+0L,
-	0x1.00000000000008p+0L,
-	0x1.00000000000007fep+0L,
-	0x1.00000000000008p+0L,
-	false,
-	0x1.00000000000007fep+0L,
-	0x1.00000000000008p+0L,
-	0x1.00000000000007fep+0L,
-	0x1.00000000000008p+0L,
-	false,
-	0x1.00000000000007ffc5e73c447b8p+0L,
-	0x1.00000000000007ffc5e73c447cp+0L,
-	0x1.00000000000007ffc5e73c447b8p+0L,
-	0x1.00000000000007ffc5e73c447cp+0L,
-	false,
-	0x1.00000000000007ffc5e73c447befp+0L,
-	0x1.00000000000007ffc5e73c447befp+0L,
-	0x1.00000000000007ffc5e73c447befp+0L,
-	0x1.00000000000007ffc5e73c447bfp+0L),
+	0x1.00000000000007fep+0,
+	0x1.00000000000008p+0,
+	0x1.00000000000007fep+0,
+	0x1.00000000000008p+0,
+	false,
+	0x1.00000000000007fep+0,
+	0x1.00000000000008p+0,
+	0x1.00000000000007fep+0,
+	0x1.00000000000008p+0,
+	false,
+	0x1.00000000000007ffc5e73c447b8p+0,
+	0x1.00000000000007ffc5e73c447cp+0,
+	0x1.00000000000007ffc5e73c447b8p+0,
+	0x1.00000000000007ffc5e73c447cp+0,
+	false,
+	0x1.00000000000007ffc5e73c447befp+0,
+	0x1.00000000000007ffc5e73c447befp+0,
+	0x1.00000000000007ffc5e73c447befp+0,
+	0x1.00000000000007ffc5e73c447bfp+0),
   TEST ("1.0000000000000001111",
 	false,
-	0x1p+0f,
-	0x1p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1p+0,
 	0x1.0000000000001p+0,
 	0x1p+0,
 	0x1.0000000000001p+0,
 	false,
-	0x1p+0L,
-	0x1.0000000000001p+0L,
-	0x1p+0L,
-	0x1.0000000000001p+0L,
-	false,
-	0x1.00000000000008p+0L,
-	0x1.0000000000000802p+0L,
-	0x1.00000000000008p+0L,
-	0x1.0000000000000802p+0L,
-	false,
-	0x1.00000000000008p+0L,
-	0x1.0000000000000802p+0L,
-	0x1.00000000000008p+0L,
-	0x1.0000000000000802p+0L,
-	false,
-	0x1.00000000000008016eea8f26c48p+0L,
-	0x1.00000000000008016eea8f26c48p+0L,
-	0x1.00000000000008016eea8f26c48p+0L,
-	0x1.00000000000008016eea8f26c5p+0L,
-	false,
-	0x1.00000000000008016eea8f26c495p+0L,
-	0x1.00000000000008016eea8f26c496p+0L,
-	0x1.00000000000008016eea8f26c495p+0L,
-	0x1.00000000000008016eea8f26c496p+0L),
+	0x1.00000000000008p+0,
+	0x1.0000000000000802p+0,
+	0x1.00000000000008p+0,
+	0x1.0000000000000802p+0,
+	false,
+	0x1.00000000000008p+0,
+	0x1.0000000000000802p+0,
+	0x1.00000000000008p+0,
+	0x1.0000000000000802p+0,
+	false,
+	0x1.00000000000008016eea8f26c48p+0,
+	0x1.00000000000008016eea8f26c48p+0,
+	0x1.00000000000008016eea8f26c48p+0,
+	0x1.00000000000008016eea8f26c5p+0,
+	false,
+	0x1.00000000000008016eea8f26c495p+0,
+	0x1.00000000000008016eea8f26c496p+0,
+	0x1.00000000000008016eea8f26c495p+0,
+	0x1.00000000000008016eea8f26c496p+0),
   TEST ("1.000000000000000111",
 	false,
-	0x1p+0f,
-	0x1p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1p+0,
 	0x1p+0,
 	0x1p+0,
 	0x1.0000000000001p+0,
 	false,
-	0x1p+0L,
-	0x1p+0L,
-	0x1p+0L,
-	0x1.0000000000001p+0L,
-	false,
-	0x1.00000000000007fep+0L,
-	0x1.00000000000008p+0L,
-	0x1.00000000000007fep+0L,
-	0x1.00000000000008p+0L,
-	false,
-	0x1.00000000000007fep+0L,
-	0x1.00000000000008p+0L,
-	0x1.00000000000007fep+0L,
-	0x1.00000000000008p+0L,
-	false,
-	0x1.00000000000007ff96adfa2b57p+0L,
-	0x1.00000000000007ff96adfa2b578p+0L,
-	0x1.00000000000007ff96adfa2b57p+0L,
-	0x1.00000000000007ff96adfa2b578p+0L,
-	false,
-	0x1.00000000000007ff96adfa2b576ap+0L,
-	0x1.00000000000007ff96adfa2b576bp+0L,
-	0x1.00000000000007ff96adfa2b576ap+0L,
-	0x1.00000000000007ff96adfa2b576bp+0L),
+	0x1.00000000000007fep+0,
+	0x1.00000000000008p+0,
+	0x1.00000000000007fep+0,
+	0x1.00000000000008p+0,
+	false,
+	0x1.00000000000007fep+0,
+	0x1.00000000000008p+0,
+	0x1.00000000000007fep+0,
+	0x1.00000000000008p+0,
+	false,
+	0x1.00000000000007ff96adfa2b57p+0,
+	0x1.00000000000007ff96adfa2b578p+0,
+	0x1.00000000000007ff96adfa2b57p+0,
+	0x1.00000000000007ff96adfa2b578p+0,
+	false,
+	0x1.00000000000007ff96adfa2b576ap+0,
+	0x1.00000000000007ff96adfa2b576bp+0,
+	0x1.00000000000007ff96adfa2b576ap+0,
+	0x1.00000000000007ff96adfa2b576bp+0),
   TEST ("1.00000000000000011",
 	false,
-	0x1p+0f,
-	0x1p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1p+0,
 	0x1p+0,
 	0x1p+0,
 	0x1.0000000000001p+0,
 	false,
-	0x1p+0L,
-	0x1p+0L,
-	0x1p+0L,
-	0x1.0000000000001p+0L,
-	false,
-	0x1.00000000000007ecp+0L,
-	0x1.00000000000007eep+0L,
-	0x1.00000000000007ecp+0L,
-	0x1.00000000000007eep+0L,
-	false,
-	0x1.00000000000007ecp+0L,
-	0x1.00000000000007eep+0L,
-	0x1.00000000000007ecp+0L,
-	0x1.00000000000007eep+0L,
-	false,
-	0x1.00000000000007ed24502859138p+0L,
-	0x1.00000000000007ed24502859138p+0L,
-	0x1.00000000000007ed24502859138p+0L,
-	0x1.00000000000007ed2450285914p+0L,
-	false,
-	0x1.00000000000007ed2450285913bfp+0L,
-	0x1.00000000000007ed2450285913bfp+0L,
-	0x1.00000000000007ed2450285913bfp+0L,
-	0x1.00000000000007ed2450285913cp+0L),
+	0x1.00000000000007ecp+0,
+	0x1.00000000000007eep+0,
+	0x1.00000000000007ecp+0,
+	0x1.00000000000007eep+0,
+	false,
+	0x1.00000000000007ecp+0,
+	0x1.00000000000007eep+0,
+	0x1.00000000000007ecp+0,
+	0x1.00000000000007eep+0,
+	false,
+	0x1.00000000000007ed24502859138p+0,
+	0x1.00000000000007ed24502859138p+0,
+	0x1.00000000000007ed24502859138p+0,
+	0x1.00000000000007ed2450285914p+0,
+	false,
+	0x1.00000000000007ed2450285913bfp+0,
+	0x1.00000000000007ed2450285913bfp+0,
+	0x1.00000000000007ed2450285913bfp+0,
+	0x1.00000000000007ed2450285913cp+0),
   TEST ("1.0000000000000001",
 	false,
-	0x1p+0f,
-	0x1p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1p+0,
 	0x1p+0,
 	0x1p+0,
 	0x1.0000000000001p+0,
 	false,
-	0x1p+0L,
-	0x1p+0L,
-	0x1p+0L,
-	0x1.0000000000001p+0L,
-	false,
-	0x1.0000000000000734p+0L,
-	0x1.0000000000000734p+0L,
-	0x1.0000000000000734p+0L,
-	0x1.0000000000000736p+0L,
-	false,
-	0x1.0000000000000734p+0L,
-	0x1.0000000000000734p+0L,
-	0x1.0000000000000734p+0L,
-	0x1.0000000000000736p+0L,
-	false,
-	0x1.0000000000000734aca5f6226fp+0L,
-	0x1.0000000000000734aca5f6226fp+0L,
-	0x1.0000000000000734aca5f6226fp+0L,
-	0x1.0000000000000734aca5f6226f8p+0L,
-	false,
-	0x1.0000000000000734aca5f6226f0ap+0L,
-	0x1.0000000000000734aca5f6226f0bp+0L,
-	0x1.0000000000000734aca5f6226f0ap+0L,
-	0x1.0000000000000734aca5f6226f0bp+0L),
+	0x1.0000000000000734p+0,
+	0x1.0000000000000734p+0,
+	0x1.0000000000000734p+0,
+	0x1.0000000000000736p+0,
+	false,
+	0x1.0000000000000734p+0,
+	0x1.0000000000000734p+0,
+	0x1.0000000000000734p+0,
+	0x1.0000000000000736p+0,
+	false,
+	0x1.0000000000000734aca5f6226fp+0,
+	0x1.0000000000000734aca5f6226fp+0,
+	0x1.0000000000000734aca5f6226fp+0,
+	0x1.0000000000000734aca5f6226f8p+0,
+	false,
+	0x1.0000000000000734aca5f6226f0ap+0,
+	0x1.0000000000000734aca5f6226f0bp+0,
+	0x1.0000000000000734aca5f6226f0ap+0,
+	0x1.0000000000000734aca5f6226f0bp+0),
   TEST ("3929201589819414e-25",
 	false,
-	0x1.b0053p-32f,
-	0x1.b00532p-32f,
-	0x1.b0053p-32f,
-	0x1.b00532p-32f,
+	0x1.b0053p-32,
+	0x1.b00532p-32,
+	0x1.b0053p-32,
+	0x1.b00532p-32,
 	false,
 	0x1.b005314e2421ep-32,
 	0x1.b005314e2421ep-32,
 	0x1.b005314e2421ep-32,
 	0x1.b005314e2421fp-32,
 	false,
-	0x1.b005314e2421ep-32L,
-	0x1.b005314e2421ep-32L,
-	0x1.b005314e2421ep-32L,
-	0x1.b005314e2421fp-32L,
-	false,
-	0x1.b005314e2421e7fep-32L,
-	0x1.b005314e2421e8p-32L,
-	0x1.b005314e2421e7fep-32L,
-	0x1.b005314e2421e8p-32L,
-	false,
-	0x1.b005314e2421e7fep-32L,
-	0x1.b005314e2421e8p-32L,
-	0x1.b005314e2421e7fep-32L,
-	0x1.b005314e2421e8p-32L,
-	false,
-	0x1.b005314e2421e7ffb472840c5ap-32L,
-	0x1.b005314e2421e7ffb472840c5a8p-32L,
-	0x1.b005314e2421e7ffb472840c5ap-32L,
-	0x1.b005314e2421e7ffb472840c5a8p-32L,
-	false,
-	0x1.b005314e2421e7ffb472840c5a6ep-32L,
-	0x1.b005314e2421e7ffb472840c5a6fp-32L,
-	0x1.b005314e2421e7ffb472840c5a6ep-32L,
-	0x1.b005314e2421e7ffb472840c5a6fp-32L),
+	0x1.b005314e2421e7fep-32,
+	0x1.b005314e2421e8p-32,
+	0x1.b005314e2421e7fep-32,
+	0x1.b005314e2421e8p-32,
+	false,
+	0x1.b005314e2421e7fep-32,
+	0x1.b005314e2421e8p-32,
+	0x1.b005314e2421e7fep-32,
+	0x1.b005314e2421e8p-32,
+	false,
+	0x1.b005314e2421e7ffb472840c5ap-32,
+	0x1.b005314e2421e7ffb472840c5a8p-32,
+	0x1.b005314e2421e7ffb472840c5ap-32,
+	0x1.b005314e2421e7ffb472840c5a8p-32,
+	false,
+	0x1.b005314e2421e7ffb472840c5a6ep-32,
+	0x1.b005314e2421e7ffb472840c5a6fp-32,
+	0x1.b005314e2421e7ffb472840c5a6ep-32,
+	0x1.b005314e2421e7ffb472840c5a6fp-32),
   TEST ("0.0000000000000000000000000000000000000000000021019476964872"
 	"256063855943749348741969203929128147736576356024258346866240"
 	"28790902229957282543182373046875",
 	true,
-	0x8p-152f,
-	0x1p-148f,
-	0x8p-152f,
-	0x1p-148f,
+	0x8p-152,
+	0x1p-148,
+	0x8p-152,
+	0x1p-148,
+	true,
+	0xcp-152,
+	0xcp-152,
+	0xcp-152,
+	0xcp-152,
+	true,
+	0xcp-152,
+	0xcp-152,
+	0xcp-152,
+	0xcp-152,
+	true,
+	0xcp-152,
+	0xcp-152,
+	0xcp-152,
+	0xcp-152,
 	true,
 	0xcp-152,
 	0xcp-152,
 	0xcp-152,
 	0xcp-152,
 	true,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	true,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	true,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	true,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	true,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L),
+	0xcp-152,
+	0xcp-152,
+	0xcp-152,
+	0xcp-152),
   TEST ("1.00000005960464477539062499",
 	false,
-	0x1p+0f,
-	0x1p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1.000000fffffffp+0,
 	0x1.000001p+0,
 	0x1.000000fffffffp+0,
 	0x1.000001p+0,
 	false,
-	0x1.000000fffffffp+0L,
-	0x1.000001p+0L,
-	0x1.000000fffffffp+0L,
-	0x1.000001p+0L,
-	false,
-	0x1.000000fffffffffep+0L,
-	0x1.000001p+0L,
-	0x1.000000fffffffffep+0L,
-	0x1.000001p+0L,
-	false,
-	0x1.000000fffffffffep+0L,
-	0x1.000001p+0L,
-	0x1.000000fffffffffep+0L,
-	0x1.000001p+0L,
-	false,
-	0x1.000000fffffffffffffffce7b78p+0L,
-	0x1.000000fffffffffffffffce7b8p+0L,
-	0x1.000000fffffffffffffffce7b78p+0L,
-	0x1.000000fffffffffffffffce7b8p+0L,
-	false,
-	0x1.000000fffffffffffffffce7b7e7p+0L,
-	0x1.000000fffffffffffffffce7b7e7p+0L,
-	0x1.000000fffffffffffffffce7b7e7p+0L,
-	0x1.000000fffffffffffffffce7b7e8p+0L),
+	0x1.000000fffffffffep+0,
+	0x1.000001p+0,
+	0x1.000000fffffffffep+0,
+	0x1.000001p+0,
+	false,
+	0x1.000000fffffffffep+0,
+	0x1.000001p+0,
+	0x1.000000fffffffffep+0,
+	0x1.000001p+0,
+	false,
+	0x1.000000fffffffffffffffce7b78p+0,
+	0x1.000000fffffffffffffffce7b8p+0,
+	0x1.000000fffffffffffffffce7b78p+0,
+	0x1.000000fffffffffffffffce7b8p+0,
+	false,
+	0x1.000000fffffffffffffffce7b7e7p+0,
+	0x1.000000fffffffffffffffce7b7e7p+0,
+	0x1.000000fffffffffffffffce7b7e7p+0,
+	0x1.000000fffffffffffffffce7b7e8p+0),
   TEST ("1.000000059604644775390625",
 	false,
-	0x1p+0f,
-	0x1p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1p+0,
+	0x1p+0,
+	0x1.000002p+0,
+	true,
+	0x1.000001p+0,
+	0x1.000001p+0,
+	0x1.000001p+0,
+	0x1.000001p+0,
+	true,
+	0x1.000001p+0,
+	0x1.000001p+0,
+	0x1.000001p+0,
+	0x1.000001p+0,
+	true,
+	0x1.000001p+0,
+	0x1.000001p+0,
+	0x1.000001p+0,
+	0x1.000001p+0,
 	true,
 	0x1.000001p+0,
 	0x1.000001p+0,
 	0x1.000001p+0,
 	0x1.000001p+0,
 	true,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	true,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	true,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	true,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	true,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.000001p+0L),
+	0x1.000001p+0,
+	0x1.000001p+0,
+	0x1.000001p+0,
+	0x1.000001p+0),
   TEST ("1.00000005960464477539062501",
 	false,
-	0x1p+0f,
-	0x1.000002p+0f,
-	0x1p+0f,
-	0x1.000002p+0f,
+	0x1p+0,
+	0x1.000002p+0,
+	0x1p+0,
+	0x1.000002p+0,
 	false,
 	0x1.000001p+0,
 	0x1.000001p+0,
 	0x1.000001p+0,
 	0x1.0000010000001p+0,
 	false,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.0000010000001p+0L,
-	false,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.0000010000000002p+0L,
-	false,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.000001p+0L,
-	0x1.0000010000000002p+0L,
-	false,
-	0x1.00000100000000000000031848p+0L,
-	0x1.00000100000000000000031848p+0L,
-	0x1.00000100000000000000031848p+0L,
-	0x1.000001000000000000000318488p+0L,
-	false,
-	0x1.0000010000000000000003184818p+0L,
-	0x1.0000010000000000000003184819p+0L,
-	0x1.0000010000000000000003184818p+0L,
-	0x1.0000010000000000000003184819p+0L),
+	0x1.000001p+0,
+	0x1.000001p+0,
+	0x1.000001p+0,
+	0x1.0000010000000002p+0,
+	false,
+	0x1.000001p+0,
+	0x1.000001p+0,
+	0x1.000001p+0,
+	0x1.0000010000000002p+0,
+	false,
+	0x1.00000100000000000000031848p+0,
+	0x1.00000100000000000000031848p+0,
+	0x1.00000100000000000000031848p+0,
+	0x1.000001000000000000000318488p+0,
+	false,
+	0x1.0000010000000000000003184818p+0,
+	0x1.0000010000000000000003184819p+0,
+	0x1.0000010000000000000003184818p+0,
+	0x1.0000010000000000000003184819p+0),
   TEST ("1.00000011920928955078125",
 	true,
-	0x1.000002p+0f,
-	0x1.000002p+0f,
-	0x1.000002p+0f,
-	0x1.000002p+0f,
+	0x1.000002p+0,
+	0x1.000002p+0,
+	0x1.000002p+0,
+	0x1.000002p+0,
+	true,
+	0x1.000002p+0,
+	0x1.000002p+0,
+	0x1.000002p+0,
+	0x1.000002p+0,
+	true,
+	0x1.000002p+0,
+	0x1.000002p+0,
+	0x1.000002p+0,
+	0x1.000002p+0,
+	true,
+	0x1.000002p+0,
+	0x1.000002p+0,
+	0x1.000002p+0,
+	0x1.000002p+0,
 	true,
 	0x1.000002p+0,
 	0x1.000002p+0,
 	0x1.000002p+0,
 	0x1.000002p+0,
 	true,
-	0x1.000002p+0L,
-	0x1.000002p+0L,
-	0x1.000002p+0L,
-	0x1.000002p+0L,
-	true,
-	0x1.000002p+0L,
-	0x1.000002p+0L,
-	0x1.000002p+0L,
-	0x1.000002p+0L,
-	true,
-	0x1.000002p+0L,
-	0x1.000002p+0L,
-	0x1.000002p+0L,
-	0x1.000002p+0L,
-	true,
-	0x1.000002p+0L,
-	0x1.000002p+0L,
-	0x1.000002p+0L,
-	0x1.000002p+0L,
-	true,
-	0x1.000002p+0L,
-	0x1.000002p+0L,
-	0x1.000002p+0L,
-	0x1.000002p+0L),
+	0x1.000002p+0,
+	0x1.000002p+0,
+	0x1.000002p+0,
+	0x1.000002p+0),
   TEST ("1.00000017881393432617187499",
 	false,
-	0x1.000002p+0f,
-	0x1.000002p+0f,
-	0x1.000002p+0f,
-	0x1.000004p+0f,
+	0x1.000002p+0,
+	0x1.000002p+0,
+	0x1.000002p+0,
+	0x1.000004p+0,
 	false,
 	0x1.000002fffffffp+0,
 	0x1.000003p+0,
 	0x1.000002fffffffp+0,
 	0x1.000003p+0,
 	false,
-	0x1.000002fffffffp+0L,
-	0x1.000003p+0L,
-	0x1.000002fffffffp+0L,
-	0x1.000003p+0L,
-	false,
-	0x1.000002fffffffffep+0L,
-	0x1.000003p+0L,
-	0x1.000002fffffffffep+0L,
-	0x1.000003p+0L,
-	false,
-	0x1.000002fffffffffep+0L,
-	0x1.000003p+0L,
-	0x1.000002fffffffffep+0L,
-	0x1.000003p+0L,
-	false,
-	0x1.000002fffffffffffffffce7b78p+0L,
-	0x1.000002fffffffffffffffce7b8p+0L,
-	0x1.000002fffffffffffffffce7b78p+0L,
-	0x1.000002fffffffffffffffce7b8p+0L,
-	false,
-	0x1.000002fffffffffffffffce7b7e7p+0L,
-	0x1.000002fffffffffffffffce7b7e7p+0L,
-	0x1.000002fffffffffffffffce7b7e7p+0L,
-	0x1.000002fffffffffffffffce7b7e8p+0L),
+	0x1.000002fffffffffep+0,
+	0x1.000003p+0,
+	0x1.000002fffffffffep+0,
+	0x1.000003p+0,
+	false,
+	0x1.000002fffffffffep+0,
+	0x1.000003p+0,
+	0x1.000002fffffffffep+0,
+	0x1.000003p+0,
+	false,
+	0x1.000002fffffffffffffffce7b78p+0,
+	0x1.000002fffffffffffffffce7b8p+0,
+	0x1.000002fffffffffffffffce7b78p+0,
+	0x1.000002fffffffffffffffce7b8p+0,
+	false,
+	0x1.000002fffffffffffffffce7b7e7p+0,
+	0x1.000002fffffffffffffffce7b7e7p+0,
+	0x1.000002fffffffffffffffce7b7e7p+0,
+	0x1.000002fffffffffffffffce7b7e8p+0),
   TEST ("1.000000178813934326171875",
 	false,
-	0x1.000002p+0f,
-	0x1.000004p+0f,
-	0x1.000002p+0f,
-	0x1.000004p+0f,
+	0x1.000002p+0,
+	0x1.000004p+0,
+	0x1.000002p+0,
+	0x1.000004p+0,
+	true,
+	0x1.000003p+0,
+	0x1.000003p+0,
+	0x1.000003p+0,
+	0x1.000003p+0,
 	true,
 	0x1.000003p+0,
 	0x1.000003p+0,
 	0x1.000003p+0,
 	0x1.000003p+0,
 	true,
-	0x1.000003p+0L,
-	0x1.000003p+0L,
-	0x1.000003p+0L,
-	0x1.000003p+0L,
-	true,
-	0x1.000003p+0L,
-	0x1.000003p+0L,
-	0x1.000003p+0L,
-	0x1.000003p+0L,
-	true,
-	0x1.000003p+0L,
-	0x1.000003p+0L,
-	0x1.000003p+0L,
-	0x1.000003p+0L,
-	true,
-	0x1.000003p+0L,
-	0x1.000003p+0L,
-	0x1.000003p+0L,
-	0x1.000003p+0L,
-	true,
-	0x1.000003p+0L,
-	0x1.000003p+0L,
-	0x1.000003p+0L,
-	0x1.000003p+0L),
+	0x1.000003p+0,
+	0x1.000003p+0,
+	0x1.000003p+0,
+	0x1.000003p+0,
+	true,
+	0x1.000003p+0,
+	0x1.000003p+0,
+	0x1.000003p+0,
+	0x1.000003p+0,
+	true,
+	0x1.000003p+0,
+	0x1.000003p+0,
+	0x1.000003p+0,
+	0x1.000003p+0),
   TEST ("1.00000017881393432617187501",
 	false,
-	0x1.000002p+0f,
-	0x1.000004p+0f,
-	0x1.000002p+0f,
-	0x1.000004p+0f,
+	0x1.000002p+0,
+	0x1.000004p+0,
+	0x1.000002p+0,
+	0x1.000004p+0,
 	false,
 	0x1.000003p+0,
 	0x1.000003p+0,
 	0x1.000003p+0,
 	0x1.0000030000001p+0,
 	false,
-	0x1.000003p+0L,
-	0x1.000003p+0L,
-	0x1.000003p+0L,
-	0x1.0000030000001p+0L,
-	false,
-	0x1.000003p+0L,
-	0x1.000003p+0L,
-	0x1.000003p+0L,
-	0x1.0000030000000002p+0L,
-	false,
-	0x1.000003p+0L,
-	0x1.000003p+0L,
-	0x1.000003p+0L,
-	0x1.0000030000000002p+0L,
-	false,
-	0x1.00000300000000000000031848p+0L,
-	0x1.00000300000000000000031848p+0L,
-	0x1.00000300000000000000031848p+0L,
-	0x1.000003000000000000000318488p+0L,
-	false,
-	0x1.0000030000000000000003184818p+0L,
-	0x1.0000030000000000000003184819p+0L,
-	0x1.0000030000000000000003184818p+0L,
-	0x1.0000030000000000000003184819p+0L),
+	0x1.000003p+0,
+	0x1.000003p+0,
+	0x1.000003p+0,
+	0x1.0000030000000002p+0,
+	false,
+	0x1.000003p+0,
+	0x1.000003p+0,
+	0x1.000003p+0,
+	0x1.0000030000000002p+0,
+	false,
+	0x1.00000300000000000000031848p+0,
+	0x1.00000300000000000000031848p+0,
+	0x1.00000300000000000000031848p+0,
+	0x1.000003000000000000000318488p+0,
+	false,
+	0x1.0000030000000000000003184818p+0,
+	0x1.0000030000000000000003184819p+0,
+	0x1.0000030000000000000003184818p+0,
+	0x1.0000030000000000000003184819p+0),
   TEST ("1.0000002384185791015625",
 	true,
-	0x1.000004p+0f,
-	0x1.000004p+0f,
-	0x1.000004p+0f,
-	0x1.000004p+0f,
+	0x1.000004p+0,
+	0x1.000004p+0,
+	0x1.000004p+0,
+	0x1.000004p+0,
+	true,
+	0x1.000004p+0,
+	0x1.000004p+0,
+	0x1.000004p+0,
+	0x1.000004p+0,
+	true,
+	0x1.000004p+0,
+	0x1.000004p+0,
+	0x1.000004p+0,
+	0x1.000004p+0,
+	true,
+	0x1.000004p+0,
+	0x1.000004p+0,
+	0x1.000004p+0,
+	0x1.000004p+0,
 	true,
 	0x1.000004p+0,
 	0x1.000004p+0,
 	0x1.000004p+0,
 	0x1.000004p+0,
 	true,
-	0x1.000004p+0L,
-	0x1.000004p+0L,
-	0x1.000004p+0L,
-	0x1.000004p+0L,
-	true,
-	0x1.000004p+0L,
-	0x1.000004p+0L,
-	0x1.000004p+0L,
-	0x1.000004p+0L,
-	true,
-	0x1.000004p+0L,
-	0x1.000004p+0L,
-	0x1.000004p+0L,
-	0x1.000004p+0L,
-	true,
-	0x1.000004p+0L,
-	0x1.000004p+0L,
-	0x1.000004p+0L,
-	0x1.000004p+0L,
-	true,
-	0x1.000004p+0L,
-	0x1.000004p+0L,
-	0x1.000004p+0L,
-	0x1.000004p+0L),
+	0x1.000004p+0,
+	0x1.000004p+0,
+	0x1.000004p+0,
+	0x1.000004p+0),
   TEST ("1.08420217248550443400745280086994171142578125e-19",
 	true,
-	0x2p-64f,
-	0x2p-64f,
-	0x2p-64f,
-	0x2p-64f,
+	0x2p-64,
+	0x2p-64,
+	0x2p-64,
+	0x2p-64,
+	true,
+	0x2p-64,
+	0x2p-64,
+	0x2p-64,
+	0x2p-64,
+	true,
+	0x2p-64,
+	0x2p-64,
+	0x2p-64,
+	0x2p-64,
+	true,
+	0x2p-64,
+	0x2p-64,
+	0x2p-64,
+	0x2p-64,
 	true,
 	0x2p-64,
 	0x2p-64,
 	0x2p-64,
 	0x2p-64,
 	true,
-	0x2p-64L,
-	0x2p-64L,
-	0x2p-64L,
-	0x2p-64L,
-	true,
-	0x2p-64L,
-	0x2p-64L,
-	0x2p-64L,
-	0x2p-64L,
-	true,
-	0x2p-64L,
-	0x2p-64L,
-	0x2p-64L,
-	0x2p-64L,
-	true,
-	0x2p-64L,
-	0x2p-64L,
-	0x2p-64L,
-	0x2p-64L,
-	true,
-	0x2p-64L,
-	0x2p-64L,
-	0x2p-64L,
-	0x2p-64L),
+	0x2p-64,
+	0x2p-64,
+	0x2p-64,
+	0x2p-64),
   TEST ("1.0842022371089897897127399001987457793916291848290711641311"
 	"645507812499e-19",
 	false,
-	0x2p-64f,
-	0x2p-64f,
-	0x2p-64f,
-	0x2.000004p-64f,
+	0x2p-64,
+	0x2p-64,
+	0x2p-64,
+	0x2.000004p-64,
 	false,
 	0x2.000001ffffffep-64,
 	0x2.000002p-64,
 	0x2.000001ffffffep-64,
 	0x2.000002p-64,
 	false,
-	0x2.000001ffffffep-64L,
-	0x2.000002p-64L,
-	0x2.000001ffffffep-64L,
-	0x2.000002p-64L,
-	false,
-	0x2.000001fffffffffcp-64L,
-	0x2.000002p-64L,
-	0x2.000001fffffffffcp-64L,
-	0x2.000002p-64L,
-	false,
-	0x2.000001fffffffffcp-64L,
-	0x2.000002p-64L,
-	0x2.000001fffffffffcp-64L,
-	0x2.000002p-64L,
-	false,
-	0x2.000001ffffffffffffffffffffp-64L,
-	0x2.000002p-64L,
-	0x2.000001ffffffffffffffffffffp-64L,
-	0x2.000002p-64L,
-	false,
-	0x2.000001fffffffffffffffffffffep-64L,
-	0x2.000002p-64L,
-	0x2.000001fffffffffffffffffffffep-64L,
-	0x2.000002p-64L),
+	0x2.000001fffffffffcp-64,
+	0x2.000002p-64,
+	0x2.000001fffffffffcp-64,
+	0x2.000002p-64,
+	false,
+	0x2.000001fffffffffcp-64,
+	0x2.000002p-64,
+	0x2.000001fffffffffcp-64,
+	0x2.000002p-64,
+	false,
+	0x2.000001ffffffffffffffffffffp-64,
+	0x2.000002p-64,
+	0x2.000001ffffffffffffffffffffp-64,
+	0x2.000002p-64,
+	false,
+	0x2.000001fffffffffffffffffffffep-64,
+	0x2.000002p-64,
+	0x2.000001fffffffffffffffffffffep-64,
+	0x2.000002p-64),
   TEST ("1.0842022371089897897127399001987457793916291848290711641311"
 	"6455078125e-19",
 	false,
-	0x2p-64f,
-	0x2p-64f,
-	0x2p-64f,
-	0x2.000004p-64f,
+	0x2p-64,
+	0x2p-64,
+	0x2p-64,
+	0x2.000004p-64,
+	true,
+	0x2.000002p-64,
+	0x2.000002p-64,
+	0x2.000002p-64,
+	0x2.000002p-64,
+	true,
+	0x2.000002p-64,
+	0x2.000002p-64,
+	0x2.000002p-64,
+	0x2.000002p-64,
 	true,
 	0x2.000002p-64,
 	0x2.000002p-64,
 	0x2.000002p-64,
 	0x2.000002p-64,
 	true,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	true,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	true,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	true,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	true,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	0x2.000002p-64L),
+	0x2.000002p-64,
+	0x2.000002p-64,
+	0x2.000002p-64,
+	0x2.000002p-64,
+	true,
+	0x2.000002p-64,
+	0x2.000002p-64,
+	0x2.000002p-64,
+	0x2.000002p-64),
   TEST ("1.0842022371089897897127399001987457793916291848290711641311"
 	"645507812501e-19",
 	false,
-	0x2p-64f,
-	0x2.000004p-64f,
-	0x2p-64f,
-	0x2.000004p-64f,
+	0x2p-64,
+	0x2.000004p-64,
+	0x2p-64,
+	0x2.000004p-64,
 	false,
 	0x2.000002p-64,
 	0x2.000002p-64,
 	0x2.000002p-64,
 	0x2.0000020000002p-64,
 	false,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	0x2.0000020000002p-64L,
-	false,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	0x2.0000020000000004p-64L,
-	false,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	0x2.0000020000000004p-64L,
-	false,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	0x2.00000200000000000000000001p-64L,
-	false,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	0x2.000002p-64L,
-	0x2.0000020000000000000000000002p-64L),
+	0x2.000002p-64,
+	0x2.000002p-64,
+	0x2.000002p-64,
+	0x2.0000020000000004p-64,
+	false,
+	0x2.000002p-64,
+	0x2.000002p-64,
+	0x2.000002p-64,
+	0x2.0000020000000004p-64,
+	false,
+	0x2.000002p-64,
+	0x2.000002p-64,
+	0x2.000002p-64,
+	0x2.00000200000000000000000001p-64,
+	false,
+	0x2.000002p-64,
+	0x2.000002p-64,
+	0x2.000002p-64,
+	0x2.0000020000000000000000000002p-64),
   TEST ("1.0842023017324751454180269995275498473574771196581423282623"
 	"291015625e-19",
 	true,
-	0x2.000004p-64f,
-	0x2.000004p-64f,
-	0x2.000004p-64f,
-	0x2.000004p-64f,
+	0x2.000004p-64,
+	0x2.000004p-64,
+	0x2.000004p-64,
+	0x2.000004p-64,
+	true,
+	0x2.000004p-64,
+	0x2.000004p-64,
+	0x2.000004p-64,
+	0x2.000004p-64,
+	true,
+	0x2.000004p-64,
+	0x2.000004p-64,
+	0x2.000004p-64,
+	0x2.000004p-64,
+	true,
+	0x2.000004p-64,
+	0x2.000004p-64,
+	0x2.000004p-64,
+	0x2.000004p-64,
 	true,
 	0x2.000004p-64,
 	0x2.000004p-64,
 	0x2.000004p-64,
 	0x2.000004p-64,
 	true,
-	0x2.000004p-64L,
-	0x2.000004p-64L,
-	0x2.000004p-64L,
-	0x2.000004p-64L,
-	true,
-	0x2.000004p-64L,
-	0x2.000004p-64L,
-	0x2.000004p-64L,
-	0x2.000004p-64L,
-	true,
-	0x2.000004p-64L,
-	0x2.000004p-64L,
-	0x2.000004p-64L,
-	0x2.000004p-64L,
-	true,
-	0x2.000004p-64L,
-	0x2.000004p-64L,
-	0x2.000004p-64L,
-	0x2.000004p-64L,
-	true,
-	0x2.000004p-64L,
-	0x2.000004p-64L,
-	0x2.000004p-64L,
-	0x2.000004p-64L),
+	0x2.000004p-64,
+	0x2.000004p-64,
+	0x2.000004p-64,
+	0x2.000004p-64),
   TEST ("1.0842023663559605011233140988563539153233250544872134923934"
 	"936523437499e-19",
 	false,
-	0x2.000004p-64f,
-	0x2.000004p-64f,
-	0x2.000004p-64f,
-	0x2.000008p-64f,
+	0x2.000004p-64,
+	0x2.000004p-64,
+	0x2.000004p-64,
+	0x2.000008p-64,
 	false,
 	0x2.000005ffffffep-64,
 	0x2.000006p-64,
 	0x2.000005ffffffep-64,
 	0x2.000006p-64,
 	false,
-	0x2.000005ffffffep-64L,
-	0x2.000006p-64L,
-	0x2.000005ffffffep-64L,
-	0x2.000006p-64L,
-	false,
-	0x2.000005fffffffffcp-64L,
-	0x2.000006p-64L,
-	0x2.000005fffffffffcp-64L,
-	0x2.000006p-64L,
-	false,
-	0x2.000005fffffffffcp-64L,
-	0x2.000006p-64L,
-	0x2.000005fffffffffcp-64L,
-	0x2.000006p-64L,
-	false,
-	0x2.000005ffffffffffffffffffffp-64L,
-	0x2.000006p-64L,
-	0x2.000005ffffffffffffffffffffp-64L,
-	0x2.000006p-64L,
-	false,
-	0x2.000005fffffffffffffffffffffep-64L,
-	0x2.000006p-64L,
-	0x2.000005fffffffffffffffffffffep-64L,
-	0x2.000006p-64L),
+	0x2.000005fffffffffcp-64,
+	0x2.000006p-64,
+	0x2.000005fffffffffcp-64,
+	0x2.000006p-64,
+	false,
+	0x2.000005fffffffffcp-64,
+	0x2.000006p-64,
+	0x2.000005fffffffffcp-64,
+	0x2.000006p-64,
+	false,
+	0x2.000005ffffffffffffffffffffp-64,
+	0x2.000006p-64,
+	0x2.000005ffffffffffffffffffffp-64,
+	0x2.000006p-64,
+	false,
+	0x2.000005fffffffffffffffffffffep-64,
+	0x2.000006p-64,
+	0x2.000005fffffffffffffffffffffep-64,
+	0x2.000006p-64),
   TEST ("1.0842023663559605011233140988563539153233250544872134923934"
 	"9365234375e-19",
 	false,
-	0x2.000004p-64f,
-	0x2.000008p-64f,
-	0x2.000004p-64f,
-	0x2.000008p-64f,
+	0x2.000004p-64,
+	0x2.000008p-64,
+	0x2.000004p-64,
+	0x2.000008p-64,
+	true,
+	0x2.000006p-64,
+	0x2.000006p-64,
+	0x2.000006p-64,
+	0x2.000006p-64,
 	true,
 	0x2.000006p-64,
 	0x2.000006p-64,
 	0x2.000006p-64,
 	0x2.000006p-64,
 	true,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	true,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	true,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	true,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	true,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	0x2.000006p-64L),
+	0x2.000006p-64,
+	0x2.000006p-64,
+	0x2.000006p-64,
+	0x2.000006p-64,
+	true,
+	0x2.000006p-64,
+	0x2.000006p-64,
+	0x2.000006p-64,
+	0x2.000006p-64,
+	true,
+	0x2.000006p-64,
+	0x2.000006p-64,
+	0x2.000006p-64,
+	0x2.000006p-64),
   TEST ("1.0842023663559605011233140988563539153233250544872134923934"
 	"936523437501e-19",
 	false,
-	0x2.000004p-64f,
-	0x2.000008p-64f,
-	0x2.000004p-64f,
-	0x2.000008p-64f,
+	0x2.000004p-64,
+	0x2.000008p-64,
+	0x2.000004p-64,
+	0x2.000008p-64,
 	false,
 	0x2.000006p-64,
 	0x2.000006p-64,
 	0x2.000006p-64,
 	0x2.0000060000002p-64,
 	false,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	0x2.0000060000002p-64L,
-	false,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	0x2.0000060000000004p-64L,
-	false,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	0x2.0000060000000004p-64L,
-	false,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	0x2.00000600000000000000000001p-64L,
-	false,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	0x2.000006p-64L,
-	0x2.0000060000000000000000000002p-64L),
+	0x2.000006p-64,
+	0x2.000006p-64,
+	0x2.000006p-64,
+	0x2.0000060000000004p-64,
+	false,
+	0x2.000006p-64,
+	0x2.000006p-64,
+	0x2.000006p-64,
+	0x2.0000060000000004p-64,
+	false,
+	0x2.000006p-64,
+	0x2.000006p-64,
+	0x2.000006p-64,
+	0x2.00000600000000000000000001p-64,
+	false,
+	0x2.000006p-64,
+	0x2.000006p-64,
+	0x2.000006p-64,
+	0x2.0000060000000000000000000002p-64),
   TEST ("1.0842024309794458568286011981851579832891729893162846565246"
 	"58203125e-19",
 	true,
-	0x2.000008p-64f,
-	0x2.000008p-64f,
-	0x2.000008p-64f,
-	0x2.000008p-64f,
+	0x2.000008p-64,
+	0x2.000008p-64,
+	0x2.000008p-64,
+	0x2.000008p-64,
+	true,
+	0x2.000008p-64,
+	0x2.000008p-64,
+	0x2.000008p-64,
+	0x2.000008p-64,
+	true,
+	0x2.000008p-64,
+	0x2.000008p-64,
+	0x2.000008p-64,
+	0x2.000008p-64,
+	true,
+	0x2.000008p-64,
+	0x2.000008p-64,
+	0x2.000008p-64,
+	0x2.000008p-64,
 	true,
 	0x2.000008p-64,
 	0x2.000008p-64,
 	0x2.000008p-64,
 	0x2.000008p-64,
 	true,
-	0x2.000008p-64L,
-	0x2.000008p-64L,
-	0x2.000008p-64L,
-	0x2.000008p-64L,
-	true,
-	0x2.000008p-64L,
-	0x2.000008p-64L,
-	0x2.000008p-64L,
-	0x2.000008p-64L,
-	true,
-	0x2.000008p-64L,
-	0x2.000008p-64L,
-	0x2.000008p-64L,
-	0x2.000008p-64L,
-	true,
-	0x2.000008p-64L,
-	0x2.000008p-64L,
-	0x2.000008p-64L,
-	0x2.000008p-64L,
-	true,
-	0x2.000008p-64L,
-	0x2.000008p-64L,
-	0x2.000008p-64L,
-	0x2.000008p-64L),
+	0x2.000008p-64,
+	0x2.000008p-64,
+	0x2.000008p-64,
+	0x2.000008p-64),
   TEST ("7.5231638452626400509999138382223723380394595633413601376560"
 	"1092018187046051025390625e-37",
 	true,
-	0x1p-120f,
-	0x1p-120f,
-	0x1p-120f,
-	0x1p-120f,
+	0x1p-120,
+	0x1p-120,
+	0x1p-120,
+	0x1p-120,
+	true,
+	0x1p-120,
+	0x1p-120,
+	0x1p-120,
+	0x1p-120,
+	true,
+	0x1p-120,
+	0x1p-120,
+	0x1p-120,
+	0x1p-120,
 	true,
 	0x1p-120,
 	0x1p-120,
 	0x1p-120,
 	0x1p-120,
 	true,
-	0x1p-120L,
-	0x1p-120L,
-	0x1p-120L,
-	0x1p-120L,
-	true,
-	0x1p-120L,
-	0x1p-120L,
-	0x1p-120L,
-	0x1p-120L,
-	true,
-	0x1p-120L,
-	0x1p-120L,
-	0x1p-120L,
-	0x1p-120L,
-	true,
-	0x1p-120L,
-	0x1p-120L,
-	0x1p-120L,
-	0x1p-120L,
-	true,
-	0x1p-120L,
-	0x1p-120L,
-	0x1p-120L,
-	0x1p-120L),
+	0x1p-120,
+	0x1p-120,
+	0x1p-120,
+	0x1p-120,
+	true,
+	0x1p-120,
+	0x1p-120,
+	0x1p-120,
+	0x1p-120),
   TEST ("7.5231642936781486349413765338158389908126215730251815381410"
 	"578824437213052434003657253924757242202758789062499e-37",
 	false,
-	0x1p-120f,
-	0x1p-120f,
-	0x1p-120f,
-	0x1.000002p-120f,
+	0x1p-120,
+	0x1p-120,
+	0x1p-120,
+	0x1.000002p-120,
 	false,
 	0x1.000000fffffffp-120,
 	0x1.000001p-120,
 	0x1.000000fffffffp-120,
 	0x1.000001p-120,
 	false,
-	0x1.000000fffffffp-120L,
-	0x1.000001p-120L,
-	0x1.000000fffffffp-120L,
-	0x1.000001p-120L,
-	false,
-	0x1.000000fffffffffep-120L,
-	0x1.000001p-120L,
-	0x1.000000fffffffffep-120L,
-	0x1.000001p-120L,
-	false,
-	0x1.000000fffffffffep-120L,
-	0x1.000001p-120L,
-	0x1.000000fffffffffep-120L,
-	0x1.000001p-120L,
-	false,
-	0x1.000000ffffffffffffffffffff8p-120L,
-	0x1.000001p-120L,
-	0x1.000000ffffffffffffffffffff8p-120L,
-	0x1.000001p-120L,
-	false,
-	0x1.000000ffffffffffffffffffffffp-120L,
-	0x1.000001p-120L,
-	0x1.000000ffffffffffffffffffffffp-120L,
-	0x1.000001p-120L),
+	0x1.000000fffffffffep-120,
+	0x1.000001p-120,
+	0x1.000000fffffffffep-120,
+	0x1.000001p-120,
+	false,
+	0x1.000000fffffffffep-120,
+	0x1.000001p-120,
+	0x1.000000fffffffffep-120,
+	0x1.000001p-120,
+	false,
+	0x1.000000ffffffffffffffffffff8p-120,
+	0x1.000001p-120,
+	0x1.000000ffffffffffffffffffff8p-120,
+	0x1.000001p-120,
+	false,
+	0x1.000000ffffffffffffffffffffffp-120,
+	0x1.000001p-120,
+	0x1.000000ffffffffffffffffffffffp-120,
+	0x1.000001p-120),
   TEST ("7.5231642936781486349413765338158389908126215730251815381410"
 	"5788244372130524340036572539247572422027587890625e-37",
 	false,
-	0x1p-120f,
-	0x1p-120f,
-	0x1p-120f,
-	0x1.000002p-120f,
+	0x1p-120,
+	0x1p-120,
+	0x1p-120,
+	0x1.000002p-120,
+	true,
+	0x1.000001p-120,
+	0x1.000001p-120,
+	0x1.000001p-120,
+	0x1.000001p-120,
+	true,
+	0x1.000001p-120,
+	0x1.000001p-120,
+	0x1.000001p-120,
+	0x1.000001p-120,
 	true,
 	0x1.000001p-120,
 	0x1.000001p-120,
 	0x1.000001p-120,
 	0x1.000001p-120,
 	true,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	true,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	true,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	true,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	true,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	0x1.000001p-120L),
+	0x1.000001p-120,
+	0x1.000001p-120,
+	0x1.000001p-120,
+	0x1.000001p-120,
+	true,
+	0x1.000001p-120,
+	0x1.000001p-120,
+	0x1.000001p-120,
+	0x1.000001p-120),
   TEST ("7.5231642936781486349413765338158389908126215730251815381410"
 	"578824437213052434003657253924757242202758789062501e-37",
 	false,
-	0x1p-120f,
-	0x1.000002p-120f,
-	0x1p-120f,
-	0x1.000002p-120f,
+	0x1p-120,
+	0x1.000002p-120,
+	0x1p-120,
+	0x1.000002p-120,
 	false,
 	0x1.000001p-120,
 	0x1.000001p-120,
 	0x1.000001p-120,
 	0x1.0000010000001p-120,
 	false,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	0x1.0000010000001p-120L,
-	false,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	0x1.0000010000000002p-120L,
-	false,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	0x1.0000010000000002p-120L,
-	false,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	0x1.000001000000000000000000008p-120L,
-	false,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	0x1.000001p-120L,
-	0x1.0000010000000000000000000001p-120L),
+	0x1.000001p-120,
+	0x1.000001p-120,
+	0x1.000001p-120,
+	0x1.0000010000000002p-120,
+	false,
+	0x1.000001p-120,
+	0x1.000001p-120,
+	0x1.000001p-120,
+	0x1.0000010000000002p-120,
+	false,
+	0x1.000001p-120,
+	0x1.000001p-120,
+	0x1.000001p-120,
+	0x1.000001000000000000000000008p-120,
+	false,
+	0x1.000001p-120,
+	0x1.000001p-120,
+	0x1.000001p-120,
+	0x1.0000010000000000000000000001p-120),
   TEST ("7.5231647420936572188828392294093056435857835827090029386261"
 	"048447055721499765468252007849514484405517578125e-37",
 	true,
-	0x1.000002p-120f,
-	0x1.000002p-120f,
-	0x1.000002p-120f,
-	0x1.000002p-120f,
+	0x1.000002p-120,
+	0x1.000002p-120,
+	0x1.000002p-120,
+	0x1.000002p-120,
+	true,
+	0x1.000002p-120,
+	0x1.000002p-120,
+	0x1.000002p-120,
+	0x1.000002p-120,
+	true,
+	0x1.000002p-120,
+	0x1.000002p-120,
+	0x1.000002p-120,
+	0x1.000002p-120,
+	true,
+	0x1.000002p-120,
+	0x1.000002p-120,
+	0x1.000002p-120,
+	0x1.000002p-120,
 	true,
 	0x1.000002p-120,
 	0x1.000002p-120,
 	0x1.000002p-120,
 	0x1.000002p-120,
 	true,
-	0x1.000002p-120L,
-	0x1.000002p-120L,
-	0x1.000002p-120L,
-	0x1.000002p-120L,
-	true,
-	0x1.000002p-120L,
-	0x1.000002p-120L,
-	0x1.000002p-120L,
-	0x1.000002p-120L,
-	true,
-	0x1.000002p-120L,
-	0x1.000002p-120L,
-	0x1.000002p-120L,
-	0x1.000002p-120L,
-	true,
-	0x1.000002p-120L,
-	0x1.000002p-120L,
-	0x1.000002p-120L,
-	0x1.000002p-120L,
-	true,
-	0x1.000002p-120L,
-	0x1.000002p-120L,
-	0x1.000002p-120L,
-	0x1.000002p-120L),
+	0x1.000002p-120,
+	0x1.000002p-120,
+	0x1.000002p-120,
+	0x1.000002p-120),
   TEST ("7.5231651905091658028243019250027722963589455923928243391111"
 	"518069674229947096932846761774271726608276367187499e-37",
 	false,
-	0x1.000002p-120f,
-	0x1.000002p-120f,
-	0x1.000002p-120f,
-	0x1.000004p-120f,
+	0x1.000002p-120,
+	0x1.000002p-120,
+	0x1.000002p-120,
+	0x1.000004p-120,
 	false,
 	0x1.000002fffffffp-120,
 	0x1.000003p-120,
 	0x1.000002fffffffp-120,
 	0x1.000003p-120,
 	false,
-	0x1.000002fffffffp-120L,
-	0x1.000003p-120L,
-	0x1.000002fffffffp-120L,
-	0x1.000003p-120L,
-	false,
-	0x1.000002fffffffffep-120L,
-	0x1.000003p-120L,
-	0x1.000002fffffffffep-120L,
-	0x1.000003p-120L,
-	false,
-	0x1.000002fffffffffep-120L,
-	0x1.000003p-120L,
-	0x1.000002fffffffffep-120L,
-	0x1.000003p-120L,
-	false,
-	0x1.000002ffffffffffffffffffff8p-120L,
-	0x1.000003p-120L,
-	0x1.000002ffffffffffffffffffff8p-120L,
-	0x1.000003p-120L,
-	false,
-	0x1.000002ffffffffffffffffffffffp-120L,
-	0x1.000003p-120L,
-	0x1.000002ffffffffffffffffffffffp-120L,
-	0x1.000003p-120L),
+	0x1.000002fffffffffep-120,
+	0x1.000003p-120,
+	0x1.000002fffffffffep-120,
+	0x1.000003p-120,
+	false,
+	0x1.000002fffffffffep-120,
+	0x1.000003p-120,
+	0x1.000002fffffffffep-120,
+	0x1.000003p-120,
+	false,
+	0x1.000002ffffffffffffffffffff8p-120,
+	0x1.000003p-120,
+	0x1.000002ffffffffffffffffffff8p-120,
+	0x1.000003p-120,
+	false,
+	0x1.000002ffffffffffffffffffffffp-120,
+	0x1.000003p-120,
+	0x1.000002ffffffffffffffffffffffp-120,
+	0x1.000003p-120),
   TEST ("7.5231651905091658028243019250027722963589455923928243391111"
 	"5180696742299470969328467617742717266082763671875e-37",
 	false,
-	0x1.000002p-120f,
-	0x1.000004p-120f,
-	0x1.000002p-120f,
-	0x1.000004p-120f,
+	0x1.000002p-120,
+	0x1.000004p-120,
+	0x1.000002p-120,
+	0x1.000004p-120,
+	true,
+	0x1.000003p-120,
+	0x1.000003p-120,
+	0x1.000003p-120,
+	0x1.000003p-120,
+	true,
+	0x1.000003p-120,
+	0x1.000003p-120,
+	0x1.000003p-120,
+	0x1.000003p-120,
 	true,
 	0x1.000003p-120,
 	0x1.000003p-120,
 	0x1.000003p-120,
 	0x1.000003p-120,
 	true,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	true,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	true,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	true,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	true,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	0x1.000003p-120L),
+	0x1.000003p-120,
+	0x1.000003p-120,
+	0x1.000003p-120,
+	0x1.000003p-120,
+	true,
+	0x1.000003p-120,
+	0x1.000003p-120,
+	0x1.000003p-120,
+	0x1.000003p-120),
   TEST ("7.5231651905091658028243019250027722963589455923928243391111"
 	"518069674229947096932846761774271726608276367187501e-37",
 	false,
-	0x1.000002p-120f,
-	0x1.000004p-120f,
-	0x1.000002p-120f,
-	0x1.000004p-120f,
+	0x1.000002p-120,
+	0x1.000004p-120,
+	0x1.000002p-120,
+	0x1.000004p-120,
 	false,
 	0x1.000003p-120,
 	0x1.000003p-120,
 	0x1.000003p-120,
 	0x1.0000030000001p-120,
 	false,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	0x1.0000030000001p-120L,
-	false,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	0x1.0000030000000002p-120L,
-	false,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	0x1.0000030000000002p-120L,
-	false,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	0x1.000003000000000000000000008p-120L,
-	false,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	0x1.000003p-120L,
-	0x1.0000030000000000000000000001p-120L),
+	0x1.000003p-120,
+	0x1.000003p-120,
+	0x1.000003p-120,
+	0x1.0000030000000002p-120,
+	false,
+	0x1.000003p-120,
+	0x1.000003p-120,
+	0x1.000003p-120,
+	0x1.0000030000000002p-120,
+	false,
+	0x1.000003p-120,
+	0x1.000003p-120,
+	0x1.000003p-120,
+	0x1.000003000000000000000000008p-120,
+	false,
+	0x1.000003p-120,
+	0x1.000003p-120,
+	0x1.000003p-120,
+	0x1.0000030000000000000000000001p-120),
   TEST ("7.5231656389246743867657646205962389491321076020766457395961"
 	"98769229273839442839744151569902896881103515625e-37",
 	true,
-	0x1.000004p-120f,
-	0x1.000004p-120f,
-	0x1.000004p-120f,
-	0x1.000004p-120f,
+	0x1.000004p-120,
+	0x1.000004p-120,
+	0x1.000004p-120,
+	0x1.000004p-120,
+	true,
+	0x1.000004p-120,
+	0x1.000004p-120,
+	0x1.000004p-120,
+	0x1.000004p-120,
+	true,
+	0x1.000004p-120,
+	0x1.000004p-120,
+	0x1.000004p-120,
+	0x1.000004p-120,
+	true,
+	0x1.000004p-120,
+	0x1.000004p-120,
+	0x1.000004p-120,
+	0x1.000004p-120,
 	true,
 	0x1.000004p-120,
 	0x1.000004p-120,
 	0x1.000004p-120,
 	0x1.000004p-120,
 	true,
-	0x1.000004p-120L,
-	0x1.000004p-120L,
-	0x1.000004p-120L,
-	0x1.000004p-120L,
-	true,
-	0x1.000004p-120L,
-	0x1.000004p-120L,
-	0x1.000004p-120L,
-	0x1.000004p-120L,
-	true,
-	0x1.000004p-120L,
-	0x1.000004p-120L,
-	0x1.000004p-120L,
-	0x1.000004p-120L,
-	true,
-	0x1.000004p-120L,
-	0x1.000004p-120L,
-	0x1.000004p-120L,
-	0x1.000004p-120L,
-	true,
-	0x1.000004p-120L,
-	0x1.000004p-120L,
-	0x1.000004p-120L,
-	0x1.000004p-120L),
+	0x1.000004p-120,
+	0x1.000004p-120,
+	0x1.000004p-120,
+	0x1.000004p-120),
   TEST ("340282356779733661637539395458142568447.999",
 	false,
-	0xf.fffffp+124f,
-	0xf.fffffp+124f,
-	0xf.fffffp+124f,
-	INFINITY,
+	0xf.fffffp+124,
+	0xf.fffffp+124,
+	0xf.fffffp+124,
+	INF,
 	false,
 	0xf.fffff7ffffff8p+124,
 	0xf.fffff8p+124,
 	0xf.fffff7ffffff8p+124,
 	0xf.fffff8p+124,
 	false,
-	0xf.fffff7ffffff8p+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff7ffffff8p+124L,
-	0xf.fffff8p+124L,
-	false,
-	0xf.fffff7fffffffffp+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff7fffffffffp+124L,
-	0xf.fffff8p+124L,
-	false,
-	0xf.fffff7fffffffffp+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff7fffffffffp+124L,
-	0xf.fffff8p+124L,
-	false,
-	0xf.fffff7fffffffffffffffffffcp+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff7fffffffffffffffffffcp+124L,
-	0xf.fffff8p+124L,
-	false,
-	0xf.fffff7fffffffffffffffffffff8p+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff7fffffffffffffffffffff8p+124L,
-	0xf.fffff8p+124L),
+	0xf.fffff7fffffffffp+124,
+	0xf.fffff8p+124,
+	0xf.fffff7fffffffffp+124,
+	0xf.fffff8p+124,
+	false,
+	0xf.fffff7fffffffffp+124,
+	0xf.fffff8p+124,
+	0xf.fffff7fffffffffp+124,
+	0xf.fffff8p+124,
+	false,
+	0xf.fffff7fffffffffffffffffffcp+124,
+	0xf.fffff8p+124,
+	0xf.fffff7fffffffffffffffffffcp+124,
+	0xf.fffff8p+124,
+	false,
+	0xf.fffff7fffffffffffffffffffff8p+124,
+	0xf.fffff8p+124,
+	0xf.fffff7fffffffffffffffffffff8p+124,
+	0xf.fffff8p+124),
   TEST ("340282356779733661637539395458142568448",
 	false,
-	0xf.fffffp+124f,
-	INFINITY,
-	0xf.fffffp+124f,
-	INFINITY,
+	0xf.fffffp+124,
+	INF,
+	0xf.fffffp+124,
+	INF,
+	true,
+	0xf.fffff8p+124,
+	0xf.fffff8p+124,
+	0xf.fffff8p+124,
+	0xf.fffff8p+124,
+	true,
+	0xf.fffff8p+124,
+	0xf.fffff8p+124,
+	0xf.fffff8p+124,
+	0xf.fffff8p+124,
 	true,
 	0xf.fffff8p+124,
 	0xf.fffff8p+124,
 	0xf.fffff8p+124,
 	0xf.fffff8p+124,
 	true,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	true,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	true,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	true,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	true,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L),
+	0xf.fffff8p+124,
+	0xf.fffff8p+124,
+	0xf.fffff8p+124,
+	0xf.fffff8p+124,
+	true,
+	0xf.fffff8p+124,
+	0xf.fffff8p+124,
+	0xf.fffff8p+124,
+	0xf.fffff8p+124),
   TEST ("340282356779733661637539395458142568448.001",
 	false,
-	0xf.fffffp+124f,
-	INFINITY,
-	0xf.fffffp+124f,
-	INFINITY,
+	0xf.fffffp+124,
+	INF,
+	0xf.fffffp+124,
+	INF,
 	false,
 	0xf.fffff8p+124,
 	0xf.fffff8p+124,
 	0xf.fffff8p+124,
 	0xf.fffff80000008p+124,
 	false,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff80000008p+124L,
-	false,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff8000000001p+124L,
-	false,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff8000000001p+124L,
-	false,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff800000000000000000004p+124L,
-	false,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff8p+124L,
-	0xf.fffff80000000000000000000008p+124L),
+	0xf.fffff8p+124,
+	0xf.fffff8p+124,
+	0xf.fffff8p+124,
+	0xf.fffff8000000001p+124,
+	false,
+	0xf.fffff8p+124,
+	0xf.fffff8p+124,
+	0xf.fffff8p+124,
+	0xf.fffff8000000001p+124,
+	false,
+	0xf.fffff8p+124,
+	0xf.fffff8p+124,
+	0xf.fffff8p+124,
+	0xf.fffff800000000000000000004p+124,
+	false,
+	0xf.fffff8p+124,
+	0xf.fffff8p+124,
+	0xf.fffff8p+124,
+	0xf.fffff80000000000000000000008p+124),
   TEST ("-340282356779733661637539395458142568447.999",
 	false,
-	-INFINITY,
-	-0xf.fffffp+124f,
-	-0xf.fffffp+124f,
-	-0xf.fffffp+124f,
+	-INF,
+	-0xf.fffffp+124,
+	-0xf.fffffp+124,
+	-0xf.fffffp+124,
 	false,
 	-0xf.fffff8p+124,
 	-0xf.fffff8p+124,
 	-0xf.fffff7ffffff8p+124,
 	-0xf.fffff7ffffff8p+124,
 	false,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff7ffffff8p+124L,
-	-0xf.fffff7ffffff8p+124L,
-	false,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff7fffffffffp+124L,
-	-0xf.fffff7fffffffffp+124L,
-	false,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff7fffffffffp+124L,
-	-0xf.fffff7fffffffffp+124L,
-	false,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff7fffffffffffffffffffcp+124L,
-	-0xf.fffff7fffffffffffffffffffcp+124L,
-	false,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff7fffffffffffffffffffff8p+124L,
-	-0xf.fffff7fffffffffffffffffffff8p+124L),
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124,
+	-0xf.fffff7fffffffffp+124,
+	-0xf.fffff7fffffffffp+124,
+	false,
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124,
+	-0xf.fffff7fffffffffp+124,
+	-0xf.fffff7fffffffffp+124,
+	false,
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124,
+	-0xf.fffff7fffffffffffffffffffcp+124,
+	-0xf.fffff7fffffffffffffffffffcp+124,
+	false,
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124,
+	-0xf.fffff7fffffffffffffffffffff8p+124,
+	-0xf.fffff7fffffffffffffffffffff8p+124),
   TEST ("-340282356779733661637539395458142568448",
 	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffp+124f,
-	-0xf.fffffp+124f,
+	-INF,
+	-INF,
+	-0xf.fffffp+124,
+	-0xf.fffffp+124,
+	true,
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124,
+	true,
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124,
+	true,
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124,
 	true,
 	-0xf.fffff8p+124,
 	-0xf.fffff8p+124,
 	-0xf.fffff8p+124,
 	-0xf.fffff8p+124,
 	true,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	true,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	true,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	true,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	true,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L),
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124),
   TEST ("-340282356779733661637539395458142568448.001",
 	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffp+124f,
-	-0xf.fffffp+124f,
+	-INF,
+	-INF,
+	-0xf.fffffp+124,
+	-0xf.fffffp+124,
 	false,
 	-0xf.fffff80000008p+124,
 	-0xf.fffff8p+124,
 	-0xf.fffff8p+124,
 	-0xf.fffff8p+124,
 	false,
-	-0xf.fffff80000008p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	false,
-	-0xf.fffff8000000001p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	false,
-	-0xf.fffff8000000001p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	false,
-	-0xf.fffff800000000000000000004p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	false,
-	-0xf.fffff80000000000000000000008p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L,
-	-0xf.fffff8p+124L),
+	-0xf.fffff8000000001p+124,
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124,
+	false,
+	-0xf.fffff8000000001p+124,
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124,
+	false,
+	-0xf.fffff800000000000000000004p+124,
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124,
+	false,
+	-0xf.fffff80000000000000000000008p+124,
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124,
+	-0xf.fffff8p+124),
   TEST ("179769313486231580793728971405303415079934132710037826936173"
 	"778980444968292764750946649017977587207096330286416692887910"
 	"946555547851940402630657488671505820681908902000708383676273"
@@ -2150,40 +1855,35 @@ static const struct test tests[] = {
 	"936475292719074168444365510704342711559699508093042880177904"
 	"174497791.999",
 	false,
-	0xf.fffffp+124f,
-	INFINITY,
-	0xf.fffffp+124f,
-	INFINITY,
+	0xf.fffffp+124,
+	INF,
+	0xf.fffffp+124,
+	INF,
 	false,
 	0xf.ffffffffffff8p+1020,
 	0xf.ffffffffffff8p+1020,
 	0xf.ffffffffffff8p+1020,
-	INFINITY,
-	false,
-	0xf.ffffffffffff8p+1020L,
-	0xf.ffffffffffff8p+1020L,
-	0xf.ffffffffffff8p+1020L,
-	INFINITY,
-	false,
-	0xf.ffffffffffffbffp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffbffp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	false,
-	0xf.ffffffffffffbffp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffbffp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	false,
-	0xf.ffffffffffffbffffffffffffcp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffbffffffffffffcp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	false,
-	0xf.ffffffffffffbffffffffffffff8p+1020L,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffbffffffffffffff8p+1020L,
-	0xf.ffffffffffffcp+1020L),
+	INF,
+	false,
+	0xf.ffffffffffffbffp+1020,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffbffp+1020,
+	0xf.ffffffffffffcp+1020,
+	false,
+	0xf.ffffffffffffbffp+1020,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffbffp+1020,
+	0xf.ffffffffffffcp+1020,
+	false,
+	0xf.ffffffffffffbffffffffffffcp+1020,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffbffffffffffffcp+1020,
+	0xf.ffffffffffffcp+1020,
+	false,
+	0xf.ffffffffffffbffffffffffffff8p+1020,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffbffffffffffffff8p+1020,
+	0xf.ffffffffffffcp+1020),
   TEST ("179769313486231580793728971405303415079934132710037826936173"
 	"778980444968292764750946649017977587207096330286416692887910"
 	"946555547851940402630657488671505820681908902000708383676273"
@@ -2191,40 +1891,35 @@ static const struct test tests[] = {
 	"936475292719074168444365510704342711559699508093042880177904"
 	"174497792",
 	false,
-	0xf.fffffp+124f,
-	INFINITY,
-	0xf.fffffp+124f,
-	INFINITY,
+	0xf.fffffp+124,
+	INF,
+	0xf.fffffp+124,
+	INF,
 	false,
 	0xf.ffffffffffff8p+1020,
-	INFINITY,
+	INF,
 	0xf.ffffffffffff8p+1020,
-	INFINITY,
-	false,
-	0xf.ffffffffffff8p+1020L,
-	INFINITY,
-	0xf.ffffffffffff8p+1020L,
-	INFINITY,
-	true,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	true,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	false,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	true,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffcp+1020L),
+	INF,
+	true,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffcp+1020,
+	true,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffcp+1020,
+	false,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffcp+1020,
+	true,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffcp+1020),
   TEST ("179769313486231580793728971405303415079934132710037826936173"
 	"778980444968292764750946649017977587207096330286416692887910"
 	"946555547851940402630657488671505820681908902000708383676273"
@@ -2232,40 +1927,35 @@ static const struct test tests[] = {
 	"936475292719074168444365510704342711559699508093042880177904"
 	"174497792.001",
 	false,
-	0xf.fffffp+124f,
-	INFINITY,
-	0xf.fffffp+124f,
-	INFINITY,
+	0xf.fffffp+124,
+	INF,
+	0xf.fffffp+124,
+	INF,
 	false,
 	0xf.ffffffffffff8p+1020,
-	INFINITY,
+	INF,
 	0xf.ffffffffffff8p+1020,
-	INFINITY,
-	false,
-	0xf.ffffffffffff8p+1020L,
-	INFINITY,
-	0xf.ffffffffffff8p+1020L,
-	INFINITY,
-	false,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffc01p+1020L,
-	false,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffc01p+1020L,
-	false,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffc0000000000004p+1020L,
-	false,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffcp+1020L,
-	0xf.ffffffffffffc000000000000008p+1020L),
+	INF,
+	false,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffc01p+1020,
+	false,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffc01p+1020,
+	false,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffc0000000000004p+1020,
+	false,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffcp+1020,
+	0xf.ffffffffffffc000000000000008p+1020),
   TEST ("-17976931348623158079372897140530341507993413271003782693617"
 	"377898044496829276475094664901797758720709633028641669288791"
 	"094655554785194040263065748867150582068190890200070838367627"
@@ -2273,40 +1963,35 @@ static const struct test tests[] = {
 	"493647529271907416844436551070434271155969950809304288017790"
 	"4174497791.999",
 	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffp+124f,
-	-0xf.fffffp+124f,
+	-INF,
+	-INF,
+	-0xf.fffffp+124,
+	-0xf.fffffp+124,
 	false,
-	-INFINITY,
+	-INF,
 	-0xf.ffffffffffff8p+1020,
 	-0xf.ffffffffffff8p+1020,
 	-0xf.ffffffffffff8p+1020,
 	false,
-	-INFINITY,
-	-0xf.ffffffffffff8p+1020L,
-	-0xf.ffffffffffff8p+1020L,
-	-0xf.ffffffffffff8p+1020L,
-	false,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffbffp+1020L,
-	-0xf.ffffffffffffbffp+1020L,
-	false,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffbffp+1020L,
-	-0xf.ffffffffffffbffp+1020L,
-	false,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffbffffffffffffcp+1020L,
-	-0xf.ffffffffffffbffffffffffffcp+1020L,
-	false,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffbffffffffffffff8p+1020L,
-	-0xf.ffffffffffffbffffffffffffff8p+1020L),
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffbffp+1020,
+	-0xf.ffffffffffffbffp+1020,
+	false,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffbffp+1020,
+	-0xf.ffffffffffffbffp+1020,
+	false,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffbffffffffffffcp+1020,
+	-0xf.ffffffffffffbffffffffffffcp+1020,
+	false,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffbffffffffffffff8p+1020,
+	-0xf.ffffffffffffbffffffffffffff8p+1020),
   TEST ("-17976931348623158079372897140530341507993413271003782693617"
 	"377898044496829276475094664901797758720709633028641669288791"
 	"094655554785194040263065748867150582068190890200070838367627"
@@ -2314,40 +1999,35 @@ static const struct test tests[] = {
 	"493647529271907416844436551070434271155969950809304288017790"
 	"4174497792",
 	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffp+124f,
-	-0xf.fffffp+124f,
+	-INF,
+	-INF,
+	-0xf.fffffp+124,
+	-0xf.fffffp+124,
 	false,
-	-INFINITY,
-	-INFINITY,
+	-INF,
+	-INF,
 	-0xf.ffffffffffff8p+1020,
 	-0xf.ffffffffffff8p+1020,
-	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.ffffffffffff8p+1020L,
-	-0xf.ffffffffffff8p+1020L,
-	true,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	true,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	false,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	true,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L),
+	true,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020,
+	true,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020,
+	false,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020,
+	true,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020),
   TEST ("-17976931348623158079372897140530341507993413271003782693617"
 	"377898044496829276475094664901797758720709633028641669288791"
 	"094655554785194040263065748867150582068190890200070838367627"
@@ -2355,40 +2035,35 @@ static const struct test tests[] = {
 	"493647529271907416844436551070434271155969950809304288017790"
 	"4174497792.001",
 	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffp+124f,
-	-0xf.fffffp+124f,
+	-INF,
+	-INF,
+	-0xf.fffffp+124,
+	-0xf.fffffp+124,
 	false,
-	-INFINITY,
-	-INFINITY,
+	-INF,
+	-INF,
 	-0xf.ffffffffffff8p+1020,
 	-0xf.ffffffffffff8p+1020,
 	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.ffffffffffff8p+1020L,
-	-0xf.ffffffffffff8p+1020L,
-	false,
-	-0xf.ffffffffffffc01p+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	false,
-	-0xf.ffffffffffffc01p+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	false,
-	-0xf.ffffffffffffc0000000000004p+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	false,
-	-0xf.ffffffffffffc000000000000008p+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L,
-	-0xf.ffffffffffffcp+1020L),
+	-0xf.ffffffffffffc01p+1020,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020,
+	false,
+	-0xf.ffffffffffffc01p+1020,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020,
+	false,
+	-0xf.ffffffffffffc0000000000004p+1020,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020,
+	false,
+	-0xf.ffffffffffffc000000000000008p+1020,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020,
+	-0xf.ffffffffffffcp+1020),
   TEST ("118973149535723176505351158982948866796625400469556721895649"
 	"927756249918185172720476044944290457046138433056764616744328"
 	"666255526748948793023632513609765434237723241753648908036202"
@@ -2473,40 +2148,35 @@ static const struct test tests[] = {
 	"578031503869424406179027994752890226443351619365453243328968"
 	"8740976918527.999",
 	false,
-	0xf.fffffp+124f,
-	INFINITY,
-	0xf.fffffp+124f,
-	INFINITY,
+	0xf.fffffp+124,
+	INF,
+	0xf.fffffp+124,
+	INF,
 	false,
 	0xf.ffffffffffff8p+1020,
-	INFINITY,
+	INF,
 	0xf.ffffffffffff8p+1020,
-	INFINITY,
-	false,
-	0xf.ffffffffffff8p+1020L,
-	INFINITY,
-	0xf.ffffffffffff8p+1020L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffffp+16380L,
-	0xf.fffffffffffffffp+16380L,
-	0xf.fffffffffffffffp+16380L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffffp+16380L,
-	0xf.fffffffffffffffp+16380L,
-	0xf.fffffffffffffffp+16380L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffffffffffffffcp+1020L,
-	INFINITY,
-	0xf.fffffffffffffffffffffffffcp+1020L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffff7fffffffffff8p+16380L,
-	0xf.fffffffffffffff8p+16380L,
-	0xf.fffffffffffffff7fffffffffff8p+16380L,
-	0xf.fffffffffffffff8p+16380L),
+	INF,
+	false,
+	0xf.fffffffffffffffp+16380,
+	0xf.fffffffffffffffp+16380,
+	0xf.fffffffffffffffp+16380,
+	INF,
+	false,
+	0xf.fffffffffffffffp+16380,
+	0xf.fffffffffffffffp+16380,
+	0xf.fffffffffffffffp+16380,
+	INF,
+	false,
+	0xf.fffffffffffffffffffffffffcp+1020,
+	INF,
+	0xf.fffffffffffffffffffffffffcp+1020,
+	INF,
+	false,
+	0xf.fffffffffffffff7fffffffffff8p+16380,
+	0xf.fffffffffffffff8p+16380,
+	0xf.fffffffffffffff7fffffffffff8p+16380,
+	0xf.fffffffffffffff8p+16380),
   TEST ("118973149535723176505351158982948866796625400469556721895649"
 	"927756249918185172720476044944290457046138433056764616744328"
 	"666255526748948793023632513609765434237723241753648908036202"
@@ -2591,40 +2261,35 @@ static const struct test tests[] = {
 	"578031503869424406179027994752890226443351619365453243328968"
 	"8740976918528",
 	false,
-	0xf.fffffp+124f,
-	INFINITY,
-	0xf.fffffp+124f,
-	INFINITY,
+	0xf.fffffp+124,
+	INF,
+	0xf.fffffp+124,
+	INF,
 	false,
 	0xf.ffffffffffff8p+1020,
-	INFINITY,
+	INF,
 	0xf.ffffffffffff8p+1020,
-	INFINITY,
-	false,
-	0xf.ffffffffffff8p+1020L,
-	INFINITY,
-	0xf.ffffffffffff8p+1020L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffffp+16380L,
-	INFINITY,
-	0xf.fffffffffffffffp+16380L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffffp+16380L,
-	INFINITY,
-	0xf.fffffffffffffffp+16380L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffffffffffffffcp+1020L,
-	INFINITY,
-	0xf.fffffffffffffffffffffffffcp+1020L,
-	INFINITY,
-	true,
-	0xf.fffffffffffffff8p+16380L,
-	0xf.fffffffffffffff8p+16380L,
-	0xf.fffffffffffffff8p+16380L,
-	0xf.fffffffffffffff8p+16380L),
+	INF,
+	false,
+	0xf.fffffffffffffffp+16380,
+	INF,
+	0xf.fffffffffffffffp+16380,
+	INF,
+	false,
+	0xf.fffffffffffffffp+16380,
+	INF,
+	0xf.fffffffffffffffp+16380,
+	INF,
+	false,
+	0xf.fffffffffffffffffffffffffcp+1020,
+	INF,
+	0xf.fffffffffffffffffffffffffcp+1020,
+	INF,
+	true,
+	0xf.fffffffffffffff8p+16380,
+	0xf.fffffffffffffff8p+16380,
+	0xf.fffffffffffffff8p+16380,
+	0xf.fffffffffffffff8p+16380),
   TEST ("118973149535723176505351158982948866796625400469556721895649"
 	"927756249918185172720476044944290457046138433056764616744328"
 	"666255526748948793023632513609765434237723241753648908036202"
@@ -2709,40 +2374,35 @@ static const struct test tests[] = {
 	"578031503869424406179027994752890226443351619365453243328968"
 	"8740976918528.001",
 	false,
-	0xf.fffffp+124f,
-	INFINITY,
-	0xf.fffffp+124f,
-	INFINITY,
+	0xf.fffffp+124,
+	INF,
+	0xf.fffffp+124,
+	INF,
 	false,
 	0xf.ffffffffffff8p+1020,
-	INFINITY,
+	INF,
 	0xf.ffffffffffff8p+1020,
-	INFINITY,
-	false,
-	0xf.ffffffffffff8p+1020L,
-	INFINITY,
-	0xf.ffffffffffff8p+1020L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffffp+16380L,
-	INFINITY,
-	0xf.fffffffffffffffp+16380L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffffp+16380L,
-	INFINITY,
-	0xf.fffffffffffffffp+16380L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffffffffffffffcp+1020L,
-	INFINITY,
-	0xf.fffffffffffffffffffffffffcp+1020L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffff8p+16380L,
-	0xf.fffffffffffffff8p+16380L,
-	0xf.fffffffffffffff8p+16380L,
-	0xf.fffffffffffffff8000000000008p+16380L),
+	INF,
+	false,
+	0xf.fffffffffffffffp+16380,
+	INF,
+	0xf.fffffffffffffffp+16380,
+	INF,
+	false,
+	0xf.fffffffffffffffp+16380,
+	INF,
+	0xf.fffffffffffffffp+16380,
+	INF,
+	false,
+	0xf.fffffffffffffffffffffffffcp+1020,
+	INF,
+	0xf.fffffffffffffffffffffffffcp+1020,
+	INF,
+	false,
+	0xf.fffffffffffffff8p+16380,
+	0xf.fffffffffffffff8p+16380,
+	0xf.fffffffffffffff8p+16380,
+	0xf.fffffffffffffff8000000000008p+16380),
   TEST ("-11897314953572317650535115898294886679662540046955672189564"
 	"992775624991818517272047604494429045704613843305676461674432"
 	"866625552674894879302363251360976543423772324175364890803620"
@@ -2827,40 +2487,35 @@ static const struct test tests[] = {
 	"557803150386942440617902799475289022644335161936545324332896"
 	"88740976918527.999",
 	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffp+124f,
-	-0xf.fffffp+124f,
+	-INF,
+	-INF,
+	-0xf.fffffp+124,
+	-0xf.fffffp+124,
 	false,
-	-INFINITY,
-	-INFINITY,
+	-INF,
+	-INF,
 	-0xf.ffffffffffff8p+1020,
 	-0xf.ffffffffffff8p+1020,
 	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.ffffffffffff8p+1020L,
-	-0xf.ffffffffffff8p+1020L,
-	false,
-	-INFINITY,
-	-0xf.fffffffffffffffp+16380L,
-	-0xf.fffffffffffffffp+16380L,
-	-0xf.fffffffffffffffp+16380L,
-	false,
-	-INFINITY,
-	-0xf.fffffffffffffffp+16380L,
-	-0xf.fffffffffffffffp+16380L,
-	-0xf.fffffffffffffffp+16380L,
-	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffffffffffffffffffffffcp+1020L,
-	-0xf.fffffffffffffffffffffffffcp+1020L,
-	false,
-	-0xf.fffffffffffffff8p+16380L,
-	-0xf.fffffffffffffff8p+16380L,
-	-0xf.fffffffffffffff7fffffffffff8p+16380L,
-	-0xf.fffffffffffffff7fffffffffff8p+16380L),
+	-INF,
+	-0xf.fffffffffffffffp+16380,
+	-0xf.fffffffffffffffp+16380,
+	-0xf.fffffffffffffffp+16380,
+	false,
+	-INF,
+	-0xf.fffffffffffffffp+16380,
+	-0xf.fffffffffffffffp+16380,
+	-0xf.fffffffffffffffp+16380,
+	false,
+	-INF,
+	-INF,
+	-0xf.fffffffffffffffffffffffffcp+1020,
+	-0xf.fffffffffffffffffffffffffcp+1020,
+	false,
+	-0xf.fffffffffffffff8p+16380,
+	-0xf.fffffffffffffff8p+16380,
+	-0xf.fffffffffffffff7fffffffffff8p+16380,
+	-0xf.fffffffffffffff7fffffffffff8p+16380),
   TEST ("-11897314953572317650535115898294886679662540046955672189564"
 	"992775624991818517272047604494429045704613843305676461674432"
 	"866625552674894879302363251360976543423772324175364890803620"
@@ -2945,40 +2600,35 @@ static const struct test tests[] = {
 	"557803150386942440617902799475289022644335161936545324332896"
 	"88740976918528",
 	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffp+124f,
-	-0xf.fffffp+124f,
+	-INF,
+	-INF,
+	-0xf.fffffp+124,
+	-0xf.fffffp+124,
 	false,
-	-INFINITY,
-	-INFINITY,
+	-INF,
+	-INF,
 	-0xf.ffffffffffff8p+1020,
 	-0xf.ffffffffffff8p+1020,
 	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.ffffffffffff8p+1020L,
-	-0xf.ffffffffffff8p+1020L,
-	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffffffffffffp+16380L,
-	-0xf.fffffffffffffffp+16380L,
-	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffffffffffffp+16380L,
-	-0xf.fffffffffffffffp+16380L,
-	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffffffffffffffffffffffcp+1020L,
-	-0xf.fffffffffffffffffffffffffcp+1020L,
-	true,
-	-0xf.fffffffffffffff8p+16380L,
-	-0xf.fffffffffffffff8p+16380L,
-	-0xf.fffffffffffffff8p+16380L,
-	-0xf.fffffffffffffff8p+16380L),
+	-INF,
+	-INF,
+	-0xf.fffffffffffffffp+16380,
+	-0xf.fffffffffffffffp+16380,
+	false,
+	-INF,
+	-INF,
+	-0xf.fffffffffffffffp+16380,
+	-0xf.fffffffffffffffp+16380,
+	false,
+	-INF,
+	-INF,
+	-0xf.fffffffffffffffffffffffffcp+1020,
+	-0xf.fffffffffffffffffffffffffcp+1020,
+	true,
+	-0xf.fffffffffffffff8p+16380,
+	-0xf.fffffffffffffff8p+16380,
+	-0xf.fffffffffffffff8p+16380,
+	-0xf.fffffffffffffff8p+16380),
   TEST ("-11897314953572317650535115898294886679662540046955672189564"
 	"992775624991818517272047604494429045704613843305676461674432"
 	"866625552674894879302363251360976543423772324175364890803620"
@@ -3063,40 +2713,35 @@ static const struct test tests[] = {
 	"557803150386942440617902799475289022644335161936545324332896"
 	"88740976918528.001",
 	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffp+124f,
-	-0xf.fffffp+124f,
+	-INF,
+	-INF,
+	-0xf.fffffp+124,
+	-0xf.fffffp+124,
 	false,
-	-INFINITY,
-	-INFINITY,
+	-INF,
+	-INF,
 	-0xf.ffffffffffff8p+1020,
 	-0xf.ffffffffffff8p+1020,
 	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.ffffffffffff8p+1020L,
-	-0xf.ffffffffffff8p+1020L,
-	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffffffffffffp+16380L,
-	-0xf.fffffffffffffffp+16380L,
-	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffffffffffffp+16380L,
-	-0xf.fffffffffffffffp+16380L,
-	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffffffffffffffffffffffcp+1020L,
-	-0xf.fffffffffffffffffffffffffcp+1020L,
-	false,
-	-0xf.fffffffffffffff8000000000008p+16380L,
-	-0xf.fffffffffffffff8p+16380L,
-	-0xf.fffffffffffffff8p+16380L,
-	-0xf.fffffffffffffff8p+16380L),
+	-INF,
+	-INF,
+	-0xf.fffffffffffffffp+16380,
+	-0xf.fffffffffffffffp+16380,
+	false,
+	-INF,
+	-INF,
+	-0xf.fffffffffffffffp+16380,
+	-0xf.fffffffffffffffp+16380,
+	false,
+	-INF,
+	-INF,
+	-0xf.fffffffffffffffffffffffffcp+1020,
+	-0xf.fffffffffffffffffffffffffcp+1020,
+	false,
+	-0xf.fffffffffffffff8000000000008p+16380,
+	-0xf.fffffffffffffff8p+16380,
+	-0xf.fffffffffffffff8p+16380,
+	-0xf.fffffffffffffff8p+16380),
   TEST ("118973149535723176508575932662800707347995686986910214150118"
 	"685272271246896789803961473130416053705672050873552479421805"
 	"932646640744124594447361172514341324846716679654551308018400"
@@ -3181,40 +2826,35 @@ static const struct test tests[] = {
 	"972233447491583165728635513802591543441145939539353470970452"
 	"5536550715391.999",
 	false,
-	0xf.fffffp+124f,
-	INFINITY,
-	0xf.fffffp+124f,
-	INFINITY,
+	0xf.fffffp+124,
+	INF,
+	0xf.fffffp+124,
+	INF,
 	false,
 	0xf.ffffffffffff8p+1020,
-	INFINITY,
+	INF,
 	0xf.ffffffffffff8p+1020,
-	INFINITY,
-	false,
-	0xf.ffffffffffff8p+1020L,
-	INFINITY,
-	0xf.ffffffffffff8p+1020L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffffp+16380L,
-	INFINITY,
-	0xf.fffffffffffffffp+16380L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffffp+16380L,
-	INFINITY,
-	0xf.fffffffffffffffp+16380L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffffffffffffffcp+1020L,
-	INFINITY,
-	0xf.fffffffffffffffffffffffffcp+1020L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffffffffffffffff8p+16380L,
-	0xf.fffffffffffffffffffffffffff8p+16380L,
-	0xf.fffffffffffffffffffffffffff8p+16380L,
-	INFINITY),
+	INF,
+	false,
+	0xf.fffffffffffffffp+16380,
+	INF,
+	0xf.fffffffffffffffp+16380,
+	INF,
+	false,
+	0xf.fffffffffffffffp+16380,
+	INF,
+	0xf.fffffffffffffffp+16380,
+	INF,
+	false,
+	0xf.fffffffffffffffffffffffffcp+1020,
+	INF,
+	0xf.fffffffffffffffffffffffffcp+1020,
+	INF,
+	false,
+	0xf.fffffffffffffffffffffffffff8p+16380,
+	0xf.fffffffffffffffffffffffffff8p+16380,
+	0xf.fffffffffffffffffffffffffff8p+16380,
+	INF),
   TEST ("118973149535723176508575932662800707347995686986910214150118"
 	"685272271246896789803961473130416053705672050873552479421805"
 	"932646640744124594447361172514341324846716679654551308018400"
@@ -3299,40 +2939,35 @@ static const struct test tests[] = {
 	"972233447491583165728635513802591543441145939539353470970452"
 	"5536550715392",
 	false,
-	0xf.fffffp+124f,
-	INFINITY,
-	0xf.fffffp+124f,
-	INFINITY,
+	0xf.fffffp+124,
+	INF,
+	0xf.fffffp+124,
+	INF,
 	false,
 	0xf.ffffffffffff8p+1020,
-	INFINITY,
+	INF,
 	0xf.ffffffffffff8p+1020,
-	INFINITY,
-	false,
-	0xf.ffffffffffff8p+1020L,
-	INFINITY,
-	0xf.ffffffffffff8p+1020L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffffp+16380L,
-	INFINITY,
-	0xf.fffffffffffffffp+16380L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffffp+16380L,
-	INFINITY,
-	0xf.fffffffffffffffp+16380L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffffffffffffffcp+1020L,
-	INFINITY,
-	0xf.fffffffffffffffffffffffffcp+1020L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffffffffffffffff8p+16380L,
-	INFINITY,
-	0xf.fffffffffffffffffffffffffff8p+16380L,
-	INFINITY),
+	INF,
+	false,
+	0xf.fffffffffffffffp+16380,
+	INF,
+	0xf.fffffffffffffffp+16380,
+	INF,
+	false,
+	0xf.fffffffffffffffp+16380,
+	INF,
+	0xf.fffffffffffffffp+16380,
+	INF,
+	false,
+	0xf.fffffffffffffffffffffffffcp+1020,
+	INF,
+	0xf.fffffffffffffffffffffffffcp+1020,
+	INF,
+	false,
+	0xf.fffffffffffffffffffffffffff8p+16380,
+	INF,
+	0xf.fffffffffffffffffffffffffff8p+16380,
+	INF),
   TEST ("118973149535723176508575932662800707347995686986910214150118"
 	"685272271246896789803961473130416053705672050873552479421805"
 	"932646640744124594447361172514341324846716679654551308018400"
@@ -3417,40 +3052,35 @@ static const struct test tests[] = {
 	"972233447491583165728635513802591543441145939539353470970452"
 	"5536550715392.001",
 	false,
-	0xf.fffffp+124f,
-	INFINITY,
-	0xf.fffffp+124f,
-	INFINITY,
+	0xf.fffffp+124,
+	INF,
+	0xf.fffffp+124,
+	INF,
 	false,
 	0xf.ffffffffffff8p+1020,
-	INFINITY,
+	INF,
 	0xf.ffffffffffff8p+1020,
-	INFINITY,
-	false,
-	0xf.ffffffffffff8p+1020L,
-	INFINITY,
-	0xf.ffffffffffff8p+1020L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffffp+16380L,
-	INFINITY,
-	0xf.fffffffffffffffp+16380L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffffp+16380L,
-	INFINITY,
-	0xf.fffffffffffffffp+16380L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffffffffffffffcp+1020L,
-	INFINITY,
-	0xf.fffffffffffffffffffffffffcp+1020L,
-	INFINITY,
-	false,
-	0xf.fffffffffffffffffffffffffff8p+16380L,
-	INFINITY,
-	0xf.fffffffffffffffffffffffffff8p+16380L,
-	INFINITY),
+	INF,
+	false,
+	0xf.fffffffffffffffp+16380,
+	INF,
+	0xf.fffffffffffffffp+16380,
+	INF,
+	false,
+	0xf.fffffffffffffffp+16380,
+	INF,
+	0xf.fffffffffffffffp+16380,
+	INF,
+	false,
+	0xf.fffffffffffffffffffffffffcp+1020,
+	INF,
+	0xf.fffffffffffffffffffffffffcp+1020,
+	INF,
+	false,
+	0xf.fffffffffffffffffffffffffff8p+16380,
+	INF,
+	0xf.fffffffffffffffffffffffffff8p+16380,
+	INF),
   TEST ("-11897314953572317650857593266280070734799568698691021415011"
 	"868527227124689678980396147313041605370567205087355247942180"
 	"593264664074412459444736117251434132484671667965455130801840"
@@ -3535,40 +3165,35 @@ static const struct test tests[] = {
 	"097223344749158316572863551380259154344114593953935347097045"
 	"25536550715391.999",
 	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffp+124f,
-	-0xf.fffffp+124f,
+	-INF,
+	-INF,
+	-0xf.fffffp+124,
+	-0xf.fffffp+124,
 	false,
-	-INFINITY,
-	-INFINITY,
+	-INF,
+	-INF,
 	-0xf.ffffffffffff8p+1020,
 	-0xf.ffffffffffff8p+1020,
 	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.ffffffffffff8p+1020L,
-	-0xf.ffffffffffff8p+1020L,
-	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffffffffffffp+16380L,
-	-0xf.fffffffffffffffp+16380L,
-	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffffffffffffp+16380L,
-	-0xf.fffffffffffffffp+16380L,
-	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffffffffffffffffffffffcp+1020L,
-	-0xf.fffffffffffffffffffffffffcp+1020L,
-	false,
-	-INFINITY,
-	-0xf.fffffffffffffffffffffffffff8p+16380L,
-	-0xf.fffffffffffffffffffffffffff8p+16380L,
-	-0xf.fffffffffffffffffffffffffff8p+16380L),
+	-INF,
+	-INF,
+	-0xf.fffffffffffffffp+16380,
+	-0xf.fffffffffffffffp+16380,
+	false,
+	-INF,
+	-INF,
+	-0xf.fffffffffffffffp+16380,
+	-0xf.fffffffffffffffp+16380,
+	false,
+	-INF,
+	-INF,
+	-0xf.fffffffffffffffffffffffffcp+1020,
+	-0xf.fffffffffffffffffffffffffcp+1020,
+	false,
+	-INF,
+	-0xf.fffffffffffffffffffffffffff8p+16380,
+	-0xf.fffffffffffffffffffffffffff8p+16380,
+	-0xf.fffffffffffffffffffffffffff8p+16380),
   TEST ("-11897314953572317650857593266280070734799568698691021415011"
 	"868527227124689678980396147313041605370567205087355247942180"
 	"593264664074412459444736117251434132484671667965455130801840"
@@ -3653,40 +3278,35 @@ static const struct test tests[] = {
 	"097223344749158316572863551380259154344114593953935347097045"
 	"25536550715392",
 	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffp+124f,
-	-0xf.fffffp+124f,
+	-INF,
+	-INF,
+	-0xf.fffffp+124,
+	-0xf.fffffp+124,
 	false,
-	-INFINITY,
-	-INFINITY,
+	-INF,
+	-INF,
 	-0xf.ffffffffffff8p+1020,
 	-0xf.ffffffffffff8p+1020,
 	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.ffffffffffff8p+1020L,
-	-0xf.ffffffffffff8p+1020L,
-	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffffffffffffp+16380L,
-	-0xf.fffffffffffffffp+16380L,
-	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffffffffffffp+16380L,
-	-0xf.fffffffffffffffp+16380L,
-	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffffffffffffffffffffffcp+1020L,
-	-0xf.fffffffffffffffffffffffffcp+1020L,
-	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffffffffffffffffffffffff8p+16380L,
-	-0xf.fffffffffffffffffffffffffff8p+16380L),
+	-INF,
+	-INF,
+	-0xf.fffffffffffffffp+16380,
+	-0xf.fffffffffffffffp+16380,
+	false,
+	-INF,
+	-INF,
+	-0xf.fffffffffffffffp+16380,
+	-0xf.fffffffffffffffp+16380,
+	false,
+	-INF,
+	-INF,
+	-0xf.fffffffffffffffffffffffffcp+1020,
+	-0xf.fffffffffffffffffffffffffcp+1020,
+	false,
+	-INF,
+	-INF,
+	-0xf.fffffffffffffffffffffffffff8p+16380,
+	-0xf.fffffffffffffffffffffffffff8p+16380),
   TEST ("-11897314953572317650857593266280070734799568698691021415011"
 	"868527227124689678980396147313041605370567205087355247942180"
 	"593264664074412459444736117251434132484671667965455130801840"
@@ -3771,484 +3391,419 @@ static const struct test tests[] = {
 	"097223344749158316572863551380259154344114593953935347097045"
 	"25536550715392.001",
 	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffp+124f,
-	-0xf.fffffp+124f,
+	-INF,
+	-INF,
+	-0xf.fffffp+124,
+	-0xf.fffffp+124,
 	false,
-	-INFINITY,
-	-INFINITY,
+	-INF,
+	-INF,
 	-0xf.ffffffffffff8p+1020,
 	-0xf.ffffffffffff8p+1020,
 	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.ffffffffffff8p+1020L,
-	-0xf.ffffffffffff8p+1020L,
-	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffffffffffffp+16380L,
-	-0xf.fffffffffffffffp+16380L,
-	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffffffffffffp+16380L,
-	-0xf.fffffffffffffffp+16380L,
-	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffffffffffffffffffffffcp+1020L,
-	-0xf.fffffffffffffffffffffffffcp+1020L,
-	false,
-	-INFINITY,
-	-INFINITY,
-	-0xf.fffffffffffffffffffffffffff8p+16380L,
-	-0xf.fffffffffffffffffffffffffff8p+16380L),
+	-INF,
+	-INF,
+	-0xf.fffffffffffffffp+16380,
+	-0xf.fffffffffffffffp+16380,
+	false,
+	-INF,
+	-INF,
+	-0xf.fffffffffffffffp+16380,
+	-0xf.fffffffffffffffp+16380,
+	false,
+	-INF,
+	-INF,
+	-0xf.fffffffffffffffffffffffffcp+1020,
+	-0xf.fffffffffffffffffffffffffcp+1020,
+	false,
+	-INF,
+	-INF,
+	-0xf.fffffffffffffffffffffffffff8p+16380,
+	-0xf.fffffffffffffffffffffffffff8p+16380),
   TEST ("2.1019476964872256063855943749348741969203929128147736576356"
 	"0242583468662402879090222995728254318237304687499e-45",
 	false,
-	0x8p-152f,
-	0x8p-152f,
-	0x8p-152f,
-	0x1p-148f,
+	0x8p-152,
+	0x8p-152,
+	0x8p-152,
+	0x1p-148,
 	false,
 	0xb.ffffffffffff8p-152,
 	0xcp-152,
 	0xb.ffffffffffff8p-152,
 	0xcp-152,
 	false,
-	0xb.ffffffffffff8p-152L,
-	0xcp-152L,
-	0xb.ffffffffffff8p-152L,
-	0xcp-152L,
-	false,
-	0xb.fffffffffffffffp-152L,
-	0xcp-152L,
-	0xb.fffffffffffffffp-152L,
-	0xcp-152L,
-	false,
-	0xb.fffffffffffffffp-152L,
-	0xcp-152L,
-	0xb.fffffffffffffffp-152L,
-	0xcp-152L,
-	false,
-	0xb.fffffffffffffffffffffffffcp-152L,
-	0xcp-152L,
-	0xb.fffffffffffffffffffffffffcp-152L,
-	0xcp-152L,
-	false,
-	0xb.fffffffffffffffffffffffffff8p-152L,
-	0xcp-152L,
-	0xb.fffffffffffffffffffffffffff8p-152L,
-	0xcp-152L),
+	0xb.fffffffffffffffp-152,
+	0xcp-152,
+	0xb.fffffffffffffffp-152,
+	0xcp-152,
+	false,
+	0xb.fffffffffffffffp-152,
+	0xcp-152,
+	0xb.fffffffffffffffp-152,
+	0xcp-152,
+	false,
+	0xb.fffffffffffffffffffffffffcp-152,
+	0xcp-152,
+	0xb.fffffffffffffffffffffffffcp-152,
+	0xcp-152,
+	false,
+	0xb.fffffffffffffffffffffffffff8p-152,
+	0xcp-152,
+	0xb.fffffffffffffffffffffffffff8p-152,
+	0xcp-152),
   TEST ("2.1019476964872256063855943749348741969203929128147736576356"
 	"02425834686624028790902229957282543182373046875e-45",
 	true,
-	0x8p-152f,
-	0x1p-148f,
-	0x8p-152f,
-	0x1p-148f,
+	0x8p-152,
+	0x1p-148,
+	0x8p-152,
+	0x1p-148,
+	true,
+	0xcp-152,
+	0xcp-152,
+	0xcp-152,
+	0xcp-152,
+	true,
+	0xcp-152,
+	0xcp-152,
+	0xcp-152,
+	0xcp-152,
+	true,
+	0xcp-152,
+	0xcp-152,
+	0xcp-152,
+	0xcp-152,
 	true,
 	0xcp-152,
 	0xcp-152,
 	0xcp-152,
 	0xcp-152,
 	true,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	true,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	true,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	true,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	true,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L),
+	0xcp-152,
+	0xcp-152,
+	0xcp-152,
+	0xcp-152),
   TEST ("2.1019476964872256063855943749348741969203929128147736576356"
 	"0242583468662402879090222995728254318237304687501e-45",
 	false,
-	0x8p-152f,
-	0x1p-148f,
-	0x8p-152f,
-	0x1p-148f,
+	0x8p-152,
+	0x1p-148,
+	0x8p-152,
+	0x1p-148,
 	false,
 	0xcp-152,
 	0xcp-152,
 	0xcp-152,
 	0xc.0000000000008p-152,
 	false,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	0xc.0000000000008p-152L,
-	false,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	0xc.000000000000001p-152L,
-	false,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	0xc.000000000000001p-152L,
-	false,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	0xc.00000000000000000000000004p-152L,
-	false,
-	0xcp-152L,
-	0xcp-152L,
-	0xcp-152L,
-	0xc.0000000000000000000000000008p-152L),
+	0xcp-152,
+	0xcp-152,
+	0xcp-152,
+	0xc.000000000000001p-152,
+	false,
+	0xcp-152,
+	0xcp-152,
+	0xcp-152,
+	0xc.000000000000001p-152,
+	false,
+	0xcp-152,
+	0xcp-152,
+	0xcp-152,
+	0xc.00000000000000000000000004p-152,
+	false,
+	0xcp-152,
+	0xcp-152,
+	0xcp-152,
+	0xc.0000000000000000000000000008p-152),
   TEST ("-2.101947696487225606385594374934874196920392912814773657635"
 	"60242583468662402879090222995728254318237304687499e-45",
 	false,
-	-0x1p-148f,
-	-0x8p-152f,
-	-0x8p-152f,
-	-0x8p-152f,
+	-0x1p-148,
+	-0x8p-152,
+	-0x8p-152,
+	-0x8p-152,
 	false,
 	-0xcp-152,
 	-0xcp-152,
 	-0xb.ffffffffffff8p-152,
 	-0xb.ffffffffffff8p-152,
 	false,
-	-0xcp-152L,
-	-0xcp-152L,
-	-0xb.ffffffffffff8p-152L,
-	-0xb.ffffffffffff8p-152L,
-	false,
-	-0xcp-152L,
-	-0xcp-152L,
-	-0xb.fffffffffffffffp-152L,
-	-0xb.fffffffffffffffp-152L,
-	false,
-	-0xcp-152L,
-	-0xcp-152L,
-	-0xb.fffffffffffffffp-152L,
-	-0xb.fffffffffffffffp-152L,
-	false,
-	-0xcp-152L,
-	-0xcp-152L,
-	-0xb.fffffffffffffffffffffffffcp-152L,
-	-0xb.fffffffffffffffffffffffffcp-152L,
-	false,
-	-0xcp-152L,
-	-0xcp-152L,
-	-0xb.fffffffffffffffffffffffffff8p-152L,
-	-0xb.fffffffffffffffffffffffffff8p-152L),
+	-0xcp-152,
+	-0xcp-152,
+	-0xb.fffffffffffffffp-152,
+	-0xb.fffffffffffffffp-152,
+	false,
+	-0xcp-152,
+	-0xcp-152,
+	-0xb.fffffffffffffffp-152,
+	-0xb.fffffffffffffffp-152,
+	false,
+	-0xcp-152,
+	-0xcp-152,
+	-0xb.fffffffffffffffffffffffffcp-152,
+	-0xb.fffffffffffffffffffffffffcp-152,
+	false,
+	-0xcp-152,
+	-0xcp-152,
+	-0xb.fffffffffffffffffffffffffff8p-152,
+	-0xb.fffffffffffffffffffffffffff8p-152),
   TEST ("-2.101947696487225606385594374934874196920392912814773657635"
 	"602425834686624028790902229957282543182373046875e-45",
 	true,
-	-0x1p-148f,
-	-0x1p-148f,
-	-0x8p-152f,
-	-0x8p-152f,
+	-0x1p-148,
+	-0x1p-148,
+	-0x8p-152,
+	-0x8p-152,
+	true,
+	-0xcp-152,
+	-0xcp-152,
+	-0xcp-152,
+	-0xcp-152,
+	true,
+	-0xcp-152,
+	-0xcp-152,
+	-0xcp-152,
+	-0xcp-152,
 	true,
 	-0xcp-152,
 	-0xcp-152,
 	-0xcp-152,
 	-0xcp-152,
 	true,
-	-0xcp-152L,
-	-0xcp-152L,
-	-0xcp-152L,
-	-0xcp-152L,
-	true,
-	-0xcp-152L,
-	-0xcp-152L,
-	-0xcp-152L,
-	-0xcp-152L,
-	true,
-	-0xcp-152L,
-	-0xcp-152L,
-	-0xcp-152L,
-	-0xcp-152L,
-	true,
-	-0xcp-152L,
-	-0xcp-152L,
-	-0xcp-152L,
-	-0xcp-152L,
-	true,
-	-0xcp-152L,
-	-0xcp-152L,
-	-0xcp-152L,
-	-0xcp-152L),
+	-0xcp-152,
+	-0xcp-152,
+	-0xcp-152,
+	-0xcp-152,
+	true,
+	-0xcp-152,
+	-0xcp-152,
+	-0xcp-152,
+	-0xcp-152),
   TEST ("-2.101947696487225606385594374934874196920392912814773657635"
 	"60242583468662402879090222995728254318237304687501e-45",
 	false,
-	-0x1p-148f,
-	-0x1p-148f,
-	-0x8p-152f,
-	-0x8p-152f,
+	-0x1p-148,
+	-0x1p-148,
+	-0x8p-152,
+	-0x8p-152,
 	false,
 	-0xc.0000000000008p-152,
 	-0xcp-152,
 	-0xcp-152,
 	-0xcp-152,
 	false,
-	-0xc.0000000000008p-152L,
-	-0xcp-152L,
-	-0xcp-152L,
-	-0xcp-152L,
-	false,
-	-0xc.000000000000001p-152L,
-	-0xcp-152L,
-	-0xcp-152L,
-	-0xcp-152L,
-	false,
-	-0xc.000000000000001p-152L,
-	-0xcp-152L,
-	-0xcp-152L,
-	-0xcp-152L,
-	false,
-	-0xc.00000000000000000000000004p-152L,
-	-0xcp-152L,
-	-0xcp-152L,
-	-0xcp-152L,
-	false,
-	-0xc.0000000000000000000000000008p-152L,
-	-0xcp-152L,
-	-0xcp-152L,
-	-0xcp-152L),
+	-0xc.000000000000001p-152,
+	-0xcp-152,
+	-0xcp-152,
+	-0xcp-152,
+	false,
+	-0xc.000000000000001p-152,
+	-0xcp-152,
+	-0xcp-152,
+	-0xcp-152,
+	false,
+	-0xc.00000000000000000000000004p-152,
+	-0xcp-152,
+	-0xcp-152,
+	-0xcp-152,
+	false,
+	-0xc.0000000000000000000000000008p-152,
+	-0xcp-152,
+	-0xcp-152,
+	-0xcp-152),
   TEST ("3.5032461608120426773093239582247903282006548546912894293926"
 	"7070972447770671465150371659547090530395507812499e-45",
 	false,
-	0x1p-148f,
-	0x1p-148f,
-	0x1p-148f,
-	0x1.8p-148f,
+	0x1p-148,
+	0x1p-148,
+	0x1p-148,
+	0x1.8p-148,
 	false,
 	0x1.3ffffffffffffp-148,
 	0x1.4p-148,
 	0x1.3ffffffffffffp-148,
 	0x1.4p-148,
 	false,
-	0x1.3ffffffffffffp-148L,
-	0x1.4p-148L,
-	0x1.3ffffffffffffp-148L,
-	0x1.4p-148L,
-	false,
-	0x1.3ffffffffffffffep-148L,
-	0x1.4p-148L,
-	0x1.3ffffffffffffffep-148L,
-	0x1.4p-148L,
-	false,
-	0x1.3ffffffffffffffep-148L,
-	0x1.4p-148L,
-	0x1.3ffffffffffffffep-148L,
-	0x1.4p-148L,
-	false,
-	0x1.3fffffffffffffffffffffffff8p-148L,
-	0x1.4p-148L,
-	0x1.3fffffffffffffffffffffffff8p-148L,
-	0x1.4p-148L,
-	false,
-	0x1.3fffffffffffffffffffffffffffp-148L,
-	0x1.4p-148L,
-	0x1.3fffffffffffffffffffffffffffp-148L,
-	0x1.4p-148L),
+	0x1.3ffffffffffffffep-148,
+	0x1.4p-148,
+	0x1.3ffffffffffffffep-148,
+	0x1.4p-148,
+	false,
+	0x1.3ffffffffffffffep-148,
+	0x1.4p-148,
+	0x1.3ffffffffffffffep-148,
+	0x1.4p-148,
+	false,
+	0x1.3fffffffffffffffffffffffff8p-148,
+	0x1.4p-148,
+	0x1.3fffffffffffffffffffffffff8p-148,
+	0x1.4p-148,
+	false,
+	0x1.3fffffffffffffffffffffffffffp-148,
+	0x1.4p-148,
+	0x1.3fffffffffffffffffffffffffffp-148,
+	0x1.4p-148),
   TEST ("3.5032461608120426773093239582247903282006548546912894293926"
 	"70709724477706714651503716595470905303955078125e-45",
 	true,
-	0x1p-148f,
-	0x1p-148f,
-	0x1p-148f,
-	0x1.8p-148f,
+	0x1p-148,
+	0x1p-148,
+	0x1p-148,
+	0x1.8p-148,
+	true,
+	0x1.4p-148,
+	0x1.4p-148,
+	0x1.4p-148,
+	0x1.4p-148,
+	true,
+	0x1.4p-148,
+	0x1.4p-148,
+	0x1.4p-148,
+	0x1.4p-148,
+	true,
+	0x1.4p-148,
+	0x1.4p-148,
+	0x1.4p-148,
+	0x1.4p-148,
 	true,
 	0x1.4p-148,
 	0x1.4p-148,
 	0x1.4p-148,
 	0x1.4p-148,
 	true,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	true,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	true,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	true,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	true,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	0x1.4p-148L),
+	0x1.4p-148,
+	0x1.4p-148,
+	0x1.4p-148,
+	0x1.4p-148),
   TEST ("3.5032461608120426773093239582247903282006548546912894293926"
 	"7070972447770671465150371659547090530395507812501e-45",
 	false,
-	0x1p-148f,
-	0x1.8p-148f,
-	0x1p-148f,
-	0x1.8p-148f,
+	0x1p-148,
+	0x1.8p-148,
+	0x1p-148,
+	0x1.8p-148,
 	false,
 	0x1.4p-148,
 	0x1.4p-148,
 	0x1.4p-148,
 	0x1.4000000000001p-148,
 	false,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	0x1.4000000000001p-148L,
-	false,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	0x1.4000000000000002p-148L,
-	false,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	0x1.4000000000000002p-148L,
-	false,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	0x1.400000000000000000000000008p-148L,
-	false,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	0x1.4p-148L,
-	0x1.4000000000000000000000000001p-148L),
+	0x1.4p-148,
+	0x1.4p-148,
+	0x1.4p-148,
+	0x1.4000000000000002p-148,
+	false,
+	0x1.4p-148,
+	0x1.4p-148,
+	0x1.4p-148,
+	0x1.4000000000000002p-148,
+	false,
+	0x1.4p-148,
+	0x1.4p-148,
+	0x1.4p-148,
+	0x1.400000000000000000000000008p-148,
+	false,
+	0x1.4p-148,
+	0x1.4p-148,
+	0x1.4p-148,
+	0x1.4000000000000000000000000001p-148),
   TEST ("-3.503246160812042677309323958224790328200654854691289429392"
 	"67070972447770671465150371659547090530395507812499e-45",
 	false,
-	-0x1.8p-148f,
-	-0x1p-148f,
-	-0x1p-148f,
-	-0x1p-148f,
+	-0x1.8p-148,
+	-0x1p-148,
+	-0x1p-148,
+	-0x1p-148,
 	false,
 	-0x1.4p-148,
 	-0x1.4p-148,
 	-0x1.3ffffffffffffp-148,
 	-0x1.3ffffffffffffp-148,
 	false,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	-0x1.3ffffffffffffp-148L,
-	-0x1.3ffffffffffffp-148L,
-	false,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	-0x1.3ffffffffffffffep-148L,
-	-0x1.3ffffffffffffffep-148L,
-	false,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	-0x1.3ffffffffffffffep-148L,
-	-0x1.3ffffffffffffffep-148L,
-	false,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	-0x1.3fffffffffffffffffffffffff8p-148L,
-	-0x1.3fffffffffffffffffffffffff8p-148L,
-	false,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	-0x1.3fffffffffffffffffffffffffffp-148L,
-	-0x1.3fffffffffffffffffffffffffffp-148L),
+	-0x1.4p-148,
+	-0x1.4p-148,
+	-0x1.3ffffffffffffffep-148,
+	-0x1.3ffffffffffffffep-148,
+	false,
+	-0x1.4p-148,
+	-0x1.4p-148,
+	-0x1.3ffffffffffffffep-148,
+	-0x1.3ffffffffffffffep-148,
+	false,
+	-0x1.4p-148,
+	-0x1.4p-148,
+	-0x1.3fffffffffffffffffffffffff8p-148,
+	-0x1.3fffffffffffffffffffffffff8p-148,
+	false,
+	-0x1.4p-148,
+	-0x1.4p-148,
+	-0x1.3fffffffffffffffffffffffffffp-148,
+	-0x1.3fffffffffffffffffffffffffffp-148),
   TEST ("-3.503246160812042677309323958224790328200654854691289429392"
 	"670709724477706714651503716595470905303955078125e-45",
 	true,
-	-0x1.8p-148f,
-	-0x1p-148f,
-	-0x1p-148f,
-	-0x1p-148f,
+	-0x1.8p-148,
+	-0x1p-148,
+	-0x1p-148,
+	-0x1p-148,
+	true,
+	-0x1.4p-148,
+	-0x1.4p-148,
+	-0x1.4p-148,
+	-0x1.4p-148,
+	true,
+	-0x1.4p-148,
+	-0x1.4p-148,
+	-0x1.4p-148,
+	-0x1.4p-148,
+	true,
+	-0x1.4p-148,
+	-0x1.4p-148,
+	-0x1.4p-148,
+	-0x1.4p-148,
 	true,
 	-0x1.4p-148,
 	-0x1.4p-148,
 	-0x1.4p-148,
 	-0x1.4p-148,
 	true,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	true,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	true,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	true,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	true,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	-0x1.4p-148L),
+	-0x1.4p-148,
+	-0x1.4p-148,
+	-0x1.4p-148,
+	-0x1.4p-148),
   TEST ("-3.503246160812042677309323958224790328200654854691289429392"
 	"67070972447770671465150371659547090530395507812501e-45",
 	false,
-	-0x1.8p-148f,
-	-0x1.8p-148f,
-	-0x1p-148f,
-	-0x1p-148f,
+	-0x1.8p-148,
+	-0x1.8p-148,
+	-0x1p-148,
+	-0x1p-148,
 	false,
 	-0x1.4000000000001p-148,
 	-0x1.4p-148,
 	-0x1.4p-148,
 	-0x1.4p-148,
 	false,
-	-0x1.4000000000001p-148L,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	false,
-	-0x1.4000000000000002p-148L,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	false,
-	-0x1.4000000000000002p-148L,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	false,
-	-0x1.400000000000000000000000008p-148L,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	false,
-	-0x1.4000000000000000000000000001p-148L,
-	-0x1.4p-148L,
-	-0x1.4p-148L,
-	-0x1.4p-148L),
+	-0x1.4000000000000002p-148,
+	-0x1.4p-148,
+	-0x1.4p-148,
+	-0x1.4p-148,
+	false,
+	-0x1.4000000000000002p-148,
+	-0x1.4p-148,
+	-0x1.4p-148,
+	-0x1.4p-148,
+	false,
+	-0x1.400000000000000000000000008p-148,
+	-0x1.4p-148,
+	-0x1.4p-148,
+	-0x1.4p-148,
+	false,
+	-0x1.4000000000000000000000000001p-148,
+	-0x1.4p-148,
+	-0x1.4p-148,
+	-0x1.4p-148),
   TEST ("7.4109846876186981626485318930233205854758970392148714663837"
 	"852375101326090531312779794975454245398856969484704316857659"
 	"638998506553390969459816219401617281718945106978546710679176"
@@ -4263,40 +3818,35 @@ static const struct test tests[] = {
 	"337560846003984904972149117463085539556354188641513168478436"
 	"31308023759629577398300170898437499e-324",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
+	false,
+	0x4p-1076,
+	0x4p-1076,
+	0x4p-1076,
+	0x8p-1076,
+	false,
+	0x5.fffffffffffffff8p-1076,
+	0x6p-1076,
+	0x5.fffffffffffffff8p-1076,
+	0x6p-1076,
+	false,
+	0x5.fffffffffffffff8p-1076,
+	0x6p-1076,
+	0x5.fffffffffffffff8p-1076,
+	0x6p-1076,
 	false,
 	0x4p-1076,
 	0x4p-1076,
 	0x4p-1076,
 	0x8p-1076,
 	false,
-	0x4p-1076L,
-	0x4p-1076L,
-	0x4p-1076L,
-	0x8p-1076L,
-	false,
-	0x5.fffffffffffffff8p-1076L,
-	0x6p-1076L,
-	0x5.fffffffffffffff8p-1076L,
-	0x6p-1076L,
-	false,
-	0x5.fffffffffffffff8p-1076L,
-	0x6p-1076L,
-	0x5.fffffffffffffff8p-1076L,
-	0x6p-1076L,
-	false,
-	0x4p-1076L,
-	0x4p-1076L,
-	0x4p-1076L,
-	0x8p-1076L,
-	false,
-	0x5.fffffffffffffffffffffffffffcp-1076L,
-	0x6p-1076L,
-	0x5.fffffffffffffffffffffffffffcp-1076L,
-	0x6p-1076L),
+	0x5.fffffffffffffffffffffffffffcp-1076,
+	0x6p-1076,
+	0x5.fffffffffffffffffffffffffffcp-1076,
+	0x6p-1076),
   TEST ("7.4109846876186981626485318930233205854758970392148714663837"
 	"852375101326090531312779794975454245398856969484704316857659"
 	"638998506553390969459816219401617281718945106978546710679176"
@@ -4311,40 +3861,35 @@ static const struct test tests[] = {
 	"337560846003984904972149117463085539556354188641513168478436"
 	"313080237596295773983001708984375e-324",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
+	true,
+	0x4p-1076,
+	0x8p-1076,
+	0x4p-1076,
+	0x8p-1076,
+	true,
+	0x6p-1076,
+	0x6p-1076,
+	0x6p-1076,
+	0x6p-1076,
+	true,
+	0x6p-1076,
+	0x6p-1076,
+	0x6p-1076,
+	0x6p-1076,
 	true,
 	0x4p-1076,
 	0x8p-1076,
 	0x4p-1076,
 	0x8p-1076,
 	true,
-	0x4p-1076L,
-	0x8p-1076L,
-	0x4p-1076L,
-	0x8p-1076L,
-	true,
-	0x6p-1076L,
-	0x6p-1076L,
-	0x6p-1076L,
-	0x6p-1076L,
-	true,
-	0x6p-1076L,
-	0x6p-1076L,
-	0x6p-1076L,
-	0x6p-1076L,
-	true,
-	0x4p-1076L,
-	0x8p-1076L,
-	0x4p-1076L,
-	0x8p-1076L,
-	true,
-	0x6p-1076L,
-	0x6p-1076L,
-	0x6p-1076L,
-	0x6p-1076L),
+	0x6p-1076,
+	0x6p-1076,
+	0x6p-1076,
+	0x6p-1076),
   TEST ("7.4109846876186981626485318930233205854758970392148714663837"
 	"852375101326090531312779794975454245398856969484704316857659"
 	"638998506553390969459816219401617281718945106978546710679176"
@@ -4359,40 +3904,35 @@ static const struct test tests[] = {
 	"337560846003984904972149117463085539556354188641513168478436"
 	"31308023759629577398300170898437501e-324",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
+	false,
+	0x4p-1076,
+	0x8p-1076,
+	0x4p-1076,
+	0x8p-1076,
+	false,
+	0x6p-1076,
+	0x6p-1076,
+	0x6p-1076,
+	0x6.0000000000000008p-1076,
+	false,
+	0x6p-1076,
+	0x6p-1076,
+	0x6p-1076,
+	0x6.0000000000000008p-1076,
 	false,
 	0x4p-1076,
 	0x8p-1076,
 	0x4p-1076,
 	0x8p-1076,
 	false,
-	0x4p-1076L,
-	0x8p-1076L,
-	0x4p-1076L,
-	0x8p-1076L,
-	false,
-	0x6p-1076L,
-	0x6p-1076L,
-	0x6p-1076L,
-	0x6.0000000000000008p-1076L,
-	false,
-	0x6p-1076L,
-	0x6p-1076L,
-	0x6p-1076L,
-	0x6.0000000000000008p-1076L,
-	false,
-	0x4p-1076L,
-	0x8p-1076L,
-	0x4p-1076L,
-	0x8p-1076L,
-	false,
-	0x6p-1076L,
-	0x6p-1076L,
-	0x6p-1076L,
-	0x6.0000000000000000000000000004p-1076L),
+	0x6p-1076,
+	0x6p-1076,
+	0x6p-1076,
+	0x6.0000000000000000000000000004p-1076),
   TEST ("-7.410984687618698162648531893023320585475897039214871466383"
 	"785237510132609053131277979497545424539885696948470431685765"
 	"963899850655339096945981621940161728171894510697854671067917"
@@ -4407,40 +3947,35 @@ static const struct test tests[] = {
 	"433756084600398490497214911746308553955635418864151316847843"
 	"631308023759629577398300170898437499e-324",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x8p-1076,
 	-0x4p-1076,
 	-0x4p-1076,
 	-0x4p-1076,
 	false,
-	-0x8p-1076L,
-	-0x4p-1076L,
-	-0x4p-1076L,
-	-0x4p-1076L,
-	false,
-	-0x6p-1076L,
-	-0x6p-1076L,
-	-0x5.fffffffffffffff8p-1076L,
-	-0x5.fffffffffffffff8p-1076L,
-	false,
-	-0x6p-1076L,
-	-0x6p-1076L,
-	-0x5.fffffffffffffff8p-1076L,
-	-0x5.fffffffffffffff8p-1076L,
-	false,
-	-0x8p-1076L,
-	-0x4p-1076L,
-	-0x4p-1076L,
-	-0x4p-1076L,
-	false,
-	-0x6p-1076L,
-	-0x6p-1076L,
-	-0x5.fffffffffffffffffffffffffffcp-1076L,
-	-0x5.fffffffffffffffffffffffffffcp-1076L),
+	-0x6p-1076,
+	-0x6p-1076,
+	-0x5.fffffffffffffff8p-1076,
+	-0x5.fffffffffffffff8p-1076,
+	false,
+	-0x6p-1076,
+	-0x6p-1076,
+	-0x5.fffffffffffffff8p-1076,
+	-0x5.fffffffffffffff8p-1076,
+	false,
+	-0x8p-1076,
+	-0x4p-1076,
+	-0x4p-1076,
+	-0x4p-1076,
+	false,
+	-0x6p-1076,
+	-0x6p-1076,
+	-0x5.fffffffffffffffffffffffffffcp-1076,
+	-0x5.fffffffffffffffffffffffffffcp-1076),
   TEST ("-7.410984687618698162648531893023320585475897039214871466383"
 	"785237510132609053131277979497545424539885696948470431685765"
 	"963899850655339096945981621940161728171894510697854671067917"
@@ -4455,40 +3990,35 @@ static const struct test tests[] = {
 	"433756084600398490497214911746308553955635418864151316847843"
 	"6313080237596295773983001708984375e-324",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	true,
 	-0x8p-1076,
 	-0x8p-1076,
 	-0x4p-1076,
 	-0x4p-1076,
 	true,
-	-0x8p-1076L,
-	-0x8p-1076L,
-	-0x4p-1076L,
-	-0x4p-1076L,
-	true,
-	-0x6p-1076L,
-	-0x6p-1076L,
-	-0x6p-1076L,
-	-0x6p-1076L,
-	true,
-	-0x6p-1076L,
-	-0x6p-1076L,
-	-0x6p-1076L,
-	-0x6p-1076L,
-	true,
-	-0x8p-1076L,
-	-0x8p-1076L,
-	-0x4p-1076L,
-	-0x4p-1076L,
-	true,
-	-0x6p-1076L,
-	-0x6p-1076L,
-	-0x6p-1076L,
-	-0x6p-1076L),
+	-0x6p-1076,
+	-0x6p-1076,
+	-0x6p-1076,
+	-0x6p-1076,
+	true,
+	-0x6p-1076,
+	-0x6p-1076,
+	-0x6p-1076,
+	-0x6p-1076,
+	true,
+	-0x8p-1076,
+	-0x8p-1076,
+	-0x4p-1076,
+	-0x4p-1076,
+	true,
+	-0x6p-1076,
+	-0x6p-1076,
+	-0x6p-1076,
+	-0x6p-1076),
   TEST ("-7.410984687618698162648531893023320585475897039214871466383"
 	"785237510132609053131277979497545424539885696948470431685765"
 	"963899850655339096945981621940161728171894510697854671067917"
@@ -4503,40 +4033,35 @@ static const struct test tests[] = {
 	"433756084600398490497214911746308553955635418864151316847843"
 	"631308023759629577398300170898437501e-324",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
+	false,
+	-0x8p-1076,
+	-0x8p-1076,
+	-0x4p-1076,
+	-0x4p-1076,
+	false,
+	-0x6.0000000000000008p-1076,
+	-0x6p-1076,
+	-0x6p-1076,
+	-0x6p-1076,
+	false,
+	-0x6.0000000000000008p-1076,
+	-0x6p-1076,
+	-0x6p-1076,
+	-0x6p-1076,
 	false,
 	-0x8p-1076,
 	-0x8p-1076,
 	-0x4p-1076,
 	-0x4p-1076,
 	false,
-	-0x8p-1076L,
-	-0x8p-1076L,
-	-0x4p-1076L,
-	-0x4p-1076L,
-	false,
-	-0x6.0000000000000008p-1076L,
-	-0x6p-1076L,
-	-0x6p-1076L,
-	-0x6p-1076L,
-	false,
-	-0x6.0000000000000008p-1076L,
-	-0x6p-1076L,
-	-0x6p-1076L,
-	-0x6p-1076L,
-	false,
-	-0x8p-1076L,
-	-0x8p-1076L,
-	-0x4p-1076L,
-	-0x4p-1076L,
-	false,
-	-0x6.0000000000000000000000000004p-1076L,
-	-0x6p-1076L,
-	-0x6p-1076L,
-	-0x6p-1076L),
+	-0x6.0000000000000000000000000004p-1076,
+	-0x6p-1076,
+	-0x6p-1076,
+	-0x6p-1076),
   TEST ("5.4677992978237119037926089004291297245985762235403450155814"
 	"707305425575329500966052143410629387408077958710210208052966"
 	"529504784489330482549602621133847135082257338717668975178538"
@@ -4730,40 +4255,35 @@ static const struct test tests[] = {
 	"866268925981702690270202829595794350800918257913991744455922"
 	"683343374046671669930219650268554687499e-4951",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x8p-16448,
+	0x8p-16448,
+	0x8p-16448,
+	0x1p-16444,
+	false,
+	0x8p-16448,
+	0xcp-16448,
+	0x8p-16448,
+	0xcp-16448,
 	false,
 	0x0p+0,
 	0x0p+0,
 	0x0p+0,
 	0x4p-1076,
 	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x8p-16448L,
-	0x8p-16448L,
-	0x8p-16448L,
-	0x1p-16444L,
-	false,
-	0x8p-16448L,
-	0xcp-16448L,
-	0x8p-16448L,
-	0xcp-16448L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0xb.fffffffffffcp-16448L,
-	0xcp-16448L,
-	0xb.fffffffffffcp-16448L,
-	0xcp-16448L),
+	0xb.fffffffffffcp-16448,
+	0xcp-16448,
+	0xb.fffffffffffcp-16448,
+	0xcp-16448),
   TEST ("5.4677992978237119037926089004291297245985762235403450155814"
 	"707305425575329500966052143410629387408077958710210208052966"
 	"529504784489330482549602621133847135082257338717668975178538"
@@ -4957,40 +4477,35 @@ static const struct test tests[] = {
 	"866268925981702690270202829595794350800918257913991744455922"
 	"6833433740466716699302196502685546875e-4951",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
 	false,
 	0x0p+0,
 	0x0p+0,
 	0x0p+0,
 	0x4p-1076,
+	true,
+	0x8p-16448,
+	0x1p-16444,
+	0x8p-16448,
+	0x1p-16444,
+	true,
+	0xcp-16448,
+	0xcp-16448,
+	0xcp-16448,
+	0xcp-16448,
 	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	true,
-	0x8p-16448L,
-	0x1p-16444L,
-	0x8p-16448L,
-	0x1p-16444L,
-	true,
-	0xcp-16448L,
-	0xcp-16448L,
-	0xcp-16448L,
-	0xcp-16448L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	true,
-	0xcp-16448L,
-	0xcp-16448L,
-	0xcp-16448L,
-	0xcp-16448L),
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	true,
+	0xcp-16448,
+	0xcp-16448,
+	0xcp-16448,
+	0xcp-16448),
   TEST ("5.4677992978237119037926089004291297245985762235403450155814"
 	"707305425575329500966052143410629387408077958710210208052966"
 	"529504784489330482549602621133847135082257338717668975178538"
@@ -5184,40 +4699,35 @@ static const struct test tests[] = {
 	"866268925981702690270202829595794350800918257913991744455922"
 	"683343374046671669930219650268554687501e-4951",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x8p-16448,
+	0x1p-16444,
+	0x8p-16448,
+	0x1p-16444,
+	false,
+	0xcp-16448,
+	0xcp-16448,
+	0xcp-16448,
+	0x1p-16444,
 	false,
 	0x0p+0,
 	0x0p+0,
 	0x0p+0,
 	0x4p-1076,
 	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x8p-16448L,
-	0x1p-16444L,
-	0x8p-16448L,
-	0x1p-16444L,
-	false,
-	0xcp-16448L,
-	0xcp-16448L,
-	0xcp-16448L,
-	0x1p-16444L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0xcp-16448L,
-	0xcp-16448L,
-	0xcp-16448L,
-	0xc.000000000004p-16448L),
+	0xcp-16448,
+	0xcp-16448,
+	0xcp-16448,
+	0xc.000000000004p-16448),
   TEST ("-5.467799297823711903792608900429129724598576223540345015581"
 	"470730542557532950096605214341062938740807795871021020805296"
 	"652950478448933048254960262113384713508225733871766897517853"
@@ -5411,40 +4921,35 @@ static const struct test tests[] = {
 	"386626892598170269027020282959579435080091825791399174445592"
 	"2683343374046671669930219650268554687499e-4951",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
-	false,
-	-0x1p-16444L,
-	-0x8p-16448L,
-	-0x8p-16448L,
-	-0x8p-16448L,
+	-0x1p-16444,
+	-0x8p-16448,
+	-0x8p-16448,
+	-0x8p-16448,
 	false,
-	-0xcp-16448L,
-	-0xcp-16448L,
-	-0x8p-16448L,
-	-0x8p-16448L,
+	-0xcp-16448,
+	-0xcp-16448,
+	-0x8p-16448,
+	-0x8p-16448,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0xcp-16448L,
-	-0xcp-16448L,
-	-0xb.fffffffffffcp-16448L,
-	-0xb.fffffffffffcp-16448L),
+	-0xcp-16448,
+	-0xcp-16448,
+	-0xb.fffffffffffcp-16448,
+	-0xb.fffffffffffcp-16448),
   TEST ("-5.467799297823711903792608900429129724598576223540345015581"
 	"470730542557532950096605214341062938740807795871021020805296"
 	"652950478448933048254960262113384713508225733871766897517853"
@@ -5638,40 +5143,35 @@ static const struct test tests[] = {
 	"386626892598170269027020282959579435080091825791399174445592"
 	"26833433740466716699302196502685546875e-4951",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
-	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
 	true,
-	-0x1p-16444L,
-	-0x1p-16444L,
-	-0x8p-16448L,
-	-0x8p-16448L,
+	-0x1p-16444,
+	-0x1p-16444,
+	-0x8p-16448,
+	-0x8p-16448,
 	true,
-	-0xcp-16448L,
-	-0xcp-16448L,
-	-0xcp-16448L,
-	-0xcp-16448L,
+	-0xcp-16448,
+	-0xcp-16448,
+	-0xcp-16448,
+	-0xcp-16448,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	true,
-	-0xcp-16448L,
-	-0xcp-16448L,
-	-0xcp-16448L,
-	-0xcp-16448L),
+	-0xcp-16448,
+	-0xcp-16448,
+	-0xcp-16448,
+	-0xcp-16448),
   TEST ("-5.467799297823711903792608900429129724598576223540345015581"
 	"470730542557532950096605214341062938740807795871021020805296"
 	"652950478448933048254960262113384713508225733871766897517853"
@@ -5865,40 +5365,35 @@ static const struct test tests[] = {
 	"386626892598170269027020282959579435080091825791399174445592"
 	"2683343374046671669930219650268554687501e-4951",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x1p-16444,
+	-0x1p-16444,
+	-0x8p-16448,
+	-0x8p-16448,
 	false,
-	-0x1p-16444L,
-	-0x1p-16444L,
-	-0x8p-16448L,
-	-0x8p-16448L,
+	-0x1p-16444,
+	-0xcp-16448,
+	-0xcp-16448,
+	-0xcp-16448,
 	false,
-	-0x1p-16444L,
-	-0xcp-16448L,
-	-0xcp-16448L,
-	-0xcp-16448L,
-	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0xc.000000000004p-16448L,
-	-0xcp-16448L,
-	-0xcp-16448L,
-	-0xcp-16448L),
+	-0xc.000000000004p-16448,
+	-0xcp-16448,
+	-0xcp-16448,
+	-0xcp-16448),
   TEST ("5.4677992978237119037926089004291297245985762235403450155814"
 	"707305425575329500966052143410629387408077958710210208052966"
 	"529504784489330482549602621133847135082257338717668975178538"
@@ -6092,40 +5587,35 @@ static const struct test tests[] = {
 	"866268925981702690270202829595794350800918257913991744455922"
 	"683343374046671669930219650268554687499e-4951",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x8p-16448,
+	0x8p-16448,
+	0x8p-16448,
+	0x1p-16444,
+	false,
+	0x8p-16448,
+	0xcp-16448,
+	0x8p-16448,
+	0xcp-16448,
 	false,
 	0x0p+0,
 	0x0p+0,
 	0x0p+0,
 	0x4p-1076,
 	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x8p-16448L,
-	0x8p-16448L,
-	0x8p-16448L,
-	0x1p-16444L,
-	false,
-	0x8p-16448L,
-	0xcp-16448L,
-	0x8p-16448L,
-	0xcp-16448L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0xb.fffffffffffcp-16448L,
-	0xcp-16448L,
-	0xb.fffffffffffcp-16448L,
-	0xcp-16448L),
+	0xb.fffffffffffcp-16448,
+	0xcp-16448,
+	0xb.fffffffffffcp-16448,
+	0xcp-16448),
   TEST ("5.4677992978237119037926089004291297245985762235403450155814"
 	"707305425575329500966052143410629387408077958710210208052966"
 	"529504784489330482549602621133847135082257338717668975178538"
@@ -6319,40 +5809,35 @@ static const struct test tests[] = {
 	"866268925981702690270202829595794350800918257913991744455922"
 	"6833433740466716699302196502685546875e-4951",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
 	false,
 	0x0p+0,
 	0x0p+0,
 	0x0p+0,
 	0x4p-1076,
+	true,
+	0x8p-16448,
+	0x1p-16444,
+	0x8p-16448,
+	0x1p-16444,
+	true,
+	0xcp-16448,
+	0xcp-16448,
+	0xcp-16448,
+	0xcp-16448,
 	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	true,
-	0x8p-16448L,
-	0x1p-16444L,
-	0x8p-16448L,
-	0x1p-16444L,
-	true,
-	0xcp-16448L,
-	0xcp-16448L,
-	0xcp-16448L,
-	0xcp-16448L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	true,
-	0xcp-16448L,
-	0xcp-16448L,
-	0xcp-16448L,
-	0xcp-16448L),
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	true,
+	0xcp-16448,
+	0xcp-16448,
+	0xcp-16448,
+	0xcp-16448),
   TEST ("5.4677992978237119037926089004291297245985762235403450155814"
 	"707305425575329500966052143410629387408077958710210208052966"
 	"529504784489330482549602621133847135082257338717668975178538"
@@ -6546,40 +6031,35 @@ static const struct test tests[] = {
 	"866268925981702690270202829595794350800918257913991744455922"
 	"683343374046671669930219650268554687501e-4951",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
 	false,
 	0x0p+0,
 	0x0p+0,
 	0x0p+0,
 	0x4p-1076,
 	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x8p-16448L,
-	0x1p-16444L,
-	0x8p-16448L,
-	0x1p-16444L,
-	false,
-	0xcp-16448L,
-	0xcp-16448L,
-	0xcp-16448L,
-	0x1p-16444L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0xcp-16448L,
-	0xcp-16448L,
-	0xcp-16448L,
-	0xc.000000000004p-16448L),
+	0x8p-16448,
+	0x1p-16444,
+	0x8p-16448,
+	0x1p-16444,
+	false,
+	0xcp-16448,
+	0xcp-16448,
+	0xcp-16448,
+	0x1p-16444,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0xcp-16448,
+	0xcp-16448,
+	0xcp-16448,
+	0xc.000000000004p-16448),
   TEST ("-5.467799297823711903792608900429129724598576223540345015581"
 	"470730542557532950096605214341062938740807795871021020805296"
 	"652950478448933048254960262113384713508225733871766897517853"
@@ -6773,40 +6253,35 @@ static const struct test tests[] = {
 	"386626892598170269027020282959579435080091825791399174445592"
 	"2683343374046671669930219650268554687499e-4951",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
-	false,
-	-0x1p-16444L,
-	-0x8p-16448L,
-	-0x8p-16448L,
-	-0x8p-16448L,
+	-0x1p-16444,
+	-0x8p-16448,
+	-0x8p-16448,
+	-0x8p-16448,
 	false,
-	-0xcp-16448L,
-	-0xcp-16448L,
-	-0x8p-16448L,
-	-0x8p-16448L,
+	-0xcp-16448,
+	-0xcp-16448,
+	-0x8p-16448,
+	-0x8p-16448,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0xcp-16448L,
-	-0xcp-16448L,
-	-0xb.fffffffffffcp-16448L,
-	-0xb.fffffffffffcp-16448L),
+	-0xcp-16448,
+	-0xcp-16448,
+	-0xb.fffffffffffcp-16448,
+	-0xb.fffffffffffcp-16448),
   TEST ("-5.467799297823711903792608900429129724598576223540345015581"
 	"470730542557532950096605214341062938740807795871021020805296"
 	"652950478448933048254960262113384713508225733871766897517853"
@@ -7000,40 +6475,35 @@ static const struct test tests[] = {
 	"386626892598170269027020282959579435080091825791399174445592"
 	"26833433740466716699302196502685546875e-4951",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
-	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
 	true,
-	-0x1p-16444L,
-	-0x1p-16444L,
-	-0x8p-16448L,
-	-0x8p-16448L,
+	-0x1p-16444,
+	-0x1p-16444,
+	-0x8p-16448,
+	-0x8p-16448,
 	true,
-	-0xcp-16448L,
-	-0xcp-16448L,
-	-0xcp-16448L,
-	-0xcp-16448L,
+	-0xcp-16448,
+	-0xcp-16448,
+	-0xcp-16448,
+	-0xcp-16448,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	true,
-	-0xcp-16448L,
-	-0xcp-16448L,
-	-0xcp-16448L,
-	-0xcp-16448L),
+	-0xcp-16448,
+	-0xcp-16448,
+	-0xcp-16448,
+	-0xcp-16448),
   TEST ("-5.467799297823711903792608900429129724598576223540345015581"
 	"470730542557532950096605214341062938740807795871021020805296"
 	"652950478448933048254960262113384713508225733871766897517853"
@@ -7227,730 +6697,630 @@ static const struct test tests[] = {
 	"386626892598170269027020282959579435080091825791399174445592"
 	"2683343374046671669930219650268554687501e-4951",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x1p-16444,
+	-0x1p-16444,
+	-0x8p-16448,
+	-0x8p-16448,
 	false,
-	-0x1p-16444L,
-	-0x1p-16444L,
-	-0x8p-16448L,
-	-0x8p-16448L,
+	-0x1p-16444,
+	-0xcp-16448,
+	-0xcp-16448,
+	-0xcp-16448,
 	false,
-	-0x1p-16444L,
-	-0xcp-16448L,
-	-0xcp-16448L,
-	-0xcp-16448L,
-	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0xc.000000000004p-16448L,
-	-0xcp-16448L,
-	-0xcp-16448L,
-	-0xcp-16448L),
+	-0xc.000000000004p-16448,
+	-0xcp-16448,
+	-0xcp-16448,
+	-0xcp-16448),
   TEST ("-0x0.7p-149",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
+	true,
+	-0x3.8p-152,
+	-0x3.8p-152,
+	-0x3.8p-152,
+	-0x3.8p-152,
+	true,
+	-0x3.8p-152,
+	-0x3.8p-152,
+	-0x3.8p-152,
+	-0x3.8p-152,
+	true,
+	-0x3.8p-152,
+	-0x3.8p-152,
+	-0x3.8p-152,
+	-0x3.8p-152,
 	true,
 	-0x3.8p-152,
 	-0x3.8p-152,
 	-0x3.8p-152,
 	-0x3.8p-152,
 	true,
-	-0x3.8p-152L,
-	-0x3.8p-152L,
-	-0x3.8p-152L,
-	-0x3.8p-152L,
-	true,
-	-0x3.8p-152L,
-	-0x3.8p-152L,
-	-0x3.8p-152L,
-	-0x3.8p-152L,
-	true,
-	-0x3.8p-152L,
-	-0x3.8p-152L,
-	-0x3.8p-152L,
-	-0x3.8p-152L,
-	true,
-	-0x3.8p-152L,
-	-0x3.8p-152L,
-	-0x3.8p-152L,
-	-0x3.8p-152L,
-	true,
-	-0x3.8p-152L,
-	-0x3.8p-152L,
-	-0x3.8p-152L,
-	-0x3.8p-152L),
+	-0x3.8p-152,
+	-0x3.8p-152,
+	-0x3.8p-152,
+	-0x3.8p-152),
   TEST ("-0x0.7p-1074",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
-	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
 	true,
-	-0x1.cp-1076L,
-	-0x1.cp-1076L,
-	-0x1.cp-1076L,
-	-0x1.cp-1076L,
+	-0x1.cp-1076,
+	-0x1.cp-1076,
+	-0x1.cp-1076,
+	-0x1.cp-1076,
 	true,
-	-0x1.cp-1076L,
-	-0x1.cp-1076L,
-	-0x1.cp-1076L,
-	-0x1.cp-1076L,
+	-0x1.cp-1076,
+	-0x1.cp-1076,
+	-0x1.cp-1076,
+	-0x1.cp-1076,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	true,
-	-0x1.cp-1076L,
-	-0x1.cp-1076L,
-	-0x1.cp-1076L,
-	-0x1.cp-1076L),
+	-0x1.cp-1076,
+	-0x1.cp-1076,
+	-0x1.cp-1076,
+	-0x1.cp-1076),
   TEST ("-0x0.7p-16445",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
-	false,
-	-0x8p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x8p-16448,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-16448L,
-	-0x4p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-16448,
+	-0x4p-16448,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	true,
-	-0x3.8p-16448L,
-	-0x3.8p-16448L,
-	-0x3.8p-16448L,
-	-0x3.8p-16448L),
+	-0x3.8p-16448,
+	-0x3.8p-16448,
+	-0x3.8p-16448,
+	-0x3.8p-16448),
   TEST ("-0x0.7p-16494",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
-	false,
-	-0x8p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x8p-16448,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-16448,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-16496L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L),
+	-0x4p-16496,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0),
   TEST ("0x1p-150",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
+	true,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	true,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	true,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
 	true,
 	0x4p-152,
 	0x4p-152,
 	0x4p-152,
 	0x4p-152,
 	true,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	true,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	true,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	true,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	true,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L),
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152),
   TEST ("0x1p-1075",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
 	false,
 	0x0p+0,
 	0x0p+0,
 	0x0p+0,
 	0x4p-1076,
+	true,
+	0x2p-1076,
+	0x2p-1076,
+	0x2p-1076,
+	0x2p-1076,
+	true,
+	0x2p-1076,
+	0x2p-1076,
+	0x2p-1076,
+	0x2p-1076,
 	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	true,
-	0x2p-1076L,
-	0x2p-1076L,
-	0x2p-1076L,
-	0x2p-1076L,
-	true,
-	0x2p-1076L,
-	0x2p-1076L,
-	0x2p-1076L,
-	0x2p-1076L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	true,
-	0x2p-1076L,
-	0x2p-1076L,
-	0x2p-1076L,
-	0x2p-1076L),
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	true,
+	0x2p-1076,
+	0x2p-1076,
+	0x2p-1076,
+	0x2p-1076),
   TEST ("0x1p-16446",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
 	false,
 	0x0p+0,
 	0x0p+0,
 	0x0p+0,
 	0x4p-1076,
 	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x8p-16448L,
-	true,
-	0x4p-16448L,
-	0x4p-16448L,
-	0x4p-16448L,
-	0x4p-16448L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	true,
-	0x4p-16448L,
-	0x4p-16448L,
-	0x4p-16448L,
-	0x4p-16448L),
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-16448,
+	true,
+	0x4p-16448,
+	0x4p-16448,
+	0x4p-16448,
+	0x4p-16448,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	true,
+	0x4p-16448,
+	0x4p-16448,
+	0x4p-16448,
+	0x4p-16448),
   TEST ("0x1p-16495",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-16448,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-16448,
 	false,
 	0x0p+0,
 	0x0p+0,
 	0x0p+0,
 	0x4p-1076,
 	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x8p-16448L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-16448L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-16496L),
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-16496),
   TEST ("-0x1p-150",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
+	true,
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152,
+	true,
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152,
 	true,
 	-0x4p-152,
 	-0x4p-152,
 	-0x4p-152,
 	-0x4p-152,
 	true,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	true,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	true,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	true,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	true,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L),
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152,
+	true,
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152),
   TEST ("-0x1p-1075",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
-	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
 	true,
-	-0x2p-1076L,
-	-0x2p-1076L,
-	-0x2p-1076L,
-	-0x2p-1076L,
+	-0x2p-1076,
+	-0x2p-1076,
+	-0x2p-1076,
+	-0x2p-1076,
 	true,
-	-0x2p-1076L,
-	-0x2p-1076L,
-	-0x2p-1076L,
-	-0x2p-1076L,
+	-0x2p-1076,
+	-0x2p-1076,
+	-0x2p-1076,
+	-0x2p-1076,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	true,
-	-0x2p-1076L,
-	-0x2p-1076L,
-	-0x2p-1076L,
-	-0x2p-1076L),
+	-0x2p-1076,
+	-0x2p-1076,
+	-0x2p-1076,
+	-0x2p-1076),
   TEST ("-0x1p-16446",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
-	false,
-	-0x8p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x8p-16448,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	true,
-	-0x4p-16448L,
-	-0x4p-16448L,
-	-0x4p-16448L,
-	-0x4p-16448L,
+	-0x4p-16448,
+	-0x4p-16448,
+	-0x4p-16448,
+	-0x4p-16448,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	true,
-	-0x4p-16448L,
-	-0x4p-16448L,
-	-0x4p-16448L,
-	-0x4p-16448L),
+	-0x4p-16448,
+	-0x4p-16448,
+	-0x4p-16448,
+	-0x4p-16448),
   TEST ("-0x1p-16495",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
-	false,
-	-0x8p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x8p-16448,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-16448,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-16496L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L),
+	-0x4p-16496,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0),
   TEST (".70064923216240853546186479164495807e-45",
 	false,
-	0x0p+0f,
-	0x8p-152f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x8p-152,
+	0x0p+0,
+	0x8p-152,
 	false,
 	0x4p-152,
 	0x4p-152,
 	0x4p-152,
 	0x4.0000000000004p-152,
 	false,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	0x4.0000000000004p-152L,
-	false,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	0x4.0000000000000008p-152L,
-	false,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	0x4.0000000000000008p-152L,
-	false,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	0x4.00000000000000000000000002p-152L,
-	false,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	0x4.0000000000000000000000000004p-152L),
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	0x4.0000000000000008p-152,
+	false,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	0x4.0000000000000008p-152,
+	false,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	0x4.00000000000000000000000002p-152,
+	false,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	0x4.0000000000000000000000000004p-152),
   TEST ("7.0064923216240853546186479164495806564013097093825788587853"
 	"4141944895541342930300743319094181060791015624e-46",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
 	false,
 	0x3.ffffffffffffep-152,
 	0x4p-152,
 	0x3.ffffffffffffep-152,
 	0x4p-152,
 	false,
-	0x3.ffffffffffffep-152L,
-	0x4p-152L,
-	0x3.ffffffffffffep-152L,
-	0x4p-152L,
-	false,
-	0x3.fffffffffffffffcp-152L,
-	0x4p-152L,
-	0x3.fffffffffffffffcp-152L,
-	0x4p-152L,
-	false,
-	0x3.fffffffffffffffcp-152L,
-	0x4p-152L,
-	0x3.fffffffffffffffcp-152L,
-	0x4p-152L,
-	false,
-	0x3.ffffffffffffffffffffffffffp-152L,
-	0x4p-152L,
-	0x3.ffffffffffffffffffffffffffp-152L,
-	0x4p-152L,
-	false,
-	0x3.fffffffffffffffffffffffffffep-152L,
-	0x4p-152L,
-	0x3.fffffffffffffffffffffffffffep-152L,
-	0x4p-152L),
+	0x3.fffffffffffffffcp-152,
+	0x4p-152,
+	0x3.fffffffffffffffcp-152,
+	0x4p-152,
+	false,
+	0x3.fffffffffffffffcp-152,
+	0x4p-152,
+	0x3.fffffffffffffffcp-152,
+	0x4p-152,
+	false,
+	0x3.ffffffffffffffffffffffffffp-152,
+	0x4p-152,
+	0x3.ffffffffffffffffffffffffffp-152,
+	0x4p-152,
+	false,
+	0x3.fffffffffffffffffffffffffffep-152,
+	0x4p-152,
+	0x3.fffffffffffffffffffffffffffep-152,
+	0x4p-152),
   TEST ("7.0064923216240853546186479164495806564013097093825788587853"
 	"4141944895541342930300743319094181060791015625e-46",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
+	true,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	true,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	true,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
 	true,
 	0x4p-152,
 	0x4p-152,
 	0x4p-152,
 	0x4p-152,
 	true,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	true,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	true,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	true,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	true,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L),
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152),
   TEST ("7.0064923216240853546186479164495806564013097093825788587853"
 	"4141944895541342930300743319094181060791015626e-46",
 	false,
-	0x0p+0f,
-	0x8p-152f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x8p-152,
+	0x0p+0,
+	0x8p-152,
 	false,
 	0x4p-152,
 	0x4p-152,
 	0x4p-152,
 	0x4.0000000000004p-152,
 	false,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	0x4.0000000000004p-152L,
-	false,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	0x4.0000000000000008p-152L,
-	false,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	0x4.0000000000000008p-152L,
-	false,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	0x4.00000000000000000000000002p-152L,
-	false,
-	0x4p-152L,
-	0x4p-152L,
-	0x4p-152L,
-	0x4.0000000000000000000000000004p-152L),
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	0x4.0000000000000008p-152,
+	false,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	0x4.0000000000000008p-152,
+	false,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	0x4.00000000000000000000000002p-152,
+	false,
+	0x4p-152,
+	0x4p-152,
+	0x4p-152,
+	0x4.0000000000000000000000000004p-152),
   TEST ("-7.006492321624085354618647916449580656401309709382578858785"
 	"34141944895541342930300743319094181060791015624e-46",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-152,
 	-0x4p-152,
 	-0x3.ffffffffffffep-152,
 	-0x3.ffffffffffffep-152,
 	false,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x3.ffffffffffffep-152L,
-	-0x3.ffffffffffffep-152L,
-	false,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x3.fffffffffffffffcp-152L,
-	-0x3.fffffffffffffffcp-152L,
-	false,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x3.fffffffffffffffcp-152L,
-	-0x3.fffffffffffffffcp-152L,
-	false,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x3.ffffffffffffffffffffffffffp-152L,
-	-0x3.ffffffffffffffffffffffffffp-152L,
-	false,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x3.fffffffffffffffffffffffffffep-152L,
-	-0x3.fffffffffffffffffffffffffffep-152L),
+	-0x4p-152,
+	-0x4p-152,
+	-0x3.fffffffffffffffcp-152,
+	-0x3.fffffffffffffffcp-152,
+	false,
+	-0x4p-152,
+	-0x4p-152,
+	-0x3.fffffffffffffffcp-152,
+	-0x3.fffffffffffffffcp-152,
+	false,
+	-0x4p-152,
+	-0x4p-152,
+	-0x3.ffffffffffffffffffffffffffp-152,
+	-0x3.ffffffffffffffffffffffffffp-152,
+	false,
+	-0x4p-152,
+	-0x4p-152,
+	-0x3.fffffffffffffffffffffffffffep-152,
+	-0x3.fffffffffffffffffffffffffffep-152),
   TEST ("-7.006492321624085354618647916449580656401309709382578858785"
 	"34141944895541342930300743319094181060791015625e-46",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
+	true,
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152,
+	true,
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152,
+	true,
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152,
 	true,
 	-0x4p-152,
 	-0x4p-152,
 	-0x4p-152,
 	-0x4p-152,
 	true,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	true,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	true,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	true,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	true,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L),
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152),
   TEST ("-7.006492321624085354618647916449580656401309709382578858785"
 	"34141944895541342930300743319094181060791015626e-46",
 	false,
-	-0x8p-152f,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4.0000000000004p-152,
 	-0x4p-152,
 	-0x4p-152,
 	-0x4p-152,
 	false,
-	-0x4.0000000000004p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	false,
-	-0x4.0000000000000008p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	false,
-	-0x4.0000000000000008p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	false,
-	-0x4.00000000000000000000000002p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	false,
-	-0x4.0000000000000000000000000004p-152L,
-	-0x4p-152L,
-	-0x4p-152L,
-	-0x4p-152L),
+	-0x4.0000000000000008p-152,
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152,
+	false,
+	-0x4.0000000000000008p-152,
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152,
+	false,
+	-0x4.00000000000000000000000002p-152,
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152,
+	false,
+	-0x4.0000000000000000000000000004p-152,
+	-0x4p-152,
+	-0x4p-152,
+	-0x4p-152),
   TEST ("2.4703282292062327208828439643411068618252990130716238221279"
 	"284125033775363510437593264991818081799618989828234772285886"
 	"546332835517796989819938739800539093906315035659515570226392"
@@ -7965,40 +7335,35 @@ static const struct test tests[] = {
 	"779186948667994968324049705821028513185451396213837722826145"
 	"437693412532098591327667236328124e-324",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x1.fffffffffffffffep-1076,
+	0x2p-1076,
+	0x1.fffffffffffffffep-1076,
+	0x2p-1076,
+	false,
+	0x1.fffffffffffffffep-1076,
+	0x2p-1076,
+	0x1.fffffffffffffffep-1076,
+	0x2p-1076,
 	false,
 	0x0p+0,
 	0x0p+0,
 	0x0p+0,
 	0x4p-1076,
 	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x1.fffffffffffffffep-1076L,
-	0x2p-1076L,
-	0x1.fffffffffffffffep-1076L,
-	0x2p-1076L,
-	false,
-	0x1.fffffffffffffffep-1076L,
-	0x2p-1076L,
-	0x1.fffffffffffffffep-1076L,
-	0x2p-1076L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x1.ffffffffffffffffffffffffffffp-1076L,
-	0x2p-1076L,
-	0x1.ffffffffffffffffffffffffffffp-1076L,
-	0x2p-1076L),
+	0x1.ffffffffffffffffffffffffffffp-1076,
+	0x2p-1076,
+	0x1.ffffffffffffffffffffffffffffp-1076,
+	0x2p-1076),
   TEST ("2.4703282292062327208828439643411068618252990130716238221279"
 	"284125033775363510437593264991818081799618989828234772285886"
 	"546332835517796989819938739800539093906315035659515570226392"
@@ -8013,40 +7378,35 @@ static const struct test tests[] = {
 	"779186948667994968324049705821028513185451396213837722826145"
 	"437693412532098591327667236328125e-324",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
 	false,
 	0x0p+0,
 	0x0p+0,
 	0x0p+0,
 	0x4p-1076,
+	true,
+	0x2p-1076,
+	0x2p-1076,
+	0x2p-1076,
+	0x2p-1076,
+	true,
+	0x2p-1076,
+	0x2p-1076,
+	0x2p-1076,
+	0x2p-1076,
 	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	true,
-	0x2p-1076L,
-	0x2p-1076L,
-	0x2p-1076L,
-	0x2p-1076L,
-	true,
-	0x2p-1076L,
-	0x2p-1076L,
-	0x2p-1076L,
-	0x2p-1076L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	true,
-	0x2p-1076L,
-	0x2p-1076L,
-	0x2p-1076L,
-	0x2p-1076L),
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	true,
+	0x2p-1076,
+	0x2p-1076,
+	0x2p-1076,
+	0x2p-1076),
   TEST ("2.4703282292062327208828439643411068618252990130716238221279"
 	"284125033775363510437593264991818081799618989828234772285886"
 	"546332835517796989819938739800539093906315035659515570226392"
@@ -8061,40 +7421,35 @@ static const struct test tests[] = {
 	"779186948667994968324049705821028513185451396213837722826145"
 	"437693412532098591327667236328126e-324",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
 	false,
 	0x0p+0,
 	0x4p-1076,
 	0x0p+0,
 	0x4p-1076,
 	false,
-	0x0p+0L,
-	0x4p-1076L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x2p-1076L,
-	0x2p-1076L,
-	0x2p-1076L,
-	0x2.0000000000000004p-1076L,
-	false,
-	0x2p-1076L,
-	0x2p-1076L,
-	0x2p-1076L,
-	0x2.0000000000000004p-1076L,
-	false,
-	0x0p+0L,
-	0x4p-1076L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x2p-1076L,
-	0x2p-1076L,
-	0x2p-1076L,
-	0x2.0000000000000000000000000002p-1076L),
+	0x2p-1076,
+	0x2p-1076,
+	0x2p-1076,
+	0x2.0000000000000004p-1076,
+	false,
+	0x2p-1076,
+	0x2p-1076,
+	0x2p-1076,
+	0x2.0000000000000004p-1076,
+	false,
+	0x0p+0,
+	0x4p-1076,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x2p-1076,
+	0x2p-1076,
+	0x2p-1076,
+	0x2.0000000000000000000000000002p-1076),
   TEST ("-2.470328229206232720882843964341106861825299013071623822127"
 	"928412503377536351043759326499181808179961898982823477228588"
 	"654633283551779698981993873980053909390631503565951557022639"
@@ -8109,40 +7464,35 @@ static const struct test tests[] = {
 	"477918694866799496832404970582102851318545139621383772282614"
 	"5437693412532098591327667236328124e-324",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x2p-1076,
+	-0x2p-1076,
+	-0x1.fffffffffffffffep-1076,
+	-0x1.fffffffffffffffep-1076,
 	false,
-	-0x2p-1076L,
-	-0x2p-1076L,
-	-0x1.fffffffffffffffep-1076L,
-	-0x1.fffffffffffffffep-1076L,
+	-0x2p-1076,
+	-0x2p-1076,
+	-0x1.fffffffffffffffep-1076,
+	-0x1.fffffffffffffffep-1076,
 	false,
-	-0x2p-1076L,
-	-0x2p-1076L,
-	-0x1.fffffffffffffffep-1076L,
-	-0x1.fffffffffffffffep-1076L,
-	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x2p-1076L,
-	-0x2p-1076L,
-	-0x1.ffffffffffffffffffffffffffffp-1076L,
-	-0x1.ffffffffffffffffffffffffffffp-1076L),
+	-0x2p-1076,
+	-0x2p-1076,
+	-0x1.ffffffffffffffffffffffffffffp-1076,
+	-0x1.ffffffffffffffffffffffffffffp-1076),
   TEST ("-2.470328229206232720882843964341106861825299013071623822127"
 	"928412503377536351043759326499181808179961898982823477228588"
 	"654633283551779698981993873980053909390631503565951557022639"
@@ -8157,40 +7507,35 @@ static const struct test tests[] = {
 	"477918694866799496832404970582102851318545139621383772282614"
 	"5437693412532098591327667236328125e-324",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
-	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
 	true,
-	-0x2p-1076L,
-	-0x2p-1076L,
-	-0x2p-1076L,
-	-0x2p-1076L,
+	-0x2p-1076,
+	-0x2p-1076,
+	-0x2p-1076,
+	-0x2p-1076,
 	true,
-	-0x2p-1076L,
-	-0x2p-1076L,
-	-0x2p-1076L,
-	-0x2p-1076L,
+	-0x2p-1076,
+	-0x2p-1076,
+	-0x2p-1076,
+	-0x2p-1076,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	true,
-	-0x2p-1076L,
-	-0x2p-1076L,
-	-0x2p-1076L,
-	-0x2p-1076L),
+	-0x2p-1076,
+	-0x2p-1076,
+	-0x2p-1076,
+	-0x2p-1076),
   TEST ("-2.470328229206232720882843964341106861825299013071623822127"
 	"928412503377536351043759326499181808179961898982823477228588"
 	"654633283551779698981993873980053909390631503565951557022639"
@@ -8205,40 +7550,35 @@ static const struct test tests[] = {
 	"477918694866799496832404970582102851318545139621383772282614"
 	"5437693412532098591327667236328126e-324",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	false,
-	-0x2.0000000000000004p-1076L,
-	-0x2p-1076L,
-	-0x2p-1076L,
-	-0x2p-1076L,
+	-0x2.0000000000000004p-1076,
+	-0x2p-1076,
+	-0x2p-1076,
+	-0x2p-1076,
 	false,
-	-0x2.0000000000000004p-1076L,
-	-0x2p-1076L,
-	-0x2p-1076L,
-	-0x2p-1076L,
+	-0x2.0000000000000004p-1076,
+	-0x2p-1076,
+	-0x2p-1076,
+	-0x2p-1076,
 	false,
-	-0x4p-1076L,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x2.0000000000000000000000000002p-1076L,
-	-0x2p-1076L,
-	-0x2p-1076L,
-	-0x2p-1076L),
+	-0x2.0000000000000000000000000002p-1076,
+	-0x2p-1076,
+	-0x2p-1076,
+	-0x2p-1076),
   TEST ("1.8225997659412373012642029668097099081995254078467816718604"
 	"902435141858443166988684047803543129136025986236736736017655"
 	"509834928163110160849867540377949045027419112905889658392846"
@@ -8432,40 +7772,35 @@ static const struct test tests[] = {
 	"622089641993900896756734276531931450266972752637997248151974"
 	"2277811246822238899767398834228515624e-4951",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-16448,
+	false,
+	0x0p+0,
+	0x4p-16448,
+	0x0p+0,
+	0x4p-16448,
 	false,
 	0x0p+0,
 	0x0p+0,
 	0x0p+0,
 	0x4p-1076,
 	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x8p-16448L,
-	false,
-	0x0p+0L,
-	0x4p-16448L,
-	0x0p+0L,
-	0x4p-16448L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x3.fffffffffffcp-16448L,
-	0x4p-16448L,
-	0x3.fffffffffffcp-16448L,
-	0x4p-16448L),
+	0x3.fffffffffffcp-16448,
+	0x4p-16448,
+	0x3.fffffffffffcp-16448,
+	0x4p-16448),
   TEST ("1.8225997659412373012642029668097099081995254078467816718604"
 	"902435141858443166988684047803543129136025986236736736017655"
 	"509834928163110160849867540377949045027419112905889658392846"
@@ -8659,40 +7994,35 @@ static const struct test tests[] = {
 	"622089641993900896756734276531931450266972752637997248151974"
 	"2277811246822238899767398834228515625e-4951",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
 	false,
 	0x0p+0,
 	0x0p+0,
 	0x0p+0,
 	0x4p-1076,
 	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x8p-16448L,
-	true,
-	0x4p-16448L,
-	0x4p-16448L,
-	0x4p-16448L,
-	0x4p-16448L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	true,
-	0x4p-16448L,
-	0x4p-16448L,
-	0x4p-16448L,
-	0x4p-16448L),
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-16448,
+	true,
+	0x4p-16448,
+	0x4p-16448,
+	0x4p-16448,
+	0x4p-16448,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	true,
+	0x4p-16448,
+	0x4p-16448,
+	0x4p-16448,
+	0x4p-16448),
   TEST ("1.8225997659412373012642029668097099081995254078467816718604"
 	"902435141858443166988684047803543129136025986236736736017655"
 	"509834928163110160849867540377949045027419112905889658392846"
@@ -8886,40 +8216,35 @@ static const struct test tests[] = {
 	"622089641993900896756734276531931450266972752637997248151974"
 	"2277811246822238899767398834228515626e-4951",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x0p+0,
+	0x8p-16448,
+	0x0p+0,
+	0x8p-16448,
+	false,
+	0x4p-16448,
+	0x4p-16448,
+	0x4p-16448,
+	0x8p-16448,
 	false,
 	0x0p+0,
 	0x0p+0,
 	0x0p+0,
 	0x4p-1076,
 	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x0p+0L,
-	0x8p-16448L,
-	0x0p+0L,
-	0x8p-16448L,
-	false,
-	0x4p-16448L,
-	0x4p-16448L,
-	0x4p-16448L,
-	0x8p-16448L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x4p-16448L,
-	0x4p-16448L,
-	0x4p-16448L,
-	0x4.000000000004p-16448L),
+	0x4p-16448,
+	0x4p-16448,
+	0x4p-16448,
+	0x4.000000000004p-16448),
   TEST ("-1.822599765941237301264202966809709908199525407846781671860"
 	"490243514185844316698868404780354312913602598623673673601765"
 	"550983492816311016084986754037794904502741911290588965839284"
@@ -9113,40 +8438,35 @@ static const struct test tests[] = {
 	"462208964199390089675673427653193145026697275263799724815197"
 	"42277811246822238899767398834228515624e-4951",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
-	false,
-	-0x8p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x8p-16448,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-16448L,
-	-0x4p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-16448,
+	-0x4p-16448,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-16448L,
-	-0x4p-16448L,
-	-0x3.fffffffffffcp-16448L,
-	-0x3.fffffffffffcp-16448L),
+	-0x4p-16448,
+	-0x4p-16448,
+	-0x3.fffffffffffcp-16448,
+	-0x3.fffffffffffcp-16448),
   TEST ("-1.822599765941237301264202966809709908199525407846781671860"
 	"490243514185844316698868404780354312913602598623673673601765"
 	"550983492816311016084986754037794904502741911290588965839284"
@@ -9340,40 +8660,35 @@ static const struct test tests[] = {
 	"462208964199390089675673427653193145026697275263799724815197"
 	"42277811246822238899767398834228515625e-4951",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
-	false,
-	-0x8p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x8p-16448,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	true,
-	-0x4p-16448L,
-	-0x4p-16448L,
-	-0x4p-16448L,
-	-0x4p-16448L,
+	-0x4p-16448,
+	-0x4p-16448,
+	-0x4p-16448,
+	-0x4p-16448,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	true,
-	-0x4p-16448L,
-	-0x4p-16448L,
-	-0x4p-16448L,
-	-0x4p-16448L),
+	-0x4p-16448,
+	-0x4p-16448,
+	-0x4p-16448,
+	-0x4p-16448),
   TEST ("-1.822599765941237301264202966809709908199525407846781671860"
 	"490243514185844316698868404780354312913602598623673673601765"
 	"550983492816311016084986754037794904502741911290588965839284"
@@ -9567,40 +8882,35 @@ static const struct test tests[] = {
 	"462208964199390089675673427653193145026697275263799724815197"
 	"42277811246822238899767398834228515626e-4951",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
-	false,
-	-0x8p-16448L,
-	-0x8p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x8p-16448,
+	-0x8p-16448,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x8p-16448L,
-	-0x4p-16448L,
-	-0x4p-16448L,
-	-0x4p-16448L,
+	-0x8p-16448,
+	-0x4p-16448,
+	-0x4p-16448,
+	-0x4p-16448,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4.000000000004p-16448L,
-	-0x4p-16448L,
-	-0x4p-16448L,
-	-0x4p-16448L),
+	-0x4.000000000004p-16448,
+	-0x4p-16448,
+	-0x4p-16448,
+	-0x4p-16448),
   TEST ("9.1129988297061865063210148340485495409976270392339083593024"
 	"512175709292215834943420239017715645680129931183683680088277"
 	"549174640815550804249337701889745225137095564529448291964230"
@@ -9794,40 +9104,35 @@ static const struct test tests[] = {
 	"110448209969504483783671382659657251334863763189986240759871"
 	"1389056234111194498836994171142578124e-4952",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-16448,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-16448,
 	false,
 	0x0p+0,
 	0x0p+0,
 	0x0p+0,
 	0x4p-1076,
 	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x8p-16448L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-16448L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x1.fffffffffffcp-16448L,
-	0x2p-16448L,
-	0x1.fffffffffffcp-16448L,
-	0x2p-16448L),
+	0x1.fffffffffffcp-16448,
+	0x2p-16448,
+	0x1.fffffffffffcp-16448,
+	0x2p-16448),
   TEST ("9.1129988297061865063210148340485495409976270392339083593024"
 	"512175709292215834943420239017715645680129931183683680088277"
 	"549174640815550804249337701889745225137095564529448291964230"
@@ -10021,40 +9326,35 @@ static const struct test tests[] = {
 	"110448209969504483783671382659657251334863763189986240759871"
 	"1389056234111194498836994171142578125e-4952",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
 	false,
 	0x0p+0,
 	0x0p+0,
 	0x0p+0,
 	0x4p-1076,
 	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x8p-16448L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-16448L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	true,
-	0x2p-16448L,
-	0x2p-16448L,
-	0x2p-16448L,
-	0x2p-16448L),
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-16448,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-16448,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	true,
+	0x2p-16448,
+	0x2p-16448,
+	0x2p-16448,
+	0x2p-16448),
   TEST ("9.1129988297061865063210148340485495409976270392339083593024"
 	"512175709292215834943420239017715645680129931183683680088277"
 	"549174640815550804249337701889745225137095564529448291964230"
@@ -10248,40 +9548,35 @@ static const struct test tests[] = {
 	"110448209969504483783671382659657251334863763189986240759871"
 	"1389056234111194498836994171142578126e-4952",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-16448,
+	false,
+	0x0p+0,
+	0x4p-16448,
+	0x0p+0,
+	0x4p-16448,
 	false,
 	0x0p+0,
 	0x0p+0,
 	0x0p+0,
 	0x4p-1076,
 	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x8p-16448L,
-	false,
-	0x0p+0L,
-	0x4p-16448L,
-	0x0p+0L,
-	0x4p-16448L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x2p-16448L,
-	0x2p-16448L,
-	0x2p-16448L,
-	0x2.000000000004p-16448L),
+	0x2p-16448,
+	0x2p-16448,
+	0x2p-16448,
+	0x2.000000000004p-16448),
   TEST ("-9.112998829706186506321014834048549540997627039233908359302"
 	"451217570929221583494342023901771564568012993118368368008827"
 	"754917464081555080424933770188974522513709556452944829196423"
@@ -10475,40 +9770,35 @@ static const struct test tests[] = {
 	"311044820996950448378367138265965725133486376318998624075987"
 	"11389056234111194498836994171142578124e-4952",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
-	false,
-	-0x8p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x8p-16448,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-16448,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x2p-16448L,
-	-0x2p-16448L,
-	-0x1.fffffffffffcp-16448L,
-	-0x1.fffffffffffcp-16448L),
+	-0x2p-16448,
+	-0x2p-16448,
+	-0x1.fffffffffffcp-16448,
+	-0x1.fffffffffffcp-16448),
   TEST ("-9.112998829706186506321014834048549540997627039233908359302"
 	"451217570929221583494342023901771564568012993118368368008827"
 	"754917464081555080424933770188974522513709556452944829196423"
@@ -10702,40 +9992,35 @@ static const struct test tests[] = {
 	"311044820996950448378367138265965725133486376318998624075987"
 	"11389056234111194498836994171142578125e-4952",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
-	false,
-	-0x8p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x8p-16448,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-16448,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	true,
-	-0x2p-16448L,
-	-0x2p-16448L,
-	-0x2p-16448L,
-	-0x2p-16448L),
+	-0x2p-16448,
+	-0x2p-16448,
+	-0x2p-16448,
+	-0x2p-16448),
   TEST ("-9.112998829706186506321014834048549540997627039233908359302"
 	"451217570929221583494342023901771564568012993118368368008827"
 	"754917464081555080424933770188974522513709556452944829196423"
@@ -10929,40 +10214,35 @@ static const struct test tests[] = {
 	"311044820996950448378367138265965725133486376318998624075987"
 	"11389056234111194498836994171142578126e-4952",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
-	false,
-	-0x8p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x8p-16448,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-16448L,
-	-0x4p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-16448,
+	-0x4p-16448,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x2.000000000004p-16448L,
-	-0x2p-16448L,
-	-0x2p-16448L,
-	-0x2p-16448L),
+	-0x2.000000000004p-16448,
+	-0x2p-16448,
+	-0x2p-16448,
+	-0x2p-16448),
   TEST ("3.2375875597190125554622194791138232762497846690173405048449"
 	"421945985197700620596855088357456383249701279390707384240598"
 	"382936099431912710233425550359863089915213963553756674672083"
@@ -11157,40 +10437,35 @@ static const struct test tests[] = {
 	"182358152808745703724362178773168996492870519432472065091133"
 	"11767578124e-4966",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-16448,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-16448,
 	false,
 	0x0p+0,
 	0x0p+0,
 	0x0p+0,
 	0x4p-1076,
 	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x8p-16448L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-16448L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-16496L),
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-16496),
   TEST ("3.2375875597190125554622194791138232762497846690173405048449"
 	"421945985197700620596855088357456383249701279390707384240598"
 	"382936099431912710233425550359863089915213963553756674672083"
@@ -11385,40 +10660,35 @@ static const struct test tests[] = {
 	"182358152808745703724362178773168996492870519432472065091133"
 	"11767578125e-4966",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-16448,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-16448,
 	false,
 	0x0p+0,
 	0x0p+0,
 	0x0p+0,
 	0x4p-1076,
 	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x8p-16448L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-16448L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-16496L),
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-16496),
   TEST ("3.2375875597190125554622194791138232762497846690173405048449"
 	"421945985197700620596855088357456383249701279390707384240598"
 	"382936099431912710233425550359863089915213963553756674672083"
@@ -11613,40 +10883,35 @@ static const struct test tests[] = {
 	"182358152808745703724362178773168996492870519432472065091133"
 	"11767578126e-4966",
 	false,
-	0x0p+0f,
-	0x0p+0f,
-	0x0p+0f,
-	0x8p-152f,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-152,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-1076,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x8p-16448,
+	false,
+	0x0p+0,
+	0x0p+0,
+	0x0p+0,
+	0x4p-16448,
 	false,
 	0x0p+0,
 	0x0p+0,
 	0x0p+0,
 	0x4p-1076,
 	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x8p-16448L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-16448L,
-	false,
-	0x0p+0L,
-	0x0p+0L,
-	0x0p+0L,
-	0x4p-1076L,
-	false,
-	0x0p+0L,
-	0x4p-16496L,
-	0x0p+0L,
-	0x4p-16496L),
+	0x0p+0,
+	0x4p-16496,
+	0x0p+0,
+	0x4p-16496),
   TEST ("-3.237587559719012555462219479113823276249784669017340504844"
 	"942194598519770062059685508835745638324970127939070738424059"
 	"838293609943191271023342555035986308991521396355375667467208"
@@ -11841,40 +11106,35 @@ static const struct test tests[] = {
 	"218235815280874570372436217877316899649287051943247206509113"
 	"311767578124e-4966",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
-	false,
-	-0x8p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x8p-16448,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-16448,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-16496L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L),
+	-0x4p-16496,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0),
   TEST ("-3.237587559719012555462219479113823276249784669017340504844"
 	"942194598519770062059685508835745638324970127939070738424059"
 	"838293609943191271023342555035986308991521396355375667467208"
@@ -12069,40 +11329,35 @@ static const struct test tests[] = {
 	"218235815280874570372436217877316899649287051943247206509113"
 	"311767578125e-4966",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
-	false,
-	-0x8p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x8p-16448,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-16448,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-16496L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L),
+	-0x4p-16496,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0),
   TEST ("-3.237587559719012555462219479113823276249784669017340504844"
 	"942194598519770062059685508835745638324970127939070738424059"
 	"838293609943191271023342555035986308991521396355375667467208"
@@ -12297,38 +11552,33 @@ static const struct test tests[] = {
 	"218235815280874570372436217877316899649287051943247206509113"
 	"311767578126e-4966",
 	false,
-	-0x8p-152f,
-	-0x0p+0f,
-	-0x0p+0f,
-	-0x0p+0f,
+	-0x8p-152,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
 	-0x4p-1076,
 	-0x0p+0,
 	-0x0p+0,
 	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
-	false,
-	-0x8p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x8p-16448,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-16448L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-16448,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-1076L,
-	-0x0p+0L,
-	-0x0p+0L,
-	-0x0p+0L,
+	-0x4p-1076,
+	-0x0p+0,
+	-0x0p+0,
+	-0x0p+0,
 	false,
-	-0x4p-16496L,
-	-0x4p-16496L,
-	-0x0p+0L,
-	-0x0p+0L),
+	-0x4p-16496,
+	-0x4p-16496,
+	-0x0p+0,
+	-0x0p+0),
 };
diff --git a/stdlib/tst-strtod-round.c b/stdlib/tst-strtod-round.c
index a2cd2ab636..509f96ac9e 100644
--- a/stdlib/tst-strtod-round.c
+++ b/stdlib/tst-strtod-round.c
@@ -29,152 +29,165 @@
 #include <string.h>
 #include <math-tests.h>
 
-struct exactness
-{
-  bool f;
-  bool d;
-  bool ld;
-};
+#include "tst-strtod.h"
 
-struct test_results {
-  float f;
-  double d;
-  long double ld;
-};
+#define _CONCAT(a, b) a ## b
+#define CONCAT(a, b) _CONCAT (a, b)
 
-struct test {
-  const char *s;
-  struct exactness exact;
-  struct test_results rd, rn, rz, ru;
-};
+#if LDBL_MANT_DIG == 106 && LDBL_MAX_EXP == 1024
+/* This is a stupid hack for IBM long double.  This test ignores
+   inexact values for long double due to the limitations of the
+   format.  This ensures rounding tests are ignored.  */
+# undef ROUNDING_TESTS_long_double
+# define ROUNDING_TESTS_long_double(x) 0
+#endif
 
+/* Generator to create an FTYPE member variabled named FSUF
+   used to populate struct member variables.  */
+#define FTYPE_MEMBER(FSUF, FTYPE, FTOSTR, FTOSTRM, LSUF, CSUF)  \
+       FTYPE FSUF;
+
+/* Likewise, but each member is of type bool.  */
+#define BOOL_MEMBER(FSUF, FTYPE, FTOSTR, FTOSTRM, LSUF, CSUF)  \
+       bool FSUF;
+
+#define STRUCT_FOREACH_FLOAT_FTYPE GEN_TEST_STRTOD_FOREACH (FTYPE_MEMBER)
+#define STRUCT_FOREACH_FLOAT_BOOL GEN_TEST_STRTOD_FOREACH (BOOL_MEMBER)
+
+/* Define the long double choose (CHOOSE_ld) macro
+   to select the appropriate generated long double
+   value from the generated test data.  */
 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
-# define TEST(s, fexact, fd, fn, fz, fu, dexact, dd, dn, dz, du,	\
-	      ld53exact, ld53d, ld53n, ld53z, ld53u,			\
-	      ld64iexact, ld64id, ld64in, ld64iz, ld64iu,		\
-	      ld64mexact, ld64md, ld64mn, ld64mz, ld64mu,		\
-	      ld106exact, ld106d, ld106n, ld106z, ld106u,		\
-	      ld113exact, ld113d, ld113n, ld113z, ld113u)		\
-  {									\
-    s,									\
-    { fexact, dexact, ld53exact },					\
-    { fd, dd, ld53d },							\
-    { fn, dn, ld53n },							\
-    { fz, dz, ld53z },							\
-    { fu, du, ld53u }							\
-  }
+/* This is for the long double == double format.  */
+# define CHOOSE_ld(f,d,...) d
 #elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384 && LDBL_MIN_EXP == -16381
 /* This is for the Intel extended float format.  */
-# define TEST(s, fexact, fd, fn, fz, fu, dexact, dd, dn, dz, du,	\
-	      ld53exact, ld53d, ld53n, ld53z, ld53u,			\
-	      ld64iexact, ld64id, ld64in, ld64iz, ld64iu,		\
-	      ld64mexact, ld64md, ld64mn, ld64mz, ld64mu,		\
-	      ld106exact, ld106d, ld106n, ld106z, ld106u,		\
-	      ld113exact, ld113d, ld113n, ld113z, ld113u)		\
-  {									\
-    s,									\
-    { fexact, dexact, ld64iexact },					\
-    { fd, dd, ld64id },							\
-    { fn, dn, ld64in },							\
-    { fz, dz, ld64iz },							\
-    { fu, du, ld64iu }							\
-  }
+# define CHOOSE_ld(f,d,ld64i,...) ld64i
 #elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384 && LDBL_MIN_EXP == -16382
 /* This is for the Motorola extended float format.  */
-# define TEST(s, fexact, fd, fn, fz, fu, dexact, dd, dn, dz, du,	\
-	      ld53exact, ld53d, ld53n, ld53z, ld53u,			\
-	      ld64iexact, ld64id, ld64in, ld64iz, ld64iu,		\
-	      ld64mexact, ld64md, ld64mn, ld64mz, ld64mu,		\
-	      ld106exact, ld106d, ld106n, ld106z, ld106u,		\
-	      ld113exact, ld113d, ld113n, ld113z, ld113u)		\
-  {									\
-    s,									\
-    { fexact, dexact, ld64mexact },					\
-    { fd, dd, ld64md },							\
-    { fn, dn, ld64mn },							\
-    { fz, dz, ld64mz },							\
-    { fu, du, ld64mu }							\
-  }
+# define CHOOSE_ld(f,d,ld64i,ld64m,...) ld64m
 #elif LDBL_MANT_DIG == 106 && LDBL_MAX_EXP == 1024
-# define TEST(s, fexact, fd, fn, fz, fu, dexact, dd, dn, dz, du,	\
-	      ld53exact, ld53d, ld53n, ld53z, ld53u,			\
-	      ld64iexact, ld64id, ld64in, ld64iz, ld64iu,		\
-	      ld64mexact, ld64md, ld64mn, ld64mz, ld64mu,		\
-	      ld106exact, ld106d, ld106n, ld106z, ld106u,		\
-	      ld113exact, ld113d, ld113n, ld113z, ld113u)		\
-  {									\
-    s,									\
-    { fexact, dexact, ld106exact },					\
-    { fd, dd, ld106d },							\
-    { fn, dn, ld106n },							\
-    { fz, dz, ld106z },							\
-    { fu, du, ld106u }							\
-  }
+/* This is for the IBM extended double format.  */
+# define CHOOSE_ld(f,d,ld64i,ld64m,ld106,...) ld106
 #elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384
-# define TEST(s, fexact, fd, fn, fz, fu, dexact, dd, dn, dz, du,	\
-	      ld53exact, ld53d, ld53n, ld53z, ld53u,			\
-	      ld64iexact, ld64id, ld64in, ld64iz, ld64iu,		\
-	      ld64mexact, ld64md, ld64mn, ld64mz, ld64mu,		\
-	      ld106exact, ld106d, ld106n, ld106z, ld106u,		\
-	      ld113exact, ld113d, ld113n, ld113z, ld113u)		\
-  {									\
-    s,									\
-    { fexact, dexact, ld113exact },					\
-    { fd, dd, ld113d },							\
-    { fn, dn, ld113n },							\
-    { fz, dz, ld113z },							\
-    { fu, du, ld113u }							\
-  }
+/* This is for the IEEE binary128 format.  */
+# define CHOOSE_ld(f,d,ld64i,ld64m,ld106,ld113,...) ld113
 #else
 # error "unknown long double format"
 #endif
 
+/* Add type specific choosing macros below.  */
+#define CHOOSE_f(f,...) f
+#define CHOOSE_d(f,d,...) d
+/* long double is special, and handled above.  */
+
+/* Selector for expected result field of a given type.  */
+#define _ENTRY(FSUF, FTYPE, FTOSTR, FTOSTRM, LSUF, CSUF, ...)  \
+  CONCAT (CHOOSE_ ## FSUF (__VA_ARGS__), LSUF),
+#define ENTRY(...) \
+  GEN_TEST_STRTOD_FOREACH (_ENTRY, __VA_ARGS__)
+
+/* Selector for boolean exact tag of expected results.  */
+#define _XNTRY(FSUF, FTYPE, FTOSTR, FTOSTRM, LSUF, CSUF, ...)  \
+  CHOOSE_ ## FSUF (__VA_ARGS__),
+#define XNTRY(...) \
+  GEN_TEST_STRTOD_FOREACH (_XNTRY, __VA_ARGS__)
+
+/* This is hacky way around the seemingly unavoidable macro
+   expansion of the INFINITY or HUGE_VAL like macros in the
+   above.  It is assumed the compiler will implicitly convert
+   the infinity correctly.  */
+#define INF INFINITY + 0.0
+
+/* This macro is used in conjunction with the output from the
+   gen-tst-strtod-round utility to select the appropriately
+   rounded long double value for a given format.  */
+#define TEST(s,						\
+	     fx, fd, fn, fz, fu,			\
+	     dx, dd, dn, dz, du,			\
+	     ld64ix, ld64id, ld64in, ld64iz, ld64iu,	\
+	     ld64mx, ld64md, ld64mn, ld64mz, ld64mu,	\
+	     ld106x, ld106d, ld106n, ld106z, ld106u,	\
+	     ld113x, ld113d, ld113n, ld113z, ld113u)	\
+  {							\
+    s,							\
+    { XNTRY (fx, dx, ld64ix, ld64mx, ld106x, ld113x) },	\
+    {							\
+    { ENTRY (fn, dn, ld64in, ld64mn, ld106n, ld113n) },	\
+    { ENTRY (fd, dd, ld64id, ld64md, ld106d, ld113d) },	\
+    { ENTRY (fz, dz, ld64iz, ld64mz, ld106z, ld113z) },	\
+    { ENTRY (fu, du, ld64iu, ld64mu, ld106u, ld113u) }	\
+    }							\
+  }
+
+struct test_exactness
+  {
+  STRUCT_FOREACH_FLOAT_BOOL
+  };
+
+struct test_results
+  {
+  STRUCT_FOREACH_FLOAT_FTYPE
+  };
+
+struct test {
+  const char *s;
+  struct test_exactness exact;
+  struct test_results r[4];
+};
+
 /* Include the generated test data.  */
 #include "tst-strtod-round-data.h"
 
+#define GEN_ONE_TEST(FSUF, FTYPE, FTOSTR, FTOSTRM, LSUF, CSUF)	\
+{								\
+  FTYPE f = strto ## FSUF (s, NULL);				\
+  if (f != expected->FSUF					\
+      || (copysign ## CSUF) (1.0 ## LSUF, f)			\
+	 != (copysign ## CSUF) (1.0 ## LSUF, expected->FSUF))	\
+    {								\
+      char efstr[FSTRLENMAX];					\
+      char fstr[FSTRLENMAX];					\
+      FTOSTR (efstr, FSTRLENMAX, "%" FTOSTRM "a", expected->FSUF); \
+      FTOSTR (fstr, FSTRLENMAX, "%" FTOSTRM "a", f);		\
+      printf ("strto" #FSUF " (%s) returned %s not %s"		\
+	      " (%s)\n", s, fstr, efstr, mode_name);		\
+      if (ROUNDING_TESTS (FTYPE, rnd_mode) || exact->FSUF)	\
+	result = 1;						\
+      else							\
+	printf ("ignoring this inexact result\n");		\
+    }								\
+}
+
 static int
 test_in_one_mode (const char *s, const struct test_results *expected,
-		  const struct exactness *exact, const char *mode_name,
-		  bool float_round_ok, bool double_round_ok,
-		  bool long_double_round_ok)
+		  const struct test_exactness *exact, const char *mode_name,
+		  int rnd_mode)
 {
   int result = 0;
-  float f = strtof (s, NULL);
-  double d = strtod (s, NULL);
-  long double ld = strtold (s, NULL);
-  if (f != expected->f
-      || copysignf (1.0f, f) != copysignf (1.0f, expected->f))
-    {
-      printf ("strtof (%s) returned %a not %a (%s)\n", s, f,
-	      expected->f, mode_name);
-      if (float_round_ok || exact->f)
-	result = 1;
-      else
-	printf ("ignoring this inexact result\n");
-    }
-  if (d != expected->d
-      || copysign (1.0, d) != copysign (1.0, expected->d))
-    {
-      printf ("strtod (%s) returned %a not %a (%s)\n", s, d,
-	      expected->d, mode_name);
-      if (double_round_ok || exact->d)
-	result = 1;
-      else
-	printf ("ignoring this inexact result\n");
-    }
-  if (ld != expected->ld
-      || copysignl (1.0L, ld) != copysignl (1.0L, expected->ld))
-    {
-      printf ("strtold (%s) returned %La not %La (%s)\n", s, ld,
-	      expected->ld, mode_name);
-      if ((long_double_round_ok && LDBL_MANT_DIG != 106) || exact->ld)
-	result = 1;
-      else
-	printf ("ignoring this inexact result\n");
-    }
+  GEN_TEST_STRTOD_FOREACH (GEN_ONE_TEST)
   return result;
 }
 
+static const struct fetestmodes
+  {
+  const char *mode_name;
+  int rnd_mode;
+  int rnd_i; /* Corresponding index into r array of struct test.  */
+  } modes[] = {
+    { "default rounding mode", FE_TONEAREST, 0 },
+#ifdef FE_DOWNWARD
+    { "FE_DOWNWARD", FE_DOWNWARD, 1 },
+#endif
+#ifdef FE_TOWARDZERO
+    { "FE_TOWARDZERO", FE_TOWARDZERO, 2 },
+#endif
+#ifdef FE_UPWARD
+    { "FE_UPWARD", FE_UPWARD, 3 },
+#endif
+    {}
+};
+
 static int
 do_test (void)
 {
@@ -182,44 +195,19 @@ do_test (void)
   int result = 0;
   for (size_t i = 0; i < sizeof (tests) / sizeof (tests[0]); i++)
     {
-      result |= test_in_one_mode (tests[i].s, &tests[i].rn, &tests[i].exact,
-				  "default rounding mode",
-				  true, true, true);
-#ifdef FE_DOWNWARD
-      if (!fesetround (FE_DOWNWARD))
+      result |= test_in_one_mode (tests[i].s, &tests[i].r[modes[0].rnd_i],
+				  &tests[i].exact, modes[0].mode_name,
+				  modes[0].rnd_mode);
+      for (const struct fetestmodes *m = &modes[1]; m->mode_name != NULL; m++)
 	{
-	  result |= test_in_one_mode (tests[i].s, &tests[i].rd,
-				      &tests[i].exact, "FE_DOWNWARD",
-				      ROUNDING_TESTS (float, FE_DOWNWARD),
-				      ROUNDING_TESTS (double, FE_DOWNWARD),
-				      ROUNDING_TESTS (long double,
-						      FE_DOWNWARD));
-	  fesetround (save_round_mode);
+	  if (!fesetround (m->rnd_mode))
+	    {
+	      result |= test_in_one_mode (tests[i].s, &tests[i].r[m->rnd_i],
+					  &tests[i].exact, m->mode_name,
+					  m->rnd_mode);
+	      fesetround (save_round_mode);
+	    }
 	}
-#endif
-#ifdef FE_TOWARDZERO
-      if (!fesetround (FE_TOWARDZERO))
-	{
-	  result |= test_in_one_mode (tests[i].s, &tests[i].rz,
-				      &tests[i].exact, "FE_TOWARDZERO",
-				      ROUNDING_TESTS (float, FE_TOWARDZERO),
-				      ROUNDING_TESTS (double, FE_TOWARDZERO),
-				      ROUNDING_TESTS (long double,
-						      FE_TOWARDZERO));
-	  fesetround (save_round_mode);
-	}
-#endif
-#ifdef FE_UPWARD
-      if (!fesetround (FE_UPWARD))
-	{
-	  result |= test_in_one_mode (tests[i].s, &tests[i].ru,
-				      &tests[i].exact, "FE_UPWARD",
-				      ROUNDING_TESTS (float, FE_UPWARD),
-				      ROUNDING_TESTS (double, FE_UPWARD),
-				      ROUNDING_TESTS (long double, FE_UPWARD));
-	  fesetround (save_round_mode);
-	}
-#endif
     }
   return result;
 }
diff --git a/stdlib/tst-strtod.h b/stdlib/tst-strtod.h
index d53c1de95a..607cf393aa 100644
--- a/stdlib/tst-strtod.h
+++ b/stdlib/tst-strtod.h
@@ -22,10 +22,10 @@
 #define FSTRLENMAX 128
 
 /* Splat n variants of the same test for the various strtod functions.  */
-#define GEN_TEST_STRTOD_FOREACH(mfunc)		  \
-    mfunc (  f,       float, snprintf,  "", f, f) \
-    mfunc (  d,      double, snprintf,  "",  ,  ) \
-    mfunc ( ld, long double, snprintf, "L", L, l)
+#define GEN_TEST_STRTOD_FOREACH(mfunc, ...)			 \
+    mfunc (  f,       float, snprintf,  "", f, f, ##__VA_ARGS__) \
+    mfunc (  d,      double, snprintf,  "",  ,  , ##__VA_ARGS__) \
+    mfunc ( ld, long double, snprintf, "L", L, l, ##__VA_ARGS__)
 /* The arguments to the generated macros are:
    FSUF - Function suffix
    FTYPE - float type