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