Add updated .hgeol file and fix newlines in the 3.1 branch.
diff --git a/Lib/test/decimaltestdata/ddCanonical.decTest b/Lib/test/decimaltestdata/ddCanonical.decTest
index 824de83..b4f9e32 100644
--- a/Lib/test/decimaltestdata/ddCanonical.decTest
+++ b/Lib/test/decimaltestdata/ddCanonical.decTest
@@ -1,357 +1,357 @@
-------------------------------------------------------------------------

--- ddCanonical.decTest -- test decDouble canonical results            --

--- Copyright (c) IBM Corporation, 1981, 2008.  All rights reserved.   --

-------------------------------------------------------------------------

--- Please see the document "General Decimal Arithmetic Testcases"     --

--- at http://www2.hursley.ibm.com/decimal for the description of      --

--- these testcases.                                                   --

---                                                                    --

--- These testcases are experimental ('beta' versions), and they       --

--- may contain errors.  They are offered on an as-is basis.  In       --

--- particular, achieving the same results as the tests here is not    --

--- a guarantee that an implementation complies with any Standard      --

--- or specification.  The tests are not exhaustive.                   --

---                                                                    --

--- Please send comments, suggestions, and corrections to the author:  --

---   Mike Cowlishaw, IBM Fellow                                       --

---   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --

---   mfc@uk.ibm.com                                                   --

-------------------------------------------------------------------------

-version: 2.59

-

--- This file tests that copy operations leave uncanonical operands

--- unchanged, and vice versa

--- All operands and results are decDoubles.

-precision:   16

-maxExponent: 384

-minExponent: -383

-extended:    1

-clamp:       1

-rounding:    half_even

-

--- Uncanonical declets are: abc, where:

---   a=1,2,3

---   b=6,7,e,f

---   c=e,f

-

--- assert some standard (canonical) values; this tests that FromString

--- produces canonical results (many more in decimalNN)

-ddcan001 apply 9.999999999999999E+384 -> #77fcff3fcff3fcff

-ddcan002 apply 0                      -> #2238000000000000

-ddcan003 apply 1                      -> #2238000000000001

-ddcan004 apply -1                     -> #a238000000000001

-ddcan005 apply Infinity               -> #7800000000000000

-ddcan006 apply -Infinity              -> #f800000000000000

-ddcan007 apply -NaN                   -> #fc00000000000000

-ddcan008 apply -sNaN                  -> #fe00000000000000

-ddcan009 apply NaN999999999999999     -> #7c00ff3fcff3fcff

-ddcan010 apply sNaN999999999999999    -> #7e00ff3fcff3fcff

-decan011 apply  9999999999999999      -> #6e38ff3fcff3fcff

-ddcan012 apply 7.50                   -> #22300000000003d0

-ddcan013 apply 9.99                   -> #22300000000000ff

-

--- Base tests for canonical encodings (individual operator

--- propagation is tested later)

-

--- Finites: declets in coefficient

-ddcan021 canonical  #77fcff3fcff3fcff  -> #77fcff3fcff3fcff

-ddcan022 canonical  #77fcff3fcff3fcff  -> #77fcff3fcff3fcff

-ddcan023 canonical  #77ffff3fcff3fcff  -> #77fcff3fcff3fcff

-ddcan024 canonical  #77ffff3fcff3fcff  -> #77fcff3fcff3fcff

-ddcan025 canonical  #77fcffffcff3fcff  -> #77fcff3fcff3fcff

-ddcan026 canonical  #77fcffffcff3fcff  -> #77fcff3fcff3fcff

-ddcan027 canonical  #77fcff3ffff3fcff  -> #77fcff3fcff3fcff

-ddcan028 canonical  #77fcff3ffff3fcff  -> #77fcff3fcff3fcff

-ddcan030 canonical  #77fcff3fcffffcff  -> #77fcff3fcff3fcff

-ddcan031 canonical  #77fcff3fcffffcff  -> #77fcff3fcff3fcff

-ddcan032 canonical  #77fcff3fcff3ffff  -> #77fcff3fcff3fcff

-ddcan033 canonical  #77fcff3fcff3ffff  -> #77fcff3fcff3fcff

-ddcan035 canonical  #77fcff3fdff3fcff  -> #77fcff3fcff3fcff

-ddcan036 canonical  #77fcff3feff3fcff  -> #77fcff3fcff3fcff

-

--- NaN: declets in payload

-ddcan100 canonical  NaN999999999999999 -> #7c00ff3fcff3fcff

-ddcan101 canonical  #7c00ff3fcff3fcff  -> #7c00ff3fcff3fcff

-ddcan102 canonical  #7c03ff3fcff3fcff  -> #7c00ff3fcff3fcff

-ddcan103 canonical  #7c00ffffcff3fcff  -> #7c00ff3fcff3fcff

-ddcan104 canonical  #7c00ff3ffff3fcff  -> #7c00ff3fcff3fcff

-ddcan105 canonical  #7c00ff3fcffffcff  -> #7c00ff3fcff3fcff

-ddcan106 canonical  #7c00ff3fcff3ffff  -> #7c00ff3fcff3fcff

-ddcan107 canonical  #7c00ff3fcff3ffff  -> #7c00ff3fcff3fcff

--- NaN: exponent continuation bits [excluding sNaN selector]

-ddcan110 canonical  #7c00ff3fcff3fcff  -> #7c00ff3fcff3fcff

-ddcan112 canonical  #7d00ff3fcff3fcff  -> #7c00ff3fcff3fcff

-ddcan113 canonical  #7c80ff3fcff3fcff  -> #7c00ff3fcff3fcff

-ddcan114 canonical  #7c40ff3fcff3fcff  -> #7c00ff3fcff3fcff

-ddcan115 canonical  #7c20ff3fcff3fcff  -> #7c00ff3fcff3fcff

-ddcan116 canonical  #7c10ff3fcff3fcff  -> #7c00ff3fcff3fcff

-ddcan117 canonical  #7c08ff3fcff3fcff  -> #7c00ff3fcff3fcff

-ddcan118 canonical  #7c04ff3fcff3fcff  -> #7c00ff3fcff3fcff

-

--- sNaN: declets in payload

