17db96d56Sopenharmony_ci------------------------------------------------------------------------ 27db96d56Sopenharmony_ci-- dqMultiply.decTest -- decQuad multiplication -- 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 set of tests are for decQuads only; all arguments are 237db96d56Sopenharmony_ci-- representable in a decQuad 247db96d56Sopenharmony_ciextended: 1 257db96d56Sopenharmony_ciclamp: 1 267db96d56Sopenharmony_ciprecision: 34 277db96d56Sopenharmony_cimaxExponent: 6144 287db96d56Sopenharmony_ciminExponent: -6143 297db96d56Sopenharmony_cirounding: half_even 307db96d56Sopenharmony_ci 317db96d56Sopenharmony_ci-- sanity checks 327db96d56Sopenharmony_cidqmul000 multiply 2 2 -> 4 337db96d56Sopenharmony_cidqmul001 multiply 2 3 -> 6 347db96d56Sopenharmony_cidqmul002 multiply 5 1 -> 5 357db96d56Sopenharmony_cidqmul003 multiply 5 2 -> 10 367db96d56Sopenharmony_cidqmul004 multiply 1.20 2 -> 2.40 377db96d56Sopenharmony_cidqmul005 multiply 1.20 0 -> 0.00 387db96d56Sopenharmony_cidqmul006 multiply 1.20 -2 -> -2.40 397db96d56Sopenharmony_cidqmul007 multiply -1.20 2 -> -2.40 407db96d56Sopenharmony_cidqmul008 multiply -1.20 0 -> -0.00 417db96d56Sopenharmony_cidqmul009 multiply -1.20 -2 -> 2.40 427db96d56Sopenharmony_cidqmul010 multiply 5.09 7.1 -> 36.139 437db96d56Sopenharmony_cidqmul011 multiply 2.5 4 -> 10.0 447db96d56Sopenharmony_cidqmul012 multiply 2.50 4 -> 10.00 457db96d56Sopenharmony_cidqmul013 multiply 1.23456789 1.0000000000000000000000000000 -> 1.234567890000000000000000000000000 Rounded 467db96d56Sopenharmony_cidqmul015 multiply 2.50 4 -> 10.00 477db96d56Sopenharmony_cidqmul016 multiply 9.99999999999999999 9.99999999999999999 -> 99.99999999999999980000000000000000 Inexact Rounded 487db96d56Sopenharmony_cidqmul017 multiply 9.99999999999999999 -9.99999999999999999 -> -99.99999999999999980000000000000000 Inexact Rounded 497db96d56Sopenharmony_cidqmul018 multiply -9.99999999999999999 9.99999999999999999 -> -99.99999999999999980000000000000000 Inexact Rounded 507db96d56Sopenharmony_cidqmul019 multiply -9.99999999999999999 -9.99999999999999999 -> 99.99999999999999980000000000000000 Inexact Rounded 517db96d56Sopenharmony_ci 527db96d56Sopenharmony_ci-- zeros, etc. 537db96d56Sopenharmony_cidqmul021 multiply 0 0 -> 0 547db96d56Sopenharmony_cidqmul022 multiply 0 -0 -> -0 557db96d56Sopenharmony_cidqmul023 multiply -0 0 -> -0 567db96d56Sopenharmony_cidqmul024 multiply -0 -0 -> 0 577db96d56Sopenharmony_cidqmul025 multiply -0.0 -0.0 -> 0.00 587db96d56Sopenharmony_cidqmul026 multiply -0.0 -0.0 -> 0.00 597db96d56Sopenharmony_cidqmul027 multiply -0.0 -0.0 -> 0.00 607db96d56Sopenharmony_cidqmul028 multiply -0.0 -0.0 -> 0.00 617db96d56Sopenharmony_cidqmul030 multiply 5.00 1E-3 -> 0.00500 627db96d56Sopenharmony_cidqmul031 multiply 00.00 0.000 -> 0.00000 637db96d56Sopenharmony_cidqmul032 multiply 00.00 0E-3 -> 0.00000 -- rhs is 0 647db96d56Sopenharmony_cidqmul033 multiply 0E-3 00.00 -> 0.00000 -- lhs is 0 657db96d56Sopenharmony_cidqmul034 multiply -5.00 1E-3 -> -0.00500 667db96d56Sopenharmony_cidqmul035 multiply -00.00 0.000 -> -0.00000 677db96d56Sopenharmony_cidqmul036 multiply -00.00 0E-3 -> -0.00000 -- rhs is 0 687db96d56Sopenharmony_cidqmul037 multiply -0E-3 00.00 -> -0.00000 -- lhs is 0 697db96d56Sopenharmony_cidqmul038 multiply 5.00 -1E-3 -> -0.00500 707db96d56Sopenharmony_cidqmul039 multiply 00.00 -0.000 -> -0.00000 717db96d56Sopenharmony_cidqmul040 multiply 00.00 -0E-3 -> -0.00000 -- rhs is 0 727db96d56Sopenharmony_cidqmul041 multiply 0E-3 -00.00 -> -0.00000 -- lhs is 0 737db96d56Sopenharmony_cidqmul042 multiply -5.00 -1E-3 -> 0.00500 747db96d56Sopenharmony_cidqmul043 multiply -00.00 -0.000 -> 0.00000 757db96d56Sopenharmony_cidqmul044 multiply -00.00 -0E-3 -> 0.00000 -- rhs is 0 767db96d56Sopenharmony_cidqmul045 multiply -0E-3 -00.00 -> 0.00000 -- lhs is 0 777db96d56Sopenharmony_ci 787db96d56Sopenharmony_ci-- examples from decarith 797db96d56Sopenharmony_cidqmul050 multiply 1.20 3 -> 3.60 807db96d56Sopenharmony_cidqmul051 multiply 7 3 -> 21 817db96d56Sopenharmony_cidqmul052 multiply 0.9 0.8 -> 0.72 827db96d56Sopenharmony_cidqmul053 multiply 0.9 -0 -> -0.0 837db96d56Sopenharmony_cidqmul054 multiply 654321 654321 -> 428135971041 847db96d56Sopenharmony_ci 857db96d56Sopenharmony_cidqmul060 multiply 123.45 1e7 -> 1.2345E+9 867db96d56Sopenharmony_cidqmul061 multiply 123.45 1e8 -> 1.2345E+10 877db96d56Sopenharmony_cidqmul062 multiply 123.45 1e+9 -> 1.2345E+11 887db96d56Sopenharmony_cidqmul063 multiply 123.45 1e10 -> 1.2345E+12 897db96d56Sopenharmony_cidqmul064 multiply 123.45 1e11 -> 1.2345E+13 907db96d56Sopenharmony_cidqmul065 multiply 123.45 1e12 -> 1.2345E+14 917db96d56Sopenharmony_cidqmul066 multiply 123.45 1e13 -> 1.2345E+15 927db96d56Sopenharmony_ci 937db96d56Sopenharmony_ci 947db96d56Sopenharmony_ci-- test some intermediate lengths 957db96d56Sopenharmony_ci-- 1234567890123456 967db96d56Sopenharmony_cidqmul080 multiply 0.1 1230123456456789 -> 123012345645678.9 977db96d56Sopenharmony_cidqmul084 multiply 0.1 1230123456456789 -> 123012345645678.9 987db96d56Sopenharmony_cidqmul090 multiply 1230123456456789 0.1 -> 123012345645678.9 997db96d56Sopenharmony_cidqmul094 multiply 1230123456456789 0.1 -> 123012345645678.9 1007db96d56Sopenharmony_ci 1017db96d56Sopenharmony_ci-- test some more edge cases and carries 1027db96d56Sopenharmony_cidqmul101 multiply 9 9 -> 81 1037db96d56Sopenharmony_cidqmul102 multiply 9 90 -> 810 1047db96d56Sopenharmony_cidqmul103 multiply 9 900 -> 8100 1057db96d56Sopenharmony_cidqmul104 multiply 9 9000 -> 81000 1067db96d56Sopenharmony_cidqmul105 multiply 9 90000 -> 810000 1077db96d56Sopenharmony_cidqmul106 multiply 9 900000 -> 8100000 1087db96d56Sopenharmony_cidqmul107 multiply 9 9000000 -> 81000000 1097db96d56Sopenharmony_cidqmul108 multiply 9 90000000 -> 810000000 1107db96d56Sopenharmony_cidqmul109 multiply 9 900000000 -> 8100000000 1117db96d56Sopenharmony_cidqmul110 multiply 9 9000000000 -> 81000000000 1127db96d56Sopenharmony_cidqmul111 multiply 9 90000000000 -> 810000000000 1137db96d56Sopenharmony_cidqmul112 multiply 9 900000000000 -> 8100000000000 1147db96d56Sopenharmony_cidqmul113 multiply 9 9000000000000 -> 81000000000000 1157db96d56Sopenharmony_cidqmul114 multiply 9 90000000000000 -> 810000000000000 1167db96d56Sopenharmony_cidqmul115 multiply 9 900000000000000 -> 8100000000000000 1177db96d56Sopenharmony_ci--dqmul116 multiply 9 9000000000000000 -> 81000000000000000 1187db96d56Sopenharmony_ci--dqmul117 multiply 9 90000000000000000 -> 810000000000000000 1197db96d56Sopenharmony_ci--dqmul118 multiply 9 900000000000000000 -> 8100000000000000000 1207db96d56Sopenharmony_ci--dqmul119 multiply 9 9000000000000000000 -> 81000000000000000000 1217db96d56Sopenharmony_ci--dqmul120 multiply 9 90000000000000000000 -> 810000000000000000000 1227db96d56Sopenharmony_ci--dqmul121 multiply 9 900000000000000000000 -> 8100000000000000000000 1237db96d56Sopenharmony_ci--dqmul122 multiply 9 9000000000000000000000 -> 81000000000000000000000 1247db96d56Sopenharmony_ci--dqmul123 multiply 9 90000000000000000000000 -> 810000000000000000000000 1257db96d56Sopenharmony_ci-- test some more edge cases without carries 1267db96d56Sopenharmony_cidqmul131 multiply 3 3 -> 9 1277db96d56Sopenharmony_cidqmul132 multiply 3 30 -> 90 1287db96d56Sopenharmony_cidqmul133 multiply 3 300 -> 900 1297db96d56Sopenharmony_cidqmul134 multiply 3 3000 -> 9000 1307db96d56Sopenharmony_cidqmul135 multiply 3 30000 -> 90000 1317db96d56Sopenharmony_cidqmul136 multiply 3 300000 -> 900000 1327db96d56Sopenharmony_cidqmul137 multiply 3 3000000 -> 9000000 1337db96d56Sopenharmony_cidqmul138 multiply 3 30000000 -> 90000000 1347db96d56Sopenharmony_cidqmul139 multiply 3 300000000 -> 900000000 1357db96d56Sopenharmony_cidqmul140 multiply 3 3000000000 -> 9000000000 1367db96d56Sopenharmony_cidqmul141 multiply 3 30000000000 -> 90000000000 1377db96d56Sopenharmony_cidqmul142 multiply 3 300000000000 -> 900000000000 1387db96d56Sopenharmony_cidqmul143 multiply 3 3000000000000 -> 9000000000000 1397db96d56Sopenharmony_cidqmul144 multiply 3 30000000000000 -> 90000000000000 1407db96d56Sopenharmony_cidqmul145 multiply 3 300000000000000 -> 900000000000000 1417db96d56Sopenharmony_cidqmul146 multiply 3 3000000000000000 -> 9000000000000000 1427db96d56Sopenharmony_cidqmul147 multiply 3 30000000000000000 -> 90000000000000000 1437db96d56Sopenharmony_cidqmul148 multiply 3 300000000000000000 -> 900000000000000000 1447db96d56Sopenharmony_cidqmul149 multiply 3 3000000000000000000 -> 9000000000000000000 1457db96d56Sopenharmony_cidqmul150 multiply 3 30000000000000000000 -> 90000000000000000000 1467db96d56Sopenharmony_cidqmul151 multiply 3 300000000000000000000 -> 900000000000000000000 1477db96d56Sopenharmony_cidqmul152 multiply 3 3000000000000000000000 -> 9000000000000000000000 1487db96d56Sopenharmony_cidqmul153 multiply 3 30000000000000000000000 -> 90000000000000000000000 1497db96d56Sopenharmony_ci 1507db96d56Sopenharmony_cidqmul263 multiply 30269.587755640502150977251770554 4.8046009735990873395936309640543 -> 145433.2908011933696719165119928296 Inexact Rounded 1517db96d56Sopenharmony_ci 1527db96d56Sopenharmony_ci-- test some edge cases with exact rounding 1537db96d56Sopenharmony_cidqmul301 multiply 900000000000000000 9 -> 8100000000000000000 1547db96d56Sopenharmony_cidqmul302 multiply 900000000000000000 90 -> 81000000000000000000 1557db96d56Sopenharmony_cidqmul303 multiply 900000000000000000 900 -> 810000000000000000000 1567db96d56Sopenharmony_cidqmul304 multiply 900000000000000000 9000 -> 8100000000000000000000 1577db96d56Sopenharmony_cidqmul305 multiply 900000000000000000 90000 -> 81000000000000000000000 1587db96d56Sopenharmony_cidqmul306 multiply 900000000000000000 900000 -> 810000000000000000000000 1597db96d56Sopenharmony_cidqmul307 multiply 900000000000000000 9000000 -> 8100000000000000000000000 1607db96d56Sopenharmony_cidqmul308 multiply 900000000000000000 90000000 -> 81000000000000000000000000 1617db96d56Sopenharmony_cidqmul309 multiply 900000000000000000 900000000 -> 810000000000000000000000000 1627db96d56Sopenharmony_cidqmul310 multiply 900000000000000000 9000000000 -> 8100000000000000000000000000 1637db96d56Sopenharmony_cidqmul311 multiply 900000000000000000 90000000000 -> 81000000000000000000000000000 1647db96d56Sopenharmony_cidqmul312 multiply 900000000000000000 900000000000 -> 810000000000000000000000000000 1657db96d56Sopenharmony_cidqmul313 multiply 900000000000000000 9000000000000 -> 8100000000000000000000000000000 1667db96d56Sopenharmony_cidqmul314 multiply 900000000000000000 90000000000000 -> 81000000000000000000000000000000 1677db96d56Sopenharmony_cidqmul315 multiply 900000000000000000 900000000000000 -> 810000000000000000000000000000000 1687db96d56Sopenharmony_cidqmul316 multiply 900000000000000000 9000000000000000 -> 8100000000000000000000000000000000 1697db96d56Sopenharmony_cidqmul317 multiply 9000000000000000000 9000000000000000 -> 8.100000000000000000000000000000000E+34 Rounded 1707db96d56Sopenharmony_cidqmul318 multiply 90000000000000000000 9000000000000000 -> 8.100000000000000000000000000000000E+35 Rounded 1717db96d56Sopenharmony_cidqmul319 multiply 900000000000000000000 9000000000000000 -> 8.100000000000000000000000000000000E+36 Rounded 1727db96d56Sopenharmony_cidqmul320 multiply 9000000000000000000000 9000000000000000 -> 8.100000000000000000000000000000000E+37 Rounded 1737db96d56Sopenharmony_cidqmul321 multiply 90000000000000000000000 9000000000000000 -> 8.100000000000000000000000000000000E+38 Rounded 1747db96d56Sopenharmony_cidqmul322 multiply 900000000000000000000000 9000000000000000 -> 8.100000000000000000000000000000000E+39 Rounded 1757db96d56Sopenharmony_cidqmul323 multiply 9000000000000000000000000 9000000000000000 -> 8.100000000000000000000000000000000E+40 Rounded 1767db96d56Sopenharmony_ci 1777db96d56Sopenharmony_ci-- tryzeros cases 1787db96d56Sopenharmony_cidqmul504 multiply 0E-4260 1000E-4260 -> 0E-6176 Clamped 1797db96d56Sopenharmony_cidqmul505 multiply 100E+4260 0E+4260 -> 0E+6111 Clamped 1807db96d56Sopenharmony_ci 1817db96d56Sopenharmony_ci-- mixed with zeros 1827db96d56Sopenharmony_cidqmul541 multiply 0 -1 -> -0 1837db96d56Sopenharmony_cidqmul542 multiply -0 -1 -> 0 1847db96d56Sopenharmony_cidqmul543 multiply 0 1 -> 0 1857db96d56Sopenharmony_cidqmul544 multiply -0 1 -> -0 1867db96d56Sopenharmony_cidqmul545 multiply -1 0 -> -0 1877db96d56Sopenharmony_cidqmul546 multiply -1 -0 -> 0 1887db96d56Sopenharmony_cidqmul547 multiply 1 0 -> 0 1897db96d56Sopenharmony_cidqmul548 multiply 1 -0 -> -0 1907db96d56Sopenharmony_ci 1917db96d56Sopenharmony_cidqmul551 multiply 0.0 -1 -> -0.0 1927db96d56Sopenharmony_cidqmul552 multiply -0.0 -1 -> 0.0 1937db96d56Sopenharmony_cidqmul553 multiply 0.0 1 -> 0.0 1947db96d56Sopenharmony_cidqmul554 multiply -0.0 1 -> -0.0 1957db96d56Sopenharmony_cidqmul555 multiply -1.0 0 -> -0.0 1967db96d56Sopenharmony_cidqmul556 multiply -1.0 -0 -> 0.0 1977db96d56Sopenharmony_cidqmul557 multiply 1.0 0 -> 0.0 1987db96d56Sopenharmony_cidqmul558 multiply 1.0 -0 -> -0.0 1997db96d56Sopenharmony_ci 2007db96d56Sopenharmony_cidqmul561 multiply 0 -1.0 -> -0.0 2017db96d56Sopenharmony_cidqmul562 multiply -0 -1.0 -> 0.0 2027db96d56Sopenharmony_cidqmul563 multiply 0 1.0 -> 0.0 2037db96d56Sopenharmony_cidqmul564 multiply -0 1.0 -> -0.0 2047db96d56Sopenharmony_cidqmul565 multiply -1 0.0 -> -0.0 2057db96d56Sopenharmony_cidqmul566 multiply -1 -0.0 -> 0.0 2067db96d56Sopenharmony_cidqmul567 multiply 1 0.0 -> 0.0 2077db96d56Sopenharmony_cidqmul568 multiply 1 -0.0 -> -0.0 2087db96d56Sopenharmony_ci 2097db96d56Sopenharmony_cidqmul571 multiply 0.0 -1.0 -> -0.00 2107db96d56Sopenharmony_cidqmul572 multiply -0.0 -1.0 -> 0.00 2117db96d56Sopenharmony_cidqmul573 multiply 0.0 1.0 -> 0.00 2127db96d56Sopenharmony_cidqmul574 multiply -0.0 1.0 -> -0.00 2137db96d56Sopenharmony_cidqmul575 multiply -1.0 0.0 -> -0.00 2147db96d56Sopenharmony_cidqmul576 multiply -1.0 -0.0 -> 0.00 2157db96d56Sopenharmony_cidqmul577 multiply 1.0 0.0 -> 0.00 2167db96d56Sopenharmony_cidqmul578 multiply 1.0 -0.0 -> -0.00 2177db96d56Sopenharmony_ci 2187db96d56Sopenharmony_ci 2197db96d56Sopenharmony_ci-- Specials 2207db96d56Sopenharmony_cidqmul580 multiply Inf -Inf -> -Infinity 2217db96d56Sopenharmony_cidqmul581 multiply Inf -1000 -> -Infinity 2227db96d56Sopenharmony_cidqmul582 multiply Inf -1 -> -Infinity 2237db96d56Sopenharmony_cidqmul583 multiply Inf -0 -> NaN Invalid_operation 2247db96d56Sopenharmony_cidqmul584 multiply Inf 0 -> NaN Invalid_operation 2257db96d56Sopenharmony_cidqmul585 multiply Inf 1 -> Infinity 2267db96d56Sopenharmony_cidqmul586 multiply Inf 1000 -> Infinity 2277db96d56Sopenharmony_cidqmul587 multiply Inf Inf -> Infinity 2287db96d56Sopenharmony_cidqmul588 multiply -1000 Inf -> -Infinity 2297db96d56Sopenharmony_cidqmul589 multiply -Inf Inf -> -Infinity 2307db96d56Sopenharmony_cidqmul590 multiply -1 Inf -> -Infinity 2317db96d56Sopenharmony_cidqmul591 multiply -0 Inf -> NaN Invalid_operation 2327db96d56Sopenharmony_cidqmul592 multiply 0 Inf -> NaN Invalid_operation 2337db96d56Sopenharmony_cidqmul593 multiply 1 Inf -> Infinity 2347db96d56Sopenharmony_cidqmul594 multiply 1000 Inf -> Infinity 2357db96d56Sopenharmony_cidqmul595 multiply Inf Inf -> Infinity 2367db96d56Sopenharmony_ci 2377db96d56Sopenharmony_cidqmul600 multiply -Inf -Inf -> Infinity 2387db96d56Sopenharmony_cidqmul601 multiply -Inf -1000 -> Infinity 2397db96d56Sopenharmony_cidqmul602 multiply -Inf -1 -> Infinity 2407db96d56Sopenharmony_cidqmul603 multiply -Inf -0 -> NaN Invalid_operation 2417db96d56Sopenharmony_cidqmul604 multiply -Inf 0 -> NaN Invalid_operation 2427db96d56Sopenharmony_cidqmul605 multiply -Inf 1 -> -Infinity 2437db96d56Sopenharmony_cidqmul606 multiply -Inf 1000 -> -Infinity 2447db96d56Sopenharmony_cidqmul607 multiply -Inf Inf -> -Infinity 2457db96d56Sopenharmony_cidqmul608 multiply -1000 Inf -> -Infinity 2467db96d56Sopenharmony_cidqmul609 multiply -Inf -Inf -> Infinity 2477db96d56Sopenharmony_cidqmul610 multiply -1 -Inf -> Infinity 2487db96d56Sopenharmony_cidqmul611 multiply -0 -Inf -> NaN Invalid_operation 2497db96d56Sopenharmony_cidqmul612 multiply 0 -Inf -> NaN Invalid_operation 2507db96d56Sopenharmony_cidqmul613 multiply 1 -Inf -> -Infinity 2517db96d56Sopenharmony_cidqmul614 multiply 1000 -Inf -> -Infinity 2527db96d56Sopenharmony_cidqmul615 multiply Inf -Inf -> -Infinity 2537db96d56Sopenharmony_ci 2547db96d56Sopenharmony_cidqmul621 multiply NaN -Inf -> NaN 2557db96d56Sopenharmony_cidqmul622 multiply NaN -1000 -> NaN 2567db96d56Sopenharmony_cidqmul623 multiply NaN -1 -> NaN 2577db96d56Sopenharmony_cidqmul624 multiply NaN -0 -> NaN 2587db96d56Sopenharmony_cidqmul625 multiply NaN 0 -> NaN 2597db96d56Sopenharmony_cidqmul626 multiply NaN 1 -> NaN 2607db96d56Sopenharmony_cidqmul627 multiply NaN 1000 -> NaN 2617db96d56Sopenharmony_cidqmul628 multiply NaN Inf -> NaN 2627db96d56Sopenharmony_cidqmul629 multiply NaN NaN -> NaN 2637db96d56Sopenharmony_cidqmul630 multiply -Inf NaN -> NaN 2647db96d56Sopenharmony_cidqmul631 multiply -1000 NaN -> NaN 2657db96d56Sopenharmony_cidqmul632 multiply -1 NaN -> NaN 2667db96d56Sopenharmony_cidqmul633 multiply -0 NaN -> NaN 2677db96d56Sopenharmony_cidqmul634 multiply 0 NaN -> NaN 2687db96d56Sopenharmony_cidqmul635 multiply 1 NaN -> NaN 2697db96d56Sopenharmony_cidqmul636 multiply 1000 NaN -> NaN 2707db96d56Sopenharmony_cidqmul637 multiply Inf NaN -> NaN 2717db96d56Sopenharmony_ci 2727db96d56Sopenharmony_cidqmul641 multiply sNaN -Inf -> NaN Invalid_operation 2737db96d56Sopenharmony_cidqmul642 multiply sNaN -1000 -> NaN Invalid_operation 2747db96d56Sopenharmony_cidqmul643 multiply sNaN -1 -> NaN Invalid_operation 2757db96d56Sopenharmony_cidqmul644 multiply sNaN -0 -> NaN Invalid_operation 2767db96d56Sopenharmony_cidqmul645 multiply sNaN 0 -> NaN Invalid_operation 2777db96d56Sopenharmony_cidqmul646 multiply sNaN 1 -> NaN Invalid_operation 2787db96d56Sopenharmony_cidqmul647 multiply sNaN 1000 -> NaN Invalid_operation 2797db96d56Sopenharmony_cidqmul648 multiply sNaN NaN -> NaN Invalid_operation 2807db96d56Sopenharmony_cidqmul649 multiply sNaN sNaN -> NaN Invalid_operation 2817db96d56Sopenharmony_cidqmul650 multiply NaN sNaN -> NaN Invalid_operation 2827db96d56Sopenharmony_cidqmul651 multiply -Inf sNaN -> NaN Invalid_operation 2837db96d56Sopenharmony_cidqmul652 multiply -1000 sNaN -> NaN Invalid_operation 2847db96d56Sopenharmony_cidqmul653 multiply -1 sNaN -> NaN Invalid_operation 2857db96d56Sopenharmony_cidqmul654 multiply -0 sNaN -> NaN Invalid_operation 2867db96d56Sopenharmony_cidqmul655 multiply 0 sNaN -> NaN Invalid_operation 2877db96d56Sopenharmony_cidqmul656 multiply 1 sNaN -> NaN Invalid_operation 2887db96d56Sopenharmony_cidqmul657 multiply 1000 sNaN -> NaN Invalid_operation 2897db96d56Sopenharmony_cidqmul658 multiply Inf sNaN -> NaN Invalid_operation 2907db96d56Sopenharmony_cidqmul659 multiply NaN sNaN -> NaN Invalid_operation 2917db96d56Sopenharmony_ci 2927db96d56Sopenharmony_ci-- propagating NaNs 2937db96d56Sopenharmony_cidqmul661 multiply NaN9 -Inf -> NaN9 2947db96d56Sopenharmony_cidqmul662 multiply NaN8 999 -> NaN8 2957db96d56Sopenharmony_cidqmul663 multiply NaN71 Inf -> NaN71 2967db96d56Sopenharmony_cidqmul664 multiply NaN6 NaN5 -> NaN6 2977db96d56Sopenharmony_cidqmul665 multiply -Inf NaN4 -> NaN4 2987db96d56Sopenharmony_cidqmul666 multiply -999 NaN33 -> NaN33 2997db96d56Sopenharmony_cidqmul667 multiply Inf NaN2 -> NaN2 3007db96d56Sopenharmony_ci 3017db96d56Sopenharmony_cidqmul671 multiply sNaN99 -Inf -> NaN99 Invalid_operation 3027db96d56Sopenharmony_cidqmul672 multiply sNaN98 -11 -> NaN98 Invalid_operation 3037db96d56Sopenharmony_cidqmul673 multiply sNaN97 NaN -> NaN97 Invalid_operation 3047db96d56Sopenharmony_cidqmul674 multiply sNaN16 sNaN94 -> NaN16 Invalid_operation 3057db96d56Sopenharmony_cidqmul675 multiply NaN95 sNaN93 -> NaN93 Invalid_operation 3067db96d56Sopenharmony_cidqmul676 multiply -Inf sNaN92 -> NaN92 Invalid_operation 3077db96d56Sopenharmony_cidqmul677 multiply 088 sNaN91 -> NaN91 Invalid_operation 3087db96d56Sopenharmony_cidqmul678 multiply Inf sNaN90 -> NaN90 Invalid_operation 3097db96d56Sopenharmony_cidqmul679 multiply NaN sNaN89 -> NaN89 Invalid_operation 3107db96d56Sopenharmony_ci 3117db96d56Sopenharmony_cidqmul681 multiply -NaN9 -Inf -> -NaN9 3127db96d56Sopenharmony_cidqmul682 multiply -NaN8 999 -> -NaN8 3137db96d56Sopenharmony_cidqmul683 multiply -NaN71 Inf -> -NaN71 3147db96d56Sopenharmony_cidqmul684 multiply -NaN6 -NaN5 -> -NaN6 3157db96d56Sopenharmony_cidqmul685 multiply -Inf -NaN4 -> -NaN4 3167db96d56Sopenharmony_cidqmul686 multiply -999 -NaN33 -> -NaN33 3177db96d56Sopenharmony_cidqmul687 multiply Inf -NaN2 -> -NaN2 3187db96d56Sopenharmony_ci 3197db96d56Sopenharmony_cidqmul691 multiply -sNaN99 -Inf -> -NaN99 Invalid_operation 3207db96d56Sopenharmony_cidqmul692 multiply -sNaN98 -11 -> -NaN98 Invalid_operation 3217db96d56Sopenharmony_cidqmul693 multiply -sNaN97 NaN -> -NaN97 Invalid_operation 3227db96d56Sopenharmony_cidqmul694 multiply -sNaN16 -sNaN94 -> -NaN16 Invalid_operation 3237db96d56Sopenharmony_cidqmul695 multiply -NaN95 -sNaN93 -> -NaN93 Invalid_operation 3247db96d56Sopenharmony_cidqmul696 multiply -Inf -sNaN92 -> -NaN92 Invalid_operation 3257db96d56Sopenharmony_cidqmul697 multiply 088 -sNaN91 -> -NaN91 Invalid_operation 3267db96d56Sopenharmony_cidqmul698 multiply Inf -sNaN90 -> -NaN90 Invalid_operation 3277db96d56Sopenharmony_cidqmul699 multiply -NaN -sNaN89 -> -NaN89 Invalid_operation 3287db96d56Sopenharmony_ci 3297db96d56Sopenharmony_cidqmul701 multiply -NaN -Inf -> -NaN 3307db96d56Sopenharmony_cidqmul702 multiply -NaN 999 -> -NaN 3317db96d56Sopenharmony_cidqmul703 multiply -NaN Inf -> -NaN 3327db96d56Sopenharmony_cidqmul704 multiply -NaN -NaN -> -NaN 3337db96d56Sopenharmony_cidqmul705 multiply -Inf -NaN0 -> -NaN 3347db96d56Sopenharmony_cidqmul706 multiply -999 -NaN -> -NaN 3357db96d56Sopenharmony_cidqmul707 multiply Inf -NaN -> -NaN 3367db96d56Sopenharmony_ci 3377db96d56Sopenharmony_cidqmul711 multiply -sNaN -Inf -> -NaN Invalid_operation 3387db96d56Sopenharmony_cidqmul712 multiply -sNaN -11 -> -NaN Invalid_operation 3397db96d56Sopenharmony_cidqmul713 multiply -sNaN00 NaN -> -NaN Invalid_operation 3407db96d56Sopenharmony_cidqmul714 multiply -sNaN -sNaN -> -NaN Invalid_operation 3417db96d56Sopenharmony_cidqmul715 multiply -NaN -sNaN -> -NaN Invalid_operation 3427db96d56Sopenharmony_cidqmul716 multiply -Inf -sNaN -> -NaN Invalid_operation 3437db96d56Sopenharmony_cidqmul717 multiply 088 -sNaN -> -NaN Invalid_operation 3447db96d56Sopenharmony_cidqmul718 multiply Inf -sNaN -> -NaN Invalid_operation 3457db96d56Sopenharmony_cidqmul719 multiply -NaN -sNaN -> -NaN Invalid_operation 3467db96d56Sopenharmony_ci 3477db96d56Sopenharmony_ci-- overflow and underflow tests .. note subnormal results 3487db96d56Sopenharmony_ci-- signs 3497db96d56Sopenharmony_cidqmul751 multiply 1e+4277 1e+3311 -> Infinity Overflow Inexact Rounded 3507db96d56Sopenharmony_cidqmul752 multiply 1e+4277 -1e+3311 -> -Infinity Overflow Inexact Rounded 3517db96d56Sopenharmony_cidqmul753 multiply -1e+4277 1e+3311 -> -Infinity Overflow Inexact Rounded 3527db96d56Sopenharmony_cidqmul754 multiply -1e+4277 -1e+3311 -> Infinity Overflow Inexact Rounded 3537db96d56Sopenharmony_cidqmul755 multiply 1e-4277 1e-3311 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped 3547db96d56Sopenharmony_cidqmul756 multiply 1e-4277 -1e-3311 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped 3557db96d56Sopenharmony_cidqmul757 multiply -1e-4277 1e-3311 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped 3567db96d56Sopenharmony_cidqmul758 multiply -1e-4277 -1e-3311 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped 3577db96d56Sopenharmony_ci 3587db96d56Sopenharmony_ci-- 'subnormal' boundary (all hard underflow or overflow in base arithmetic) 3597db96d56Sopenharmony_cidqmul760 multiply 1e-6069 1e-101 -> 1E-6170 Subnormal 3607db96d56Sopenharmony_cidqmul761 multiply 1e-6069 1e-102 -> 1E-6171 Subnormal 3617db96d56Sopenharmony_cidqmul762 multiply 1e-6069 1e-103 -> 1E-6172 Subnormal 3627db96d56Sopenharmony_cidqmul763 multiply 1e-6069 1e-104 -> 1E-6173 Subnormal 3637db96d56Sopenharmony_cidqmul764 multiply 1e-6069 1e-105 -> 1E-6174 Subnormal 3647db96d56Sopenharmony_cidqmul765 multiply 1e-6069 1e-106 -> 1E-6175 Subnormal 3657db96d56Sopenharmony_cidqmul766 multiply 1e-6069 1e-107 -> 1E-6176 Subnormal 3667db96d56Sopenharmony_cidqmul767 multiply 1e-6069 1e-108 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped 3677db96d56Sopenharmony_cidqmul768 multiply 1e-6069 1e-109 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped 3687db96d56Sopenharmony_cidqmul769 multiply 1e-6069 1e-110 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped 3697db96d56Sopenharmony_ci-- [no equivalent of 'subnormal' for overflow] 3707db96d56Sopenharmony_cidqmul770 multiply 1e+40 1e+6101 -> 1.000000000000000000000000000000E+6141 Clamped 3717db96d56Sopenharmony_cidqmul771 multiply 1e+40 1e+6102 -> 1.0000000000000000000000000000000E+6142 Clamped 3727db96d56Sopenharmony_cidqmul772 multiply 1e+40 1e+6103 -> 1.00000000000000000000000000000000E+6143 Clamped 3737db96d56Sopenharmony_cidqmul773 multiply 1e+40 1e+6104 -> 1.000000000000000000000000000000000E+6144 Clamped 3747db96d56Sopenharmony_cidqmul774 multiply 1e+40 1e+6105 -> Infinity Overflow Inexact Rounded 3757db96d56Sopenharmony_cidqmul775 multiply 1e+40 1e+6106 -> Infinity Overflow Inexact Rounded 3767db96d56Sopenharmony_cidqmul776 multiply 1e+40 1e+6107 -> Infinity Overflow Inexact Rounded 3777db96d56Sopenharmony_cidqmul777 multiply 1e+40 1e+6108 -> Infinity Overflow Inexact Rounded 3787db96d56Sopenharmony_cidqmul778 multiply 1e+40 1e+6109 -> Infinity Overflow Inexact Rounded 3797db96d56Sopenharmony_cidqmul779 multiply 1e+40 1e+6110 -> Infinity Overflow Inexact Rounded 3807db96d56Sopenharmony_ci 3817db96d56Sopenharmony_cidqmul801 multiply 1.0000E-6172 1 -> 1.0000E-6172 Subnormal 3827db96d56Sopenharmony_cidqmul802 multiply 1.000E-6172 1e-1 -> 1.000E-6173 Subnormal 3837db96d56Sopenharmony_cidqmul803 multiply 1.00E-6172 1e-2 -> 1.00E-6174 Subnormal 3847db96d56Sopenharmony_cidqmul804 multiply 1.0E-6172 1e-3 -> 1.0E-6175 Subnormal 3857db96d56Sopenharmony_cidqmul805 multiply 1.0E-6172 1e-4 -> 1E-6176 Subnormal Rounded 3867db96d56Sopenharmony_cidqmul806 multiply 1.3E-6172 1e-4 -> 1E-6176 Underflow Subnormal Inexact Rounded 3877db96d56Sopenharmony_cidqmul807 multiply 1.5E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded 3887db96d56Sopenharmony_cidqmul808 multiply 1.7E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded 3897db96d56Sopenharmony_cidqmul809 multiply 2.3E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded 3907db96d56Sopenharmony_cidqmul810 multiply 2.5E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded 3917db96d56Sopenharmony_cidqmul811 multiply 2.7E-6172 1e-4 -> 3E-6176 Underflow Subnormal Inexact Rounded 3927db96d56Sopenharmony_cidqmul812 multiply 1.49E-6172 1e-4 -> 1E-6176 Underflow Subnormal Inexact Rounded 3937db96d56Sopenharmony_cidqmul813 multiply 1.50E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded 3947db96d56Sopenharmony_cidqmul814 multiply 1.51E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded 3957db96d56Sopenharmony_cidqmul815 multiply 2.49E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded 3967db96d56Sopenharmony_cidqmul816 multiply 2.50E-6172 1e-4 -> 2E-6176 Underflow Subnormal Inexact Rounded 3977db96d56Sopenharmony_cidqmul817 multiply 2.51E-6172 1e-4 -> 3E-6176 Underflow Subnormal Inexact Rounded 3987db96d56Sopenharmony_ci 3997db96d56Sopenharmony_cidqmul818 multiply 1E-6172 1e-4 -> 1E-6176 Subnormal 4007db96d56Sopenharmony_cidqmul819 multiply 3E-6172 1e-5 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped 4017db96d56Sopenharmony_cidqmul820 multiply 5E-6172 1e-5 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped 4027db96d56Sopenharmony_cidqmul821 multiply 7E-6172 1e-5 -> 1E-6176 Underflow Subnormal Inexact Rounded 4037db96d56Sopenharmony_cidqmul822 multiply 9E-6172 1e-5 -> 1E-6176 Underflow Subnormal Inexact Rounded 4047db96d56Sopenharmony_cidqmul823 multiply 9.9E-6172 1e-5 -> 1E-6176 Underflow Subnormal Inexact Rounded 4057db96d56Sopenharmony_ci 4067db96d56Sopenharmony_cidqmul824 multiply 1E-6172 -1e-4 -> -1E-6176 Subnormal 4077db96d56Sopenharmony_cidqmul825 multiply 3E-6172 -1e-5 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped 4087db96d56Sopenharmony_cidqmul826 multiply -5E-6172 1e-5 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped 4097db96d56Sopenharmony_cidqmul827 multiply 7E-6172 -1e-5 -> -1E-6176 Underflow Subnormal Inexact Rounded 4107db96d56Sopenharmony_cidqmul828 multiply -9E-6172 1e-5 -> -1E-6176 Underflow Subnormal Inexact Rounded 4117db96d56Sopenharmony_cidqmul829 multiply 9.9E-6172 -1e-5 -> -1E-6176 Underflow Subnormal Inexact Rounded 4127db96d56Sopenharmony_cidqmul830 multiply 3.0E-6172 -1e-5 -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped 4137db96d56Sopenharmony_ci 4147db96d56Sopenharmony_cidqmul831 multiply 1.0E-5977 1e-200 -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped 4157db96d56Sopenharmony_cidqmul832 multiply 1.0E-5977 1e-199 -> 1E-6176 Subnormal Rounded 4167db96d56Sopenharmony_cidqmul833 multiply 1.0E-5977 1e-198 -> 1.0E-6175 Subnormal 4177db96d56Sopenharmony_cidqmul834 multiply 2.0E-5977 2e-198 -> 4.0E-6175 Subnormal 4187db96d56Sopenharmony_cidqmul835 multiply 4.0E-5977 4e-198 -> 1.60E-6174 Subnormal 4197db96d56Sopenharmony_cidqmul836 multiply 10.0E-5977 10e-198 -> 1.000E-6173 Subnormal 4207db96d56Sopenharmony_cidqmul837 multiply 30.0E-5977 30e-198 -> 9.000E-6173 Subnormal 4217db96d56Sopenharmony_cidqmul838 multiply 40.0E-5982 40e-166 -> 1.6000E-6145 Subnormal 4227db96d56Sopenharmony_cidqmul839 multiply 40.0E-5982 40e-165 -> 1.6000E-6144 Subnormal 4237db96d56Sopenharmony_cidqmul840 multiply 40.0E-5982 40e-164 -> 1.6000E-6143 4247db96d56Sopenharmony_ci 4257db96d56Sopenharmony_ci-- Long operand overflow may be a different path 4267db96d56Sopenharmony_cidqmul870 multiply 100 9.999E+6143 -> Infinity Inexact Overflow Rounded 4277db96d56Sopenharmony_cidqmul871 multiply 100 -9.999E+6143 -> -Infinity Inexact Overflow Rounded 4287db96d56Sopenharmony_cidqmul872 multiply 9.999E+6143 100 -> Infinity Inexact Overflow Rounded 4297db96d56Sopenharmony_cidqmul873 multiply -9.999E+6143 100 -> -Infinity Inexact Overflow Rounded 4307db96d56Sopenharmony_ci 4317db96d56Sopenharmony_ci-- check for double-rounded subnormals 4327db96d56Sopenharmony_cidqmul881 multiply 1.2347E-6133 1.2347E-40 -> 1.524E-6173 Inexact Rounded Subnormal Underflow 4337db96d56Sopenharmony_cidqmul882 multiply 1.234E-6133 1.234E-40 -> 1.523E-6173 Inexact Rounded Subnormal Underflow 4347db96d56Sopenharmony_cidqmul883 multiply 1.23E-6133 1.23E-40 -> 1.513E-6173 Inexact Rounded Subnormal Underflow 4357db96d56Sopenharmony_cidqmul884 multiply 1.2E-6133 1.2E-40 -> 1.44E-6173 Subnormal 4367db96d56Sopenharmony_cidqmul885 multiply 1.2E-6133 1.2E-41 -> 1.44E-6174 Subnormal 4377db96d56Sopenharmony_cidqmul886 multiply 1.2E-6133 1.2E-42 -> 1.4E-6175 Subnormal Inexact Rounded Underflow 4387db96d56Sopenharmony_cidqmul887 multiply 1.2E-6133 1.3E-42 -> 1.6E-6175 Subnormal Inexact Rounded Underflow 4397db96d56Sopenharmony_cidqmul888 multiply 1.3E-6133 1.3E-42 -> 1.7E-6175 Subnormal Inexact Rounded Underflow 4407db96d56Sopenharmony_cidqmul889 multiply 1.3E-6133 1.3E-43 -> 2E-6176 Subnormal Inexact Rounded Underflow 4417db96d56Sopenharmony_cidqmul890 multiply 1.3E-6134 1.3E-43 -> 0E-6176 Clamped Subnormal Inexact Rounded Underflow 4427db96d56Sopenharmony_ci 4437db96d56Sopenharmony_cidqmul891 multiply 1.2345E-39 1.234E-6133 -> 1.5234E-6172 Inexact Rounded Subnormal Underflow 4447db96d56Sopenharmony_cidqmul892 multiply 1.23456E-39 1.234E-6133 -> 1.5234E-6172 Inexact Rounded Subnormal Underflow 4457db96d56Sopenharmony_cidqmul893 multiply 1.2345E-40 1.234E-6133 -> 1.523E-6173 Inexact Rounded Subnormal Underflow 4467db96d56Sopenharmony_cidqmul894 multiply 1.23456E-40 1.234E-6133 -> 1.523E-6173 Inexact Rounded Subnormal Underflow 4477db96d56Sopenharmony_cidqmul895 multiply 1.2345E-41 1.234E-6133 -> 1.52E-6174 Inexact Rounded Subnormal Underflow 4487db96d56Sopenharmony_cidqmul896 multiply 1.23456E-41 1.234E-6133 -> 1.52E-6174 Inexact Rounded Subnormal Underflow 4497db96d56Sopenharmony_ci 4507db96d56Sopenharmony_ci-- Now explore the case where we get a normal result with Underflow 4517db96d56Sopenharmony_ci-- prove operands are exact 4527db96d56Sopenharmony_cidqmul906 multiply 9.999999999999999999999999999999999E-6143 1 -> 9.999999999999999999999999999999999E-6143 4537db96d56Sopenharmony_cidqmul907 multiply 1 0.09999999999999999999999999999999999 -> 0.09999999999999999999999999999999999 4547db96d56Sopenharmony_ci-- the next rounds to Nmin 4557db96d56Sopenharmony_cidqmul908 multiply 9.999999999999999999999999999999999E-6143 0.09999999999999999999999999999999999 -> 1.000000000000000000000000000000000E-6143 Underflow Inexact Subnormal Rounded 4567db96d56Sopenharmony_ci 4577db96d56Sopenharmony_ci-- hugest 4587db96d56Sopenharmony_cidqmul909 multiply 9999999999999999999999999999999999 9999999999999999999999999999999999 -> 9.999999999999999999999999999999998E+67 Inexact Rounded 4597db96d56Sopenharmony_ci-- VG case 4607db96d56Sopenharmony_cidqmul910 multiply 8.81125000000001349436E-1548 8.000000000000000000E-1550 -> 7.049000000000010795488000000000000E-3097 Rounded 4617db96d56Sopenharmony_ci 4627db96d56Sopenharmony_ci-- Examples from SQL proposal (Krishna Kulkarni) 4637db96d56Sopenharmony_ciprecision: 34 4647db96d56Sopenharmony_cirounding: half_up 4657db96d56Sopenharmony_cimaxExponent: 6144 4667db96d56Sopenharmony_ciminExponent: -6143 4677db96d56Sopenharmony_cidqmul911 multiply 130E-2 120E-2 -> 1.5600 4687db96d56Sopenharmony_cidqmul912 multiply 130E-2 12E-1 -> 1.560 4697db96d56Sopenharmony_cidqmul913 multiply 130E-2 1E0 -> 1.30 4707db96d56Sopenharmony_cidqmul914 multiply 1E2 1E4 -> 1E+6 4717db96d56Sopenharmony_ci 4727db96d56Sopenharmony_ci-- power-of-ten edge cases 4737db96d56Sopenharmony_cidqmul1001 multiply 1 10 -> 10 4747db96d56Sopenharmony_cidqmul1002 multiply 1 100 -> 100 4757db96d56Sopenharmony_cidqmul1003 multiply 1 1000 -> 1000 4767db96d56Sopenharmony_cidqmul1004 multiply 1 10000 -> 10000 4777db96d56Sopenharmony_cidqmul1005 multiply 1 100000 -> 100000 4787db96d56Sopenharmony_cidqmul1006 multiply 1 1000000 -> 1000000 4797db96d56Sopenharmony_cidqmul1007 multiply 1 10000000 -> 10000000 4807db96d56Sopenharmony_cidqmul1008 multiply 1 100000000 -> 100000000 4817db96d56Sopenharmony_cidqmul1009 multiply 1 1000000000 -> 1000000000 4827db96d56Sopenharmony_cidqmul1010 multiply 1 10000000000 -> 10000000000 4837db96d56Sopenharmony_cidqmul1011 multiply 1 100000000000 -> 100000000000 4847db96d56Sopenharmony_cidqmul1012 multiply 1 1000000000000 -> 1000000000000 4857db96d56Sopenharmony_cidqmul1013 multiply 1 10000000000000 -> 10000000000000 4867db96d56Sopenharmony_cidqmul1014 multiply 1 100000000000000 -> 100000000000000 4877db96d56Sopenharmony_cidqmul1015 multiply 1 1000000000000000 -> 1000000000000000 4887db96d56Sopenharmony_ci 4897db96d56Sopenharmony_cidqmul1016 multiply 1 1000000000000000000 -> 1000000000000000000 4907db96d56Sopenharmony_cidqmul1017 multiply 1 100000000000000000000000000 -> 100000000000000000000000000 4917db96d56Sopenharmony_cidqmul1018 multiply 1 1000000000000000000000000000 -> 1000000000000000000000000000 4927db96d56Sopenharmony_cidqmul1019 multiply 1 10000000000000000000000000000 -> 10000000000000000000000000000 4937db96d56Sopenharmony_cidqmul1020 multiply 1 1000000000000000000000000000000000 -> 1000000000000000000000000000000000 4947db96d56Sopenharmony_ci 4957db96d56Sopenharmony_cidqmul1021 multiply 10 1 -> 10 4967db96d56Sopenharmony_cidqmul1022 multiply 10 10 -> 100 4977db96d56Sopenharmony_cidqmul1023 multiply 10 100 -> 1000 4987db96d56Sopenharmony_cidqmul1024 multiply 10 1000 -> 10000 4997db96d56Sopenharmony_cidqmul1025 multiply 10 10000 -> 100000 5007db96d56Sopenharmony_cidqmul1026 multiply 10 100000 -> 1000000 5017db96d56Sopenharmony_cidqmul1027 multiply 10 1000000 -> 10000000 5027db96d56Sopenharmony_cidqmul1028 multiply 10 10000000 -> 100000000 5037db96d56Sopenharmony_cidqmul1029 multiply 10 100000000 -> 1000000000 5047db96d56Sopenharmony_cidqmul1030 multiply 10 1000000000 -> 10000000000 5057db96d56Sopenharmony_cidqmul1031 multiply 10 10000000000 -> 100000000000 5067db96d56Sopenharmony_cidqmul1032 multiply 10 100000000000 -> 1000000000000 5077db96d56Sopenharmony_cidqmul1033 multiply 10 1000000000000 -> 10000000000000 5087db96d56Sopenharmony_cidqmul1034 multiply 10 10000000000000 -> 100000000000000 5097db96d56Sopenharmony_cidqmul1035 multiply 10 100000000000000 -> 1000000000000000 5107db96d56Sopenharmony_ci 5117db96d56Sopenharmony_cidqmul1036 multiply 10 100000000000000000 -> 1000000000000000000 5127db96d56Sopenharmony_cidqmul1037 multiply 10 10000000000000000000000000 -> 100000000000000000000000000 5137db96d56Sopenharmony_cidqmul1038 multiply 10 100000000000000000000000000 -> 1000000000000000000000000000 5147db96d56Sopenharmony_cidqmul1039 multiply 10 1000000000000000000000000000 -> 10000000000000000000000000000 5157db96d56Sopenharmony_cidqmul1040 multiply 10 100000000000000000000000000000000 -> 1000000000000000000000000000000000 5167db96d56Sopenharmony_ci 5177db96d56Sopenharmony_cidqmul1041 multiply 100 0.1 -> 10.0 5187db96d56Sopenharmony_cidqmul1042 multiply 100 1 -> 100 5197db96d56Sopenharmony_cidqmul1043 multiply 100 10 -> 1000 5207db96d56Sopenharmony_cidqmul1044 multiply 100 100 -> 10000 5217db96d56Sopenharmony_cidqmul1045 multiply 100 1000 -> 100000 5227db96d56Sopenharmony_cidqmul1046 multiply 100 10000 -> 1000000 5237db96d56Sopenharmony_cidqmul1047 multiply 100 100000 -> 10000000 5247db96d56Sopenharmony_cidqmul1048 multiply 100 1000000 -> 100000000 5257db96d56Sopenharmony_cidqmul1049 multiply 100 10000000 -> 1000000000 5267db96d56Sopenharmony_cidqmul1050 multiply 100 100000000 -> 10000000000 5277db96d56Sopenharmony_cidqmul1051 multiply 100 1000000000 -> 100000000000 5287db96d56Sopenharmony_cidqmul1052 multiply 100 10000000000 -> 1000000000000 5297db96d56Sopenharmony_cidqmul1053 multiply 100 100000000000 -> 10000000000000 5307db96d56Sopenharmony_cidqmul1054 multiply 100 1000000000000 -> 100000000000000 5317db96d56Sopenharmony_cidqmul1055 multiply 100 10000000000000 -> 1000000000000000 5327db96d56Sopenharmony_ci 5337db96d56Sopenharmony_cidqmul1056 multiply 100 10000000000000000 -> 1000000000000000000 5347db96d56Sopenharmony_cidqmul1057 multiply 100 1000000000000000000000000 -> 100000000000000000000000000 5357db96d56Sopenharmony_cidqmul1058 multiply 100 10000000000000000000000000 -> 1000000000000000000000000000 5367db96d56Sopenharmony_cidqmul1059 multiply 100 100000000000000000000000000 -> 10000000000000000000000000000 5377db96d56Sopenharmony_cidqmul1060 multiply 100 10000000000000000000000000000000 -> 1000000000000000000000000000000000 5387db96d56Sopenharmony_ci 5397db96d56Sopenharmony_cidqmul1061 multiply 1000 0.01 -> 10.00 5407db96d56Sopenharmony_cidqmul1062 multiply 1000 0.1 -> 100.0 5417db96d56Sopenharmony_cidqmul1063 multiply 1000 1 -> 1000 5427db96d56Sopenharmony_cidqmul1064 multiply 1000 10 -> 10000 5437db96d56Sopenharmony_cidqmul1065 multiply 1000 100 -> 100000 5447db96d56Sopenharmony_cidqmul1066 multiply 1000 1000 -> 1000000 5457db96d56Sopenharmony_cidqmul1067 multiply 1000 10000 -> 10000000 5467db96d56Sopenharmony_cidqmul1068 multiply 1000 100000 -> 100000000 5477db96d56Sopenharmony_cidqmul1069 multiply 1000 1000000 -> 1000000000 5487db96d56Sopenharmony_cidqmul1070 multiply 1000 10000000 -> 10000000000 5497db96d56Sopenharmony_cidqmul1071 multiply 1000 100000000 -> 100000000000 5507db96d56Sopenharmony_cidqmul1072 multiply 1000 1000000000 -> 1000000000000 5517db96d56Sopenharmony_cidqmul1073 multiply 1000 10000000000 -> 10000000000000 5527db96d56Sopenharmony_cidqmul1074 multiply 1000 100000000000 -> 100000000000000 5537db96d56Sopenharmony_cidqmul1075 multiply 1000 1000000000000 -> 1000000000000000 5547db96d56Sopenharmony_ci 5557db96d56Sopenharmony_cidqmul1076 multiply 1000 1000000000000000 -> 1000000000000000000 5567db96d56Sopenharmony_cidqmul1077 multiply 1000 100000000000000000000000 -> 100000000000000000000000000 5577db96d56Sopenharmony_cidqmul1078 multiply 1000 1000000000000000000000000 -> 1000000000000000000000000000 5587db96d56Sopenharmony_cidqmul1079 multiply 1000 10000000000000000000000000 -> 10000000000000000000000000000 5597db96d56Sopenharmony_cidqmul1080 multiply 1000 1000000000000000000000000000000 -> 1000000000000000000000000000000000 5607db96d56Sopenharmony_ci 5617db96d56Sopenharmony_cidqmul1081 multiply 10000 0.001 -> 10.000 5627db96d56Sopenharmony_cidqmul1082 multiply 10000 0.01 -> 100.00 5637db96d56Sopenharmony_cidqmul1083 multiply 10000 0.1 -> 1000.0 5647db96d56Sopenharmony_cidqmul1084 multiply 10000 1 -> 10000 5657db96d56Sopenharmony_cidqmul1085 multiply 10000 10 -> 100000 5667db96d56Sopenharmony_cidqmul1086 multiply 10000 100 -> 1000000 5677db96d56Sopenharmony_cidqmul1087 multiply 10000 1000 -> 10000000 5687db96d56Sopenharmony_cidqmul1088 multiply 10000 10000 -> 100000000 5697db96d56Sopenharmony_cidqmul1089 multiply 10000 100000 -> 1000000000 5707db96d56Sopenharmony_cidqmul1090 multiply 10000 1000000 -> 10000000000 5717db96d56Sopenharmony_cidqmul1091 multiply 10000 10000000 -> 100000000000 5727db96d56Sopenharmony_cidqmul1092 multiply 10000 100000000 -> 1000000000000 5737db96d56Sopenharmony_cidqmul1093 multiply 10000 1000000000 -> 10000000000000 5747db96d56Sopenharmony_cidqmul1094 multiply 10000 10000000000 -> 100000000000000 5757db96d56Sopenharmony_cidqmul1095 multiply 10000 100000000000 -> 1000000000000000 5767db96d56Sopenharmony_ci 5777db96d56Sopenharmony_cidqmul1096 multiply 10000 100000000000000 -> 1000000000000000000 5787db96d56Sopenharmony_cidqmul1097 multiply 10000 10000000000000000000000 -> 100000000000000000000000000 5797db96d56Sopenharmony_cidqmul1098 multiply 10000 100000000000000000000000 -> 1000000000000000000000000000 5807db96d56Sopenharmony_cidqmul1099 multiply 10000 1000000000000000000000000 -> 10000000000000000000000000000 5817db96d56Sopenharmony_cidqmul1100 multiply 10000 100000000000000000000000000000 -> 1000000000000000000000000000000000 5827db96d56Sopenharmony_ci 5837db96d56Sopenharmony_cidqmul1107 multiply 10000 99999999999 -> 999999999990000 5847db96d56Sopenharmony_cidqmul1108 multiply 10000 99999999999 -> 999999999990000 5857db96d56Sopenharmony_ci 5867db96d56Sopenharmony_ci-- Null tests 5877db96d56Sopenharmony_cidqmul9990 multiply 10 # -> NaN Invalid_operation 5887db96d56Sopenharmony_cidqmul9991 multiply # 10 -> NaN Invalid_operation 5897db96d56Sopenharmony_ci 590