summary refs log tree commit diff
path: root/stdlib
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2018-06-13 16:06:14 +0000
committerJoseph Myers <joseph@codesourcery.com>2018-06-13 16:06:14 +0000
commitfcd6b5ac36a49e83e27e9186ded04329d3b0b0d9 (patch)
tree79886f0f215a5537318cdd5175211214ead0bbb7 /stdlib
parenta745c837cb51c2efe8900740548cb68ec2a2f7ab (diff)
downloadglibc-fcd6b5ac36a49e83e27e9186ded04329d3b0b0d9.tar.gz
glibc-fcd6b5ac36a49e83e27e9186ded04329d3b0b0d9.tar.xz
glibc-fcd6b5ac36a49e83e27e9186ded04329d3b0b0d9.zip
Fix strtod overflow detection (bug 23279).
As shown by bug 23279, strtod's round_and_return has an off-by-one
error in its overflow detection, only counting an exponent greater
than MAX_EXP as overflowing when an exponent of MAX_EXP also means
overflow (recall the ISO C definition of DBL_MAX_EXP etc. is based on
a floating-point model where 2^exp is multiplied by a value in the
interval [0.5, 1), so 2^MAX_EXP is not representable).

For decimal arguments to strtod, a separate overflow check in the main
implementation covers the case where the integer part of the argument
(truncated to the nearest integer towards zero) has more than MAX_EXP
bits, meaning that this issue in round_and_return only affects cases
(arguments with absolute value strictly between the maximum
representable value and 2^MAX_EXP) where overflow depends on the
rounding mode; in such cases, the returned value would still have been
correct on overflow but without the overflow exception being raised or
errno being set to ERANGE.  For hex float arguments, however, other
cases can arise, as shown in bug 23279, where a value with exponent
already set to MAX_EXP is passed into round_and_return and a result
can wrongly end up being NaN, or infinity instead of the largest
finite value.

This patch fixes the off-by-one error, adds testing of overflow
exceptions to the tst-strtod-round framework, and adds tests of these
issues.