-ddcan120 canonical sNaN999999999999999 -> #7e00ff3fcff3fcff

-ddcan121 canonical  #7e00ff3fcff3fcff  -> #7e00ff3fcff3fcff

-ddcan122 canonical  #7e03ff3fcff3fcff  -> #7e00ff3fcff3fcff

-ddcan123 canonical  #7e00ffffcff3fcff  -> #7e00ff3fcff3fcff

-ddcan124 canonical  #7e00ff3ffff3fcff  -> #7e00ff3fcff3fcff

-ddcan125 canonical  #7e00ff3fcffffcff  -> #7e00ff3fcff3fcff

-ddcan126 canonical  #7e00ff3fcff3ffff  -> #7e00ff3fcff3fcff

-ddcan127 canonical  #7e00ff3fcff3ffff  -> #7e00ff3fcff3fcff

--- sNaN: exponent continuation bits [excluding sNaN selector]

-ddcan130 canonical  #7e00ff3fcff3fcff  -> #7e00ff3fcff3fcff

-ddcan132 canonical  #7f00ff3fcff3fcff  -> #7e00ff3fcff3fcff

-ddcan133 canonical  #7e80ff3fcff3fcff  -> #7e00ff3fcff3fcff

-ddcan134 canonical  #7e40ff3fcff3fcff  -> #7e00ff3fcff3fcff

-ddcan135 canonical  #7e20ff3fcff3fcff  -> #7e00ff3fcff3fcff

-ddcan136 canonical  #7e10ff3fcff3fcff  -> #7e00ff3fcff3fcff

-ddcan137 canonical  #7e08ff3fcff3fcff  -> #7e00ff3fcff3fcff

-ddcan138 canonical  #7e04ff3fcff3fcff  -> #7e00ff3fcff3fcff

-

--- Inf: exponent continuation bits

-ddcan140 canonical  #7800000000000000  -> #7800000000000000

-ddcan141 canonical  #7900000000000000  -> #7800000000000000

-ddcan142 canonical  #7a00000000000000  -> #7800000000000000

-ddcan143 canonical  #7880000000000000  -> #7800000000000000

-ddcan144 canonical  #7840000000000000  -> #7800000000000000

-ddcan145 canonical  #7820000000000000  -> #7800000000000000

-ddcan146 canonical  #7810000000000000  -> #7800000000000000

-ddcan147 canonical  #7808000000000000  -> #7800000000000000

-ddcan148 canonical  #7804000000000000  -> #7800000000000000

-

--- Inf: coefficient continuation bits (first, last, and a few others)

-ddcan150 canonical  #7800000000000000  -> #7800000000000000

-ddcan151 canonical  #7802000000000000  -> #7800000000000000

-ddcan152 canonical  #7800000000000001  -> #7800000000000000

-ddcan153 canonical  #7801000000000000  -> #7800000000000000

-ddcan154 canonical  #7800200000000000  -> #7800000000000000

-ddcan155 canonical  #7800080000000000  -> #7800000000000000

-ddcan156 canonical  #7800002000000000  -> #7800000000000000

-ddcan157 canonical  #7800000400000000  -> #7800000000000000

-ddcan158 canonical  #7800000040000000  -> #7800000000000000

-ddcan159 canonical  #7800000008000000  -> #7800000000000000

-ddcan160 canonical  #7800000000400000  -> #7800000000000000

-ddcan161 canonical  #7800000000020000  -> #7800000000000000

-ddcan162 canonical  #7800000000008000  -> #7800000000000000

-ddcan163 canonical  #7800000000000200  -> #7800000000000000

-ddcan164 canonical  #7800000000000040  -> #7800000000000000

-ddcan165 canonical  #7800000000000008  -> #7800000000000000

-

-

--- Now the operators -- trying to check paths that might fail to

--- canonicalize propagated operands

-

------ Add:

--- Finites: neutral 0

-ddcan202 add  0E+384 #77ffff3fcff3fcff        -> #77fcff3fcff3fcff

-ddcan203 add         #77fcffffcff3fcff 0E+384 -> #77fcff3fcff3fcff

--- tiny zero

-ddcan204 add  0E-398 #77ffff3fcff3fcff        -> #77fcff3fcff3fcff Rounded

-ddcan205 add         #77fcffffcff3fcff 0E-398 -> #77fcff3fcff3fcff Rounded

--- tiny non zero

-ddcan206 add -1E-398 #77ffff3fcff3fcff         -> #77fcff3fcff3fcff Inexact Rounded

-ddcan207 add         #77ffff3fcff3fcff -1E-398 -> #77fcff3fcff3fcff Inexact Rounded

--- NaN: declets in payload

-ddcan211 add  0  #7c03ff3fcff3fcff      -> #7c00ff3fcff3fcff

-ddcan212 add     #7c03ff3fcff3fcff  0   -> #7c00ff3fcff3fcff

--- NaN: exponent continuation bits [excluding sNaN selector]

-ddcan213 add  0  #7c40ff3fcff3fcff      -> #7c00ff3fcff3fcff

-ddcan214 add     #7c40ff3fcff3fcff  0   -> #7c00ff3fcff3fcff

--- sNaN: declets in payload

-ddcan215 add  0  #7e00ffffcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation

-ddcan216 add     #7e00ffffcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation

--- sNaN: exponent continuation bits [excluding sNaN selector]

-ddcan217 add  0  #7e80ff3fcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation

-ddcan218 add     #7e80ff3fcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation

--- Inf: exponent continuation bits

-ddcan220 add  0  #7880000000000000      -> #7800000000000000

-ddcan221 add     #7880000000000000  0   -> #7800000000000000

--- Inf: coefficient continuation bits

-ddcan222 add  0  #7802000000000000     -> #7800000000000000

-ddcan223 add     #7802000000000000  0  -> #7800000000000000

-ddcan224 add  0  #7800000000000001     -> #7800000000000000

-ddcan225 add     #7800000000000001  0  -> #7800000000000000

-ddcan226 add  0  #7800002000000000     -> #7800000000000000

-ddcan227 add     #7800002000000000  0  -> #7800000000000000

-

------ Class: [does not return encoded]

-

------ Compare:

