17db96d56Sopenharmony_ci------------------------------------------------------------------------ 27db96d56Sopenharmony_ci-- ddFMA.decTest -- decDouble Fused Multiply Add -- 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_ciprecision: 16 237db96d56Sopenharmony_cimaxExponent: 384 247db96d56Sopenharmony_ciminExponent: -383 257db96d56Sopenharmony_ciextended: 1 267db96d56Sopenharmony_ciclamp: 1 277db96d56Sopenharmony_cirounding: half_even 287db96d56Sopenharmony_ci 297db96d56Sopenharmony_ci-- These tests comprise three parts: 307db96d56Sopenharmony_ci-- 1. Sanity checks and other three-operand tests (especially those 317db96d56Sopenharmony_ci-- where the fused operation makes a difference) 327db96d56Sopenharmony_ci-- 2. Multiply tests (third operand is neutral zero [0E+emax]) 337db96d56Sopenharmony_ci-- 3. Addition tests (first operand is 1) 347db96d56Sopenharmony_ci-- The multiply and addition tests are extensive because FMA may have 357db96d56Sopenharmony_ci-- its own dedicated multiplication or addition routine(s), and they 367db96d56Sopenharmony_ci-- also inherently check the left-to-right properties. 377db96d56Sopenharmony_ci 387db96d56Sopenharmony_ci-- Sanity checks 397db96d56Sopenharmony_ciddfma0001 fma 1 1 1 -> 2 407db96d56Sopenharmony_ciddfma0002 fma 1 1 2 -> 3 417db96d56Sopenharmony_ciddfma0003 fma 2 2 3 -> 7 427db96d56Sopenharmony_ciddfma0004 fma 9 9 9 -> 90 437db96d56Sopenharmony_ciddfma0005 fma -1 1 1 -> 0 447db96d56Sopenharmony_ciddfma0006 fma -1 1 2 -> 1 457db96d56Sopenharmony_ciddfma0007 fma -2 2 3 -> -1 467db96d56Sopenharmony_ciddfma0008 fma -9 9 9 -> -72 477db96d56Sopenharmony_ciddfma0011 fma 1 -1 1 -> 0 487db96d56Sopenharmony_ciddfma0012 fma 1 -1 2 -> 1 497db96d56Sopenharmony_ciddfma0013 fma 2 -2 3 -> -1 507db96d56Sopenharmony_ciddfma0014 fma 9 -9 9 -> -72 517db96d56Sopenharmony_ciddfma0015 fma 1 1 -1 -> 0 527db96d56Sopenharmony_ciddfma0016 fma 1 1 -2 -> -1 537db96d56Sopenharmony_ciddfma0017 fma 2 2 -3 -> 1 547db96d56Sopenharmony_ciddfma0018 fma 9 9 -9 -> 72 557db96d56Sopenharmony_ci 567db96d56Sopenharmony_ci-- non-integer exacts 577db96d56Sopenharmony_ciddfma0100 fma 25.2 63.6 -438 -> 1164.72 587db96d56Sopenharmony_ciddfma0101 fma 0.301 0.380 334 -> 334.114380 597db96d56Sopenharmony_ciddfma0102 fma 49.2 -4.8 23.3 -> -212.86 607db96d56Sopenharmony_ciddfma0103 fma 4.22 0.079 -94.6 -> -94.26662 617db96d56Sopenharmony_ciddfma0104 fma 903 0.797 0.887 -> 720.578 627db96d56Sopenharmony_ciddfma0105 fma 6.13 -161 65.9 -> -921.03 637db96d56Sopenharmony_ciddfma0106 fma 28.2 727 5.45 -> 20506.85 647db96d56Sopenharmony_ciddfma0107 fma 4 605 688 -> 3108 657db96d56Sopenharmony_ciddfma0108 fma 93.3 0.19 0.226 -> 17.953 667db96d56Sopenharmony_ciddfma0109 fma 0.169 -341 5.61 -> -52.019 677db96d56Sopenharmony_ciddfma0110 fma -72.2 30 -51.2 -> -2217.2 687db96d56Sopenharmony_ciddfma0111 fma -0.409 13 20.4 -> 15.083 697db96d56Sopenharmony_ciddfma0112 fma 317 77.0 19.0 -> 24428.0 707db96d56Sopenharmony_ciddfma0113 fma 47 6.58 1.62 -> 310.88 717db96d56Sopenharmony_ciddfma0114 fma 1.36 0.984 0.493 -> 1.83124 727db96d56Sopenharmony_ciddfma0115 fma 72.7 274 1.56 -> 19921.36 737db96d56Sopenharmony_ciddfma0116 fma 335 847 83 -> 283828 747db96d56Sopenharmony_ciddfma0117 fma 666 0.247 25.4 -> 189.902 757db96d56Sopenharmony_ciddfma0118 fma -3.87 3.06 78.0 -> 66.1578 767db96d56Sopenharmony_ciddfma0119 fma 0.742 192 35.6 -> 178.064 777db96d56Sopenharmony_ciddfma0120 fma -91.6 5.29 0.153 -> -484.411 787db96d56Sopenharmony_ci 797db96d56Sopenharmony_ci-- cases where result is different from separate multiply + add; each 807db96d56Sopenharmony_ci-- is preceded by the result of unfused multiply and add 817db96d56Sopenharmony_ci-- [this is about 20% of all similar cases in general] 827db96d56Sopenharmony_ci-- -> 7.123356429257969E+16 837db96d56Sopenharmony_ciddfma0201 fma 27583489.6645 2582471078.04 2593183.42371 -> 7.123356429257970E+16 Inexact Rounded 847db96d56Sopenharmony_ci-- -> 22813275328.80506 857db96d56Sopenharmony_ciddfma0208 fma 24280.355566 939577.397653 2032.013252 -> 22813275328.80507 Inexact Rounded 867db96d56Sopenharmony_ci-- -> -2.030397734278062E+16 877db96d56Sopenharmony_ciddfma0209 fma 7848976432 -2586831.2281 137903.517909 -> -2.030397734278061E+16 Inexact Rounded 887db96d56Sopenharmony_ci-- -> 2040774094814.077 897db96d56Sopenharmony_ciddfma0217 fma 56890.388731 35872030.4255 339337.123410 -> 2040774094814.078 Inexact Rounded 907db96d56Sopenharmony_ci-- -> 2.714469575205049E+18 917db96d56Sopenharmony_ciddfma0220 fma 7533543.57445 360317763928 5073392.31638 -> 2.714469575205050E+18 Inexact Rounded 927db96d56Sopenharmony_ci-- -> 1.011676297716716E+19 937db96d56Sopenharmony_ciddfma0223 fma 739945255.563 13672312784.1 -994381.53572 -> 1.011676297716715E+19 Inexact Rounded 947db96d56Sopenharmony_ci-- -> -2.914135721455315E+23 957db96d56Sopenharmony_ciddfma0224 fma -413510957218 704729988550 9234162614.0 -> -2.914135721455314E+23 Inexact Rounded 967db96d56Sopenharmony_ci-- -> 2.620119863365786E+17 977db96d56Sopenharmony_ciddfma0226 fma 437484.00601 598906432790 894450638.442 -> 2.620119863365787E+17 Inexact Rounded 987db96d56Sopenharmony_ci-- -> 1.272647995808178E+19 997db96d56Sopenharmony_ciddfma0253 fma 73287556929 173651305.784 -358312568.389 -> 1.272647995808177E+19 Inexact Rounded 1007db96d56Sopenharmony_ci-- -> -1.753769320861851E+18 1017db96d56Sopenharmony_ciddfma0257 fma 203258304486 -8628278.8066 153127.446727 -> -1.753769320861850E+18 Inexact Rounded 1027db96d56Sopenharmony_ci-- -> -1.550737835263346E+17 1037db96d56Sopenharmony_ciddfma0260 fma 42560533.1774 -3643605282.86 178277.96377 -> -1.550737835263347E+17 Inexact Rounded 1047db96d56Sopenharmony_ci-- -> 2.897624620576005E+22 1057db96d56Sopenharmony_ciddfma0269 fma 142656587375 203118879670 604576103991 -> 2.897624620576004E+22 Inexact Rounded 1067db96d56Sopenharmony_ci 1077db96d56Sopenharmony_ci-- Cases where multiply would overflow or underflow if separate 1087db96d56Sopenharmony_cifma0300 fma 9e+384 10 0 -> Infinity Overflow Inexact Rounded 1097db96d56Sopenharmony_cifma0301 fma 1e+384 10 0 -> Infinity Overflow Inexact Rounded 1107db96d56Sopenharmony_cifma0302 fma 1e+384 10 -1e+384 -> 9.000000000000000E+384 Clamped 1117db96d56Sopenharmony_cifma0303 fma 1e+384 10 -9e+384 -> 1.000000000000000E+384 Clamped 1127db96d56Sopenharmony_ci-- subnormal etc. 1137db96d56Sopenharmony_cifma0305 fma 1e-398 0.1 0 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 1147db96d56Sopenharmony_cifma0306 fma 1e-398 0.1 1 -> 1.000000000000000 Inexact Rounded 1157db96d56Sopenharmony_cifma0307 fma 1e-398 0.1 1e-398 -> 1E-398 Underflow Subnormal Inexact Rounded 1167db96d56Sopenharmony_ci 1177db96d56Sopenharmony_ci-- Infinite combinations 1187db96d56Sopenharmony_ciddfma0800 fma Inf Inf Inf -> Infinity 1197db96d56Sopenharmony_ciddfma0801 fma Inf Inf -Inf -> NaN Invalid_operation 1207db96d56Sopenharmony_ciddfma0802 fma Inf -Inf Inf -> NaN Invalid_operation 1217db96d56Sopenharmony_ciddfma0803 fma Inf -Inf -Inf -> -Infinity 1227db96d56Sopenharmony_ciddfma0804 fma -Inf Inf Inf -> NaN Invalid_operation 1237db96d56Sopenharmony_ciddfma0805 fma -Inf Inf -Inf -> -Infinity 1247db96d56Sopenharmony_ciddfma0806 fma -Inf -Inf Inf -> Infinity 1257db96d56Sopenharmony_ciddfma0807 fma -Inf -Inf -Inf -> NaN Invalid_operation 1267db96d56Sopenharmony_ci 1277db96d56Sopenharmony_ci-- Triple NaN propagation 1287db96d56Sopenharmony_ciddfma0900 fma NaN2 NaN3 NaN5 -> NaN2 1297db96d56Sopenharmony_ciddfma0901 fma 0 NaN3 NaN5 -> NaN3 1307db96d56Sopenharmony_ciddfma0902 fma 0 0 NaN5 -> NaN5 1317db96d56Sopenharmony_ci-- first sNaN wins (consider qNaN from earlier sNaN being 1327db96d56Sopenharmony_ci-- overridden by an sNaN in third operand) 1337db96d56Sopenharmony_ciddfma0903 fma sNaN1 sNaN2 sNaN3 -> NaN1 Invalid_operation 1347db96d56Sopenharmony_ciddfma0904 fma 0 sNaN2 sNaN3 -> NaN2 Invalid_operation 1357db96d56Sopenharmony_ciddfma0905 fma 0 0 sNaN3 -> NaN3 Invalid_operation 1367db96d56Sopenharmony_ciddfma0906 fma sNaN1 sNaN2 sNaN3 -> NaN1 Invalid_operation 1377db96d56Sopenharmony_ciddfma0907 fma NaN7 sNaN2 sNaN3 -> NaN2 Invalid_operation 1387db96d56Sopenharmony_ciddfma0908 fma NaN7 NaN5 sNaN3 -> NaN3 Invalid_operation 1397db96d56Sopenharmony_ci 1407db96d56Sopenharmony_ci-- MULTIPLICATION TESTS ------------------------------------------------ 1417db96d56Sopenharmony_ci 1427db96d56Sopenharmony_ci-- sanity checks 1437db96d56Sopenharmony_ciddfma2000 fma 2 2 0e+384 -> 4 1447db96d56Sopenharmony_ciddfma2001 fma 2 3 0e+384 -> 6 1457db96d56Sopenharmony_ciddfma2002 fma 5 1 0e+384 -> 5 1467db96d56Sopenharmony_ciddfma2003 fma 5 2 0e+384 -> 10 1477db96d56Sopenharmony_ciddfma2004 fma 1.20 2 0e+384 -> 2.40 1487db96d56Sopenharmony_ciddfma2005 fma 1.20 0 0e+384 -> 0.00 1497db96d56Sopenharmony_ciddfma2006 fma 1.20 -2 0e+384 -> -2.40 1507db96d56Sopenharmony_ciddfma2007 fma -1.20 2 0e+384 -> -2.40 1517db96d56Sopenharmony_ciddfma2008 fma -1.20 0 0e+384 -> 0.00 1527db96d56Sopenharmony_ciddfma2009 fma -1.20 -2 0e+384 -> 2.40 1537db96d56Sopenharmony_ciddfma2010 fma 5.09 7.1 0e+384 -> 36.139 1547db96d56Sopenharmony_ciddfma2011 fma 2.5 4 0e+384 -> 10.0 1557db96d56Sopenharmony_ciddfma2012 fma 2.50 4 0e+384 -> 10.00 1567db96d56Sopenharmony_ciddfma2013 fma 1.23456789 1.00000000 0e+384 -> 1.234567890000000 Rounded 1577db96d56Sopenharmony_ciddfma2015 fma 2.50 4 0e+384 -> 10.00 1587db96d56Sopenharmony_ciddfma2016 fma 9.999999999 9.999999999 0e+384 -> 99.99999998000000 Inexact Rounded 1597db96d56Sopenharmony_ciddfma2017 fma 9.999999999 -9.999999999 0e+384 -> -99.99999998000000 Inexact Rounded 1607db96d56Sopenharmony_ciddfma2018 fma -9.999999999 9.999999999 0e+384 -> -99.99999998000000 Inexact Rounded 1617db96d56Sopenharmony_ciddfma2019 fma -9.999999999 -9.999999999 0e+384 -> 99.99999998000000 Inexact Rounded 1627db96d56Sopenharmony_ci 1637db96d56Sopenharmony_ci-- zeros, etc. 1647db96d56Sopenharmony_ciddfma2021 fma 0 0 0e+384 -> 0 1657db96d56Sopenharmony_ciddfma2022 fma 0 -0 0e+384 -> 0 1667db96d56Sopenharmony_ciddfma2023 fma -0 0 0e+384 -> 0 1677db96d56Sopenharmony_ciddfma2024 fma -0 -0 0e+384 -> 0 1687db96d56Sopenharmony_ciddfma2025 fma -0.0 -0.0 0e+384 -> 0.00 1697db96d56Sopenharmony_ciddfma2026 fma -0.0 -0.0 0e+384 -> 0.00 1707db96d56Sopenharmony_ciddfma2027 fma -0.0 -0.0 0e+384 -> 0.00 1717db96d56Sopenharmony_ciddfma2028 fma -0.0 -0.0 0e+384 -> 0.00 1727db96d56Sopenharmony_ciddfma2030 fma 5.00 1E-3 0e+384 -> 0.00500 1737db96d56Sopenharmony_ciddfma2031 fma 00.00 0.000 0e+384 -> 0.00000 1747db96d56Sopenharmony_ciddfma2032 fma 00.00 0E-3 0e+384 -> 0.00000 -- rhs is 0 1757db96d56Sopenharmony_ciddfma2033 fma 0E-3 00.00 0e+384 -> 0.00000 -- lhs is 0 1767db96d56Sopenharmony_ciddfma2034 fma -5.00 1E-3 0e+384 -> -0.00500 1777db96d56Sopenharmony_ciddfma2035 fma -00.00 0.000 0e+384 -> 0.00000 1787db96d56Sopenharmony_ciddfma2036 fma -00.00 0E-3 0e+384 -> 0.00000 -- rhs is 0 1797db96d56Sopenharmony_ciddfma2037 fma -0E-3 00.00 0e+384 -> 0.00000 -- lhs is 0 1807db96d56Sopenharmony_ciddfma2038 fma 5.00 -1E-3 0e+384 -> -0.00500 1817db96d56Sopenharmony_ciddfma2039 fma 00.00 -0.000 0e+384 -> 0.00000 1827db96d56Sopenharmony_ciddfma2040 fma 00.00 -0E-3 0e+384 -> 0.00000 -- rhs is 0 1837db96d56Sopenharmony_ciddfma2041 fma 0E-3 -00.00 0e+384 -> 0.00000 -- lhs is 0 1847db96d56Sopenharmony_ciddfma2042 fma -5.00 -1E-3 0e+384 -> 0.00500 1857db96d56Sopenharmony_ciddfma2043 fma -00.00 -0.000 0e+384 -> 0.00000 1867db96d56Sopenharmony_ciddfma2044 fma -00.00 -0E-3 0e+384 -> 0.00000 -- rhs is 0 1877db96d56Sopenharmony_ciddfma2045 fma -0E-3 -00.00 -0e+384 -> 0.00000 -- lhs is 0 1887db96d56Sopenharmony_ciddfma2046 fma -0E-3 00.00 -0e+384 -> -0.00000 1897db96d56Sopenharmony_ciddfma2047 fma 0E-3 -00.00 -0e+384 -> -0.00000 1907db96d56Sopenharmony_ciddfma2048 fma 0E-3 00.00 -0e+384 -> 0.00000 1917db96d56Sopenharmony_ci 1927db96d56Sopenharmony_ci-- examples from decarith 1937db96d56Sopenharmony_ciddfma2050 fma 1.20 3 0e+384 -> 3.60 1947db96d56Sopenharmony_ciddfma2051 fma 7 3 0e+384 -> 21 1957db96d56Sopenharmony_ciddfma2052 fma 0.9 0.8 0e+384 -> 0.72 1967db96d56Sopenharmony_ciddfma2053 fma 0.9 -0 0e+384 -> 0.0 1977db96d56Sopenharmony_ciddfma2054 fma 654321 654321 0e+384 -> 428135971041 1987db96d56Sopenharmony_ci 1997db96d56Sopenharmony_ciddfma2060 fma 123.45 1e7 0e+384 -> 1.2345E+9 2007db96d56Sopenharmony_ciddfma2061 fma 123.45 1e8 0e+384 -> 1.2345E+10 2017db96d56Sopenharmony_ciddfma2062 fma 123.45 1e+9 0e+384 -> 1.2345E+11 2027db96d56Sopenharmony_ciddfma2063 fma 123.45 1e10 0e+384 -> 1.2345E+12 2037db96d56Sopenharmony_ciddfma2064 fma 123.45 1e11 0e+384 -> 1.2345E+13 2047db96d56Sopenharmony_ciddfma2065 fma 123.45 1e12 0e+384 -> 1.2345E+14 2057db96d56Sopenharmony_ciddfma2066 fma 123.45 1e13 0e+384 -> 1.2345E+15 2067db96d56Sopenharmony_ci 2077db96d56Sopenharmony_ci 2087db96d56Sopenharmony_ci-- test some intermediate lengths 2097db96d56Sopenharmony_ci-- 1234567890123456 2107db96d56Sopenharmony_ciddfma2080 fma 0.1 1230123456456789 0e+384 -> 123012345645678.9 2117db96d56Sopenharmony_ciddfma2084 fma 0.1 1230123456456789 0e+384 -> 123012345645678.9 2127db96d56Sopenharmony_ciddfma2090 fma 1230123456456789 0.1 0e+384 -> 123012345645678.9 2137db96d56Sopenharmony_ciddfma2094 fma 1230123456456789 0.1 0e+384 -> 123012345645678.9 2147db96d56Sopenharmony_ci 2157db96d56Sopenharmony_ci-- test some more edge cases and carries 2167db96d56Sopenharmony_ciddfma2101 fma 9 9 0e+384 -> 81 2177db96d56Sopenharmony_ciddfma2102 fma 9 90 0e+384 -> 810 2187db96d56Sopenharmony_ciddfma2103 fma 9 900 0e+384 -> 8100 2197db96d56Sopenharmony_ciddfma2104 fma 9 9000 0e+384 -> 81000 2207db96d56Sopenharmony_ciddfma2105 fma 9 90000 0e+384 -> 810000 2217db96d56Sopenharmony_ciddfma2106 fma 9 900000 0e+384 -> 8100000 2227db96d56Sopenharmony_ciddfma2107 fma 9 9000000 0e+384 -> 81000000 2237db96d56Sopenharmony_ciddfma2108 fma 9 90000000 0e+384 -> 810000000 2247db96d56Sopenharmony_ciddfma2109 fma 9 900000000 0e+384 -> 8100000000 2257db96d56Sopenharmony_ciddfma2110 fma 9 9000000000 0e+384 -> 81000000000 2267db96d56Sopenharmony_ciddfma2111 fma 9 90000000000 0e+384 -> 810000000000 2277db96d56Sopenharmony_ciddfma2112 fma 9 900000000000 0e+384 -> 8100000000000 2287db96d56Sopenharmony_ciddfma2113 fma 9 9000000000000 0e+384 -> 81000000000000 2297db96d56Sopenharmony_ciddfma2114 fma 9 90000000000000 0e+384 -> 810000000000000 2307db96d56Sopenharmony_ciddfma2115 fma 9 900000000000000 0e+384 -> 8100000000000000 2317db96d56Sopenharmony_ci--ddfma2116 fma 9 9000000000000000 0e+384 -> 81000000000000000 2327db96d56Sopenharmony_ci--ddfma2117 fma 9 90000000000000000 0e+384 -> 810000000000000000 2337db96d56Sopenharmony_ci--ddfma2118 fma 9 900000000000000000 0e+384 -> 8100000000000000000 2347db96d56Sopenharmony_ci--ddfma2119 fma 9 9000000000000000000 0e+384 -> 81000000000000000000 2357db96d56Sopenharmony_ci--ddfma2120 fma 9 90000000000000000000 0e+384 -> 810000000000000000000 2367db96d56Sopenharmony_ci--ddfma2121 fma 9 900000000000000000000 0e+384 -> 8100000000000000000000 2377db96d56Sopenharmony_ci--ddfma2122 fma 9 9000000000000000000000 0e+384 -> 81000000000000000000000 2387db96d56Sopenharmony_ci--ddfma2123 fma 9 90000000000000000000000 0e+384 -> 810000000000000000000000 2397db96d56Sopenharmony_ci-- test some more edge cases without carries 2407db96d56Sopenharmony_ciddfma2131 fma 3 3 0e+384 -> 9 2417db96d56Sopenharmony_ciddfma2132 fma 3 30 0e+384 -> 90 2427db96d56Sopenharmony_ciddfma2133 fma 3 300 0e+384 -> 900 2437db96d56Sopenharmony_ciddfma2134 fma 3 3000 0e+384 -> 9000 2447db96d56Sopenharmony_ciddfma2135 fma 3 30000 0e+384 -> 90000 2457db96d56Sopenharmony_ciddfma2136 fma 3 300000 0e+384 -> 900000 2467db96d56Sopenharmony_ciddfma2137 fma 3 3000000 0e+384 -> 9000000 2477db96d56Sopenharmony_ciddfma2138 fma 3 30000000 0e+384 -> 90000000 2487db96d56Sopenharmony_ciddfma2139 fma 3 300000000 0e+384 -> 900000000 2497db96d56Sopenharmony_ciddfma2140 fma 3 3000000000 0e+384 -> 9000000000 2507db96d56Sopenharmony_ciddfma2141 fma 3 30000000000 0e+384 -> 90000000000 2517db96d56Sopenharmony_ciddfma2142 fma 3 300000000000 0e+384 -> 900000000000 2527db96d56Sopenharmony_ciddfma2143 fma 3 3000000000000 0e+384 -> 9000000000000 2537db96d56Sopenharmony_ciddfma2144 fma 3 30000000000000 0e+384 -> 90000000000000 2547db96d56Sopenharmony_ciddfma2145 fma 3 300000000000000 0e+384 -> 900000000000000 2557db96d56Sopenharmony_ci 2567db96d56Sopenharmony_ci-- test some edge cases with exact rounding 2577db96d56Sopenharmony_ciddfma2301 fma 9 9 0e+384 -> 81 2587db96d56Sopenharmony_ciddfma2302 fma 9 90 0e+384 -> 810 2597db96d56Sopenharmony_ciddfma2303 fma 9 900 0e+384 -> 8100 2607db96d56Sopenharmony_ciddfma2304 fma 9 9000 0e+384 -> 81000 2617db96d56Sopenharmony_ciddfma2305 fma 9 90000 0e+384 -> 810000 2627db96d56Sopenharmony_ciddfma2306 fma 9 900000 0e+384 -> 8100000 2637db96d56Sopenharmony_ciddfma2307 fma 9 9000000 0e+384 -> 81000000 2647db96d56Sopenharmony_ciddfma2308 fma 9 90000000 0e+384 -> 810000000 2657db96d56Sopenharmony_ciddfma2309 fma 9 900000000 0e+384 -> 8100000000 2667db96d56Sopenharmony_ciddfma2310 fma 9 9000000000 0e+384 -> 81000000000 2677db96d56Sopenharmony_ciddfma2311 fma 9 90000000000 0e+384 -> 810000000000 2687db96d56Sopenharmony_ciddfma2312 fma 9 900000000000 0e+384 -> 8100000000000 2697db96d56Sopenharmony_ciddfma2313 fma 9 9000000000000 0e+384 -> 81000000000000 2707db96d56Sopenharmony_ciddfma2314 fma 9 90000000000000 0e+384 -> 810000000000000 2717db96d56Sopenharmony_ciddfma2315 fma 9 900000000000000 0e+384 -> 8100000000000000 2727db96d56Sopenharmony_ciddfma2316 fma 9 9000000000000000 0e+384 -> 8.100000000000000E+16 Rounded 2737db96d56Sopenharmony_ciddfma2317 fma 90 9000000000000000 0e+384 -> 8.100000000000000E+17 Rounded 2747db96d56Sopenharmony_ciddfma2318 fma 900 9000000000000000 0e+384 -> 8.100000000000000E+18 Rounded 2757db96d56Sopenharmony_ciddfma2319 fma 9000 9000000000000000 0e+384 -> 8.100000000000000E+19 Rounded 2767db96d56Sopenharmony_ciddfma2320 fma 90000 9000000000000000 0e+384 -> 8.100000000000000E+20 Rounded 2777db96d56Sopenharmony_ciddfma2321 fma 900000 9000000000000000 0e+384 -> 8.100000000000000E+21 Rounded 2787db96d56Sopenharmony_ciddfma2322 fma 9000000 9000000000000000 0e+384 -> 8.100000000000000E+22 Rounded 2797db96d56Sopenharmony_ciddfma2323 fma 90000000 9000000000000000 0e+384 -> 8.100000000000000E+23 Rounded 2807db96d56Sopenharmony_ci 2817db96d56Sopenharmony_ci-- tryzeros cases 2827db96d56Sopenharmony_ciddfma2504 fma 0E-260 1000E-260 0e+384 -> 0E-398 Clamped 2837db96d56Sopenharmony_ciddfma2505 fma 100E+260 0E+260 0e+384 -> 0E+369 Clamped 2847db96d56Sopenharmony_ci 2857db96d56Sopenharmony_ci-- mixed with zeros 2867db96d56Sopenharmony_ciddfma2541 fma 0 -1 0e+384 -> 0 2877db96d56Sopenharmony_ciddfma2542 fma -0 -1 0e+384 -> 0 2887db96d56Sopenharmony_ciddfma2543 fma 0 1 0e+384 -> 0 2897db96d56Sopenharmony_ciddfma2544 fma -0 1 0e+384 -> 0 2907db96d56Sopenharmony_ciddfma2545 fma -1 0 0e+384 -> 0 2917db96d56Sopenharmony_ciddfma2546 fma -1 -0 0e+384 -> 0 2927db96d56Sopenharmony_ciddfma2547 fma 1 0 0e+384 -> 0 2937db96d56Sopenharmony_ciddfma2548 fma 1 -0 0e+384 -> 0 2947db96d56Sopenharmony_ci 2957db96d56Sopenharmony_ciddfma2551 fma 0.0 -1 0e+384 -> 0.0 2967db96d56Sopenharmony_ciddfma2552 fma -0.0 -1 0e+384 -> 0.0 2977db96d56Sopenharmony_ciddfma2553 fma 0.0 1 0e+384 -> 0.0 2987db96d56Sopenharmony_ciddfma2554 fma -0.0 1 0e+384 -> 0.0 2997db96d56Sopenharmony_ciddfma2555 fma -1.0 0 0e+384 -> 0.0 3007db96d56Sopenharmony_ciddfma2556 fma -1.0 -0 0e+384 -> 0.0 3017db96d56Sopenharmony_ciddfma2557 fma 1.0 0 0e+384 -> 0.0 3027db96d56Sopenharmony_ciddfma2558 fma 1.0 -0 0e+384 -> 0.0 3037db96d56Sopenharmony_ci 3047db96d56Sopenharmony_ciddfma2561 fma 0 -1.0 0e+384 -> 0.0 3057db96d56Sopenharmony_ciddfma2562 fma -0 -1.0 0e+384 -> 0.0 3067db96d56Sopenharmony_ciddfma2563 fma 0 1.0 0e+384 -> 0.0 3077db96d56Sopenharmony_ciddfma2564 fma -0 1.0 0e+384 -> 0.0 3087db96d56Sopenharmony_ciddfma2565 fma -1 0.0 0e+384 -> 0.0 3097db96d56Sopenharmony_ciddfma2566 fma -1 -0.0 0e+384 -> 0.0 3107db96d56Sopenharmony_ciddfma2567 fma 1 0.0 0e+384 -> 0.0 3117db96d56Sopenharmony_ciddfma2568 fma 1 -0.0 0e+384 -> 0.0 3127db96d56Sopenharmony_ci 3137db96d56Sopenharmony_ciddfma2571 fma 0.0 -1.0 0e+384 -> 0.00 3147db96d56Sopenharmony_ciddfma2572 fma -0.0 -1.0 0e+384 -> 0.00 3157db96d56Sopenharmony_ciddfma2573 fma 0.0 1.0 0e+384 -> 0.00 3167db96d56Sopenharmony_ciddfma2574 fma -0.0 1.0 0e+384 -> 0.00 3177db96d56Sopenharmony_ciddfma2575 fma -1.0 0.0 0e+384 -> 0.00 3187db96d56Sopenharmony_ciddfma2576 fma -1.0 -0.0 0e+384 -> 0.00 3197db96d56Sopenharmony_ciddfma2577 fma 1.0 0.0 0e+384 -> 0.00 3207db96d56Sopenharmony_ciddfma2578 fma 1.0 -0.0 0e+384 -> 0.00 3217db96d56Sopenharmony_ci 3227db96d56Sopenharmony_ci-- Specials 3237db96d56Sopenharmony_ciddfma2580 fma Inf -Inf 0e+384 -> -Infinity 3247db96d56Sopenharmony_ciddfma2581 fma Inf -1000 0e+384 -> -Infinity 3257db96d56Sopenharmony_ciddfma2582 fma Inf -1 0e+384 -> -Infinity 3267db96d56Sopenharmony_ciddfma2583 fma Inf -0 0e+384 -> NaN Invalid_operation 3277db96d56Sopenharmony_ciddfma2584 fma Inf 0 0e+384 -> NaN Invalid_operation 3287db96d56Sopenharmony_ciddfma2585 fma Inf 1 0e+384 -> Infinity 3297db96d56Sopenharmony_ciddfma2586 fma Inf 1000 0e+384 -> Infinity 3307db96d56Sopenharmony_ciddfma2587 fma Inf Inf 0e+384 -> Infinity 3317db96d56Sopenharmony_ciddfma2588 fma -1000 Inf 0e+384 -> -Infinity 3327db96d56Sopenharmony_ciddfma2589 fma -Inf Inf 0e+384 -> -Infinity 3337db96d56Sopenharmony_ciddfma2590 fma -1 Inf 0e+384 -> -Infinity 3347db96d56Sopenharmony_ciddfma2591 fma -0 Inf 0e+384 -> NaN Invalid_operation 3357db96d56Sopenharmony_ciddfma2592 fma 0 Inf 0e+384 -> NaN Invalid_operation 3367db96d56Sopenharmony_ciddfma2593 fma 1 Inf 0e+384 -> Infinity 3377db96d56Sopenharmony_ciddfma2594 fma 1000 Inf 0e+384 -> Infinity 3387db96d56Sopenharmony_ciddfma2595 fma Inf Inf 0e+384 -> Infinity 3397db96d56Sopenharmony_ci 3407db96d56Sopenharmony_ciddfma2600 fma -Inf -Inf 0e+384 -> Infinity 3417db96d56Sopenharmony_ciddfma2601 fma -Inf -1000 0e+384 -> Infinity 3427db96d56Sopenharmony_ciddfma2602 fma -Inf -1 0e+384 -> Infinity 3437db96d56Sopenharmony_ciddfma2603 fma -Inf -0 0e+384 -> NaN Invalid_operation 3447db96d56Sopenharmony_ciddfma2604 fma -Inf 0 0e+384 -> NaN Invalid_operation 3457db96d56Sopenharmony_ciddfma2605 fma -Inf 1 0e+384 -> -Infinity 3467db96d56Sopenharmony_ciddfma2606 fma -Inf 1000 0e+384 -> -Infinity 3477db96d56Sopenharmony_ciddfma2607 fma -Inf Inf 0e+384 -> -Infinity 3487db96d56Sopenharmony_ciddfma2608 fma -1000 Inf 0e+384 -> -Infinity 3497db96d56Sopenharmony_ciddfma2609 fma -Inf -Inf 0e+384 -> Infinity 3507db96d56Sopenharmony_ciddfma2610 fma -1 -Inf 0e+384 -> Infinity 3517db96d56Sopenharmony_ciddfma2611 fma -0 -Inf 0e+384 -> NaN Invalid_operation 3527db96d56Sopenharmony_ciddfma2612 fma 0 -Inf 0e+384 -> NaN Invalid_operation 3537db96d56Sopenharmony_ciddfma2613 fma 1 -Inf 0e+384 -> -Infinity 3547db96d56Sopenharmony_ciddfma2614 fma 1000 -Inf 0e+384 -> -Infinity 3557db96d56Sopenharmony_ciddfma2615 fma Inf -Inf 0e+384 -> -Infinity 3567db96d56Sopenharmony_ci 3577db96d56Sopenharmony_ciddfma2621 fma NaN -Inf 0e+384 -> NaN 3587db96d56Sopenharmony_ciddfma2622 fma NaN -1000 0e+384 -> NaN 3597db96d56Sopenharmony_ciddfma2623 fma NaN -1 0e+384 -> NaN 3607db96d56Sopenharmony_ciddfma2624 fma NaN -0 0e+384 -> NaN 3617db96d56Sopenharmony_ciddfma2625 fma NaN 0 0e+384 -> NaN 3627db96d56Sopenharmony_ciddfma2626 fma NaN 1 0e+384 -> NaN 3637db96d56Sopenharmony_ciddfma2627 fma NaN 1000 0e+384 -> NaN 3647db96d56Sopenharmony_ciddfma2628 fma NaN Inf 0e+384 -> NaN 3657db96d56Sopenharmony_ciddfma2629 fma NaN NaN 0e+384 -> NaN 3667db96d56Sopenharmony_ciddfma2630 fma -Inf NaN 0e+384 -> NaN 3677db96d56Sopenharmony_ciddfma2631 fma -1000 NaN 0e+384 -> NaN 3687db96d56Sopenharmony_ciddfma2632 fma -1 NaN 0e+384 -> NaN 3697db96d56Sopenharmony_ciddfma2633 fma -0 NaN 0e+384 -> NaN 3707db96d56Sopenharmony_ciddfma2634 fma 0 NaN 0e+384 -> NaN 3717db96d56Sopenharmony_ciddfma2635 fma 1 NaN 0e+384 -> NaN 3727db96d56Sopenharmony_ciddfma2636 fma 1000 NaN 0e+384 -> NaN 3737db96d56Sopenharmony_ciddfma2637 fma Inf NaN 0e+384 -> NaN 3747db96d56Sopenharmony_ci 3757db96d56Sopenharmony_ciddfma2641 fma sNaN -Inf 0e+384 -> NaN Invalid_operation 3767db96d56Sopenharmony_ciddfma2642 fma sNaN -1000 0e+384 -> NaN Invalid_operation 3777db96d56Sopenharmony_ciddfma2643 fma sNaN -1 0e+384 -> NaN Invalid_operation 3787db96d56Sopenharmony_ciddfma2644 fma sNaN -0 0e+384 -> NaN Invalid_operation 3797db96d56Sopenharmony_ciddfma2645 fma sNaN 0 0e+384 -> NaN Invalid_operation 3807db96d56Sopenharmony_ciddfma2646 fma sNaN 1 0e+384 -> NaN Invalid_operation 3817db96d56Sopenharmony_ciddfma2647 fma sNaN 1000 0e+384 -> NaN Invalid_operation 3827db96d56Sopenharmony_ciddfma2648 fma sNaN NaN 0e+384 -> NaN Invalid_operation 3837db96d56Sopenharmony_ciddfma2649 fma sNaN sNaN 0e+384 -> NaN Invalid_operation 3847db96d56Sopenharmony_ciddfma2650 fma NaN sNaN 0e+384 -> NaN Invalid_operation 3857db96d56Sopenharmony_ciddfma2651 fma -Inf sNaN 0e+384 -> NaN Invalid_operation 3867db96d56Sopenharmony_ciddfma2652 fma -1000 sNaN 0e+384 -> NaN Invalid_operation 3877db96d56Sopenharmony_ciddfma2653 fma -1 sNaN 0e+384 -> NaN Invalid_operation 3887db96d56Sopenharmony_ciddfma2654 fma -0 sNaN 0e+384 -> NaN Invalid_operation 3897db96d56Sopenharmony_ciddfma2655 fma 0 sNaN 0e+384 -> NaN Invalid_operation 3907db96d56Sopenharmony_ciddfma2656 fma 1 sNaN 0e+384 -> NaN Invalid_operation 3917db96d56Sopenharmony_ciddfma2657 fma 1000 sNaN 0e+384 -> NaN Invalid_operation 3927db96d56Sopenharmony_ciddfma2658 fma Inf sNaN 0e+384 -> NaN Invalid_operation 3937db96d56Sopenharmony_ciddfma2659 fma NaN sNaN 0e+384 -> NaN Invalid_operation 3947db96d56Sopenharmony_ci 3957db96d56Sopenharmony_ci-- propagating NaNs 3967db96d56Sopenharmony_ciddfma2661 fma NaN9 -Inf 0e+384 -> NaN9 3977db96d56Sopenharmony_ciddfma2662 fma NaN8 999 0e+384 -> NaN8 3987db96d56Sopenharmony_ciddfma2663 fma NaN71 Inf 0e+384 -> NaN71 3997db96d56Sopenharmony_ciddfma2664 fma NaN6 NaN5 0e+384 -> NaN6 4007db96d56Sopenharmony_ciddfma2665 fma -Inf NaN4 0e+384 -> NaN4 4017db96d56Sopenharmony_ciddfma2666 fma -999 NaN33 0e+384 -> NaN33 4027db96d56Sopenharmony_ciddfma2667 fma Inf NaN2 0e+384 -> NaN2 4037db96d56Sopenharmony_ci 4047db96d56Sopenharmony_ciddfma2671 fma sNaN99 -Inf 0e+384 -> NaN99 Invalid_operation 4057db96d56Sopenharmony_ciddfma2672 fma sNaN98 -11 0e+384 -> NaN98 Invalid_operation 4067db96d56Sopenharmony_ciddfma2673 fma sNaN97 NaN 0e+384 -> NaN97 Invalid_operation 4077db96d56Sopenharmony_ciddfma2674 fma sNaN16 sNaN94 0e+384 -> NaN16 Invalid_operation 4087db96d56Sopenharmony_ciddfma2675 fma NaN95 sNaN93 0e+384 -> NaN93 Invalid_operation 4097db96d56Sopenharmony_ciddfma2676 fma -Inf sNaN92 0e+384 -> NaN92 Invalid_operation 4107db96d56Sopenharmony_ciddfma2677 fma 088 sNaN91 0e+384 -> NaN91 Invalid_operation 4117db96d56Sopenharmony_ciddfma2678 fma Inf sNaN90 0e+384 -> NaN90 Invalid_operation 4127db96d56Sopenharmony_ciddfma2679 fma NaN sNaN89 0e+384 -> NaN89 Invalid_operation 4137db96d56Sopenharmony_ci 4147db96d56Sopenharmony_ciddfma2681 fma -NaN9 -Inf 0e+384 -> -NaN9 4157db96d56Sopenharmony_ciddfma2682 fma -NaN8 999 0e+384 -> -NaN8 4167db96d56Sopenharmony_ciddfma2683 fma -NaN71 Inf 0e+384 -> -NaN71 4177db96d56Sopenharmony_ciddfma2684 fma -NaN6 -NaN5 0e+384 -> -NaN6 4187db96d56Sopenharmony_ciddfma2685 fma -Inf -NaN4 0e+384 -> -NaN4 4197db96d56Sopenharmony_ciddfma2686 fma -999 -NaN33 0e+384 -> -NaN33 4207db96d56Sopenharmony_ciddfma2687 fma Inf -NaN2 0e+384 -> -NaN2 4217db96d56Sopenharmony_ci 4227db96d56Sopenharmony_ciddfma2691 fma -sNaN99 -Inf 0e+384 -> -NaN99 Invalid_operation 4237db96d56Sopenharmony_ciddfma2692 fma -sNaN98 -11 0e+384 -> -NaN98 Invalid_operation 4247db96d56Sopenharmony_ciddfma2693 fma -sNaN97 NaN 0e+384 -> -NaN97 Invalid_operation 4257db96d56Sopenharmony_ciddfma2694 fma -sNaN16 -sNaN94 0e+384 -> -NaN16 Invalid_operation 4267db96d56Sopenharmony_ciddfma2695 fma -NaN95 -sNaN93 0e+384 -> -NaN93 Invalid_operation 4277db96d56Sopenharmony_ciddfma2696 fma -Inf -sNaN92 0e+384 -> -NaN92 Invalid_operation 4287db96d56Sopenharmony_ciddfma2697 fma 088 -sNaN91 0e+384 -> -NaN91 Invalid_operation 4297db96d56Sopenharmony_ciddfma2698 fma Inf -sNaN90 0e+384 -> -NaN90 Invalid_operation 4307db96d56Sopenharmony_ciddfma2699 fma -NaN -sNaN89 0e+384 -> -NaN89 Invalid_operation 4317db96d56Sopenharmony_ci 4327db96d56Sopenharmony_ciddfma2701 fma -NaN -Inf 0e+384 -> -NaN 4337db96d56Sopenharmony_ciddfma2702 fma -NaN 999 0e+384 -> -NaN 4347db96d56Sopenharmony_ciddfma2703 fma -NaN Inf 0e+384 -> -NaN 4357db96d56Sopenharmony_ciddfma2704 fma -NaN -NaN 0e+384 -> -NaN 4367db96d56Sopenharmony_ciddfma2705 fma -Inf -NaN0 0e+384 -> -NaN 4377db96d56Sopenharmony_ciddfma2706 fma -999 -NaN 0e+384 -> -NaN 4387db96d56Sopenharmony_ciddfma2707 fma Inf -NaN 0e+384 -> -NaN 4397db96d56Sopenharmony_ci 4407db96d56Sopenharmony_ciddfma2711 fma -sNaN -Inf 0e+384 -> -NaN Invalid_operation 4417db96d56Sopenharmony_ciddfma2712 fma -sNaN -11 0e+384 -> -NaN Invalid_operation 4427db96d56Sopenharmony_ciddfma2713 fma -sNaN00 NaN 0e+384 -> -NaN Invalid_operation 4437db96d56Sopenharmony_ciddfma2714 fma -sNaN -sNaN 0e+384 -> -NaN Invalid_operation 4447db96d56Sopenharmony_ciddfma2715 fma -NaN -sNaN 0e+384 -> -NaN Invalid_operation 4457db96d56Sopenharmony_ciddfma2716 fma -Inf -sNaN 0e+384 -> -NaN Invalid_operation 4467db96d56Sopenharmony_ciddfma2717 fma 088 -sNaN 0e+384 -> -NaN Invalid_operation 4477db96d56Sopenharmony_ciddfma2718 fma Inf -sNaN 0e+384 -> -NaN Invalid_operation 4487db96d56Sopenharmony_ciddfma2719 fma -NaN -sNaN 0e+384 -> -NaN Invalid_operation 4497db96d56Sopenharmony_ci 4507db96d56Sopenharmony_ci-- overflow and underflow tests .. note subnormal results 4517db96d56Sopenharmony_ci-- signs 4527db96d56Sopenharmony_ciddfma2751 fma 1e+277 1e+311 0e+384 -> Infinity Overflow Inexact Rounded 4537db96d56Sopenharmony_ciddfma2752 fma 1e+277 -1e+311 0e+384 -> -Infinity Overflow Inexact Rounded 4547db96d56Sopenharmony_ciddfma2753 fma -1e+277 1e+311 0e+384 -> -Infinity Overflow Inexact Rounded 4557db96d56Sopenharmony_ciddfma2754 fma -1e+277 -1e+311 0e+384 -> Infinity Overflow Inexact Rounded 4567db96d56Sopenharmony_ciddfma2755 fma 1e-277 1e-311 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 4577db96d56Sopenharmony_ciddfma2756 fma 1e-277 -1e-311 0e+384 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped 4587db96d56Sopenharmony_ciddfma2757 fma -1e-277 1e-311 0e+384 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped 4597db96d56Sopenharmony_ciddfma2758 fma -1e-277 -1e-311 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 4607db96d56Sopenharmony_ci 4617db96d56Sopenharmony_ci-- 'subnormal' boundary (all hard underflow or overflow in base arithmetic) 4627db96d56Sopenharmony_ciddfma2760 fma 1e-291 1e-101 0e+384 -> 1E-392 Subnormal 4637db96d56Sopenharmony_ciddfma2761 fma 1e-291 1e-102 0e+384 -> 1E-393 Subnormal 4647db96d56Sopenharmony_ciddfma2762 fma 1e-291 1e-103 0e+384 -> 1E-394 Subnormal 4657db96d56Sopenharmony_ciddfma2763 fma 1e-291 1e-104 0e+384 -> 1E-395 Subnormal 4667db96d56Sopenharmony_ciddfma2764 fma 1e-291 1e-105 0e+384 -> 1E-396 Subnormal 4677db96d56Sopenharmony_ciddfma2765 fma 1e-291 1e-106 0e+384 -> 1E-397 Subnormal 4687db96d56Sopenharmony_ciddfma2766 fma 1e-291 1e-107 0e+384 -> 1E-398 Subnormal 4697db96d56Sopenharmony_ciddfma2767 fma 1e-291 1e-108 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 4707db96d56Sopenharmony_ciddfma2768 fma 1e-291 1e-109 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 4717db96d56Sopenharmony_ciddfma2769 fma 1e-291 1e-110 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 4727db96d56Sopenharmony_ci-- [no equivalent of 'subnormal' for overflow] 4737db96d56Sopenharmony_ciddfma2770 fma 1e+60 1e+321 0e+384 -> 1.000000000000E+381 Clamped 4747db96d56Sopenharmony_ciddfma2771 fma 1e+60 1e+322 0e+384 -> 1.0000000000000E+382 Clamped 4757db96d56Sopenharmony_ciddfma2772 fma 1e+60 1e+323 0e+384 -> 1.00000000000000E+383 Clamped 4767db96d56Sopenharmony_ciddfma2773 fma 1e+60 1e+324 0e+384 -> 1.000000000000000E+384 Clamped 4777db96d56Sopenharmony_ciddfma2774 fma 1e+60 1e+325 0e+384 -> Infinity Overflow Inexact Rounded 4787db96d56Sopenharmony_ciddfma2775 fma 1e+60 1e+326 0e+384 -> Infinity Overflow Inexact Rounded 4797db96d56Sopenharmony_ciddfma2776 fma 1e+60 1e+327 0e+384 -> Infinity Overflow Inexact Rounded 4807db96d56Sopenharmony_ciddfma2777 fma 1e+60 1e+328 0e+384 -> Infinity Overflow Inexact Rounded 4817db96d56Sopenharmony_ciddfma2778 fma 1e+60 1e+329 0e+384 -> Infinity Overflow Inexact Rounded 4827db96d56Sopenharmony_ciddfma2779 fma 1e+60 1e+330 0e+384 -> Infinity Overflow Inexact Rounded 4837db96d56Sopenharmony_ci 4847db96d56Sopenharmony_ciddfma2801 fma 1.0000E-394 1 0e+384 -> 1.0000E-394 Subnormal 4857db96d56Sopenharmony_ciddfma2802 fma 1.000E-394 1e-1 0e+384 -> 1.000E-395 Subnormal 4867db96d56Sopenharmony_ciddfma2803 fma 1.00E-394 1e-2 0e+384 -> 1.00E-396 Subnormal 4877db96d56Sopenharmony_ciddfma2804 fma 1.0E-394 1e-3 0e+384 -> 1.0E-397 Subnormal 4887db96d56Sopenharmony_ciddfma2805 fma 1.0E-394 1e-4 0e+384 -> 1E-398 Subnormal Rounded 4897db96d56Sopenharmony_ciddfma2806 fma 1.3E-394 1e-4 0e+384 -> 1E-398 Underflow Subnormal Inexact Rounded 4907db96d56Sopenharmony_ciddfma2807 fma 1.5E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded 4917db96d56Sopenharmony_ciddfma2808 fma 1.7E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded 4927db96d56Sopenharmony_ciddfma2809 fma 2.3E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded 4937db96d56Sopenharmony_ciddfma2810 fma 2.5E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded 4947db96d56Sopenharmony_ciddfma2811 fma 2.7E-394 1e-4 0e+384 -> 3E-398 Underflow Subnormal Inexact Rounded 4957db96d56Sopenharmony_ciddfma2812 fma 1.49E-394 1e-4 0e+384 -> 1E-398 Underflow Subnormal Inexact Rounded 4967db96d56Sopenharmony_ciddfma2813 fma 1.50E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded 4977db96d56Sopenharmony_ciddfma2814 fma 1.51E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded 4987db96d56Sopenharmony_ciddfma2815 fma 2.49E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded 4997db96d56Sopenharmony_ciddfma2816 fma 2.50E-394 1e-4 0e+384 -> 2E-398 Underflow Subnormal Inexact Rounded 5007db96d56Sopenharmony_ciddfma2817 fma 2.51E-394 1e-4 0e+384 -> 3E-398 Underflow Subnormal Inexact Rounded 5017db96d56Sopenharmony_ci 5027db96d56Sopenharmony_ciddfma2818 fma 1E-394 1e-4 0e+384 -> 1E-398 Subnormal 5037db96d56Sopenharmony_ciddfma2819 fma 3E-394 1e-5 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 5047db96d56Sopenharmony_ciddfma2820 fma 5E-394 1e-5 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 5057db96d56Sopenharmony_ciddfma2821 fma 7E-394 1e-5 0e+384 -> 1E-398 Underflow Subnormal Inexact Rounded 5067db96d56Sopenharmony_ciddfma2822 fma 9E-394 1e-5 0e+384 -> 1E-398 Underflow Subnormal Inexact Rounded 5077db96d56Sopenharmony_ciddfma2823 fma 9.9E-394 1e-5 0e+384 -> 1E-398 Underflow Subnormal Inexact Rounded 5087db96d56Sopenharmony_ci 5097db96d56Sopenharmony_ciddfma2824 fma 1E-394 -1e-4 0e+384 -> -1E-398 Subnormal 5107db96d56Sopenharmony_ciddfma2825 fma 3E-394 -1e-5 0e+384 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped 5117db96d56Sopenharmony_ciddfma2826 fma -5E-394 1e-5 0e+384 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped 5127db96d56Sopenharmony_ciddfma2827 fma 7E-394 -1e-5 0e+384 -> -1E-398 Underflow Subnormal Inexact Rounded 5137db96d56Sopenharmony_ciddfma2828 fma -9E-394 1e-5 0e+384 -> -1E-398 Underflow Subnormal Inexact Rounded 5147db96d56Sopenharmony_ciddfma2829 fma 9.9E-394 -1e-5 0e+384 -> -1E-398 Underflow Subnormal Inexact Rounded 5157db96d56Sopenharmony_ciddfma2830 fma 3.0E-394 -1e-5 0e+384 -> -0E-398 Underflow Subnormal Inexact Rounded Clamped 5167db96d56Sopenharmony_ci 5177db96d56Sopenharmony_ciddfma2831 fma 1.0E-199 1e-200 0e+384 -> 0E-398 Underflow Subnormal Inexact Rounded Clamped 5187db96d56Sopenharmony_ciddfma2832 fma 1.0E-199 1e-199 0e+384 -> 1E-398 Subnormal Rounded 5197db96d56Sopenharmony_ciddfma2833 fma 1.0E-199 1e-198 0e+384 -> 1.0E-397 Subnormal 5207db96d56Sopenharmony_ciddfma2834 fma 2.0E-199 2e-198 0e+384 -> 4.0E-397 Subnormal 5217db96d56Sopenharmony_ciddfma2835 fma 4.0E-199 4e-198 0e+384 -> 1.60E-396 Subnormal 5227db96d56Sopenharmony_ciddfma2836 fma 10.0E-199 10e-198 0e+384 -> 1.000E-395 Subnormal 5237db96d56Sopenharmony_ciddfma2837 fma 30.0E-199 30e-198 0e+384 -> 9.000E-395 Subnormal 5247db96d56Sopenharmony_ciddfma2838 fma 40.0E-199 40e-188 0e+384 -> 1.6000E-384 Subnormal 5257db96d56Sopenharmony_ciddfma2839 fma 40.0E-199 40e-187 0e+384 -> 1.6000E-383 5267db96d56Sopenharmony_ciddfma2840 fma 40.0E-199 40e-186 0e+384 -> 1.6000E-382 5277db96d56Sopenharmony_ci 5287db96d56Sopenharmony_ci-- Long operand overflow may be a different path 5297db96d56Sopenharmony_ciddfma2870 fma 100 9.999E+383 0e+384 -> Infinity Inexact Overflow Rounded 5307db96d56Sopenharmony_ciddfma2871 fma 100 -9.999E+383 0e+384 -> -Infinity Inexact Overflow Rounded 5317db96d56Sopenharmony_ciddfma2872 fma 9.999E+383 100 0e+384 -> Infinity Inexact Overflow Rounded 5327db96d56Sopenharmony_ciddfma2873 fma -9.999E+383 100 0e+384 -> -Infinity Inexact Overflow Rounded 5337db96d56Sopenharmony_ci 5347db96d56Sopenharmony_ci-- check for double-rounded subnormals 5357db96d56Sopenharmony_ciddfma2881 fma 1.2347E-355 1.2347E-40 0e+384 -> 1.524E-395 Inexact Rounded Subnormal Underflow 5367db96d56Sopenharmony_ciddfma2882 fma 1.234E-355 1.234E-40 0e+384 -> 1.523E-395 Inexact Rounded Subnormal Underflow 5377db96d56Sopenharmony_ciddfma2883 fma 1.23E-355 1.23E-40 0e+384 -> 1.513E-395 Inexact Rounded Subnormal Underflow 5387db96d56Sopenharmony_ciddfma2884 fma 1.2E-355 1.2E-40 0e+384 -> 1.44E-395 Subnormal 5397db96d56Sopenharmony_ciddfma2885 fma 1.2E-355 1.2E-41 0e+384 -> 1.44E-396 Subnormal 5407db96d56Sopenharmony_ciddfma2886 fma 1.2E-355 1.2E-42 0e+384 -> 1.4E-397 Subnormal Inexact Rounded Underflow 5417db96d56Sopenharmony_ciddfma2887 fma 1.2E-355 1.3E-42 0e+384 -> 1.6E-397 Subnormal Inexact Rounded Underflow 5427db96d56Sopenharmony_ciddfma2888 fma 1.3E-355 1.3E-42 0e+384 -> 1.7E-397 Subnormal Inexact Rounded Underflow 5437db96d56Sopenharmony_ciddfma2889 fma 1.3E-355 1.3E-43 0e+384 -> 2E-398 Subnormal Inexact Rounded Underflow 5447db96d56Sopenharmony_ciddfma2890 fma 1.3E-356 1.3E-43 0e+384 -> 0E-398 Clamped Subnormal Inexact Rounded Underflow 5457db96d56Sopenharmony_ci 5467db96d56Sopenharmony_ciddfma2891 fma 1.2345E-39 1.234E-355 0e+384 -> 1.5234E-394 Inexact Rounded Subnormal Underflow 5477db96d56Sopenharmony_ciddfma2892 fma 1.23456E-39 1.234E-355 0e+384 -> 1.5234E-394 Inexact Rounded Subnormal Underflow 5487db96d56Sopenharmony_ciddfma2893 fma 1.2345E-40 1.234E-355 0e+384 -> 1.523E-395 Inexact Rounded Subnormal Underflow 5497db96d56Sopenharmony_ciddfma2894 fma 1.23456E-40 1.234E-355 0e+384 -> 1.523E-395 Inexact Rounded Subnormal Underflow 5507db96d56Sopenharmony_ciddfma2895 fma 1.2345E-41 1.234E-355 0e+384 -> 1.52E-396 Inexact Rounded Subnormal Underflow 5517db96d56Sopenharmony_ciddfma2896 fma 1.23456E-41 1.234E-355 0e+384 -> 1.52E-396 Inexact Rounded Subnormal Underflow 5527db96d56Sopenharmony_ci 5537db96d56Sopenharmony_ci-- Now explore the case where we get a normal result with Underflow 5547db96d56Sopenharmony_ciddfma2900 fma 0.3000000000E-191 0.3000000000E-191 0e+384 -> 9.00000000000000E-384 Subnormal Rounded 5557db96d56Sopenharmony_ciddfma2901 fma 0.3000000001E-191 0.3000000001E-191 0e+384 -> 9.00000000600000E-384 Underflow Inexact Subnormal Rounded 5567db96d56Sopenharmony_ciddfma2902 fma 9.999999999999999E-383 0.0999999999999 0e+384 -> 9.99999999999000E-384 Underflow Inexact Subnormal Rounded 5577db96d56Sopenharmony_ciddfma2903 fma 9.999999999999999E-383 0.09999999999999 0e+384 -> 9.99999999999900E-384 Underflow Inexact Subnormal Rounded 5587db96d56Sopenharmony_ciddfma2904 fma 9.999999999999999E-383 0.099999999999999 0e+384 -> 9.99999999999990E-384 Underflow Inexact Subnormal Rounded 5597db96d56Sopenharmony_ciddfma2905 fma 9.999999999999999E-383 0.0999999999999999 0e+384 -> 9.99999999999999E-384 Underflow Inexact Subnormal Rounded 5607db96d56Sopenharmony_ci-- prove operands are exact 5617db96d56Sopenharmony_ciddfma2906 fma 9.999999999999999E-383 1 0e+384 -> 9.999999999999999E-383 5627db96d56Sopenharmony_ciddfma2907 fma 1 0.09999999999999999 0e+384 -> 0.09999999999999999 5637db96d56Sopenharmony_ci-- the next rounds to Nmin 5647db96d56Sopenharmony_ciddfma2908 fma 9.999999999999999E-383 0.09999999999999999 0e+384 -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded 5657db96d56Sopenharmony_ci 5667db96d56Sopenharmony_ci-- hugest 5677db96d56Sopenharmony_ciddfma2909 fma 9999999999999999 9999999999999999 0e+384 -> 9.999999999999998E+31 Inexact Rounded 5687db96d56Sopenharmony_ci 5697db96d56Sopenharmony_ci-- Null tests 5707db96d56Sopenharmony_ciddfma2990 fma 10 # 0e+384 -> NaN Invalid_operation 5717db96d56Sopenharmony_ciddfma2991 fma # 10 0e+384 -> NaN Invalid_operation 5727db96d56Sopenharmony_ci 5737db96d56Sopenharmony_ci 5747db96d56Sopenharmony_ci-- ADDITION TESTS ------------------------------------------------------ 5757db96d56Sopenharmony_ci 5767db96d56Sopenharmony_ci-- [first group are 'quick confidence check'] 5777db96d56Sopenharmony_ciddfma3001 fma 1 1 1 -> 2 5787db96d56Sopenharmony_ciddfma3002 fma 1 2 3 -> 5 5797db96d56Sopenharmony_ciddfma3003 fma 1 '5.75' '3.3' -> 9.05 5807db96d56Sopenharmony_ciddfma3004 fma 1 '5' '-3' -> 2 5817db96d56Sopenharmony_ciddfma3005 fma 1 '-5' '-3' -> -8 5827db96d56Sopenharmony_ciddfma3006 fma 1 '-7' '2.5' -> -4.5 5837db96d56Sopenharmony_ciddfma3007 fma 1 '0.7' '0.3' -> 1.0 5847db96d56Sopenharmony_ciddfma3008 fma 1 '1.25' '1.25' -> 2.50 5857db96d56Sopenharmony_ciddfma3009 fma 1 '1.23456789' '1.00000000' -> '2.23456789' 5867db96d56Sopenharmony_ciddfma3010 fma 1 '1.23456789' '1.00000011' -> '2.23456800' 5877db96d56Sopenharmony_ci 5887db96d56Sopenharmony_ci-- 1234567890123456 1234567890123456 5897db96d56Sopenharmony_ciddfma3011 fma 1 '0.4444444444444446' '0.5555555555555555' -> '1.000000000000000' Inexact Rounded 5907db96d56Sopenharmony_ciddfma3012 fma 1 '0.4444444444444445' '0.5555555555555555' -> '1.000000000000000' Rounded 5917db96d56Sopenharmony_ciddfma3013 fma 1 '0.4444444444444444' '0.5555555555555555' -> '0.9999999999999999' 5927db96d56Sopenharmony_ciddfma3014 fma 1 '4444444444444444' '0.49' -> '4444444444444444' Inexact Rounded 5937db96d56Sopenharmony_ciddfma3015 fma 1 '4444444444444444' '0.499' -> '4444444444444444' Inexact Rounded 5947db96d56Sopenharmony_ciddfma3016 fma 1 '4444444444444444' '0.4999' -> '4444444444444444' Inexact Rounded 5957db96d56Sopenharmony_ciddfma3017 fma 1 '4444444444444444' '0.5000' -> '4444444444444444' Inexact Rounded 5967db96d56Sopenharmony_ciddfma3018 fma 1 '4444444444444444' '0.5001' -> '4444444444444445' Inexact Rounded 5977db96d56Sopenharmony_ciddfma3019 fma 1 '4444444444444444' '0.501' -> '4444444444444445' Inexact Rounded 5987db96d56Sopenharmony_ciddfma3020 fma 1 '4444444444444444' '0.51' -> '4444444444444445' Inexact Rounded 5997db96d56Sopenharmony_ci 6007db96d56Sopenharmony_ciddfma3021 fma 1 0 1 -> 1 6017db96d56Sopenharmony_ciddfma3022 fma 1 1 1 -> 2 6027db96d56Sopenharmony_ciddfma3023 fma 1 2 1 -> 3 6037db96d56Sopenharmony_ciddfma3024 fma 1 3 1 -> 4 6047db96d56Sopenharmony_ciddfma3025 fma 1 4 1 -> 5 6057db96d56Sopenharmony_ciddfma3026 fma 1 5 1 -> 6 6067db96d56Sopenharmony_ciddfma3027 fma 1 6 1 -> 7 6077db96d56Sopenharmony_ciddfma3028 fma 1 7 1 -> 8 6087db96d56Sopenharmony_ciddfma3029 fma 1 8 1 -> 9 6097db96d56Sopenharmony_ciddfma3030 fma 1 9 1 -> 10 6107db96d56Sopenharmony_ci 6117db96d56Sopenharmony_ci-- some carrying effects 6127db96d56Sopenharmony_ciddfma3031 fma 1 '0.9998' '0.0000' -> '0.9998' 6137db96d56Sopenharmony_ciddfma3032 fma 1 '0.9998' '0.0001' -> '0.9999' 6147db96d56Sopenharmony_ciddfma3033 fma 1 '0.9998' '0.0002' -> '1.0000' 6157db96d56Sopenharmony_ciddfma3034 fma 1 '0.9998' '0.0003' -> '1.0001' 6167db96d56Sopenharmony_ci 6177db96d56Sopenharmony_ciddfma3035 fma 1 '70' '10000e+16' -> '1.000000000000000E+20' Inexact Rounded 6187db96d56Sopenharmony_ciddfma3036 fma 1 '700' '10000e+16' -> '1.000000000000000E+20' Inexact Rounded 6197db96d56Sopenharmony_ciddfma3037 fma 1 '7000' '10000e+16' -> '1.000000000000000E+20' Inexact Rounded 6207db96d56Sopenharmony_ciddfma3038 fma 1 '70000' '10000e+16' -> '1.000000000000001E+20' Inexact Rounded 6217db96d56Sopenharmony_ciddfma3039 fma 1 '700000' '10000e+16' -> '1.000000000000007E+20' Rounded 6227db96d56Sopenharmony_ci 6237db96d56Sopenharmony_ci-- symmetry: 6247db96d56Sopenharmony_ciddfma3040 fma 1 '10000e+16' '70' -> '1.000000000000000E+20' Inexact Rounded 6257db96d56Sopenharmony_ciddfma3041 fma 1 '10000e+16' '700' -> '1.000000000000000E+20' Inexact Rounded 6267db96d56Sopenharmony_ciddfma3042 fma 1 '10000e+16' '7000' -> '1.000000000000000E+20' Inexact Rounded 6277db96d56Sopenharmony_ciddfma3044 fma 1 '10000e+16' '70000' -> '1.000000000000001E+20' Inexact Rounded 6287db96d56Sopenharmony_ciddfma3045 fma 1 '10000e+16' '700000' -> '1.000000000000007E+20' Rounded 6297db96d56Sopenharmony_ci 6307db96d56Sopenharmony_ci-- same, without rounding 6317db96d56Sopenharmony_ciddfma3046 fma 1 '10000e+9' '7' -> '10000000000007' 6327db96d56Sopenharmony_ciddfma3047 fma 1 '10000e+9' '70' -> '10000000000070' 6337db96d56Sopenharmony_ciddfma3048 fma 1 '10000e+9' '700' -> '10000000000700' 6347db96d56Sopenharmony_ciddfma3049 fma 1 '10000e+9' '7000' -> '10000000007000' 6357db96d56Sopenharmony_ciddfma3050 fma 1 '10000e+9' '70000' -> '10000000070000' 6367db96d56Sopenharmony_ciddfma3051 fma 1 '10000e+9' '700000' -> '10000000700000' 6377db96d56Sopenharmony_ciddfma3052 fma 1 '10000e+9' '7000000' -> '10000007000000' 6387db96d56Sopenharmony_ci 6397db96d56Sopenharmony_ci-- examples from decarith 6407db96d56Sopenharmony_ciddfma3053 fma 1 '12' '7.00' -> '19.00' 6417db96d56Sopenharmony_ciddfma3054 fma 1 '1.3' '-1.07' -> '0.23' 6427db96d56Sopenharmony_ciddfma3055 fma 1 '1.3' '-1.30' -> '0.00' 6437db96d56Sopenharmony_ciddfma3056 fma 1 '1.3' '-2.07' -> '-0.77' 6447db96d56Sopenharmony_ciddfma3057 fma 1 '1E+2' '1E+4' -> '1.01E+4' 6457db96d56Sopenharmony_ci 6467db96d56Sopenharmony_ci-- leading zero preservation 6477db96d56Sopenharmony_ciddfma3061 fma 1 1 '0.0001' -> '1.0001' 6487db96d56Sopenharmony_ciddfma3062 fma 1 1 '0.00001' -> '1.00001' 6497db96d56Sopenharmony_ciddfma3063 fma 1 1 '0.000001' -> '1.000001' 6507db96d56Sopenharmony_ciddfma3064 fma 1 1 '0.0000001' -> '1.0000001' 6517db96d56Sopenharmony_ciddfma3065 fma 1 1 '0.00000001' -> '1.00000001' 6527db96d56Sopenharmony_ci 6537db96d56Sopenharmony_ci-- some funny zeros [in case of bad signum] 6547db96d56Sopenharmony_ciddfma3070 fma 1 1 0 -> 1 6557db96d56Sopenharmony_ciddfma3071 fma 1 1 0. -> 1 6567db96d56Sopenharmony_ciddfma3072 fma 1 1 .0 -> 1.0 6577db96d56Sopenharmony_ciddfma3073 fma 1 1 0.0 -> 1.0 6587db96d56Sopenharmony_ciddfma3074 fma 1 1 0.00 -> 1.00 6597db96d56Sopenharmony_ciddfma3075 fma 1 0 1 -> 1 6607db96d56Sopenharmony_ciddfma3076 fma 1 0. 1 -> 1 6617db96d56Sopenharmony_ciddfma3077 fma 1 .0 1 -> 1.0 6627db96d56Sopenharmony_ciddfma3078 fma 1 0.0 1 -> 1.0 6637db96d56Sopenharmony_ciddfma3079 fma 1 0.00 1 -> 1.00 6647db96d56Sopenharmony_ci 6657db96d56Sopenharmony_ci-- some carries 6667db96d56Sopenharmony_ciddfma3080 fma 1 999999998 1 -> 999999999 6677db96d56Sopenharmony_ciddfma3081 fma 1 999999999 1 -> 1000000000 6687db96d56Sopenharmony_ciddfma3082 fma 1 99999999 1 -> 100000000 6697db96d56Sopenharmony_ciddfma3083 fma 1 9999999 1 -> 10000000 6707db96d56Sopenharmony_ciddfma3084 fma 1 999999 1 -> 1000000 6717db96d56Sopenharmony_ciddfma3085 fma 1 99999 1 -> 100000 6727db96d56Sopenharmony_ciddfma3086 fma 1 9999 1 -> 10000 6737db96d56Sopenharmony_ciddfma3087 fma 1 999 1 -> 1000 6747db96d56Sopenharmony_ciddfma3088 fma 1 99 1 -> 100 6757db96d56Sopenharmony_ciddfma3089 fma 1 9 1 -> 10 6767db96d56Sopenharmony_ci 6777db96d56Sopenharmony_ci 6787db96d56Sopenharmony_ci-- more LHS swaps 6797db96d56Sopenharmony_ciddfma3090 fma 1 '-56267E-10' 0 -> '-0.0000056267' 6807db96d56Sopenharmony_ciddfma3091 fma 1 '-56267E-6' 0 -> '-0.056267' 6817db96d56Sopenharmony_ciddfma3092 fma 1 '-56267E-5' 0 -> '-0.56267' 6827db96d56Sopenharmony_ciddfma3093 fma 1 '-56267E-4' 0 -> '-5.6267' 6837db96d56Sopenharmony_ciddfma3094 fma 1 '-56267E-3' 0 -> '-56.267' 6847db96d56Sopenharmony_ciddfma3095 fma 1 '-56267E-2' 0 -> '-562.67' 6857db96d56Sopenharmony_ciddfma3096 fma 1 '-56267E-1' 0 -> '-5626.7' 6867db96d56Sopenharmony_ciddfma3097 fma 1 '-56267E-0' 0 -> '-56267' 6877db96d56Sopenharmony_ciddfma3098 fma 1 '-5E-10' 0 -> '-5E-10' 6887db96d56Sopenharmony_ciddfma3099 fma 1 '-5E-7' 0 -> '-5E-7' 6897db96d56Sopenharmony_ciddfma3100 fma 1 '-5E-6' 0 -> '-0.000005' 6907db96d56Sopenharmony_ciddfma3101 fma 1 '-5E-5' 0 -> '-0.00005' 6917db96d56Sopenharmony_ciddfma3102 fma 1 '-5E-4' 0 -> '-0.0005' 6927db96d56Sopenharmony_ciddfma3103 fma 1 '-5E-1' 0 -> '-0.5' 6937db96d56Sopenharmony_ciddfma3104 fma 1 '-5E0' 0 -> '-5' 6947db96d56Sopenharmony_ciddfma3105 fma 1 '-5E1' 0 -> '-50' 6957db96d56Sopenharmony_ciddfma3106 fma 1 '-5E5' 0 -> '-500000' 6967db96d56Sopenharmony_ciddfma3107 fma 1 '-5E15' 0 -> '-5000000000000000' 6977db96d56Sopenharmony_ciddfma3108 fma 1 '-5E16' 0 -> '-5.000000000000000E+16' Rounded 6987db96d56Sopenharmony_ciddfma3109 fma 1 '-5E17' 0 -> '-5.000000000000000E+17' Rounded 6997db96d56Sopenharmony_ciddfma3110 fma 1 '-5E18' 0 -> '-5.000000000000000E+18' Rounded 7007db96d56Sopenharmony_ciddfma3111 fma 1 '-5E100' 0 -> '-5.000000000000000E+100' Rounded 7017db96d56Sopenharmony_ci 7027db96d56Sopenharmony_ci-- more RHS swaps 7037db96d56Sopenharmony_ciddfma3113 fma 1 0 '-56267E-10' -> '-0.0000056267' 7047db96d56Sopenharmony_ciddfma3114 fma 1 0 '-56267E-6' -> '-0.056267' 7057db96d56Sopenharmony_ciddfma3116 fma 1 0 '-56267E-5' -> '-0.56267' 7067db96d56Sopenharmony_ciddfma3117 fma 1 0 '-56267E-4' -> '-5.6267' 7077db96d56Sopenharmony_ciddfma3119 fma 1 0 '-56267E-3' -> '-56.267' 7087db96d56Sopenharmony_ciddfma3120 fma 1 0 '-56267E-2' -> '-562.67' 7097db96d56Sopenharmony_ciddfma3121 fma 1 0 '-56267E-1' -> '-5626.7' 7107db96d56Sopenharmony_ciddfma3122 fma 1 0 '-56267E-0' -> '-56267' 7117db96d56Sopenharmony_ciddfma3123 fma 1 0 '-5E-10' -> '-5E-10' 7127db96d56Sopenharmony_ciddfma3124 fma 1 0 '-5E-7' -> '-5E-7' 7137db96d56Sopenharmony_ciddfma3125 fma 1 0 '-5E-6' -> '-0.000005' 7147db96d56Sopenharmony_ciddfma3126 fma 1 0 '-5E-5' -> '-0.00005' 7157db96d56Sopenharmony_ciddfma3127 fma 1 0 '-5E-4' -> '-0.0005' 7167db96d56Sopenharmony_ciddfma3128 fma 1 0 '-5E-1' -> '-0.5' 7177db96d56Sopenharmony_ciddfma3129 fma 1 0 '-5E0' -> '-5' 7187db96d56Sopenharmony_ciddfma3130 fma 1 0 '-5E1' -> '-50' 7197db96d56Sopenharmony_ciddfma3131 fma 1 0 '-5E5' -> '-500000' 7207db96d56Sopenharmony_ciddfma3132 fma 1 0 '-5E15' -> '-5000000000000000' 7217db96d56Sopenharmony_ciddfma3133 fma 1 0 '-5E16' -> '-5.000000000000000E+16' Rounded 7227db96d56Sopenharmony_ciddfma3134 fma 1 0 '-5E17' -> '-5.000000000000000E+17' Rounded 7237db96d56Sopenharmony_ciddfma3135 fma 1 0 '-5E18' -> '-5.000000000000000E+18' Rounded 7247db96d56Sopenharmony_ciddfma3136 fma 1 0 '-5E100' -> '-5.000000000000000E+100' Rounded 7257db96d56Sopenharmony_ci 7267db96d56Sopenharmony_ci-- related 7277db96d56Sopenharmony_ciddfma3137 fma 1 1 '0E-19' -> '1.000000000000000' Rounded 7287db96d56Sopenharmony_ciddfma3138 fma 1 -1 '0E-19' -> '-1.000000000000000' Rounded 7297db96d56Sopenharmony_ciddfma3139 fma 1 '0E-19' 1 -> '1.000000000000000' Rounded 7307db96d56Sopenharmony_ciddfma3140 fma 1 '0E-19' -1 -> '-1.000000000000000' Rounded 7317db96d56Sopenharmony_ciddfma3141 fma 1 1E+11 0.0000 -> '100000000000.0000' 7327db96d56Sopenharmony_ciddfma3142 fma 1 1E+11 0.00000 -> '100000000000.0000' Rounded 7337db96d56Sopenharmony_ciddfma3143 fma 1 0.000 1E+12 -> '1000000000000.000' 7347db96d56Sopenharmony_ciddfma3144 fma 1 0.0000 1E+12 -> '1000000000000.000' Rounded 7357db96d56Sopenharmony_ci 7367db96d56Sopenharmony_ci-- [some of the next group are really constructor tests] 7377db96d56Sopenharmony_ciddfma3146 fma 1 '00.0' 0 -> '0.0' 7387db96d56Sopenharmony_ciddfma3147 fma 1 '0.00' 0 -> '0.00' 7397db96d56Sopenharmony_ciddfma3148 fma 1 0 '0.00' -> '0.00' 7407db96d56Sopenharmony_ciddfma3149 fma 1 0 '00.0' -> '0.0' 7417db96d56Sopenharmony_ciddfma3150 fma 1 '00.0' '0.00' -> '0.00' 7427db96d56Sopenharmony_ciddfma3151 fma 1 '0.00' '00.0' -> '0.00' 7437db96d56Sopenharmony_ciddfma3152 fma 1 '3' '.3' -> '3.3' 7447db96d56Sopenharmony_ciddfma3153 fma 1 '3.' '.3' -> '3.3' 7457db96d56Sopenharmony_ciddfma3154 fma 1 '3.0' '.3' -> '3.3' 7467db96d56Sopenharmony_ciddfma3155 fma 1 '3.00' '.3' -> '3.30' 7477db96d56Sopenharmony_ciddfma3156 fma 1 '3' '3' -> '6' 7487db96d56Sopenharmony_ciddfma3157 fma 1 '3' '+3' -> '6' 7497db96d56Sopenharmony_ciddfma3158 fma 1 '3' '-3' -> '0' 7507db96d56Sopenharmony_ciddfma3159 fma 1 '0.3' '-0.3' -> '0.0' 7517db96d56Sopenharmony_ciddfma3160 fma 1 '0.03' '-0.03' -> '0.00' 7527db96d56Sopenharmony_ci 7537db96d56Sopenharmony_ci-- try borderline precision, with carries, etc. 7547db96d56Sopenharmony_ciddfma3161 fma 1 '1E+12' '-1' -> '999999999999' 7557db96d56Sopenharmony_ciddfma3162 fma 1 '1E+12' '1.11' -> '1000000000001.11' 7567db96d56Sopenharmony_ciddfma3163 fma 1 '1.11' '1E+12' -> '1000000000001.11' 7577db96d56Sopenharmony_ciddfma3164 fma 1 '-1' '1E+12' -> '999999999999' 7587db96d56Sopenharmony_ciddfma3165 fma 1 '7E+12' '-1' -> '6999999999999' 7597db96d56Sopenharmony_ciddfma3166 fma 1 '7E+12' '1.11' -> '7000000000001.11' 7607db96d56Sopenharmony_ciddfma3167 fma 1 '1.11' '7E+12' -> '7000000000001.11' 7617db96d56Sopenharmony_ciddfma3168 fma 1 '-1' '7E+12' -> '6999999999999' 7627db96d56Sopenharmony_ci 7637db96d56Sopenharmony_cirounding: half_up 7647db96d56Sopenharmony_ci-- 1.234567890123456 1234567890123456 1 234567890123456 7657db96d56Sopenharmony_ciddfma3170 fma 1 '4.444444444444444' '0.5555555555555567' -> '5.000000000000001' Inexact Rounded 7667db96d56Sopenharmony_ciddfma3171 fma 1 '4.444444444444444' '0.5555555555555566' -> '5.000000000000001' Inexact Rounded 7677db96d56Sopenharmony_ciddfma3172 fma 1 '4.444444444444444' '0.5555555555555565' -> '5.000000000000001' Inexact Rounded 7687db96d56Sopenharmony_ciddfma3173 fma 1 '4.444444444444444' '0.5555555555555564' -> '5.000000000000000' Inexact Rounded 7697db96d56Sopenharmony_ciddfma3174 fma 1 '4.444444444444444' '0.5555555555555553' -> '4.999999999999999' Inexact Rounded 7707db96d56Sopenharmony_ciddfma3175 fma 1 '4.444444444444444' '0.5555555555555552' -> '4.999999999999999' Inexact Rounded 7717db96d56Sopenharmony_ciddfma3176 fma 1 '4.444444444444444' '0.5555555555555551' -> '4.999999999999999' Inexact Rounded 7727db96d56Sopenharmony_ciddfma3177 fma 1 '4.444444444444444' '0.5555555555555550' -> '4.999999999999999' Rounded 7737db96d56Sopenharmony_ciddfma3178 fma 1 '4.444444444444444' '0.5555555555555545' -> '4.999999999999999' Inexact Rounded 7747db96d56Sopenharmony_ciddfma3179 fma 1 '4.444444444444444' '0.5555555555555544' -> '4.999999999999998' Inexact Rounded 7757db96d56Sopenharmony_ciddfma3180 fma 1 '4.444444444444444' '0.5555555555555543' -> '4.999999999999998' Inexact Rounded 7767db96d56Sopenharmony_ciddfma3181 fma 1 '4.444444444444444' '0.5555555555555542' -> '4.999999999999998' Inexact Rounded 7777db96d56Sopenharmony_ciddfma3182 fma 1 '4.444444444444444' '0.5555555555555541' -> '4.999999999999998' Inexact Rounded 7787db96d56Sopenharmony_ciddfma3183 fma 1 '4.444444444444444' '0.5555555555555540' -> '4.999999999999998' Rounded 7797db96d56Sopenharmony_ci 7807db96d56Sopenharmony_ci-- and some more, including residue effects and different roundings 7817db96d56Sopenharmony_cirounding: half_up 7827db96d56Sopenharmony_ciddfma3200 fma 1 '1234560123456789' 0 -> '1234560123456789' 7837db96d56Sopenharmony_ciddfma3201 fma 1 '1234560123456789' 0.000000001 -> '1234560123456789' Inexact Rounded 7847db96d56Sopenharmony_ciddfma3202 fma 1 '1234560123456789' 0.000001 -> '1234560123456789' Inexact Rounded 7857db96d56Sopenharmony_ciddfma3203 fma 1 '1234560123456789' 0.1 -> '1234560123456789' Inexact Rounded 7867db96d56Sopenharmony_ciddfma3204 fma 1 '1234560123456789' 0.4 -> '1234560123456789' Inexact Rounded 7877db96d56Sopenharmony_ciddfma3205 fma 1 '1234560123456789' 0.49 -> '1234560123456789' Inexact Rounded 7887db96d56Sopenharmony_ciddfma3206 fma 1 '1234560123456789' 0.499999 -> '1234560123456789' Inexact Rounded 7897db96d56Sopenharmony_ciddfma3207 fma 1 '1234560123456789' 0.499999999 -> '1234560123456789' Inexact Rounded 7907db96d56Sopenharmony_ciddfma3208 fma 1 '1234560123456789' 0.5 -> '1234560123456790' Inexact Rounded 7917db96d56Sopenharmony_ciddfma3209 fma 1 '1234560123456789' 0.500000001 -> '1234560123456790' Inexact Rounded 7927db96d56Sopenharmony_ciddfma3210 fma 1 '1234560123456789' 0.500001 -> '1234560123456790' Inexact Rounded 7937db96d56Sopenharmony_ciddfma3211 fma 1 '1234560123456789' 0.51 -> '1234560123456790' Inexact Rounded 7947db96d56Sopenharmony_ciddfma3212 fma 1 '1234560123456789' 0.6 -> '1234560123456790' Inexact Rounded 7957db96d56Sopenharmony_ciddfma3213 fma 1 '1234560123456789' 0.9 -> '1234560123456790' Inexact Rounded 7967db96d56Sopenharmony_ciddfma3214 fma 1 '1234560123456789' 0.99999 -> '1234560123456790' Inexact Rounded 7977db96d56Sopenharmony_ciddfma3215 fma 1 '1234560123456789' 0.999999999 -> '1234560123456790' Inexact Rounded 7987db96d56Sopenharmony_ciddfma3216 fma 1 '1234560123456789' 1 -> '1234560123456790' 7997db96d56Sopenharmony_ciddfma3217 fma 1 '1234560123456789' 1.000000001 -> '1234560123456790' Inexact Rounded 8007db96d56Sopenharmony_ciddfma3218 fma 1 '1234560123456789' 1.00001 -> '1234560123456790' Inexact Rounded 8017db96d56Sopenharmony_ciddfma3219 fma 1 '1234560123456789' 1.1 -> '1234560123456790' Inexact Rounded 8027db96d56Sopenharmony_ci 8037db96d56Sopenharmony_cirounding: half_even 8047db96d56Sopenharmony_ciddfma3220 fma 1 '1234560123456789' 0 -> '1234560123456789' 8057db96d56Sopenharmony_ciddfma3221 fma 1 '1234560123456789' 0.000000001 -> '1234560123456789' Inexact Rounded 8067db96d56Sopenharmony_ciddfma3222 fma 1 '1234560123456789' 0.000001 -> '1234560123456789' Inexact Rounded 8077db96d56Sopenharmony_ciddfma3223 fma 1 '1234560123456789' 0.1 -> '1234560123456789' Inexact Rounded 8087db96d56Sopenharmony_ciddfma3224 fma 1 '1234560123456789' 0.4 -> '1234560123456789' Inexact Rounded 8097db96d56Sopenharmony_ciddfma3225 fma 1 '1234560123456789' 0.49 -> '1234560123456789' Inexact Rounded 8107db96d56Sopenharmony_ciddfma3226 fma 1 '1234560123456789' 0.499999 -> '1234560123456789' Inexact Rounded 8117db96d56Sopenharmony_ciddfma3227 fma 1 '1234560123456789' 0.499999999 -> '1234560123456789' Inexact Rounded 8127db96d56Sopenharmony_ciddfma3228 fma 1 '1234560123456789' 0.5 -> '1234560123456790' Inexact Rounded 8137db96d56Sopenharmony_ciddfma3229 fma 1 '1234560123456789' 0.500000001 -> '1234560123456790' Inexact Rounded 8147db96d56Sopenharmony_ciddfma3230 fma 1 '1234560123456789' 0.500001 -> '1234560123456790' Inexact Rounded 8157db96d56Sopenharmony_ciddfma3231 fma 1 '1234560123456789' 0.51 -> '1234560123456790' Inexact Rounded 8167db96d56Sopenharmony_ciddfma3232 fma 1 '1234560123456789' 0.6 -> '1234560123456790' Inexact Rounded 8177db96d56Sopenharmony_ciddfma3233 fma 1 '1234560123456789' 0.9 -> '1234560123456790' Inexact Rounded 8187db96d56Sopenharmony_ciddfma3234 fma 1 '1234560123456789' 0.99999 -> '1234560123456790' Inexact Rounded 8197db96d56Sopenharmony_ciddfma3235 fma 1 '1234560123456789' 0.999999999 -> '1234560123456790' Inexact Rounded 8207db96d56Sopenharmony_ciddfma3236 fma 1 '1234560123456789' 1 -> '1234560123456790' 8217db96d56Sopenharmony_ciddfma3237 fma 1 '1234560123456789' 1.00000001 -> '1234560123456790' Inexact Rounded 8227db96d56Sopenharmony_ciddfma3238 fma 1 '1234560123456789' 1.00001 -> '1234560123456790' Inexact Rounded 8237db96d56Sopenharmony_ciddfma3239 fma 1 '1234560123456789' 1.1 -> '1234560123456790' Inexact Rounded 8247db96d56Sopenharmony_ci-- critical few with even bottom digit... 8257db96d56Sopenharmony_ciddfma3240 fma 1 '1234560123456788' 0.499999999 -> '1234560123456788' Inexact Rounded 8267db96d56Sopenharmony_ciddfma3241 fma 1 '1234560123456788' 0.5 -> '1234560123456788' Inexact Rounded 8277db96d56Sopenharmony_ciddfma3242 fma 1 '1234560123456788' 0.500000001 -> '1234560123456789' Inexact Rounded 8287db96d56Sopenharmony_ci 8297db96d56Sopenharmony_cirounding: down 8307db96d56Sopenharmony_ciddfma3250 fma 1 '1234560123456789' 0 -> '1234560123456789' 8317db96d56Sopenharmony_ciddfma3251 fma 1 '1234560123456789' 0.000000001 -> '1234560123456789' Inexact Rounded 8327db96d56Sopenharmony_ciddfma3252 fma 1 '1234560123456789' 0.000001 -> '1234560123456789' Inexact Rounded 8337db96d56Sopenharmony_ciddfma3253 fma 1 '1234560123456789' 0.1 -> '1234560123456789' Inexact Rounded 8347db96d56Sopenharmony_ciddfma3254 fma 1 '1234560123456789' 0.4 -> '1234560123456789' Inexact Rounded 8357db96d56Sopenharmony_ciddfma3255 fma 1 '1234560123456789' 0.49 -> '1234560123456789' Inexact Rounded 8367db96d56Sopenharmony_ciddfma3256 fma 1 '1234560123456789' 0.499999 -> '1234560123456789' Inexact Rounded 8377db96d56Sopenharmony_ciddfma3257 fma 1 '1234560123456789' 0.499999999 -> '1234560123456789' Inexact Rounded 8387db96d56Sopenharmony_ciddfma3258 fma 1 '1234560123456789' 0.5 -> '1234560123456789' Inexact Rounded 8397db96d56Sopenharmony_ciddfma3259 fma 1 '1234560123456789' 0.500000001 -> '1234560123456789' Inexact Rounded 8407db96d56Sopenharmony_ciddfma3260 fma 1 '1234560123456789' 0.500001 -> '1234560123456789' Inexact Rounded 8417db96d56Sopenharmony_ciddfma3261 fma 1 '1234560123456789' 0.51 -> '1234560123456789' Inexact Rounded 8427db96d56Sopenharmony_ciddfma3262 fma 1 '1234560123456789' 0.6 -> '1234560123456789' Inexact Rounded 8437db96d56Sopenharmony_ciddfma3263 fma 1 '1234560123456789' 0.9 -> '1234560123456789' Inexact Rounded 8447db96d56Sopenharmony_ciddfma3264 fma 1 '1234560123456789' 0.99999 -> '1234560123456789' Inexact Rounded 8457db96d56Sopenharmony_ciddfma3265 fma 1 '1234560123456789' 0.999999999 -> '1234560123456789' Inexact Rounded 8467db96d56Sopenharmony_ciddfma3266 fma 1 '1234560123456789' 1 -> '1234560123456790' 8477db96d56Sopenharmony_ciddfma3267 fma 1 '1234560123456789' 1.00000001 -> '1234560123456790' Inexact Rounded 8487db96d56Sopenharmony_ciddfma3268 fma 1 '1234560123456789' 1.00001 -> '1234560123456790' Inexact Rounded 8497db96d56Sopenharmony_ciddfma3269 fma 1 '1234560123456789' 1.1 -> '1234560123456790' Inexact Rounded 8507db96d56Sopenharmony_ci 8517db96d56Sopenharmony_ci-- 1 in last place tests 8527db96d56Sopenharmony_cirounding: half_up 8537db96d56Sopenharmony_ciddfma3301 fma 1 -1 1 -> 0 8547db96d56Sopenharmony_ciddfma3302 fma 1 0 1 -> 1 8557db96d56Sopenharmony_ciddfma3303 fma 1 1 1 -> 2 8567db96d56Sopenharmony_ciddfma3304 fma 1 12 1 -> 13 8577db96d56Sopenharmony_ciddfma3305 fma 1 98 1 -> 99 8587db96d56Sopenharmony_ciddfma3306 fma 1 99 1 -> 100 8597db96d56Sopenharmony_ciddfma3307 fma 1 100 1 -> 101 8607db96d56Sopenharmony_ciddfma3308 fma 1 101 1 -> 102 8617db96d56Sopenharmony_ciddfma3309 fma 1 -1 -1 -> -2 8627db96d56Sopenharmony_ciddfma3310 fma 1 0 -1 -> -1 8637db96d56Sopenharmony_ciddfma3311 fma 1 1 -1 -> 0 8647db96d56Sopenharmony_ciddfma3312 fma 1 12 -1 -> 11 8657db96d56Sopenharmony_ciddfma3313 fma 1 98 -1 -> 97 8667db96d56Sopenharmony_ciddfma3314 fma 1 99 -1 -> 98 8677db96d56Sopenharmony_ciddfma3315 fma 1 100 -1 -> 99 8687db96d56Sopenharmony_ciddfma3316 fma 1 101 -1 -> 100 8697db96d56Sopenharmony_ci 8707db96d56Sopenharmony_ciddfma3321 fma 1 -0.01 0.01 -> 0.00 8717db96d56Sopenharmony_ciddfma3322 fma 1 0.00 0.01 -> 0.01 8727db96d56Sopenharmony_ciddfma3323 fma 1 0.01 0.01 -> 0.02 8737db96d56Sopenharmony_ciddfma3324 fma 1 0.12 0.01 -> 0.13 8747db96d56Sopenharmony_ciddfma3325 fma 1 0.98 0.01 -> 0.99 8757db96d56Sopenharmony_ciddfma3326 fma 1 0.99 0.01 -> 1.00 8767db96d56Sopenharmony_ciddfma3327 fma 1 1.00 0.01 -> 1.01 8777db96d56Sopenharmony_ciddfma3328 fma 1 1.01 0.01 -> 1.02 8787db96d56Sopenharmony_ciddfma3329 fma 1 -0.01 -0.01 -> -0.02 8797db96d56Sopenharmony_ciddfma3330 fma 1 0.00 -0.01 -> -0.01 8807db96d56Sopenharmony_ciddfma3331 fma 1 0.01 -0.01 -> 0.00 8817db96d56Sopenharmony_ciddfma3332 fma 1 0.12 -0.01 -> 0.11 8827db96d56Sopenharmony_ciddfma3333 fma 1 0.98 -0.01 -> 0.97 8837db96d56Sopenharmony_ciddfma3334 fma 1 0.99 -0.01 -> 0.98 8847db96d56Sopenharmony_ciddfma3335 fma 1 1.00 -0.01 -> 0.99 8857db96d56Sopenharmony_ciddfma3336 fma 1 1.01 -0.01 -> 1.00 8867db96d56Sopenharmony_ci 8877db96d56Sopenharmony_ci-- some more cases where adding 0 affects the coefficient 8887db96d56Sopenharmony_ciddfma3340 fma 1 1E+3 0 -> 1000 8897db96d56Sopenharmony_ciddfma3341 fma 1 1E+15 0 -> 1000000000000000 8907db96d56Sopenharmony_ciddfma3342 fma 1 1E+16 0 -> 1.000000000000000E+16 Rounded 8917db96d56Sopenharmony_ciddfma3343 fma 1 1E+20 0 -> 1.000000000000000E+20 Rounded 8927db96d56Sopenharmony_ci-- which simply follow from these cases ... 8937db96d56Sopenharmony_ciddfma3344 fma 1 1E+3 1 -> 1001 8947db96d56Sopenharmony_ciddfma3345 fma 1 1E+15 1 -> 1000000000000001 8957db96d56Sopenharmony_ciddfma3346 fma 1 1E+16 1 -> 1.000000000000000E+16 Inexact Rounded 8967db96d56Sopenharmony_ciddfma3347 fma 1 1E+20 1 -> 1.000000000000000E+20 Inexact Rounded 8977db96d56Sopenharmony_ciddfma3348 fma 1 1E+3 7 -> 1007 8987db96d56Sopenharmony_ciddfma3349 fma 1 1E+15 7 -> 1000000000000007 8997db96d56Sopenharmony_ciddfma3350 fma 1 1E+16 7 -> 1.000000000000001E+16 Inexact Rounded 9007db96d56Sopenharmony_ciddfma3351 fma 1 1E+20 7 -> 1.000000000000000E+20 Inexact Rounded 9017db96d56Sopenharmony_ci 9027db96d56Sopenharmony_ci-- tryzeros cases 9037db96d56Sopenharmony_cirounding: half_up 9047db96d56Sopenharmony_ciddfma3360 fma 1 0E+50 10000E+1 -> 1.0000E+5 9057db96d56Sopenharmony_ciddfma3361 fma 1 0E-50 10000E+1 -> 100000.0000000000 Rounded 9067db96d56Sopenharmony_ciddfma3362 fma 1 10000E+1 0E-50 -> 100000.0000000000 Rounded 9077db96d56Sopenharmony_ciddfma3363 fma 1 10000E+1 10000E-50 -> 100000.0000000000 Rounded Inexact 9087db96d56Sopenharmony_ciddfma3364 fma 1 9.999999999999999E+384 -9.999999999999999E+384 -> 0E+369 9097db96d56Sopenharmony_ci 9107db96d56Sopenharmony_ci-- a curiosity from JSR 13 testing 9117db96d56Sopenharmony_cirounding: half_down 9127db96d56Sopenharmony_ciddfma3370 fma 1 999999999999999 815 -> 1000000000000814 9137db96d56Sopenharmony_ciddfma3371 fma 1 9999999999999999 815 -> 1.000000000000081E+16 Rounded Inexact 9147db96d56Sopenharmony_cirounding: half_up 9157db96d56Sopenharmony_ciddfma3372 fma 1 999999999999999 815 -> 1000000000000814 9167db96d56Sopenharmony_ciddfma3373 fma 1 9999999999999999 815 -> 1.000000000000081E+16 Rounded Inexact 9177db96d56Sopenharmony_cirounding: half_even 9187db96d56Sopenharmony_ciddfma3374 fma 1 999999999999999 815 -> 1000000000000814 9197db96d56Sopenharmony_ciddfma3375 fma 1 9999999999999999 815 -> 1.000000000000081E+16 Rounded Inexact 9207db96d56Sopenharmony_ci 9217db96d56Sopenharmony_ci-- ulp replacement tests 9227db96d56Sopenharmony_ciddfma3400 fma 1 1 77e-14 -> 1.00000000000077 9237db96d56Sopenharmony_ciddfma3401 fma 1 1 77e-15 -> 1.000000000000077 9247db96d56Sopenharmony_ciddfma3402 fma 1 1 77e-16 -> 1.000000000000008 Inexact Rounded 9257db96d56Sopenharmony_ciddfma3403 fma 1 1 77e-17 -> 1.000000000000001 Inexact Rounded 9267db96d56Sopenharmony_ciddfma3404 fma 1 1 77e-18 -> 1.000000000000000 Inexact Rounded 9277db96d56Sopenharmony_ciddfma3405 fma 1 1 77e-19 -> 1.000000000000000 Inexact Rounded 9287db96d56Sopenharmony_ciddfma3406 fma 1 1 77e-299 -> 1.000000000000000 Inexact Rounded 9297db96d56Sopenharmony_ci 9307db96d56Sopenharmony_ciddfma3410 fma 1 10 77e-14 -> 10.00000000000077 9317db96d56Sopenharmony_ciddfma3411 fma 1 10 77e-15 -> 10.00000000000008 Inexact Rounded 9327db96d56Sopenharmony_ciddfma3412 fma 1 10 77e-16 -> 10.00000000000001 Inexact Rounded 9337db96d56Sopenharmony_ciddfma3413 fma 1 10 77e-17 -> 10.00000000000000 Inexact Rounded 9347db96d56Sopenharmony_ciddfma3414 fma 1 10 77e-18 -> 10.00000000000000 Inexact Rounded 9357db96d56Sopenharmony_ciddfma3415 fma 1 10 77e-19 -> 10.00000000000000 Inexact Rounded 9367db96d56Sopenharmony_ciddfma3416 fma 1 10 77e-299 -> 10.00000000000000 Inexact Rounded 9377db96d56Sopenharmony_ci 9387db96d56Sopenharmony_ciddfma3420 fma 1 77e-14 1 -> 1.00000000000077 9397db96d56Sopenharmony_ciddfma3421 fma 1 77e-15 1 -> 1.000000000000077 9407db96d56Sopenharmony_ciddfma3422 fma 1 77e-16 1 -> 1.000000000000008 Inexact Rounded 9417db96d56Sopenharmony_ciddfma3423 fma 1 77e-17 1 -> 1.000000000000001 Inexact Rounded 9427db96d56Sopenharmony_ciddfma3424 fma 1 77e-18 1 -> 1.000000000000000 Inexact Rounded 9437db96d56Sopenharmony_ciddfma3425 fma 1 77e-19 1 -> 1.000000000000000 Inexact Rounded 9447db96d56Sopenharmony_ciddfma3426 fma 1 77e-299 1 -> 1.000000000000000 Inexact Rounded 9457db96d56Sopenharmony_ci 9467db96d56Sopenharmony_ciddfma3430 fma 1 77e-14 10 -> 10.00000000000077 9477db96d56Sopenharmony_ciddfma3431 fma 1 77e-15 10 -> 10.00000000000008 Inexact Rounded 9487db96d56Sopenharmony_ciddfma3432 fma 1 77e-16 10 -> 10.00000000000001 Inexact Rounded 9497db96d56Sopenharmony_ciddfma3433 fma 1 77e-17 10 -> 10.00000000000000 Inexact Rounded 9507db96d56Sopenharmony_ciddfma3434 fma 1 77e-18 10 -> 10.00000000000000 Inexact Rounded 9517db96d56Sopenharmony_ciddfma3435 fma 1 77e-19 10 -> 10.00000000000000 Inexact Rounded 9527db96d56Sopenharmony_ciddfma3436 fma 1 77e-299 10 -> 10.00000000000000 Inexact Rounded 9537db96d56Sopenharmony_ci 9547db96d56Sopenharmony_ci-- negative ulps 9557db96d56Sopenharmony_ciddfma36440 fma 1 1 -77e-14 -> 0.99999999999923 9567db96d56Sopenharmony_ciddfma36441 fma 1 1 -77e-15 -> 0.999999999999923 9577db96d56Sopenharmony_ciddfma36442 fma 1 1 -77e-16 -> 0.9999999999999923 9587db96d56Sopenharmony_ciddfma36443 fma 1 1 -77e-17 -> 0.9999999999999992 Inexact Rounded 9597db96d56Sopenharmony_ciddfma36444 fma 1 1 -77e-18 -> 0.9999999999999999 Inexact Rounded 9607db96d56Sopenharmony_ciddfma36445 fma 1 1 -77e-19 -> 1.000000000000000 Inexact Rounded 9617db96d56Sopenharmony_ciddfma36446 fma 1 1 -77e-99 -> 1.000000000000000 Inexact Rounded 9627db96d56Sopenharmony_ci 9637db96d56Sopenharmony_ciddfma36450 fma 1 10 -77e-14 -> 9.99999999999923 9647db96d56Sopenharmony_ciddfma36451 fma 1 10 -77e-15 -> 9.999999999999923 9657db96d56Sopenharmony_ciddfma36452 fma 1 10 -77e-16 -> 9.999999999999992 Inexact Rounded 9667db96d56Sopenharmony_ciddfma36453 fma 1 10 -77e-17 -> 9.999999999999999 Inexact Rounded 9677db96d56Sopenharmony_ciddfma36454 fma 1 10 -77e-18 -> 10.00000000000000 Inexact Rounded 9687db96d56Sopenharmony_ciddfma36455 fma 1 10 -77e-19 -> 10.00000000000000 Inexact Rounded 9697db96d56Sopenharmony_ciddfma36456 fma 1 10 -77e-99 -> 10.00000000000000 Inexact Rounded 9707db96d56Sopenharmony_ci 9717db96d56Sopenharmony_ciddfma36460 fma 1 -77e-14 1 -> 0.99999999999923 9727db96d56Sopenharmony_ciddfma36461 fma 1 -77e-15 1 -> 0.999999999999923 9737db96d56Sopenharmony_ciddfma36462 fma 1 -77e-16 1 -> 0.9999999999999923 9747db96d56Sopenharmony_ciddfma36463 fma 1 -77e-17 1 -> 0.9999999999999992 Inexact Rounded 9757db96d56Sopenharmony_ciddfma36464 fma 1 -77e-18 1 -> 0.9999999999999999 Inexact Rounded 9767db96d56Sopenharmony_ciddfma36465 fma 1 -77e-19 1 -> 1.000000000000000 Inexact Rounded 9777db96d56Sopenharmony_ciddfma36466 fma 1 -77e-99 1 -> 1.000000000000000 Inexact Rounded 9787db96d56Sopenharmony_ci 9797db96d56Sopenharmony_ciddfma36470 fma 1 -77e-14 10 -> 9.99999999999923 9807db96d56Sopenharmony_ciddfma36471 fma 1 -77e-15 10 -> 9.999999999999923 9817db96d56Sopenharmony_ciddfma36472 fma 1 -77e-16 10 -> 9.999999999999992 Inexact Rounded 9827db96d56Sopenharmony_ciddfma36473 fma 1 -77e-17 10 -> 9.999999999999999 Inexact Rounded 9837db96d56Sopenharmony_ciddfma36474 fma 1 -77e-18 10 -> 10.00000000000000 Inexact Rounded 9847db96d56Sopenharmony_ciddfma36475 fma 1 -77e-19 10 -> 10.00000000000000 Inexact Rounded 9857db96d56Sopenharmony_ciddfma36476 fma 1 -77e-99 10 -> 10.00000000000000 Inexact Rounded 9867db96d56Sopenharmony_ci 9877db96d56Sopenharmony_ci-- negative ulps 9887db96d56Sopenharmony_ciddfma36480 fma 1 -1 77e-14 -> -0.99999999999923 9897db96d56Sopenharmony_ciddfma36481 fma 1 -1 77e-15 -> -0.999999999999923 9907db96d56Sopenharmony_ciddfma36482 fma 1 -1 77e-16 -> -0.9999999999999923 9917db96d56Sopenharmony_ciddfma36483 fma 1 -1 77e-17 -> -0.9999999999999992 Inexact Rounded 9927db96d56Sopenharmony_ciddfma36484 fma 1 -1 77e-18 -> -0.9999999999999999 Inexact Rounded 9937db96d56Sopenharmony_ciddfma36485 fma 1 -1 77e-19 -> -1.000000000000000 Inexact Rounded 9947db96d56Sopenharmony_ciddfma36486 fma 1 -1 77e-99 -> -1.000000000000000 Inexact Rounded 9957db96d56Sopenharmony_ci 9967db96d56Sopenharmony_ciddfma36490 fma 1 -10 77e-14 -> -9.99999999999923 9977db96d56Sopenharmony_ciddfma36491 fma 1 -10 77e-15 -> -9.999999999999923 9987db96d56Sopenharmony_ciddfma36492 fma 1 -10 77e-16 -> -9.999999999999992 Inexact Rounded 9997db96d56Sopenharmony_ciddfma36493 fma 1 -10 77e-17 -> -9.999999999999999 Inexact Rounded 10007db96d56Sopenharmony_ciddfma36494 fma 1 -10 77e-18 -> -10.00000000000000 Inexact Rounded 10017db96d56Sopenharmony_ciddfma36495 fma 1 -10 77e-19 -> -10.00000000000000 Inexact Rounded 10027db96d56Sopenharmony_ciddfma36496 fma 1 -10 77e-99 -> -10.00000000000000 Inexact Rounded 10037db96d56Sopenharmony_ci 10047db96d56Sopenharmony_ciddfma36500 fma 1 77e-14 -1 -> -0.99999999999923 10057db96d56Sopenharmony_ciddfma36501 fma 1 77e-15 -1 -> -0.999999999999923 10067db96d56Sopenharmony_ciddfma36502 fma 1 77e-16 -1 -> -0.9999999999999923 10077db96d56Sopenharmony_ciddfma36503 fma 1 77e-17 -1 -> -0.9999999999999992 Inexact Rounded 10087db96d56Sopenharmony_ciddfma36504 fma 1 77e-18 -1 -> -0.9999999999999999 Inexact Rounded 10097db96d56Sopenharmony_ciddfma36505 fma 1 77e-19 -1 -> -1.000000000000000 Inexact Rounded 10107db96d56Sopenharmony_ciddfma36506 fma 1 77e-99 -1 -> -1.000000000000000 Inexact Rounded 10117db96d56Sopenharmony_ci 10127db96d56Sopenharmony_ciddfma36510 fma 1 77e-14 -10 -> -9.99999999999923 10137db96d56Sopenharmony_ciddfma36511 fma 1 77e-15 -10 -> -9.999999999999923 10147db96d56Sopenharmony_ciddfma36512 fma 1 77e-16 -10 -> -9.999999999999992 Inexact Rounded 10157db96d56Sopenharmony_ciddfma36513 fma 1 77e-17 -10 -> -9.999999999999999 Inexact Rounded 10167db96d56Sopenharmony_ciddfma36514 fma 1 77e-18 -10 -> -10.00000000000000 Inexact Rounded 10177db96d56Sopenharmony_ciddfma36515 fma 1 77e-19 -10 -> -10.00000000000000 Inexact Rounded 10187db96d56Sopenharmony_ciddfma36516 fma 1 77e-99 -10 -> -10.00000000000000 Inexact Rounded 10197db96d56Sopenharmony_ci 10207db96d56Sopenharmony_ci-- and a couple more with longer RHS 10217db96d56Sopenharmony_ciddfma36520 fma 1 1 -7777e-16 -> 0.9999999999992223 10227db96d56Sopenharmony_ciddfma36521 fma 1 1 -7777e-17 -> 0.9999999999999222 Inexact Rounded 10237db96d56Sopenharmony_ciddfma36522 fma 1 1 -7777e-18 -> 0.9999999999999922 Inexact Rounded 10247db96d56Sopenharmony_ciddfma36523 fma 1 1 -7777e-19 -> 0.9999999999999992 Inexact Rounded 10257db96d56Sopenharmony_ciddfma36524 fma 1 1 -7777e-20 -> 0.9999999999999999 Inexact Rounded 10267db96d56Sopenharmony_ciddfma36525 fma 1 1 -7777e-21 -> 1.000000000000000 Inexact Rounded 10277db96d56Sopenharmony_ciddfma36526 fma 1 1 -7777e-22 -> 1.000000000000000 Inexact Rounded 10287db96d56Sopenharmony_ci 10297db96d56Sopenharmony_ci 10307db96d56Sopenharmony_ci-- and some more residue effects and different roundings 10317db96d56Sopenharmony_cirounding: half_up 10327db96d56Sopenharmony_ciddfma36540 fma 1 '6543210123456789' 0 -> '6543210123456789' 10337db96d56Sopenharmony_ciddfma36541 fma 1 '6543210123456789' 0.000000001 -> '6543210123456789' Inexact Rounded 10347db96d56Sopenharmony_ciddfma36542 fma 1 '6543210123456789' 0.000001 -> '6543210123456789' Inexact Rounded 10357db96d56Sopenharmony_ciddfma36543 fma 1 '6543210123456789' 0.1 -> '6543210123456789' Inexact Rounded 10367db96d56Sopenharmony_ciddfma36544 fma 1 '6543210123456789' 0.4 -> '6543210123456789' Inexact Rounded 10377db96d56Sopenharmony_ciddfma36545 fma 1 '6543210123456789' 0.49 -> '6543210123456789' Inexact Rounded 10387db96d56Sopenharmony_ciddfma36546 fma 1 '6543210123456789' 0.499999 -> '6543210123456789' Inexact Rounded 10397db96d56Sopenharmony_ciddfma36547 fma 1 '6543210123456789' 0.499999999 -> '6543210123456789' Inexact Rounded 10407db96d56Sopenharmony_ciddfma36548 fma 1 '6543210123456789' 0.5 -> '6543210123456790' Inexact Rounded 10417db96d56Sopenharmony_ciddfma36549 fma 1 '6543210123456789' 0.500000001 -> '6543210123456790' Inexact Rounded 10427db96d56Sopenharmony_ciddfma36550 fma 1 '6543210123456789' 0.500001 -> '6543210123456790' Inexact Rounded 10437db96d56Sopenharmony_ciddfma36551 fma 1 '6543210123456789' 0.51 -> '6543210123456790' Inexact Rounded 10447db96d56Sopenharmony_ciddfma36552 fma 1 '6543210123456789' 0.6 -> '6543210123456790' Inexact Rounded 10457db96d56Sopenharmony_ciddfma36553 fma 1 '6543210123456789' 0.9 -> '6543210123456790' Inexact Rounded 10467db96d56Sopenharmony_ciddfma36554 fma 1 '6543210123456789' 0.99999 -> '6543210123456790' Inexact Rounded 10477db96d56Sopenharmony_ciddfma36555 fma 1 '6543210123456789' 0.999999999 -> '6543210123456790' Inexact Rounded 10487db96d56Sopenharmony_ciddfma36556 fma 1 '6543210123456789' 1 -> '6543210123456790' 10497db96d56Sopenharmony_ciddfma36557 fma 1 '6543210123456789' 1.000000001 -> '6543210123456790' Inexact Rounded 10507db96d56Sopenharmony_ciddfma36558 fma 1 '6543210123456789' 1.00001 -> '6543210123456790' Inexact Rounded 10517db96d56Sopenharmony_ciddfma36559 fma 1 '6543210123456789' 1.1 -> '6543210123456790' Inexact Rounded 10527db96d56Sopenharmony_ci 10537db96d56Sopenharmony_cirounding: half_even 10547db96d56Sopenharmony_ciddfma36560 fma 1 '6543210123456789' 0 -> '6543210123456789' 10557db96d56Sopenharmony_ciddfma36561 fma 1 '6543210123456789' 0.000000001 -> '6543210123456789' Inexact Rounded 10567db96d56Sopenharmony_ciddfma36562 fma 1 '6543210123456789' 0.000001 -> '6543210123456789' Inexact Rounded 10577db96d56Sopenharmony_ciddfma36563 fma 1 '6543210123456789' 0.1 -> '6543210123456789' Inexact Rounded 10587db96d56Sopenharmony_ciddfma36564 fma 1 '6543210123456789' 0.4 -> '6543210123456789' Inexact Rounded 10597db96d56Sopenharmony_ciddfma36565 fma 1 '6543210123456789' 0.49 -> '6543210123456789' Inexact Rounded 10607db96d56Sopenharmony_ciddfma36566 fma 1 '6543210123456789' 0.499999 -> '6543210123456789' Inexact Rounded 10617db96d56Sopenharmony_ciddfma36567 fma 1 '6543210123456789' 0.499999999 -> '6543210123456789' Inexact Rounded 10627db96d56Sopenharmony_ciddfma36568 fma 1 '6543210123456789' 0.5 -> '6543210123456790' Inexact Rounded 10637db96d56Sopenharmony_ciddfma36569 fma 1 '6543210123456789' 0.500000001 -> '6543210123456790' Inexact Rounded 10647db96d56Sopenharmony_ciddfma36570 fma 1 '6543210123456789' 0.500001 -> '6543210123456790' Inexact Rounded 10657db96d56Sopenharmony_ciddfma36571 fma 1 '6543210123456789' 0.51 -> '6543210123456790' Inexact Rounded 10667db96d56Sopenharmony_ciddfma36572 fma 1 '6543210123456789' 0.6 -> '6543210123456790' Inexact Rounded 10677db96d56Sopenharmony_ciddfma36573 fma 1 '6543210123456789' 0.9 -> '6543210123456790' Inexact Rounded 10687db96d56Sopenharmony_ciddfma36574 fma 1 '6543210123456789' 0.99999 -> '6543210123456790' Inexact Rounded 10697db96d56Sopenharmony_ciddfma36575 fma 1 '6543210123456789' 0.999999999 -> '6543210123456790' Inexact Rounded 10707db96d56Sopenharmony_ciddfma36576 fma 1 '6543210123456789' 1 -> '6543210123456790' 10717db96d56Sopenharmony_ciddfma36577 fma 1 '6543210123456789' 1.00000001 -> '6543210123456790' Inexact Rounded 10727db96d56Sopenharmony_ciddfma36578 fma 1 '6543210123456789' 1.00001 -> '6543210123456790' Inexact Rounded 10737db96d56Sopenharmony_ciddfma36579 fma 1 '6543210123456789' 1.1 -> '6543210123456790' Inexact Rounded 10747db96d56Sopenharmony_ci 10757db96d56Sopenharmony_ci-- critical few with even bottom digit... 10767db96d56Sopenharmony_ciddfma37540 fma 1 '6543210123456788' 0.499999999 -> '6543210123456788' Inexact Rounded 10777db96d56Sopenharmony_ciddfma37541 fma 1 '6543210123456788' 0.5 -> '6543210123456788' Inexact Rounded 10787db96d56Sopenharmony_ciddfma37542 fma 1 '6543210123456788' 0.500000001 -> '6543210123456789' Inexact Rounded 10797db96d56Sopenharmony_ci 10807db96d56Sopenharmony_cirounding: down 10817db96d56Sopenharmony_ciddfma37550 fma 1 '6543210123456789' 0 -> '6543210123456789' 10827db96d56Sopenharmony_ciddfma37551 fma 1 '6543210123456789' 0.000000001 -> '6543210123456789' Inexact Rounded 10837db96d56Sopenharmony_ciddfma37552 fma 1 '6543210123456789' 0.000001 -> '6543210123456789' Inexact Rounded 10847db96d56Sopenharmony_ciddfma37553 fma 1 '6543210123456789' 0.1 -> '6543210123456789' Inexact Rounded 10857db96d56Sopenharmony_ciddfma37554 fma 1 '6543210123456789' 0.4 -> '6543210123456789' Inexact Rounded 10867db96d56Sopenharmony_ciddfma37555 fma 1 '6543210123456789' 0.49 -> '6543210123456789' Inexact Rounded 10877db96d56Sopenharmony_ciddfma37556 fma 1 '6543210123456789' 0.499999 -> '6543210123456789' Inexact Rounded 10887db96d56Sopenharmony_ciddfma37557 fma 1 '6543210123456789' 0.499999999 -> '6543210123456789' Inexact Rounded 10897db96d56Sopenharmony_ciddfma37558 fma 1 '6543210123456789' 0.5 -> '6543210123456789' Inexact Rounded 10907db96d56Sopenharmony_ciddfma37559 fma 1 '6543210123456789' 0.500000001 -> '6543210123456789' Inexact Rounded 10917db96d56Sopenharmony_ciddfma37560 fma 1 '6543210123456789' 0.500001 -> '6543210123456789' Inexact Rounded 10927db96d56Sopenharmony_ciddfma37561 fma 1 '6543210123456789' 0.51 -> '6543210123456789' Inexact Rounded 10937db96d56Sopenharmony_ciddfma37562 fma 1 '6543210123456789' 0.6 -> '6543210123456789' Inexact Rounded 10947db96d56Sopenharmony_ciddfma37563 fma 1 '6543210123456789' 0.9 -> '6543210123456789' Inexact Rounded 10957db96d56Sopenharmony_ciddfma37564 fma 1 '6543210123456789' 0.99999 -> '6543210123456789' Inexact Rounded 10967db96d56Sopenharmony_ciddfma37565 fma 1 '6543210123456789' 0.999999999 -> '6543210123456789' Inexact Rounded 10977db96d56Sopenharmony_ciddfma37566 fma 1 '6543210123456789' 1 -> '6543210123456790' 10987db96d56Sopenharmony_ciddfma37567 fma 1 '6543210123456789' 1.00000001 -> '6543210123456790' Inexact Rounded 10997db96d56Sopenharmony_ciddfma37568 fma 1 '6543210123456789' 1.00001 -> '6543210123456790' Inexact Rounded 11007db96d56Sopenharmony_ciddfma37569 fma 1 '6543210123456789' 1.1 -> '6543210123456790' Inexact Rounded 11017db96d56Sopenharmony_ci 11027db96d56Sopenharmony_ci 11037db96d56Sopenharmony_ci-- verify a query 11047db96d56Sopenharmony_cirounding: down 11057db96d56Sopenharmony_ciddfma37661 fma 1 1e-398 9.000000000000000E+384 -> 9.000000000000000E+384 Inexact Rounded 11067db96d56Sopenharmony_ciddfma37662 fma 1 0 9.000000000000000E+384 -> 9.000000000000000E+384 Rounded 11077db96d56Sopenharmony_ciddfma37663 fma 1 1e-388 9.000000000000000E+374 -> 9.000000000000000E+374 Inexact Rounded 11087db96d56Sopenharmony_ciddfma37664 fma 1 0 9.000000000000000E+374 -> 9.000000000000000E+374 Rounded 11097db96d56Sopenharmony_ci 11107db96d56Sopenharmony_ci-- more zeros, etc. 11117db96d56Sopenharmony_cirounding: half_even 11127db96d56Sopenharmony_ci 11137db96d56Sopenharmony_ciddfma37701 fma 1 5.00 1.00E-3 -> 5.00100 11147db96d56Sopenharmony_ciddfma37702 fma 1 00.00 0.000 -> 0.000 11157db96d56Sopenharmony_ciddfma37703 fma 1 00.00 0E-3 -> 0.000 11167db96d56Sopenharmony_ciddfma37704 fma 1 0E-3 00.00 -> 0.000 11177db96d56Sopenharmony_ci 11187db96d56Sopenharmony_ciddfma37710 fma 1 0E+3 00.00 -> 0.00 11197db96d56Sopenharmony_ciddfma37711 fma 1 0E+3 00.0 -> 0.0 11207db96d56Sopenharmony_ciddfma37712 fma 1 0E+3 00. -> 0 11217db96d56Sopenharmony_ciddfma37713 fma 1 0E+3 00.E+1 -> 0E+1 11227db96d56Sopenharmony_ciddfma37714 fma 1 0E+3 00.E+2 -> 0E+2 11237db96d56Sopenharmony_ciddfma37715 fma 1 0E+3 00.E+3 -> 0E+3 11247db96d56Sopenharmony_ciddfma37716 fma 1 0E+3 00.E+4 -> 0E+3 11257db96d56Sopenharmony_ciddfma37717 fma 1 0E+3 00.E+5 -> 0E+3 11267db96d56Sopenharmony_ciddfma37718 fma 1 0E+3 -00.0 -> 0.0 11277db96d56Sopenharmony_ciddfma37719 fma 1 0E+3 -00. -> 0 11287db96d56Sopenharmony_ciddfma37731 fma 1 0E+3 -00.E+1 -> 0E+1 11297db96d56Sopenharmony_ci 11307db96d56Sopenharmony_ciddfma37720 fma 1 00.00 0E+3 -> 0.00 11317db96d56Sopenharmony_ciddfma37721 fma 1 00.0 0E+3 -> 0.0 11327db96d56Sopenharmony_ciddfma37722 fma 1 00. 0E+3 -> 0 11337db96d56Sopenharmony_ciddfma37723 fma 1 00.E+1 0E+3 -> 0E+1 11347db96d56Sopenharmony_ciddfma37724 fma 1 00.E+2 0E+3 -> 0E+2 11357db96d56Sopenharmony_ciddfma37725 fma 1 00.E+3 0E+3 -> 0E+3 11367db96d56Sopenharmony_ciddfma37726 fma 1 00.E+4 0E+3 -> 0E+3 11377db96d56Sopenharmony_ciddfma37727 fma 1 00.E+5 0E+3 -> 0E+3 11387db96d56Sopenharmony_ciddfma37728 fma 1 -00.00 0E+3 -> 0.00 11397db96d56Sopenharmony_ciddfma37729 fma 1 -00.0 0E+3 -> 0.0 11407db96d56Sopenharmony_ciddfma37730 fma 1 -00. 0E+3 -> 0 11417db96d56Sopenharmony_ci 11427db96d56Sopenharmony_ciddfma37732 fma 1 0 0 -> 0 11437db96d56Sopenharmony_ciddfma37733 fma 1 0 -0 -> 0 11447db96d56Sopenharmony_ciddfma37734 fma 1 -0 0 -> 0 11457db96d56Sopenharmony_ciddfma37735 fma 1 -0 -0 -> -0 -- IEEE 854 special case 11467db96d56Sopenharmony_ci 11477db96d56Sopenharmony_ciddfma37736 fma 1 1 -1 -> 0 11487db96d56Sopenharmony_ciddfma37737 fma 1 -1 -1 -> -2 11497db96d56Sopenharmony_ciddfma37738 fma 1 1 1 -> 2 11507db96d56Sopenharmony_ciddfma37739 fma 1 -1 1 -> 0 11517db96d56Sopenharmony_ci 11527db96d56Sopenharmony_ciddfma37741 fma 1 0 -1 -> -1 11537db96d56Sopenharmony_ciddfma37742 fma 1 -0 -1 -> -1 11547db96d56Sopenharmony_ciddfma37743 fma 1 0 1 -> 1 11557db96d56Sopenharmony_ciddfma37744 fma 1 -0 1 -> 1 11567db96d56Sopenharmony_ciddfma37745 fma 1 -1 0 -> -1 11577db96d56Sopenharmony_ciddfma37746 fma 1 -1 -0 -> -1 11587db96d56Sopenharmony_ciddfma37747 fma 1 1 0 -> 1 11597db96d56Sopenharmony_ciddfma37748 fma 1 1 -0 -> 1 11607db96d56Sopenharmony_ci 11617db96d56Sopenharmony_ciddfma37751 fma 1 0.0 -1 -> -1.0 11627db96d56Sopenharmony_ciddfma37752 fma 1 -0.0 -1 -> -1.0 11637db96d56Sopenharmony_ciddfma37753 fma 1 0.0 1 -> 1.0 11647db96d56Sopenharmony_ciddfma37754 fma 1 -0.0 1 -> 1.0 11657db96d56Sopenharmony_ciddfma37755 fma 1 -1.0 0 -> -1.0 11667db96d56Sopenharmony_ciddfma37756 fma 1 -1.0 -0 -> -1.0 11677db96d56Sopenharmony_ciddfma37757 fma 1 1.0 0 -> 1.0 11687db96d56Sopenharmony_ciddfma37758 fma 1 1.0 -0 -> 1.0 11697db96d56Sopenharmony_ci 11707db96d56Sopenharmony_ciddfma37761 fma 1 0 -1.0 -> -1.0 11717db96d56Sopenharmony_ciddfma37762 fma 1 -0 -1.0 -> -1.0 11727db96d56Sopenharmony_ciddfma37763 fma 1 0 1.0 -> 1.0 11737db96d56Sopenharmony_ciddfma37764 fma 1 -0 1.0 -> 1.0 11747db96d56Sopenharmony_ciddfma37765 fma 1 -1 0.0 -> -1.0 11757db96d56Sopenharmony_ciddfma37766 fma 1 -1 -0.0 -> -1.0 11767db96d56Sopenharmony_ciddfma37767 fma 1 1 0.0 -> 1.0 11777db96d56Sopenharmony_ciddfma37768 fma 1 1 -0.0 -> 1.0 11787db96d56Sopenharmony_ci 11797db96d56Sopenharmony_ciddfma37771 fma 1 0.0 -1.0 -> -1.0 11807db96d56Sopenharmony_ciddfma37772 fma 1 -0.0 -1.0 -> -1.0 11817db96d56Sopenharmony_ciddfma37773 fma 1 0.0 1.0 -> 1.0 11827db96d56Sopenharmony_ciddfma37774 fma 1 -0.0 1.0 -> 1.0 11837db96d56Sopenharmony_ciddfma37775 fma 1 -1.0 0.0 -> -1.0 11847db96d56Sopenharmony_ciddfma37776 fma 1 -1.0 -0.0 -> -1.0 11857db96d56Sopenharmony_ciddfma37777 fma 1 1.0 0.0 -> 1.0 11867db96d56Sopenharmony_ciddfma37778 fma 1 1.0 -0.0 -> 1.0 11877db96d56Sopenharmony_ci 11887db96d56Sopenharmony_ci-- Specials 11897db96d56Sopenharmony_ciddfma37780 fma 1 -Inf -Inf -> -Infinity 11907db96d56Sopenharmony_ciddfma37781 fma 1 -Inf -1000 -> -Infinity 11917db96d56Sopenharmony_ciddfma37782 fma 1 -Inf -1 -> -Infinity 11927db96d56Sopenharmony_ciddfma37783 fma 1 -Inf -0 -> -Infinity 11937db96d56Sopenharmony_ciddfma37784 fma 1 -Inf 0 -> -Infinity 11947db96d56Sopenharmony_ciddfma37785 fma 1 -Inf 1 -> -Infinity 11957db96d56Sopenharmony_ciddfma37786 fma 1 -Inf 1000 -> -Infinity 11967db96d56Sopenharmony_ciddfma37787 fma 1 -1000 -Inf -> -Infinity 11977db96d56Sopenharmony_ciddfma37788 fma 1 -Inf -Inf -> -Infinity 11987db96d56Sopenharmony_ciddfma37789 fma 1 -1 -Inf -> -Infinity 11997db96d56Sopenharmony_ciddfma37790 fma 1 -0 -Inf -> -Infinity 12007db96d56Sopenharmony_ciddfma37791 fma 1 0 -Inf -> -Infinity 12017db96d56Sopenharmony_ciddfma37792 fma 1 1 -Inf -> -Infinity 12027db96d56Sopenharmony_ciddfma37793 fma 1 1000 -Inf -> -Infinity 12037db96d56Sopenharmony_ciddfma37794 fma 1 Inf -Inf -> NaN Invalid_operation 12047db96d56Sopenharmony_ci 12057db96d56Sopenharmony_ciddfma37800 fma 1 Inf -Inf -> NaN Invalid_operation 12067db96d56Sopenharmony_ciddfma37801 fma 1 Inf -1000 -> Infinity 12077db96d56Sopenharmony_ciddfma37802 fma 1 Inf -1 -> Infinity 12087db96d56Sopenharmony_ciddfma37803 fma 1 Inf -0 -> Infinity 12097db96d56Sopenharmony_ciddfma37804 fma 1 Inf 0 -> Infinity 12107db96d56Sopenharmony_ciddfma37805 fma 1 Inf 1 -> Infinity 12117db96d56Sopenharmony_ciddfma37806 fma 1 Inf 1000 -> Infinity 12127db96d56Sopenharmony_ciddfma37807 fma 1 Inf Inf -> Infinity 12137db96d56Sopenharmony_ciddfma37808 fma 1 -1000 Inf -> Infinity 12147db96d56Sopenharmony_ciddfma37809 fma 1 -Inf Inf -> NaN Invalid_operation 12157db96d56Sopenharmony_ciddfma37810 fma 1 -1 Inf -> Infinity 12167db96d56Sopenharmony_ciddfma37811 fma 1 -0 Inf -> Infinity 12177db96d56Sopenharmony_ciddfma37812 fma 1 0 Inf -> Infinity 12187db96d56Sopenharmony_ciddfma37813 fma 1 1 Inf -> Infinity 12197db96d56Sopenharmony_ciddfma37814 fma 1 1000 Inf -> Infinity 12207db96d56Sopenharmony_ciddfma37815 fma 1 Inf Inf -> Infinity 12217db96d56Sopenharmony_ci 12227db96d56Sopenharmony_ciddfma37821 fma 1 NaN -Inf -> NaN 12237db96d56Sopenharmony_ciddfma37822 fma 1 NaN -1000 -> NaN 12247db96d56Sopenharmony_ciddfma37823 fma 1 NaN -1 -> NaN 12257db96d56Sopenharmony_ciddfma37824 fma 1 NaN -0 -> NaN 12267db96d56Sopenharmony_ciddfma37825 fma 1 NaN 0 -> NaN 12277db96d56Sopenharmony_ciddfma37826 fma 1 NaN 1 -> NaN 12287db96d56Sopenharmony_ciddfma37827 fma 1 NaN 1000 -> NaN 12297db96d56Sopenharmony_ciddfma37828 fma 1 NaN Inf -> NaN 12307db96d56Sopenharmony_ciddfma37829 fma 1 NaN NaN -> NaN 12317db96d56Sopenharmony_ciddfma37830 fma 1 -Inf NaN -> NaN 12327db96d56Sopenharmony_ciddfma37831 fma 1 -1000 NaN -> NaN 12337db96d56Sopenharmony_ciddfma37832 fma 1 -1 NaN -> NaN 12347db96d56Sopenharmony_ciddfma37833 fma 1 -0 NaN -> NaN 12357db96d56Sopenharmony_ciddfma37834 fma 1 0 NaN -> NaN 12367db96d56Sopenharmony_ciddfma37835 fma 1 1 NaN -> NaN 12377db96d56Sopenharmony_ciddfma37836 fma 1 1000 NaN -> NaN 12387db96d56Sopenharmony_ciddfma37837 fma 1 Inf NaN -> NaN 12397db96d56Sopenharmony_ci 12407db96d56Sopenharmony_ciddfma37841 fma 1 sNaN -Inf -> NaN Invalid_operation 12417db96d56Sopenharmony_ciddfma37842 fma 1 sNaN -1000 -> NaN Invalid_operation 12427db96d56Sopenharmony_ciddfma37843 fma 1 sNaN -1 -> NaN Invalid_operation 12437db96d56Sopenharmony_ciddfma37844 fma 1 sNaN -0 -> NaN Invalid_operation 12447db96d56Sopenharmony_ciddfma37845 fma 1 sNaN 0 -> NaN Invalid_operation 12457db96d56Sopenharmony_ciddfma37846 fma 1 sNaN 1 -> NaN Invalid_operation 12467db96d56Sopenharmony_ciddfma37847 fma 1 sNaN 1000 -> NaN Invalid_operation 12477db96d56Sopenharmony_ciddfma37848 fma 1 sNaN NaN -> NaN Invalid_operation 12487db96d56Sopenharmony_ciddfma37849 fma 1 sNaN sNaN -> NaN Invalid_operation 12497db96d56Sopenharmony_ciddfma37850 fma 1 NaN sNaN -> NaN Invalid_operation 12507db96d56Sopenharmony_ciddfma37851 fma 1 -Inf sNaN -> NaN Invalid_operation 12517db96d56Sopenharmony_ciddfma37852 fma 1 -1000 sNaN -> NaN Invalid_operation 12527db96d56Sopenharmony_ciddfma37853 fma 1 -1 sNaN -> NaN Invalid_operation 12537db96d56Sopenharmony_ciddfma37854 fma 1 -0 sNaN -> NaN Invalid_operation 12547db96d56Sopenharmony_ciddfma37855 fma 1 0 sNaN -> NaN Invalid_operation 12557db96d56Sopenharmony_ciddfma37856 fma 1 1 sNaN -> NaN Invalid_operation 12567db96d56Sopenharmony_ciddfma37857 fma 1 1000 sNaN -> NaN Invalid_operation 12577db96d56Sopenharmony_ciddfma37858 fma 1 Inf sNaN -> NaN Invalid_operation 12587db96d56Sopenharmony_ciddfma37859 fma 1 NaN sNaN -> NaN Invalid_operation 12597db96d56Sopenharmony_ci 12607db96d56Sopenharmony_ci-- propagating NaNs 12617db96d56Sopenharmony_ciddfma37861 fma 1 NaN1 -Inf -> NaN1 12627db96d56Sopenharmony_ciddfma37862 fma 1 +NaN2 -1000 -> NaN2 12637db96d56Sopenharmony_ciddfma37863 fma 1 NaN3 1000 -> NaN3 12647db96d56Sopenharmony_ciddfma37864 fma 1 NaN4 Inf -> NaN4 12657db96d56Sopenharmony_ciddfma37865 fma 1 NaN5 +NaN6 -> NaN5 12667db96d56Sopenharmony_ciddfma37866 fma 1 -Inf NaN7 -> NaN7 12677db96d56Sopenharmony_ciddfma37867 fma 1 -1000 NaN8 -> NaN8 12687db96d56Sopenharmony_ciddfma37868 fma 1 1000 NaN9 -> NaN9 12697db96d56Sopenharmony_ciddfma37869 fma 1 Inf +NaN10 -> NaN10 12707db96d56Sopenharmony_ciddfma37871 fma 1 sNaN11 -Inf -> NaN11 Invalid_operation 12717db96d56Sopenharmony_ciddfma37872 fma 1 sNaN12 -1000 -> NaN12 Invalid_operation 12727db96d56Sopenharmony_ciddfma37873 fma 1 sNaN13 1000 -> NaN13 Invalid_operation 12737db96d56Sopenharmony_ciddfma37874 fma 1 sNaN14 NaN17 -> NaN14 Invalid_operation 12747db96d56Sopenharmony_ciddfma37875 fma 1 sNaN15 sNaN18 -> NaN15 Invalid_operation 12757db96d56Sopenharmony_ciddfma37876 fma 1 NaN16 sNaN19 -> NaN19 Invalid_operation 12767db96d56Sopenharmony_ciddfma37877 fma 1 -Inf +sNaN20 -> NaN20 Invalid_operation 12777db96d56Sopenharmony_ciddfma37878 fma 1 -1000 sNaN21 -> NaN21 Invalid_operation 12787db96d56Sopenharmony_ciddfma37879 fma 1 1000 sNaN22 -> NaN22 Invalid_operation 12797db96d56Sopenharmony_ciddfma37880 fma 1 Inf sNaN23 -> NaN23 Invalid_operation 12807db96d56Sopenharmony_ciddfma37881 fma 1 +NaN25 +sNaN24 -> NaN24 Invalid_operation 12817db96d56Sopenharmony_ciddfma37882 fma 1 -NaN26 NaN28 -> -NaN26 12827db96d56Sopenharmony_ciddfma37883 fma 1 -sNaN27 sNaN29 -> -NaN27 Invalid_operation 12837db96d56Sopenharmony_ciddfma37884 fma 1 1000 -NaN30 -> -NaN30 12847db96d56Sopenharmony_ciddfma37885 fma 1 1000 -sNaN31 -> -NaN31 Invalid_operation 12857db96d56Sopenharmony_ci 12867db96d56Sopenharmony_ci-- Here we explore near the boundary of rounding a subnormal to Nmin 12877db96d56Sopenharmony_ciddfma37575 fma 1 1E-383 -1E-398 -> 9.99999999999999E-384 Subnormal 12887db96d56Sopenharmony_ciddfma37576 fma 1 -1E-383 +1E-398 -> -9.99999999999999E-384 Subnormal 12897db96d56Sopenharmony_ci 12907db96d56Sopenharmony_ci-- check overflow edge case 12917db96d56Sopenharmony_ci-- 1234567890123456 12927db96d56Sopenharmony_ciddfma37972 apply 9.999999999999999E+384 -> 9.999999999999999E+384 12937db96d56Sopenharmony_ciddfma37973 fma 1 9.999999999999999E+384 1 -> 9.999999999999999E+384 Inexact Rounded 12947db96d56Sopenharmony_ciddfma37974 fma 1 9999999999999999E+369 1 -> 9.999999999999999E+384 Inexact Rounded 12957db96d56Sopenharmony_ciddfma37975 fma 1 9999999999999999E+369 1E+369 -> Infinity Overflow Inexact Rounded 12967db96d56Sopenharmony_ciddfma37976 fma 1 9999999999999999E+369 9E+368 -> Infinity Overflow Inexact Rounded 12977db96d56Sopenharmony_ciddfma37977 fma 1 9999999999999999E+369 8E+368 -> Infinity Overflow Inexact Rounded 12987db96d56Sopenharmony_ciddfma37978 fma 1 9999999999999999E+369 7E+368 -> Infinity Overflow Inexact Rounded 12997db96d56Sopenharmony_ciddfma37979 fma 1 9999999999999999E+369 6E+368 -> Infinity Overflow Inexact Rounded 13007db96d56Sopenharmony_ciddfma37980 fma 1 9999999999999999E+369 5E+368 -> Infinity Overflow Inexact Rounded 13017db96d56Sopenharmony_ciddfma37981 fma 1 9999999999999999E+369 4E+368 -> 9.999999999999999E+384 Inexact Rounded 13027db96d56Sopenharmony_ciddfma37982 fma 1 9999999999999999E+369 3E+368 -> 9.999999999999999E+384 Inexact Rounded 13037db96d56Sopenharmony_ciddfma37983 fma 1 9999999999999999E+369 2E+368 -> 9.999999999999999E+384 Inexact Rounded 13047db96d56Sopenharmony_ciddfma37984 fma 1 9999999999999999E+369 1E+368 -> 9.999999999999999E+384 Inexact Rounded 13057db96d56Sopenharmony_ci 13067db96d56Sopenharmony_ciddfma37985 apply -9.999999999999999E+384 -> -9.999999999999999E+384 13077db96d56Sopenharmony_ciddfma37986 fma 1 -9.999999999999999E+384 -1 -> -9.999999999999999E+384 Inexact Rounded 13087db96d56Sopenharmony_ciddfma37987 fma 1 -9999999999999999E+369 -1 -> -9.999999999999999E+384 Inexact Rounded 13097db96d56Sopenharmony_ciddfma37988 fma 1 -9999999999999999E+369 -1E+369 -> -Infinity Overflow Inexact Rounded 13107db96d56Sopenharmony_ciddfma37989 fma 1 -9999999999999999E+369 -9E+368 -> -Infinity Overflow Inexact Rounded 13117db96d56Sopenharmony_ciddfma37990 fma 1 -9999999999999999E+369 -8E+368 -> -Infinity Overflow Inexact Rounded 13127db96d56Sopenharmony_ciddfma37991 fma 1 -9999999999999999E+369 -7E+368 -> -Infinity Overflow Inexact Rounded 13137db96d56Sopenharmony_ciddfma37992 fma 1 -9999999999999999E+369 -6E+368 -> -Infinity Overflow Inexact Rounded 13147db96d56Sopenharmony_ciddfma37993 fma 1 -9999999999999999E+369 -5E+368 -> -Infinity Overflow Inexact Rounded 13157db96d56Sopenharmony_ciddfma37994 fma 1 -9999999999999999E+369 -4E+368 -> -9.999999999999999E+384 Inexact Rounded 13167db96d56Sopenharmony_ciddfma37995 fma 1 -9999999999999999E+369 -3E+368 -> -9.999999999999999E+384 Inexact Rounded 13177db96d56Sopenharmony_ciddfma37996 fma 1 -9999999999999999E+369 -2E+368 -> -9.999999999999999E+384 Inexact Rounded 13187db96d56Sopenharmony_ciddfma37997 fma 1 -9999999999999999E+369 -1E+368 -> -9.999999999999999E+384 Inexact Rounded 13197db96d56Sopenharmony_ci 13207db96d56Sopenharmony_ci-- And for round down full and subnormal results 13217db96d56Sopenharmony_cirounding: down 13227db96d56Sopenharmony_ciddfma371100 fma 1 1e+2 -1e-383 -> 99.99999999999999 Rounded Inexact 13237db96d56Sopenharmony_ciddfma371101 fma 1 1e+1 -1e-383 -> 9.999999999999999 Rounded Inexact 13247db96d56Sopenharmony_ciddfma371103 fma 1 +1 -1e-383 -> 0.9999999999999999 Rounded Inexact 13257db96d56Sopenharmony_ciddfma371104 fma 1 1e-1 -1e-383 -> 0.09999999999999999 Rounded Inexact 13267db96d56Sopenharmony_ciddfma371105 fma 1 1e-2 -1e-383 -> 0.009999999999999999 Rounded Inexact 13277db96d56Sopenharmony_ciddfma371106 fma 1 1e-3 -1e-383 -> 0.0009999999999999999 Rounded Inexact 13287db96d56Sopenharmony_ciddfma371107 fma 1 1e-4 -1e-383 -> 0.00009999999999999999 Rounded Inexact 13297db96d56Sopenharmony_ciddfma371108 fma 1 1e-5 -1e-383 -> 0.000009999999999999999 Rounded Inexact 13307db96d56Sopenharmony_ciddfma371109 fma 1 1e-6 -1e-383 -> 9.999999999999999E-7 Rounded Inexact 13317db96d56Sopenharmony_ci 13327db96d56Sopenharmony_cirounding: ceiling 13337db96d56Sopenharmony_ciddfma371110 fma 1 -1e+2 +1e-383 -> -99.99999999999999 Rounded Inexact 13347db96d56Sopenharmony_ciddfma371111 fma 1 -1e+1 +1e-383 -> -9.999999999999999 Rounded Inexact 13357db96d56Sopenharmony_ciddfma371113 fma 1 -1 +1e-383 -> -0.9999999999999999 Rounded Inexact 13367db96d56Sopenharmony_ciddfma371114 fma 1 -1e-1 +1e-383 -> -0.09999999999999999 Rounded Inexact 13377db96d56Sopenharmony_ciddfma371115 fma 1 -1e-2 +1e-383 -> -0.009999999999999999 Rounded Inexact 13387db96d56Sopenharmony_ciddfma371116 fma 1 -1e-3 +1e-383 -> -0.0009999999999999999 Rounded Inexact 13397db96d56Sopenharmony_ciddfma371117 fma 1 -1e-4 +1e-383 -> -0.00009999999999999999 Rounded Inexact 13407db96d56Sopenharmony_ciddfma371118 fma 1 -1e-5 +1e-383 -> -0.000009999999999999999 Rounded Inexact 13417db96d56Sopenharmony_ciddfma371119 fma 1 -1e-6 +1e-383 -> -9.999999999999999E-7 Rounded Inexact 13427db96d56Sopenharmony_ci 13437db96d56Sopenharmony_ci-- tests based on Gunnar Degnbol's edge case 13447db96d56Sopenharmony_cirounding: half_even 13457db96d56Sopenharmony_ci 13467db96d56Sopenharmony_ciddfma371300 fma 1 1E16 -0.5 -> 1.000000000000000E+16 Inexact Rounded 13477db96d56Sopenharmony_ciddfma371310 fma 1 1E16 -0.51 -> 9999999999999999 Inexact Rounded 13487db96d56Sopenharmony_ciddfma371311 fma 1 1E16 -0.501 -> 9999999999999999 Inexact Rounded 13497db96d56Sopenharmony_ciddfma371312 fma 1 1E16 -0.5001 -> 9999999999999999 Inexact Rounded 13507db96d56Sopenharmony_ciddfma371313 fma 1 1E16 -0.50001 -> 9999999999999999 Inexact Rounded 13517db96d56Sopenharmony_ciddfma371314 fma 1 1E16 -0.500001 -> 9999999999999999 Inexact Rounded 13527db96d56Sopenharmony_ciddfma371315 fma 1 1E16 -0.5000001 -> 9999999999999999 Inexact Rounded 13537db96d56Sopenharmony_ciddfma371316 fma 1 1E16 -0.50000001 -> 9999999999999999 Inexact Rounded 13547db96d56Sopenharmony_ciddfma371317 fma 1 1E16 -0.500000001 -> 9999999999999999 Inexact Rounded 13557db96d56Sopenharmony_ciddfma371318 fma 1 1E16 -0.5000000001 -> 9999999999999999 Inexact Rounded 13567db96d56Sopenharmony_ciddfma371319 fma 1 1E16 -0.50000000001 -> 9999999999999999 Inexact Rounded 13577db96d56Sopenharmony_ciddfma371320 fma 1 1E16 -0.500000000001 -> 9999999999999999 Inexact Rounded 13587db96d56Sopenharmony_ciddfma371321 fma 1 1E16 -0.5000000000001 -> 9999999999999999 Inexact Rounded 13597db96d56Sopenharmony_ciddfma371322 fma 1 1E16 -0.50000000000001 -> 9999999999999999 Inexact Rounded 13607db96d56Sopenharmony_ciddfma371323 fma 1 1E16 -0.500000000000001 -> 9999999999999999 Inexact Rounded 13617db96d56Sopenharmony_ciddfma371324 fma 1 1E16 -0.5000000000000001 -> 9999999999999999 Inexact Rounded 13627db96d56Sopenharmony_ciddfma371325 fma 1 1E16 -0.5000000000000000 -> 1.000000000000000E+16 Inexact Rounded 13637db96d56Sopenharmony_ciddfma371326 fma 1 1E16 -0.500000000000000 -> 1.000000000000000E+16 Inexact Rounded 13647db96d56Sopenharmony_ciddfma371327 fma 1 1E16 -0.50000000000000 -> 1.000000000000000E+16 Inexact Rounded 13657db96d56Sopenharmony_ciddfma371328 fma 1 1E16 -0.5000000000000 -> 1.000000000000000E+16 Inexact Rounded 13667db96d56Sopenharmony_ciddfma371329 fma 1 1E16 -0.500000000000 -> 1.000000000000000E+16 Inexact Rounded 13677db96d56Sopenharmony_ciddfma371330 fma 1 1E16 -0.50000000000 -> 1.000000000000000E+16 Inexact Rounded 13687db96d56Sopenharmony_ciddfma371331 fma 1 1E16 -0.5000000000 -> 1.000000000000000E+16 Inexact Rounded 13697db96d56Sopenharmony_ciddfma371332 fma 1 1E16 -0.500000000 -> 1.000000000000000E+16 Inexact Rounded 13707db96d56Sopenharmony_ciddfma371333 fma 1 1E16 -0.50000000 -> 1.000000000000000E+16 Inexact Rounded 13717db96d56Sopenharmony_ciddfma371334 fma 1 1E16 -0.5000000 -> 1.000000000000000E+16 Inexact Rounded 13727db96d56Sopenharmony_ciddfma371335 fma 1 1E16 -0.500000 -> 1.000000000000000E+16 Inexact Rounded 13737db96d56Sopenharmony_ciddfma371336 fma 1 1E16 -0.50000 -> 1.000000000000000E+16 Inexact Rounded 13747db96d56Sopenharmony_ciddfma371337 fma 1 1E16 -0.5000 -> 1.000000000000000E+16 Inexact Rounded 13757db96d56Sopenharmony_ciddfma371338 fma 1 1E16 -0.500 -> 1.000000000000000E+16 Inexact Rounded 13767db96d56Sopenharmony_ciddfma371339 fma 1 1E16 -0.50 -> 1.000000000000000E+16 Inexact Rounded 13777db96d56Sopenharmony_ci 13787db96d56Sopenharmony_ciddfma371340 fma 1 1E16 -5000000.000010001 -> 9999999995000000 Inexact Rounded 13797db96d56Sopenharmony_ciddfma371341 fma 1 1E16 -5000000.000000001 -> 9999999995000000 Inexact Rounded 13807db96d56Sopenharmony_ci 13817db96d56Sopenharmony_ciddfma371349 fma 1 9999999999999999 0.4 -> 9999999999999999 Inexact Rounded 13827db96d56Sopenharmony_ciddfma371350 fma 1 9999999999999999 0.49 -> 9999999999999999 Inexact Rounded 13837db96d56Sopenharmony_ciddfma371351 fma 1 9999999999999999 0.499 -> 9999999999999999 Inexact Rounded 13847db96d56Sopenharmony_ciddfma371352 fma 1 9999999999999999 0.4999 -> 9999999999999999 Inexact Rounded 13857db96d56Sopenharmony_ciddfma371353 fma 1 9999999999999999 0.49999 -> 9999999999999999 Inexact Rounded 13867db96d56Sopenharmony_ciddfma371354 fma 1 9999999999999999 0.499999 -> 9999999999999999 Inexact Rounded 13877db96d56Sopenharmony_ciddfma371355 fma 1 9999999999999999 0.4999999 -> 9999999999999999 Inexact Rounded 13887db96d56Sopenharmony_ciddfma371356 fma 1 9999999999999999 0.49999999 -> 9999999999999999 Inexact Rounded 13897db96d56Sopenharmony_ciddfma371357 fma 1 9999999999999999 0.499999999 -> 9999999999999999 Inexact Rounded 13907db96d56Sopenharmony_ciddfma371358 fma 1 9999999999999999 0.4999999999 -> 9999999999999999 Inexact Rounded 13917db96d56Sopenharmony_ciddfma371359 fma 1 9999999999999999 0.49999999999 -> 9999999999999999 Inexact Rounded 13927db96d56Sopenharmony_ciddfma371360 fma 1 9999999999999999 0.499999999999 -> 9999999999999999 Inexact Rounded 13937db96d56Sopenharmony_ciddfma371361 fma 1 9999999999999999 0.4999999999999 -> 9999999999999999 Inexact Rounded 13947db96d56Sopenharmony_ciddfma371362 fma 1 9999999999999999 0.49999999999999 -> 9999999999999999 Inexact Rounded 13957db96d56Sopenharmony_ciddfma371363 fma 1 9999999999999999 0.499999999999999 -> 9999999999999999 Inexact Rounded 13967db96d56Sopenharmony_ciddfma371364 fma 1 9999999999999999 0.4999999999999999 -> 9999999999999999 Inexact Rounded 13977db96d56Sopenharmony_ciddfma371365 fma 1 9999999999999999 0.5000000000000000 -> 1.000000000000000E+16 Inexact Rounded 13987db96d56Sopenharmony_ciddfma371367 fma 1 9999999999999999 0.500000000000000 -> 1.000000000000000E+16 Inexact Rounded 13997db96d56Sopenharmony_ciddfma371368 fma 1 9999999999999999 0.50000000000000 -> 1.000000000000000E+16 Inexact Rounded 14007db96d56Sopenharmony_ciddfma371369 fma 1 9999999999999999 0.5000000000000 -> 1.000000000000000E+16 Inexact Rounded 14017db96d56Sopenharmony_ciddfma371370 fma 1 9999999999999999 0.500000000000 -> 1.000000000000000E+16 Inexact Rounded 14027db96d56Sopenharmony_ciddfma371371 fma 1 9999999999999999 0.50000000000 -> 1.000000000000000E+16 Inexact Rounded 14037db96d56Sopenharmony_ciddfma371372 fma 1 9999999999999999 0.5000000000 -> 1.000000000000000E+16 Inexact Rounded 14047db96d56Sopenharmony_ciddfma371373 fma 1 9999999999999999 0.500000000 -> 1.000000000000000E+16 Inexact Rounded 14057db96d56Sopenharmony_ciddfma371374 fma 1 9999999999999999 0.50000000 -> 1.000000000000000E+16 Inexact Rounded 14067db96d56Sopenharmony_ciddfma371375 fma 1 9999999999999999 0.5000000 -> 1.000000000000000E+16 Inexact Rounded 14077db96d56Sopenharmony_ciddfma371376 fma 1 9999999999999999 0.500000 -> 1.000000000000000E+16 Inexact Rounded 14087db96d56Sopenharmony_ciddfma371377 fma 1 9999999999999999 0.50000 -> 1.000000000000000E+16 Inexact Rounded 14097db96d56Sopenharmony_ciddfma371378 fma 1 9999999999999999 0.5000 -> 1.000000000000000E+16 Inexact Rounded 14107db96d56Sopenharmony_ciddfma371379 fma 1 9999999999999999 0.500 -> 1.000000000000000E+16 Inexact Rounded 14117db96d56Sopenharmony_ciddfma371380 fma 1 9999999999999999 0.50 -> 1.000000000000000E+16 Inexact Rounded 14127db96d56Sopenharmony_ciddfma371381 fma 1 9999999999999999 0.5 -> 1.000000000000000E+16 Inexact Rounded 14137db96d56Sopenharmony_ciddfma371382 fma 1 9999999999999999 0.5000000000000001 -> 1.000000000000000E+16 Inexact Rounded 14147db96d56Sopenharmony_ciddfma371383 fma 1 9999999999999999 0.500000000000001 -> 1.000000000000000E+16 Inexact Rounded 14157db96d56Sopenharmony_ciddfma371384 fma 1 9999999999999999 0.50000000000001 -> 1.000000000000000E+16 Inexact Rounded 14167db96d56Sopenharmony_ciddfma371385 fma 1 9999999999999999 0.5000000000001 -> 1.000000000000000E+16 Inexact Rounded 14177db96d56Sopenharmony_ciddfma371386 fma 1 9999999999999999 0.500000000001 -> 1.000000000000000E+16 Inexact Rounded 14187db96d56Sopenharmony_ciddfma371387 fma 1 9999999999999999 0.50000000001 -> 1.000000000000000E+16 Inexact Rounded 14197db96d56Sopenharmony_ciddfma371388 fma 1 9999999999999999 0.5000000001 -> 1.000000000000000E+16 Inexact Rounded 14207db96d56Sopenharmony_ciddfma371389 fma 1 9999999999999999 0.500000001 -> 1.000000000000000E+16 Inexact Rounded 14217db96d56Sopenharmony_ciddfma371390 fma 1 9999999999999999 0.50000001 -> 1.000000000000000E+16 Inexact Rounded 14227db96d56Sopenharmony_ciddfma371391 fma 1 9999999999999999 0.5000001 -> 1.000000000000000E+16 Inexact Rounded 14237db96d56Sopenharmony_ciddfma371392 fma 1 9999999999999999 0.500001 -> 1.000000000000000E+16 Inexact Rounded 14247db96d56Sopenharmony_ciddfma371393 fma 1 9999999999999999 0.50001 -> 1.000000000000000E+16 Inexact Rounded 14257db96d56Sopenharmony_ciddfma371394 fma 1 9999999999999999 0.5001 -> 1.000000000000000E+16 Inexact Rounded 14267db96d56Sopenharmony_ciddfma371395 fma 1 9999999999999999 0.501 -> 1.000000000000000E+16 Inexact Rounded 14277db96d56Sopenharmony_ciddfma371396 fma 1 9999999999999999 0.51 -> 1.000000000000000E+16 Inexact Rounded 14287db96d56Sopenharmony_ci 14297db96d56Sopenharmony_ci-- More GD edge cases, where difference between the unadjusted 14307db96d56Sopenharmony_ci-- exponents is larger than the maximum precision and one side is 0 14317db96d56Sopenharmony_ciddfma371420 fma 1 0 1.123456789012345 -> 1.123456789012345 14327db96d56Sopenharmony_ciddfma371421 fma 1 0 1.123456789012345E-1 -> 0.1123456789012345 14337db96d56Sopenharmony_ciddfma371422 fma 1 0 1.123456789012345E-2 -> 0.01123456789012345 14347db96d56Sopenharmony_ciddfma371423 fma 1 0 1.123456789012345E-3 -> 0.001123456789012345 14357db96d56Sopenharmony_ciddfma371424 fma 1 0 1.123456789012345E-4 -> 0.0001123456789012345 14367db96d56Sopenharmony_ciddfma371425 fma 1 0 1.123456789012345E-5 -> 0.00001123456789012345 14377db96d56Sopenharmony_ciddfma371426 fma 1 0 1.123456789012345E-6 -> 0.000001123456789012345 14387db96d56Sopenharmony_ciddfma371427 fma 1 0 1.123456789012345E-7 -> 1.123456789012345E-7 14397db96d56Sopenharmony_ciddfma371428 fma 1 0 1.123456789012345E-8 -> 1.123456789012345E-8 14407db96d56Sopenharmony_ciddfma371429 fma 1 0 1.123456789012345E-9 -> 1.123456789012345E-9 14417db96d56Sopenharmony_ciddfma371430 fma 1 0 1.123456789012345E-10 -> 1.123456789012345E-10 14427db96d56Sopenharmony_ciddfma371431 fma 1 0 1.123456789012345E-11 -> 1.123456789012345E-11 14437db96d56Sopenharmony_ciddfma371432 fma 1 0 1.123456789012345E-12 -> 1.123456789012345E-12 14447db96d56Sopenharmony_ciddfma371433 fma 1 0 1.123456789012345E-13 -> 1.123456789012345E-13 14457db96d56Sopenharmony_ciddfma371434 fma 1 0 1.123456789012345E-14 -> 1.123456789012345E-14 14467db96d56Sopenharmony_ciddfma371435 fma 1 0 1.123456789012345E-15 -> 1.123456789012345E-15 14477db96d56Sopenharmony_ciddfma371436 fma 1 0 1.123456789012345E-16 -> 1.123456789012345E-16 14487db96d56Sopenharmony_ciddfma371437 fma 1 0 1.123456789012345E-17 -> 1.123456789012345E-17 14497db96d56Sopenharmony_ciddfma371438 fma 1 0 1.123456789012345E-18 -> 1.123456789012345E-18 14507db96d56Sopenharmony_ciddfma371439 fma 1 0 1.123456789012345E-19 -> 1.123456789012345E-19 14517db96d56Sopenharmony_ci 14527db96d56Sopenharmony_ci-- same, reversed 0 14537db96d56Sopenharmony_ciddfma371440 fma 1 1.123456789012345 0 -> 1.123456789012345 14547db96d56Sopenharmony_ciddfma371441 fma 1 1.123456789012345E-1 0 -> 0.1123456789012345 14557db96d56Sopenharmony_ciddfma371442 fma 1 1.123456789012345E-2 0 -> 0.01123456789012345 14567db96d56Sopenharmony_ciddfma371443 fma 1 1.123456789012345E-3 0 -> 0.001123456789012345 14577db96d56Sopenharmony_ciddfma371444 fma 1 1.123456789012345E-4 0 -> 0.0001123456789012345 14587db96d56Sopenharmony_ciddfma371445 fma 1 1.123456789012345E-5 0 -> 0.00001123456789012345 14597db96d56Sopenharmony_ciddfma371446 fma 1 1.123456789012345E-6 0 -> 0.000001123456789012345 14607db96d56Sopenharmony_ciddfma371447 fma 1 1.123456789012345E-7 0 -> 1.123456789012345E-7 14617db96d56Sopenharmony_ciddfma371448 fma 1 1.123456789012345E-8 0 -> 1.123456789012345E-8 14627db96d56Sopenharmony_ciddfma371449 fma 1 1.123456789012345E-9 0 -> 1.123456789012345E-9 14637db96d56Sopenharmony_ciddfma371450 fma 1 1.123456789012345E-10 0 -> 1.123456789012345E-10 14647db96d56Sopenharmony_ciddfma371451 fma 1 1.123456789012345E-11 0 -> 1.123456789012345E-11 14657db96d56Sopenharmony_ciddfma371452 fma 1 1.123456789012345E-12 0 -> 1.123456789012345E-12 14667db96d56Sopenharmony_ciddfma371453 fma 1 1.123456789012345E-13 0 -> 1.123456789012345E-13 14677db96d56Sopenharmony_ciddfma371454 fma 1 1.123456789012345E-14 0 -> 1.123456789012345E-14 14687db96d56Sopenharmony_ciddfma371455 fma 1 1.123456789012345E-15 0 -> 1.123456789012345E-15 14697db96d56Sopenharmony_ciddfma371456 fma 1 1.123456789012345E-16 0 -> 1.123456789012345E-16 14707db96d56Sopenharmony_ciddfma371457 fma 1 1.123456789012345E-17 0 -> 1.123456789012345E-17 14717db96d56Sopenharmony_ciddfma371458 fma 1 1.123456789012345E-18 0 -> 1.123456789012345E-18 14727db96d56Sopenharmony_ciddfma371459 fma 1 1.123456789012345E-19 0 -> 1.123456789012345E-19 14737db96d56Sopenharmony_ci 14747db96d56Sopenharmony_ci-- same, Es on the 0 14757db96d56Sopenharmony_ciddfma371460 fma 1 1.123456789012345 0E-0 -> 1.123456789012345 14767db96d56Sopenharmony_ciddfma371461 fma 1 1.123456789012345 0E-1 -> 1.123456789012345 14777db96d56Sopenharmony_ciddfma371462 fma 1 1.123456789012345 0E-2 -> 1.123456789012345 14787db96d56Sopenharmony_ciddfma371463 fma 1 1.123456789012345 0E-3 -> 1.123456789012345 14797db96d56Sopenharmony_ciddfma371464 fma 1 1.123456789012345 0E-4 -> 1.123456789012345 14807db96d56Sopenharmony_ciddfma371465 fma 1 1.123456789012345 0E-5 -> 1.123456789012345 14817db96d56Sopenharmony_ciddfma371466 fma 1 1.123456789012345 0E-6 -> 1.123456789012345 14827db96d56Sopenharmony_ciddfma371467 fma 1 1.123456789012345 0E-7 -> 1.123456789012345 14837db96d56Sopenharmony_ciddfma371468 fma 1 1.123456789012345 0E-8 -> 1.123456789012345 14847db96d56Sopenharmony_ciddfma371469 fma 1 1.123456789012345 0E-9 -> 1.123456789012345 14857db96d56Sopenharmony_ciddfma371470 fma 1 1.123456789012345 0E-10 -> 1.123456789012345 14867db96d56Sopenharmony_ciddfma371471 fma 1 1.123456789012345 0E-11 -> 1.123456789012345 14877db96d56Sopenharmony_ciddfma371472 fma 1 1.123456789012345 0E-12 -> 1.123456789012345 14887db96d56Sopenharmony_ciddfma371473 fma 1 1.123456789012345 0E-13 -> 1.123456789012345 14897db96d56Sopenharmony_ciddfma371474 fma 1 1.123456789012345 0E-14 -> 1.123456789012345 14907db96d56Sopenharmony_ciddfma371475 fma 1 1.123456789012345 0E-15 -> 1.123456789012345 14917db96d56Sopenharmony_ci-- next four flag Rounded because the 0 extends the result 14927db96d56Sopenharmony_ciddfma371476 fma 1 1.123456789012345 0E-16 -> 1.123456789012345 Rounded 14937db96d56Sopenharmony_ciddfma371477 fma 1 1.123456789012345 0E-17 -> 1.123456789012345 Rounded 14947db96d56Sopenharmony_ciddfma371478 fma 1 1.123456789012345 0E-18 -> 1.123456789012345 Rounded 14957db96d56Sopenharmony_ciddfma371479 fma 1 1.123456789012345 0E-19 -> 1.123456789012345 Rounded 14967db96d56Sopenharmony_ci 14977db96d56Sopenharmony_ci-- sum of two opposite-sign operands is exactly 0 and floor => -0 14987db96d56Sopenharmony_cirounding: half_up 14997db96d56Sopenharmony_ci-- exact zeros from zeros 15007db96d56Sopenharmony_ciddfma371500 fma 1 0 0E-19 -> 0E-19 15017db96d56Sopenharmony_ciddfma371501 fma 1 -0 0E-19 -> 0E-19 15027db96d56Sopenharmony_ciddfma371502 fma 1 0 -0E-19 -> 0E-19 15037db96d56Sopenharmony_ciddfma371503 fma 1 -0 -0E-19 -> -0E-19 15047db96d56Sopenharmony_ci-- exact zeros from non-zeros 15057db96d56Sopenharmony_ciddfma371511 fma 1 -11 11 -> 0 15067db96d56Sopenharmony_ciddfma371512 fma 1 11 -11 -> 0 15077db96d56Sopenharmony_ci 15087db96d56Sopenharmony_cirounding: half_down 15097db96d56Sopenharmony_ci-- exact zeros from zeros 15107db96d56Sopenharmony_ciddfma371520 fma 1 0 0E-19 -> 0E-19 15117db96d56Sopenharmony_ciddfma371521 fma 1 -0 0E-19 -> 0E-19 15127db96d56Sopenharmony_ciddfma371522 fma 1 0 -0E-19 -> 0E-19 15137db96d56Sopenharmony_ciddfma371523 fma 1 -0 -0E-19 -> -0E-19 15147db96d56Sopenharmony_ci-- exact zeros from non-zeros 15157db96d56Sopenharmony_ciddfma371531 fma 1 -11 11 -> 0 15167db96d56Sopenharmony_ciddfma371532 fma 1 11 -11 -> 0 15177db96d56Sopenharmony_ci 15187db96d56Sopenharmony_cirounding: half_even 15197db96d56Sopenharmony_ci-- exact zeros from zeros 15207db96d56Sopenharmony_ciddfma371540 fma 1 0 0E-19 -> 0E-19 15217db96d56Sopenharmony_ciddfma371541 fma 1 -0 0E-19 -> 0E-19 15227db96d56Sopenharmony_ciddfma371542 fma 1 0 -0E-19 -> 0E-19 15237db96d56Sopenharmony_ciddfma371543 fma 1 -0 -0E-19 -> -0E-19 15247db96d56Sopenharmony_ci-- exact zeros from non-zeros 15257db96d56Sopenharmony_ciddfma371551 fma 1 -11 11 -> 0 15267db96d56Sopenharmony_ciddfma371552 fma 1 11 -11 -> 0 15277db96d56Sopenharmony_ci 15287db96d56Sopenharmony_cirounding: up 15297db96d56Sopenharmony_ci-- exact zeros from zeros 15307db96d56Sopenharmony_ciddfma371560 fma 1 0 0E-19 -> 0E-19 15317db96d56Sopenharmony_ciddfma371561 fma 1 -0 0E-19 -> 0E-19 15327db96d56Sopenharmony_ciddfma371562 fma 1 0 -0E-19 -> 0E-19 15337db96d56Sopenharmony_ciddfma371563 fma 1 -0 -0E-19 -> -0E-19 15347db96d56Sopenharmony_ci-- exact zeros from non-zeros 15357db96d56Sopenharmony_ciddfma371571 fma 1 -11 11 -> 0 15367db96d56Sopenharmony_ciddfma371572 fma 1 11 -11 -> 0 15377db96d56Sopenharmony_ci 15387db96d56Sopenharmony_cirounding: down 15397db96d56Sopenharmony_ci-- exact zeros from zeros 15407db96d56Sopenharmony_ciddfma371580 fma 1 0 0E-19 -> 0E-19 15417db96d56Sopenharmony_ciddfma371581 fma 1 -0 0E-19 -> 0E-19 15427db96d56Sopenharmony_ciddfma371582 fma 1 0 -0E-19 -> 0E-19 15437db96d56Sopenharmony_ciddfma371583 fma 1 -0 -0E-19 -> -0E-19 15447db96d56Sopenharmony_ci-- exact zeros from non-zeros 15457db96d56Sopenharmony_ciddfma371591 fma 1 -11 11 -> 0 15467db96d56Sopenharmony_ciddfma371592 fma 1 11 -11 -> 0 15477db96d56Sopenharmony_ci 15487db96d56Sopenharmony_cirounding: ceiling 15497db96d56Sopenharmony_ci-- exact zeros from zeros 15507db96d56Sopenharmony_ciddfma371600 fma 1 0 0E-19 -> 0E-19 15517db96d56Sopenharmony_ciddfma371601 fma 1 -0 0E-19 -> 0E-19 15527db96d56Sopenharmony_ciddfma371602 fma 1 0 -0E-19 -> 0E-19 15537db96d56Sopenharmony_ciddfma371603 fma 1 -0 -0E-19 -> -0E-19 15547db96d56Sopenharmony_ci-- exact zeros from non-zeros 15557db96d56Sopenharmony_ciddfma371611 fma 1 -11 11 -> 0 15567db96d56Sopenharmony_ciddfma371612 fma 1 11 -11 -> 0 15577db96d56Sopenharmony_ci 15587db96d56Sopenharmony_ci-- and the extra-special ugly case; unusual minuses marked by -- * 15597db96d56Sopenharmony_cirounding: floor 15607db96d56Sopenharmony_ci-- exact zeros from zeros 15617db96d56Sopenharmony_ciddfma371620 fma 1 0 0E-19 -> 0E-19 15627db96d56Sopenharmony_ciddfma371621 fma 1 -0 0E-19 -> -0E-19 -- * 15637db96d56Sopenharmony_ciddfma371622 fma 1 0 -0E-19 -> -0E-19 -- * 15647db96d56Sopenharmony_ciddfma371623 fma 1 -0 -0E-19 -> -0E-19 15657db96d56Sopenharmony_ci-- exact zeros from non-zeros 15667db96d56Sopenharmony_ciddfma371631 fma 1 -11 11 -> -0 -- * 15677db96d56Sopenharmony_ciddfma371632 fma 1 11 -11 -> -0 -- * 15687db96d56Sopenharmony_ci 15697db96d56Sopenharmony_ci-- Examples from SQL proposal (Krishna Kulkarni) 15707db96d56Sopenharmony_ciddfma371701 fma 1 130E-2 120E-2 -> 2.50 15717db96d56Sopenharmony_ciddfma371702 fma 1 130E-2 12E-1 -> 2.50 15727db96d56Sopenharmony_ciddfma371703 fma 1 130E-2 1E0 -> 2.30 15737db96d56Sopenharmony_ciddfma371704 fma 1 1E2 1E4 -> 1.01E+4 15747db96d56Sopenharmony_ciddfma371705 fma 1 130E-2 -120E-2 -> 0.10 15757db96d56Sopenharmony_ciddfma371706 fma 1 130E-2 -12E-1 -> 0.10 15767db96d56Sopenharmony_ciddfma371707 fma 1 130E-2 -1E0 -> 0.30 15777db96d56Sopenharmony_ciddfma371708 fma 1 1E2 -1E4 -> -9.9E+3 15787db96d56Sopenharmony_ci 15797db96d56Sopenharmony_ci-- Gappy coefficients; check residue handling even with full coefficient gap 15807db96d56Sopenharmony_cirounding: half_even 15817db96d56Sopenharmony_ci 15827db96d56Sopenharmony_ciddfma375001 fma 1 1234567890123456 1 -> 1234567890123457 15837db96d56Sopenharmony_ciddfma375002 fma 1 1234567890123456 0.6 -> 1234567890123457 Inexact Rounded 15847db96d56Sopenharmony_ciddfma375003 fma 1 1234567890123456 0.06 -> 1234567890123456 Inexact Rounded 15857db96d56Sopenharmony_ciddfma375004 fma 1 1234567890123456 6E-3 -> 1234567890123456 Inexact Rounded 15867db96d56Sopenharmony_ciddfma375005 fma 1 1234567890123456 6E-4 -> 1234567890123456 Inexact Rounded 15877db96d56Sopenharmony_ciddfma375006 fma 1 1234567890123456 6E-5 -> 1234567890123456 Inexact Rounded 15887db96d56Sopenharmony_ciddfma375007 fma 1 1234567890123456 6E-6 -> 1234567890123456 Inexact Rounded 15897db96d56Sopenharmony_ciddfma375008 fma 1 1234567890123456 6E-7 -> 1234567890123456 Inexact Rounded 15907db96d56Sopenharmony_ciddfma375009 fma 1 1234567890123456 6E-8 -> 1234567890123456 Inexact Rounded 15917db96d56Sopenharmony_ciddfma375010 fma 1 1234567890123456 6E-9 -> 1234567890123456 Inexact Rounded 15927db96d56Sopenharmony_ciddfma375011 fma 1 1234567890123456 6E-10 -> 1234567890123456 Inexact Rounded 15937db96d56Sopenharmony_ciddfma375012 fma 1 1234567890123456 6E-11 -> 1234567890123456 Inexact Rounded 15947db96d56Sopenharmony_ciddfma375013 fma 1 1234567890123456 6E-12 -> 1234567890123456 Inexact Rounded 15957db96d56Sopenharmony_ciddfma375014 fma 1 1234567890123456 6E-13 -> 1234567890123456 Inexact Rounded 15967db96d56Sopenharmony_ciddfma375015 fma 1 1234567890123456 6E-14 -> 1234567890123456 Inexact Rounded 15977db96d56Sopenharmony_ciddfma375016 fma 1 1234567890123456 6E-15 -> 1234567890123456 Inexact Rounded 15987db96d56Sopenharmony_ciddfma375017 fma 1 1234567890123456 6E-16 -> 1234567890123456 Inexact Rounded 15997db96d56Sopenharmony_ciddfma375018 fma 1 1234567890123456 6E-17 -> 1234567890123456 Inexact Rounded 16007db96d56Sopenharmony_ciddfma375019 fma 1 1234567890123456 6E-18 -> 1234567890123456 Inexact Rounded 16017db96d56Sopenharmony_ciddfma375020 fma 1 1234567890123456 6E-19 -> 1234567890123456 Inexact Rounded 16027db96d56Sopenharmony_ciddfma375021 fma 1 1234567890123456 6E-20 -> 1234567890123456 Inexact Rounded 16037db96d56Sopenharmony_ci 16047db96d56Sopenharmony_ci-- widening second argument at gap 16057db96d56Sopenharmony_ciddfma375030 fma 1 12345678 1 -> 12345679 16067db96d56Sopenharmony_ciddfma375031 fma 1 12345678 0.1 -> 12345678.1 16077db96d56Sopenharmony_ciddfma375032 fma 1 12345678 0.12 -> 12345678.12 16087db96d56Sopenharmony_ciddfma375033 fma 1 12345678 0.123 -> 12345678.123 16097db96d56Sopenharmony_ciddfma375034 fma 1 12345678 0.1234 -> 12345678.1234 16107db96d56Sopenharmony_ciddfma375035 fma 1 12345678 0.12345 -> 12345678.12345 16117db96d56Sopenharmony_ciddfma375036 fma 1 12345678 0.123456 -> 12345678.123456 16127db96d56Sopenharmony_ciddfma375037 fma 1 12345678 0.1234567 -> 12345678.1234567 16137db96d56Sopenharmony_ciddfma375038 fma 1 12345678 0.12345678 -> 12345678.12345678 16147db96d56Sopenharmony_ciddfma375039 fma 1 12345678 0.123456789 -> 12345678.12345679 Inexact Rounded 16157db96d56Sopenharmony_ciddfma375040 fma 1 12345678 0.123456785 -> 12345678.12345678 Inexact Rounded 16167db96d56Sopenharmony_ciddfma375041 fma 1 12345678 0.1234567850 -> 12345678.12345678 Inexact Rounded 16177db96d56Sopenharmony_ciddfma375042 fma 1 12345678 0.1234567851 -> 12345678.12345679 Inexact Rounded 16187db96d56Sopenharmony_ciddfma375043 fma 1 12345678 0.12345678501 -> 12345678.12345679 Inexact Rounded 16197db96d56Sopenharmony_ciddfma375044 fma 1 12345678 0.123456785001 -> 12345678.12345679 Inexact Rounded 16207db96d56Sopenharmony_ciddfma375045 fma 1 12345678 0.1234567850001 -> 12345678.12345679 Inexact Rounded 16217db96d56Sopenharmony_ciddfma375046 fma 1 12345678 0.12345678500001 -> 12345678.12345679 Inexact Rounded 16227db96d56Sopenharmony_ciddfma375047 fma 1 12345678 0.123456785000001 -> 12345678.12345679 Inexact Rounded 16237db96d56Sopenharmony_ciddfma375048 fma 1 12345678 0.1234567850000001 -> 12345678.12345679 Inexact Rounded 16247db96d56Sopenharmony_ciddfma375049 fma 1 12345678 0.1234567850000000 -> 12345678.12345678 Inexact Rounded 16257db96d56Sopenharmony_ci-- 90123456 16267db96d56Sopenharmony_cirounding: half_even 16277db96d56Sopenharmony_ciddfma375050 fma 1 12345678 0.0234567750000000 -> 12345678.02345678 Inexact Rounded 16287db96d56Sopenharmony_ciddfma375051 fma 1 12345678 0.0034567750000000 -> 12345678.00345678 Inexact Rounded 16297db96d56Sopenharmony_ciddfma375052 fma 1 12345678 0.0004567750000000 -> 12345678.00045678 Inexact Rounded 16307db96d56Sopenharmony_ciddfma375053 fma 1 12345678 0.0000567750000000 -> 12345678.00005678 Inexact Rounded 16317db96d56Sopenharmony_ciddfma375054 fma 1 12345678 0.0000067750000000 -> 12345678.00000678 Inexact Rounded 16327db96d56Sopenharmony_ciddfma375055 fma 1 12345678 0.0000007750000000 -> 12345678.00000078 Inexact Rounded 16337db96d56Sopenharmony_ciddfma375056 fma 1 12345678 0.0000000750000000 -> 12345678.00000008 Inexact Rounded 16347db96d56Sopenharmony_ciddfma375057 fma 1 12345678 0.0000000050000000 -> 12345678.00000000 Inexact Rounded 16357db96d56Sopenharmony_ciddfma375060 fma 1 12345678 0.0234567750000001 -> 12345678.02345678 Inexact Rounded 16367db96d56Sopenharmony_ciddfma375061 fma 1 12345678 0.0034567750000001 -> 12345678.00345678 Inexact Rounded 16377db96d56Sopenharmony_ciddfma375062 fma 1 12345678 0.0004567750000001 -> 12345678.00045678 Inexact Rounded 16387db96d56Sopenharmony_ciddfma375063 fma 1 12345678 0.0000567750000001 -> 12345678.00005678 Inexact Rounded 16397db96d56Sopenharmony_ciddfma375064 fma 1 12345678 0.0000067750000001 -> 12345678.00000678 Inexact Rounded 16407db96d56Sopenharmony_ciddfma375065 fma 1 12345678 0.0000007750000001 -> 12345678.00000078 Inexact Rounded 16417db96d56Sopenharmony_ciddfma375066 fma 1 12345678 0.0000000750000001 -> 12345678.00000008 Inexact Rounded 16427db96d56Sopenharmony_ciddfma375067 fma 1 12345678 0.0000000050000001 -> 12345678.00000001 Inexact Rounded 16437db96d56Sopenharmony_ci-- far-out residues (full coefficient gap is 16+15 digits) 16447db96d56Sopenharmony_cirounding: up 16457db96d56Sopenharmony_ciddfma375070 fma 1 12345678 1E-8 -> 12345678.00000001 16467db96d56Sopenharmony_ciddfma375071 fma 1 12345678 1E-9 -> 12345678.00000001 Inexact Rounded 16477db96d56Sopenharmony_ciddfma375072 fma 1 12345678 1E-10 -> 12345678.00000001 Inexact Rounded 16487db96d56Sopenharmony_ciddfma375073 fma 1 12345678 1E-11 -> 12345678.00000001 Inexact Rounded 16497db96d56Sopenharmony_ciddfma375074 fma 1 12345678 1E-12 -> 12345678.00000001 Inexact Rounded 16507db96d56Sopenharmony_ciddfma375075 fma 1 12345678 1E-13 -> 12345678.00000001 Inexact Rounded 16517db96d56Sopenharmony_ciddfma375076 fma 1 12345678 1E-14 -> 12345678.00000001 Inexact Rounded 16527db96d56Sopenharmony_ciddfma375077 fma 1 12345678 1E-15 -> 12345678.00000001 Inexact Rounded 16537db96d56Sopenharmony_ciddfma375078 fma 1 12345678 1E-16 -> 12345678.00000001 Inexact Rounded 16547db96d56Sopenharmony_ciddfma375079 fma 1 12345678 1E-17 -> 12345678.00000001 Inexact Rounded 16557db96d56Sopenharmony_ciddfma375080 fma 1 12345678 1E-18 -> 12345678.00000001 Inexact Rounded 16567db96d56Sopenharmony_ciddfma375081 fma 1 12345678 1E-19 -> 12345678.00000001 Inexact Rounded 16577db96d56Sopenharmony_ciddfma375082 fma 1 12345678 1E-20 -> 12345678.00000001 Inexact Rounded 16587db96d56Sopenharmony_ciddfma375083 fma 1 12345678 1E-25 -> 12345678.00000001 Inexact Rounded 16597db96d56Sopenharmony_ciddfma375084 fma 1 12345678 1E-30 -> 12345678.00000001 Inexact Rounded 16607db96d56Sopenharmony_ciddfma375085 fma 1 12345678 1E-31 -> 12345678.00000001 Inexact Rounded 16617db96d56Sopenharmony_ciddfma375086 fma 1 12345678 1E-32 -> 12345678.00000001 Inexact Rounded 16627db96d56Sopenharmony_ciddfma375087 fma 1 12345678 1E-33 -> 12345678.00000001 Inexact Rounded 16637db96d56Sopenharmony_ciddfma375088 fma 1 12345678 1E-34 -> 12345678.00000001 Inexact Rounded 16647db96d56Sopenharmony_ciddfma375089 fma 1 12345678 1E-35 -> 12345678.00000001 Inexact Rounded 16657db96d56Sopenharmony_ci 16667db96d56Sopenharmony_ci-- desctructive subtraction (from remainder tests) 16677db96d56Sopenharmony_ci 16687db96d56Sopenharmony_ci-- +++ some of these will be off-by-one remainder vs remainderNear 16697db96d56Sopenharmony_ci 16707db96d56Sopenharmony_ciddfma4000 fma -1234567890123454 1.000000000000001 1234567890123456 -> 0.765432109876546 16717db96d56Sopenharmony_ciddfma4001 fma -1234567890123443 1.00000000000001 1234567890123456 -> 0.65432109876557 16727db96d56Sopenharmony_ciddfma4002 fma -1234567890123332 1.0000000000001 1234567890123456 -> 0.5432109876668 16737db96d56Sopenharmony_ciddfma4003 fma -308641972530863 4.000000000000001 1234567890123455 -> 2.691358027469137 16747db96d56Sopenharmony_ciddfma4004 fma -308641972530863 4.000000000000001 1234567890123456 -> 3.691358027469137 16757db96d56Sopenharmony_ciddfma4005 fma -246913578024696 4.9999999999999 1234567890123456 -> 0.6913578024696 16767db96d56Sopenharmony_ciddfma4006 fma -246913578024691 4.99999999999999 1234567890123456 -> 3.46913578024691 16777db96d56Sopenharmony_ciddfma4007 fma -246913578024691 4.999999999999999 1234567890123456 -> 1.246913578024691 16787db96d56Sopenharmony_ciddfma4008 fma -246913578024691 5.000000000000001 1234567890123456 -> 0.753086421975309 16797db96d56Sopenharmony_ciddfma4009 fma -246913578024690 5.00000000000001 1234567890123456 -> 3.53086421975310 16807db96d56Sopenharmony_ciddfma4010 fma -246913578024686 5.0000000000001 1234567890123456 -> 1.3086421975314 16817db96d56Sopenharmony_ciddfma4011 fma -1234567890123455 1.000000000000001 1234567890123456 -> -0.234567890123455 16827db96d56Sopenharmony_ciddfma4012 fma -1234567890123444 1.00000000000001 1234567890123456 -> -0.34567890123444 16837db96d56Sopenharmony_ciddfma4013 fma -1234567890123333 1.0000000000001 1234567890123456 -> -0.4567890123333 16847db96d56Sopenharmony_ciddfma4014 fma -308641972530864 4.000000000000001 1234567890123455 -> -1.308641972530864 16857db96d56Sopenharmony_ciddfma4015 fma -308641972530864 4.000000000000001 1234567890123456 -> -0.308641972530864 16867db96d56Sopenharmony_ciddfma4016 fma -246913578024696 4.9999999999999 1234567890123456 -> 0.6913578024696 16877db96d56Sopenharmony_ciddfma4017 fma -246913578024692 4.99999999999999 1234567890123456 -> -1.53086421975308 16887db96d56Sopenharmony_ciddfma4018 fma -246913578024691 4.999999999999999 1234567890123456 -> 1.246913578024691 16897db96d56Sopenharmony_ciddfma4019 fma -246913578024691 5.000000000000001 1234567890123456 -> 0.753086421975309 16907db96d56Sopenharmony_ciddfma4020 fma -246913578024691 5.00000000000001 1234567890123456 -> -1.46913578024691 16917db96d56Sopenharmony_ciddfma4021 fma -246913578024686 5.0000000000001 1234567890123456 -> 1.3086421975314 16927db96d56Sopenharmony_ci 16937db96d56Sopenharmony_ci 16947db96d56Sopenharmony_ci-- Null tests 16957db96d56Sopenharmony_ciddfma39990 fma 1 10 # -> NaN Invalid_operation 16967db96d56Sopenharmony_ciddfma39991 fma 1 # 10 -> NaN Invalid_operation 16977db96d56Sopenharmony_ci 16987db96d56Sopenharmony_ci 1699