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