-ddcan231 compare -Inf   1     ->  #a238000000000001

-ddcan232 compare -Inf  -Inf   ->  #2238000000000000

-ddcan233 compare  1    -Inf   ->  #2238000000000001

-ddcan234 compare  #7c00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff

-ddcan235 compare  #7e00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff  Invalid_operation

-

------ CompareSig:

-ddcan241 comparesig -Inf   1     ->  #a238000000000001

-ddcan242 comparesig -Inf  -Inf   ->  #2238000000000000

-ddcan243 comparesig  1    -Inf   ->  #2238000000000001

-ddcan244 comparesig  #7c00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff  Invalid_operation

-ddcan245 comparesig  #7e00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff  Invalid_operation

-

------ Copy: [does not usually canonicalize]

--- finites

-ddcan250 copy  #77ffff3fcff3fcff  -> #77ffff3fcff3fcff

-ddcan251 copy  #77fcff3fdff3fcff  -> #77fcff3fdff3fcff

--- NaNs

-ddcan252 copy  #7c03ff3fcff3fcff  -> #7c03ff3fcff3fcff

-ddcan253 copy  #7c00ff3fcff3ffff  -> #7c00ff3fcff3ffff

-ddcan254 copy  #7d00ff3fcff3fcff  -> #7d00ff3fcff3fcff

-ddcan255 copy  #7c04ff3fcff3fcff  -> #7c04ff3fcff3fcff

--- sNaN

-ddcan256 copy  #7e00ff3fcffffcff  -> #7e00ff3fcffffcff

-ddcan257 copy  #7e40ff3fcff3fcff  -> #7e40ff3fcff3fcff

--- Inf

-ddcan258 copy  #7a00000000000000  -> #7a00000000000000

-ddcan259 copy  #7800200000000000  -> #7800200000000000

-

------ CopyAbs: [does not usually canonicalize]

--- finites

-ddcan260 copyabs  #f7ffff3fcff3fcff  -> #77ffff3fcff3fcff

-ddcan261 copyabs  #f7fcff3fdff3fcff  -> #77fcff3fdff3fcff

--- NaNs

-ddcan262 copyabs  #fc03ff3fcff3fcff  -> #7c03ff3fcff3fcff

-ddcan263 copyabs  #fc00ff3fcff3ffff  -> #7c00ff3fcff3ffff

-ddcan264 copyabs  #fd00ff3fcff3fcff  -> #7d00ff3fcff3fcff

-ddcan265 copyabs  #fc04ff3fcff3fcff  -> #7c04ff3fcff3fcff

--- sNaN

-ddcan266 copyabs  #fe00ff3fcffffcff  -> #7e00ff3fcffffcff

-ddcan267 copyabs  #fe40ff3fcff3fcff  -> #7e40ff3fcff3fcff

--- Inf

-ddcan268 copyabs  #fa00000000000000  -> #7a00000000000000

-ddcan269 copyabs  #f800200000000000  -> #7800200000000000

-

------ CopyNegate: [does not usually canonicalize]

--- finites

-ddcan270 copynegate  #77ffff3fcff3fcff  -> #f7ffff3fcff3fcff

-ddcan271 copynegate  #77fcff3fdff3fcff  -> #f7fcff3fdff3fcff

--- NaNs

-ddcan272 copynegate  #7c03ff3fcff3fcff  -> #fc03ff3fcff3fcff

-ddcan273 copynegate  #7c00ff3fcff3ffff  -> #fc00ff3fcff3ffff

-ddcan274 copynegate  #7d00ff3fcff3fcff  -> #fd00ff3fcff3fcff

-ddcan275 copynegate  #7c04ff3fcff3fcff  -> #fc04ff3fcff3fcff

--- sNaN

-ddcan276 copynegate  #7e00ff3fcffffcff  -> #fe00ff3fcffffcff

-ddcan277 copynegate  #7e40ff3fcff3fcff  -> #fe40ff3fcff3fcff

--- Inf

-ddcan278 copynegate  #7a00000000000000  -> #fa00000000000000

-ddcan279 copynegate  #7800200000000000  -> #f800200000000000

-

------ CopySign: [does not usually canonicalize]

--- finites

-ddcan280 copysign  #77ffff3fcff3fcff -1 -> #f7ffff3fcff3fcff

-ddcan281 copysign  #77fcff3fdff3fcff  1 -> #77fcff3fdff3fcff

--- NaNs

-ddcan282 copysign  #7c03ff3fcff3fcff -1 -> #fc03ff3fcff3fcff

-ddcan283 copysign  #7c00ff3fcff3ffff  1 -> #7c00ff3fcff3ffff

-ddcan284 copysign  #7d00ff3fcff3fcff -1 -> #fd00ff3fcff3fcff

-ddcan285 copysign  #7c04ff3fcff3fcff  1 -> #7c04ff3fcff3fcff

--- sNaN

-ddcan286 copysign  #7e00ff3fcffffcff -1 -> #fe00ff3fcffffcff

-ddcan287 copysign  #7e40ff3fcff3fcff  1 -> #7e40ff3fcff3fcff

--- Inf

-ddcan288 copysign  #7a00000000000000 -1 -> #fa00000000000000

-ddcan289 copysign  #7800200000000000  1 -> #7800200000000000

-

------ Multiply:

--- Finites: neutral 0

-ddcan302 multiply  1      #77ffff3fcff3fcff        -> #77fcff3fcff3fcff

-ddcan303 multiply         #77fcffffcff3fcff  1     -> #77fcff3fcff3fcff

--- negative

-ddcan306 multiply -1      #77ffff3fcff3fcff        -> #f7fcff3fcff3fcff

-ddcan307 multiply         #77fcffffcff3fcff -1     -> #f7fcff3fcff3fcff

--- NaN: declets in payload

-ddcan311 multiply  1  #7c03ff3fcff3fcff      -> #7c00ff3fcff3fcff

-ddcan312 multiply     #7c03ff3fcff3fcff  1   -> #7c00ff3fcff3fcff

--- NaN: exponent continuation bits [excluding sNaN selector]

-ddcan313 multiply  1  #7c40ff3fcff3fcff      -> #7c00ff3fcff3fcff

