17db96d56Sopenharmony_ci------------------------------------------------------------------------
27db96d56Sopenharmony_ci-- ddCanonical.decTest -- test decDouble canonical results            --
37db96d56Sopenharmony_ci-- Copyright (c) IBM Corporation, 1981, 2008.  All rights reserved.   --
47db96d56Sopenharmony_ci------------------------------------------------------------------------
57db96d56Sopenharmony_ci-- Please see the document "General Decimal Arithmetic Testcases"     --
67db96d56Sopenharmony_ci-- at http://www2.hursley.ibm.com/decimal for the description of      --
77db96d56Sopenharmony_ci-- these testcases.                                                   --
87db96d56Sopenharmony_ci--                                                                    --
97db96d56Sopenharmony_ci-- These testcases are experimental ('beta' versions), and they       --
107db96d56Sopenharmony_ci-- may contain errors.  They are offered on an as-is basis.  In       --
117db96d56Sopenharmony_ci-- particular, achieving the same results as the tests here is not    --
127db96d56Sopenharmony_ci-- a guarantee that an implementation complies with any Standard      --
137db96d56Sopenharmony_ci-- or specification.  The tests are not exhaustive.                   --
147db96d56Sopenharmony_ci--                                                                    --
157db96d56Sopenharmony_ci-- Please send comments, suggestions, and corrections to the author:  --
167db96d56Sopenharmony_ci--   Mike Cowlishaw, IBM Fellow                                       --
177db96d56Sopenharmony_ci--   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --
187db96d56Sopenharmony_ci--   mfc@uk.ibm.com                                                   --
197db96d56Sopenharmony_ci------------------------------------------------------------------------
207db96d56Sopenharmony_civersion: 2.59
217db96d56Sopenharmony_ci
227db96d56Sopenharmony_ci-- This file tests that copy operations leave uncanonical operands
237db96d56Sopenharmony_ci-- unchanged, and vice versa
247db96d56Sopenharmony_ci-- All operands and results are decDoubles.
257db96d56Sopenharmony_ciprecision:   16
267db96d56Sopenharmony_cimaxExponent: 384
277db96d56Sopenharmony_ciminExponent: -383
287db96d56Sopenharmony_ciextended:    1
297db96d56Sopenharmony_ciclamp:       1
307db96d56Sopenharmony_cirounding:    half_even
317db96d56Sopenharmony_ci
327db96d56Sopenharmony_ci-- Uncanonical declets are: abc, where:
337db96d56Sopenharmony_ci--   a=1,2,3
347db96d56Sopenharmony_ci--   b=6,7,e,f
357db96d56Sopenharmony_ci--   c=e,f
367db96d56Sopenharmony_ci
377db96d56Sopenharmony_ci-- assert some standard (canonical) values; this tests that FromString
387db96d56Sopenharmony_ci-- produces canonical results (many more in decimalNN)
397db96d56Sopenharmony_ciddcan001 apply 9.999999999999999E+384 -> #77fcff3fcff3fcff
407db96d56Sopenharmony_ciddcan002 apply 0                      -> #2238000000000000
417db96d56Sopenharmony_ciddcan003 apply 1                      -> #2238000000000001
427db96d56Sopenharmony_ciddcan004 apply -1                     -> #a238000000000001
437db96d56Sopenharmony_ciddcan005 apply Infinity               -> #7800000000000000
447db96d56Sopenharmony_ciddcan006 apply -Infinity              -> #f800000000000000
457db96d56Sopenharmony_ciddcan007 apply -NaN                   -> #fc00000000000000
467db96d56Sopenharmony_ciddcan008 apply -sNaN                  -> #fe00000000000000
477db96d56Sopenharmony_ciddcan009 apply NaN999999999999999     -> #7c00ff3fcff3fcff
487db96d56Sopenharmony_ciddcan010 apply sNaN999999999999999    -> #7e00ff3fcff3fcff
497db96d56Sopenharmony_cidecan011 apply  9999999999999999      -> #6e38ff3fcff3fcff
507db96d56Sopenharmony_ciddcan012 apply 7.50                   -> #22300000000003d0
517db96d56Sopenharmony_ciddcan013 apply 9.99                   -> #22300000000000ff
527db96d56Sopenharmony_ci
537db96d56Sopenharmony_ci-- Base tests for canonical encodings (individual operator
547db96d56Sopenharmony_ci-- propagation is tested later)
557db96d56Sopenharmony_ci
567db96d56Sopenharmony_ci-- Finites: declets in coefficient
577db96d56Sopenharmony_ciddcan021 canonical  #77fcff3fcff3fcff  -> #77fcff3fcff3fcff
587db96d56Sopenharmony_ciddcan022 canonical  #77fcff3fcff3fcff  -> #77fcff3fcff3fcff
597db96d56Sopenharmony_ciddcan023 canonical  #77ffff3fcff3fcff  -> #77fcff3fcff3fcff
607db96d56Sopenharmony_ciddcan024 canonical  #77ffff3fcff3fcff  -> #77fcff3fcff3fcff
617db96d56Sopenharmony_ciddcan025 canonical  #77fcffffcff3fcff  -> #77fcff3fcff3fcff
627db96d56Sopenharmony_ciddcan026 canonical  #77fcffffcff3fcff  -> #77fcff3fcff3fcff
637db96d56Sopenharmony_ciddcan027 canonical  #77fcff3ffff3fcff  -> #77fcff3fcff3fcff
647db96d56Sopenharmony_ciddcan028 canonical  #77fcff3ffff3fcff  -> #77fcff3fcff3fcff
657db96d56Sopenharmony_ciddcan030 canonical  #77fcff3fcffffcff  -> #77fcff3fcff3fcff
667db96d56Sopenharmony_ciddcan031 canonical  #77fcff3fcffffcff  -> #77fcff3fcff3fcff
677db96d56Sopenharmony_ciddcan032 canonical  #77fcff3fcff3ffff  -> #77fcff3fcff3fcff
687db96d56Sopenharmony_ciddcan033 canonical  #77fcff3fcff3ffff  -> #77fcff3fcff3fcff
697db96d56Sopenharmony_ciddcan035 canonical  #77fcff3fdff3fcff  -> #77fcff3fcff3fcff
707db96d56Sopenharmony_ciddcan036 canonical  #77fcff3feff3fcff  -> #77fcff3fcff3fcff
717db96d56Sopenharmony_ci
727db96d56Sopenharmony_ci-- NaN: declets in payload
737db96d56Sopenharmony_ciddcan100 canonical  NaN999999999999999 -> #7c00ff3fcff3fcff
747db96d56Sopenharmony_ciddcan101 canonical  #7c00ff3fcff3fcff  -> #7c00ff3fcff3fcff
757db96d56Sopenharmony_ciddcan102 canonical  #7c03ff3fcff3fcff  -> #7c00ff3fcff3fcff
767db96d56Sopenharmony_ciddcan103 canonical  #7c00ffffcff3fcff  -> #7c00ff3fcff3fcff
777db96d56Sopenharmony_ciddcan104 canonical  #7c00ff3ffff3fcff  -> #7c00ff3fcff3fcff
787db96d56Sopenharmony_ciddcan105 canonical  #7c00ff3fcffffcff  -> #7c00ff3fcff3fcff
797db96d56Sopenharmony_ciddcan106 canonical  #7c00ff3fcff3ffff  -> #7c00ff3fcff3fcff
807db96d56Sopenharmony_ciddcan107 canonical  #7c00ff3fcff3ffff  -> #7c00ff3fcff3fcff
817db96d56Sopenharmony_ci-- NaN: exponent continuation bits [excluding sNaN selector]
827db96d56Sopenharmony_ciddcan110 canonical  #7c00ff3fcff3fcff  -> #7c00ff3fcff3fcff
837db96d56Sopenharmony_ciddcan112 canonical  #7d00ff3fcff3fcff  -> #7c00ff3fcff3fcff
847db96d56Sopenharmony_ciddcan113 canonical  #7c80ff3fcff3fcff  -> #7c00ff3fcff3fcff
857db96d56Sopenharmony_ciddcan114 canonical  #7c40ff3fcff3fcff  -> #7c00ff3fcff3fcff
867db96d56Sopenharmony_ciddcan115 canonical  #7c20ff3fcff3fcff  -> #7c00ff3fcff3fcff
877db96d56Sopenharmony_ciddcan116 canonical  #7c10ff3fcff3fcff  -> #7c00ff3fcff3fcff
887db96d56Sopenharmony_ciddcan117 canonical  #7c08ff3fcff3fcff  -> #7c00ff3fcff3fcff
897db96d56Sopenharmony_ciddcan118 canonical  #7c04ff3fcff3fcff  -> #7c00ff3fcff3fcff
907db96d56Sopenharmony_ci
917db96d56Sopenharmony_ci-- sNaN: declets in payload
927db96d56Sopenharmony_ciddcan120 canonical sNaN999999999999999 -> #7e00ff3fcff3fcff
937db96d56Sopenharmony_ciddcan121 canonical  #7e00ff3fcff3fcff  -> #7e00ff3fcff3fcff
947db96d56Sopenharmony_ciddcan122 canonical  #7e03ff3fcff3fcff  -> #7e00ff3fcff3fcff
957db96d56Sopenharmony_ciddcan123 canonical  #7e00ffffcff3fcff  -> #7e00ff3fcff3fcff
967db96d56Sopenharmony_ciddcan124 canonical  #7e00ff3ffff3fcff  -> #7e00ff3fcff3fcff
977db96d56Sopenharmony_ciddcan125 canonical  #7e00ff3fcffffcff  -> #7e00ff3fcff3fcff
987db96d56Sopenharmony_ciddcan126 canonical  #7e00ff3fcff3ffff  -> #7e00ff3fcff3fcff
997db96d56Sopenharmony_ciddcan127 canonical  #7e00ff3fcff3ffff  -> #7e00ff3fcff3fcff
1007db96d56Sopenharmony_ci-- sNaN: exponent continuation bits [excluding sNaN selector]
1017db96d56Sopenharmony_ciddcan130 canonical  #7e00ff3fcff3fcff  -> #7e00ff3fcff3fcff
1027db96d56Sopenharmony_ciddcan132 canonical  #7f00ff3fcff3fcff  -> #7e00ff3fcff3fcff
1037db96d56Sopenharmony_ciddcan133 canonical  #7e80ff3fcff3fcff  -> #7e00ff3fcff3fcff
1047db96d56Sopenharmony_ciddcan134 canonical  #7e40ff3fcff3fcff  -> #7e00ff3fcff3fcff
1057db96d56Sopenharmony_ciddcan135 canonical  #7e20ff3fcff3fcff  -> #7e00ff3fcff3fcff
1067db96d56Sopenharmony_ciddcan136 canonical  #7e10ff3fcff3fcff  -> #7e00ff3fcff3fcff
1077db96d56Sopenharmony_ciddcan137 canonical  #7e08ff3fcff3fcff  -> #7e00ff3fcff3fcff
1087db96d56Sopenharmony_ciddcan138 canonical  #7e04ff3fcff3fcff  -> #7e00ff3fcff3fcff
1097db96d56Sopenharmony_ci
1107db96d56Sopenharmony_ci-- Inf: exponent continuation bits
1117db96d56Sopenharmony_ciddcan140 canonical  #7800000000000000  -> #7800000000000000
1127db96d56Sopenharmony_ciddcan141 canonical  #7900000000000000  -> #7800000000000000
1137db96d56Sopenharmony_ciddcan142 canonical  #7a00000000000000  -> #7800000000000000
1147db96d56Sopenharmony_ciddcan143 canonical  #7880000000000000  -> #7800000000000000
1157db96d56Sopenharmony_ciddcan144 canonical  #7840000000000000  -> #7800000000000000
1167db96d56Sopenharmony_ciddcan145 canonical  #7820000000000000  -> #7800000000000000
1177db96d56Sopenharmony_ciddcan146 canonical  #7810000000000000  -> #7800000000000000
1187db96d56Sopenharmony_ciddcan147 canonical  #7808000000000000  -> #7800000000000000
1197db96d56Sopenharmony_ciddcan148 canonical  #7804000000000000  -> #7800000000000000
1207db96d56Sopenharmony_ci
1217db96d56Sopenharmony_ci-- Inf: coefficient continuation bits (first, last, and a few others)
1227db96d56Sopenharmony_ciddcan150 canonical  #7800000000000000  -> #7800000000000000
1237db96d56Sopenharmony_ciddcan151 canonical  #7802000000000000  -> #7800000000000000
1247db96d56Sopenharmony_ciddcan152 canonical  #7800000000000001  -> #7800000000000000
1257db96d56Sopenharmony_ciddcan153 canonical  #7801000000000000  -> #7800000000000000
1267db96d56Sopenharmony_ciddcan154 canonical  #7800200000000000  -> #7800000000000000
1277db96d56Sopenharmony_ciddcan155 canonical  #7800080000000000  -> #7800000000000000
1287db96d56Sopenharmony_ciddcan156 canonical  #7800002000000000  -> #7800000000000000
1297db96d56Sopenharmony_ciddcan157 canonical  #7800000400000000  -> #7800000000000000
1307db96d56Sopenharmony_ciddcan158 canonical  #7800000040000000  -> #7800000000000000
1317db96d56Sopenharmony_ciddcan159 canonical  #7800000008000000  -> #7800000000000000
1327db96d56Sopenharmony_ciddcan160 canonical  #7800000000400000  -> #7800000000000000
1337db96d56Sopenharmony_ciddcan161 canonical  #7800000000020000  -> #7800000000000000
1347db96d56Sopenharmony_ciddcan162 canonical  #7800000000008000  -> #7800000000000000
1357db96d56Sopenharmony_ciddcan163 canonical  #7800000000000200  -> #7800000000000000
1367db96d56Sopenharmony_ciddcan164 canonical  #7800000000000040  -> #7800000000000000
1377db96d56Sopenharmony_ciddcan165 canonical  #7800000000000008  -> #7800000000000000
1387db96d56Sopenharmony_ci
1397db96d56Sopenharmony_ci
1407db96d56Sopenharmony_ci-- Now the operators -- trying to check paths that might fail to
1417db96d56Sopenharmony_ci-- canonicalize propagated operands
1427db96d56Sopenharmony_ci
1437db96d56Sopenharmony_ci----- Add:
1447db96d56Sopenharmony_ci-- Finites: neutral 0
1457db96d56Sopenharmony_ciddcan202 add  0E+384 #77ffff3fcff3fcff        -> #77fcff3fcff3fcff
1467db96d56Sopenharmony_ciddcan203 add         #77fcffffcff3fcff 0E+384 -> #77fcff3fcff3fcff
1477db96d56Sopenharmony_ci-- tiny zero
1487db96d56Sopenharmony_ciddcan204 add  0E-398 #77ffff3fcff3fcff        -> #77fcff3fcff3fcff Rounded
1497db96d56Sopenharmony_ciddcan205 add         #77fcffffcff3fcff 0E-398 -> #77fcff3fcff3fcff Rounded
1507db96d56Sopenharmony_ci-- tiny non zero
1517db96d56Sopenharmony_ciddcan206 add -1E-398 #77ffff3fcff3fcff         -> #77fcff3fcff3fcff Inexact Rounded
1527db96d56Sopenharmony_ciddcan207 add         #77ffff3fcff3fcff -1E-398 -> #77fcff3fcff3fcff Inexact Rounded
1537db96d56Sopenharmony_ci-- NaN: declets in payload
1547db96d56Sopenharmony_ciddcan211 add  0  #7c03ff3fcff3fcff      -> #7c00ff3fcff3fcff
1557db96d56Sopenharmony_ciddcan212 add     #7c03ff3fcff3fcff  0   -> #7c00ff3fcff3fcff
1567db96d56Sopenharmony_ci-- NaN: exponent continuation bits [excluding sNaN selector]
1577db96d56Sopenharmony_ciddcan213 add  0  #7c40ff3fcff3fcff      -> #7c00ff3fcff3fcff
1587db96d56Sopenharmony_ciddcan214 add     #7c40ff3fcff3fcff  0   -> #7c00ff3fcff3fcff
1597db96d56Sopenharmony_ci-- sNaN: declets in payload
1607db96d56Sopenharmony_ciddcan215 add  0  #7e00ffffcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
1617db96d56Sopenharmony_ciddcan216 add     #7e00ffffcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation
1627db96d56Sopenharmony_ci-- sNaN: exponent continuation bits [excluding sNaN selector]
1637db96d56Sopenharmony_ciddcan217 add  0  #7e80ff3fcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
1647db96d56Sopenharmony_ciddcan218 add     #7e80ff3fcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation
1657db96d56Sopenharmony_ci-- Inf: exponent continuation bits
1667db96d56Sopenharmony_ciddcan220 add  0  #7880000000000000      -> #7800000000000000
1677db96d56Sopenharmony_ciddcan221 add     #7880000000000000  0   -> #7800000000000000
1687db96d56Sopenharmony_ci-- Inf: coefficient continuation bits
1697db96d56Sopenharmony_ciddcan222 add  0  #7802000000000000     -> #7800000000000000
1707db96d56Sopenharmony_ciddcan223 add     #7802000000000000  0  -> #7800000000000000
1717db96d56Sopenharmony_ciddcan224 add  0  #7800000000000001     -> #7800000000000000
1727db96d56Sopenharmony_ciddcan225 add     #7800000000000001  0  -> #7800000000000000
1737db96d56Sopenharmony_ciddcan226 add  0  #7800002000000000     -> #7800000000000000
1747db96d56Sopenharmony_ciddcan227 add     #7800002000000000  0  -> #7800000000000000
1757db96d56Sopenharmony_ci
1767db96d56Sopenharmony_ci----- Class: [does not return encoded]
1777db96d56Sopenharmony_ci
1787db96d56Sopenharmony_ci----- Compare:
1797db96d56Sopenharmony_ciddcan231 compare -Inf   1     ->  #a238000000000001
1807db96d56Sopenharmony_ciddcan232 compare -Inf  -Inf   ->  #2238000000000000
1817db96d56Sopenharmony_ciddcan233 compare  1    -Inf   ->  #2238000000000001
1827db96d56Sopenharmony_ciddcan234 compare  #7c00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff
1837db96d56Sopenharmony_ciddcan235 compare  #7e00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff  Invalid_operation
1847db96d56Sopenharmony_ci
1857db96d56Sopenharmony_ci----- CompareSig:
1867db96d56Sopenharmony_ciddcan241 comparesig -Inf   1     ->  #a238000000000001
1877db96d56Sopenharmony_ciddcan242 comparesig -Inf  -Inf   ->  #2238000000000000
1887db96d56Sopenharmony_ciddcan243 comparesig  1    -Inf   ->  #2238000000000001
1897db96d56Sopenharmony_ciddcan244 comparesig  #7c00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff  Invalid_operation
1907db96d56Sopenharmony_ciddcan245 comparesig  #7e00ff3ffff3fcff -1000  ->  #7c00ff3fcff3fcff  Invalid_operation
1917db96d56Sopenharmony_ci
1927db96d56Sopenharmony_ci----- Copy: [does not usually canonicalize]
1937db96d56Sopenharmony_ci-- finites
1947db96d56Sopenharmony_ciddcan250 copy  #77ffff3fcff3fcff  -> #77ffff3fcff3fcff
1957db96d56Sopenharmony_ciddcan251 copy  #77fcff3fdff3fcff  -> #77fcff3fdff3fcff
1967db96d56Sopenharmony_ci-- NaNs
1977db96d56Sopenharmony_ciddcan252 copy  #7c03ff3fcff3fcff  -> #7c03ff3fcff3fcff
1987db96d56Sopenharmony_ciddcan253 copy  #7c00ff3fcff3ffff  -> #7c00ff3fcff3ffff
1997db96d56Sopenharmony_ciddcan254 copy  #7d00ff3fcff3fcff  -> #7d00ff3fcff3fcff
2007db96d56Sopenharmony_ciddcan255 copy  #7c04ff3fcff3fcff  -> #7c04ff3fcff3fcff
2017db96d56Sopenharmony_ci-- sNaN
2027db96d56Sopenharmony_ciddcan256 copy  #7e00ff3fcffffcff  -> #7e00ff3fcffffcff
2037db96d56Sopenharmony_ciddcan257 copy  #7e40ff3fcff3fcff  -> #7e40ff3fcff3fcff
2047db96d56Sopenharmony_ci-- Inf
2057db96d56Sopenharmony_ciddcan258 copy  #7a00000000000000  -> #7a00000000000000
2067db96d56Sopenharmony_ciddcan259 copy  #7800200000000000  -> #7800200000000000
2077db96d56Sopenharmony_ci
2087db96d56Sopenharmony_ci----- CopyAbs: [does not usually canonicalize]
2097db96d56Sopenharmony_ci-- finites
2107db96d56Sopenharmony_ciddcan260 copyabs  #f7ffff3fcff3fcff  -> #77ffff3fcff3fcff
2117db96d56Sopenharmony_ciddcan261 copyabs  #f7fcff3fdff3fcff  -> #77fcff3fdff3fcff
2127db96d56Sopenharmony_ci-- NaNs
2137db96d56Sopenharmony_ciddcan262 copyabs  #fc03ff3fcff3fcff  -> #7c03ff3fcff3fcff
2147db96d56Sopenharmony_ciddcan263 copyabs  #fc00ff3fcff3ffff  -> #7c00ff3fcff3ffff
2157db96d56Sopenharmony_ciddcan264 copyabs  #fd00ff3fcff3fcff  -> #7d00ff3fcff3fcff
2167db96d56Sopenharmony_ciddcan265 copyabs  #fc04ff3fcff3fcff  -> #7c04ff3fcff3fcff
2177db96d56Sopenharmony_ci-- sNaN
2187db96d56Sopenharmony_ciddcan266 copyabs  #fe00ff3fcffffcff  -> #7e00ff3fcffffcff
2197db96d56Sopenharmony_ciddcan267 copyabs  #fe40ff3fcff3fcff  -> #7e40ff3fcff3fcff
2207db96d56Sopenharmony_ci-- Inf
2217db96d56Sopenharmony_ciddcan268 copyabs  #fa00000000000000  -> #7a00000000000000
2227db96d56Sopenharmony_ciddcan269 copyabs  #f800200000000000  -> #7800200000000000
2237db96d56Sopenharmony_ci
2247db96d56Sopenharmony_ci----- CopyNegate: [does not usually canonicalize]
2257db96d56Sopenharmony_ci-- finites
2267db96d56Sopenharmony_ciddcan270 copynegate  #77ffff3fcff3fcff  -> #f7ffff3fcff3fcff
2277db96d56Sopenharmony_ciddcan271 copynegate  #77fcff3fdff3fcff  -> #f7fcff3fdff3fcff
2287db96d56Sopenharmony_ci-- NaNs
2297db96d56Sopenharmony_ciddcan272 copynegate  #7c03ff3fcff3fcff  -> #fc03ff3fcff3fcff
2307db96d56Sopenharmony_ciddcan273 copynegate  #7c00ff3fcff3ffff  -> #fc00ff3fcff3ffff
2317db96d56Sopenharmony_ciddcan274 copynegate  #7d00ff3fcff3fcff  -> #fd00ff3fcff3fcff
2327db96d56Sopenharmony_ciddcan275 copynegate  #7c04ff3fcff3fcff  -> #fc04ff3fcff3fcff
2337db96d56Sopenharmony_ci-- sNaN
2347db96d56Sopenharmony_ciddcan276 copynegate  #7e00ff3fcffffcff  -> #fe00ff3fcffffcff
2357db96d56Sopenharmony_ciddcan277 copynegate  #7e40ff3fcff3fcff  -> #fe40ff3fcff3fcff
2367db96d56Sopenharmony_ci-- Inf
2377db96d56Sopenharmony_ciddcan278 copynegate  #7a00000000000000  -> #fa00000000000000
2387db96d56Sopenharmony_ciddcan279 copynegate  #7800200000000000  -> #f800200000000000
2397db96d56Sopenharmony_ci
2407db96d56Sopenharmony_ci----- CopySign: [does not usually canonicalize]
2417db96d56Sopenharmony_ci-- finites
2427db96d56Sopenharmony_ciddcan280 copysign  #77ffff3fcff3fcff -1 -> #f7ffff3fcff3fcff
2437db96d56Sopenharmony_ciddcan281 copysign  #77fcff3fdff3fcff  1 -> #77fcff3fdff3fcff
2447db96d56Sopenharmony_ci-- NaNs
2457db96d56Sopenharmony_ciddcan282 copysign  #7c03ff3fcff3fcff -1 -> #fc03ff3fcff3fcff
2467db96d56Sopenharmony_ciddcan283 copysign  #7c00ff3fcff3ffff  1 -> #7c00ff3fcff3ffff
2477db96d56Sopenharmony_ciddcan284 copysign  #7d00ff3fcff3fcff -1 -> #fd00ff3fcff3fcff
2487db96d56Sopenharmony_ciddcan285 copysign  #7c04ff3fcff3fcff  1 -> #7c04ff3fcff3fcff
2497db96d56Sopenharmony_ci-- sNaN
2507db96d56Sopenharmony_ciddcan286 copysign  #7e00ff3fcffffcff -1 -> #fe00ff3fcffffcff
2517db96d56Sopenharmony_ciddcan287 copysign  #7e40ff3fcff3fcff  1 -> #7e40ff3fcff3fcff
2527db96d56Sopenharmony_ci-- Inf
2537db96d56Sopenharmony_ciddcan288 copysign  #7a00000000000000 -1 -> #fa00000000000000
2547db96d56Sopenharmony_ciddcan289 copysign  #7800200000000000  1 -> #7800200000000000
2557db96d56Sopenharmony_ci
2567db96d56Sopenharmony_ci----- Multiply:
2577db96d56Sopenharmony_ci-- Finites: neutral 0
2587db96d56Sopenharmony_ciddcan302 multiply  1      #77ffff3fcff3fcff        -> #77fcff3fcff3fcff
2597db96d56Sopenharmony_ciddcan303 multiply         #77fcffffcff3fcff  1     -> #77fcff3fcff3fcff
2607db96d56Sopenharmony_ci-- negative
2617db96d56Sopenharmony_ciddcan306 multiply -1      #77ffff3fcff3fcff        -> #f7fcff3fcff3fcff
2627db96d56Sopenharmony_ciddcan307 multiply         #77fcffffcff3fcff -1     -> #f7fcff3fcff3fcff
2637db96d56Sopenharmony_ci-- NaN: declets in payload
2647db96d56Sopenharmony_ciddcan311 multiply  1  #7c03ff3fcff3fcff      -> #7c00ff3fcff3fcff
2657db96d56Sopenharmony_ciddcan312 multiply     #7c03ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
2667db96d56Sopenharmony_ci-- NaN: exponent continuation bits [excluding sNaN selector]
2677db96d56Sopenharmony_ciddcan313 multiply  1  #7c40ff3fcff3fcff      -> #7c00ff3fcff3fcff
2687db96d56Sopenharmony_ciddcan314 multiply     #7c40ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
2697db96d56Sopenharmony_ci-- sNaN: declets in payload
2707db96d56Sopenharmony_ciddcan315 multiply  1  #7e00ffffcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
2717db96d56Sopenharmony_ciddcan316 multiply     #7e00ffffcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
2727db96d56Sopenharmony_ci-- sNaN: exponent continuation bits [excluding sNaN selector]
2737db96d56Sopenharmony_ciddcan317 multiply  1  #7e80ff3fcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
2747db96d56Sopenharmony_ciddcan318 multiply     #7e80ff3fcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
2757db96d56Sopenharmony_ci-- Inf: exponent continuation bits
2767db96d56Sopenharmony_ciddcan320 multiply  1  #7880000000000000      -> #7800000000000000
2777db96d56Sopenharmony_ciddcan321 multiply     #7880000000000000  1   -> #7800000000000000
2787db96d56Sopenharmony_ci-- Inf: coefficient continuation bits
2797db96d56Sopenharmony_ciddcan322 multiply  1  #7802000000000000     -> #7800000000000000
2807db96d56Sopenharmony_ciddcan323 multiply     #7802000000000000  1  -> #7800000000000000
2817db96d56Sopenharmony_ciddcan324 multiply  1  #7800000000000001     -> #7800000000000000
2827db96d56Sopenharmony_ciddcan325 multiply     #7800000000000001  1  -> #7800000000000000
2837db96d56Sopenharmony_ciddcan326 multiply  1  #7800002000000000     -> #7800000000000000
2847db96d56Sopenharmony_ciddcan327 multiply     #7800002000000000  1  -> #7800000000000000
2857db96d56Sopenharmony_ci
2867db96d56Sopenharmony_ci----- Quantize:
2877db96d56Sopenharmony_ciddcan401 quantize  #6e38ff3ffff3fcff 1    -> #6e38ff3fcff3fcff
2887db96d56Sopenharmony_ciddcan402 quantize  #6e38ff3fcff3fdff 0    -> #6e38ff3fcff3fcff
2897db96d56Sopenharmony_ciddcan403 quantize  #7880000000000000 Inf  -> #7800000000000000
2907db96d56Sopenharmony_ciddcan404 quantize  #7802000000000000 -Inf -> #7800000000000000
2917db96d56Sopenharmony_ciddcan410 quantize  #7c03ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
2927db96d56Sopenharmony_ciddcan411 quantize  #7c03ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
2937db96d56Sopenharmony_ciddcan412 quantize  #7c40ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
2947db96d56Sopenharmony_ciddcan413 quantize  #7c40ff3fcff3fcff  1   -> #7c00ff3fcff3fcff
2957db96d56Sopenharmony_ciddcan414 quantize  #7e00ffffcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
2967db96d56Sopenharmony_ciddcan415 quantize  #7e00ffffcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
2977db96d56Sopenharmony_ciddcan416 quantize  #7e80ff3fcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
2987db96d56Sopenharmony_ciddcan417 quantize  #7e80ff3fcff3fcff  1   -> #7c00ff3fcff3fcff Invalid_operation
2997db96d56Sopenharmony_ci
3007db96d56Sopenharmony_ci----- Subtract:
3017db96d56Sopenharmony_ci-- Finites: neutral 0
3027db96d56Sopenharmony_ciddcan502 subtract  0E+384 #77ffff3fcff3fcff        -> #f7fcff3fcff3fcff
3037db96d56Sopenharmony_ciddcan503 subtract         #77fcffffcff3fcff 0E+384 -> #77fcff3fcff3fcff
3047db96d56Sopenharmony_ci-- tiny zero
3057db96d56Sopenharmony_ciddcan504 subtract  0E-398 #77ffff3fcff3fcff        -> #f7fcff3fcff3fcff Rounded
3067db96d56Sopenharmony_ciddcan505 subtract         #77fcffffcff3fcff 0E-398 -> #77fcff3fcff3fcff Rounded
3077db96d56Sopenharmony_ci-- tiny non zero
3087db96d56Sopenharmony_ciddcan506 subtract -1E-398 #77ffff3fcff3fcff         -> #f7fcff3fcff3fcff Inexact Rounded
3097db96d56Sopenharmony_ciddcan507 subtract         #77ffff3fcff3fcff -1E-398 -> #77fcff3fcff3fcff Inexact Rounded
3107db96d56Sopenharmony_ci-- NaN: declets in payload
3117db96d56Sopenharmony_ciddcan511 subtract  0  #7c03ff3fcff3fcff      -> #7c00ff3fcff3fcff
3127db96d56Sopenharmony_ciddcan512 subtract     #7c03ff3fcff3fcff  0   -> #7c00ff3fcff3fcff
3137db96d56Sopenharmony_ci-- NaN: exponent continuation bits [excluding sNaN selector]
3147db96d56Sopenharmony_ciddcan513 subtract  0  #7c40ff3fcff3fcff      -> #7c00ff3fcff3fcff
3157db96d56Sopenharmony_ciddcan514 subtract     #7c40ff3fcff3fcff  0   -> #7c00ff3fcff3fcff
3167db96d56Sopenharmony_ci-- sNaN: declets in payload
3177db96d56Sopenharmony_ciddcan515 subtract  0  #7e00ffffcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
3187db96d56Sopenharmony_ciddcan516 subtract     #7e00ffffcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation
3197db96d56Sopenharmony_ci-- sNaN: exponent continuation bits [excluding sNaN selector]
3207db96d56Sopenharmony_ciddcan517 subtract  0  #7e80ff3fcff3fcff      -> #7c00ff3fcff3fcff Invalid_operation
3217db96d56Sopenharmony_ciddcan518 subtract     #7e80ff3fcff3fcff  0   -> #7c00ff3fcff3fcff Invalid_operation
3227db96d56Sopenharmony_ci-- Inf: exponent continuation bits
3237db96d56Sopenharmony_ciddcan520 subtract  0  #7880000000000000      -> #f800000000000000
3247db96d56Sopenharmony_ciddcan521 subtract     #7880000000000000  0   -> #7800000000000000
3257db96d56Sopenharmony_ci-- Inf: coefficient continuation bits
3267db96d56Sopenharmony_ciddcan522 subtract  0  #7802000000000000     -> #f800000000000000
3277db96d56Sopenharmony_ciddcan523 subtract     #7802000000000000  0  -> #7800000000000000
3287db96d56Sopenharmony_ciddcan524 subtract  0  #7800000000000001     -> #f800000000000000
3297db96d56Sopenharmony_ciddcan525 subtract     #7800000000000001  0  -> #7800000000000000
3307db96d56Sopenharmony_ciddcan526 subtract  0  #7800002000000000     -> #f800000000000000
3317db96d56Sopenharmony_ciddcan527 subtract     #7800002000000000  0  -> #7800000000000000
3327db96d56Sopenharmony_ci
3337db96d56Sopenharmony_ci----- ToIntegral:
3347db96d56Sopenharmony_ciddcan601 tointegralx  #6e38ff3ffff3fcff -> #6e38ff3fcff3fcff
3357db96d56Sopenharmony_ciddcan602 tointegralx  #6e38ff3fcff3fdff -> #6e38ff3fcff3fcff
3367db96d56Sopenharmony_ciddcan603 tointegralx  #7880000000000000 -> #7800000000000000
3377db96d56Sopenharmony_ciddcan604 tointegralx  #7802000000000000 -> #7800000000000000
3387db96d56Sopenharmony_ciddcan610 tointegralx  #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff
3397db96d56Sopenharmony_ciddcan611 tointegralx  #7c03ff3fcff3fcff -> #7c00ff3fcff3fcff
3407db96d56Sopenharmony_ciddcan612 tointegralx  #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff
3417db96d56Sopenharmony_ciddcan613 tointegralx  #7c40ff3fcff3fcff -> #7c00ff3fcff3fcff
3427db96d56Sopenharmony_ciddcan614 tointegralx  #7e00ffffcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
3437db96d56Sopenharmony_ciddcan615 tointegralx  #7e00ffffcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
3447db96d56Sopenharmony_ciddcan616 tointegralx  #7e80ff3fcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
3457db96d56Sopenharmony_ciddcan617 tointegralx  #7e80ff3fcff3fcff -> #7c00ff3fcff3fcff Invalid_operation
3467db96d56Sopenharmony_ci-- uncanonical 3999, 39.99, 3.99, 0.399, and negatives
3477db96d56Sopenharmony_ciddcan618 tointegralx  #2238000000000fff -> #2238000000000cff
3487db96d56Sopenharmony_ciddcan619 tointegralx  #2230000000000fff -> #2238000000000040 Inexact Rounded
3497db96d56Sopenharmony_ciddcan620 tointegralx  #222c000000000fff -> #2238000000000004 Inexact Rounded
3507db96d56Sopenharmony_ciddcan621 tointegralx  #2228000000000fff -> #2238000000000000 Inexact Rounded
3517db96d56Sopenharmony_ciddcan622 tointegralx  #a238000000000fff -> #a238000000000cff
3527db96d56Sopenharmony_ciddcan623 tointegralx  #a230000000000fff -> #a238000000000040 Inexact Rounded
3537db96d56Sopenharmony_ciddcan624 tointegralx  #a22c000000000fff -> #a238000000000004 Inexact Rounded
3547db96d56Sopenharmony_ciddcan625 tointegralx  #a228000000000fff -> #a238000000000000 Inexact Rounded
3557db96d56Sopenharmony_ci
3567db96d56Sopenharmony_ci
3577db96d56Sopenharmony_ci
358