Tested for x86_64.  Also ran the tst-strtod-round tests for powerpc to
make sure the new tests didn't introduce any new failures for IBM long
double.

	[BZ #23279]
	* stdlib/strtod_l.c (round_and_return): Handle an exponent of
	MAX_EXP as overflowing.
	* stdlib/gen-tst-strtod-round.c (string_to_fp): Clear MPFR
	overflow flag.
	(round_str): Output also whether result overflows in each rounding
	mode.
	* stdlib/tst-strtod-round-data: Add more tests.
	* stdlib/tst-strtod-round-data.h: Regenerated.
	* stdlib/tst-strtod-round-skeleton.c (_XNTRY): Update comment.
	(TEST): Handle extra arguments for overflow flags.
	(struct test_overflow): New type.
	[!FE_OVERFLOW] (FE_OVERFLOW): Define to 0.
	(GEN_ONE_TEST): Clear all exceptions.  Test overflow flag.
	(test_in_one_mode): Take argument with overflow information.
	(do_test): Update calls to test_in_one_mode.
Diffstat (limited to 'stdlib')
-rw-r--r--stdlib/gen-tst-strtod-round.c26
-rw-r--r--stdlib/strtod_l.c4
-rw-r--r--stdlib/tst-strtod-round-data7
-rw-r--r--stdlib/tst-strtod-round-data.h9091
-rw-r--r--stdlib/tst-strtod-round-skeleton.c108
5 files changed, 4845 insertions, 4391 deletions
diff --git a/stdlib/gen-tst-strtod-round.c b/stdlib/gen-tst-strtod-round.c
index a8f1c60f55..df9dcaf2fe 100644
--- a/stdlib/gen-tst-strtod-round.c
+++ b/stdlib/gen-tst-strtod-round.c
@@ -45,6 +45,7 @@
 static int
 string_to_fp (mpfr_t f, const char *s, mpfr_rnd_t rnd)
 {
+  mpfr_clear_overflow ();
 #ifdef WORKAROUND
   mpfr_t f2;
   mpfr_init2 (f2, 100000);
@@ -73,34 +74,45 @@ static void
 round_str (FILE *fout, const char *s, int prec, int emin, int emax,
 	   bool ibm_ld)
 {
+  mpfr_t max_value;
   mpfr_t f;
   mpfr_set_default_prec (prec);
   mpfr_set_emin (emin);
   mpfr_set_emax (emax);
   mpfr_init (f);
   int r = string_to_fp (f, s, MPFR_RNDD);
+  bool overflow = mpfr_overflow_p () != 0;
   if (ibm_ld)
     {
       assert (prec == 106 && emin == -1073 && emax == 1024);
       /* The maximum value in IBM long double has discontiguous
 	 mantissa bits.  */
-      mpfr_t max_value;
       mpfr_init2 (max_value, 107);
       mpfr_set_str (max_value, "0x1.fffffffffffff7ffffffffffffcp+1023", 0,
 		    MPFR_RNDN);
       if (mpfr_cmpabs (f, max_value) > 0)
-	r = 1;
-      mpfr_clear (max_value);
+	{
+	  r = 1;
+	  overflow = true;
+	}
     }
   mpfr_fprintf (fout, "\t%s,\n", r ? "false" : "true");
-  print_fp (fout, f, ",\n");
+  print_fp (fout, f, overflow ? ", true,\n" : ", false,\n");
   string_to_fp (f, s, MPFR_RNDN);
-  print_fp (fout, f, ",\n");
+  overflow = (mpfr_overflow_p () != 0
+	      || (ibm_ld && mpfr_cmpabs (f, max_value) > 0));
+  print_fp (fout, f, overflow ? ", true,\n" : ", false,\n");
   string_to_fp (f, s, MPFR_RNDZ);
-  print_fp (fout, f, ",\n");
+  overflow = (mpfr_overflow_p () != 0
+	      || (ibm_ld && mpfr_cmpabs (f, max_value) > 0));
+  print_fp (fout, f, overflow ? ", true,\n" : ", false,\n");
   string_to_fp (f, s, MPFR_RNDU);
-  print_fp (fout, f, "");
+  overflow = (mpfr_overflow_p () != 0
+	      || (ibm_ld && mpfr_cmpabs (f, max_value) > 0));
+  print_fp (fout, f, overflow ? ", true" : ", false");
   mpfr_clear (f);
+  if (ibm_ld)
+    mpfr_clear (max_value);
 }
 
 static void
diff --git a/stdlib/strtod_l.c b/stdlib/strtod_l.c
index e1e9c13765..a09b093fce 100644
--- a/stdlib/strtod_l.c
+++ b/stdlib/strtod_l.c
@@ -310,7 +310,7 @@ round_and_return (mp_limb_t *retval, intmax_t exponent, int negative,
 	}
     }
 
-  if (exponent > MAX_EXP)
+  if (exponent >= MAX_EXP)
     goto overflow;
 
   bool half_bit = (round_limb & (((mp_limb_t) 1) << round_bit)) != 0;
@@ -343,7 +343,7 @@ round_and_return (mp_limb_t *retval, intmax_t exponent, int negative,
 	exponent = MIN_EXP - 1;
     }
 
-  if (exponent > MAX_EXP)
+  if (exponent >= MAX_EXP)
   overflow:
     return overflow_value (negative);
 
diff --git a/stdlib/tst-strtod-round-data b/stdlib/tst-strtod-round-data
index cb908036fd..8a898ddb0e 100644
--- a/stdlib/tst-strtod-round-data
+++ b/stdlib/tst-strtod-round-data
@@ -148,3 +148,10 @@
 -3.237587559719012555462219479113823276249784669017340504844942194598519770062059685508835745638324970127939070738424059838293609943191271023342555035986308991521396355375667467208367312819235870119724263252776995195727778126085574034035411017344128491238136414394551514178668780674015531193282296319913113495953953933831631032855605791532328598034154166422617226534880263244723830482289656875701701315902175019974435037627824356684033058939701577883356651733717468531204705842607568803666569711421917525834491783583598401321476176752039857173551930268891446850107760584333855521475305010940756813993214730850216669600967698749412592167692757446422169965426483919224341062751152057061076522973232731542382055087239368522167656194830741819605276971705738272393130698937532095725613383807312946395184980707534803490003540251394324459987958400939111001126190861523615485938285497714410609640798273816511769391568591823198476415765275534341709798367687043373145262933998108452661682659942586304978413812755518166239176614473815940025342279575304159493260770068030636885746695206392378276051948759263882079389379666940357441139816661913198656187703463519723262653223919257185751827493927586153153792077729913353547954808876263400200663495414360816863385220457719546338953323399286762099558324132103460225580066817535680886906060858264089074120360391613368274811868067637495154569071591624185979937989402513750464346904036668477876379544221432800037599944499161940321774835027752710681217554286366043661491013593886229615614494736186475932160549630939390542165126494166960681499481651861215529870984381726203476917507560266886692644952355421814201350137351435237036912624414444992497142303802423605897110605364956579914507108584002230524766331348271456591814078599780820974961968314684496428310691542272663818486132771177670874927831510002443658417608078383611526899905533629456904234997116303929427262032216072887961072267850618234492852606488522739744757845004694461812790342894353802938671928834585447328398711684245164703625580196678024410303542544534512706792134908369873605619756775207191558754413381571756431003248529020572648048946458999967788526617126349345966896362376841092268841417781414969315002419192181972121568811432459128737128140063645558482525300089060238860392371092102688097987915838860882370022268312322882235690785726190915062699382576041643741555139697348927957856990969985342299599797431503615312038393069808777315725367497595040966093808407117316369389112216628231869173217637452855462790553030636920487796465880633399632793882734473382168542596184679158149228725004404714293460752371865436947855237307240001863573081174929166645758276081272685156100195420794154740486637315823136798695124738873328565945598241199335059398955049459449844741098478330319112865980346771381982151154499846478545530650091824164892591396650703633600023191521502618379988693800703884555191647864959327260468892793195316578510173816406054364319294906641284764788384683586662382042642852654156477478700779123584369965723284711409361741235548687181052639639279285373139084165798451899763979500837428077782309910703522399860010310321116623028924118238023770381424894162717815296210097245221769714495449744327945091943394325259297771090128969600269822520904193880119094781214175887316220311309028456568749910010962366586834018403242866721783519806933018588077977626913774236680220258524711348037750591646286531625306510583751929280541119187219596706615736304036444366663256426643903386694536649648686380122198677895751002327229059364018755164517060321515091173358005987498359799467138817648881479418623694683454881683746841149715181334498096967702613110590140231345676956141227850879905018558219984441819798054463206764413100251255775535830770535620946159535406497134759043192647996190512978586496199656070707105117773853504277795024754647024165589129442822627147868917463795166386552921913398878270019905147510849518894114102536073369047160130990411626048426437835295683097278297774735181045158616674564080237813146623269215019613231938626758927531490945029356207933289363847181438902539297057969524961348607844569521442237914899100699610921669921572167164875488132527187949318543809703388178931170799769792886086681284964861608656928109305369539955846964197786677053847603962194721523867993048528558551380823699291873352033111096244814245789620930756114228971363838828108534030152031715929722499546436547773404017947035596936338462103946797525667033935433489292620531649199724400832489751788129365426568881328357966337292439204382537174357675404105580244018783685041224798457022189315692175787257287203633134300759209060570319508886475377719911176071302732819878165468592717406388218727585026352127436844762994722826390779737322113768842482160812973100323673863050234437722898796145596181862320550301285861980052194863780743808106946940079349630782676930197134206259739125377941060751175427888774493677478593805682322173891730311959284895178856039354015035864931073602059531001572891528828982167810245343327388887928886208615327002834690068636094325052251429781641267821367266715283643659749152264457938319185148303604827363623405060374573505789923003843438436174489383805098509083722050766328250349793203837202162624690093533478114438810603140565070517669964629947543608404988178019652088162307525611931821066493746994641048066011859814337589829896549720562117090677291541318153057715167624128318297771376531788973088699647168159229805877415594828532539839967464064556647594705830374653113373530876658380240145380423210673778776803592627231257495817394581607796277282644312510714532297108722017217547317744900647318022108570947064304280100418971450552007356891519523293614416944016354756866350050833501416942505071203810116719053430543531027953437436446745566839242129860410443198862219469972163224971258348314341755015213118628882713134766297624091644805801186976152536913514712919240503721680740586016832099946807466311777189050656676962849581383790904722087478646766320517056183581970236248227413322748304134245717987665377396011236706627320817654565682680006957454759981618023476448544673508068369492066566895437050571584345511070959483898938738225050292533674383091612495407126805381796487365892131916426837522671623266627483065655765705534239355214893395905702329340402794052884259146049064629582075576563307670749189662176976725361937046200576007893814439695301892528761187544161389682003509216791271836545495416676148151145195082668323677621182991451835324281863619641773620601014510950996746726615703771971266687151564427772359427340566909351858654807999781808513034680104078196607462166928018863385629928965649243954503391493597963417955268639606791452833692467872935741940362479842688642227725662504694679557678170929873774151037857807219938356152056997839625453727441947651198316190826615266016347740875615970031428012228328190610356706715662722241878767131224669837573607121539572299329404101274463156060298348931678277361174057097484704587036227686110677413094941011961262438027467952964727129462752693949019764164538344775554466171428121848999818969114034332797672927989107710137279281184295118233855942385256333164153378143279674287318136458207166174996112638689535976047617221520910027427485161965702038805161865494457444594178063766957037428053543239915792369877811053417485684498667123216132006378630814477106813088898563644909178779463295955587688067277368683836470612208483299572260344016516194247232298740800342116589984844356688576984553507410293250093945014209879983314562948451929862241009275783684229669718641013736581856815277185073259140534024850924787544871716174654424640728091372513505922826813145390369149590652886241000625495880523771672395227312971578042522330551788256261683080675549820375567692574152956993944504349004617185470945673049153218968830613586193253490318451871770642617802890083608004460414305421033261048294750210470303202846332054952531617433058538758154347087854561609738141615145103748777579733574989673510104836750248325511777237502526995647687215364262385606217553691332159421351598905950537513518351520709657614578131639854432532002236696200855408766520105076378983345708235918180749273124590433024519869147132931932462703067876214268579940066030521414045386366551780718510535469417760242493782392451178913322503092692423649855756521279456558275339921490892868856862895022564047205838132429286600764536839036698193759634186899291274131934296059833048690594627623595320676097721540716472990950611858372856271872423573251506230042608074167903809812264198034505185435990821356377966484742250577592243727298923187891299404854048446822719928239317254073429532989089675503790372464487057264894107613242300912487070053676379388189496900004239731820229886894053019610823763957809819187948639826973433528683168917360632750040517847686479093538683816924213175672979768822065627696943474914020483056384006872835738311110986586149510661361915342172527409078742250880056867149831149121019729847242037335904440063130981999650700416787683293610119590221942974317455716336227454789239793488032299063316588917505912406020220045264868457718282165158892171630470709599503997282778168097827497383884195820921583645621293941200045604062174334998171535030513366277293714389988219756129580868518167923841173364269774889246694435264051484911461988227011238661037602452710188911900438270362280391121270021679247152879324195035694278071477495720447513017171148877312193736366348711630105507365864598069586257026976295714123943691621672377694552248018987680338612382795605985191106112971398796002636340393693119651973344711646854574482999700397952536878348512983782198330513744803168936076427075943787200489575435147989033386529956551570669047103070223076797892329848058499725632813524581372640746415923016932853954152472487866287318545051065376430120748079948860283261855738836955246188128622509828635867225708782966017423170535046509131388753895013061151387840089512861842615441729962315731301087767989000918136617870582141517330935619268642915983553727587587676791953536960714236687847602589538927962585440961131240218794236944630211930970546118745080346860636620310193382167597465544174488399379683716417891139157575146359165023126594124268610800205258776019000550873739401445303129974560221438061891795442780328126230093178952504570380957199592993338719686487798275474853570100033092481743129836527369756194343789131822069107283156271772679863538216891518713732520976834628418347371261368933454629405371869789752684339805368137450825001203521193642598238954329102258317328098581116978343883611320940814793654745807336162557057195523274610323601685712314930799144191673243832283659669368716126815118360353441303009936083544193524336572930768154506567477565558211143508568396203781879592033787429012753106951129653074630840496376302289668286168325299592504054003803917262600195834001336180158836765599057537979745423711070158871650976475924365707758401328959478791343481250979029363644046972556422294698558561670817595994409985323205913035009923360820734795546082012200697671744573982535291905800552837118327702125018691644774560916230166739307705017656065679867259837178918123254219579594535869171376148397610005870749992910355727569593729567789260479930835305112462727870603529547312621720559953074675620549217314861961905983960910846471569192459257648138212674016814845327496495507412976753381357634960529826817906824433858135485518651632270319927880227571858035210375443324098235463619647723862420557582355632137583370066602155641218235815280874570372436217877316899649287051943247206509113311767578124e-4966
 -3.237587559719012555462219479113823276249784669017340504844942194598519770062059685508835745638324970127939070738424059838293609943191271023342555035986308991521396355375667467208367312819235870119724263252776995195727778126085574034035411017344128491238136414394551514178668780674015531193282296319913113495953953933831631032855605791532328598034154166422617226534880263244723830482289656875701701315902175019974435037627824356684033058939701577883356651733717468531204705842607568803666569711421917525834491783583598401321476176752039857173551930268891446850107760584333855521475305010940756813993214730850216669600967698749412592167692757446422169965426483919224341062751152057061076522973232731542382055087239368522167656194830741819605276971705738272393130698937532095725613383807312946395184980707534803490003540251394324459987958400939111001126190861523615485938285497714410609640798273816511769391568591823198476415765275534341709798367687043373145262933998108452661682659942586304978413812755518166239176614473815940025342279575304159493260770068030636885746695206392378276051948759263882079389379666940357441139816661913198656187703463519723262653223919257185751827493927586153153792077729913353547954808876263400200663495414360816863385220457719546338953323399286762099558324132103460225580066817535680886906060858264089074120360391613368274811868067637495154569071591624185979937989402513750464346904036668477876379544221432800037599944499161940321774835027752710681217554286366043661491013593886229615614494736186475932160549630939390542165126494166960681499481651861215529870984381726203476917507560266886692644952355421814201350137351435237036912624414444992497142303802423605897110605364956579914507108584002230524766331348271456591814078599780820974961968314684496428310691542272663818486132771177670874927831510002443658417608078383611526899905533629456904234997116303929427262032216072887961072267850618234492852606488522739744757845004694461812790342894353802938671928834585447328398711684245164703625580196678024410303542544534512706792134908369873605619756775207191558754413381571756431003248529020572648048946458999967788526617126349345966896362376841092268841417781414969315002419192181972121568811432459128737128140063645558482525300089060238860392371092102688097987915838860882370022268312322882235690785726190915062699382576041643741555139697348927957856990969985342299599797431503615312038393069808777315725367497595040966093808407117316369389112216628231869173217637452855462790553030636920487796465880633399632793882734473382168542596184679158149228725004404714293460752371865436947855237307240001863573081174929166645758276081272685156100195420794154740486637315823136798695124738873328565945598241199335059398955049459449844741098478330319112865980346771381982151154499846478545530650091824164892591396650703633600023191521502618379988693800703884555191647864959327260468892793195316578510173816406054364319294906641284764788384683586662382042642852654156477478700779123584369965723284711409361741235548687181052639639279285373139084165798451899763979500837428077782309910703522399860010310321116623028924118238023770381424894162717815296210097245221769714495449744327945091943394325259297771090128969600269822520904193880119094781214175887316220311309028456568749910010962366586834018403242866721783519806933018588077977626913774236680220258524711348037750591646286531625306510583751929280541119187219596706615736304036444366663256426643903386694536649648686380122198677895751002327229059364018755164517060321515091173358005987498359799467138817648881479418623694683454881683746841149715181334498096967702613110590140231345676956141227850879905018558219984441819798054463206764413100251255775535830770535620946159535406497134759043192647996190512978586496199656070707105117773853504277795024754647024165589129442822627147868917463795166386552921913398878270019905147510849518894114102536073369047160130990411626048426437835295683097278297774735181045158616674564080237813146623269215019613231938626758927531490945029356207933289363847181438902539297057969524961348607844569521442237914899100699610921669921572167164875488132527187949318543809703388178931170799769792886086681284964861608656928109305369539955846964197786677053847603962194721523867993048528558551380823699291873352033111096244814245789620930756114228971363838828108534030152031715929722499546436547773404017947035596936338462103946797525667033935433489292620531649199724400832489751788129365426568881328357966337292439204382537174357675404105580244018783685041224798457022189315692175787257287203633134300759209060570319508886475377719911176071302732819878165468592717406388218727585026352127436844762994722826390779737322113768842482160812973100323673863050234437722898796145596181862320550301285861980052194863780743808106946940079349630782676930197134206259739125377941060751175427888774493677478593805682322173891730311959284895178856039354015035864931073602059531001572891528828982167810245343327388887928886208615327002834690068636094325052251429781641267821367266715283643659749152264457938319185148303604827363623405060374573505789923003843438436174489383805098509083722050766328250349793203837202162624690093533478114438810603140565070517669964629947543608404988178019652088162307525611931821066493746994641048066011859814337589829896549720562117090677291541318153057715167624128318297771376531788973088699647168159229805877415594828532539839967464064556647594705830374653113373530876658380240145380423210673778776803592627231257495817394581607796277282644312510714532297108722017217547317744900647318022108570947064304280100418971450552007356891519523293614416944016354756866350050833501416942505071203810116719053430543531027953437436446745566839242129860410443198862219469972163224971258348314341755015213118628882713134766297624091644805801186976152536913514712919240503721680740586016832099946807466311777189050656676962849581383790904722087478646766320517056183581970236248227413322748304134245717987665377396011236706627320817654565682680006957454759981618023476448544673508068369492066566895437050571584345511070959483898938738225050292533674383091612495407126805381796487365892131916426837522671623266627483065655765705534239355214893395905702329340402794052884259146049064629582075576563307670749189662176976725361937046200576007893814439695301892528761187544161389682003509216791271836545495416676148151145195082668323677621182991451835324281863619641773620601014510950996746726615703771971266687151564427772359427340566909351858654807999781808513034680104078196607462166928018863385629928965649243954503391493597963417955268639606791452833692467872935741940362479842688642227725662504694679557678170929873774151037857807219938356152056997839625453727441947651198316190826615266016347740875615970031428012228328190610356706715662722241878767131224669837573607121539572299329404101274463156060298348931678277361174057097484704587036227686110677413094941011961262438027467952964727129462752693949019764164538344775554466171428121848999818969114034332797672927989107710137279281184295118233855942385256333164153378143279674287318136458207166174996112638689535976047617221520910027427485161965702038805161865494457444594178063766957037428053543239915792369877811053417485684498667123216132006378630814477106813088898563644909178779463295955587688067277368683836470612208483299572260344016516194247232298740800342116589984844356688576984553507410293250093945014209879983314562948451929862241009275783684229669718641013736581856815277185073259140534024850924787544871716174654424640728091372513505922826813145390369149590652886241000625495880523771672395227312971578042522330551788256261683080675549820375567692574152956993944504349004617185470945673049153218968830613586193253490318451871770642617802890083608004460414305421033261048294750210470303202846332054952531617433058538758154347087854561609738141615145103748777579733574989673510104836750248325511777237502526995647687215364262385606217553691332159421351598905950537513518351520709657614578131639854432532002236696200855408766520105076378983345708235918180749273124590433024519869147132931932462703067876214268579940066030521414045386366551780718510535469417760242493782392451178913322503092692423649855756521279456558275339921490892868856862895022564047205838132429286600764536839036698193759634186899291274131934296059833048690594627623595320676097721540716472990950611858372856271872423573251506230042608074167903809812264198034505185435990821356377966484742250577592243727298923187891299404854048446822719928239317254073429532989089675503790372464487057264894107613242300912487070053676379388189496900004239731820229886894053019610823763957809819187948639826973433528683168917360632750040517847686479093538683816924213175672979768822065627696943474914020483056384006872835738311110986586149510661361915342172527409078742250880056867149831149121019729847242037335904440063130981999650700416787683293610119590221942974317455716336227454789239793488032299063316588917505912406020220045264868457718282165158892171630470709599503997282778168097827497383884195820921583645621293941200045604062174334998171535030513366277293714389988219756129580868518167923841173364269774889246694435264051484911461988227011238661037602452710188911900438270362280391121270021679247152879324195035694278071477495720447513017171148877312193736366348711630105507365864598069586257026976295714123943691621672377694552248018987680338612382795605985191106112971398796002636340393693119651973344711646854574482999700397952536878348512983782198330513744803168936076427075943787200489575435147989033386529956551570669047103070223076797892329848058499725632813524581372640746415923016932853954152472487866287318545051065376430120748079948860283261855738836955246188128622509828635867225708782966017423170535046509131388753895013061151387840089512861842615441729962315731301087767989000918136617870582141517330935619268642915983553727587587676791953536960714236687847602589538927962585440961131240218794236944630211930970546118745080346860636620310193382167597465544174488399379683716417891139157575146359165023126594124268610800205258776019000550873739401445303129974560221438061891795442780328126230093178952504570380957199592993338719686487798275474853570100033092481743129836527369756194343789131822069107283156271772679863538216891518713732520976834628418347371261368933454629405371869789752684339805368137450825001203521193642598238954329102258317328098581116978343883611320940814793654745807336162557057195523274610323601685712314930799144191673243832283659669368716126815118360353441303009936083544193524336572930768154506567477565558211143508568396203781879592033787429012753106951129653074630840496376302289668286168325299592504054003803917262600195834001336180158836765599057537979745423711070158871650976475924365707758401328959478791343481250979029363644046972556422294698558561670817595994409985323205913035009923360820734795546082012200697671744573982535291905800552837118327702125018691644774560916230166739307705017656065679867259837178918123254219579594535869171376148397610005870749992910355727569593729567789260479930835305112462727870603529547312621720559953074675620549217314861961905983960910846471569192459257648138212674016814845327496495507412976753381357634960529826817906824433858135485518651632270319927880227571858035210375443324098235463619647723862420557582355632137583370066602155641218235815280874570372436217877316899649287051943247206509113311767578125e-4966
 -3.237587559719012555462219479113823276249784669017340504844942194598519770062059685508835745638324970127939070738424059838293609943191271023342555035986308991521396355375667467208367312819235870119724263252776995195727778126085574034035411017344128491238136414394551514178668780674015531193282296319913113495953953933831631032855605791532328598034154166422617226534880263244723830482289656875701701315902175019974435037627824356684033058939701577883356651733717468531204705842607568803666569711421917525834491783583598401321476176752039857173551930268891446850107760584333855521475305010940756813993214730850216669600967698749412592167692757446422169965426483919224341062751152057061076522973232731542382055087239368522167656194830741819605276971705738272393130698937532095725613383807312946395184980707534803490003540251394324459987958400939111001126190861523615485938285497714410609640798273816511769391568591823198476415765275534341709798367687043373145262933998108452661682659942586304978413812755518166239176614473815940025342279575304159493260770068030636885746695206392378276051948759263882079389379666940357441139816661913198656187703463519723262653223919257185751827493927586153153792077729913353547954808876263400200663495414360816863385220457719546338953323399286762099558324132103460225580066817535680886906060858264089074120360391613368274811868067637495154569071591624185979937989402513750464346904036668477876379544221432800037599944499161940321774835027752710681217554286366043661491013593886229615614494736186475932160549630939390542165126494166960681499481651861215529870984381726203476917507560266886692644952355421814201350137351435237036912624414444992497142303802423605897110605364956579914507108584002230524766331348271456591814078599780820974961968314684496428310691542272663818486132771177670874927831510002443658417608078383611526899905533629456904234997116303929427262032216072887961072267850618234492852606488522739744757845004694461812790342894353802938671928834585447328398711684245164703625580196678024410303542544534512706792134908369873605619756775207191558754413381571756431003248529020572648048946458999967788526617126349345966896362376841092268841417781414969315002419192181972121568811432459128737128140063645558482525300089060238860392371092102688097987915838860882370022268312322882235690785726190915062699382576041643741555139697348927957856990969985342299599797431503615312038393069808777315725367497595040966093808407117316369389112216628231869173217637452855462790553030636920487796465880633399632793882734473382168542596184679158149228725004404714293460752371865436947855237307240001863573081174929166645758276081272685156100195420794154740486637315823136798695124738873328565945598241199335059398955049459449844741098478330319112865980346771381982151154499846478545530650091824164892591396650703633600023191521502618379988693800703884555191647864959327260468892793195316578510173816406054364319294906641284764788384683586662382042642852654156477478700779123584369965723284711409361741235548687181052639639279285373139084165798451899763979500837428077782309910703522399860010310321116623028924118238023770381424894162717815296210097245221769714495449744327945091943394325259297771090128969600269822520904193880119094781214175887316220311309028456568749910010962366586834018403242866721783519806933018588077977626913774236680220258524711348037750591646286531625306510583751929280541119187219596706615736304036444366663256426643903386694536649648686380122198677895751002327229059364018755164517060321515091173358005987498359799467138817648881479418623694683454881683746841149715181334498096967702613110590140231345676956141227850879905018558219984441819798054463206764413100251255775535830770535620946159535406497134759043192647996190512978586496199656070707105117773853504277795024754647024165589129442822627147868917463795166386552921913398878270019905147510849518894114102536073369047160130990411626048426437835295683097278297774735181045158616674564080237813146623269215019613231938626758927531490945029356207933289363847181438902539297057969524961348607844569521442237914899100699610921669921572167164875488132527187949318543809703388178931170799769792886086681284964861608656928109305369539955846964197786677053847603962194721523867993048528558551380823699291873352033111096244814245789620930756114228971363838828108534030152031715929722499546436547773404017947035596936338462103946797525667033935433489292620531649199724400832489751788129365426568881328357966337292439204382537174357675404105580244018783685041224798457022189315692175787257287203633134300759209060570319508886475377719911176071302732819878165468592717406388218727585026352127436844762994722826390779737322113768842482160812973100323673863050234437722898796145596181862320550301285861980052194863780743808106946940079349630782676930197134206259739125377941060751175427888774493677478593805682322173891730311959284895178856039354015035864931073602059531001572891528828982167810245343327388887928886208615327002834690068636094325052251429781641267821367266715283643659749152264457938319185148303604827363623405060374573505789923003843438436174489383805098509083722050766328250349793203837202162624690093533478114438810603140565070517669964629947543608404988178019652088162307525611931821066493746994641048066011859814337589829896549720562117090677291541318153057715167624128318297771376531788973088699647168159229805877415594828532539839967464064556647594705830374653113373530876658380240145380423210673778776803592627231257495817394581607796277282644312510714532297108722017217547317744900647318022108570947064304280100418971450552007356891519523293614416944016354756866350050833501416942505071203810116719053430543531027953437436446745566839242129860410443198862219469972163224971258348314341755015213118628882713134766297624091644805801186976152536913514712919240503721680740586016832099946807466311777189050656676962849581383790904722087478646766320517056183581970236248227413322748304134245717987665377396011236706627320817654565682680006957454759981618023476448544673508068369492066566895437050571584345511070959483898938738225050292533674383091612495407126805381796487365892131916426837522671623266627483065655765705534239355214893395905702329340402794052884259146049064629582075576563307670749189662176976725361937046200576007893814439695301892528761187544161389682003509216791271836545495416676148151145195082668323677621182991451835324281863619641773620601014510950996746726615703771971266687151564427772359427340566909351858654807999781808513034680104078196607462166928018863385629928965649243954503391493597963417955268639606791452833692467872935741940362479842688642227725662504694679557678170929873774151037857807219938356152056997839625453727441947651198316190826615266016347740875615970031428012228328190610356706715662722241878767131224669837573607121539572299329404101274463156060298348931678277361174057097484704587036227686110677413094941011961262438027467952964727129462752693949019764164538344775554466171428121848999818969114034332797672927989107710137279281184295118233855942385256333164153378143279674287318136458207166174996112638689535976047617221520910027427485161965702038805161865494457444594178063766957037428053543239915792369877811053417485684498667123216132006378630814477106813088898563644909178779463295955587688067277368683836470612208483299572260344016516194247232298740800342116589984844356688576984553507410293250093945014209879983314562948451929862241009275783684229669718641013736581856815277185073259140534024850924787544871716174654424640728091372513505922826813145390369149590652886241000625495880523771672395227312971578042522330551788256261683080675549820375567692574152956993944504349004617185470945673049153218968830613586193253490318451871770642617802890083608004460414305421033261048294750210470303202846332054952531617433058538758154347087854561609738141615145103748777579733574989673510104836750248325511777237502526995647687215364262385606217553691332159421351598905950537513518351520709657614578131639854432532002236696200855408766520105076378983345708235918180749273124590433024519869147132931932462703067876214268579940066030521414045386366551780718510535469417760242493782392451178913322503092692423649855756521279456558275339921490892868856862895022564047205838132429286600764536839036698193759634186899291274131934296059833048690594627623595320676097721540716472990950611858372856271872423573251506230042608074167903809812264198034505185435990821356377966484742250577592243727298923187891299404854048446822719928239317254073429532989089675503790372464487057264894107613242300912487070053676379388189496900004239731820229886894053019610823763957809819187948639826973433528683168917360632750040517847686479093538683816924213175672979768822065627696943474914020483056384006872835738311110986586149510661361915342172527409078742250880056867149831149121019729847242037335904440063130981999650700416787683293610119590221942974317455716336227454789239793488032299063316588917505912406020220045264868457718282165158892171630470709599503997282778168097827497383884195820921583645621293941200045604062174334998171535030513366277293714389988219756129580868518167923841173364269774889246694435264051484911461988227011238661037602452710188911900438270362280391121270021679247152879324195035694278071477495720447513017171148877312193736366348711630105507365864598069586257026976295714123943691621672377694552248018987680338612382795605985191106112971398796002636340393693119651973344711646854574482999700397952536878348512983782198330513744803168936076427075943787200489575435147989033386529956551570669047103070223076797892329848058499725632813524581372640746415923016932853954152472487866287318545051065376430120748079948860283261855738836955246188128622509828635867225708782966017423170535046509131388753895013061151387840089512861842615441729962315731301087767989000918136617870582141517330935619268642915983553727587587676791953536960714236687847602589538927962585440961131240218794236944630211930970546118745080346860636620310193382167597465544174488399379683716417891139157575146359165023126594124268610800205258776019000550873739401445303129974560221438061891795442780328126230093178952504570380957199592993338719686487798275474853570100033092481743129836527369756194343789131822069107283156271772679863538216891518713732520976834628418347371261368933454629405371869789752684339805368137450825001203521193642598238954329102258317328098581116978343883611320940814793654745807336162557057195523274610323601685712314930799144191673243832283659669368716126815118360353441303009936083544193524336572930768154506567477565558211143508568396203781879592033787429012753106951129653074630840496376302289668286168325299592504054003803917262600195834001336180158836765599057537979745423711070158871650976475924365707758401328959478791343481250979029363644046972556422294698558561670817595994409985323205913035009923360820734795546082012200697671744573982535291905800552837118327702125018691644774560916230166739307705017656065679867259837178918123254219579594535869171376148397610005870749992910355727569593729567789260479930835305112462727870603529547312621720559953074675620549217314861961905983960910846471569192459257648138212674016814845327496495507412976753381357634960529826817906824433858135485518651632270319927880227571858035210375443324098235463619647723862420557582355632137583370066602155641218235815280874570372436217877316899649287051943247206509113311767578126e-4966
+340282366920938463463374607431768211455
+179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137215
+1189731495357231765085759326628007130763444687096510237472674821233261358180483686904488595472612039915115437484839309258897667381308687426274524698341565006080871634366004897522143251619531446845952345709482135847036647464830984784714280967845614138476044338404886122905286855313236158695999885790106357018120815363320780964323712757164290613406875202417365323950267880089067517372270610835647545755780793431622213451903817859630690311343850657539360649645193283178291767658965405285113556134369793281725888015908414675289832538063419234888599898980623114025121674472051872439321323198402942705341366951274739014593816898288994445173400364617928377138074411345791848573595077170437644191743889644885377684738322240608239079061399475675334739784016491742621485229014847672335977897158397334226349734811441653077758250988926030894789604676153104257260141806823027588003441951455327701598071281589597169413965608439504983171255062282026626200048042149808200002060993433681237623857880627479727072877482838438705048034164633337013385405998040701908662387301605018188262573723766279240798931717708807901740265407930976419648877869604017517691938687988088008944251258826969688364194133945780157844364946052713655454906327187428531895100278695119323496808703630436193927592692344820812834297364478686862064169042458555136532055050508189891866846863799917647547291371573500701015197559097453040033031520683518216494195636696077748110598284901343611469214274121810495077979275556645164983850062051066517084647369464036640569339464837172183352956873912042640003611618789278195710052094562761306703551840330110645101995435167626688669627763820604342480357906415354212732946756073006907088870496125050068156659252761297664065498347492661798824062312210409274584565587264846417650160123175874034726261957289081466197651553830744424709698634753627770356227126145052549125229448040149114795681359875968512808575244271871455454084894986155020794806980939215658055319165641681105966454159951476908583129721503298816585142073061480888021769818338417129396878371459575846052583142928447249703698548125295775920936450022651427249949580708203966082847550921891152133321048011973883636577825533325988852156325439335021315312134081390451021255363707903495916963125924201167877190108935255914539488216897117943269373608639074472792751116715127106396425081353553137213552890539802602978645319795100976432939091924660228878912900654210118287298298707382159717184569540515403029173307292454391789568674219640761451173600617752186991913366837033887201582071625868247133104513315097274713442728340606642890406496636104443217752811227470029162858093727701049646499540220983981932786613204254226464243689610107429923197638681545837561773535568984536053627234424277105760924864023781629665526314910906960488073475217005121136311870439925762508666032566213750416695719919674223210606724721373471234021613540712188239909701971943944347480314217903886317767779921539892177334344368907550318800833546852344370327089284147501640589448482001254237386680074457341910933774891959681016516069106149905572425810895586938833067490204900368624166301968553005687040285095450484840073528643826570403767157286512380255109954518857013476588189300004138849715883139866071547574816476727635116435462804401112711392529180570794193422686818353212799068972247697191474268157912195973794192807298886952361100880264258801320928040011928153970801130741339550003299015924978259936974358726286143980520112454369271114083747919007803406596321353417004068869443405472140675963640997405009225803505672726465095506267339268892424364561897661906898424186770491035344080399248327097911712881140170384182058601614758284200750183500329358499691864066590539660709069537381601887679046657759654588001937117771344698326428792622894338016112445533539447087462049763409147542099248815521395929388007711172017894897793706604273480985161028815458787911160979113422433557549170905442026397275695283207305331845419990749347810524006194197200591652147867193696254337864981603833146354201700628817947177518115217674352016511172347727727075220056177748218928597158346744541337107358427757919660562583883823262178961691787226118865632764934288772405859754877759869235530653929937901193611669007472354746360764601872442031379944139824366828698790212922996174192728625891720057612509349100482545964152046477925114446500732164109099345259799455690095576788686397487061948854749024863607921857834205793797188834779656273479112388585706424836379072355410286787018527401653934219888361061949671961055068686961468019035629749424086587195041004404915266476272761070511568387063401264136517237211409916458796347624949215904533937210937520465798300175408017538862312719042361037129338896586028150046596078872444365564480545689033575955702988396719744528212984142578483954005084264327730840985420021409069485412320805268520094146798876110414583170390473982488899228091818213934288295679717369943152460447027290669964066815
+-340282366920938463463374607431768211455
+-179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137215
+-1189731495357231765085759326628007130763444687096510237472674821233261358180483686904488595472612039915115437484839309258897667381308687426274524698341565006080871634366004897522143251619531446845952345709482135847036647464830984784714280967845614138476044338404886122905286855313236158695999885790106357018120815363320780964323712757164290613406875202417365323950267880089067517372270610835647545755780793431622213451903817859630690311343850657539360649645193283178291767658965405285113556134369793281725888015908414675289832538063419234888599898980623114025121674472051872439321323198402942705341366951274739014593816898288994445173400364617928377138074411345791848573595077170437644191743889644885377684738322240608239079061399475675334739784016491742621485229014847672335977897158397334226349734811441653077758250988926030894789604676153104257260141806823027588003441951455327701598071281589597169413965608439504983171255062282026626200048042149808200002060993433681237623857880627479727072877482838438705048034164633337013385405998040701908662387301605018188262573723766279240798931717708807901740265407930976419648877869604017517691938687988088008944251258826969688364194133945780157844364946052713655454906327187428531895100278695119323496808703630436193927592692344820812834297364478686862064169042458555136532055050508189891866846863799917647547291371573500701015197559097453040033031520683518216494195636696077748110598284901343611469214274121810495077979275556645164983850062051066517084647369464036640569339464837172183352956873912042640003611618789278195710052094562761306703551840330110645101995435167626688669627763820604342480357906415354212732946756073006907088870496125050068156659252761297664065498347492661798824062312210409274584565587264846417650160123175874034726261957289081466197651553830744424709698634753627770356227126145052549125229448040149114795681359875968512808575244271871455454084894986155020794806980939215658055319165641681105966454159951476908583129721503298816585142073061480888021769818338417129396878371459575846052583142928447249703698548125295775920936450022651427249949580708203966082847550921891152133321048011973883636577825533325988852156325439335021315312134081390451021255363707903495916963125924201167877190108935255914539488216897117943269373608639074472792751116715127106396425081353553137213552890539802602978645319795100976432939091924660228878912900654210118287298298707382159717184569540515403029173307292454391789568674219640761451173600617752186991913366837033887201582071625868247133104513315097274713442728340606642890406496636104443217752811227470029162858093727701049646499540220983981932786613204254226464243689610107429923197638681545837561773535568984536053627234424277105760924864023781629665526314910906960488073475217005121136311870439925762508666032566213750416695719919674223210606724721373471234021613540712188239909701971943944347480314217903886317767779921539892177334344368907550318800833546852344370327089284147501640589448482001254237386680074457341910933774891959681016516069106149905572425810895586938833067490204900368624166301968553005687040285095450484840073528643826570403767157286512380255109954518857013476588189300004138849715883139866071547574816476727635116435462804401112711392529180570794193422686818353212799068972247697191474268157912195973794192807298886952361100880264258801320928040011928153970801130741339550003299015924978259936974358726286143980520112454369271114083747919007803406596321353417004068869443405472140675963640997405009225803505672726465095506267339268892424364561897661906898424186770491035344080399248327097911712881140170384182058601614758284200750183500329358499691864066590539660709069537381601887679046657759654588001937117771344698326428792622894338016112445533539447087462049763409147542099248815521395929388007711172017894897793706604273480985161028815458787911160979113422433557549170905442026397275695283207305331845419990749347810524006194197200591652147867193696254337864981603833146354201700628817947177518115217674352016511172347727727075220056177748218928597158346744541337107358427757919660562583883823262178961691787226118865632764934288772405859754877759869235530653929937901193611669007472354746360764601872442031379944139824366828698790212922996174192728625891720057612509349100482545964152046477925114446500732164109099345259799455690095576788686397487061948854749024863607921857834205793797188834779656273479112388585706424836379072355410286787018527401653934219888361061949671961055068686961468019035629749424086587195041004404915266476272761070511568387063401264136517237211409916458796347624949215904533937210937520465798300175408017538862312719042361037129338896586028150046596078872444365564480545689033575955702988396719744528212984142578483954005084264327730840985420021409069485412320805268520094146798876110414583170390473982488899228091818213934288295679717369943152460447027290669964066815
++0x.80000000000000000000000000000001p1025
diff --git a/stdlib/tst-strtod-round-data.h b/stdlib/tst-strtod-round-data.h
index fc09bc9117..5ac25f7b29 100644
--- a/stdlib/tst-strtod-round-data.h
+++ b/stdlib/tst-strtod-round-data.h
@@ -2,1852 +2,1852 @@
 static const struct test tests[] = {
   TEST ("3.518437208883201171875E+013",
 	false,
-	0x2p+44,
-	0x2p+44,
-	0x2p+44,
-	0x2.000004p+44,
-	false,
-	0x2.0000000000002p+44,
-	0x2.0000000000004p+44,
-	0x2.0000000000002p+44,
-	0x2.0000000000004p+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,
-	true,
-	0x2.0000000000003p+44,
-	0x2.0000000000003p+44,
-	0x2.0000000000003p+44,
-	0x2.0000000000003p+44),
+	0x2p+44, false,
+	0x2p+44, false,
+	0x2p+44, false,
+	0x2.000004p+44, false,
+	false,
+	0x2.0000000000002p+44, false,
+	0x2.0000000000004p+44, false,
+	0x2.0000000000002p+44, false,
+	0x2.0000000000004p+44, false,
+	true,
+	0x2.0000000000003p+44, false,
+	0x2.0000000000003p+44, false,
+	0x2.0000000000003p+44, false,
+	0x2.0000000000003p+44, false,
+	true,
+	0x2.0000000000003p+44, false,
+	0x2.0000000000003p+44, false,
+	0x2.0000000000003p+44, false,
+	0x2.0000000000003p+44, false,
+	true,
+	0x2.0000000000003p+44, false,
+	0x2.0000000000003p+44, false,
+	0x2.0000000000003p+44, false,
+	0x2.0000000000003p+44, false,
+	true,
+	0x2.0000000000003p+44, false,
+	0x2.0000000000003p+44, false,
+	0x2.0000000000003p+44, false,
+	0x2.0000000000003p+44, false),
   TEST ("1.00000005960464477550",
 	false,
-	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.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),
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.0000010000001p+0, false,
+	false,
+	0x1.0000010000000002p+0, false,
+	0x1.0000010000000002p+0, false,
+	0x1.0000010000000002p+0, false,
+	0x1.0000010000000004p+0, false,
+	false,
+	0x1.0000010000000002p+0, false,
+	0x1.0000010000000002p+0, false,
+	0x1.0000010000000002p+0, false,
+	0x1.0000010000000004p+0, false,
+	false,
+	0x1.0000010000000002048242f2ffp+0, false,
+	0x1.0000010000000002048242f2ff8p+0, false,
+	0x1.0000010000000002048242f2ffp+0, false,
+	0x1.0000010000000002048242f2ff8p+0, false,
+	false,
+	0x1.0000010000000002048242f2ff66p+0, false,
+	0x1.0000010000000002048242f2ff67p+0, false,
+	0x1.0000010000000002048242f2ff66p+0, false,
+	0x1.0000010000000002048242f2ff67p+0, false),
   TEST ("1.0000000596046447755",
 	false,
-	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.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),
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.0000010000001p+0, false,
+	false,
+	0x1.0000010000000002p+0, false,
+	0x1.0000010000000002p+0, false,
+	0x1.0000010000000002p+0, false,
+	0x1.0000010000000004p+0, false,
+	false,
+	0x1.0000010000000002p+0, false,
+	0x1.0000010000000002p+0, false,
+	0x1.0000010000000002p+0, false,
+	0x1.0000010000000004p+0, false,
+	false,
+	0x1.0000010000000002048242f2ffp+0, false,
+	0x1.0000010000000002048242f2ff8p+0, false,
+	0x1.0000010000000002048242f2ffp+0, false,
+	0x1.0000010000000002048242f2ff8p+0, false,
+	false,
+	0x1.0000010000000002048242f2ff66p+0, false,
+	0x1.0000010000000002048242f2ff67p+0, false,
+	0x1.0000010000000002048242f2ff66p+0, false,
+	0x1.0000010000000002048242f2ff67p+0, false),
   TEST ("1.000000059604644776",
 	false,
-	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.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),
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.0000010000001p+0, false,
+	false,
+	0x1.000001000000000ap+0, false,
+	0x1.000001000000000cp+0, false,
+	0x1.000001000000000ap+0, false,
+	0x1.000001000000000cp+0, false,
+	false,
+	0x1.000001000000000ap+0, false,
+	0x1.000001000000000cp+0, false,
+	0x1.000001000000000ap+0, false,
+	0x1.000001000000000cp+0, false,
+	false,
+	0x1.000001000000000b3db12bdc21p+0, false,
+	0x1.000001000000000b3db12bdc21p+0, false,
+	0x1.000001000000000b3db12bdc21p+0, false,
+	0x1.000001000000000b3db12bdc218p+0, false,
+	false,
+	0x1.000001000000000b3db12bdc213cp+0, false,
+	0x1.000001000000000b3db12bdc213dp+0, false,
+	0x1.000001000000000b3db12bdc213cp+0, false,
+	0x1.000001000000000b3db12bdc213dp+0, false),
   TEST ("1.000000059604644775",
 	false,
-	0x1p+0,
-	0x1p+0,
-	0x1p+0,
-	0x1.000002p+0,
-	false,
-	0x1.000000fffffffp+0,
-	0x1.000001p+0,
-	0x1.000000fffffffp+0,
-	0x1.000001p+0,
-	false,
-	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),
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1.000000fffffffp+0, false,
+	0x1.000001p+0, false,
+	0x1.000000fffffffp+0, false,
+	0x1.000001p+0, false,
+	false,
+	0x1.000000fffffffff8p+0, false,
+	0x1.000000fffffffff8p+0, false,
+	0x1.000000fffffffff8p+0, false,
+	0x1.000000fffffffffap+0, false,
+	false,
+	0x1.000000fffffffff8p+0, false,
+	0x1.000000fffffffff8p+0, false,
+	0x1.000000fffffffff8p+0, false,
+	0x1.000000fffffffffap+0, false,
+	false,
+	0x1.000000fffffffff8cb535a09dd8p+0, false,
+	0x1.000000fffffffff8cb535a09dd8p+0, false,
+	0x1.000000fffffffff8cb535a09dd8p+0, false,
+	0x1.000000fffffffff8cb535a09dep+0, false,
+	false,
+	0x1.000000fffffffff8cb535a09dd9p+0, false,
+	0x1.000000fffffffff8cb535a09dd91p+0, false,
+	0x1.000000fffffffff8cb535a09dd9p+0, false,
+	0x1.000000fffffffff8cb535a09dd91p+0, false),
   TEST ("1.00000005960464478",
 	false,
-	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.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),
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.0000010000001p+0, false,
+	false,
+	0x1.0000010000000054p+0, false,
+	0x1.0000010000000056p+0, false,
+	0x1.0000010000000054p+0, false,
+	0x1.0000010000000056p+0, false,
+	false,
+	0x1.0000010000000054p+0, false,
+	0x1.0000010000000056p+0, false,
+	0x1.0000010000000054p+0, false,
+	0x1.0000010000000056p+0, false,
+	false,
+	0x1.0000010000000055072873252f8p+0, false,
+	0x1.0000010000000055072873253p+0, false,
+	0x1.0000010000000055072873252f8p+0, false,
+	0x1.0000010000000055072873253p+0, false,
+	false,
+	0x1.0000010000000055072873252febp+0, false,
+	0x1.0000010000000055072873252febp+0, false,
+	0x1.0000010000000055072873252febp+0, false,
+	0x1.0000010000000055072873252fecp+0, false),
   TEST ("1.0000000596046448",
 	false,
-	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.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),
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.0000010000001p+0, false,
+	false,
+	0x1.00000100000001c4p+0, false,
+	0x1.00000100000001c6p+0, false,
+	0x1.00000100000001c4p+0, false,
+	0x1.00000100000001c6p+0, false,
+	false,
+	0x1.00000100000001c4p+0, false,
+	0x1.00000100000001c6p+0, false,
+	0x1.00000100000001c4p+0, false,
+	0x1.00000100000001c6p+0, false,
+	false,
+	0x1.00000100000001c5f67cd79279p+0, false,
+	0x1.00000100000001c5f67cd792798p+0, false,
+	0x1.00000100000001c5f67cd79279p+0, false,
+	0x1.00000100000001c5f67cd792798p+0, false,
+	false,
+	0x1.00000100000001c5f67cd7927953p+0, false,
+	0x1.00000100000001c5f67cd7927954p+0, false,
+	0x1.00000100000001c5f67cd7927953p+0, false,
+	0x1.00000100000001c5f67cd7927954p+0, false),
   TEST ("1.000000059604645",
 	false,
-	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.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),
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1.0000010000001p+0, false,
+	0x1.0000010000001p+0, false,
+	0x1.0000010000001p+0, false,
+	0x1.0000010000002p+0, false,
+	false,
+	0x1.000001000000102ep+0, false,
+	0x1.000001000000103p+0, false,
+	0x1.000001000000102ep+0, false,
+	0x1.000001000000103p+0, false,
+	false,
+	0x1.000001000000102ep+0, false,
+	0x1.000001000000103p+0, false,
+	0x1.000001000000102ep+0, false,
+	0x1.000001000000103p+0, false,
+	false,
+	0x1.000001000000102f4fc8c3d757p+0, false,
+	0x1.000001000000102f4fc8c3d7578p+0, false,
+	0x1.000001000000102f4fc8c3d757p+0, false,
+	0x1.000001000000102f4fc8c3d7578p+0, false,
+	false,
+	0x1.000001000000102f4fc8c3d75769p+0, false,
+	0x1.000001000000102f4fc8c3d75769p+0, false,
+	0x1.000001000000102f4fc8c3d75769p+0, false,
+	0x1.000001000000102f4fc8c3d7576ap+0, false),
   TEST ("1.00000005960464",
 	false,
-	0x1p+0,
-	0x1p+0,
-	0x1p+0,
-	0x1.000002p+0,
-	false,
-	0x1.000000fffffeap+0,
-	0x1.000000fffffeap+0,
-	0x1.000000fffffeap+0,
-	0x1.000000fffffebp+0,
-	false,
-	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),
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1.000000fffffeap+0, false,
+	0x1.000000fffffeap+0, false,
+	0x1.000000fffffeap+0, false,
+	0x1.000000fffffebp+0, false,
+	false,
+	0x1.000000fffffea7e4p+0, false,
+	0x1.000000fffffea7e6p+0, false,
+	0x1.000000fffffea7e4p+0, false,
+	0x1.000000fffffea7e6p+0, false,
+	false,
+	0x1.000000fffffea7e4p+0, false,
+	0x1.000000fffffea7e6p+0, false,
+	0x1.000000fffffea7e4p+0, false,
+	0x1.000000fffffea7e6p+0, false,
+	false,
+	0x1.000000fffffea7e5975eb11da7p+0, false,
+	0x1.000000fffffea7e5975eb11da78p+0, false,
+	0x1.000000fffffea7e5975eb11da7p+0, false,
+	0x1.000000fffffea7e5975eb11da78p+0, false,
+	false,
+	0x1.000000fffffea7e5975eb11da74ap+0, false,
+	0x1.000000fffffea7e5975eb11da74bp+0, false,
+	0x1.000000fffffea7e5975eb11da74ap+0, false,
+	0x1.000000fffffea7e5975eb11da74bp+0, false),
   TEST ("1.0000000596046",
 	false,
-	0x1p+0,
-	0x1p+0,
-	0x1p+0,
-	0x1.000002p+0,
-	false,
-	0x1.000000fffff36p+0,
-	0x1.000000fffff36p+0,
-	0x1.000000fffff36p+0,
-	0x1.000000fffff37p+0,
-	false,
-	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),
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1.000000fffff36p+0, false,
+	0x1.000000fffff36p+0, false,
+	0x1.000000fffff36p+0, false,
+	0x1.000000fffff37p+0, false,
+	false,
+	0x1.000000fffff36596p+0, false,
+	0x1.000000fffff36598p+0, false,
+	0x1.000000fffff36596p+0, false,
+	0x1.000000fffff36598p+0, false,
+	false,
+	0x1.000000fffff36596p+0, false,
+	0x1.000000fffff36598p+0, false,
+	0x1.000000fffff36596p+0, false,
+	0x1.000000fffff36598p+0, false,
+	false,
+	0x1.000000fffff36597d40e1b5026p+0, false,
+	0x1.000000fffff36597d40e1b50268p+0, false,
+	0x1.000000fffff36597d40e1b5026p+0, false,
+	0x1.000000fffff36597d40e1b50268p+0, false,
+	false,
+	0x1.000000fffff36597d40e1b502655p+0, false,
+	0x1.000000fffff36597d40e1b502656p+0, false,
+	0x1.000000fffff36597d40e1b502655p+0, false,
+	0x1.000000fffff36597d40e1b502656p+0, false),
   TEST ("1.000000059605",
 	false,
-	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.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),
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1.000001000063fp+0, false,
+	0x1.000001000064p+0, false,
+	0x1.000001000063fp+0, false,
+	0x1.000001000064p+0, false,
+	false,
+	0x1.000001000063fcap+0, false,
+	0x1.000001000063fca2p+0, false,
+	0x1.000001000063fcap+0, false,
+	0x1.000001000063fca2p+0, false,
+	false,
+	0x1.000001000063fcap+0, false,
+	0x1.000001000063fca2p+0, false,
+	0x1.000001000063fcap+0, false,
+	0x1.000001000063fca2p+0, false,
+	false,
+	0x1.000001000063fca17533f5572f8p+0, false,
+	0x1.000001000063fca17533f5573p+0, false,
+	0x1.000001000063fca17533f5572f8p+0, false,
+	0x1.000001000063fca17533f5573p+0, false,
+	false,
+	0x1.000001000063fca17533f5572fe9p+0, false,
+	0x1.000001000063fca17533f5572feap+0, false,
+	0x1.000001000063fca17533f5572fe9p+0, false,
+	0x1.000001000063fca17533f5572feap+0, false),
   TEST ("1.00000005960",
 	false,
-	0x1p+0,
-	0x1p+0,
-	0x1p+0,
-	0x1.000002p+0,
-	false,
-	0x1.000000fffae49p+0,
-	0x1.000000fffae4ap+0,
-	0x1.000000fffae49p+0,
-	0x1.000000fffae4ap+0,
-	false,
-	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),
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1.000000fffae49p+0, false,
+	0x1.000000fffae4ap+0, false,
+	0x1.000000fffae49p+0, false,
+	0x1.000000fffae4ap+0, false,
+	false,
+	0x1.000000fffae49ca8p+0, false,
+	0x1.000000fffae49caap+0, false,
+	0x1.000000fffae49ca8p+0, false,
+	0x1.000000fffae49caap+0, false,
+	false,
+	0x1.000000fffae49ca8p+0, false,
+	0x1.000000fffae49caap+0, false,
+	0x1.000000fffae49ca8p+0, false,
+	0x1.000000fffae49caap+0, false,
+	false,
+	0x1.000000fffae49ca916dacfff38p+0, false,
+	0x1.000000fffae49ca916dacfff38p+0, false,
+	0x1.000000fffae49ca916dacfff38p+0, false,
+	0x1.000000fffae49ca916dacfff388p+0, false,
+	false,
+	0x1.000000fffae49ca916dacfff382dp+0, false,
+	0x1.000000fffae49ca916dacfff382dp+0, false,
+	0x1.000000fffae49ca916dacfff382dp+0, false,
+	0x1.000000fffae49ca916dacfff382ep+0, false),
   TEST ("1.0000000596",
 	false,
-	0x1p+0,
-	0x1p+0,
-	0x1p+0,
-	0x1.000002p+0,
-	false,
-	0x1.000000fffae49p+0,
-	0x1.000000fffae4ap+0,
-	0x1.000000fffae49p+0,
-	0x1.000000fffae4ap+0,
-	false,
-	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),
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1.000000fffae49p+0, false,
+	0x1.000000fffae4ap+0, false,
+	0x1.000000fffae49p+0, false,
+	0x1.000000fffae4ap+0, false,
+	false,
+	0x1.000000fffae49ca8p+0, false,
+	0x1.000000fffae49caap+0, false,
+	0x1.000000fffae49ca8p+0, false,
+	0x1.000000fffae49caap+0, false,
+	false,
+	0x1.000000fffae49ca8p+0, false,
+	0x1.000000fffae49caap+0, false,
+	0x1.000000fffae49ca8p+0, false,
+	0x1.000000fffae49caap+0, false,
+	false,
+	0x1.000000fffae49ca916dacfff38p+0, false,
+	0x1.000000fffae49ca916dacfff38p+0, false,
+	0x1.000000fffae49ca916dacfff38p+0, false,
+	0x1.000000fffae49ca916dacfff388p+0, false,
+	false,
+	0x1.000000fffae49ca916dacfff382dp+0, false,
+	0x1.000000fffae49ca916dacfff382dp+0, false,
+	0x1.000000fffae49ca916dacfff382dp+0, false,
+	0x1.000000fffae49ca916dacfff382ep+0, false),
   TEST ("1.000000060",
 	false,
-	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.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),
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1.00000101b2b29p+0, false,
+	0x1.00000101b2b2ap+0, false,
+	0x1.00000101b2b29p+0, false,
+	0x1.00000101b2b2ap+0, false,
+	false,
+	0x1.00000101b2b29a46p+0, false,
+	0x1.00000101b2b29a46p+0, false,
+	0x1.00000101b2b29a46p+0, false,
+	0x1.00000101b2b29a48p+0, false,
+	false,
+	0x1.00000101b2b29a46p+0, false,
+	0x1.00000101b2b29a46p+0, false,
+	0x1.00000101b2b29a46p+0, false,
+	0x1.00000101b2b29a48p+0, false,
+	false,
+	0x1.00000101b2b29a4692b67b7ca3p+0, false,
+	0x1.00000101b2b29a4692b67b7ca3p+0, false,
+	0x1.00000101b2b29a4692b67b7ca3p+0, false,
+	0x1.00000101b2b29a4692b67b7ca38p+0, false,
+	false,
+	0x1.00000101b2b29a4692b67b7ca313p+0, false,
+	0x1.00000101b2b29a4692b67b7ca314p+0, false,
+	0x1.00000101b2b29a4692b67b7ca313p+0, false,
+	0x1.00000101b2b29a4692b67b7ca314p+0, false),
   TEST ("1.00000006",
 	false,
-	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.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),
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1.00000101b2b29p+0, false,
+	0x1.00000101b2b2ap+0, false,
+	0x1.00000101b2b29p+0, false,
+	0x1.00000101b2b2ap+0, false,
+	false,
+	0x1.00000101b2b29a46p+0, false,
+	0x1.00000101b2b29a46p+0, false,
+	0x1.00000101b2b29a46p+0, false,
+	0x1.00000101b2b29a48p+0, false,
+	false,
+	0x1.00000101b2b29a46p+0, false,
+	0x1.00000101b2b29a46p+0, false,
+	0x1.00000101b2b29a46p+0, false,
+	0x1.00000101b2b29a48p+0, false,
+	false,
+	0x1.00000101b2b29a4692b67b7ca3p+0, false,
+	0x1.00000101b2b29a4692b67b7ca3p+0, false,
+	0x1.00000101b2b29a4692b67b7ca3p+0, false,
+	0x1.00000101b2b29a4692b67b7ca38p+0, false,
+	false,
+	0x1.00000101b2b29a4692b67b7ca313p+0, false,
+	0x1.00000101b2b29a4692b67b7ca314p+0, false,
+	0x1.00000101b2b29a4692b67b7ca313p+0, false,
+	0x1.00000101b2b29a4692b67b7ca314p+0, false),
   TEST ("1.0000001",
 	false,
-	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.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),
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1.000001ad7f29ap+0, false,
+	0x1.000001ad7f29bp+0, false,
+	0x1.000001ad7f29ap+0, false,
+	0x1.000001ad7f29bp+0, false,
+	false,
+	0x1.000001ad7f29abcap+0, false,
+	0x1.000001ad7f29abcap+0, false,
+	0x1.000001ad7f29abcap+0, false,
+	0x1.000001ad7f29abccp+0, false,
+	false,
+	0x1.000001ad7f29abcap+0, false,
+	0x1.000001ad7f29abcap+0, false,
+	0x1.000001ad7f29abcap+0, false,
+	0x1.000001ad7f29abccp+0, false,
+	false,
+	0x1.000001ad7f29abcaf485787a65p+0, false,
+	0x1.000001ad7f29abcaf485787a65p+0, false,
+	0x1.000001ad7f29abcaf485787a65p+0, false,
+	0x1.000001ad7f29abcaf485787a658p+0, false,
+	false,
+	0x1.000001ad7f29abcaf485787a652p+0, false,
+	0x1.000001ad7f29abcaf485787a6521p+0, false,
+	0x1.000001ad7f29abcaf485787a652p+0, false,
+	0x1.000001ad7f29abcaf485787a6521p+0, false),
   TEST ("1.000000",
 	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+0,
-	0x1p+0,
-	0x1p+0,
-	0x1p+0,
-	true,
-	0x1p+0,
-	0x1p+0,
-	0x1p+0,
-	0x1p+0),
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	true,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	true,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	true,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	true,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	true,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false),
   TEST ("1.00000000000000011113",
 	false,
-	0x1p+0,
-	0x1p+0,
-	0x1p+0,
-	0x1.000002p+0,
-	false,
-	0x1p+0,
-	0x1.0000000000001p+0,
-	0x1p+0,
-	0x1.0000000000001p+0,
-	false,
-	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),
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1p+0, false,
+	0x1.0000000000001p+0, false,
+	0x1p+0, false,
+	0x1.0000000000001p+0, false,
+	false,
+	0x1.00000000000008p+0, false,
+	0x1.0000000000000802p+0, false,
+	0x1.00000000000008p+0, false,
+	0x1.0000000000000802p+0, false,
+	false,
+	0x1.00000000000008p+0, false,
+	0x1.0000000000000802p+0, false,
+	0x1.00000000000008p+0, false,
+	0x1.0000000000000802p+0, false,
+	false,
+	0x1.0000000000000801fc96557232p+0, false,
+	0x1.0000000000000801fc96557232p+0, false,
+	0x1.0000000000000801fc96557232p+0, false,
+	0x1.0000000000000801fc965572328p+0, false,
+	false,
+	0x1.0000000000000801fc9655723222p+0, false,
+	0x1.0000000000000801fc9655723222p+0, false,
+	0x1.0000000000000801fc9655723222p+0, false,
+	0x1.0000000000000801fc9655723223p+0, false),
   TEST ("1.00000000000000011103",
 	false,
-	0x1p+0,
-	0x1p+0,
-	0x1p+0,
-	0x1.000002p+0,
-	false,
-	0x1p+0,
-	0x1.0000000000001p+0,
-	0x1p+0,
-	0x1.0000000000001p+0,
-	false,
-	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),
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1p+0, false,
+	0x1.0000000000001p+0, false,
+	0x1p+0, false,
+	0x1.0000000000001p+0, false,
+	false,
+	0x1.00000000000008p+0, false,
+	0x1.00000000000008p+0, false,
+	0x1.00000000000008p+0, false,
+	0x1.0000000000000802p+0, false,
+	false,
+	0x1.00000000000008p+0, false,
+	0x1.00000000000008p+0, false,
+	0x1.00000000000008p+0, false,
+	0x1.0000000000000802p+0, false,
+	false,
+	0x1.00000000000008002459c076c48p+0, false,
+	0x1.00000000000008002459c076c5p+0, false,
+	0x1.00000000000008002459c076c48p+0, false,
+	0x1.00000000000008002459c076c5p+0, false,
+	false,
+	0x1.00000000000008002459c076c4f7p+0, false,
+	0x1.00000000000008002459c076c4f8p+0, false,
+	0x1.00000000000008002459c076c4f7p+0, false,
+	0x1.00000000000008002459c076c4f8p+0, false),
   TEST ("1.00000000000000011102",
 	false,
-	0x1p+0,
-	0x1p+0,
-	0x1p+0,
-	0x1.000002p+0,
-	false,
-	0x1p+0,
-	0x1p+0,
-	0x1p+0,
-	0x1.0000000000001p+0,
-	false,
-	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),
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1.0000000000001p+0, false,
+	false,
+	0x1.00000000000007fep+0, false,
+	0x1.00000000000008p+0, false,
+	0x1.00000000000007fep+0, false,
+	0x1.00000000000008p+0, false,
+	false,
+	0x1.00000000000007fep+0, false,
+	0x1.00000000000008p+0, false,
+	0x1.00000000000007fep+0, false,
+	0x1.00000000000008p+0, false,
+	false,
+	0x1.00000000000007fff5207e5dap+0, false,
+	0x1.00000000000007fff5207e5da08p+0, false,
+	0x1.00000000000007fff5207e5dap+0, false,
+	0x1.00000000000007fff5207e5da08p+0, false,
+	false,
+	0x1.00000000000007fff5207e5da073p+0, false,
+	0x1.00000000000007fff5207e5da073p+0, false,
+	0x1.00000000000007fff5207e5da073p+0, false,
+	0x1.00000000000007fff5207e5da074p+0, false),
   TEST ("1.00000000000000011101",
 	false,
-	0x1p+0,
-	0x1p+0,
-	0x1p+0,
-	0x1.000002p+0,
-	false,
-	0x1p+0,
-	0x1p+0,
-	0x1p+0,
-	0x1.0000000000001p+0,
-	false,
-	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),
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1.0000000000001p+0, false,
+	false,
+	0x1.00000000000007fep+0, false,
+	0x1.00000000000008p+0, false,
+	0x1.00000000000007fep+0, false,
+	0x1.00000000000008p+0, false,
+	false,
+	0x1.00000000000007fep+0, false,
+	0x1.00000000000008p+0, false,
+	0x1.00000000000007fep+0, false,
+	0x1.00000000000008p+0, false,
+	false,
+	0x1.00000000000007ffc5e73c447b8p+0, false,
+	0x1.00000000000007ffc5e73c447cp+0, false,
+	0x1.00000000000007ffc5e73c447b8p+0, false,
+	0x1.00000000000007ffc5e73c447cp+0, false,
+	false,
+	0x1.00000000000007ffc5e73c447befp+0, false,
+	0x1.00000000000007ffc5e73c447befp+0, false,
+	0x1.00000000000007ffc5e73c447befp+0, false,
+	0x1.00000000000007ffc5e73c447bfp+0, false),
   TEST ("1.0000000000000001111",
 	false,
-	0x1p+0,
-	0x1p+0,
-	0x1p+0,
-	0x1.000002p+0,
-	false,
-	0x1p+0,
-	0x1.0000000000001p+0,
-	0x1p+0,
-	0x1.0000000000001p+0,
-	false,
-	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),
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1p+0, false,
+	0x1.0000000000001p+0, false,
+	0x1p+0, false,
+	0x1.0000000000001p+0, false,
+	false,
+	0x1.00000000000008p+0, false,
+	0x1.0000000000000802p+0, false,
+	0x1.00000000000008p+0, false,
+	0x1.0000000000000802p+0, false,
+	false,
+	0x1.00000000000008p+0, false,
+	0x1.0000000000000802p+0, false,
+	0x1.00000000000008p+0, false,
+	0x1.0000000000000802p+0, false,
+	false,
+	0x1.00000000000008016eea8f26c48p+0, false,
+	0x1.00000000000008016eea8f26c48p+0, false,
+	0x1.00000000000008016eea8f26c48p+0, false,
+	0x1.00000000000008016eea8f26c5p+0, false,
+	false,
+	0x1.00000000000008016eea8f26c495p+0, false,
+	0x1.00000000000008016eea8f26c496p+0, false,
+	0x1.00000000000008016eea8f26c495p+0, false,
+	0x1.00000000000008016eea8f26c496p+0, false),
   TEST ("1.000000000000000111",
 	false,
-	0x1p+0,
-	0x1p+0,
-	0x1p+0,
-	0x1.000002p+0,
-	false,
-	0x1p+0,
-	0x1p+0,
-	0x1p+0,
-	0x1.0000000000001p+0,
-	false,
-	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),
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1.0000000000001p+0, false,
+	false,
+	0x1.00000000000007fep+0, false,
+	0x1.00000000000008p+0, false,
+	0x1.00000000000007fep+0, false,
+	0x1.00000000000008p+0, false,
+	false,
+	0x1.00000000000007fep+0, false,
+	0x1.00000000000008p+0, false,
+	0x1.00000000000007fep+0, false,
+	0x1.00000000000008p+0, false,
+	false,
+	0x1.00000000000007ff96adfa2b57p+0, false,
+	0x1.00000000000007ff96adfa2b578p+0, false,
+	0x1.00000000000007ff96adfa2b57p+0, false,
+	0x1.00000000000007ff96adfa2b578p+0, false,
+	false,
+	0x1.00000000000007ff96adfa2b576ap+0, false,
+	0x1.00000000000007ff96adfa2b576bp+0, false,
+	0x1.00000000000007ff96adfa2b576ap+0, false,
+	0x1.00000000000007ff96adfa2b576bp+0, false),
   TEST ("1.00000000000000011",
 	false,
-	0x1p+0,
-	0x1p+0,
-	0x1p+0,
-	0x1.000002p+0,
-	false,
-	0x1p+0,
-	0x1p+0,
-	0x1p+0,
-	0x1.0000000000001p+0,
-	false,
-	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),
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1.0000000000001p+0, false,
+	false,
+	0x1.00000000000007ecp+0, false,
+	0x1.00000000000007eep+0, false,
+	0x1.00000000000007ecp+0, false,
+	0x1.00000000000007eep+0, false,
+	false,
+	0x1.00000000000007ecp+0, false,
+	0x1.00000000000007eep+0, false,
+	0x1.00000000000007ecp+0, false,
+	0x1.00000000000007eep+0, false,
+	false,
+	0x1.00000000000007ed24502859138p+0, false,
+	0x1.00000000000007ed24502859138p+0, false,
+	0x1.00000000000007ed24502859138p+0, false,
+	0x1.00000000000007ed2450285914p+0, false,
+	false,
+	0x1.00000000000007ed2450285913bfp+0, false,
+	0x1.00000000000007ed2450285913bfp+0, false,
+	0x1.00000000000007ed2450285913bfp+0, false,
+	0x1.00000000000007ed2450285913cp+0, false),
   TEST ("1.0000000000000001",
 	false,
-	0x1p+0,
-	0x1p+0,
-	0x1p+0,
-	0x1.000002p+0,
-	false,
-	0x1p+0,
-	0x1p+0,
-	0x1p+0,
-	0x1.0000000000001p+0,
-	false,
-	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),
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1.0000000000001p+0, false,
+	false,
+	0x1.0000000000000734p+0, false,
+	0x1.0000000000000734p+0, false,
+	0x1.0000000000000734p+0, false,
+	0x1.0000000000000736p+0, false,
+	false,
+	0x1.0000000000000734p+0, false,
+	0x1.0000000000000734p+0, false,
+	0x1.0000000000000734p+0, false,
+	0x1.0000000000000736p+0, false,
+	false,
+	0x1.0000000000000734aca5f6226fp+0, false,
+	0x1.0000000000000734aca5f6226fp+0, false,
+	0x1.0000000000000734aca5f6226fp+0, false,
+	0x1.0000000000000734aca5f6226f8p+0, false,
+	false,
+	0x1.0000000000000734aca5f6226f0ap+0, false,
+	0x1.0000000000000734aca5f6226f0bp+0, false,
+	0x1.0000000000000734aca5f6226f0ap+0, false,
+	0x1.0000000000000734aca5f6226f0bp+0, false),
   TEST ("3929201589819414e-25",
 	false,
-	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.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),
+	0x1.b0053p-32, false,
+	0x1.b00532p-32, false,
+	0x1.b0053p-32, false,
+	0x1.b00532p-32, false,
+	false,
+	0x1.b005314e2421ep-32, false,
+	0x1.b005314e2421ep-32, false,
+	0x1.b005314e2421ep-32, false,
+	0x1.b005314e2421fp-32, false,
+	false,
+	0x1.b005314e2421e7fep-32, false,
+	0x1.b005314e2421e8p-32, false,
+	0x1.b005314e2421e7fep-32, false,
+	0x1.b005314e2421e8p-32, false,
+	false,
+	0x1.b005314e2421e7fep-32, false,
+	0x1.b005314e2421e8p-32, false,
+	0x1.b005314e2421e7fep-32, false,
+	0x1.b005314e2421e8p-32, false,
+	false,
+	0x1.b005314e2421e7ffb472840c5ap-32, false,
+	0x1.b005314e2421e7ffb472840c5a8p-32, false,
+	0x1.b005314e2421e7ffb472840c5ap-32, false,
+	0x1.b005314e2421e7ffb472840c5a8p-32, false,
+	false,
+	0x1.b005314e2421e7ffb472840c5a6ep-32, false,
+	0x1.b005314e2421e7ffb472840c5a6fp-32, false,
+	0x1.b005314e2421e7ffb472840c5a6ep-32, false,
+	0x1.b005314e2421e7ffb472840c5a6fp-32, false),
   TEST ("0.0000000000000000000000000000000000000000000021019476964872"
 	"256063855943749348741969203929128147736576356024258346866240"
 	"28790902229957282543182373046875",
 	false,
-	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-152,
-	0xcp-152,
-	0xcp-152,
-	0xcp-152),
+	0x8p-152, false,
+	0x1p-148, false,
+	0x8p-152, false,
+	0x1p-148, false,
+	true,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	true,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	true,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	true,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	true,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false),
   TEST ("1.00000005960464477539062499",
 	false,
-	0x1p+0,
-	0x1p+0,
-	0x1p+0,
-	0x1.000002p+0,
-	false,
-	0x1.000000fffffffp+0,
-	0x1.000001p+0,
-	0x1.000000fffffffp+0,
-	0x1.000001p+0,
-	false,
-	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),
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1.000000fffffffp+0, false,
+	0x1.000001p+0, false,
+	0x1.000000fffffffp+0, false,
+	0x1.000001p+0, false,
+	false,
+	0x1.000000fffffffffep+0, false,
+	0x1.000001p+0, false,
+	0x1.000000fffffffffep+0, false,
+	0x1.000001p+0, false,
+	false,
+	0x1.000000fffffffffep+0, false,
+	0x1.000001p+0, false,
+	0x1.000000fffffffffep+0, false,
+	0x1.000001p+0, false,
+	false,
+	0x1.000000fffffffffffffffce7b78p+0, false,
+	0x1.000000fffffffffffffffce7b8p+0, false,
+	0x1.000000fffffffffffffffce7b78p+0, false,
+	0x1.000000fffffffffffffffce7b8p+0, false,
+	false,
+	0x1.000000fffffffffffffffce7b7e7p+0, false,
+	0x1.000000fffffffffffffffce7b7e7p+0, false,
+	0x1.000000fffffffffffffffce7b7e7p+0, false,
+	0x1.000000fffffffffffffffce7b7e8p+0, false),
   TEST ("1.000000059604644775390625",
 	false,
-	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+0,
-	0x1.000001p+0,
-	0x1.000001p+0,
-	0x1.000001p+0),
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	true,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	true,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	true,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	true,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	true,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false),
   TEST ("1.00000005960464477539062501",
 	false,
-	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+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),
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	0x1p+0, false,
+	0x1.000002p+0, false,
+	false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.0000010000001p+0, false,
+	false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.0000010000000002p+0, false,
+	false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.000001p+0, false,
+	0x1.0000010000000002p+0, false,
+	false,
+	0x1.00000100000000000000031848p+0, false,
+	0x1.00000100000000000000031848p+0, false,
+	0x1.00000100000000000000031848p+0, false,
+	0x1.000001000000000000000318488p+0, false,
+	false,
+	0x1.0000010000000000000003184818p+0, false,
+	0x1.0000010000000000000003184819p+0, false,
+	0x1.0000010000000000000003184818p+0, false,
+	0x1.0000010000000000000003184819p+0, false),
   TEST ("1.00000011920928955078125",
 	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+0,
-	0x1.000002p+0,
-	0x1.000002p+0,
-	0x1.000002p+0,
-	true,
-	0x1.000002p+0,
-	0x1.000002p+0,
-	0x1.000002p+0,
-	0x1.000002p+0),
+	0x1.000002p+0, false,
+	0x1.000002p+0, false,
+	0x1.000002p+0, false,
+	0x1.000002p+0, false,
+	true,
+	0x1.000002p+0, false,
+	0x1.000002p+0, false,
+	0x1.000002p+0, false,
+	0x1.000002p+0, false,
+	true,
+	0x1.000002p+0, false,
+	0x1.000002p+0, false,
+	0x1.000002p+0, false,
+	0x1.000002p+0, false,
+	true,
+	0x1.000002p+0, false,
+	0x1.000002p+0, false,
+	0x1.000002p+0, false,
+	0x1.000002p+0, false,
+	true,
+	0x1.000002p+0, false,
+	0x1.000002p+0, false,
+	0x1.000002p+0, false,
+	0x1.000002p+0, false,
+	true,
+	0x1.000002p+0, false,
+	0x1.000002p+0, false,
+	0x1.000002p+0, false,
+	0x1.000002p+0, false),
   TEST ("1.00000017881393432617187499",
 	false,
-	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.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),
+	0x1.000002p+0, false,
+	0x1.000002p+0, false,
+	0x1.000002p+0, false,
+	0x1.000004p+0, false,
+	false,
+	0x1.000002fffffffp+0, false,
+	0x1.000003p+0, false,
+	0x1.000002fffffffp+0, false,
+	0x1.000003p+0, false,
+	false,
+	0x1.000002fffffffffep+0, false,
+	0x1.000003p+0, false,
+	0x1.000002fffffffffep+0, false,
+	0x1.000003p+0, false,
+	false,
+	0x1.000002fffffffffep+0, false,
+	0x1.000003p+0, false,
+	0x1.000002fffffffffep+0, false,
+	0x1.000003p+0, false,
+	false,
+	0x1.000002fffffffffffffffce7b78p+0, false,
+	0x1.000002fffffffffffffffce7b8p+0, false,
+	0x1.000002fffffffffffffffce7b78p+0, false,
+	0x1.000002fffffffffffffffce7b8p+0, false,
+	false,
+	0x1.000002fffffffffffffffce7b7e7p+0, false,
+	0x1.000002fffffffffffffffce7b7e7p+0, false,
+	0x1.000002fffffffffffffffce7b7e7p+0, false,
+	0x1.000002fffffffffffffffce7b7e8p+0, false),
   TEST ("1.000000178813934326171875",
 	false,
-	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+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),
+	0x1.000002p+0, false,
+	0x1.000004p+0, false,
+	0x1.000002p+0, false,
+	0x1.000004p+0, false,
+	true,
+	0x1.000003p+0, false,
+	0x1.000003p+0, false,
+	0x1.000003p+0, false,
+	0x1.000003p+0, false,
+	true,
+	0x1.000003p+0, false,
+	0x1.000003p+0, false,
+	0x1.000003p+0, false,
+	0x1.000003p+0, false,
+	true,
+	0x1.000003p+0, false,
+	0x1.000003p+0, false,
+	0x1.000003p+0, false,
+	0x1.000003p+0, false,
+	true,
+	0x1.000003p+0, false,
+	0x1.000003p+0, false,
+	0x1.000003p+0, false,
+	0x1.000003p+0, false,
+	true,
+	0x1.000003p+0, false,
+	0x1.000003p+0, false,
+	0x1.000003p+0, false,
+	0x1.000003p+0, false),
   TEST ("1.00000017881393432617187501",
 	false,
-	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+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),
+	0x1.000002p+0, false,
+	0x1.000004p+0, false,
+	0x1.000002p+0, false,
+	0x1.000004p+0, false,
+	false,
+	0x1.000003p+0, false,
+	0x1.000003p+0, false,
+	0x1.000003p+0, false,
+	0x1.0000030000001p+0, false,
+	false,
+	0x1.000003p+0, false,
+	0x1.000003p+0, false,
+	0x1.000003p+0, false,
+	0x1.0000030000000002p+0, false,
+	false,
+	0x1.000003p+0, false,
+	0x1.000003p+0, false,
+	0x1.000003p+0, false,
+	0x1.0000030000000002p+0, false,
+	false,
+	0x1.00000300000000000000031848p+0, false,
+	0x1.00000300000000000000031848p+0, false,
+	0x1.00000300000000000000031848p+0, false,
+	0x1.000003000000000000000318488p+0, false,
+	false,
+	0x1.0000030000000000000003184818p+0, false,
+	0x1.0000030000000000000003184819p+0, false,
+	0x1.0000030000000000000003184818p+0, false,
+	0x1.0000030000000000000003184819p+0, false),
   TEST ("1.0000002384185791015625",
 	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+0,
-	0x1.000004p+0,
-	0x1.000004p+0,
-	0x1.000004p+0,
-	true,
-	0x1.000004p+0,
-	0x1.000004p+0,
-	0x1.000004p+0,
-	0x1.000004p+0),
+	0x1.000004p+0, false,
+	0x1.000004p+0, false,
+	0x1.000004p+0, false,
+	0x1.000004p+0, false,
+	true,
+	0x1.000004p+0, false,
+	0x1.000004p+0, false,
+	0x1.000004p+0, false,
+	0x1.000004p+0, false,
+	true,
+	0x1.000004p+0, false,
+	0x1.000004p+0, false,
+	0x1.000004p+0, false,
+	0x1.000004p+0, false,
+	true,
+	0x1.000004p+0, false,
+	0x1.000004p+0, false,
+	0x1.000004p+0, false,
+	0x1.000004p+0, false,
+	true,
+	0x1.000004p+0, false,
+	0x1.000004p+0, false,
+	0x1.000004p+0, false,
+	0x1.000004p+0, false,
+	true,
+	0x1.000004p+0, false,
+	0x1.000004p+0, false,
+	0x1.000004p+0, false,
+	0x1.000004p+0, false),
   TEST ("1.08420217248550443400745280086994171142578125e-19",
 	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-64,
-	0x2p-64,
-	0x2p-64,
-	0x2p-64,
-	true,
-	0x2p-64,
-	0x2p-64,
-	0x2p-64,
-	0x2p-64),
+	0x2p-64, false,
+	0x2p-64, false,
+	0x2p-64, false,
+	0x2p-64, false,
+	true,
+	0x2p-64, false,
+	0x2p-64, false,
+	0x2p-64, false,
+	0x2p-64, false,
+	true,
+	0x2p-64, false,
+	0x2p-64, false,
+	0x2p-64, false,
+	0x2p-64, false,
+	true,
+	0x2p-64, false,
+	0x2p-64, false,
+	0x2p-64, false,
+	0x2p-64, false,
+	true,
+	0x2p-64, false,
+	0x2p-64, false,
+	0x2p-64, false,
+	0x2p-64, false,
+	true,
+	0x2p-64, false,
+	0x2p-64, false,
+	0x2p-64, false,
+	0x2p-64, false),
   TEST ("1.0842022371089897897127399001987457793916291848290711641311"
 	"645507812499e-19",
 	false,
-	0x2p-64,
-	0x2p-64,
-	0x2p-64,
-	0x2.000004p-64,
-	false,
-	0x2.000001ffffffep-64,
-	0x2.000002p-64,
-	0x2.000001ffffffep-64,
-	0x2.000002p-64,
-	false,
-	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),
+	0x2p-64, false,
+	0x2p-64, false,
+	0x2p-64, false,
+	0x2.000004p-64, false,
+	false,
+	0x2.000001ffffffep-64, false,
+	0x2.000002p-64, false,
+	0x2.000001ffffffep-64, false,
+	0x2.000002p-64, false,
+	false,
+	0x2.000001fffffffffcp-64, false,
+	0x2.000002p-64, false,
+	0x2.000001fffffffffcp-64, false,
+	0x2.000002p-64, false,
+	false,
+	0x2.000001fffffffffcp-64, false,
+	0x2.000002p-64, false,
+	0x2.000001fffffffffcp-64, false,
+	0x2.000002p-64, false,
+	false,
+	0x2.000001ffffffffffffffffffffp-64, false,
+	0x2.000002p-64, false,
+	0x2.000001ffffffffffffffffffffp-64, false,
+	0x2.000002p-64, false,
+	false,
+	0x2.000001fffffffffffffffffffffep-64, false,
+	0x2.000002p-64, false,
+	0x2.000001fffffffffffffffffffffep-64, false,
+	0x2.000002p-64, false),
   TEST ("1.0842022371089897897127399001987457793916291848290711641311"
 	"6455078125e-19",
 	false,
-	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-64,
-	0x2.000002p-64,
-	0x2.000002p-64,
-	0x2.000002p-64,
-	true,
-	0x2.000002p-64,
-	0x2.000002p-64,
-	0x2.000002p-64,
-	0x2.000002p-64),
+	0x2p-64, false,
+	0x2p-64, false,
+	0x2p-64, false,
+	0x2.000004p-64, false,
+	true,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	true,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	true,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	true,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	true,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false),
   TEST ("1.0842022371089897897127399001987457793916291848290711641311"
 	"645507812501e-19",
 	false,
-	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-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),
+	0x2p-64, false,
+	0x2.000004p-64, false,
+	0x2p-64, false,
+	0x2.000004p-64, false,
+	false,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	0x2.0000020000002p-64, false,
+	false,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	0x2.0000020000000004p-64, false,
+	false,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	0x2.0000020000000004p-64, false,
+	false,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	0x2.00000200000000000000000001p-64, false,
+	false,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	0x2.000002p-64, false,
+	0x2.0000020000000000000000000002p-64, false),
   TEST ("1.0842023017324751454180269995275498473574771196581423282623"
 	"291015625e-19",
 	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-64,
-	0x2.000004p-64,
-	0x2.000004p-64,
-	0x2.000004p-64,
-	true,
-	0x2.000004p-64,
-	0x2.000004p-64,
-	0x2.000004p-64,
-	0x2.000004p-64),
+	0x2.000004p-64, false,
+	0x2.000004p-64, false,
+	0x2.000004p-64, false,
+	0x2.000004p-64, false,
+	true,
+	0x2.000004p-64, false,
+	0x2.000004p-64, false,
+	0x2.000004p-64, false,
+	0x2.000004p-64, false,
+	true,
+	0x2.000004p-64, false,
+	0x2.000004p-64, false,
+	0x2.000004p-64, false,
+	0x2.000004p-64, false,
+	true,
+	0x2.000004p-64, false,
+	0x2.000004p-64, false,
+	0x2.000004p-64, false,
+	0x2.000004p-64, false,
+	true,
+	0x2.000004p-64, false,
+	0x2.000004p-64, false,
+	0x2.000004p-64, false,
+	0x2.000004p-64, false,
+	true,
+	0x2.000004p-64, false,
+	0x2.000004p-64, false,
+	0x2.000004p-64, false,
+	0x2.000004p-64, false),
   TEST ("1.0842023663559605011233140988563539153233250544872134923934"
 	"936523437499e-19",
 	false,
-	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.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),
+	0x2.000004p-64, false,
+	0x2.000004p-64, false,
+	0x2.000004p-64, false,
+	0x2.000008p-64, false,
+	false,
+	0x2.000005ffffffep-64, false,
+	0x2.000006p-64, false,
+	0x2.000005ffffffep-64, false,
+	0x2.000006p-64, false,
+	false,
+	0x2.000005fffffffffcp-64, false,
+	0x2.000006p-64, false,
+	0x2.000005fffffffffcp-64, false,
+	0x2.000006p-64, false,
+	false,
+	0x2.000005fffffffffcp-64, false,
+	0x2.000006p-64, false,
+	0x2.000005fffffffffcp-64, false,
+	0x2.000006p-64, false,
+	false,
+	0x2.000005ffffffffffffffffffffp-64, false,
+	0x2.000006p-64, false,
+	0x2.000005ffffffffffffffffffffp-64, false,
+	0x2.000006p-64, false,
+	false,
+	0x2.000005fffffffffffffffffffffep-64, false,
+	0x2.000006p-64, false,
+	0x2.000005fffffffffffffffffffffep-64, false,
+	0x2.000006p-64, false),
   TEST ("1.0842023663559605011233140988563539153233250544872134923934"
 	"9365234375e-19",
 	false,
-	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-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),
+	0x2.000004p-64, false,
+	0x2.000008p-64, false,
+	0x2.000004p-64, false,
+	0x2.000008p-64, false,
+	true,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	true,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	true,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	true,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	true,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false),
   TEST ("1.0842023663559605011233140988563539153233250544872134923934"
 	"936523437501e-19",
 	false,
-	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-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),
+	0x2.000004p-64, false,
+	0x2.000008p-64, false,
+	0x2.000004p-64, false,
+	0x2.000008p-64, false,
+	false,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	0x2.0000060000002p-64, false,
+	false,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	0x2.0000060000000004p-64, false,
+	false,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	0x2.0000060000000004p-64, false,
+	false,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	0x2.00000600000000000000000001p-64, false,
+	false,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	0x2.000006p-64, false,
+	0x2.0000060000000000000000000002p-64, false),
   TEST ("1.0842024309794458568286011981851579832891729893162846565246"
 	"58203125e-19",
 	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-64,
-	0x2.000008p-64,
-	0x2.000008p-64,
-	0x2.000008p-64,
-	true,
-	0x2.000008p-64,
-	0x2.000008p-64,
-	0x2.000008p-64,
-	0x2.000008p-64),
+	0x2.000008p-64, false,
+	0x2.000008p-64, false,
+	0x2.000008p-64, false,
+	0x2.000008p-64, false,
+	true,
+	0x2.000008p-64, false,
+	0x2.000008p-64, false,
+	0x2.000008p-64, false,
+	0x2.000008p-64, false,
+	true,
+	0x2.000008p-64, false,
+	0x2.000008p-64, false,
+	0x2.000008p-64, false,
+	0x2.000008p-64, false,
+	true,
+	0x2.000008p-64, false,
+	0x2.000008p-64, false,
+	0x2.000008p-64, false,
+	0x2.000008p-64, false,
+	true,
+	0x2.000008p-64, false,
+	0x2.000008p-64, false,
+	0x2.000008p-64, false,
+	0x2.000008p-64, false,
+	true,
+	0x2.000008p-64, false,
+	0x2.000008p-64, false,
+	0x2.000008p-64, false,
+	0x2.000008p-64, false),
   TEST ("7.5231638452626400509999138382223723380394595633413601376560"
 	"1092018187046051025390625e-37",
 	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-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),