-ddcan314 multiply     #7c40ff3fcff3fcff  1   -> #7c00ff3fcff3fcff

--- sNaN: declets in payload

-ddcan315 multiply  1  #7e00ffffcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation

-ddcan316 multiply     #7e00ffffcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation

--- sNaN: exponent continuation bits [excluding sNaN selector]

-ddcan317 multiply  1  #7e80ff3fcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation

-ddcan318 multiply     #7e80ff3fcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation

--- Inf: exponent continuation bits

-ddcan320 multiply  1  #7880000000000000      -> #7800000000000000

-ddcan321 multiply     #7880000000000000  1   -> #7800000000000000

--- Inf: coefficient continuation bits

-ddcan322 multiply  1  #7802000000000000     -> #7800000000000000

-ddcan323 multiply     #7802000000000000  1  -> #7800000000000000

-ddcan324 multiply  1  #7800000000000001     -> #7800000000000000

-ddcan325 multiply     #7800000000000001  1  -> #7800000000000000

-ddcan326 multiply  1  #7800002000000000     -> #7800000000000000

-ddcan327 multiply     #7800002000000000  1  -> #7800000000000000

-

------ Quantize:

-ddcan401 quantize  #6e38ff3ffff3fcff 1    -> #6e38ff3fcff3fcff

-ddcan402 quantize  #6e38ff3fcff3fdff 0    -> #6e38ff3fcff3fcff

-ddcan403 quantize  #7880000000000000 Inf  -> #7800000000000000

-ddcan404 quantize  #7802000000000000 -Inf -> #7800000000000000

-ddcan410 quantize  #7c03ff3fcff3fcff  1   -> #7c00ff3fcff3fcff

-ddcan411 quantize  #7c03ff3fcff3fcff  1   -> #7c00ff3fcff3fcff

-ddcan412 quantize  #7c40ff3fcff3fcff  1   -> #7c00ff3fcff3fcff

-ddcan413 quantize  #7c40ff3fcff3fcff  1   -> #7c00ff3fcff3fcff

-ddcan414 quantize  #7e00ffffcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation

-ddcan415 quantize  #7e00ffffcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation

-ddcan416 quantize  #7e80ff3fcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation

-ddcan417 quantize  #7e80ff3fcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation

-

------ Subtract:

--- Finites: neutral 0

-ddcan502 subtract  0E+384 #77ffff3fcff3fcff        -> #f7fcff3fcff3fcff

-ddcan503 subtract         #77fcffffcff3fcff 0E+384 -> #77fcff3fcff3fcff

--- tiny zero

-ddcan504 subtract  0E-398 #77ffff3fcff3fcff        -> #f7fcff3fcff3fcff Rounded

-ddcan505 subtract         #77fcffffcff3fcff 0E-398 -> #77fcff3fcff3fcff Rounded

--- tiny non zero

-ddcan506 subtract -1E-398 #77ffff3fcff3fcff         -> #f7fcff3fcff3fcff Inexact Rounded

-ddcan507 subtract         #77ffff3fcff3fcff -1E-398 -> #77fcff3fcff3fcff Inexact Rounded

--- NaN: declets in payload

-ddcan511 subtract  0  #7c03ff3fcff3fcff      -> #7c00ff3fcff3fcff

-ddcan512 subtract     #7c03ff3fcff3fcff  0   -> #7c00ff3fcff3fcff

--- NaN: exponent continuation bits [excluding sNaN selector]

-ddcan513 subtract  0  #7c40ff3fcff3fcff      -> #7c00ff3fcff3fcff

-ddcan514 subtract     #7c40ff3fcff3fcff  0   -> #7c00ff3fcff3fcff

--- sNaN: declets in payload

-ddcan515 subtract  0  #7e00ffffcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation

-ddcan516 subtract     #7e00ffffcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation

--- sNaN: exponent continuation bits [excluding sNaN selector]

-ddcan517 subtract  0  #7e80ff3fcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation

-ddcan518 subtract     #7e80ff3fcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation

--- Inf: exponent continuation bits

-ddcan520 subtract  0  #7880000000000000      -> #f800000000000000

-ddcan521 subtract     #7880000000000000  0   -> #7800000000000000

--- Inf: coefficient continuation bits

-ddcan522 subtract  0  #7802000000000000     -> #f800000000000000

-ddcan523 subtract     #7802000000000000  0  -> #7800000000000000

-ddcan524 subtract  0  #7800000000000001     -> #f800000000000000

-ddcan525 subtract     #7800000000000001  0  -> #7800000000000000

-ddcan526 subtract  0  #7800002000000000     -> #f800000000000000

-ddcan527 subtract     #7800002000000000  0  -> #7800000000000000

-

------ ToIntegral:

-ddcan601 tointegralx  #6e38ff3ffff3fcff -> #6e38ff3fcff3fcff

-ddcan602 tointegralx  #6e38ff3fcff3fdff -> #6e38ff3fcff3fcff

-ddcan603 tointegralx  #7880000000000000 -> #7800000000000000

-ddcan604 tointegralx  #7802000000000000 -> #7800000000000000

-ddcan610 tointegralx  #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff

-ddcan611 tointegralx  #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff

-ddcan612 tointegralx  #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff

-ddcan613 tointegralx  #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff

-ddcan614 tointegralx  #7e00ffffcff3fcff -> #7c00ff3fcff3fcff Invalid_operation

-ddcan615 tointegralx  #7e00ffffcff3fcff -> #7c00ff3fcff3fcff Invalid_operation

-ddcan616 tointegralx  #7e80ff3fcff3fcff -> #7c00ff3fcff3fcff Invalid_operation

-ddcan617 tointegralx  #7e80ff3fcff3fcff -> #7c00ff3fcff3fcff Invalid_operation

--- uncanonical 3999, 39.99, 3.99, 0.399, and negatives

-ddcan618 tointegralx  #2238000000000fff -> #2238000000000cff

-ddcan619 tointegralx  #2230000000000fff -> #2238000000000040 Inexact Rounded

-ddcan620 tointegralx  #222c000000000fff -> #2238000000000004 Inexact Rounded

-ddcan621 tointegralx  #2228000000000fff -> #2238000000000000 Inexact Rounded

-ddcan622 tointegralx  #a238000000000fff -> #a238000000000cff

-ddcan623 tointegralx  #a230000000000fff -> #a238000000000040 Inexact Rounded

-ddcan624 tointegralx  #a22c000000000fff -> #a238000000000004 Inexact Rounded

-ddcan625 tointegralx  #a228000000000fff -> #a238000000000000 Inexact Rounded

-

-

-

+------------------------------------------------------------------------
+-- ddCanonical.decTest -- test decDouble canonical results            --
+-- Copyright (c) IBM Corporation, 1981, 2008.  All rights reserved.   --
+------------------------------------------------------------------------
+-- Please see the document "General Decimal Arithmetic Testcases"     --
+-- at http://www2.hursley.ibm.com/decimal for the description of      --
+-- these testcases.                                                   --
+--                                                                    --
+-- These testcases are experimental ('beta' versions), and they       --
+-- may contain errors.  They are offered on an as-is basis.  In       --
+-- particular, achieving the same results as the tests here is not    --
+-- a guarantee that an implementation complies with any Standard      --
+-- or specification.  The tests are not exhaustive.                   --
+--                                                                    --
+-- Please send comments, suggestions, and corrections to the author:  --
+--   Mike Cowlishaw, IBM Fellow                                       --
+--   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --
+--   mfc@uk.ibm.com                                                   --
+------------------------------------------------------------------------
+version: 2.59
+
+-- This file tests that copy operations leave uncanonical operands
+-- unchanged, and vice versa
+-- All operands and results are decDoubles.
+precision:   16
+maxExponent: 384
+minExponent: -383
+extended:    1
+clamp:       1
+rounding:    half_even
+
+-- Uncanonical declets are: abc, where:
+--   a=1,2,3
+--   b=6,7,e,f
+--   c=e,f
+
+-- assert some standard (canonical) values; this tests that FromString
+-- produces canonical results (many more in decimalNN)
+ddcan001 apply 9.999999999999999E+384 -> #77fcff3fcff3fcff
+ddcan002 apply 0                      -> #2238000000000000
+ddcan003 apply 1                      -> #2238000000000001
+ddcan004 apply -1                     -> #a238000000000001
+ddcan005 apply Infinity               -> #7800000000000000
+ddcan006 apply -Infinity              -> #f800000000000000
+ddcan007 apply -NaN                   -> #fc00000000000000
+ddcan008 apply -sNaN                  -> #fe00000000000000
+ddcan009 apply NaN999999999999999     -> #7c00ff3fcff3fcff
+ddcan010 apply sNaN999999999999999    -> #7e00ff3fcff3fcff
+decan011 apply  9999999999999999      -> #6e38ff3fcff3fcff
+ddcan012 apply 7.50                   -> #22300000000003d0
+ddcan013 apply 9.99                   -> #22300000000000ff
+
+-- Base tests for canonical encodings (individual operator
+-- propagation is tested later)
+
+-- Finites: declets in coefficient
+ddcan021 canonical  #77fcff3fcff3fcff  -> #77fcff3fcff3fcff
+ddcan022 canonical  #77fcff3fcff3fcff  -> #77fcff3fcff3fcff
+ddcan023 canonical  #77ffff3fcff3fcff  -> #77fcff3fcff3fcff
+ddcan024 canonical  #77ffff3fcff3fcff  -> #77fcff3fcff3fcff
+ddcan025 canonical  #77fcffffcff3fcff  -> #77fcff3fcff3fcff
+ddcan026 canonical  #77fcffffcff3fcff  -> #77fcff3fcff3fcff
+ddcan027 canonical  #77fcff3ffff3fcff  -> #77fcff3fcff3fcff
+ddcan028 canonical  #77fcff3ffff3fcff  -> #77fcff3fcff3fcff
+ddcan030 canonical  #77fcff3fcffffcff  -> #77fcff3fcff3fcff
+ddcan031 canonical  #77fcff3fcffffcff  -> #77fcff3fcff3fcff
+ddcan032 canonical  #77fcff3fcff3ffff  -> #77fcff3fcff3fcff
+ddcan033 canonical  #77fcff3fcff3ffff  -> #77fcff3fcff3fcff
+ddcan035 canonical  #77fcff3fdff3fcff  -> #77fcff3fcff3fcff
+ddcan036 canonical  #77fcff3feff3fcff  -> #77fcff3fcff3fcff
+
+-- NaN: declets in payload
+ddcan100 canonical  NaN999999999999999 -> #7c00ff3fcff3fcff
+ddcan101 canonical  #7c00ff3fcff3fcff  -> #7c00ff3fcff3fcff
+ddcan102 canonical  #7c03ff3fcff3fcff  -> #7c00ff3fcff3fcff
+ddcan103 canonical  #7c00ffffcff3fcff  -> #7c00ff3fcff3fcff
+ddcan104 canonical  #7c00ff3ffff3fcff  -> #7c00ff3fcff3fcff
+ddcan105 canonical  #7c00ff3fcffffcff  -> #7c00ff3fcff3fcff
+ddcan106 canonical  #7c00ff3fcff3ffff  -> #7c00ff3fcff3fcff
+ddcan107 canonical  #7c00ff3fcff3ffff  -> #7c00ff3fcff3fcff
+-- NaN: exponent continuation bits [excluding sNaN selector]
+ddcan110 canonical  #7c00ff3fcff3fcff  -> #7c00ff3fcff3fcff
+ddcan112 canonical  #7d00ff3fcff3fcff  -> #7c00ff3fcff3fcff
+ddcan113 canonical  #7c80ff3fcff3fcff  -> #7c00ff3fcff3fcff
+ddcan114 canonical  #7c40ff3fcff3fcff  -> #7c00ff3fcff3fcff
+ddcan115 canonical  #7c20ff3fcff3fcff  -> #7c00ff3fcff3fcff
+ddcan116 canonical  #7c10ff3fcff3fcff  -> #7c00ff3fcff3fcff
+ddcan117 canonical  #7c08ff3fcff3fcff  -> #7c00ff3fcff3fcff
+ddcan118 canonical  #7c04ff3fcff3fcff  -> #7c00ff3fcff3fcff
+
+-- sNaN: declets in payload
+ddcan120 canonical sNaN999999999999999 -> #7e00ff3fcff3fcff
+ddcan121 canonical  #7e00ff3fcff3fcff  -> #7e00ff3fcff3fcff
+ddcan122 canonical  #7e03ff3fcff3fcff  -> #7e00ff3fcff3fcff
+ddcan123 canonical  #7e00ffffcff3fcff  -> #7e00ff3fcff3fcff
+ddcan124 canonical  #7e00ff3ffff3fcff  -> #7e00ff3fcff3fcff
+ddcan125 canonical  #7e00ff3fcffffcff  -> #7e00ff3fcff3fcff
+ddcan126 canonical  #7e00ff3fcff3ffff  -> #7e00ff3fcff3fcff
+ddcan127 canonical  #7e00ff3fcff3ffff  -> #7e00ff3fcff3fcff
+-- sNaN: exponent continuation bits [excluding sNaN selector]
+ddcan130 canonical  #7e00ff3fcff3fcff  -> #7e00ff3fcff3fcff
+ddcan132 canonical  #7f00ff3fcff3fcff  -> #7e00ff3fcff3fcff
+ddcan133 canonical  #7e80ff3fcff3fcff  -> #7e00ff3fcff3fcff
+ddcan134 canonical  #7e40ff3fcff3fcff  -> #7e00ff3fcff3fcff
+ddcan135 canonical  #7e20ff3fcff3fcff  -> #7e00ff3fcff3fcff
+ddcan136 canonical  #7e10ff3fcff3fcff  -> #7e00ff3fcff3fcff
+ddcan137 canonical  #7e08ff3fcff3fcff  -> #7e00ff3fcff3fcff
+ddcan138 canonical  #7e04ff3fcff3fcff  -> #7e00ff3fcff3fcff
+
+-- Inf: exponent continuation bits
+ddcan140 canonical  #7800000000000000  -> #7800000000000000
+ddcan141 canonical  #7900000000000000  -> #7800000000000000
+ddcan142 canonical  #7a00000000000000  -> #7800000000000000
+ddcan143 canonical  #7880000000000000  -> #7800000000000000
+ddcan144 canonical  #7840000000000000  -> #7800000000000000
+ddcan145 canonical  #7820000000000000  -> #7800000000000000
+ddcan146 canonical  #7810000000000000  -> #7800000000000000
+ddcan147 canonical  #7808000000000000  -> #7800000000000000
+ddcan148 canonical  #7804000000000000  -> #7800000000000000
+
+-- Inf: coefficient continuation bits (first, last, and a few others)
+ddcan150 canonical  #7800000000000000  -> #7800000000000000
+ddcan151 canonical  #7802000000000000  -> #7800000000000000
+ddcan152 canonical  #7800000000000001  -> #7800000000000000
+ddcan153 canonical  #7801000000000000  -> #7800000000000000
+ddcan154 canonical  #7800200000000000  -> #7800000000000000
+ddcan155 canonical  #7800080000000000  -> #7800000000000000
+ddcan156 canonical  #7800002000000000  -> #7800000000000000
+ddcan157 canonical  #7800000400000000  -> #7800000000000000
+ddcan158 canonical  #7800000040000000  -> #7800000000000000
+ddcan159 canonical  #7800000008000000  -> #7800000000000000
+ddcan160 canonical  #7800000000400000  -> #7800000000000000
+ddcan161 canonical  #7800000000020000  -> #7800000000000000
+ddcan162 canonical  #7800000000008000  -> #7800000000000000
+ddcan163 canonical  #7800000000000200  -> #7800000000000000
+ddcan164 canonical  #7800000000000040  -> #7800000000000000
+ddcan165 canonical  #7800000000000008  -> #7800000000000000
+
+
+-- Now the operators -- trying to check paths that might fail to
+-- canonicalize propagated operands
+
+----- Add:
+-- Finites: neutral 0
+ddcan202 add  0E+384 #77ffff3fcff3fcff        -> #77fcff3fcff3fcff
+ddcan203 add         #77fcffffcff3fcff 0E+384 -> #77fcff3fcff3fcff
+-- tiny zero
+ddcan204 add  0E-398 #77ffff3fcff3fcff        -> #77fcff3fcff3fcff Rounded
+ddcan205 add         #77fcffffcff3fcff 0E-398 -> #77fcff3fcff3fcff Rounded
+-- tiny non zero
+ddcan206 add -1E-398 #77ffff3fcff3fcff         -> #77fcff3fcff3fcff Inexact Rounded
+ddcan207 add         #77ffff3fcff3fcff -1E-398 -> #77fcff3fcff3fcff Inexact Rounded
+-- NaN: declets in payload
+ddcan211 add  0  #7c03ff3fcff3fcff      -> #7c00ff3fcff3fcff
+ddcan212 add     #7c03ff3fcff3fcff  0   -> #7c00ff3fcff3fcff
+-- NaN: exponent continuation bits [excluding sNaN selector]
+ddcan213 add  0  #7c40ff3fcff3fcff      -> #7c00ff3fcff3fcff
+ddcan214 add     #7c40ff3fcff3fcff  0   -> #7c00ff3fcff3fcff
+-- sNaN: declets in payload
+ddcan215 add  0  #7e00ffffcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
+ddcan216 add     #7e00ffffcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation
+-- sNaN: exponent continuation bits [excluding sNaN selector]
+ddcan217 add  0  #7e80ff3fcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
+ddcan218 add     #7e80ff3fcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation
+-- Inf: exponent continuation bits
+ddcan220 add  0  #7880000000000000      -> #7800000000000000
+ddcan221 add     #7880000000000000  0   -> #7800000000000000
+-- Inf: coefficient continuation bits
+ddcan222 add  0  #7802000000000000     -> #7800000000000000
+ddcan223 add     #7802000000000000  0  -> #7800000000000000
+ddcan224 add  0  #7800000000000001     -> #7800000000000000
+ddcan225 add     #7800000000000001  0  -> #7800000000000000
+ddcan226 add  0  #7800002000000000     -> #7800000000000000
+ddcan227 add     #7800002000000000  0  -> #7800000000000000
+
+----- Class: [does not return encoded]
+
+----- Compare:
+ddcan231 compare -Inf   1     ->  #a238000000000001
+ddcan232 compare -Inf  -Inf   ->  #2238000000000000
+ddcan233 compare  1    -Inf   ->  #2238000000000001
+ddcan234 compare  #7c00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff
+ddcan235 compare  #7e00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff  Invalid_operation
+
+----- CompareSig:
+ddcan241 comparesig -Inf   1     ->  #a238000000000001
+ddcan242 comparesig -Inf  -Inf   ->  #2238000000000000
+ddcan243 comparesig  1    -Inf   ->  #2238000000000001
+ddcan244 comparesig  #7c00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff  Invalid_operation
+ddcan245 comparesig  #7e00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff  Invalid_operation
+
+----- Copy: [does not usually canonicalize]
+-- finites
+ddcan250 copy  #77ffff3fcff3fcff  -> #77ffff3fcff3fcff
+ddcan251 copy  #77fcff3fdff3fcff  -> #77fcff3fdff3fcff
+-- NaNs
+ddcan252 copy  #7c03ff3fcff3fcff  -> #7c03ff3fcff3fcff
+ddcan253 copy  #7c00ff3fcff3ffff  -> #7c00ff3fcff3ffff
+ddcan254 copy  #7d00ff3fcff3fcff  -> #7d00ff3fcff3fcff
+ddcan255 copy  #7c04ff3fcff3fcff  -> #7c04ff3fcff3fcff
+-- sNaN
+ddcan256 copy  #7e00ff3fcffffcff  -> #7e00ff3fcffffcff
+ddcan257 copy  #7e40ff3fcff3fcff  -> #7e40ff3fcff3fcff
+-- Inf
+ddcan258 copy  #7a00000000000000  -> #7a00000000000000
+ddcan259 copy  #7800200000000000  -> #7800200000000000
+
+----- CopyAbs: [does not usually canonicalize]
+-- finites
+ddcan260 copyabs  #f7ffff3fcff3fcff  -> #77ffff3fcff3fcff
+ddcan261 copyabs  #f7fcff3fdff3fcff  -> #77fcff3fdff3fcff
+-- NaNs
+ddcan262 copyabs  #fc03ff3fcff3fcff  -> #7c03ff3fcff3fcff
+ddcan263 copyabs  #fc00ff3fcff3ffff  -> #7c00ff3fcff3ffff
+ddcan264 copyabs  #fd00ff3fcff3fcff  -> #7d00ff3fcff3fcff
+ddcan265 copyabs  #fc04ff3fcff3fcff  -> #7c04ff3fcff3fcff
+-- sNaN
+ddcan266 copyabs  #fe00ff3fcffffcff  -> #7e00ff3fcffffcff
+ddcan267 copyabs  #fe40ff3fcff3fcff  -> #7e40ff3fcff3fcff
+-- Inf
+ddcan268 copyabs  #fa00000000000000  -> #7a00000000000000
+ddcan269 copyabs  #f800200000000000  -> #7800200000000000
+
+----- CopyNegate: [does not usually canonicalize]
+-- finites
+ddcan270 copynegate  #77ffff3fcff3fcff  -> #f7ffff3fcff3fcff
+ddcan271 copynegate  #77fcff3fdff3fcff  -> #f7fcff3fdff3fcff
+-- NaNs
+ddcan272 copynegate  #7c03ff3fcff3fcff  -> #fc03ff3fcff3fcff
+ddcan273 copynegate  #7c00ff3fcff3ffff  -> #fc00ff3fcff3ffff
+ddcan274 copynegate  #7d00ff3fcff3fcff  -> #fd00ff3fcff3fcff
+ddcan275 copynegate  #7c04ff3fcff3fcff  -> #fc04ff3fcff3fcff
+-- sNaN
+ddcan276 copynegate  #7e00ff3fcffffcff  -> #fe00ff3fcffffcff
+ddcan277 copynegate  #7e40ff3fcff3fcff  -> #fe40ff3fcff3fcff
+-- Inf
+ddcan278 copynegate  #7a00000000000000  -> #fa00000000000000
+ddcan279 copynegate  #7800200000000000  -> #f800200000000000
+
+----- CopySign: [does not usually canonicalize]
+-- finites
+ddcan280 copysign  #77ffff3fcff3fcff -1 -> #f7ffff3fcff3fcff
+ddcan281 copysign  #77fcff3fdff3fcff  1 -> #77fcff3fdff3fcff
+-- NaNs
+ddcan282 copysign  #7c03ff3fcff3fcff -1 -> #fc03ff3fcff3fcff
+ddcan283 copysign  #7c00ff3fcff3ffff  1 -> #7c00ff3fcff3ffff
+ddcan284 copysign  #7d00ff3fcff3fcff -1 -> #fd00ff3fcff3fcff
+ddcan285 copysign  #7c04ff3fcff3fcff  1 -> #7c04ff3fcff3fcff
+-- sNaN
+ddcan286 copysign  #7e00ff3fcffffcff -1 -> #fe00ff3fcffffcff
+ddcan287 copysign  #7e40ff3fcff3fcff  1 -> #7e40ff3fcff3fcff
+-- Inf
+ddcan288 copysign  #7a00000000000000 -1 -> #fa00000000000000
+ddcan289 copysign  #7800200000000000  1 -> #7800200000000000
+
+----- Multiply:
+-- Finites: neutral 0
+ddcan302 multiply  1      #77ffff3fcff3fcff        -> #77fcff3fcff3fcff
+ddcan303 multiply         #77fcffffcff3fcff  1     -> #77fcff3fcff3fcff
+-- negative
+ddcan306 multiply -1      #77ffff3fcff3fcff        -> #f7fcff3fcff3fcff
+ddcan307 multiply         #77fcffffcff3fcff -1     -> #f7fcff3fcff3fcff
+-- NaN: declets in payload
+ddcan311 multiply  1  #7c03ff3fcff3fcff      -> #7c00ff3fcff3fcff
+ddcan312 multiply     #7c03ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
+-- NaN: exponent continuation bits [excluding sNaN selector]
+ddcan313 multiply  1  #7c40ff3fcff3fcff      -> #7c00ff3fcff3fcff
+ddcan314 multiply     #7c40ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
+-- sNaN: declets in payload
+ddcan315 multiply  1  #7e00ffffcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
+ddcan316 multiply     #7e00ffffcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
+-- sNaN: exponent continuation bits [excluding sNaN selector]
+ddcan317 multiply  1  #7e80ff3fcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
+ddcan318 multiply     #7e80ff3fcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
+-- Inf: exponent continuation bits
+ddcan320 multiply  1  #7880000000000000      -> #7800000000000000
+ddcan321 multiply     #7880000000000000  1   -> #7800000000000000
+-- Inf: coefficient continuation bits
+ddcan322 multiply  1  #7802000000000000     -> #7800000000000000
+ddcan323 multiply     #7802000000000000  1  -> #7800000000000000
+ddcan324 multiply  1  #7800000000000001     -> #7800000000000000
+ddcan325 multiply     #7800000000000001  1  -> #7800000000000000
+ddcan326 multiply  1  #7800002000000000     -> #7800000000000000
+ddcan327 multiply     #7800002000000000  1  -> #7800000000000000
+
+----- Quantize:
+ddcan401 quantize  #6e38ff3ffff3fcff 1    -> #6e38ff3fcff3fcff
+ddcan402 quantize  #6e38ff3fcff3fdff 0    -> #6e38ff3fcff3fcff
+ddcan403 quantize  #7880000000000000 Inf  -> #7800000000000000
+ddcan404 quantize  #7802000000000000 -Inf -> #7800000000000000
+ddcan410 quantize  #7c03ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
+ddcan411 quantize  #7c03ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
+ddcan412 quantize  #7c40ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
+ddcan413 quantize  #7c40ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
+ddcan414 quantize  #7e00ffffcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
+ddcan415 quantize  #7e00ffffcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
+ddcan416 quantize  #7e80ff3fcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
+ddcan417 quantize  #7e80ff3fcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
+
+----- Subtract:
+-- Finites: neutral 0
+ddcan502 subtract  0E+384 #77ffff3fcff3fcff        -> #f7fcff3fcff3fcff
+ddcan503 subtract         #77fcffffcff3fcff 0E+384 -> #77fcff3fcff3fcff
+-- tiny zero
+ddcan504 subtract  0E-398 #77ffff3fcff3fcff        -> #f7fcff3fcff3fcff Rounded
+ddcan505 subtract         #77fcffffcff3fcff 0E-398 -> #77fcff3fcff3fcff Rounded
+-- tiny non zero
+ddcan506 subtract -1E-398 #77ffff3fcff3fcff         -> #f7fcff3fcff3fcff Inexact Rounded
+ddcan507 subtract         #77ffff3fcff3fcff -1E-398 -> #77fcff3fcff3fcff Inexact Rounded
+-- NaN: declets in payload
+ddcan511 subtract  0  #7c03ff3fcff3fcff      -> #7c00ff3fcff3fcff
+ddcan512 subtract     #7c03ff3fcff3fcff  0   -> #7c00ff3fcff3fcff
+-- NaN: exponent continuation bits [excluding sNaN selector]
+ddcan513 subtract  0  #7c40ff3fcff3fcff      -> #7c00ff3fcff3fcff
+ddcan514 subtract     #7c40ff3fcff3fcff  0   -> #7c00ff3fcff3fcff
+-- sNaN: declets in payload
+ddcan515 subtract  0  #7e00ffffcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
+ddcan516 subtract     #7e00ffffcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation
+-- sNaN: exponent continuation bits [excluding sNaN selector]
+ddcan517 subtract  0  #7e80ff3fcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
+ddcan518 subtract     #7e80ff3fcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation
+-- Inf: exponent continuation bits
+ddcan520 subtract  0  #7880000000000000      -> #f800000000000000
+ddcan521 subtract     #7880000000000000  0   -> #7800000000000000
+-- Inf: coefficient continuation bits
+ddcan522 subtract  0  #7802000000000000     -> #f800000000000000
+ddcan523 subtract     #7802000000000000  0  -> #7800000000000000
+ddcan524 subtract  0  #7800000000000001     -> #f800000000000000
+ddcan525 subtract     #7800000000000001  0  -> #7800000000000000
+ddcan526 subtract  0  #7800002000000000     -> #f800000000000000
+ddcan527 subtract     #7800002000000000  0  -> #7800000000000000
+
+----- ToIntegral:
+ddcan601 tointegralx  #6e38ff3ffff3fcff -> #6e38ff3fcff3fcff
+ddcan602 tointegralx  #6e38ff3fcff3fdff -> #6e38ff3fcff3fcff
+ddcan603 tointegralx  #7880000000000000 -> #7800000000000000
+ddcan604 tointegralx  #7802000000000000 -> #7800000000000000
+ddcan610 tointegralx  #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff
+ddcan611 tointegralx  #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff
+ddcan612 tointegralx  #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff
+ddcan613 tointegralx  #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff
+ddcan614 tointegralx  #7e00ffffcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
+ddcan615 tointegralx  #7e00ffffcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
+ddcan616 tointegralx  #7e80ff3fcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
+ddcan617 tointegralx  #7e80ff3fcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
+-- uncanonical 3999, 39.99, 3.99, 0.399, and negatives
+ddcan618 tointegralx  #2238000000000fff -> #2238000000000cff
+ddcan619 tointegralx  #2230000000000fff -> #2238000000000040 Inexact Rounded
+ddcan620 tointegralx  #222c000000000fff -> #2238000000000004 Inexact Rounded
+ddcan621 tointegralx  #2228000000000fff -> #2238000000000000 Inexact Rounded
+ddcan622 tointegralx  #a238000000000fff -> #a238000000000cff
+ddcan623 tointegralx  #a230000000000fff -> #a238000000000040 Inexact Rounded
+ddcan624 tointegralx  #a22c000000000fff -> #a238000000000004 Inexact Rounded
+ddcan625 tointegralx  #a228000000000fff -> #a238000000000000 Inexact Rounded
+
+
+