+	0x1p-120, false,
+	0x1p-120, false,
+	0x1p-120, false,
+	0x1p-120, false,
+	true,
+	0x1p-120, false,
+	0x1p-120, false,
+	0x1p-120, false,
+	0x1p-120, false,
+	true,
+	0x1p-120, false,
+	0x1p-120, false,
+	0x1p-120, false,
+	0x1p-120, false,
+	true,
+	0x1p-120, false,
+	0x1p-120, false,
+	0x1p-120, false,
+	0x1p-120, false,
+	true,
+	0x1p-120, false,
+	0x1p-120, false,
+	0x1p-120, false,
+	0x1p-120, false,
+	true,
+	0x1p-120, false,
+	0x1p-120, false,
+	0x1p-120, false,
+	0x1p-120, false),
   TEST ("7.5231642936781486349413765338158389908126215730251815381410"
 	"578824437213052434003657253924757242202758789062499e-37",
 	false,
-	0x1p-120,
-	0x1p-120,
-	0x1p-120,
-	0x1.000002p-120,
-	false,
-	0x1.000000fffffffp-120,
-	0x1.000001p-120,
-	0x1.000000fffffffp-120,
-	0x1.000001p-120,
-	false,
-	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),
+	0x1p-120, false,
+	0x1p-120, false,
+	0x1p-120, false,
+	0x1.000002p-120, false,
+	false,
+	0x1.000000fffffffp-120, false,
+	0x1.000001p-120, false,
+	0x1.000000fffffffp-120, false,
+	0x1.000001p-120, false,
+	false,
+	0x1.000000fffffffffep-120, false,
+	0x1.000001p-120, false,
+	0x1.000000fffffffffep-120, false,
+	0x1.000001p-120, false,
+	false,
+	0x1.000000fffffffffep-120, false,
+	0x1.000001p-120, false,
+	0x1.000000fffffffffep-120, false,
+	0x1.000001p-120, false,
+	false,
+	0x1.000000ffffffffffffffffffff8p-120, false,
+	0x1.000001p-120, false,
+	0x1.000000ffffffffffffffffffff8p-120, false,
+	0x1.000001p-120, false,
+	false,
+	0x1.000000ffffffffffffffffffffffp-120, false,
+	0x1.000001p-120, false,
+	0x1.000000ffffffffffffffffffffffp-120, false,
+	0x1.000001p-120, false),
   TEST ("7.5231642936781486349413765338158389908126215730251815381410"
 	"5788244372130524340036572539247572422027587890625e-37",
 	false,
-	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-120,
-	0x1.000001p-120,
-	0x1.000001p-120,
-	0x1.000001p-120,
-	true,
-	0x1.000001p-120,
-	0x1.000001p-120,
-	0x1.000001p-120,
-	0x1.000001p-120),
+	0x1p-120, false,
+	0x1p-120, false,
+	0x1p-120, false,
+	0x1.000002p-120, false,
+	true,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	true,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	true,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	true,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	true,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false),
   TEST ("7.5231642936781486349413765338158389908126215730251815381410"
 	"578824437213052434003657253924757242202758789062501e-37",
 	false,
-	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-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),
+	0x1p-120, false,
+	0x1.000002p-120, false,
+	0x1p-120, false,
+	0x1.000002p-120, false,
+	false,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	0x1.0000010000001p-120, false,
+	false,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	0x1.0000010000000002p-120, false,
+	false,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	0x1.0000010000000002p-120, false,
+	false,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	0x1.000001000000000000000000008p-120, false,
+	false,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	0x1.000001p-120, false,
+	0x1.0000010000000000000000000001p-120, false),
   TEST ("7.5231647420936572188828392294093056435857835827090029386261"
 	"048447055721499765468252007849514484405517578125e-37",
 	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-120,
-	0x1.000002p-120,
-	0x1.000002p-120,
-	0x1.000002p-120,
-	true,
-	0x1.000002p-120,
-	0x1.000002p-120,
-	0x1.000002p-120,
-	0x1.000002p-120),
+	0x1.000002p-120, false,
+	0x1.000002p-120, false,
+	0x1.000002p-120, false,
+	0x1.000002p-120, false,
+	true,
+	0x1.000002p-120, false,
+	0x1.000002p-120, false,
+	0x1.000002p-120, false,
+	0x1.000002p-120, false,
+	true,
+	0x1.000002p-120, false,
+	0x1.000002p-120, false,
+	0x1.000002p-120, false,
+	0x1.000002p-120, false,
+	true,
+	0x1.000002p-120, false,
+	0x1.000002p-120, false,
+	0x1.000002p-120, false,
+	0x1.000002p-120, false,
+	true,
+	0x1.000002p-120, false,
+	0x1.000002p-120, false,
+	0x1.000002p-120, false,
+	0x1.000002p-120, false,
+	true,
+	0x1.000002p-120, false,
+	0x1.000002p-120, false,
+	0x1.000002p-120, false,
+	0x1.000002p-120, false),
   TEST ("7.5231651905091658028243019250027722963589455923928243391111"
 	"518069674229947096932846761774271726608276367187499e-37",
 	false,
-	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.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),
+	0x1.000002p-120, false,
+	0x1.000002p-120, false,
+	0x1.000002p-120, false,
+	0x1.000004p-120, false,
+	false,
+	0x1.000002fffffffp-120, false,
+	0x1.000003p-120, false,
+	0x1.000002fffffffp-120, false,
+	0x1.000003p-120, false,
+	false,
+	0x1.000002fffffffffep-120, false,
+	0x1.000003p-120, false,
+	0x1.000002fffffffffep-120, false,
+	0x1.000003p-120, false,
+	false,
+	0x1.000002fffffffffep-120, false,
+	0x1.000003p-120, false,
+	0x1.000002fffffffffep-120, false,
+	0x1.000003p-120, false,
+	false,
+	0x1.000002ffffffffffffffffffff8p-120, false,
+	0x1.000003p-120, false,
+	0x1.000002ffffffffffffffffffff8p-120, false,
+	0x1.000003p-120, false,
+	false,
+	0x1.000002ffffffffffffffffffffffp-120, false,
+	0x1.000003p-120, false,
+	0x1.000002ffffffffffffffffffffffp-120, false,
+	0x1.000003p-120, false),
   TEST ("7.5231651905091658028243019250027722963589455923928243391111"
 	"5180696742299470969328467617742717266082763671875e-37",
 	false,
-	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-120,
-	0x1.000003p-120,
-	0x1.000003p-120,
-	0x1.000003p-120,
-	true,
-	0x1.000003p-120,
-	0x1.000003p-120,
-	0x1.000003p-120,
-	0x1.000003p-120),
+	0x1.000002p-120, false,
+	0x1.000004p-120, false,
+	0x1.000002p-120, false,
+	0x1.000004p-120, false,
+	true,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	true,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	true,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	true,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	true,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false),
   TEST ("7.5231651905091658028243019250027722963589455923928243391111"
 	"518069674229947096932846761774271726608276367187501e-37",
 	false,
-	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-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),
+	0x1.000002p-120, false,
+	0x1.000004p-120, false,
+	0x1.000002p-120, false,
+	0x1.000004p-120, false,
+	false,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	0x1.0000030000001p-120, false,
+	false,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	0x1.0000030000000002p-120, false,
+	false,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	0x1.0000030000000002p-120, false,
+	false,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	0x1.000003000000000000000000008p-120, false,
+	false,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	0x1.000003p-120, false,
+	0x1.0000030000000000000000000001p-120, false),
   TEST ("7.5231656389246743867657646205962389491321076020766457395961"
 	"98769229273839442839744151569902896881103515625e-37",
 	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-120,
-	0x1.000004p-120,
-	0x1.000004p-120,
-	0x1.000004p-120,
-	true,
-	0x1.000004p-120,
-	0x1.000004p-120,
-	0x1.000004p-120,
-	0x1.000004p-120),
+	0x1.000004p-120, false,
+	0x1.000004p-120, false,
+	0x1.000004p-120, false,
+	0x1.000004p-120, false,
+	true,
+	0x1.000004p-120, false,
+	0x1.000004p-120, false,
+	0x1.000004p-120, false,
+	0x1.000004p-120, false,
+	true,
+	0x1.000004p-120, false,
+	0x1.000004p-120, false,
+	0x1.000004p-120, false,
+	0x1.000004p-120, false,
+	true,
+	0x1.000004p-120, false,
+	0x1.000004p-120, false,
+	0x1.000004p-120, false,
+	0x1.000004p-120, false,
+	true,
+	0x1.000004p-120, false,
+	0x1.000004p-120, false,
+	0x1.000004p-120, false,
+	0x1.000004p-120, false,
+	true,
+	0x1.000004p-120, false,
+	0x1.000004p-120, false,
+	0x1.000004p-120, false,
+	0x1.000004p-120, false),
   TEST ("340282356779733661637539395458142568447.999",
 	false,
-	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.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),
+	0xf.fffffp+124, false,
+	0xf.fffffp+124, false,
+	0xf.fffffp+124, false,
+	INF, true,
+	false,
+	0xf.fffff7ffffff8p+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff7ffffff8p+124, false,
+	0xf.fffff8p+124, false,
+	false,
+	0xf.fffff7fffffffffp+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff7fffffffffp+124, false,
+	0xf.fffff8p+124, false,
+	false,
+	0xf.fffff7fffffffffp+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff7fffffffffp+124, false,
+	0xf.fffff8p+124, false,
+	false,
+	0xf.fffff7fffffffffffffffffffcp+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff7fffffffffffffffffffcp+124, false,
+	0xf.fffff8p+124, false,
+	false,
+	0xf.fffff7fffffffffffffffffffff8p+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff7fffffffffffffffffffff8p+124, false,
+	0xf.fffff8p+124, false),
   TEST ("340282356779733661637539395458142568448",
 	false,
-	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+124,
-	0xf.fffff8p+124,
-	0xf.fffff8p+124,
-	0xf.fffff8p+124,
-	true,
-	0xf.fffff8p+124,
-	0xf.fffff8p+124,
-	0xf.fffff8p+124,
-	0xf.fffff8p+124),
+	0xf.fffffp+124, false,
+	INF, true,
+	0xf.fffffp+124, false,
+	INF, true,
+	true,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	true,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	true,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	true,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	true,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false),
   TEST ("340282356779733661637539395458142568448.001",
 	false,
-	0xf.fffffp+124,
-	INF,
-	0xf.fffffp+124,
-	INF,
-	false,
-	0xf.fffff8p+124,
-	0xf.fffff8p+124,
-	0xf.fffff8p+124,
-	0xf.fffff80000008p+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.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),
+	0xf.fffffp+124, false,
+	INF, true,
+	0xf.fffffp+124, false,
+	INF, true,
+	false,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff80000008p+124, false,
+	false,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff8000000001p+124, false,
+	false,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff8000000001p+124, false,
+	false,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff800000000000000000004p+124, false,
+	false,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff8p+124, false,
+	0xf.fffff80000000000000000000008p+124, false),
   TEST ("-340282356779733661637539395458142568447.999",
 	false,
-	-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+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),
+	-INF, true,
+	-0xf.fffffp+124, false,
+	-0xf.fffffp+124, false,
+	-0xf.fffffp+124, false,
+	false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff7ffffff8p+124, false,
+	-0xf.fffff7ffffff8p+124, false,
+	false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff7fffffffffp+124, false,
+	-0xf.fffff7fffffffffp+124, false,
+	false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff7fffffffffp+124, false,
+	-0xf.fffff7fffffffffp+124, false,
+	false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff7fffffffffffffffffffcp+124, false,
+	-0xf.fffff7fffffffffffffffffffcp+124, false,
+	false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff7fffffffffffffffffffff8p+124, false,
+	-0xf.fffff7fffffffffffffffffffff8p+124, false),
   TEST ("-340282356779733661637539395458142568448",
 	false,
-	-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+124,
-	-0xf.fffff8p+124,
-	-0xf.fffff8p+124,
-	-0xf.fffff8p+124),
+	-INF, true,
+	-INF, true,
+	-0xf.fffffp+124, false,
+	-0xf.fffffp+124, false,
+	true,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	true,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	true,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	true,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	true,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false),
   TEST ("-340282356779733661637539395458142568448.001",
 	false,
-	-INF,
-	-INF,
-	-0xf.fffffp+124,
-	-0xf.fffffp+124,
-	false,
-	-0xf.fffff80000008p+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.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),
+	-INF, true,
+	-INF, true,
+	-0xf.fffffp+124, false,
+	-0xf.fffffp+124, false,
+	false,
+	-0xf.fffff80000008p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	false,
+	-0xf.fffff8000000001p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	false,
+	-0xf.fffff8000000001p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	false,
+	-0xf.fffff800000000000000000004p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	false,
+	-0xf.fffff80000000000000000000008p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false,
+	-0xf.fffff8p+124, false),
   TEST ("179769313486231580793728971405303415079934132710037826936173"
 	"778980444968292764750946649017977587207096330286416692887910"
 	"946555547851940402630657488671505820681908902000708383676273"
@@ -1855,35 +1855,35 @@ static const struct test tests[] = {
 	"936475292719074168444365510704342711559699508093042880177904"
 	"174497791.999",
 	false,
-	0xf.fffffp+124,
-	INF,
-	0xf.fffffp+124,
-	INF,
-	false,
-	0xf.ffffffffffff8p+1020,
-	0xf.ffffffffffff8p+1020,
-	0xf.ffffffffffff8p+1020,
-	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),
+	0xf.fffffp+124, true,
+	INF, true,
+	0xf.fffffp+124, true,
+	INF, true,
+	false,
+	0xf.ffffffffffff8p+1020, false,
+	0xf.ffffffffffff8p+1020, false,
+	0xf.ffffffffffff8p+1020, false,
+	INF, true,
+	false,
+	0xf.ffffffffffffbffp+1020, false,
+	0xf.ffffffffffffcp+1020, false,
+	0xf.ffffffffffffbffp+1020, false,
+	0xf.ffffffffffffcp+1020, false,
+	false,
+	0xf.ffffffffffffbffp+1020, false,
+	0xf.ffffffffffffcp+1020, false,
+	0xf.ffffffffffffbffp+1020, false,
+	0xf.ffffffffffffcp+1020, false,
+	false,
+	0xf.ffffffffffffbffffffffffffcp+1020, false,
+	0xf.ffffffffffffcp+1020, true,
+	0xf.ffffffffffffbffffffffffffcp+1020, false,
+	0xf.ffffffffffffcp+1020, true,
+	false,
+	0xf.ffffffffffffbffffffffffffff8p+1020, false,
+	0xf.ffffffffffffcp+1020, false,
+	0xf.ffffffffffffbffffffffffffff8p+1020, false,
+	0xf.ffffffffffffcp+1020, false),
   TEST ("179769313486231580793728971405303415079934132710037826936173"
 	"778980444968292764750946649017977587207096330286416692887910"
 	"946555547851940402630657488671505820681908902000708383676273"
@@ -1891,35 +1891,35 @@ static const struct test tests[] = {
 	"936475292719074168444365510704342711559699508093042880177904"
 	"174497792",
 	false,
-	0xf.fffffp+124,
-	INF,
-	0xf.fffffp+124,
-	INF,
-	false,
-	0xf.ffffffffffff8p+1020,
-	INF,
-	0xf.ffffffffffff8p+1020,
-	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),
+	0xf.fffffp+124, true,
+	INF, true,
+	0xf.fffffp+124, true,
+	INF, true,
+	false,
+	0xf.ffffffffffff8p+1020, false,
+	INF, true,
+	0xf.ffffffffffff8p+1020, false,
+	INF, true,
+	true,
+	0xf.ffffffffffffcp+1020, false,
+	0xf.ffffffffffffcp+1020, false,
+	0xf.ffffffffffffcp+1020, false,
+	0xf.ffffffffffffcp+1020, false,
+	true,
+	0xf.ffffffffffffcp+1020, false,
+	0xf.ffffffffffffcp+1020, false,
+	0xf.ffffffffffffcp+1020, false,
+	0xf.ffffffffffffcp+1020, false,
+	false,
+	0xf.ffffffffffffcp+1020, true,
+	0xf.ffffffffffffcp+1020, true,
+	0xf.ffffffffffffcp+1020, true,
+	0xf.ffffffffffffcp+1020, true,
+	true,
+	0xf.ffffffffffffcp+1020, false,
+	0xf.ffffffffffffcp+1020, false,
+	0xf.ffffffffffffcp+1020, false,
+	0xf.ffffffffffffcp+1020, false),
   TEST ("179769313486231580793728971405303415079934132710037826936173"
 	"778980444968292764750946649017977587207096330286416692887910"
 	"946555547851940402630657488671505820681908902000708383676273"
@@ -1927,35 +1927,35 @@ static const struct test tests[] = {
 	"936475292719074168444365510704342711559699508093042880177904"
 	"174497792.001",
 	false,
-	0xf.fffffp+124,
-	INF,
-	0xf.fffffp+124,
-	INF,
-	false,
-	0xf.ffffffffffff8p+1020,
-	INF,
-	0xf.ffffffffffff8p+1020,
-	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),
+	0xf.fffffp+124, true,
+	INF, true,
+	0xf.fffffp+124, true,
+	INF, true,
+	false,
+	0xf.ffffffffffff8p+1020, false,
+	INF, true,
+	0xf.ffffffffffff8p+1020, false,
+	INF, true,
+	false,
+	0xf.ffffffffffffcp+1020, false,
+	0xf.ffffffffffffcp+1020, false,
+	0xf.ffffffffffffcp+1020, false,
+	0xf.ffffffffffffc01p+1020, false,
+	false,
+	0xf.ffffffffffffcp+1020, false,
+	0xf.ffffffffffffcp+1020, false,
+	0xf.ffffffffffffcp+1020, false,
+	0xf.ffffffffffffc01p+1020, false,
+	false,
+	0xf.ffffffffffffcp+1020, true,
+	0xf.ffffffffffffcp+1020, true,
+	0xf.ffffffffffffcp+1020, true,
+	0xf.ffffffffffffc0000000000004p+1020, true,
+	false,
+	0xf.ffffffffffffcp+1020, false,
+	0xf.ffffffffffffcp+1020, false,
+	0xf.ffffffffffffcp+1020, false,
+	0xf.ffffffffffffc000000000000008p+1020, false),
   TEST ("-17976931348623158079372897140530341507993413271003782693617"
 	"377898044496829276475094664901797758720709633028641669288791"
 	"094655554785194040263065748867150582068190890200070838367627"
@@ -1963,35 +1963,35 @@ static const struct test tests[] = {
 	"493647529271907416844436551070434271155969950809304288017790"
 	"4174497791.999",
 	false,
-	-INF,
-	-INF,
-	-0xf.fffffp+124,
-	-0xf.fffffp+124,
-	false,
-	-INF,
-	-0xf.ffffffffffff8p+1020,
-	-0xf.ffffffffffff8p+1020,
-	-0xf.ffffffffffff8p+1020,
-	false,
-	-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),
+	-INF, true,
+	-INF, true,
+	-0xf.fffffp+124, true,
+	-0xf.fffffp+124, true,
+	false,
+	-INF, true,
+	-0xf.ffffffffffff8p+1020, false,
+	-0xf.ffffffffffff8p+1020, false,
+	-0xf.ffffffffffff8p+1020, false,
+	false,
+	-0xf.ffffffffffffcp+1020, false,
+	-0xf.ffffffffffffcp+1020, false,
+	-0xf.ffffffffffffbffp+1020, false,
+	-0xf.ffffffffffffbffp+1020, false,
+	false,
+	-0xf.ffffffffffffcp+1020, false,
+	-0xf.ffffffffffffcp+1020, false,
+	-0xf.ffffffffffffbffp+1020, false,
+	-0xf.ffffffffffffbffp+1020, false,
+	false,
+	-0xf.ffffffffffffcp+1020, true,
+	-0xf.ffffffffffffcp+1020, true,
+	-0xf.ffffffffffffbffffffffffffcp+1020, false,
+	-0xf.ffffffffffffbffffffffffffcp+1020, false,
+	false,
+	-0xf.ffffffffffffcp+1020, false,
+	-0xf.ffffffffffffcp+1020, false,
+	-0xf.ffffffffffffbffffffffffffff8p+1020, false,
+	-0xf.ffffffffffffbffffffffffffff8p+1020, false),
   TEST ("-17976931348623158079372897140530341507993413271003782693617"
 	"377898044496829276475094664901797758720709633028641669288791"
 	"094655554785194040263065748867150582068190890200070838367627"
@@ -1999,35 +1999,35 @@ static const struct test tests[] = {
 	"493647529271907416844436551070434271155969950809304288017790"
 	"4174497792",
 	false,
-	-INF,
-	-INF,
-	-0xf.fffffp+124,
-	-0xf.fffffp+124,
-	false,
-	-INF,
-	-INF,
-	-0xf.ffffffffffff8p+1020,
-	-0xf.ffffffffffff8p+1020,
-	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),
+	-INF, true,
+	-INF, true,
+	-0xf.fffffp+124, true,
+	-0xf.fffffp+124, true,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.ffffffffffff8p+1020, false,
+	-0xf.ffffffffffff8p+1020, false,
+	true,
+	-0xf.ffffffffffffcp+1020, false,
+	-0xf.ffffffffffffcp+1020, false,
+	-0xf.ffffffffffffcp+1020, false,
+	-0xf.ffffffffffffcp+1020, false,
+	true,
+	-0xf.ffffffffffffcp+1020, false,
+	-0xf.ffffffffffffcp+1020, false,
+	-0xf.ffffffffffffcp+1020, false,
+	-0xf.ffffffffffffcp+1020, false,
+	false,
+	-0xf.ffffffffffffcp+1020, true,
+	-0xf.ffffffffffffcp+1020, true,
+	-0xf.ffffffffffffcp+1020, true,
+	-0xf.ffffffffffffcp+1020, true,
+	true,
+	-0xf.ffffffffffffcp+1020, false,
+	-0xf.ffffffffffffcp+1020, false,
+	-0xf.ffffffffffffcp+1020, false,
+	-0xf.ffffffffffffcp+1020, false),
   TEST ("-17976931348623158079372897140530341507993413271003782693617"
 	"377898044496829276475094664901797758720709633028641669288791"
 	"094655554785194040263065748867150582068190890200070838367627"
@@ -2035,35 +2035,35 @@ static const struct test tests[] = {
 	"493647529271907416844436551070434271155969950809304288017790"
 	"4174497792.001",
 	false,
-	-INF,
-	-INF,
-	-0xf.fffffp+124,
-	-0xf.fffffp+124,
-	false,
-	-INF,
-	-INF,
-	-0xf.ffffffffffff8p+1020,
-	-0xf.ffffffffffff8p+1020,
-	false,
-	-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),
+	-INF, true,
+	-INF, true,
+	-0xf.fffffp+124, true,
+	-0xf.fffffp+124, true,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.ffffffffffff8p+1020, false,
+	-0xf.ffffffffffff8p+1020, false,
+	false,
+	-0xf.ffffffffffffc01p+1020, false,
+	-0xf.ffffffffffffcp+1020, false,
+	-0xf.ffffffffffffcp+1020, false,
+	-0xf.ffffffffffffcp+1020, false,
+	false,
+	-0xf.ffffffffffffc01p+1020, false,
+	-0xf.ffffffffffffcp+1020, false,
+	-0xf.ffffffffffffcp+1020, false,
+	-0xf.ffffffffffffcp+1020, false,
+	false,
+	-0xf.ffffffffffffc0000000000004p+1020, true,
+	-0xf.ffffffffffffcp+1020, true,
+	-0xf.ffffffffffffcp+1020, true,
+	-0xf.ffffffffffffcp+1020, true,
+	false,
+	-0xf.ffffffffffffc000000000000008p+1020, false,
+	-0xf.ffffffffffffcp+1020, false,
+	-0xf.ffffffffffffcp+1020, false,
+	-0xf.ffffffffffffcp+1020, false),
   TEST ("118973149535723176505351158982948866796625400469556721895649"
 	"927756249918185172720476044944290457046138433056764616744328"
 	"666255526748948793023632513609765434237723241753648908036202"
@@ -2148,35 +2148,35 @@ static const struct test tests[] = {
 	"578031503869424406179027994752890226443351619365453243328968"
 	"8740976918527.999",
 	false,
-	0xf.fffffp+124,
-	INF,
-	0xf.fffffp+124,
-	INF,
-	false,
-	0xf.ffffffffffff8p+1020,
-	INF,
-	0xf.ffffffffffff8p+1020,
-	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),
+	0xf.fffffp+124, true,
+	INF, true,
+	0xf.fffffp+124, true,
+	INF, true,
+	false,
+	0xf.ffffffffffff8p+1020, true,
+	INF, true,
+	0xf.ffffffffffff8p+1020, true,
+	INF, true,
+	false,
+	0xf.fffffffffffffffp+16380, false,
+	0xf.fffffffffffffffp+16380, false,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	false,
+	0xf.fffffffffffffffp+16380, false,
+	0xf.fffffffffffffffp+16380, false,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	false,
+	0xf.fffffffffffffffffffffffffcp+1020, true,
+	INF, true,
+	0xf.fffffffffffffffffffffffffcp+1020, true,
+	INF, true,
+	false,
+	0xf.fffffffffffffff7fffffffffff8p+16380, false,
+	0xf.fffffffffffffff8p+16380, false,
+	0xf.fffffffffffffff7fffffffffff8p+16380, false,
+	0xf.fffffffffffffff8p+16380, false),
   TEST ("118973149535723176505351158982948866796625400469556721895649"
 	"927756249918185172720476044944290457046138433056764616744328"
 	"666255526748948793023632513609765434237723241753648908036202"
@@ -2261,35 +2261,35 @@ static const struct test tests[] = {
 	"578031503869424406179027994752890226443351619365453243328968"
 	"8740976918528",
 	false,
-	0xf.fffffp+124,
-	INF,
-	0xf.fffffp+124,
-	INF,
-	false,
-	0xf.ffffffffffff8p+1020,
-	INF,
-	0xf.ffffffffffff8p+1020,
-	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),
+	0xf.fffffp+124, true,
+	INF, true,
+	0xf.fffffp+124, true,
+	INF, true,
+	false,
+	0xf.ffffffffffff8p+1020, true,
+	INF, true,
+	0xf.ffffffffffff8p+1020, true,
+	INF, true,
+	false,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	false,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	false,
+	0xf.fffffffffffffffffffffffffcp+1020, true,
+	INF, true,
+	0xf.fffffffffffffffffffffffffcp+1020, true,
+	INF, true,
+	true,
+	0xf.fffffffffffffff8p+16380, false,
+	0xf.fffffffffffffff8p+16380, false,
+	0xf.fffffffffffffff8p+16380, false,
+	0xf.fffffffffffffff8p+16380, false),
   TEST ("118973149535723176505351158982948866796625400469556721895649"
 	"927756249918185172720476044944290457046138433056764616744328"
 	"666255526748948793023632513609765434237723241753648908036202"
@@ -2374,35 +2374,35 @@ static const struct test tests[] = {
 	"578031503869424406179027994752890226443351619365453243328968"
 	"8740976918528.001",
 	false,
-	0xf.fffffp+124,
-	INF,
-	0xf.fffffp+124,
-	INF,
-	false,
-	0xf.ffffffffffff8p+1020,
-	INF,
-	0xf.ffffffffffff8p+1020,
-	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),
+	0xf.fffffp+124, true,
+	INF, true,
+	0xf.fffffp+124, true,
+	INF, true,
+	false,
+	0xf.ffffffffffff8p+1020, true,
+	INF, true,
+	0xf.ffffffffffff8p+1020, true,
+	INF, true,
+	false,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	false,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	false,
+	0xf.fffffffffffffffffffffffffcp+1020, true,
+	INF, true,
+	0xf.fffffffffffffffffffffffffcp+1020, true,
+	INF, true,
+	false,
+	0xf.fffffffffffffff8p+16380, false,
+	0xf.fffffffffffffff8p+16380, false,
+	0xf.fffffffffffffff8p+16380, false,
+	0xf.fffffffffffffff8000000000008p+16380, false),
   TEST ("-11897314953572317650535115898294886679662540046955672189564"
 	"992775624991818517272047604494429045704613843305676461674432"
 	"866625552674894879302363251360976543423772324175364890803620"
@@ -2487,35 +2487,35 @@ static const struct test tests[] = {
 	"557803150386942440617902799475289022644335161936545324332896"
 	"88740976918527.999",
 	false,
-	-INF,
-	-INF,
-	-0xf.fffffp+124,
-	-0xf.fffffp+124,
-	false,
-	-INF,
-	-INF,
-	-0xf.ffffffffffff8p+1020,
-	-0xf.ffffffffffff8p+1020,
-	false,
-	-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),
+	-INF, true,
+	-INF, true,
+	-0xf.fffffp+124, true,
+	-0xf.fffffp+124, true,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.ffffffffffff8p+1020, true,
+	-0xf.ffffffffffff8p+1020, true,
+	false,
+	-INF, true,
+	-0xf.fffffffffffffffp+16380, false,
+	-0xf.fffffffffffffffp+16380, false,
+	-0xf.fffffffffffffffp+16380, false,
+	false,
+	-INF, true,
+	-0xf.fffffffffffffffp+16380, false,
+	-0xf.fffffffffffffffp+16380, false,
+	-0xf.fffffffffffffffp+16380, false,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffffffffffffcp+1020, true,
+	-0xf.fffffffffffffffffffffffffcp+1020, true,
+	false,
+	-0xf.fffffffffffffff8p+16380, false,
+	-0xf.fffffffffffffff8p+16380, false,
+	-0xf.fffffffffffffff7fffffffffff8p+16380, false,
+	-0xf.fffffffffffffff7fffffffffff8p+16380, false),
   TEST ("-11897314953572317650535115898294886679662540046955672189564"
 	"992775624991818517272047604494429045704613843305676461674432"
 	"866625552674894879302363251360976543423772324175364890803620"
@@ -2600,35 +2600,35 @@ static const struct test tests[] = {
 	"557803150386942440617902799475289022644335161936545324332896"
 	"88740976918528",
 	false,
-	-INF,
-	-INF,
-	-0xf.fffffp+124,
-	-0xf.fffffp+124,
-	false,
-	-INF,
-	-INF,
-	-0xf.ffffffffffff8p+1020,
-	-0xf.ffffffffffff8p+1020,
-	false,
-	-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),
+	-INF, true,
+	-INF, true,
+	-0xf.fffffp+124, true,
+	-0xf.fffffp+124, true,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.ffffffffffff8p+1020, true,
+	-0xf.ffffffffffff8p+1020, true,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffp+16380, false,
+	-0xf.fffffffffffffffp+16380, false,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffp+16380, false,
+	-0xf.fffffffffffffffp+16380, false,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffffffffffffcp+1020, true,
+	-0xf.fffffffffffffffffffffffffcp+1020, true,
+	true,
+	-0xf.fffffffffffffff8p+16380, false,
+	-0xf.fffffffffffffff8p+16380, false,
+	-0xf.fffffffffffffff8p+16380, false,
+	-0xf.fffffffffffffff8p+16380, false),
   TEST ("-11897314953572317650535115898294886679662540046955672189564"
 	"992775624991818517272047604494429045704613843305676461674432"
 	"866625552674894879302363251360976543423772324175364890803620"
@@ -2713,35 +2713,35 @@ static const struct test tests[] = {
 	"557803150386942440617902799475289022644335161936545324332896"
 	"88740976918528.001",
 	false,
-	-INF,
-	-INF,
-	-0xf.fffffp+124,
-	-0xf.fffffp+124,
-	false,
-	-INF,
-	-INF,
-	-0xf.ffffffffffff8p+1020,
-	-0xf.ffffffffffff8p+1020,
-	false,
-	-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),
+	-INF, true,
+	-INF, true,
+	-0xf.fffffp+124, true,
+	-0xf.fffffp+124, true,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.ffffffffffff8p+1020, true,
+	-0xf.ffffffffffff8p+1020, true,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffp+16380, false,
+	-0xf.fffffffffffffffp+16380, false,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffp+16380, false,
+	-0xf.fffffffffffffffp+16380, false,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffffffffffffcp+1020, true,
+	-0xf.fffffffffffffffffffffffffcp+1020, true,
+	false,
+	-0xf.fffffffffffffff8000000000008p+16380, false,
+	-0xf.fffffffffffffff8p+16380, false,
+	-0xf.fffffffffffffff8p+16380, false,
+	-0xf.fffffffffffffff8p+16380, false),
   TEST ("118973149535723176508575932662800707347995686986910214150118"
 	"685272271246896789803961473130416053705672050873552479421805"
 	"932646640744124594447361172514341324846716679654551308018400"
@@ -2826,35 +2826,35 @@ static const struct test tests[] = {
 	"972233447491583165728635513802591543441145939539353470970452"
 	"5536550715391.999",
 	false,
-	0xf.fffffp+124,
-	INF,
-	0xf.fffffp+124,
-	INF,
-	false,
-	0xf.ffffffffffff8p+1020,
-	INF,
-	0xf.ffffffffffff8p+1020,
-	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),
+	0xf.fffffp+124, true,
+	INF, true,
+	0xf.fffffp+124, true,
+	INF, true,
+	false,
+	0xf.ffffffffffff8p+1020, true,
+	INF, true,
+	0xf.ffffffffffff8p+1020, true,
+	INF, true,
+	false,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	false,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	false,
+	0xf.fffffffffffffffffffffffffcp+1020, true,
+	INF, true,
+	0xf.fffffffffffffffffffffffffcp+1020, true,
+	INF, true,
+	false,
+	0xf.fffffffffffffffffffffffffff8p+16380, false,
+	0xf.fffffffffffffffffffffffffff8p+16380, false,
+	0xf.fffffffffffffffffffffffffff8p+16380, false,
+	INF, true),
   TEST ("118973149535723176508575932662800707347995686986910214150118"
 	"685272271246896789803961473130416053705672050873552479421805"
 	"932646640744124594447361172514341324846716679654551308018400"
@@ -2939,35 +2939,35 @@ static const struct test tests[] = {
 	"972233447491583165728635513802591543441145939539353470970452"
 	"5536550715392",
 	false,
-	0xf.fffffp+124,
-	INF,
-	0xf.fffffp+124,
-	INF,
-	false,
-	0xf.ffffffffffff8p+1020,
-	INF,
-	0xf.ffffffffffff8p+1020,
-	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),
+	0xf.fffffp+124, true,
+	INF, true,
+	0xf.fffffp+124, true,
+	INF, true,
+	false,
+	0xf.ffffffffffff8p+1020, true,
+	INF, true,
+	0xf.ffffffffffff8p+1020, true,
+	INF, true,
+	false,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	false,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	false,
+	0xf.fffffffffffffffffffffffffcp+1020, true,
+	INF, true,
+	0xf.fffffffffffffffffffffffffcp+1020, true,
+	INF, true,
+	false,
+	0xf.fffffffffffffffffffffffffff8p+16380, false,
+	INF, true,
+	0xf.fffffffffffffffffffffffffff8p+16380, false,
+	INF, true),
   TEST ("118973149535723176508575932662800707347995686986910214150118"
 	"685272271246896789803961473130416053705672050873552479421805"
 	"932646640744124594447361172514341324846716679654551308018400"
@@ -3052,35 +3052,35 @@ static const struct test tests[] = {
 	"972233447491583165728635513802591543441145939539353470970452"
 	"5536550715392.001",
 	false,
-	0xf.fffffp+124,
-	INF,
-	0xf.fffffp+124,
-	INF,
-	false,
-	0xf.ffffffffffff8p+1020,
-	INF,
-	0xf.ffffffffffff8p+1020,
-	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),
+	0xf.fffffp+124, true,
+	INF, true,
+	0xf.fffffp+124, true,
+	INF, true,
+	false,
+	0xf.ffffffffffff8p+1020, true,
+	INF, true,
+	0xf.ffffffffffff8p+1020, true,
+	INF, true,
+	false,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	false,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	false,
+	0xf.fffffffffffffffffffffffffcp+1020, true,
+	INF, true,
+	0xf.fffffffffffffffffffffffffcp+1020, true,
+	INF, true,
+	false,
+	0xf.fffffffffffffffffffffffffff8p+16380, false,
+	INF, true,
+	0xf.fffffffffffffffffffffffffff8p+16380, false,
+	INF, true),
   TEST ("-11897314953572317650857593266280070734799568698691021415011"
 	"868527227124689678980396147313041605370567205087355247942180"
 	"593264664074412459444736117251434132484671667965455130801840"
@@ -3165,35 +3165,35 @@ static const struct test tests[] = {
 	"097223344749158316572863551380259154344114593953935347097045"
 	"25536550715391.999",
 	false,
-	-INF,
-	-INF,
-	-0xf.fffffp+124,
-	-0xf.fffffp+124,
-	false,
-	-INF,
-	-INF,
-	-0xf.ffffffffffff8p+1020,
-	-0xf.ffffffffffff8p+1020,
-	false,
-	-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),
+	-INF, true,
+	-INF, true,
+	-0xf.fffffp+124, true,
+	-0xf.fffffp+124, true,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.ffffffffffff8p+1020, true,
+	-0xf.ffffffffffff8p+1020, true,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffp+16380, false,
+	-0xf.fffffffffffffffp+16380, false,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffp+16380, false,
+	-0xf.fffffffffffffffp+16380, false,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffffffffffffcp+1020, true,
+	-0xf.fffffffffffffffffffffffffcp+1020, true,
+	false,
+	-INF, true,
+	-0xf.fffffffffffffffffffffffffff8p+16380, false,
+	-0xf.fffffffffffffffffffffffffff8p+16380, false,
+	-0xf.fffffffffffffffffffffffffff8p+16380, false),
   TEST ("-11897314953572317650857593266280070734799568698691021415011"
 	"868527227124689678980396147313041605370567205087355247942180"
 	"593264664074412459444736117251434132484671667965455130801840"
@@ -3278,35 +3278,35 @@ static const struct test tests[] = {
 	"097223344749158316572863551380259154344114593953935347097045"
 	"25536550715392",
 	false,
-	-INF,
-	-INF,
-	-0xf.fffffp+124,
-	-0xf.fffffp+124,
-	false,
-	-INF,
-	-INF,
-	-0xf.ffffffffffff8p+1020,
-	-0xf.ffffffffffff8p+1020,
-	false,
-	-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),
+	-INF, true,
+	-INF, true,
+	-0xf.fffffp+124, true,
+	-0xf.fffffp+124, true,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.ffffffffffff8p+1020, true,
+	-0xf.ffffffffffff8p+1020, true,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffp+16380, false,
+	-0xf.fffffffffffffffp+16380, false,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffp+16380, false,
+	-0xf.fffffffffffffffp+16380, false,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffffffffffffcp+1020, true,
+	-0xf.fffffffffffffffffffffffffcp+1020, true,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffffffffffffff8p+16380, false,
+	-0xf.fffffffffffffffffffffffffff8p+16380, false),
   TEST ("-11897314953572317650857593266280070734799568698691021415011"
 	"868527227124689678980396147313041605370567205087355247942180"
 	"593264664074412459444736117251434132484671667965455130801840"
@@ -3391,419 +3391,419 @@ static const struct test tests[] = {
 	"097223344749158316572863551380259154344114593953935347097045"
 	"25536550715392.001",
 	false,
-	-INF,
-	-INF,
-	-0xf.fffffp+124,
-	-0xf.fffffp+124,
-	false,
-	-INF,
-	-INF,
-	-0xf.ffffffffffff8p+1020,
-	-0xf.ffffffffffff8p+1020,
-	false,
-	-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),
+	-INF, true,
+	-INF, true,
+	-0xf.fffffp+124, true,
+	-0xf.fffffp+124, true,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.ffffffffffff8p+1020, true,
+	-0xf.ffffffffffff8p+1020, true,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffp+16380, false,
+	-0xf.fffffffffffffffp+16380, false,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffp+16380, false,
+	-0xf.fffffffffffffffp+16380, false,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffffffffffffcp+1020, true,
+	-0xf.fffffffffffffffffffffffffcp+1020, true,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffffffffffffff8p+16380, false,
+	-0xf.fffffffffffffffffffffffffff8p+16380, false),
   TEST ("2.1019476964872256063855943749348741969203929128147736576356"
 	"0242583468662402879090222995728254318237304687499e-45",
 	false,
-	0x8p-152,
-	0x8p-152,
-	0x8p-152,
-	0x1p-148,
-	false,
-	0xb.ffffffffffff8p-152,
-	0xcp-152,
-	0xb.ffffffffffff8p-152,
-	0xcp-152,
-	false,
-	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),
+	0x8p-152, false,
+	0x8p-152, false,
+	0x8p-152, false,
+	0x1p-148, false,
+	false,
+	0xb.ffffffffffff8p-152, false,
+	0xcp-152, false,
+	0xb.ffffffffffff8p-152, false,
+	0xcp-152, false,
+	false,
+	0xb.fffffffffffffffp-152, false,
+	0xcp-152, false,
+	0xb.fffffffffffffffp-152, false,
+	0xcp-152, false,
+	false,
+	0xb.fffffffffffffffp-152, false,
+	0xcp-152, false,
+	0xb.fffffffffffffffp-152, false,
+	0xcp-152, false,
+	false,
+	0xb.fffffffffffffffffffffffffcp-152, false,
+	0xcp-152, false,
+	0xb.fffffffffffffffffffffffffcp-152, false,
+	0xcp-152, false,
+	false,
+	0xb.fffffffffffffffffffffffffff8p-152, false,
+	0xcp-152, false,
+	0xb.fffffffffffffffffffffffffff8p-152, false,
+	0xcp-152, false),
   TEST ("2.1019476964872256063855943749348741969203929128147736576356"
 	"02425834686624028790902229957282543182373046875e-45",
 	false,
-	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-152,
-	0xcp-152,
-	0xcp-152,
-	0xcp-152),
+	0x8p-152, false,
+	0x1p-148, false,
+	0x8p-152, false,
+	0x1p-148, false,
+	true,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	true,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	true,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	true,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	true,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false),
   TEST ("2.1019476964872256063855943749348741969203929128147736576356"
 	"0242583468662402879090222995728254318237304687501e-45",
 	false,
-	0x8p-152,
-	0x1p-148,
-	0x8p-152,
-	0x1p-148,
-	false,
-	0xcp-152,
-	0xcp-152,
-	0xcp-152,
-	0xc.0000000000008p-152,
-	false,
-	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),
+	0x8p-152, false,
+	0x1p-148, false,
+	0x8p-152, false,
+	0x1p-148, false,
+	false,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xc.0000000000008p-152, false,
+	false,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xc.000000000000001p-152, false,
+	false,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xc.000000000000001p-152, false,
+	false,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xc.00000000000000000000000004p-152, false,
+	false,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xcp-152, false,
+	0xc.0000000000000000000000000008p-152, false),
   TEST ("-2.101947696487225606385594374934874196920392912814773657635"
 	"60242583468662402879090222995728254318237304687499e-45",
 	false,
-	-0x1p-148,
-	-0x8p-152,
-	-0x8p-152,
-	-0x8p-152,
-	false,
-	-0xcp-152,
-	-0xcp-152,
-	-0xb.ffffffffffff8p-152,
-	-0xb.ffffffffffff8p-152,
-	false,
-	-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),
+	-0x1p-148, false,
+	-0x8p-152, false,
+	-0x8p-152, false,
+	-0x8p-152, false,
+	false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	-0xb.ffffffffffff8p-152, false,
+	-0xb.ffffffffffff8p-152, false,
+	false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	-0xb.fffffffffffffffp-152, false,
+	-0xb.fffffffffffffffp-152, false,
+	false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	-0xb.fffffffffffffffp-152, false,
+	-0xb.fffffffffffffffp-152, false,
+	false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	-0xb.fffffffffffffffffffffffffcp-152, false,
+	-0xb.fffffffffffffffffffffffffcp-152, false,
+	false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	-0xb.fffffffffffffffffffffffffff8p-152, false,
+	-0xb.fffffffffffffffffffffffffff8p-152, false),
   TEST ("-2.101947696487225606385594374934874196920392912814773657635"
 	"602425834686624028790902229957282543182373046875e-45",
 	false,
-	-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-152,
-	-0xcp-152,
-	-0xcp-152,
-	-0xcp-152,
-	true,
-	-0xcp-152,
-	-0xcp-152,
-	-0xcp-152,
-	-0xcp-152),
+	-0x1p-148, false,
+	-0x1p-148, false,
+	-0x8p-152, false,
+	-0x8p-152, false,
+	true,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	true,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	true,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	true,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	true,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	-0xcp-152, false),
   TEST ("-2.101947696487225606385594374934874196920392912814773657635"
 	"60242583468662402879090222995728254318237304687501e-45",
 	false,
-	-0x1p-148,
-	-0x1p-148,
-	-0x8p-152,
-	-0x8p-152,
-	false,
-	-0xc.0000000000008p-152,
-	-0xcp-152,
-	-0xcp-152,
-	-0xcp-152,
-	false,
-	-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),
+	-0x1p-148, false,
+	-0x1p-148, false,
+	-0x8p-152, false,
+	-0x8p-152, false,
+	false,
+	-0xc.0000000000008p-152, false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	false,
+	-0xc.000000000000001p-152, false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	false,
+	-0xc.000000000000001p-152, false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	false,
+	-0xc.00000000000000000000000004p-152, false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	false,
+	-0xc.0000000000000000000000000008p-152, false,
+	-0xcp-152, false,
+	-0xcp-152, false,
+	-0xcp-152, false),
   TEST ("3.5032461608120426773093239582247903282006548546912894293926"
 	"7070972447770671465150371659547090530395507812499e-45",
 	false,
-	0x1p-148,
-	0x1p-148,
-	0x1p-148,
-	0x1.8p-148,
-	false,
-	0x1.3ffffffffffffp-148,
-	0x1.4p-148,
-	0x1.3ffffffffffffp-148,
-	0x1.4p-148,
-	false,
-	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),
+	0x1p-148, false,
+	0x1p-148, false,
+	0x1p-148, false,
+	0x1.8p-148, false,
+	false,
+	0x1.3ffffffffffffp-148, false,
+	0x1.4p-148, false,
+	0x1.3ffffffffffffp-148, false,
+	0x1.4p-148, false,
+	false,
+	0x1.3ffffffffffffffep-148, false,
+	0x1.4p-148, false,
+	0x1.3ffffffffffffffep-148, false,
+	0x1.4p-148, false,
+	false,
+	0x1.3ffffffffffffffep-148, false,
+	0x1.4p-148, false,
+	0x1.3ffffffffffffffep-148, false,
+	0x1.4p-148, false,
+	false,
+	0x1.3fffffffffffffffffffffffff8p-148, false,
+	0x1.4p-148, false,
+	0x1.3fffffffffffffffffffffffff8p-148, false,
+	0x1.4p-148, false,
+	false,
+	0x1.3fffffffffffffffffffffffffffp-148, false,
+	0x1.4p-148, false,
+	0x1.3fffffffffffffffffffffffffffp-148, false,
+	0x1.4p-148, false),
   TEST ("3.5032461608120426773093239582247903282006548546912894293926"
 	"70709724477706714651503716595470905303955078125e-45",
 	false,
-	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-148,
-	0x1.4p-148,
-	0x1.4p-148,
-	0x1.4p-148),
+	0x1p-148, false,
+	0x1p-148, false,
+	0x1p-148, false,
+	0x1.8p-148, false,
+	true,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	true,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	true,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	true,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	true,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	0x1.4p-148, false),
   TEST ("3.5032461608120426773093239582247903282006548546912894293926"
 	"7070972447770671465150371659547090530395507812501e-45",
 	false,
-	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-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),
+	0x1p-148, false,
+	0x1.8p-148, false,
+	0x1p-148, false,
+	0x1.8p-148, false,
+	false,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	0x1.4000000000001p-148, false,
+	false,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	0x1.4000000000000002p-148, false,
+	false,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	0x1.4000000000000002p-148, false,
+	false,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	0x1.400000000000000000000000008p-148, false,
+	false,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	0x1.4p-148, false,
+	0x1.4000000000000000000000000001p-148, false),
   TEST ("-3.503246160812042677309323958224790328200654854691289429392"
 	"67070972447770671465150371659547090530395507812499e-45",
 	false,
-	-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-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),
+	-0x1.8p-148, false,
+	-0x1p-148, false,
+	-0x1p-148, false,
+	-0x1p-148, false,
+	false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	-0x1.3ffffffffffffp-148, false,
+	-0x1.3ffffffffffffp-148, false,
+	false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	-0x1.3ffffffffffffffep-148, false,
+	-0x1.3ffffffffffffffep-148, false,
+	false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	-0x1.3ffffffffffffffep-148, false,
+	-0x1.3ffffffffffffffep-148, false,
+	false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	-0x1.3fffffffffffffffffffffffff8p-148, false,
+	-0x1.3fffffffffffffffffffffffff8p-148, false,
+	false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	-0x1.3fffffffffffffffffffffffffffp-148, false,
+	-0x1.3fffffffffffffffffffffffffffp-148, false),
   TEST ("-3.503246160812042677309323958224790328200654854691289429392"
 	"670709724477706714651503716595470905303955078125e-45",
 	false,
-	-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-148,
-	-0x1.4p-148,
-	-0x1.4p-148,
-	-0x1.4p-148),
+	-0x1.8p-148, false,
+	-0x1p-148, false,
+	-0x1p-148, false,
+	-0x1p-148, false,
+	true,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	true,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	true,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	true,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	true,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false),
   TEST ("-3.503246160812042677309323958224790328200654854691289429392"
 	"67070972447770671465150371659547090530395507812501e-45",
 	false,
-	-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.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),
+	-0x1.8p-148, false,
+	-0x1.8p-148, false,
+	-0x1p-148, false,
+	-0x1p-148, false,
+	false,
+	-0x1.4000000000001p-148, false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	false,
+	-0x1.4000000000000002p-148, false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	false,
+	-0x1.4000000000000002p-148, false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	false,
+	-0x1.400000000000000000000000008p-148, false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	false,
+	-0x1.4000000000000000000000000001p-148, false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false,
+	-0x1.4p-148, false),
   TEST ("7.4109846876186981626485318930233205854758970392148714663837"
 	"852375101326090531312779794975454245398856969484704316857659"
 	"638998506553390969459816219401617281718945106978546710679176"
@@ -3818,35 +3818,35 @@ static const struct test tests[] = {
 	"337560846003984904972149117463085539556354188641513168478436"
 	"31308023759629577398300170898437499e-324",
 	false,
-	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,
-	0x5.fffffffffffffffffffffffffffcp-1076,
-	0x6p-1076,
-	0x5.fffffffffffffffffffffffffffcp-1076,
-	0x6p-1076),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x4p-1076, false,
+	0x4p-1076, false,
+	0x4p-1076, false,
+	0x8p-1076, false,
+	false,
+	0x5.fffffffffffffff8p-1076, false,
+	0x6p-1076, false,
+	0x5.fffffffffffffff8p-1076, false,
+	0x6p-1076, false,
+	false,
+	0x5.fffffffffffffff8p-1076, false,
+	0x6p-1076, false,
+	0x5.fffffffffffffff8p-1076, false,
+	0x6p-1076, false,
+	false,
+	0x4p-1076, false,
+	0x4p-1076, false,
+	0x4p-1076, false,
+	0x8p-1076, false,
+	false,
+	0x5.fffffffffffffffffffffffffffcp-1076, false,
+	0x6p-1076, false,
+	0x5.fffffffffffffffffffffffffffcp-1076, false,
+	0x6p-1076, false),
   TEST ("7.4109846876186981626485318930233205854758970392148714663837"
 	"852375101326090531312779794975454245398856969484704316857659"
 	"638998506553390969459816219401617281718945106978546710679176"
@@ -3861,35 +3861,35 @@ static const struct test tests[] = {
 	"337560846003984904972149117463085539556354188641513168478436"
 	"313080237596295773983001708984375e-324",
 	false,
-	0x0p+0,
-	0x0p+0,
-	0x0p+0,
-	0x8p-152,
-	false,
-	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,
-	false,
-	0x4p-1076,
-	0x8p-1076,
-	0x4p-1076,
-	0x8p-1076,
-	true,
-	0x6p-1076,
-	0x6p-1076,
-	0x6p-1076,
-	0x6p-1076),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x4p-1076, false,
+	0x8p-1076, false,
+	0x4p-1076, false,
+	0x8p-1076, false,
+	true,
+	0x6p-1076, false,
+	0x6p-1076, false,
+	0x6p-1076, false,
+	0x6p-1076, false,
+	true,
+	0x6p-1076, false,
+	0x6p-1076, false,
+	0x6p-1076, false,
+	0x6p-1076, false,
+	false,
+	0x4p-1076, false,
+	0x8p-1076, false,
+	0x4p-1076, false,
+	0x8p-1076, false,
+	true,
+	0x6p-1076, false,
+	0x6p-1076, false,
+	0x6p-1076, false,
+	0x6p-1076, false),
   TEST ("7.4109846876186981626485318930233205854758970392148714663837"
 	"852375101326090531312779794975454245398856969484704316857659"
 	"638998506553390969459816219401617281718945106978546710679176"
@@ -3904,35 +3904,35 @@ static const struct test tests[] = {
 	"337560846003984904972149117463085539556354188641513168478436"
 	"31308023759629577398300170898437501e-324",
 	false,
-	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,
-	0x6p-1076,
-	0x6p-1076,
-	0x6p-1076,
-	0x6.0000000000000000000000000004p-1076),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x4p-1076, false,
+	0x8p-1076, false,
+	0x4p-1076, false,
+	0x8p-1076, false,
+	false,
+	0x6p-1076, false,
+	0x6p-1076, false,
+	0x6p-1076, false,
+	0x6.0000000000000008p-1076, false,
+	false,
+	0x6p-1076, false,
+	0x6p-1076, false,
+	0x6p-1076, false,
+	0x6.0000000000000008p-1076, false,
+	false,
+	0x4p-1076, false,
+	0x8p-1076, false,
+	0x4p-1076, false,
+	0x8p-1076, false,
+	false,
+	0x6p-1076, false,
+	0x6p-1076, false,
+	0x6p-1076, false,
+	0x6.0000000000000000000000000004p-1076, false),
   TEST ("-7.410984687618698162648531893023320585475897039214871466383"
 	"785237510132609053131277979497545424539885696948470431685765"
 	"963899850655339096945981621940161728171894510697854671067917"
@@ -3947,35 +3947,35 @@ static const struct test tests[] = {
 	"433756084600398490497214911746308553955635418864151316847843"
 	"631308023759629577398300170898437499e-324",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x8p-1076,
-	-0x4p-1076,
-	-0x4p-1076,
-	-0x4p-1076,
-	false,
-	-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),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x8p-1076, false,
+	-0x4p-1076, false,
+	-0x4p-1076, false,
+	-0x4p-1076, false,
+	false,
+	-0x6p-1076, false,
+	-0x6p-1076, false,
+	-0x5.fffffffffffffff8p-1076, false,
+	-0x5.fffffffffffffff8p-1076, false,
+	false,
+	-0x6p-1076, false,
+	-0x6p-1076, false,
+	-0x5.fffffffffffffff8p-1076, false,
+	-0x5.fffffffffffffff8p-1076, false,
+	false,
+	-0x8p-1076, false,
+	-0x4p-1076, false,
+	-0x4p-1076, false,
+	-0x4p-1076, false,
+	false,
+	-0x6p-1076, false,
+	-0x6p-1076, false,
+	-0x5.fffffffffffffffffffffffffffcp-1076, false,
+	-0x5.fffffffffffffffffffffffffffcp-1076, false),
   TEST ("-7.410984687618698162648531893023320585475897039214871466383"
 	"785237510132609053131277979497545424539885696948470431685765"
 	"963899850655339096945981621940161728171894510697854671067917"
@@ -3990,35 +3990,35 @@ static const struct test tests[] = {
 	"433756084600398490497214911746308553955635418864151316847843"
 	"6313080237596295773983001708984375e-324",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x8p-1076,
-	-0x8p-1076,
-	-0x4p-1076,
-	-0x4p-1076,
-	true,
-	-0x6p-1076,
-	-0x6p-1076,
-	-0x6p-1076,
-	-0x6p-1076,
-	true,
-	-0x6p-1076,
-	-0x6p-1076,
-	-0x6p-1076,
-	-0x6p-1076,
-	false,
-	-0x8p-1076,
-	-0x8p-1076,
-	-0x4p-1076,
-	-0x4p-1076,
-	true,
-	-0x6p-1076,
-	-0x6p-1076,
-	-0x6p-1076,
-	-0x6p-1076),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x8p-1076, false,
+	-0x8p-1076, false,
+	-0x4p-1076, false,
+	-0x4p-1076, false,
+	true,
+	-0x6p-1076, false,
+	-0x6p-1076, false,
+	-0x6p-1076, false,
+	-0x6p-1076, false,
+	true,
+	-0x6p-1076, false,
+	-0x6p-1076, false,
+	-0x6p-1076, false,
+	-0x6p-1076, false,
+	false,
+	-0x8p-1076, false,
+	-0x8p-1076, false,
+	-0x4p-1076, false,
+	-0x4p-1076, false,
+	true,
+	-0x6p-1076, false,
+	-0x6p-1076, false,
+	-0x6p-1076, false,
+	-0x6p-1076, false),
   TEST ("-7.410984687618698162648531893023320585475897039214871466383"
 	"785237510132609053131277979497545424539885696948470431685765"
 	"963899850655339096945981621940161728171894510697854671067917"
@@ -4033,35 +4033,35 @@ static const struct test tests[] = {
 	"433756084600398490497214911746308553955635418864151316847843"
 	"631308023759629577398300170898437501e-324",
 	false,
-	-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,
-	-0x6.0000000000000000000000000004p-1076,
-	-0x6p-1076,
-	-0x6p-1076,
-	-0x6p-1076),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x8p-1076, false,
+	-0x8p-1076, false,
+	-0x4p-1076, false,
+	-0x4p-1076, false,
+	false,
+	-0x6.0000000000000008p-1076, false,
+	-0x6p-1076, false,
+	-0x6p-1076, false,
+	-0x6p-1076, false,
+	false,
+	-0x6.0000000000000008p-1076, false,
+	-0x6p-1076, false,
+	-0x6p-1076, false,
+	-0x6p-1076, false,
+	false,
+	-0x8p-1076, false,
+	-0x8p-1076, false,
+	-0x4p-1076, false,
+	-0x4p-1076, false,
+	false,
+	-0x6.0000000000000000000000000004p-1076, false,
+	-0x6p-1076, false,
+	-0x6p-1076, false,
+	-0x6p-1076, false),
   TEST ("5.4677992978237119037926089004291297245985762235403450155814"
 	"707305425575329500966052143410629387408077958710210208052966"
 	"529504784489330482549602621133847135082257338717668975178538"
@@ -4255,35 +4255,35 @@ static const struct test tests[] = {
 	"866268925981702690270202829595794350800918257913991744455922"
 	"683343374046671669930219650268554687499e-4951",
 	false,
-	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,
-	0xb.fffffffffffcp-16448,
-	0xcp-16448,
-	0xb.fffffffffffcp-16448,
-	0xcp-16448),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x8p-16448, false,
+	0x8p-16448, false,
+	0x8p-16448, false,
+	0x1p-16444, false,
+	false,
+	0x8p-16448, false,
+	0xcp-16448, false,
+	0x8p-16448, false,
+	0xcp-16448, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0xb.fffffffffffcp-16448, false,
+	0xcp-16448, false,
+	0xb.fffffffffffcp-16448, false,
+	0xcp-16448, false),
   TEST ("5.4677992978237119037926089004291297245985762235403450155814"
 	"707305425575329500966052143410629387408077958710210208052966"
 	"529504784489330482549602621133847135082257338717668975178538"
@@ -4477,35 +4477,35 @@ static const struct test tests[] = {
 	"866268925981702690270202829595794350800918257913991744455922"
 	"6833433740466716699302196502685546875e-4951",
 	false,
-	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,
-	true,
-	0xcp-16448,
-	0xcp-16448,
-	0xcp-16448,
-	0xcp-16448,
-	false,
-	0x0p+0,
-	0x0p+0,
-	0x0p+0,
-	0x4p-1076,
-	true,
-	0xcp-16448,
-	0xcp-16448,
-	0xcp-16448,
-	0xcp-16448),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x8p-16448, false,
+	0x1p-16444, false,
+	0x8p-16448, false,
+	0x1p-16444, false,
+	true,
+	0xcp-16448, false,
+	0xcp-16448, false,
+	0xcp-16448, false,
+	0xcp-16448, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	true,
+	0xcp-16448, false,
+	0xcp-16448, false,
+	0xcp-16448, false,
+	0xcp-16448, false),
   TEST ("5.4677992978237119037926089004291297245985762235403450155814"
 	"707305425575329500966052143410629387408077958710210208052966"
 	"529504784489330482549602621133847135082257338717668975178538"
@@ -4699,35 +4699,35 @@ static const struct test tests[] = {
 	"866268925981702690270202829595794350800918257913991744455922"
 	"683343374046671669930219650268554687501e-4951",
 	false,
-	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,
-	0xcp-16448,
-	0xcp-16448,
-	0xcp-16448,
-	0xc.000000000004p-16448),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x8p-16448, false,
+	0x1p-16444, false,
+	0x8p-16448, false,
+	0x1p-16444, false,
+	false,
+	0xcp-16448, false,
+	0xcp-16448, false,
+	0xcp-16448, false,
+	0x1p-16444, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0xcp-16448, false,
+	0xcp-16448, false,
+	0xcp-16448, false,
+	0xc.000000000004p-16448, false),
   TEST ("-5.467799297823711903792608900429129724598576223540345015581"
 	"470730542557532950096605214341062938740807795871021020805296"
 	"652950478448933048254960262113384713508225733871766897517853"
@@ -4921,35 +4921,35 @@ static const struct test tests[] = {
 	"386626892598170269027020282959579435080091825791399174445592"
 	"2683343374046671669930219650268554687499e-4951",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x1p-16444,
-	-0x8p-16448,
-	-0x8p-16448,
-	-0x8p-16448,
-	false,
-	-0xcp-16448,
-	-0xcp-16448,
-	-0x8p-16448,
-	-0x8p-16448,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0xcp-16448,
-	-0xcp-16448,
-	-0xb.fffffffffffcp-16448,
-	-0xb.fffffffffffcp-16448),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x1p-16444, false,
+	-0x8p-16448, false,
+	-0x8p-16448, false,
+	-0x8p-16448, false,
+	false,
+	-0xcp-16448, false,
+	-0xcp-16448, false,
+	-0x8p-16448, false,
+	-0x8p-16448, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0xcp-16448, false,
+	-0xcp-16448, false,
+	-0xb.fffffffffffcp-16448, false,
+	-0xb.fffffffffffcp-16448, false),
   TEST ("-5.467799297823711903792608900429129724598576223540345015581"
 	"470730542557532950096605214341062938740807795871021020805296"
 	"652950478448933048254960262113384713508225733871766897517853"
@@ -5143,35 +5143,35 @@ static const struct test tests[] = {
 	"386626892598170269027020282959579435080091825791399174445592"
 	"26833433740466716699302196502685546875e-4951",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x1p-16444,
-	-0x1p-16444,
-	-0x8p-16448,
-	-0x8p-16448,
-	true,
-	-0xcp-16448,
-	-0xcp-16448,
-	-0xcp-16448,
-	-0xcp-16448,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	true,
-	-0xcp-16448,
-	-0xcp-16448,
-	-0xcp-16448,
-	-0xcp-16448),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x1p-16444, false,
+	-0x1p-16444, false,
+	-0x8p-16448, false,
+	-0x8p-16448, false,
+	true,
+	-0xcp-16448, false,
+	-0xcp-16448, false,
+	-0xcp-16448, false,
+	-0xcp-16448, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	true,
+	-0xcp-16448, false,
+	-0xcp-16448, false,
+	-0xcp-16448, false,
+	-0xcp-16448, false),
   TEST ("-5.467799297823711903792608900429129724598576223540345015581"
 	"470730542557532950096605214341062938740807795871021020805296"
 	"652950478448933048254960262113384713508225733871766897517853"
@@ -5365,35 +5365,35 @@ static const struct test tests[] = {
 	"386626892598170269027020282959579435080091825791399174445592"
 	"2683343374046671669930219650268554687501e-4951",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x1p-16444,
-	-0x1p-16444,
-	-0x8p-16448,
-	-0x8p-16448,
-	false,
-	-0x1p-16444,
-	-0xcp-16448,
-	-0xcp-16448,
-	-0xcp-16448,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0xc.000000000004p-16448,
-	-0xcp-16448,
-	-0xcp-16448,
-	-0xcp-16448),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x1p-16444, false,
+	-0x1p-16444, false,
+	-0x8p-16448, false,
+	-0x8p-16448, false,
+	false,
+	-0x1p-16444, false,
+	-0xcp-16448, false,
+	-0xcp-16448, false,
+	-0xcp-16448, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0xc.000000000004p-16448, false,
+	-0xcp-16448, false,
+	-0xcp-16448, false,
+	-0xcp-16448, false),
   TEST ("5.4677992978237119037926089004291297245985762235403450155814"
 	"707305425575329500966052143410629387408077958710210208052966"
 	"529504784489330482549602621133847135082257338717668975178538"
@@ -5587,35 +5587,35 @@ static const struct test tests[] = {
 	"866268925981702690270202829595794350800918257913991744455922"
 	"683343374046671669930219650268554687499e-4951",
 	false,
-	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,
-	0xb.fffffffffffcp-16448,
-	0xcp-16448,
-	0xb.fffffffffffcp-16448,
-	0xcp-16448),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x8p-16448, false,
+	0x8p-16448, false,
+	0x8p-16448, false,
+	0x1p-16444, false,
+	false,
+	0x8p-16448, false,
+	0xcp-16448, false,
+	0x8p-16448, false,
+	0xcp-16448, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0xb.fffffffffffcp-16448, false,
+	0xcp-16448, false,
+	0xb.fffffffffffcp-16448, false,
+	0xcp-16448, false),
   TEST ("5.4677992978237119037926089004291297245985762235403450155814"
 	"707305425575329500966052143410629387408077958710210208052966"
 	"529504784489330482549602621133847135082257338717668975178538"
@@ -5809,35 +5809,35 @@ static const struct test tests[] = {
 	"866268925981702690270202829595794350800918257913991744455922"
 	"6833433740466716699302196502685546875e-4951",
 	false,
-	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,
-	true,
-	0xcp-16448,
-	0xcp-16448,
-	0xcp-16448,
-	0xcp-16448,
-	false,
-	0x0p+0,
-	0x0p+0,
-	0x0p+0,
-	0x4p-1076,
-	true,
-	0xcp-16448,
-	0xcp-16448,
-	0xcp-16448,
-	0xcp-16448),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x8p-16448, false,
+	0x1p-16444, false,
+	0x8p-16448, false,
+	0x1p-16444, false,
+	true,
+	0xcp-16448, false,
+	0xcp-16448, false,
+	0xcp-16448, false,
+	0xcp-16448, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	true,
+	0xcp-16448, false,
+	0xcp-16448, false,
+	0xcp-16448, false,
+	0xcp-16448, false),
   TEST ("5.4677992978237119037926089004291297245985762235403450155814"
 	"707305425575329500966052143410629387408077958710210208052966"
 	"529504784489330482549602621133847135082257338717668975178538"
@@ -6031,35 +6031,35 @@ static const struct test tests[] = {
 	"866268925981702690270202829595794350800918257913991744455922"
 	"683343374046671669930219650268554687501e-4951",
 	false,
-	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,
-	0xcp-16448,
-	0xcp-16448,
-	0xcp-16448,
-	0xc.000000000004p-16448),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x8p-16448, false,
+	0x1p-16444, false,
+	0x8p-16448, false,
+	0x1p-16444, false,
+	false,
+	0xcp-16448, false,
+	0xcp-16448, false,
+	0xcp-16448, false,
+	0x1p-16444, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0xcp-16448, false,
+	0xcp-16448, false,
+	0xcp-16448, false,
+	0xc.000000000004p-16448, false),
   TEST ("-5.467799297823711903792608900429129724598576223540345015581"
 	"470730542557532950096605214341062938740807795871021020805296"
 	"652950478448933048254960262113384713508225733871766897517853"
@@ -6253,35 +6253,35 @@ static const struct test tests[] = {
 	"386626892598170269027020282959579435080091825791399174445592"
 	"2683343374046671669930219650268554687499e-4951",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x1p-16444,
-	-0x8p-16448,
-	-0x8p-16448,
-	-0x8p-16448,
-	false,
-	-0xcp-16448,
-	-0xcp-16448,
-	-0x8p-16448,
-	-0x8p-16448,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0xcp-16448,
-	-0xcp-16448,
-	-0xb.fffffffffffcp-16448,
-	-0xb.fffffffffffcp-16448),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x1p-16444, false,
+	-0x8p-16448, false,
+	-0x8p-16448, false,
+	-0x8p-16448, false,
+	false,
+	-0xcp-16448, false,
+	-0xcp-16448, false,
+	-0x8p-16448, false,
+	-0x8p-16448, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0xcp-16448, false,
+	-0xcp-16448, false,
+	-0xb.fffffffffffcp-16448, false,
+	-0xb.fffffffffffcp-16448, false),
   TEST ("-5.467799297823711903792608900429129724598576223540345015581"
 	"470730542557532950096605214341062938740807795871021020805296"
 	"652950478448933048254960262113384713508225733871766897517853"
@@ -6475,35 +6475,35 @@ static const struct test tests[] = {
 	"386626892598170269027020282959579435080091825791399174445592"
 	"26833433740466716699302196502685546875e-4951",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x1p-16444,
-	-0x1p-16444,
-	-0x8p-16448,
-	-0x8p-16448,
-	true,
-	-0xcp-16448,
-	-0xcp-16448,
-	-0xcp-16448,
-	-0xcp-16448,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	true,
-	-0xcp-16448,
-	-0xcp-16448,
-	-0xcp-16448,
-	-0xcp-16448),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x1p-16444, false,
+	-0x1p-16444, false,
+	-0x8p-16448, false,
+	-0x8p-16448, false,
+	true,
+	-0xcp-16448, false,
+	-0xcp-16448, false,
+	-0xcp-16448, false,
+	-0xcp-16448, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	true,
+	-0xcp-16448, false,
+	-0xcp-16448, false,
+	-0xcp-16448, false,
+	-0xcp-16448, false),
   TEST ("-5.467799297823711903792608900429129724598576223540345015581"
 	"470730542557532950096605214341062938740807795871021020805296"
 	"652950478448933048254960262113384713508225733871766897517853"
@@ -6697,630 +6697,630 @@ static const struct test tests[] = {
 	"386626892598170269027020282959579435080091825791399174445592"
 	"2683343374046671669930219650268554687501e-4951",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x1p-16444,
-	-0x1p-16444,
-	-0x8p-16448,
-	-0x8p-16448,
-	false,
-	-0x1p-16444,
-	-0xcp-16448,
-	-0xcp-16448,
-	-0xcp-16448,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0xc.000000000004p-16448,
-	-0xcp-16448,
-	-0xcp-16448,
-	-0xcp-16448),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x1p-16444, false,
+	-0x1p-16444, false,
+	-0x8p-16448, false,
+	-0x8p-16448, false,
+	false,
+	-0x1p-16444, false,
+	-0xcp-16448, false,
+	-0xcp-16448, false,
+	-0xcp-16448, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0xc.000000000004p-16448, false,
+	-0xcp-16448, false,
+	-0xcp-16448, false,
+	-0xcp-16448, false),
   TEST ("-0x0.7p-149",
 	false,
-	-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-152,
-	-0x3.8p-152,
-	-0x3.8p-152,
-	-0x3.8p-152),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	true,
+	-0x3.8p-152, false,
+	-0x3.8p-152, false,
+	-0x3.8p-152, false,
+	-0x3.8p-152, false,
+	true,
+	-0x3.8p-152, false,
+	-0x3.8p-152, false,
+	-0x3.8p-152, false,
+	-0x3.8p-152, false,
+	true,
+	-0x3.8p-152, false,
+	-0x3.8p-152, false,
+	-0x3.8p-152, false,
+	-0x3.8p-152, false,
+	true,
+	-0x3.8p-152, false,
+	-0x3.8p-152, false,
+	-0x3.8p-152, false,
+	-0x3.8p-152, false,
+	true,
+	-0x3.8p-152, false,
+	-0x3.8p-152, false,
+	-0x3.8p-152, false,
+	-0x3.8p-152, false),
   TEST ("-0x0.7p-1074",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	true,
-	-0x1.cp-1076,
-	-0x1.cp-1076,
-	-0x1.cp-1076,
-	-0x1.cp-1076,
-	true,
-	-0x1.cp-1076,
-	-0x1.cp-1076,
-	-0x1.cp-1076,
-	-0x1.cp-1076,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	true,
-	-0x1.cp-1076,
-	-0x1.cp-1076,
-	-0x1.cp-1076,
-	-0x1.cp-1076),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	true,
+	-0x1.cp-1076, false,
+	-0x1.cp-1076, false,
+	-0x1.cp-1076, false,
+	-0x1.cp-1076, false,
+	true,
+	-0x1.cp-1076, false,
+	-0x1.cp-1076, false,
+	-0x1.cp-1076, false,
+	-0x1.cp-1076, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	true,
+	-0x1.cp-1076, false,
+	-0x1.cp-1076, false,
+	-0x1.cp-1076, false,
+	-0x1.cp-1076, false),
   TEST ("-0x0.7p-16445",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x8p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-16448,
-	-0x4p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	true,
-	-0x3.8p-16448,
-	-0x3.8p-16448,
-	-0x3.8p-16448,
-	-0x3.8p-16448),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x8p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-16448, false,
+	-0x4p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	true,
+	-0x3.8p-16448, false,
+	-0x3.8p-16448, false,
+	-0x3.8p-16448, false,
+	-0x3.8p-16448, false),
   TEST ("-0x0.7p-16494",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x8p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-16496,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x8p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-16496, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false),
   TEST ("0x1p-150",
 	false,
-	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-152,
-	0x4p-152,
-	0x4p-152,
-	0x4p-152),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	true,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	true,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	true,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	true,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	true,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false),
   TEST ("0x1p-1075",
 	false,
-	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+0,
-	0x0p+0,
-	0x0p+0,
-	0x4p-1076,
-	true,
-	0x2p-1076,
-	0x2p-1076,
-	0x2p-1076,
-	0x2p-1076),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	true,
+	0x2p-1076, false,
+	0x2p-1076, false,
+	0x2p-1076, false,
+	0x2p-1076, false,
+	true,
+	0x2p-1076, false,
+	0x2p-1076, false,
+	0x2p-1076, false,
+	0x2p-1076, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	true,
+	0x2p-1076, false,
+	0x2p-1076, false,
+	0x2p-1076, false,
+	0x2p-1076, false),
   TEST ("0x1p-16446",
 	false,
-	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,
-	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),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-16448, false,
+	true,
+	0x4p-16448, false,
+	0x4p-16448, false,
+	0x4p-16448, false,
+	0x4p-16448, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	true,
+	0x4p-16448, false,
+	0x4p-16448, false,
+	0x4p-16448, false,
+	0x4p-16448, false),
   TEST ("0x1p-16495",
 	false,
-	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+0,
-	0x0p+0,
-	0x0p+0,
-	0x4p-16496),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-16448, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-16448, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-16496, false),
   TEST ("-0x1p-150",
 	false,
-	-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-152,
-	-0x4p-152,
-	-0x4p-152,
-	-0x4p-152),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	true,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	true,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	true,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	true,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	true,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false),
   TEST ("-0x1p-1075",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	true,
-	-0x2p-1076,
-	-0x2p-1076,
-	-0x2p-1076,
-	-0x2p-1076,
-	true,
-	-0x2p-1076,
-	-0x2p-1076,
-	-0x2p-1076,
-	-0x2p-1076,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	true,
-	-0x2p-1076,
-	-0x2p-1076,
-	-0x2p-1076,
-	-0x2p-1076),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	true,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	true,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	true,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	-0x2p-1076, false),
   TEST ("-0x1p-16446",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x8p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	true,
-	-0x4p-16448,
-	-0x4p-16448,
-	-0x4p-16448,
-	-0x4p-16448,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	true,
-	-0x4p-16448,
-	-0x4p-16448,
-	-0x4p-16448,
-	-0x4p-16448),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x8p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	true,
+	-0x4p-16448, false,
+	-0x4p-16448, false,
+	-0x4p-16448, false,
+	-0x4p-16448, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	true,
+	-0x4p-16448, false,
+	-0x4p-16448, false,
+	-0x4p-16448, false,
+	-0x4p-16448, false),
   TEST ("-0x1p-16495",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x8p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-16496,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x8p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-16496, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false),
   TEST (".70064923216240853546186479164495807e-45",
 	false,
-	0x0p+0,
-	0x8p-152,
-	0x0p+0,
-	0x8p-152,
-	false,
-	0x4p-152,
-	0x4p-152,
-	0x4p-152,
-	0x4.0000000000004p-152,
-	false,
-	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),
+	0x0p+0, false,
+	0x8p-152, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4.0000000000004p-152, false,
+	false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4.0000000000000008p-152, false,
+	false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4.0000000000000008p-152, false,
+	false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4.00000000000000000000000002p-152, false,
+	false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4.0000000000000000000000000004p-152, false),
   TEST ("7.0064923216240853546186479164495806564013097093825788587853"
 	"4141944895541342930300743319094181060791015624e-46",
 	false,
-	0x0p+0,
-	0x0p+0,
-	0x0p+0,
-	0x8p-152,
-	false,
-	0x3.ffffffffffffep-152,
-	0x4p-152,
-	0x3.ffffffffffffep-152,
-	0x4p-152,
-	false,
-	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),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x3.ffffffffffffep-152, false,
+	0x4p-152, false,
+	0x3.ffffffffffffep-152, false,
+	0x4p-152, false,
+	false,
+	0x3.fffffffffffffffcp-152, false,
+	0x4p-152, false,
+	0x3.fffffffffffffffcp-152, false,
+	0x4p-152, false,
+	false,
+	0x3.fffffffffffffffcp-152, false,
+	0x4p-152, false,
+	0x3.fffffffffffffffcp-152, false,
+	0x4p-152, false,
+	false,
+	0x3.ffffffffffffffffffffffffffp-152, false,
+	0x4p-152, false,
+	0x3.ffffffffffffffffffffffffffp-152, false,
+	0x4p-152, false,
+	false,
+	0x3.fffffffffffffffffffffffffffep-152, false,
+	0x4p-152, false,
+	0x3.fffffffffffffffffffffffffffep-152, false,
+	0x4p-152, false),
   TEST ("7.0064923216240853546186479164495806564013097093825788587853"
 	"4141944895541342930300743319094181060791015625e-46",
 	false,
-	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-152,
-	0x4p-152,
-	0x4p-152,
-	0x4p-152),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	true,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	true,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	true,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	true,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	true,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false),
   TEST ("7.0064923216240853546186479164495806564013097093825788587853"
 	"4141944895541342930300743319094181060791015626e-46",
 	false,
-	0x0p+0,
-	0x8p-152,
-	0x0p+0,
-	0x8p-152,
-	false,
-	0x4p-152,
-	0x4p-152,
-	0x4p-152,
-	0x4.0000000000004p-152,
-	false,
-	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),
+	0x0p+0, false,
+	0x8p-152, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4.0000000000004p-152, false,
+	false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4.0000000000000008p-152, false,
+	false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4.0000000000000008p-152, false,
+	false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4.00000000000000000000000002p-152, false,
+	false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4p-152, false,
+	0x4.0000000000000000000000000004p-152, false),
   TEST ("-7.006492321624085354618647916449580656401309709382578858785"
 	"34141944895541342930300743319094181060791015624e-46",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-152,
-	-0x4p-152,
-	-0x3.ffffffffffffep-152,
-	-0x3.ffffffffffffep-152,
-	false,
-	-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),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x3.ffffffffffffep-152, false,
+	-0x3.ffffffffffffep-152, false,
+	false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x3.fffffffffffffffcp-152, false,
+	-0x3.fffffffffffffffcp-152, false,
+	false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x3.fffffffffffffffcp-152, false,
+	-0x3.fffffffffffffffcp-152, false,
+	false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x3.ffffffffffffffffffffffffffp-152, false,
+	-0x3.ffffffffffffffffffffffffffp-152, false,
+	false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x3.fffffffffffffffffffffffffffep-152, false,
+	-0x3.fffffffffffffffffffffffffffep-152, false),
   TEST ("-7.006492321624085354618647916449580656401309709382578858785"
 	"34141944895541342930300743319094181060791015625e-46",
 	false,
-	-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-152,
-	-0x4p-152,
-	-0x4p-152,
-	-0x4p-152),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	true,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	true,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	true,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	true,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	true,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false),
   TEST ("-7.006492321624085354618647916449580656401309709382578858785"
 	"34141944895541342930300743319094181060791015626e-46",
 	false,
-	-0x8p-152,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4.0000000000004p-152,
-	-0x4p-152,
-	-0x4p-152,
-	-0x4p-152,
-	false,
-	-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),
+	-0x8p-152, false,
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4.0000000000004p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	false,
+	-0x4.0000000000000008p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	false,
+	-0x4.0000000000000008p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	false,
+	-0x4.00000000000000000000000002p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	false,
+	-0x4.0000000000000000000000000004p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false,
+	-0x4p-152, false),
   TEST ("2.4703282292062327208828439643411068618252990130716238221279"
 	"284125033775363510437593264991818081799618989828234772285886"
 	"546332835517796989819938739800539093906315035659515570226392"
@@ -7335,35 +7335,35 @@ static const struct test tests[] = {
 	"779186948667994968324049705821028513185451396213837722826145"
 	"437693412532098591327667236328124e-324",
 	false,
-	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,
-	0x1.ffffffffffffffffffffffffffffp-1076,
-	0x2p-1076,
-	0x1.ffffffffffffffffffffffffffffp-1076,
-	0x2p-1076),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x1.fffffffffffffffep-1076, false,
+	0x2p-1076, false,
+	0x1.fffffffffffffffep-1076, false,
+	0x2p-1076, false,
+	false,
+	0x1.fffffffffffffffep-1076, false,
+	0x2p-1076, false,
+	0x1.fffffffffffffffep-1076, false,
+	0x2p-1076, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x1.ffffffffffffffffffffffffffffp-1076, false,
+	0x2p-1076, false,
+	0x1.ffffffffffffffffffffffffffffp-1076, false,
+	0x2p-1076, false),
   TEST ("2.4703282292062327208828439643411068618252990130716238221279"
 	"284125033775363510437593264991818081799618989828234772285886"
 	"546332835517796989819938739800539093906315035659515570226392"
@@ -7378,35 +7378,35 @@ static const struct test tests[] = {
 	"779186948667994968324049705821028513185451396213837722826145"
 	"437693412532098591327667236328125e-324",
 	false,
-	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+0,
-	0x0p+0,
-	0x0p+0,
-	0x4p-1076,
-	true,
-	0x2p-1076,
-	0x2p-1076,
-	0x2p-1076,
-	0x2p-1076),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	true,
+	0x2p-1076, false,
+	0x2p-1076, false,
+	0x2p-1076, false,
+	0x2p-1076, false,
+	true,
+	0x2p-1076, false,
+	0x2p-1076, false,
+	0x2p-1076, false,
+	0x2p-1076, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	true,
+	0x2p-1076, false,
+	0x2p-1076, false,
+	0x2p-1076, false,
+	0x2p-1076, false),
   TEST ("2.4703282292062327208828439643411068618252990130716238221279"
 	"284125033775363510437593264991818081799618989828234772285886"
 	"546332835517796989819938739800539093906315035659515570226392"
@@ -7421,35 +7421,35 @@ static const struct test tests[] = {
 	"779186948667994968324049705821028513185451396213837722826145"
 	"437693412532098591327667236328126e-324",
 	false,
-	0x0p+0,
-	0x0p+0,
-	0x0p+0,
-	0x8p-152,
-	false,
-	0x0p+0,
-	0x4p-1076,
-	0x0p+0,
-	0x4p-1076,
-	false,
-	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),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x2p-1076, false,
+	0x2p-1076, false,
+	0x2p-1076, false,
+	0x2.0000000000000004p-1076, false,
+	false,
+	0x2p-1076, false,
+	0x2p-1076, false,
+	0x2p-1076, false,
+	0x2.0000000000000004p-1076, false,
+	false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x2p-1076, false,
+	0x2p-1076, false,
+	0x2p-1076, false,
+	0x2.0000000000000000000000000002p-1076, false),
   TEST ("-2.470328229206232720882843964341106861825299013071623822127"
 	"928412503377536351043759326499181808179961898982823477228588"
 	"654633283551779698981993873980053909390631503565951557022639"
@@ -7464,35 +7464,35 @@ static const struct test tests[] = {
 	"477918694866799496832404970582102851318545139621383772282614"
 	"5437693412532098591327667236328124e-324",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x2p-1076,
-	-0x2p-1076,
-	-0x1.fffffffffffffffep-1076,
-	-0x1.fffffffffffffffep-1076,
-	false,
-	-0x2p-1076,
-	-0x2p-1076,
-	-0x1.fffffffffffffffep-1076,
-	-0x1.fffffffffffffffep-1076,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x2p-1076,
-	-0x2p-1076,
-	-0x1.ffffffffffffffffffffffffffffp-1076,
-	-0x1.ffffffffffffffffffffffffffffp-1076),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	-0x1.fffffffffffffffep-1076, false,
+	-0x1.fffffffffffffffep-1076, false,
+	false,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	-0x1.fffffffffffffffep-1076, false,
+	-0x1.fffffffffffffffep-1076, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	-0x1.ffffffffffffffffffffffffffffp-1076, false,
+	-0x1.ffffffffffffffffffffffffffffp-1076, false),
   TEST ("-2.470328229206232720882843964341106861825299013071623822127"
 	"928412503377536351043759326499181808179961898982823477228588"
 	"654633283551779698981993873980053909390631503565951557022639"
@@ -7507,35 +7507,35 @@ static const struct test tests[] = {
 	"477918694866799496832404970582102851318545139621383772282614"
 	"5437693412532098591327667236328125e-324",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	true,
-	-0x2p-1076,
-	-0x2p-1076,
-	-0x2p-1076,
-	-0x2p-1076,
-	true,
-	-0x2p-1076,
-	-0x2p-1076,
-	-0x2p-1076,
-	-0x2p-1076,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	true,
-	-0x2p-1076,
-	-0x2p-1076,
-	-0x2p-1076,
-	-0x2p-1076),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	true,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	true,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	true,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	-0x2p-1076, false),
   TEST ("-2.470328229206232720882843964341106861825299013071623822127"
 	"928412503377536351043759326499181808179961898982823477228588"
 	"654633283551779698981993873980053909390631503565951557022639"
@@ -7550,35 +7550,35 @@ static const struct test tests[] = {
 	"477918694866799496832404970582102851318545139621383772282614"
 	"5437693412532098591327667236328126e-324",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x2.0000000000000004p-1076,
-	-0x2p-1076,
-	-0x2p-1076,
-	-0x2p-1076,
-	false,
-	-0x2.0000000000000004p-1076,
-	-0x2p-1076,
-	-0x2p-1076,
-	-0x2p-1076,
-	false,
-	-0x4p-1076,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x2.0000000000000000000000000002p-1076,
-	-0x2p-1076,
-	-0x2p-1076,
-	-0x2p-1076),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x2.0000000000000004p-1076, false,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	false,
+	-0x2.0000000000000004p-1076, false,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	false,
+	-0x4p-1076, false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x2.0000000000000000000000000002p-1076, false,
+	-0x2p-1076, false,
+	-0x2p-1076, false,
+	-0x2p-1076, false),
   TEST ("1.8225997659412373012642029668097099081995254078467816718604"
 	"902435141858443166988684047803543129136025986236736736017655"
 	"509834928163110160849867540377949045027419112905889658392846"
@@ -7772,35 +7772,35 @@ static const struct test tests[] = {
 	"622089641993900896756734276531931450266972752637997248151974"
 	"2277811246822238899767398834228515624e-4951",
 	false,
-	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,
-	0x3.fffffffffffcp-16448,
-	0x4p-16448,
-	0x3.fffffffffffcp-16448,
-	0x4p-16448),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-16448, false,
+	false,
+	0x0p+0, false,
+	0x4p-16448, false,
+	0x0p+0, false,
+	0x4p-16448, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x3.fffffffffffcp-16448, false,
+	0x4p-16448, false,
+	0x3.fffffffffffcp-16448, false,
+	0x4p-16448, false),
   TEST ("1.8225997659412373012642029668097099081995254078467816718604"
 	"902435141858443166988684047803543129136025986236736736017655"
 	"509834928163110160849867540377949045027419112905889658392846"
@@ -7994,35 +7994,35 @@ static const struct test tests[] = {
 	"622089641993900896756734276531931450266972752637997248151974"
 	"2277811246822238899767398834228515625e-4951",
 	false,
-	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,
-	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),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-16448, false,
+	true,
+	0x4p-16448, false,
+	0x4p-16448, false,
+	0x4p-16448, false,
+	0x4p-16448, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	true,
+	0x4p-16448, false,
+	0x4p-16448, false,
+	0x4p-16448, false,
+	0x4p-16448, false),
   TEST ("1.8225997659412373012642029668097099081995254078467816718604"
 	"902435141858443166988684047803543129136025986236736736017655"
 	"509834928163110160849867540377949045027419112905889658392846"
@@ -8216,35 +8216,35 @@ static const struct test tests[] = {
 	"622089641993900896756734276531931450266972752637997248151974"
 	"2277811246822238899767398834228515626e-4951",
 	false,
-	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,
-	0x4p-16448,
-	0x4p-16448,
-	0x4p-16448,
-	0x4.000000000004p-16448),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x0p+0, false,
+	0x8p-16448, false,
+	0x0p+0, false,
+	0x8p-16448, false,
+	false,
+	0x4p-16448, false,
+	0x4p-16448, false,
+	0x4p-16448, false,
+	0x8p-16448, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x4p-16448, false,
+	0x4p-16448, false,
+	0x4p-16448, false,
+	0x4.000000000004p-16448, false),
   TEST ("-1.822599765941237301264202966809709908199525407846781671860"
 	"490243514185844316698868404780354312913602598623673673601765"
 	"550983492816311016084986754037794904502741911290588965839284"
@@ -8438,35 +8438,35 @@ static const struct test tests[] = {
 	"462208964199390089675673427653193145026697275263799724815197"
 	"42277811246822238899767398834228515624e-4951",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x8p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-16448,
-	-0x4p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-16448,
-	-0x4p-16448,
-	-0x3.fffffffffffcp-16448,
-	-0x3.fffffffffffcp-16448),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x8p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-16448, false,
+	-0x4p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-16448, false,
+	-0x4p-16448, false,
+	-0x3.fffffffffffcp-16448, false,
+	-0x3.fffffffffffcp-16448, false),
   TEST ("-1.822599765941237301264202966809709908199525407846781671860"
 	"490243514185844316698868404780354312913602598623673673601765"
 	"550983492816311016084986754037794904502741911290588965839284"
@@ -8660,35 +8660,35 @@ static const struct test tests[] = {
 	"462208964199390089675673427653193145026697275263799724815197"
 	"42277811246822238899767398834228515625e-4951",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x8p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	true,
-	-0x4p-16448,
-	-0x4p-16448,
-	-0x4p-16448,
-	-0x4p-16448,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	true,
-	-0x4p-16448,
-	-0x4p-16448,
-	-0x4p-16448,
-	-0x4p-16448),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x8p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	true,
+	-0x4p-16448, false,
+	-0x4p-16448, false,
+	-0x4p-16448, false,
+	-0x4p-16448, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	true,
+	-0x4p-16448, false,
+	-0x4p-16448, false,
+	-0x4p-16448, false,
+	-0x4p-16448, false),
   TEST ("-1.822599765941237301264202966809709908199525407846781671860"
 	"490243514185844316698868404780354312913602598623673673601765"
 	"550983492816311016084986754037794904502741911290588965839284"
@@ -8882,35 +8882,35 @@ static const struct test tests[] = {
 	"462208964199390089675673427653193145026697275263799724815197"
 	"42277811246822238899767398834228515626e-4951",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x8p-16448,
-	-0x8p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x8p-16448,
-	-0x4p-16448,
-	-0x4p-16448,
-	-0x4p-16448,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4.000000000004p-16448,
-	-0x4p-16448,
-	-0x4p-16448,
-	-0x4p-16448),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x8p-16448, false,
+	-0x8p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x8p-16448, false,
+	-0x4p-16448, false,
+	-0x4p-16448, false,
+	-0x4p-16448, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4.000000000004p-16448, false,
+	-0x4p-16448, false,
+	-0x4p-16448, false,
+	-0x4p-16448, false),
   TEST ("9.1129988297061865063210148340485495409976270392339083593024"
 	"512175709292215834943420239017715645680129931183683680088277"
 	"549174640815550804249337701889745225137095564529448291964230"
@@ -9104,35 +9104,35 @@ static const struct test tests[] = {
 	"110448209969504483783671382659657251334863763189986240759871"
 	"1389056234111194498836994171142578124e-4952",
 	false,
-	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,
-	0x1.fffffffffffcp-16448,
-	0x2p-16448,
-	0x1.fffffffffffcp-16448,
-	0x2p-16448),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-16448, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-16448, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x1.fffffffffffcp-16448, false,
+	0x2p-16448, false,
+	0x1.fffffffffffcp-16448, false,
+	0x2p-16448, false),
   TEST ("9.1129988297061865063210148340485495409976270392339083593024"
 	"512175709292215834943420239017715645680129931183683680088277"
 	"549174640815550804249337701889745225137095564529448291964230"
@@ -9326,35 +9326,35 @@ static const struct test tests[] = {
 	"110448209969504483783671382659657251334863763189986240759871"
 	"1389056234111194498836994171142578125e-4952",
 	false,
-	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,
-	true,
-	0x2p-16448,
-	0x2p-16448,
-	0x2p-16448,
-	0x2p-16448),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-16448, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-16448, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	true,
+	0x2p-16448, false,
+	0x2p-16448, false,
+	0x2p-16448, false,
+	0x2p-16448, false),
   TEST ("9.1129988297061865063210148340485495409976270392339083593024"
 	"512175709292215834943420239017715645680129931183683680088277"
 	"549174640815550804249337701889745225137095564529448291964230"
@@ -9548,35 +9548,35 @@ static const struct test tests[] = {
 	"110448209969504483783671382659657251334863763189986240759871"
 	"1389056234111194498836994171142578126e-4952",
 	false,
-	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,
-	0x2p-16448,
-	0x2p-16448,
-	0x2p-16448,
-	0x2.000000000004p-16448),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-16448, false,
+	false,
+	0x0p+0, false,
+	0x4p-16448, false,
+	0x0p+0, false,
+	0x4p-16448, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x2p-16448, false,
+	0x2p-16448, false,
+	0x2p-16448, false,
+	0x2.000000000004p-16448, false),
   TEST ("-9.112998829706186506321014834048549540997627039233908359302"
 	"451217570929221583494342023901771564568012993118368368008827"
 	"754917464081555080424933770188974522513709556452944829196423"
@@ -9770,35 +9770,35 @@ static const struct test tests[] = {
 	"311044820996950448378367138265965725133486376318998624075987"
 	"11389056234111194498836994171142578124e-4952",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x8p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x2p-16448,
-	-0x2p-16448,
-	-0x1.fffffffffffcp-16448,
-	-0x1.fffffffffffcp-16448),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x8p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x2p-16448, false,
+	-0x2p-16448, false,
+	-0x1.fffffffffffcp-16448, false,
+	-0x1.fffffffffffcp-16448, false),
   TEST ("-9.112998829706186506321014834048549540997627039233908359302"
 	"451217570929221583494342023901771564568012993118368368008827"
 	"754917464081555080424933770188974522513709556452944829196423"
@@ -9992,35 +9992,35 @@ static const struct test tests[] = {
 	"311044820996950448378367138265965725133486376318998624075987"
 	"11389056234111194498836994171142578125e-4952",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x8p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	true,
-	-0x2p-16448,
-	-0x2p-16448,
-	-0x2p-16448,
-	-0x2p-16448),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x8p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	true,
+	-0x2p-16448, false,
+	-0x2p-16448, false,
+	-0x2p-16448, false,
+	-0x2p-16448, false),
   TEST ("-9.112998829706186506321014834048549540997627039233908359302"
 	"451217570929221583494342023901771564568012993118368368008827"
 	"754917464081555080424933770188974522513709556452944829196423"
@@ -10214,35 +10214,35 @@ static const struct test tests[] = {
 	"311044820996950448378367138265965725133486376318998624075987"
 	"11389056234111194498836994171142578126e-4952",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x8p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-16448,
-	-0x4p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x2.000000000004p-16448,
-	-0x2p-16448,
-	-0x2p-16448,
-	-0x2p-16448),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x8p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-16448, false,
+	-0x4p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x2.000000000004p-16448, false,
+	-0x2p-16448, false,
+	-0x2p-16448, false,
+	-0x2p-16448, false),
   TEST ("3.2375875597190125554622194791138232762497846690173405048449"
 	"421945985197700620596855088357456383249701279390707384240598"
 	"382936099431912710233425550359863089915213963553756674672083"
@@ -10437,35 +10437,35 @@ static const struct test tests[] = {
 	"182358152808745703724362178773168996492870519432472065091133"
 	"11767578124e-4966",
 	false,
-	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+0,
-	0x0p+0,
-	0x0p+0,
-	0x4p-16496),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-16448, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-16448, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-16496, false),
   TEST ("3.2375875597190125554622194791138232762497846690173405048449"
 	"421945985197700620596855088357456383249701279390707384240598"
 	"382936099431912710233425550359863089915213963553756674672083"
@@ -10660,35 +10660,35 @@ static const struct test tests[] = {
 	"182358152808745703724362178773168996492870519432472065091133"
 	"11767578125e-4966",
 	false,
-	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+0,
-	0x0p+0,
-	0x0p+0,
-	0x4p-16496),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-16448, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-16448, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-16496, false),
   TEST ("3.2375875597190125554622194791138232762497846690173405048449"
 	"421945985197700620596855088357456383249701279390707384240598"
 	"382936099431912710233425550359863089915213963553756674672083"
@@ -10883,35 +10883,35 @@ static const struct test tests[] = {
 	"182358152808745703724362178773168996492870519432472065091133"
 	"11767578126e-4966",
 	false,
-	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+0,
-	0x4p-16496,
-	0x0p+0,
-	0x4p-16496),
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-152, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x8p-16448, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-16448, false,
+	false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x0p+0, false,
+	0x4p-1076, false,
+	false,
+	0x0p+0, false,
+	0x4p-16496, false,
+	0x0p+0, false,
+	0x4p-16496, false),
   TEST ("-3.237587559719012555462219479113823276249784669017340504844"
 	"942194598519770062059685508835745638324970127939070738424059"
 	"838293609943191271023342555035986308991521396355375667467208"
@@ -11106,35 +11106,35 @@ static const struct test tests[] = {
 	"218235815280874570372436217877316899649287051943247206509113"
 	"311767578124e-4966",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x8p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-16496,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x8p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-16496, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false),
   TEST ("-3.237587559719012555462219479113823276249784669017340504844"
 	"942194598519770062059685508835745638324970127939070738424059"
 	"838293609943191271023342555035986308991521396355375667467208"
@@ -11329,35 +11329,35 @@ static const struct test tests[] = {
 	"218235815280874570372436217877316899649287051943247206509113"
 	"311767578125e-4966",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x8p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-16496,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x8p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-16496, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false),
   TEST ("-3.237587559719012555462219479113823276249784669017340504844"
 	"942194598519770062059685508835745638324970127939070738424059"
 	"838293609943191271023342555035986308991521396355375667467208"
@@ -11552,33 +11552,424 @@ static const struct test tests[] = {
 	"218235815280874570372436217877316899649287051943247206509113"
 	"311767578126e-4966",
 	false,
-	-0x8p-152,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x8p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-16448,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-1076,
-	-0x0p+0,
-	-0x0p+0,
-	-0x0p+0,
-	false,
-	-0x4p-16496,
-	-0x4p-16496,
-	-0x0p+0,
-	-0x0p+0),
+	-0x8p-152, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x8p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-16448, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-1076, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	-0x0p+0, false,
+	false,
+	-0x4p-16496, false,
+	-0x4p-16496, false,
+	-0x0p+0, false,
+	-0x0p+0, false),
+  TEST ("340282366920938463463374607431768211455",
+	false,
+	0xf.fffffp+124, false,
+	INF, true,
+	0xf.fffffp+124, false,
+	INF, true,
+	false,
+	0xf.ffffffffffff8p+124, false,
+	0x1p+128, false,
+	0xf.ffffffffffff8p+124, false,
+	0x1p+128, false,
+	false,
+	0xf.fffffffffffffffp+124, false,
+	0x1p+128, false,
+	0xf.fffffffffffffffp+124, false,
+	0x1p+128, false,
+	false,
+	0xf.fffffffffffffffp+124, false,
+	0x1p+128, false,
+	0xf.fffffffffffffffp+124, false,
+	0x1p+128, false,
+	false,
+	0xf.fffffffffffffffffffffffffcp+124, false,
+	0x1p+128, false,
+	0xf.fffffffffffffffffffffffffcp+124, false,
+	0x1p+128, false,
+	false,
+	0xf.fffffffffffffffffffffffffff8p+124, false,
+	0x1p+128, false,
+	0xf.fffffffffffffffffffffffffff8p+124, false,
+	0x1p+128, false),
+  TEST ("179769313486231590772930519078902473361797697894230657273430"
+	"081157732675805500963132708477322407536021120113879871393357"
+	"658789768814416622492847430639474124377767893424865485276302"
+	"219601246094119453082952085005768838150682342462881473913110"
+	"540827237163350510684586298239947245938479716304835356329624"
+	"224137215",
+	false,
+	0xf.fffffp+124, true,
+	INF, true,
+	0xf.fffffp+124, true,
+	INF, true,
+	false,
+	0xf.ffffffffffff8p+1020, false,
+	INF, true,
+	0xf.ffffffffffff8p+1020, false,
+	INF, true,
+	false,
+	0xf.fffffffffffffffp+1020, false,
+	0x1p+1024, false,
+	0xf.fffffffffffffffp+1020, false,
+	0x1p+1024, false,
+	false,
+	0xf.fffffffffffffffp+1020, false,
+	0x1p+1024, false,
+	0xf.fffffffffffffffp+1020, false,
+	0x1p+1024, false,
+	false,
+	0xf.fffffffffffffffffffffffffcp+1020, true,
+	INF, true,
+	0xf.fffffffffffffffffffffffffcp+1020, true,
+	INF, true,
+	false,
+	0xf.fffffffffffffffffffffffffff8p+1020, false,
+	0x1p+1024, false,
+	0xf.fffffffffffffffffffffffffff8p+1020, false,
+	0x1p+1024, false),
+  TEST ("118973149535723176508575932662800713076344468709651023747267"
+	"482123326135818048368690448859547261203991511543748483930925"
+	"889766738130868742627452469834156500608087163436600489752214"
+	"325161953144684595234570948213584703664746483098478471428096"
+	"784561413847604433840488612290528685531323615869599988579010"
+	"635701812081536332078096432371275716429061340687520241736532"
+	"395026788008906751737227061083564754575578079343162221345190"
+	"381785963069031134385065753936064964519328317829176765896540"
+	"528511355613436979328172588801590841467528983253806341923488"
+	"859989898062311402512167447205187243932132319840294270534136"
+	"695127473901459381689828899444517340036461792837713807441134"
+	"579184857359507717043764419174388964488537768473832224060823"
+	"907906139947567533473978401649174262148522901484767233597789"
+	"715839733422634973481144165307775825098892603089478960467615"
+	"310425726014180682302758800344195145532770159807128158959716"
+	"941396560843950498317125506228202662620004804214980820000206"
+	"099343368123762385788062747972707287748283843870504803416463"
+	"333701338540599804070190866238730160501818826257372376627924"
+	"079893171770880790174026540793097641964887786960401751769193"
+	"868798808800894425125882696968836419413394578015784436494605"
+	"271365545490632718742853189510027869511932349680870363043619"
+	"392759269234482081283429736447868686206416904245855513653205"
+	"505050818989186684686379991764754729137157350070101519755909"
+	"745304003303152068351821649419563669607774811059828490134361"
+	"146921427412181049507797927555664516498385006205106651708464"
+	"736946403664056933946483717218335295687391204264000361161878"
+	"927819571005209456276130670355184033011064510199543516762668"
+	"866962776382060434248035790641535421273294675607300690708887"
+	"049612505006815665925276129766406549834749266179882406231221"
+	"040927458456558726484641765016012317587403472626195728908146"
+	"619765155383074442470969863475362777035622712614505254912522"
+	"944804014911479568135987596851280857524427187145545408489498"
+	"615502079480698093921565805531916564168110596645415995147690"
+	"858312972150329881658514207306148088802176981833841712939687"
+	"837145957584605258314292844724970369854812529577592093645002"
+	"265142724994958070820396608284755092189115213332104801197388"
+	"363657782553332598885215632543933502131531213408139045102125"
+	"536370790349591696312592420116787719010893525591453948821689"
+	"711794326937360863907447279275111671512710639642508135355313"
+	"721355289053980260297864531979510097643293909192466022887891"
+	"290065421011828729829870738215971718456954051540302917330729"
+	"245439178956867421964076145117360061775218699191336683703388"
+	"720158207162586824713310451331509727471344272834060664289040"
+	"649663610444321775281122747002916285809372770104964649954022"
+	"098398193278661320425422646424368961010742992319763868154583"
+	"756177353556898453605362723442427710576092486402378162966552"
+	"631491090696048807347521700512113631187043992576250866603256"
+	"621375041669571991967422321060672472137347123402161354071218"
+	"823990970197194394434748031421790388631776777992153989217733"
+	"434436890755031880083354685234437032708928414750164058944848"
+	"200125423738668007445734191093377489195968101651606910614990"
+	"557242581089558693883306749020490036862416630196855300568704"
+	"028509545048484007352864382657040376715728651238025510995451"
+	"885701347658818930000413884971588313986607154757481647672763"
+	"511643546280440111271139252918057079419342268681835321279906"
+	"897224769719147426815791219597379419280729888695236110088026"
+	"425880132092804001192815397080113074133955000329901592497825"
+	"993697435872628614398052011245436927111408374791900780340659"
+	"632135341700406886944340547214067596364099740500922580350567"
+	"272646509550626733926889242436456189766190689842418677049103"
+	"534408039924832709791171288114017038418205860161475828420075"
+	"018350032935849969186406659053966070906953738160188767904665"
+	"775965458800193711777134469832642879262289433801611244553353"
+	"944708746204976340914754209924881552139592938800771117201789"
+	"489779370660427348098516102881545878791116097911342243355754"
+	"917090544202639727569528320730533184541999074934781052400619"
+	"419720059165214786719369625433786498160383314635420170062881"
+	"794717751811521767435201651117234772772707522005617774821892"
+	"859715834674454133710735842775791966056258388382326217896169"
+	"178722611886563276493428877240585975487775986923553065392993"
+	"790119361166900747235474636076460187244203137994413982436682"
+	"869879021292299617419272862589172005761250934910048254596415"
+	"204647792511444650073216410909934525979945569009557678868639"
+	"748706194885474902486360792185783420579379718883477965627347"
+	"911238858570642483637907235541028678701852740165393421988836"
+	"106194967196105506868696146801903562974942408658719504100440"
+	"491526647627276107051156838706340126413651723721140991645879"
+	"634762494921590453393721093752046579830017540801753886231271"
+	"904236103712933889658602815004659607887244436556448054568903"
+	"357595570298839671974452821298414257848395400508426432773084"
+	"098542002140906948541232080526852009414679887611041458317039"
+	"047398248889922809181821393428829567971736994315246044702729"
+	"0669964066815",
+	false,
+	0xf.fffffp+124, true,
+	INF, true,
+	0xf.fffffp+124, true,
+	INF, true,
+	false,
+	0xf.ffffffffffff8p+1020, true,
+	INF, true,
+	0xf.ffffffffffff8p+1020, true,
+	INF, true,
+	false,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	false,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	0xf.fffffffffffffffp+16380, false,
+	INF, true,
+	false,
+	0xf.fffffffffffffffffffffffffcp+1020, true,
+	INF, true,
+	0xf.fffffffffffffffffffffffffcp+1020, true,
+	INF, true,
+	false,
+	0xf.fffffffffffffffffffffffffff8p+16380, false,
+	INF, true,
+	0xf.fffffffffffffffffffffffffff8p+16380, false,
+	INF, true),
+  TEST ("-340282366920938463463374607431768211455",
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffp+124, false,
+	-0xf.fffffp+124, false,
+	false,
+	-0x1p+128, false,
+	-0x1p+128, false,
+	-0xf.ffffffffffff8p+124, false,
+	-0xf.ffffffffffff8p+124, false,
+	false,
+	-0x1p+128, false,
+	-0x1p+128, false,
+	-0xf.fffffffffffffffp+124, false,
+	-0xf.fffffffffffffffp+124, false,
+	false,
+	-0x1p+128, false,
+	-0x1p+128, false,
+	-0xf.fffffffffffffffp+124, false,
+	-0xf.fffffffffffffffp+124, false,
+	false,
+	-0x1p+128, false,
+	-0x1p+128, false,
+	-0xf.fffffffffffffffffffffffffcp+124, false,
+	-0xf.fffffffffffffffffffffffffcp+124, false,
+	false,
+	-0x1p+128, false,
+	-0x1p+128, false,
+	-0xf.fffffffffffffffffffffffffff8p+124, false,
+	-0xf.fffffffffffffffffffffffffff8p+124, false),
+  TEST ("-17976931348623159077293051907890247336179769789423065727343"
+	"008115773267580550096313270847732240753602112011387987139335"
+	"765878976881441662249284743063947412437776789342486548527630"
+	"221960124609411945308295208500576883815068234246288147391311"
+	"054082723716335051068458629823994724593847971630483535632962"
+	"4224137215",
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffp+124, true,
+	-0xf.fffffp+124, true,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.ffffffffffff8p+1020, false,
+	-0xf.ffffffffffff8p+1020, false,
+	false,
+	-0x1p+1024, false,
+	-0x1p+1024, false,
+	-0xf.fffffffffffffffp+1020, false,
+	-0xf.fffffffffffffffp+1020, false,
+	false,
+	-0x1p+1024, false,
+	-0x1p+1024, false,
+	-0xf.fffffffffffffffp+1020, false,
+	-0xf.fffffffffffffffp+1020, false,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffffffffffffcp+1020, true,
+	-0xf.fffffffffffffffffffffffffcp+1020, true,
+	false,
+	-0x1p+1024, false,
+	-0x1p+1024, false,
+	-0xf.fffffffffffffffffffffffffff8p+1020, false,
+	-0xf.fffffffffffffffffffffffffff8p+1020, false),
+  TEST ("-11897314953572317650857593266280071307634446870965102374726"
+	"748212332613581804836869044885954726120399151154374848393092"
+	"588976673813086874262745246983415650060808716343660048975221"
+	"432516195314468459523457094821358470366474648309847847142809"
+	"678456141384760443384048861229052868553132361586959998857901"
+	"063570181208153633207809643237127571642906134068752024173653"
+	"239502678800890675173722706108356475457557807934316222134519"
+	"038178596306903113438506575393606496451932831782917676589654"
+	"052851135561343697932817258880159084146752898325380634192348"
+	"885998989806231140251216744720518724393213231984029427053413"
+	"669512747390145938168982889944451734003646179283771380744113"
+	"457918485735950771704376441917438896448853776847383222406082"
+	"390790613994756753347397840164917426214852290148476723359778"
+	"971583973342263497348114416530777582509889260308947896046761"
+	"531042572601418068230275880034419514553277015980712815895971"
+	"694139656084395049831712550622820266262000480421498082000020"
+	"609934336812376238578806274797270728774828384387050480341646"
+	"333370133854059980407019086623873016050181882625737237662792"
+	"407989317177088079017402654079309764196488778696040175176919"
+	"386879880880089442512588269696883641941339457801578443649460"
+	"527136554549063271874285318951002786951193234968087036304361"
+	"939275926923448208128342973644786868620641690424585551365320"
+	"550505081898918668468637999176475472913715735007010151975590"
+	"974530400330315206835182164941956366960777481105982849013436"
+	"114692142741218104950779792755566451649838500620510665170846"
+	"473694640366405693394648371721833529568739120426400036116187"
+	"892781957100520945627613067035518403301106451019954351676266"
+	"886696277638206043424803579064153542127329467560730069070888"
+	"704961250500681566592527612976640654983474926617988240623122"
+	"104092745845655872648464176501601231758740347262619572890814"
+	"661976515538307444247096986347536277703562271261450525491252"
+	"294480401491147956813598759685128085752442718714554540848949"
+	"861550207948069809392156580553191656416811059664541599514769"
+	"085831297215032988165851420730614808880217698183384171293968"
+	"783714595758460525831429284472497036985481252957759209364500"
+	"226514272499495807082039660828475509218911521333210480119738"
+	"836365778255333259888521563254393350213153121340813904510212"
+	"553637079034959169631259242011678771901089352559145394882168"
+	"971179432693736086390744727927511167151271063964250813535531"
+	"372135528905398026029786453197951009764329390919246602288789"
+	"129006542101182872982987073821597171845695405154030291733072"
+	"924543917895686742196407614511736006177521869919133668370338"
+	"872015820716258682471331045133150972747134427283406066428904"
+	"064966361044432177528112274700291628580937277010496464995402"
+	"209839819327866132042542264642436896101074299231976386815458"
+	"375617735355689845360536272344242771057609248640237816296655"
+	"263149109069604880734752170051211363118704399257625086660325"
+	"662137504166957199196742232106067247213734712340216135407121"
+	"882399097019719439443474803142179038863177677799215398921773"
+	"343443689075503188008335468523443703270892841475016405894484"
+	"820012542373866800744573419109337748919596810165160691061499"
+	"055724258108955869388330674902049003686241663019685530056870"
+	"402850954504848400735286438265704037671572865123802551099545"
+	"188570134765881893000041388497158831398660715475748164767276"
+	"351164354628044011127113925291805707941934226868183532127990"
+	"689722476971914742681579121959737941928072988869523611008802"
+	"642588013209280400119281539708011307413395500032990159249782"
+	"599369743587262861439805201124543692711140837479190078034065"
+	"963213534170040688694434054721406759636409974050092258035056"
+	"727264650955062673392688924243645618976619068984241867704910"
+	"353440803992483270979117128811401703841820586016147582842007"
+	"501835003293584996918640665905396607090695373816018876790466"
+	"577596545880019371177713446983264287926228943380161124455335"
+	"394470874620497634091475420992488155213959293880077111720178"
+	"948977937066042734809851610288154587879111609791134224335575"
+	"491709054420263972756952832073053318454199907493478105240061"
+	"941972005916521478671936962543378649816038331463542017006288"
+	"179471775181152176743520165111723477277270752200561777482189"
+	"285971583467445413371073584277579196605625838838232621789616"
+	"917872261188656327649342887724058597548777598692355306539299"
+	"379011936116690074723547463607646018724420313799441398243668"
+	"286987902129229961741927286258917200576125093491004825459641"
+	"520464779251144465007321641090993452597994556900955767886863"
+	"974870619488547490248636079218578342057937971888347796562734"
+	"791123885857064248363790723554102867870185274016539342198883"
+	"610619496719610550686869614680190356297494240865871950410044"
+	"049152664762727610705115683870634012641365172372114099164587"
+	"963476249492159045339372109375204657983001754080175388623127"
+	"190423610371293388965860281500465960788724443655644805456890"
+	"335759557029883967197445282129841425784839540050842643277308"
+	"409854200214090694854123208052685200941467988761104145831703"
+	"904739824888992280918182139342882956797173699431524604470272"
+	"90669964066815",
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffp+124, true,
+	-0xf.fffffp+124, true,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.ffffffffffff8p+1020, true,
+	-0xf.ffffffffffff8p+1020, true,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffp+16380, false,
+	-0xf.fffffffffffffffp+16380, false,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffp+16380, false,
+	-0xf.fffffffffffffffp+16380, false,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffffffffffffcp+1020, true,
+	-0xf.fffffffffffffffffffffffffcp+1020, true,
+	false,
+	-INF, true,
+	-INF, true,
+	-0xf.fffffffffffffffffffffffffff8p+16380, false,
+	-0xf.fffffffffffffffffffffffffff8p+16380, false),
+  TEST ("+0x.80000000000000000000000000000001p1025",
+	false,
+	0xf.fffffp+124, true,
+	INF, true,
+	0xf.fffffp+124, true,
+	INF, true,
+	false,
+	0xf.ffffffffffff8p+1020, true,
+	INF, true,
+	0xf.ffffffffffff8p+1020, true,
+	INF, true,
+	false,
+	0x1p+1024, false,
+	0x1p+1024, false,
+	0x1p+1024, false,
+	0x1.0000000000000002p+1024, false,
+	false,
+	0x1p+1024, false,
+	0x1p+1024, false,
+	0x1p+1024, false,
+	0x1.0000000000000002p+1024, false,
+	false,
+	0xf.fffffffffffffffffffffffffcp+1020, true,
+	INF, true,
+	0xf.fffffffffffffffffffffffffcp+1020, true,
+	INF, true,
+	false,
+	0x1p+1024, false,
+	0x1p+1024, false,
+	0x1p+1024, false,
+	0x1.0000000000000000000000000001p+1024, false),
 };
diff --git a/stdlib/tst-strtod-round-skeleton.c b/stdlib/tst-strtod-round-skeleton.c
index 1b4966280d..95bf1aca36 100644
--- a/stdlib/tst-strtod-round-skeleton.c
+++ b/stdlib/tst-strtod-round-skeleton.c
@@ -121,7 +121,8 @@
 #define ENTRY(...) \
   GEN_TEST_STRTOD_FOREACH (_ENTRY, __VA_ARGS__)
 
-/* Selector for boolean exact tag of expected results.  */
+/* Selector for boolean exact tag of expected results and that for
+   overflow.  */
 #define _XNTRY(FSUF, FTYPE, FTOSTR, LSUF, CSUF, ...)  \
   CHOOSE_ ## FSUF (__VA_ARGS__),
 #define XNTRY(...) \
@@ -136,22 +137,32 @@
 /* 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)	\
-  {							\
-    L_ (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) }	\
-    }							\
+#define TEST(s,							\
+	     fx, fd, fdo, fn, fno, fz, fzo, fu, fuo,		\
+	     dx, dd, ddo, dn, dno, dz, dzo, du, duo,		\
+	     ld64ix, ld64id, ld64ido, ld64in, ld64ino,		\
+	     ld64iz, ld64izo, ld64iu, ld64iuo,			\
+	     ld64mx, ld64md, ld64mdo, ld64mn, ld64mno,		\
+	     ld64mz, ld64mzo, ld64mu, ld64muo,			\
+	     ld106x, ld106d, ld106do, ld106n, ld106no,		\
+	     ld106z, ld106zo, ld106u, ld106uo,			\
+	     ld113x, ld113d, ld113do, ld113n, ld113no,		\
+	     ld113z, ld113zo, ld113u, ld113uo)			\
+  {								\
+    L_ (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) }		\
+    },								\
+    {								\
+    { XNTRY (fno, dno, ld64ino, ld64mno, ld106no, ld113no) },	\
+    { XNTRY (fdo, ddo, ld64ido, ld64mdo, ld106do, ld113do) },	\
+    { XNTRY (fzo, dzo, ld64izo, ld64mzo, ld106zo, ld113zo) },	\
+    { XNTRY (fuo, duo, ld64iuo, ld64muo, ld106uo, ld113uo) }	\
+    }								\
   }
 
 struct test_exactness
@@ -164,10 +175,16 @@ struct test_results
   STRUCT_FOREACH_FLOAT_FTYPE
   };
 
+struct test_overflow
+  {
+  STRUCT_FOREACH_FLOAT_BOOL
+  };
+
 struct test {
   const CHAR *s;
   struct test_exactness exact;
   struct test_results r[4];
+  struct test_overflow o[4];
 };
 
 /* Include the generated test data.  */
@@ -181,9 +198,13 @@ struct test {
 # define FE_INEXACT 0
 #endif
 
+#ifndef FE_OVERFLOW
+# define FE_OVERFLOW 0
+#endif
+
 #define GEN_ONE_TEST(FSUF, FTYPE, FTOSTR, LSUF, CSUF)		\
 {								\
-  feclearexcept (FE_INEXACT);					\
+  feclearexcept (FE_ALL_EXCEPT);				\
   FTYPE f = STRTO (FSUF) (s, NULL);				\
   if (f != expected->FSUF					\
       || (copysign ## CSUF) (1.0 ## LSUF, f)			\
@@ -200,25 +221,47 @@ struct test {
       else							\
 	printf ("ignoring this inexact result\n");		\
     }								\
-  else if (FE_INEXACT != 0)					\
+  else								\
     {								\
-      bool inexact_raised = fetestexcept (FE_INEXACT) != 0;	\
-      if (inexact_raised != !exact->FSUF)			\
+      if (FE_INEXACT != 0)					\
+	{							\
+	  bool inexact_raised = fetestexcept (FE_INEXACT) != 0;	\
+	  if (inexact_raised != !exact->FSUF)			\
+	    {							\
+	      printf (FNPFXS "to" #FSUF				\
+		      " (" STRM ") inexact %d "			\
+		      "not %d\n", s, inexact_raised,		\
+		      !exact->FSUF);				\
+	      if (EXCEPTION_TESTS (FTYPE))			\
+		result = 1;					\
+	      else						\
+		printf ("ignoring this exception error\n");	\
+	    }							\
+	}							\
+      if (FE_OVERFLOW != 0)					\
 	{							\
-	  printf (FNPFXS "to" #FSUF  " (" STRM ") inexact %d "	\
-		  "not %d\n", s, inexact_raised, !exact->FSUF);	\
-	  if (EXCEPTION_TESTS (FTYPE))				\
-	    result = 1;						\
-	  else							\
-	    printf ("ignoring this exception error\n");		\
+	  bool overflow_raised					\
+	    = fetestexcept (FE_OVERFLOW) != 0;			\
+	  if (overflow_raised != overflow->FSUF)		\
+	    {							\
+	      printf (FNPFXS "to" #FSUF				\
+		      " (" STRM ") overflow %d "		\
+		      "not %d\n", s, overflow_raised,		\
+		      overflow->FSUF);				\
+	      if (EXCEPTION_TESTS (FTYPE))			\
+		result = 1;					\
+	      else						\
+		printf ("ignoring this exception error\n");	\
+	    }							\
 	}							\
     }								\
 }
 
 static int
 test_in_one_mode (const CHAR *s, const struct test_results *expected,
-		  const struct test_exactness *exact, const char *mode_name,
-		  int rnd_mode)
+		    const struct test_exactness *exact,
+		    const struct test_overflow *overflow,
+		    const char *mode_name, int rnd_mode)
 {
   int result = 0;
   GEN_TEST_STRTOD_FOREACH (GEN_ONE_TEST)
@@ -252,14 +295,15 @@ do_test (void)
   for (size_t i = 0; i < sizeof (tests) / sizeof (tests[0]); i++)
     {
       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);
+				  &tests[i].exact, &tests[i].o[modes[0].rnd_i],
+				  modes[0].mode_name, modes[0].rnd_mode);
       for (const struct fetestmodes *m = &modes[1]; m->mode_name != NULL; m++)
 	{
 	  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,
+					  &tests[i].exact,
+					  &tests[i].o[m->rnd_i], m->mode_name,
 					  m->rnd_mode);
 	      fesetround (save_round_mode);
 	    }