------------------------------------------------------------------------

-- fma.decTest -- decimal fused multiply add                          --

-- Copyright (c) IBM Corporation, 1981, 2008.  All rights reserved.   --

------------------------------------------------------------------------

-- Please see the document "General Decimal Arithmetic Testcases"     --

-- at http://www2.hursley.ibm.com/decimal for the description of      --

-- these testcases.                                                   --

--                                                                    --

-- These testcases are experimental ('beta' versions), and they       --

-- may contain errors.  They are offered on an as-is basis.  In       --

-- particular, achieving the same results as the tests here is not    --

-- a guarantee that an implementation complies with any Standard      --

-- or specification.  The tests are not exhaustive.                   --

--                                                                    --

-- Please send comments, suggestions, and corrections to the author:  --

--   Mike Cowlishaw, IBM Fellow                                       --

--   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --

--   mfc@uk.ibm.com                                                   --

------------------------------------------------------------------------

version: 2.59



extended:    1

precision:   9

rounding:    half_up

maxExponent: 384

minexponent: -383



-- These tests comprise three parts:

--   1. Sanity checks and other three-operand tests (especially those

--      where the fused operation makes a difference)

--   2. Multiply tests (third operand is neutral zero [0E+emax])

--   3. Addition tests (first operand is 1)

-- The multiply and addition tests are extensive because FMA may have

-- its own dedicated multiplication or addition routine(s), and they

-- also inherently check the left-to-right properties.



-- Sanity checks

fmax0001 fma  1   1   1 ->   2

fmax0002 fma  1   1   2 ->   3

fmax0003 fma  2   2   3 ->   7

fmax0004 fma  9   9   9 ->  90

fmax0005 fma -1   1   1 ->   0

fmax0006 fma -1   1   2 ->   1

fmax0007 fma -2   2   3 ->  -1

fmax0008 fma -9   9   9 -> -72

fmax0011 fma  1  -1   1 ->   0

fmax0012 fma  1  -1   2 ->   1

fmax0013 fma  2  -2   3 ->  -1

fmax0014 fma  9  -9   9 -> -72

fmax0015 fma  1   1  -1 ->   0

fmax0016 fma  1   1  -2 ->  -1

fmax0017 fma  2   2  -3 ->   1

fmax0018 fma  9   9  -9 ->  72

fmax0019 fma  3   5   7 ->  22

fmax0029 fma  3  -5   7 ->  -8



-- non-integer exacts

fma0100  fma    25.2   63.6   -438  ->  1164.72

fma0101  fma   0.301  0.380    334  ->  334.114380

fma0102  fma    49.2   -4.8   23.3  ->  -212.86

fma0103  fma    4.22  0.079  -94.6  ->  -94.26662

fma0104  fma     903  0.797  0.887  ->  720.578

fma0105  fma    6.13   -161   65.9  ->  -921.03

fma0106  fma    28.2    727   5.45  ->  20506.85

fma0107  fma       4    605    688  ->  3108

fma0108  fma    93.3   0.19  0.226  ->  17.953

fma0109  fma   0.169   -341   5.61  ->  -52.019

fma0110  fma   -72.2     30  -51.2  ->  -2217.2

fma0111  fma  -0.409     13   20.4  ->  15.083

fma0112  fma     317   77.0   19.0  ->  24428.0

fma0113  fma      47   6.58   1.62  ->  310.88

fma0114  fma    1.36  0.984  0.493  ->  1.83124

fma0115  fma    72.7    274   1.56  ->  19921.36

fma0116  fma     335    847     83  ->  283828

fma0117  fma     666  0.247   25.4  ->  189.902

fma0118  fma   -3.87   3.06   78.0  ->  66.1578

fma0119  fma   0.742    192   35.6  ->  178.064

fma0120  fma   -91.6   5.29  0.153  ->  -484.411



-- cases where result is different from separate multiply + add; each

-- is preceded by the result of unfused multiply and add

-- [this is about 20% of all similar  cases in general]

--               888565290   1557.96930  -86087.7578  -> 1.38435735E+12

fma0201  fma     888565290   1557.96930  -86087.7578  -> 1.38435736E+12  Inexact Rounded

--             -85519342.9    735155419     42010431  -> -6.28700084E+16

fma0205  fma   -85519342.9    735155419     42010431  -> -6.28700083E+16 Inexact Rounded

--                -98025.5  -294603.472   10414348.2  -> 2.88890669E+10

fma0208  fma      -98025.5  -294603.472   10414348.2  -> 2.88890670E+10  Inexact Rounded

--              5967627.39   83526540.6   498494.810  -> 4.98455271E+14

fma0211  fma    5967627.39   83526540.6   498494.810  -> 4.98455272E+14  Inexact Rounded

--               3456.9433    874.39518   197866.615  ->  3220601.18

fma0216  fma     3456.9433    874.39518   197866.615  ->  3220601.17     Inexact Rounded

--              62769.8287   2096.98927    48.420317  ->  131627705

fma0218  fma    62769.8287   2096.98927    48.420317  ->  131627706      Inexact Rounded

--               -68.81500   59961113.9     -8988862  -> -4.13521291E+9

fma0219  fma     -68.81500   59961113.9     -8988862  -> -4.13521292E+9  Inexact Rounded

--              2126341.02   63491.5152    302427455  -> 1.35307040E+11

fma0226  fma    2126341.02   63491.5152    302427455  -> 1.35307041E+11  Inexact Rounded





-- Infinite combinations

fmax0800 fma  Inf   Inf   Inf    ->  Infinity

fmax0801 fma  Inf   Inf  -Inf    ->  NaN Invalid_operation

fmax0802 fma  Inf  -Inf   Inf    ->  NaN Invalid_operation

fmax0803 fma  Inf  -Inf  -Inf    -> -Infinity

fmax0804 fma -Inf   Inf   Inf    ->  NaN Invalid_operation

fmax0805 fma -Inf   Inf  -Inf    -> -Infinity

fmax0806 fma -Inf  -Inf   Inf    ->  Infinity

fmax0807 fma -Inf  -Inf  -Inf    ->  NaN Invalid_operation

fmax0808 fma -Inf   0       1    ->  NaN Invalid_operation

fmax0809 fma -Inf   0     NaN    ->  NaN Invalid_operation



-- Triple NaN propagation

fmax0900 fma  NaN2  NaN3  NaN5   ->  NaN2

fmax0901 fma  0     NaN3  NaN5   ->  NaN3

fmax0902 fma  0     0     NaN5   ->  NaN5

-- first sNaN wins (consider qNaN from earlier sNaN being

-- overridden by an sNaN in third operand)

fmax0903 fma  sNaN1 sNaN2 sNaN3  ->  NaN1 Invalid_operation

fmax0904 fma  0     sNaN2 sNaN3  ->  NaN2 Invalid_operation

fmax0905 fma  0     0     sNaN3  ->  NaN3 Invalid_operation

fmax0906 fma  sNaN1 sNaN2 sNaN3  ->  NaN1 Invalid_operation

fmax0907 fma  NaN7  sNaN2 sNaN3  ->  NaN2 Invalid_operation

fmax0908 fma  NaN7  NaN5  sNaN3  ->  NaN3 Invalid_operation



-- MULTIPLICATION TESTS ------------------------------------------------

-- sanity checks (as base, above)

fmax2000 fma 2      2  0E+999999  -> 4

fmax2001 fma 2      3  0E+999999  -> 6

fmax2002 fma 5      1  0E+999999  -> 5

fmax2003 fma 5      2  0E+999999  -> 10

fmax2004 fma 1.20   2  0E+999999  -> 2.40

fmax2005 fma 1.20   0  0E+999999  -> 0.00

fmax2006 fma 1.20  -2  0E+999999  -> -2.40

fmax2007 fma -1.20  2  0E+999999  -> -2.40

fmax2008 fma -1.20  0  0E+999999  -> 0.00

fmax2009 fma -1.20 -2  0E+999999  -> 2.40

fmax2010 fma 5.09 7.1  0E+999999  -> 36.139

fmax2011 fma 2.5    4  0E+999999  -> 10.0

fmax2012 fma 2.50   4  0E+999999  -> 10.00

fmax2013 fma 1.23456789 1.00000000  0E+999999  -> 1.23456789 Rounded

fmax2014 fma 9.999999999 9.999999999  0E+999999  -> 100.000000 Inexact Rounded

fmax2015 fma 2.50   4  0E+999999  -> 10.00

precision: 6

fmax2016 fma 2.50   4  0E+999999  -> 10.00

fmax2017 fma  9.999999  9.999999  0E+999999  ->  100.000 Inexact Rounded

fmax2018 fma  9.999999 -9.999999  0E+999999  -> -100.000 Inexact Rounded

fmax2019 fma -9.999999  9.999999  0E+999999  -> -100.000 Inexact Rounded

fmax2020 fma -9.999999 -9.999999  0E+999999  ->  100.000 Inexact Rounded



-- 1999.12.21: next one is an edge case if intermediate longs are used

precision: 15

fmax2059 fma 999999999999 9765625  0E+999999  -> 9.76562499999023E+18 Inexact Rounded

precision: 30

fmax2160 fma 999999999999 9765625  0E+999999  -> 9765624999990234375

precision: 9

-----



-- zeros, etc.

fmax2021 fma  0      0      0E+999999  ->  0

fmax2022 fma  0     -0      0E+999999  ->  0

fmax2023 fma -0      0      0E+999999  ->  0

fmax2024 fma -0     -0      0E+999999  ->  0

fmax2025 fma -0.0   -0.0    0E+999999  ->  0.00

fmax2026 fma -0.0   -0.0    0E+999999  ->  0.00

fmax2027 fma -0.0   -0.0    0E+999999  ->  0.00

fmax2028 fma -0.0   -0.0    0E+999999  ->  0.00

fmax2030 fma  5.00   1E-3   0E+999999  ->  0.00500

fmax2031 fma  00.00  0.000  0E+999999  ->  0.00000

fmax2032 fma  00.00  0E-3   0E+999999  ->  0.00000     -- rhs is 0

fmax2033 fma  0E-3   00.00  0E+999999  ->  0.00000     -- lhs is 0

fmax2034 fma -5.00   1E-3   0E+999999  -> -0.00500

fmax2035 fma -00.00  0.000  0E+999999  ->  0.00000

fmax2036 fma -00.00  0E-3   0E+999999  ->  0.00000     -- rhs is 0

fmax2037 fma -0E-3   00.00  0E+999999  ->  0.00000     -- lhs is 0

fmax2038 fma  5.00  -1E-3   0E+999999  -> -0.00500

fmax2039 fma  00.00 -0.000  0E+999999  ->  0.00000

fmax2040 fma  00.00 -0E-3   0E+999999  ->  0.00000     -- rhs is 0

fmax2041 fma  0E-3  -00.00  0E+999999  ->  0.00000     -- lhs is 0

fmax2042 fma -5.00  -1E-3   0E+999999  ->  0.00500

fmax2043 fma -00.00 -0.000  0E+999999  ->  0.00000

fmax2044 fma -00.00 -0E-3   0E+999999  ->  0.00000     -- rhs is 0

fmax2045 fma -0E-3  -00.00  0E+999999  ->  0.00000     -- lhs is 0



-- examples from decarith multiply

fmax2050 fma 1.20 3         0E+999999  -> 3.60

fmax2051 fma 7    3         0E+999999  -> 21

fmax2052 fma 0.9  0.8       0E+999999  -> 0.72

fmax2053 fma 0.9  -0        0E+999999  -> 0.0

fmax2054 fma 654321 654321  0E+999999  -> 4.28135971E+11  Inexact Rounded



fmax2060 fma 123.45 1e7   0E+999999  ->  1.2345E+9

fmax2061 fma 123.45 1e8   0E+999999  ->  1.2345E+10

fmax2062 fma 123.45 1e+9  0E+999999  ->  1.2345E+11

fmax2063 fma 123.45 1e10  0E+999999  ->  1.2345E+12

fmax2064 fma 123.45 1e11  0E+999999  ->  1.2345E+13

fmax2065 fma 123.45 1e12  0E+999999  ->  1.2345E+14

fmax2066 fma 123.45 1e13  0E+999999  ->  1.2345E+15





-- test some intermediate lengths

precision: 9

fmax2080 fma 0.1 123456789           0E+999999  -> 12345678.9

fmax2081 fma 0.1 1234567891          0E+999999  -> 123456789 Inexact Rounded

fmax2082 fma 0.1 12345678912         0E+999999  -> 1.23456789E+9 Inexact Rounded

fmax2083 fma 0.1 12345678912345      0E+999999  -> 1.23456789E+12 Inexact Rounded

fmax2084 fma 0.1 123456789           0E+999999  -> 12345678.9

precision: 8

fmax2085 fma 0.1 12345678912         0E+999999  -> 1.2345679E+9 Inexact Rounded

fmax2086 fma 0.1 12345678912345      0E+999999  -> 1.2345679E+12 Inexact Rounded

precision: 7

fmax2087 fma 0.1 12345678912         0E+999999  -> 1.234568E+9 Inexact Rounded

fmax2088 fma 0.1 12345678912345      0E+999999  -> 1.234568E+12 Inexact Rounded



precision: 9

fmax2090 fma 123456789          0.1  0E+999999  -> 12345678.9

fmax2091 fma 1234567891         0.1  0E+999999  -> 123456789 Inexact Rounded

fmax2092 fma 12345678912        0.1  0E+999999  -> 1.23456789E+9 Inexact Rounded

fmax2093 fma 12345678912345     0.1  0E+999999  -> 1.23456789E+12 Inexact Rounded

fmax2094 fma 123456789          0.1  0E+999999  -> 12345678.9

precision: 8

fmax2095 fma 12345678912        0.1  0E+999999  -> 1.2345679E+9 Inexact Rounded

fmax2096 fma 12345678912345     0.1  0E+999999  -> 1.2345679E+12 Inexact Rounded

precision: 7

fmax2097 fma 12345678912        0.1  0E+999999  -> 1.234568E+9 Inexact Rounded

fmax2098 fma 12345678912345     0.1  0E+999999  -> 1.234568E+12 Inexact Rounded



-- test some more edge cases and carries

maxexponent: 9999

minexponent: -9999

precision: 33

fmax2101 fma 9 9    0E+999999  -> 81

fmax2102 fma 9 90    0E+999999  -> 810

fmax2103 fma 9 900    0E+999999  -> 8100

fmax2104 fma 9 9000    0E+999999  -> 81000

fmax2105 fma 9 90000    0E+999999  -> 810000

fmax2106 fma 9 900000    0E+999999  -> 8100000

fmax2107 fma 9 9000000    0E+999999  -> 81000000

fmax2108 fma 9 90000000    0E+999999  -> 810000000

fmax2109 fma 9 900000000    0E+999999  -> 8100000000

fmax2110 fma 9 9000000000    0E+999999  -> 81000000000

fmax2111 fma 9 90000000000    0E+999999  -> 810000000000

fmax2112 fma 9 900000000000    0E+999999  -> 8100000000000

fmax2113 fma 9 9000000000000    0E+999999  -> 81000000000000

fmax2114 fma 9 90000000000000    0E+999999  -> 810000000000000

fmax2115 fma 9 900000000000000    0E+999999  -> 8100000000000000

fmax2116 fma 9 9000000000000000    0E+999999  -> 81000000000000000

fmax2117 fma 9 90000000000000000    0E+999999  -> 810000000000000000

fmax2118 fma 9 900000000000000000    0E+999999  -> 8100000000000000000

fmax2119 fma 9 9000000000000000000    0E+999999  -> 81000000000000000000

fmax2120 fma 9 90000000000000000000    0E+999999  -> 810000000000000000000

fmax2121 fma 9 900000000000000000000    0E+999999  -> 8100000000000000000000

fmax2122 fma 9 9000000000000000000000    0E+999999  -> 81000000000000000000000

fmax2123 fma 9 90000000000000000000000    0E+999999  -> 810000000000000000000000

-- test some more edge cases without carries

fmax2131 fma 3 3    0E+999999  -> 9

fmax2132 fma 3 30    0E+999999  -> 90

fmax2133 fma 3 300    0E+999999  -> 900

fmax2134 fma 3 3000    0E+999999  -> 9000

fmax2135 fma 3 30000    0E+999999  -> 90000

fmax2136 fma 3 300000    0E+999999  -> 900000

fmax2137 fma 3 3000000    0E+999999  -> 9000000

fmax2138 fma 3 30000000    0E+999999  -> 90000000

fmax2139 fma 3 300000000    0E+999999  -> 900000000

fmax2140 fma 3 3000000000    0E+999999  -> 9000000000

fmax2141 fma 3 30000000000    0E+999999  -> 90000000000

fmax2142 fma 3 300000000000    0E+999999  -> 900000000000

fmax2143 fma 3 3000000000000    0E+999999  -> 9000000000000

fmax2144 fma 3 30000000000000    0E+999999  -> 90000000000000

fmax2145 fma 3 300000000000000    0E+999999  -> 900000000000000

fmax2146 fma 3 3000000000000000    0E+999999  -> 9000000000000000

fmax2147 fma 3 30000000000000000    0E+999999  -> 90000000000000000

fmax2148 fma 3 300000000000000000    0E+999999  -> 900000000000000000

fmax2149 fma 3 3000000000000000000    0E+999999  -> 9000000000000000000

fmax2150 fma 3 30000000000000000000    0E+999999  -> 90000000000000000000

fmax2151 fma 3 300000000000000000000    0E+999999  -> 900000000000000000000

fmax2152 fma 3 3000000000000000000000    0E+999999  -> 9000000000000000000000

fmax2153 fma 3 30000000000000000000000    0E+999999  -> 90000000000000000000000



maxexponent: 999999

minexponent: -999999

precision: 9

-- test some cases that are close to exponent overflow/underflow

fmax2170 fma 1 9e999999     0E+999999  -> 9E+999999

fmax2171 fma 1 9.9e999999   0E+999999  -> 9.9E+999999

fmax2172 fma 1 9.99e999999  0E+999999  -> 9.99E+999999

fmax2173 fma 9e999999    1  0E+999999  -> 9E+999999

fmax2174 fma 9.9e999999  1  0E+999999  -> 9.9E+999999

fmax2176 fma 9.99e999999 1  0E+999999  -> 9.99E+999999

fmax2177 fma 1 9.99999e999999  0E+999999  -> 9.99999E+999999

fmax2178 fma 9.99999e999999 1  0E+999999  -> 9.99999E+999999



fmax2180 fma 0.1 9e-999998    0E+999999  -> 9E-999999

fmax2181 fma 0.1 99e-999998   0E+999999  -> 9.9E-999998

fmax2182 fma 0.1 999e-999998  0E+999999  -> 9.99E-999997



fmax2183 fma 0.1 9e-999998      0E+999999  -> 9E-999999

fmax2184 fma 0.1 99e-999998     0E+999999  -> 9.9E-999998

fmax2185 fma 0.1 999e-999998    0E+999999  -> 9.99E-999997

fmax2186 fma 0.1 999e-999997    0E+999999  -> 9.99E-999996

fmax2187 fma 0.1 9999e-999997   0E+999999  -> 9.999E-999995

fmax2188 fma 0.1 99999e-999997  0E+999999  -> 9.9999E-999994



fmax2190 fma 1 9e-999998    0E+999999  -> 9E-999998

fmax2191 fma 1 99e-999998   0E+999999  -> 9.9E-999997

fmax2192 fma 1 999e-999998  0E+999999  -> 9.99E-999996

fmax2193 fma 9e-999998   1  0E+999999  -> 9E-999998

fmax2194 fma 99e-999998  1  0E+999999  -> 9.9E-999997

fmax2195 fma 999e-999998 1  0E+999999  -> 9.99E-999996



-- long operand triangle

precision: 33

fmax2246 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.290801193369671916511992830 Inexact Rounded

precision: 32

fmax2247 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.29080119336967191651199283  Inexact Rounded

precision: 31

fmax2248 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.2908011933696719165119928   Inexact Rounded

precision: 30

fmax2249 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.290801193369671916511993    Inexact Rounded

precision: 29

fmax2250 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.29080119336967191651199     Inexact Rounded

precision: 28

fmax2251 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.2908011933696719165120      Inexact Rounded

precision: 27

fmax2252 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.290801193369671916512       Inexact Rounded

precision: 26

fmax2253 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.29080119336967191651        Inexact Rounded

precision: 25

fmax2254 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.2908011933696719165         Inexact Rounded

precision: 24

fmax2255 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.290801193369671917          Inexact Rounded

precision: 23

fmax2256 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.29080119336967192           Inexact Rounded

precision: 22

fmax2257 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.2908011933696719            Inexact Rounded

precision: 21

fmax2258 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.290801193369672             Inexact Rounded

precision: 20

fmax2259 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.29080119336967              Inexact Rounded

precision: 19

fmax2260 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.2908011933697               Inexact Rounded

precision: 18

fmax2261 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.290801193370                Inexact Rounded

precision: 17

fmax2262 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.29080119337                 Inexact Rounded

precision: 16

fmax2263 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.2908011934                  Inexact Rounded

precision: 15

fmax2264 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.290801193                   Inexact Rounded

precision: 14

fmax2265 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.29080119                    Inexact Rounded

precision: 13

fmax2266 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.2908012                     Inexact Rounded

precision: 12

fmax2267 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.290801                      Inexact Rounded

precision: 11

fmax2268 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.29080                       Inexact Rounded

precision: 10

fmax2269 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.2908                        Inexact Rounded

precision:  9

fmax2270 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.291                         Inexact Rounded

precision:  8

fmax2271 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.29                          Inexact Rounded

precision:  7

fmax2272 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433.3                           Inexact Rounded

precision:  6

fmax2273 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 145433                            Inexact Rounded

precision:  5

fmax2274 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 1.4543E+5                         Inexact Rounded

precision:  4

fmax2275 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 1.454E+5                         Inexact Rounded

precision:  3

fmax2276 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 1.45E+5                         Inexact Rounded

precision:  2

fmax2277 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 1.5E+5                         Inexact Rounded

precision:  1

fmax2278 fma 30269.587755640502150977251770554 4.8046009735990873395936309640543  0E+999999  -> 1E+5                          Inexact Rounded



-- test some edge cases with exact rounding

maxexponent: 9999

minexponent: -9999

precision: 9

fmax2301 fma 9 9    0E+999999  -> 81

fmax2302 fma 9 90    0E+999999  -> 810

fmax2303 fma 9 900    0E+999999  -> 8100

fmax2304 fma 9 9000    0E+999999  -> 81000

fmax2305 fma 9 90000    0E+999999  -> 810000

fmax2306 fma 9 900000    0E+999999  -> 8100000

fmax2307 fma 9 9000000    0E+999999  -> 81000000

fmax2308 fma 9 90000000    0E+999999  -> 810000000

fmax2309 fma 9 900000000    0E+999999  -> 8.10000000E+9   Rounded

fmax2310 fma 9 9000000000    0E+999999  -> 8.10000000E+10  Rounded

fmax2311 fma 9 90000000000    0E+999999  -> 8.10000000E+11  Rounded

fmax2312 fma 9 900000000000    0E+999999  -> 8.10000000E+12  Rounded

fmax2313 fma 9 9000000000000    0E+999999  -> 8.10000000E+13  Rounded

fmax2314 fma 9 90000000000000    0E+999999  -> 8.10000000E+14  Rounded

fmax2315 fma 9 900000000000000    0E+999999  -> 8.10000000E+15  Rounded

fmax2316 fma 9 9000000000000000    0E+999999  -> 8.10000000E+16  Rounded

fmax2317 fma 9 90000000000000000    0E+999999  -> 8.10000000E+17  Rounded

fmax2318 fma 9 900000000000000000    0E+999999  -> 8.10000000E+18  Rounded

fmax2319 fma 9 9000000000000000000    0E+999999  -> 8.10000000E+19  Rounded

fmax2320 fma 9 90000000000000000000    0E+999999  -> 8.10000000E+20  Rounded

fmax2321 fma 9 900000000000000000000    0E+999999  -> 8.10000000E+21  Rounded

fmax2322 fma 9 9000000000000000000000    0E+999999  -> 8.10000000E+22  Rounded

fmax2323 fma 9 90000000000000000000000    0E+999999  -> 8.10000000E+23  Rounded



-- fastpath breakers

precision:   29

fmax2330 fma 1.491824697641270317824852952837224 1.105170918075647624811707826490246514675628614562883537345747603  0E+999999  -> 1.6487212707001281468486507878 Inexact Rounded

precision:   55

fmax2331 fma 0.8958341352965282506768545828765117803873717284891040428 0.8958341352965282506768545828765117803873717284891040428  0E+999999  -> 0.8025187979624784829842553829934069955890983696752228299 Inexact Rounded





-- tryzeros cases

precision:   7

rounding:    half_up

maxExponent: 92

minexponent: -92

fmax2504  fma  0E-60 1000E-60   0E+999999  -> 0E-98 Clamped

fmax2505  fma  100E+60 0E+60    0E+999999  -> 0E+92 Clamped



-- mixed with zeros

maxexponent: 999999

minexponent: -999999

precision: 9

fmax2541 fma  0    -1      0E+999999  ->  0

fmax2542 fma -0    -1      0E+999999  ->  0

fmax2543 fma  0     1      0E+999999  ->  0

fmax2544 fma -0     1      0E+999999  ->  0

fmax2545 fma -1     0      0E+999999  ->  0

fmax2546 fma -1    -0      0E+999999  ->  0

fmax2547 fma  1     0      0E+999999  ->  0

fmax2548 fma  1    -0      0E+999999  ->  0



fmax2551 fma  0.0  -1      0E+999999  ->  0.0

fmax2552 fma -0.0  -1      0E+999999  ->  0.0

fmax2553 fma  0.0   1      0E+999999  ->  0.0

fmax2554 fma -0.0   1      0E+999999  ->  0.0

fmax2555 fma -1.0   0      0E+999999  ->  0.0

fmax2556 fma -1.0  -0      0E+999999  ->  0.0

fmax2557 fma  1.0   0      0E+999999  ->  0.0

fmax2558 fma  1.0  -0      0E+999999  ->  0.0



fmax2561 fma  0    -1.0    0E+999999  ->  0.0

fmax2562 fma -0    -1.0    0E+999999  ->  0.0

fmax2563 fma  0     1.0    0E+999999  ->  0.0

fmax2564 fma -0     1.0    0E+999999  ->  0.0

fmax2565 fma -1     0.0    0E+999999  ->  0.0

fmax2566 fma -1    -0.0    0E+999999  ->  0.0

fmax2567 fma  1     0.0    0E+999999  ->  0.0

fmax2568 fma  1    -0.0    0E+999999  ->  0.0



fmax2571 fma  0.0  -1.0    0E+999999  ->  0.00

fmax2572 fma -0.0  -1.0    0E+999999  ->  0.00

fmax2573 fma  0.0   1.0    0E+999999  ->  0.00

fmax2574 fma -0.0   1.0    0E+999999  ->  0.00

fmax2575 fma -1.0   0.0    0E+999999  ->  0.00

fmax2576 fma -1.0  -0.0    0E+999999  ->  0.00

fmax2577 fma  1.0   0.0    0E+999999  ->  0.00

fmax2578 fma  1.0  -0.0    0E+999999  ->  0.00





-- Specials

fmax2580 fma  Inf  -Inf    0E+999999  -> -Infinity

fmax2581 fma  Inf  -1000   0E+999999  -> -Infinity

fmax2582 fma  Inf  -1      0E+999999  -> -Infinity

fmax2583 fma  Inf  -0      0E+999999  ->  NaN  Invalid_operation

fmax2584 fma  Inf   0      0E+999999  ->  NaN  Invalid_operation

fmax2585 fma  Inf   1      0E+999999  ->  Infinity

fmax2586 fma  Inf   1000   0E+999999  ->  Infinity

fmax2587 fma  Inf   Inf    0E+999999  ->  Infinity

fmax2588 fma -1000  Inf    0E+999999  -> -Infinity

fmax2589 fma -Inf   Inf    0E+999999  -> -Infinity

fmax2590 fma -1     Inf    0E+999999  -> -Infinity

fmax2591 fma -0     Inf    0E+999999  ->  NaN  Invalid_operation

fmax2592 fma  0     Inf    0E+999999  ->  NaN  Invalid_operation

fmax2593 fma  1     Inf    0E+999999  ->  Infinity

fmax2594 fma  1000  Inf    0E+999999  ->  Infinity

fmax2595 fma  Inf   Inf    0E+999999  ->  Infinity



fmax2600 fma -Inf  -Inf    0E+999999  ->  Infinity

fmax2601 fma -Inf  -1000   0E+999999  ->  Infinity

fmax2602 fma -Inf  -1      0E+999999  ->  Infinity

fmax2603 fma -Inf  -0      0E+999999  ->  NaN  Invalid_operation

fmax2604 fma -Inf   0      0E+999999  ->  NaN  Invalid_operation

fmax2605 fma -Inf   1      0E+999999  -> -Infinity

fmax2606 fma -Inf   1000   0E+999999  -> -Infinity

fmax2607 fma -Inf   Inf    0E+999999  -> -Infinity

fmax2608 fma -1000  Inf    0E+999999  -> -Infinity

fmax2609 fma -Inf  -Inf    0E+999999  ->  Infinity

fmax2610 fma -1    -Inf    0E+999999  ->  Infinity

fmax2611 fma -0    -Inf    0E+999999  ->  NaN  Invalid_operation

fmax2612 fma  0    -Inf    0E+999999  ->  NaN  Invalid_operation

fmax2613 fma  1    -Inf    0E+999999  -> -Infinity

fmax2614 fma  1000 -Inf    0E+999999  -> -Infinity

fmax2615 fma  Inf  -Inf    0E+999999  -> -Infinity



fmax2621 fma  NaN -Inf     0E+999999  ->  NaN

fmax2622 fma  NaN -1000    0E+999999  ->  NaN

fmax2623 fma  NaN -1       0E+999999  ->  NaN

fmax2624 fma  NaN -0       0E+999999  ->  NaN

fmax2625 fma  NaN  0       0E+999999  ->  NaN

fmax2626 fma  NaN  1       0E+999999  ->  NaN

fmax2627 fma  NaN  1000    0E+999999  ->  NaN

fmax2628 fma  NaN  Inf     0E+999999  ->  NaN

fmax2629 fma  NaN  NaN     0E+999999  ->  NaN

fmax2630 fma -Inf  NaN     0E+999999  ->  NaN

fmax2631 fma -1000 NaN     0E+999999  ->  NaN

fmax2632 fma -1    NaN     0E+999999  ->  NaN

fmax2633 fma -0    NaN     0E+999999  ->  NaN

fmax2634 fma  0    NaN     0E+999999  ->  NaN

fmax2635 fma  1    NaN     0E+999999  ->  NaN

fmax2636 fma  1000 NaN     0E+999999  ->  NaN

fmax2637 fma  Inf  NaN     0E+999999  ->  NaN



fmax2641 fma  sNaN -Inf    0E+999999  ->  NaN  Invalid_operation

fmax2642 fma  sNaN -1000   0E+999999  ->  NaN  Invalid_operation

fmax2643 fma  sNaN -1      0E+999999  ->  NaN  Invalid_operation

fmax2644 fma  sNaN -0      0E+999999  ->  NaN  Invalid_operation

fmax2645 fma  sNaN  0      0E+999999  ->  NaN  Invalid_operation

fmax2646 fma  sNaN  1      0E+999999  ->  NaN  Invalid_operation

fmax2647 fma  sNaN  1000   0E+999999  ->  NaN  Invalid_operation

fmax2648 fma  sNaN  NaN    0E+999999  ->  NaN  Invalid_operation

fmax2649 fma  sNaN sNaN    0E+999999  ->  NaN  Invalid_operation

fmax2650 fma  NaN  sNaN    0E+999999  ->  NaN  Invalid_operation

fmax2651 fma -Inf  sNaN    0E+999999  ->  NaN  Invalid_operation

fmax2652 fma -1000 sNaN    0E+999999  ->  NaN  Invalid_operation

fmax2653 fma -1    sNaN    0E+999999  ->  NaN  Invalid_operation

fmax2654 fma -0    sNaN    0E+999999  ->  NaN  Invalid_operation

fmax2655 fma  0    sNaN    0E+999999  ->  NaN  Invalid_operation

fmax2656 fma  1    sNaN    0E+999999  ->  NaN  Invalid_operation

fmax2657 fma  1000 sNaN    0E+999999  ->  NaN  Invalid_operation

fmax2658 fma  Inf  sNaN    0E+999999  ->  NaN  Invalid_operation

fmax2659 fma  NaN  sNaN    0E+999999  ->  NaN  Invalid_operation



-- propagating NaNs

fmax2661 fma  NaN9 -Inf    0E+999999  ->  NaN9

fmax2662 fma  NaN8  999    0E+999999  ->  NaN8

fmax2663 fma  NaN71 Inf    0E+999999  ->  NaN71

fmax2664 fma  NaN6  NaN5   0E+999999  ->  NaN6

fmax2665 fma -Inf   NaN4   0E+999999  ->  NaN4

fmax2666 fma -999   NaN33  0E+999999  ->  NaN33

fmax2667 fma  Inf   NaN2   0E+999999  ->  NaN2



fmax2671 fma  sNaN99 -Inf     0E+999999  ->  NaN99 Invalid_operation

fmax2672 fma  sNaN98 -11      0E+999999  ->  NaN98 Invalid_operation

fmax2673 fma  sNaN97  NaN     0E+999999  ->  NaN97 Invalid_operation

fmax2674 fma  sNaN16 sNaN94   0E+999999  ->  NaN16 Invalid_operation

fmax2675 fma  NaN95  sNaN93   0E+999999  ->  NaN93 Invalid_operation

fmax2676 fma -Inf    sNaN92   0E+999999  ->  NaN92 Invalid_operation

fmax2677 fma  088    sNaN91   0E+999999  ->  NaN91 Invalid_operation

fmax2678 fma  Inf    sNaN90   0E+999999  ->  NaN90 Invalid_operation

fmax2679 fma  NaN    sNaN89   0E+999999  ->  NaN89 Invalid_operation



fmax2681 fma -NaN9 -Inf    0E+999999  -> -NaN9

fmax2682 fma -NaN8  999    0E+999999  -> -NaN8

fmax2683 fma -NaN71 Inf    0E+999999  -> -NaN71

fmax2684 fma -NaN6 -NaN5   0E+999999  -> -NaN6

fmax2685 fma -Inf  -NaN4   0E+999999  -> -NaN4

fmax2686 fma -999  -NaN33  0E+999999  -> -NaN33

fmax2687 fma  Inf  -NaN2   0E+999999  -> -NaN2



fmax2691 fma -sNaN99 -Inf     0E+999999  -> -NaN99 Invalid_operation

fmax2692 fma -sNaN98 -11      0E+999999  -> -NaN98 Invalid_operation

fmax2693 fma -sNaN97  NaN     0E+999999  -> -NaN97 Invalid_operation

fmax2694 fma -sNaN16 -sNaN94  0E+999999  -> -NaN16 Invalid_operation

fmax2695 fma -NaN95  -sNaN93  0E+999999  -> -NaN93 Invalid_operation

fmax2696 fma -Inf    -sNaN92  0E+999999  -> -NaN92 Invalid_operation

fmax2697 fma  088    -sNaN91  0E+999999  -> -NaN91 Invalid_operation

fmax2698 fma  Inf    -sNaN90  0E+999999  -> -NaN90 Invalid_operation

fmax2699 fma -NaN    -sNaN89  0E+999999  -> -NaN89 Invalid_operation



fmax2701 fma -NaN  -Inf    0E+999999  -> -NaN

fmax2702 fma -NaN   999    0E+999999  -> -NaN

fmax2703 fma -NaN   Inf    0E+999999  -> -NaN

fmax2704 fma -NaN  -NaN    0E+999999  -> -NaN

fmax2705 fma -Inf  -NaN0   0E+999999  -> -NaN

fmax2706 fma -999  -NaN    0E+999999  -> -NaN

fmax2707 fma  Inf  -NaN    0E+999999  -> -NaN



fmax2711 fma -sNaN   -Inf     0E+999999  -> -NaN Invalid_operation

fmax2712 fma -sNaN   -11      0E+999999  -> -NaN Invalid_operation

fmax2713 fma -sNaN00  NaN     0E+999999  -> -NaN Invalid_operation

fmax2714 fma -sNaN   -sNaN    0E+999999  -> -NaN Invalid_operation

fmax2715 fma -NaN    -sNaN    0E+999999  -> -NaN Invalid_operation

fmax2716 fma -Inf    -sNaN    0E+999999  -> -NaN Invalid_operation

fmax2717 fma  088    -sNaN    0E+999999  -> -NaN Invalid_operation

fmax2718 fma  Inf    -sNaN    0E+999999  -> -NaN Invalid_operation

fmax2719 fma -NaN    -sNaN    0E+999999  -> -NaN Invalid_operation



-- overflow and underflow tests .. note subnormal results

maxexponent: 999999

minexponent: -999999

fmax2730 fma +1.23456789012345E-0 9E+999999  0E+999999  -> Infinity Inexact Overflow Rounded

fmax2731 fma 9E+999999 +1.23456789012345E-0  0E+999999  -> Infinity Inexact Overflow Rounded

fmax2732 fma +0.100 9E-999999  0E+999999  -> 9.00E-1000000 Subnormal

fmax2733 fma 9E-999999 +0.100  0E+999999  -> 9.00E-1000000 Subnormal

fmax2735 fma -1.23456789012345E-0 9E+999999  0E+999999  -> -Infinity Inexact Overflow Rounded

fmax2736 fma 9E+999999 -1.23456789012345E-0  0E+999999  -> -Infinity Inexact Overflow Rounded

fmax2737 fma -0.100 9E-999999  0E+999999  -> -9.00E-1000000 Subnormal

fmax2738 fma 9E-999999 -0.100  0E+999999  -> -9.00E-1000000 Subnormal



-- signs

fmax2751 fma  1e+777777  1e+411111  0E+999999  ->  Infinity Overflow Inexact Rounded

fmax2752 fma  1e+777777 -1e+411111  0E+999999  -> -Infinity Overflow Inexact Rounded

fmax2753 fma -1e+777777  1e+411111  0E+999999  -> -Infinity Overflow Inexact Rounded

fmax2754 fma -1e+777777 -1e+411111  0E+999999  ->  Infinity Overflow Inexact Rounded

fmax2755 fma  1e-777777  1e-411111  0E+999999  ->  0E-1000007 Underflow Subnormal Inexact Rounded Clamped

fmax2756 fma  1e-777777 -1e-411111  0E+999999  -> -0E-1000007 Underflow Subnormal Inexact Rounded Clamped

fmax2757 fma -1e-777777  1e-411111  0E+999999  -> -0E-1000007 Underflow Subnormal Inexact Rounded Clamped

fmax2758 fma -1e-777777 -1e-411111  0E+999999  ->  0E-1000007 Underflow Subnormal Inexact Rounded Clamped



-- 'subnormal' boundary (all hard underflow or overflow in base arithmetic)

precision: 9

fmax2760 fma 1e-600000 1e-400001  0E+999999  -> 1E-1000001 Subnormal

fmax2761 fma 1e-600000 1e-400002  0E+999999  -> 1E-1000002 Subnormal

fmax2762 fma 1e-600000 1e-400003  0E+999999  -> 1E-1000003 Subnormal

fmax2763 fma 1e-600000 1e-400004  0E+999999  -> 1E-1000004 Subnormal

fmax2764 fma 1e-600000 1e-400005  0E+999999  -> 1E-1000005 Subnormal

fmax2765 fma 1e-600000 1e-400006  0E+999999  -> 1E-1000006 Subnormal

fmax2766 fma 1e-600000 1e-400007  0E+999999  -> 1E-1000007 Subnormal

fmax2767 fma 1e-600000 1e-400008  0E+999999  -> 0E-1000007 Underflow Subnormal Inexact Rounded Clamped

fmax2768 fma 1e-600000 1e-400009  0E+999999  -> 0E-1000007 Underflow Subnormal Inexact Rounded Clamped

fmax2769 fma 1e-600000 1e-400010  0E+999999  -> 0E-1000007 Underflow Subnormal Inexact Rounded Clamped

-- [no equivalent of 'subnormal' for overflow]

fmax2770 fma 1e+600000 1e+400001  0E+999999  -> Infinity Overflow Inexact Rounded

fmax2771 fma 1e+600000 1e+400002  0E+999999  -> Infinity Overflow Inexact Rounded

fmax2772 fma 1e+600000 1e+400003  0E+999999  -> Infinity Overflow Inexact Rounded

fmax2773 fma 1e+600000 1e+400004  0E+999999  -> Infinity Overflow Inexact Rounded

fmax2774 fma 1e+600000 1e+400005  0E+999999  -> Infinity Overflow Inexact Rounded

fmax2775 fma 1e+600000 1e+400006  0E+999999  -> Infinity Overflow Inexact Rounded

fmax2776 fma 1e+600000 1e+400007  0E+999999  -> Infinity Overflow Inexact Rounded

fmax2777 fma 1e+600000 1e+400008  0E+999999  -> Infinity Overflow Inexact Rounded

fmax2778 fma 1e+600000 1e+400009  0E+999999  -> Infinity Overflow Inexact Rounded

fmax2779 fma 1e+600000 1e+400010  0E+999999  -> Infinity Overflow Inexact Rounded



-- 'subnormal' test edge condition at higher precisions

precision: 99

fmax2780 fma 1e-600000 1e-400007  0E+999999  -> 1E-1000007 Subnormal

fmax2781 fma 1e-600000 1e-400008  0E+999999  -> 1E-1000008 Subnormal

fmax2782 fma 1e-600000 1e-400097  0E+999999  -> 1E-1000097 Subnormal

fmax2783 fma 1e-600000 1e-400098  0E+999999  -> 0E-1000097 Underflow Subnormal Inexact Rounded Clamped

precision: 999

fmax2784 fma 1e-600000 1e-400997  0E+999999  -> 1E-1000997 Subnormal

fmax2785 fma 1e-600000 1e-400998  0E+999999  -> 0E-1000997 Underflow Subnormal Inexact Rounded Clamped



-- test subnormals rounding

precision:   5

maxExponent: 999

minexponent: -999

rounding:    half_even



fmax2801 fma  1.0000E-999  1      0E+999999  -> 1.0000E-999

fmax2802 fma  1.000E-999   1e-1   0E+999999  -> 1.000E-1000 Subnormal

fmax2803 fma  1.00E-999    1e-2   0E+999999  -> 1.00E-1001  Subnormal

fmax2804 fma  1.0E-999     1e-3   0E+999999  -> 1.0E-1002   Subnormal

fmax2805 fma  1.0E-999     1e-4   0E+999999  -> 1E-1003     Subnormal Rounded

fmax2806 fma  1.3E-999     1e-4   0E+999999  -> 1E-1003     Underflow Subnormal Inexact Rounded

fmax2807 fma  1.5E-999     1e-4   0E+999999  -> 2E-1003     Underflow Subnormal Inexact Rounded

fmax2808 fma  1.7E-999     1e-4   0E+999999  -> 2E-1003     Underflow Subnormal Inexact Rounded

fmax2809 fma  2.3E-999     1e-4   0E+999999  -> 2E-1003     Underflow Subnormal Inexact Rounded

fmax2810 fma  2.5E-999     1e-4   0E+999999  -> 2E-1003     Underflow Subnormal Inexact Rounded

fmax2811 fma  2.7E-999     1e-4   0E+999999  -> 3E-1003     Underflow Subnormal Inexact Rounded

fmax2812 fma  1.49E-999    1e-4   0E+999999  -> 1E-1003     Underflow Subnormal Inexact Rounded

fmax2813 fma  1.50E-999    1e-4   0E+999999  -> 2E-1003     Underflow Subnormal Inexact Rounded

fmax2814 fma  1.51E-999    1e-4   0E+999999  -> 2E-1003     Underflow Subnormal Inexact Rounded

fmax2815 fma  2.49E-999    1e-4   0E+999999  -> 2E-1003     Underflow Subnormal Inexact Rounded

fmax2816 fma  2.50E-999    1e-4   0E+999999  -> 2E-1003     Underflow Subnormal Inexact Rounded

fmax2817 fma  2.51E-999    1e-4   0E+999999  -> 3E-1003     Underflow Subnormal Inexact Rounded



fmax2818 fma  1E-999       1e-4   0E+999999  -> 1E-1003     Subnormal

fmax2819 fma  3E-999       1e-5   0E+999999  -> 0E-1003     Underflow Subnormal Inexact Rounded Clamped

fmax2820 fma  5E-999       1e-5   0E+999999  -> 0E-1003     Underflow Subnormal Inexact Rounded Clamped

fmax2821 fma  7E-999       1e-5   0E+999999  -> 1E-1003     Underflow Subnormal Inexact Rounded

fmax2822 fma  9E-999       1e-5   0E+999999  -> 1E-1003     Underflow Subnormal Inexact Rounded

fmax2823 fma  9.9E-999     1e-5   0E+999999  -> 1E-1003     Underflow Subnormal Inexact Rounded



fmax2824 fma  1E-999      -1e-4   0E+999999  -> -1E-1003    Subnormal

fmax2825 fma  3E-999      -1e-5   0E+999999  -> -0E-1003    Underflow Subnormal Inexact Rounded Clamped

fmax2826 fma -5E-999       1e-5   0E+999999  -> -0E-1003    Underflow Subnormal Inexact Rounded Clamped

fmax2827 fma  7E-999      -1e-5   0E+999999  -> -1E-1003    Underflow Subnormal Inexact Rounded

fmax2828 fma -9E-999       1e-5   0E+999999  -> -1E-1003    Underflow Subnormal Inexact Rounded

fmax2829 fma  9.9E-999    -1e-5   0E+999999  -> -1E-1003    Underflow Subnormal Inexact Rounded

fmax2830 fma  3.0E-999    -1e-5   0E+999999  -> -0E-1003    Underflow Subnormal Inexact Rounded Clamped



fmax2831 fma  1.0E-501     1e-501  0E+999999  -> 1.0E-1002   Subnormal

fmax2832 fma  2.0E-501     2e-501  0E+999999  -> 4.0E-1002   Subnormal

fmax2833 fma  4.0E-501     4e-501  0E+999999  -> 1.60E-1001  Subnormal

fmax2834 fma 10.0E-501    10e-501  0E+999999  -> 1.000E-1000 Subnormal

fmax2835 fma 30.0E-501    30e-501  0E+999999  -> 9.000E-1000 Subnormal

fmax2836 fma 40.0E-501    40e-501  0E+999999  -> 1.6000E-999



-- squares

fmax2840 fma  1E-502       1e-502  0E+999999  -> 0E-1003     Underflow Subnormal Inexact Rounded Clamped

fmax2841 fma  1E-501       1e-501  0E+999999  -> 1E-1002     Subnormal

fmax2842 fma  2E-501       2e-501  0E+999999  -> 4E-1002     Subnormal

fmax2843 fma  4E-501       4e-501  0E+999999  -> 1.6E-1001   Subnormal

fmax2844 fma 10E-501      10e-501  0E+999999  -> 1.00E-1000  Subnormal

fmax2845 fma 30E-501      30e-501  0E+999999  -> 9.00E-1000  Subnormal

fmax2846 fma 40E-501      40e-501  0E+999999  -> 1.600E-999



-- cubes

fmax2850 fma  1E-670     1e-335  0E+999999  -> 0E-1003    Underflow Subnormal Inexact Rounded Clamped

fmax2851 fma  1E-668     1e-334  0E+999999  -> 1E-1002    Subnormal

fmax2852 fma  4E-668     2e-334  0E+999999  -> 8E-1002    Subnormal

fmax2853 fma  9E-668     3e-334  0E+999999  -> 2.7E-1001  Subnormal

fmax2854 fma 16E-668     4e-334  0E+999999  -> 6.4E-1001  Subnormal

fmax2855 fma 25E-668     5e-334  0E+999999  -> 1.25E-1000 Subnormal

fmax2856 fma 10E-668   100e-334  0E+999999  -> 1.000E-999



-- test derived from result of 0.099 ** 999 at 15 digits with unlimited exponent

precision: 19

fmax2860 fma  6636851557994578716E-520 6636851557994578716E-520  0E+999999  -> 4.40477986028551E-1003 Underflow Subnormal Inexact Rounded



-- Long operand overflow may be a different path

precision: 3

maxExponent: 999999

minexponent: -999999

fmax2870 fma 1  9.999E+999999    0E+999999  ->  Infinity Inexact Overflow Rounded

fmax2871 fma 1 -9.999E+999999    0E+999999  -> -Infinity Inexact Overflow Rounded

fmax2872 fma    9.999E+999999 1  0E+999999  ->  Infinity Inexact Overflow Rounded

fmax2873 fma   -9.999E+999999 1  0E+999999  -> -Infinity Inexact Overflow Rounded



-- check for double-rounded subnormals

precision:   5

maxexponent: 79

minexponent: -79

fmax2881 fma  1.2347E-40  1.2347E-40   0E+999999  ->  1.524E-80  Inexact Rounded Subnormal Underflow

fmax2882 fma  1.234E-40  1.234E-40     0E+999999  ->  1.523E-80  Inexact Rounded Subnormal Underflow

fmax2883 fma  1.23E-40   1.23E-40      0E+999999  ->  1.513E-80  Inexact Rounded Subnormal Underflow

fmax2884 fma  1.2E-40    1.2E-40       0E+999999  ->  1.44E-80   Subnormal

fmax2885 fma  1.2E-40    1.2E-41       0E+999999  ->  1.44E-81   Subnormal

fmax2886 fma  1.2E-40    1.2E-42       0E+999999  ->  1.4E-82    Subnormal Inexact Rounded Underflow

fmax2887 fma  1.2E-40    1.3E-42       0E+999999  ->  1.6E-82    Subnormal Inexact Rounded Underflow

fmax2888 fma  1.3E-40    1.3E-42       0E+999999  ->  1.7E-82    Subnormal Inexact Rounded Underflow

fmax2889 fma  1.3E-40    1.3E-43       0E+999999  ->    2E-83    Subnormal Inexact Rounded Underflow

fmax2890 fma  1.3E-41    1.3E-43       0E+999999  ->    0E-83    Clamped Subnormal Inexact Rounded Underflow



fmax2891 fma  1.2345E-39   1.234E-40   0E+999999  ->  1.5234E-79 Inexact Rounded

fmax2892 fma  1.23456E-39  1.234E-40   0E+999999  ->  1.5234E-79 Inexact Rounded

fmax2893 fma  1.2345E-40   1.234E-40   0E+999999  ->  1.523E-80  Inexact Rounded Subnormal Underflow

fmax2894 fma  1.23456E-40  1.234E-40   0E+999999  ->  1.523E-80  Inexact Rounded Subnormal Underflow

fmax2895 fma  1.2345E-41   1.234E-40   0E+999999  ->  1.52E-81   Inexact Rounded Subnormal Underflow

fmax2896 fma  1.23456E-41  1.234E-40   0E+999999  ->  1.52E-81   Inexact Rounded Subnormal Underflow



-- Now explore the case where we get a normal result with Underflow

precision:   16

rounding:    half_up

maxExponent: 384

minExponent: -383



fmax2900 fma  0.3000000000E-191 0.3000000000E-191  0E+999999  -> 9.00000000000000E-384 Subnormal Rounded

fmax2901 fma  0.3000000001E-191 0.3000000001E-191  0E+999999  -> 9.00000000600000E-384 Underflow Inexact Subnormal Rounded

fmax2902 fma  9.999999999999999E-383  0.0999999999999          0E+999999  -> 9.99999999999000E-384 Underflow Inexact Subnormal Rounded

fmax2903 fma  9.999999999999999E-383  0.09999999999999         0E+999999  -> 9.99999999999900E-384 Underflow Inexact Subnormal Rounded

fmax2904 fma  9.999999999999999E-383  0.099999999999999        0E+999999  -> 9.99999999999990E-384 Underflow Inexact Subnormal Rounded

fmax2905 fma  9.999999999999999E-383  0.0999999999999999       0E+999999  -> 9.99999999999999E-384 Underflow Inexact Subnormal Rounded

-- prove operands are exact

fmax2906 fma  9.999999999999999E-383  1                        0E+999999  -> 9.999999999999999E-383

fmax2907 fma                       1  0.09999999999999999      0E+999999  -> 0.09999999999999999

-- the next rounds to Nmin

fmax2908 fma  9.999999999999999E-383  0.09999999999999999      0E+999999  -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded

fmax2909 fma  9.999999999999999E-383  0.099999999999999999     0E+999999  -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded

fmax2910 fma  9.999999999999999E-383  0.0999999999999999999    0E+999999  -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded

fmax2911 fma  9.999999999999999E-383  0.09999999999999999999   0E+999999  -> 1.000000000000000E-383 Underflow Inexact Subnormal Rounded



-- Examples from SQL proposal (Krishna Kulkarni)

precision:   34

rounding:    half_up

maxExponent: 6144

minExponent: -6143

fmax2921  fma 130E-2  120E-2  0E+999999  -> 1.5600

fmax2922  fma 130E-2  12E-1   0E+999999  -> 1.560

fmax2923  fma 130E-2  1E0     0E+999999  -> 1.30



-- Null tests

fmax2990 fma  # 10  0E+999999  -> NaN Invalid_operation

fmax2991 fma 10  #  0E+999999  -> NaN Invalid_operation



-- ADDITION TESTS ------------------------------------------------------

precision:   9

rounding:    half_up

maxExponent: 384

minexponent: -383



-- [first group are 'quick confidence check']

fmax3001 fma  1   1       1       ->  2

fmax3002 fma  1   2       3       ->  5

fmax3003 fma  1   '5.75'  '3.3'   ->  9.05

fmax3004 fma  1   '5'     '-3'    ->  2

fmax3005 fma  1   '-5'    '-3'    ->  -8

fmax3006 fma  1   '-7'    '2.5'   ->  -4.5

fmax3007 fma  1   '0.7'   '0.3'   ->  1.0

fmax3008 fma  1   '1.25'  '1.25'  ->  2.50

fmax3009 fma  1   '1.23456789'  '1.00000000' -> '2.23456789'

fmax3010 fma  1   '1.23456789'  '1.00000011' -> '2.23456800'



fmax3011 fma  1   '0.4444444444'  '0.5555555555' -> '1.00000000' Inexact Rounded

fmax3012 fma  1   '0.4444444440'  '0.5555555555' -> '1.00000000' Inexact Rounded

fmax3013 fma  1   '0.4444444444'  '0.5555555550' -> '0.999999999' Inexact Rounded

fmax3014 fma  1   '0.44444444449'    '0' -> '0.444444444' Inexact Rounded

fmax3015 fma  1   '0.444444444499'   '0' -> '0.444444444' Inexact Rounded

fmax3016 fma  1   '0.4444444444999'  '0' -> '0.444444444' Inexact Rounded

fmax3017 fma  1   '0.4444444445000'  '0' -> '0.444444445' Inexact Rounded

fmax3018 fma  1   '0.4444444445001'  '0' -> '0.444444445' Inexact Rounded

fmax3019 fma  1   '0.444444444501'   '0' -> '0.444444445' Inexact Rounded

fmax3020 fma  1   '0.44444444451'    '0' -> '0.444444445' Inexact Rounded



fmax3021 fma  1   0 1 -> 1

fmax3022 fma  1   1 1 -> 2

fmax3023 fma  1   2 1 -> 3

fmax3024 fma  1   3 1 -> 4

fmax3025 fma  1   4 1 -> 5

fmax3026 fma  1   5 1 -> 6

fmax3027 fma  1   6 1 -> 7

fmax3028 fma  1   7 1 -> 8

fmax3029 fma  1   8 1 -> 9

fmax3030 fma  1   9 1 -> 10



-- some carrying effects

fmax3031 fma  1   '0.9998'  '0.0000' -> '0.9998'

fmax3032 fma  1   '0.9998'  '0.0001' -> '0.9999'

fmax3033 fma  1   '0.9998'  '0.0002' -> '1.0000'

fmax3034 fma  1   '0.9998'  '0.0003' -> '1.0001'



fmax3035 fma  1   '70'  '10000e+9' -> '1.00000000E+13' Inexact Rounded

fmax3036 fma  1   '700'  '10000e+9' -> '1.00000000E+13' Inexact Rounded

fmax3037 fma  1   '7000'  '10000e+9' -> '1.00000000E+13' Inexact Rounded

fmax3038 fma  1   '70000'  '10000e+9' -> '1.00000001E+13' Inexact Rounded

fmax3039 fma  1   '700000'  '10000e+9' -> '1.00000007E+13' Rounded



-- symmetry:

fmax3040 fma  1   '10000e+9'  '70' -> '1.00000000E+13' Inexact Rounded

fmax3041 fma  1   '10000e+9'  '700' -> '1.00000000E+13' Inexact Rounded

fmax3042 fma  1   '10000e+9'  '7000' -> '1.00000000E+13' Inexact Rounded

fmax3044 fma  1   '10000e+9'  '70000' -> '1.00000001E+13' Inexact Rounded

fmax3045 fma  1   '10000e+9'  '700000' -> '1.00000007E+13' Rounded



-- same, higher precision

precision: 15

fmax3046 fma  1   '10000e+9'  '7' -> '10000000000007'

fmax3047 fma  1   '10000e+9'  '70' -> '10000000000070'

fmax3048 fma  1   '10000e+9'  '700' -> '10000000000700'

fmax3049 fma  1   '10000e+9'  '7000' -> '10000000007000'

fmax3050 fma  1   '10000e+9'  '70000' -> '10000000070000'

fmax3051 fma  1   '10000e+9'  '700000' -> '10000000700000'

fmax3052 fma  1   '10000e+9'  '7000000' -> '10000007000000'



-- examples from decarith

fmax3053 fma  1   '12' '7.00' -> '19.00'

fmax3054 fma  1   '1.3' '-1.07' -> '0.23'

fmax3055 fma  1   '1.3' '-1.30' -> '0.00'

fmax3056 fma  1   '1.3' '-2.07' -> '-0.77'

fmax3057 fma  1   '1E+2' '1E+4' -> '1.01E+4'



-- zero preservation

precision: 6

fmax3060 fma  1   '10000e+9'  '70000' -> '1.00000E+13' Inexact Rounded

fmax3061 fma  1   1 '0.0001' -> '1.0001'

fmax3062 fma  1   1 '0.00001' -> '1.00001'

fmax3063 fma  1   1 '0.000001' -> '1.00000' Inexact Rounded

fmax3064 fma  1   1 '0.0000001' -> '1.00000' Inexact Rounded

fmax3065 fma  1   1 '0.00000001' -> '1.00000' Inexact Rounded



-- some funny zeros [in case of bad signum]

fmax3070 fma  1   1  0    -> 1

fmax3071 fma  1   1 0.    -> 1

fmax3072 fma  1   1  .0   -> 1.0

fmax3073 fma  1   1 0.0   -> 1.0

fmax3074 fma  1   1 0.00  -> 1.00

fmax3075 fma  1    0  1   -> 1

fmax3076 fma  1   0.  1   -> 1

fmax3077 fma  1    .0 1   -> 1.0

fmax3078 fma  1   0.0 1   -> 1.0

fmax3079 fma  1   0.00 1  -> 1.00



precision: 9



-- some carries

fmax3080 fma  1   999999998 1  -> 999999999

fmax3081 fma  1   999999999 1  -> 1.00000000E+9 Rounded

fmax3082 fma  1    99999999 1  -> 100000000

fmax3083 fma  1     9999999 1  -> 10000000

fmax3084 fma  1      999999 1  -> 1000000

fmax3085 fma  1       99999 1  -> 100000

fmax3086 fma  1        9999 1  -> 10000

fmax3087 fma  1         999 1  -> 1000

fmax3088 fma  1          99 1  -> 100

fmax3089 fma  1           9 1  -> 10





-- more LHS swaps

fmax3090 fma  1   '-56267E-10'   0 ->  '-0.0000056267'

fmax3091 fma  1   '-56267E-6'    0 ->  '-0.056267'

fmax3092 fma  1   '-56267E-5'    0 ->  '-0.56267'

fmax3093 fma  1   '-56267E-4'    0 ->  '-5.6267'

fmax3094 fma  1   '-56267E-3'    0 ->  '-56.267'

fmax3095 fma  1   '-56267E-2'    0 ->  '-562.67'

fmax3096 fma  1   '-56267E-1'    0 ->  '-5626.7'

fmax3097 fma  1   '-56267E-0'    0 ->  '-56267'

fmax3098 fma  1   '-5E-10'       0 ->  '-5E-10'

fmax3099 fma  1   '-5E-7'        0 ->  '-5E-7'

fmax3100 fma  1   '-5E-6'        0 ->  '-0.000005'

fmax3101 fma  1   '-5E-5'        0 ->  '-0.00005'

fmax3102 fma  1   '-5E-4'        0 ->  '-0.0005'

fmax3103 fma  1   '-5E-1'        0 ->  '-0.5'

fmax3104 fma  1   '-5E0'         0 ->  '-5'

fmax3105 fma  1   '-5E1'         0 ->  '-50'

fmax3106 fma  1   '-5E5'         0 ->  '-500000'

fmax3107 fma  1   '-5E8'         0 ->  '-500000000'

fmax3108 fma  1   '-5E9'         0 ->  '-5.00000000E+9'   Rounded

fmax3109 fma  1   '-5E10'        0 ->  '-5.00000000E+10'  Rounded

fmax3110 fma  1   '-5E11'        0 ->  '-5.00000000E+11'  Rounded

fmax3111 fma  1   '-5E100'       0 ->  '-5.00000000E+100' Rounded



-- more RHS swaps

fmax3113 fma  1   0  '-56267E-10' ->  '-0.0000056267'

fmax3114 fma  1   0  '-56267E-6'  ->  '-0.056267'

fmax3116 fma  1   0  '-56267E-5'  ->  '-0.56267'

fmax3117 fma  1   0  '-56267E-4'  ->  '-5.6267'

fmax3119 fma  1   0  '-56267E-3'  ->  '-56.267'

fmax3120 fma  1   0  '-56267E-2'  ->  '-562.67'

fmax3121 fma  1   0  '-56267E-1'  ->  '-5626.7'

fmax3122 fma  1   0  '-56267E-0'  ->  '-56267'

fmax3123 fma  1   0  '-5E-10'     ->  '-5E-10'

fmax3124 fma  1   0  '-5E-7'      ->  '-5E-7'

fmax3125 fma  1   0  '-5E-6'      ->  '-0.000005'

fmax3126 fma  1   0  '-5E-5'      ->  '-0.00005'

fmax3127 fma  1   0  '-5E-4'      ->  '-0.0005'

fmax3128 fma  1   0  '-5E-1'      ->  '-0.5'

fmax3129 fma  1   0  '-5E0'       ->  '-5'

fmax3130 fma  1   0  '-5E1'       ->  '-50'

fmax3131 fma  1   0  '-5E5'       ->  '-500000'

fmax3132 fma  1   0  '-5E8'       ->  '-500000000'

fmax3133 fma  1   0  '-5E9'       ->  '-5.00000000E+9'    Rounded

fmax3134 fma  1   0  '-5E10'      ->  '-5.00000000E+10'   Rounded

fmax3135 fma  1   0  '-5E11'      ->  '-5.00000000E+11'   Rounded

fmax3136 fma  1   0  '-5E100'     ->  '-5.00000000E+100'  Rounded



-- related

fmax3137 fma  1    1  '0E-12'      ->  '1.00000000'  Rounded

fmax3138 fma  1   -1  '0E-12'      ->  '-1.00000000' Rounded

fmax3139 fma  1   '0E-12' 1        ->  '1.00000000'  Rounded

fmax3140 fma  1   '0E-12' -1       ->  '-1.00000000' Rounded

fmax3141 fma  1   1E+4    0.0000   ->  '10000.0000'

fmax3142 fma  1   1E+4    0.00000  ->  '10000.0000'  Rounded

fmax3143 fma  1   0.000   1E+5     ->  '100000.000'

fmax3144 fma  1   0.0000  1E+5     ->  '100000.000'  Rounded



-- [some of the next group are really constructor tests]

fmax3146 fma  1   '00.0'  0       ->  '0.0'

fmax3147 fma  1   '0.00'  0       ->  '0.00'

fmax3148 fma  1    0      '0.00'  ->  '0.00'

fmax3149 fma  1    0      '00.0'  ->  '0.0'

fmax3150 fma  1   '00.0'  '0.00'  ->  '0.00'

fmax3151 fma  1   '0.00'  '00.0'  ->  '0.00'

fmax3152 fma  1   '3'     '.3'    ->  '3.3'

fmax3153 fma  1   '3.'    '.3'    ->  '3.3'

fmax3154 fma  1   '3.0'   '.3'    ->  '3.3'

fmax3155 fma  1   '3.00'  '.3'    ->  '3.30'

fmax3156 fma  1   '3'     '3'     ->  '6'

fmax3157 fma  1   '3'     '+3'    ->  '6'

fmax3158 fma  1   '3'     '-3'    ->  '0'

fmax3159 fma  1   '0.3'   '-0.3'  ->  '0.0'

fmax3160 fma  1   '0.03'  '-0.03' ->  '0.00'



-- try borderline precision, with carries, etc.

precision: 15

fmax3161 fma  1   '1E+12' '-1'    -> '999999999999'

fmax3162 fma  1   '1E+12'  '1.11' -> '1000000000001.11'

fmax3163 fma  1   '1.11'  '1E+12' -> '1000000000001.11'

fmax3164 fma  1   '-1'    '1E+12' -> '999999999999'

fmax3165 fma  1   '7E+12' '-1'    -> '6999999999999'

fmax3166 fma  1   '7E+12'  '1.11' -> '7000000000001.11'

fmax3167 fma  1   '1.11'  '7E+12' -> '7000000000001.11'

fmax3168 fma  1   '-1'    '7E+12' -> '6999999999999'



--             123456789012345      123456789012345      1 23456789012345

fmax3170 fma  1   '0.444444444444444'  '0.555555555555563' -> '1.00000000000001' Inexact Rounded

fmax3171 fma  1   '0.444444444444444'  '0.555555555555562' -> '1.00000000000001' Inexact Rounded

fmax3172 fma  1   '0.444444444444444'  '0.555555555555561' -> '1.00000000000001' Inexact Rounded

fmax3173 fma  1   '0.444444444444444'  '0.555555555555560' -> '1.00000000000000' Inexact Rounded

fmax3174 fma  1   '0.444444444444444'  '0.555555555555559' -> '1.00000000000000' Inexact Rounded

fmax3175 fma  1   '0.444444444444444'  '0.555555555555558' -> '1.00000000000000' Inexact Rounded

fmax3176 fma  1   '0.444444444444444'  '0.555555555555557' -> '1.00000000000000' Inexact Rounded

fmax3177 fma  1   '0.444444444444444'  '0.555555555555556' -> '1.00000000000000' Rounded

fmax3178 fma  1   '0.444444444444444'  '0.555555555555555' -> '0.999999999999999'

fmax3179 fma  1   '0.444444444444444'  '0.555555555555554' -> '0.999999999999998'

fmax3180 fma  1   '0.444444444444444'  '0.555555555555553' -> '0.999999999999997'

fmax3181 fma  1   '0.444444444444444'  '0.555555555555552' -> '0.999999999999996'

fmax3182 fma  1   '0.444444444444444'  '0.555555555555551' -> '0.999999999999995'

fmax3183 fma  1   '0.444444444444444'  '0.555555555555550' -> '0.999999999999994'



-- and some more, including residue effects and different roundings

precision: 9

rounding: half_up

fmax3200 fma  1   '123456789' 0             -> '123456789'

fmax3201 fma  1   '123456789' 0.000000001   -> '123456789' Inexact Rounded

fmax3202 fma  1   '123456789' 0.000001      -> '123456789' Inexact Rounded

fmax3203 fma  1   '123456789' 0.1           -> '123456789' Inexact Rounded

fmax3204 fma  1   '123456789' 0.4           -> '123456789' Inexact Rounded

fmax3205 fma  1   '123456789' 0.49          -> '123456789' Inexact Rounded

fmax3206 fma  1   '123456789' 0.499999      -> '123456789' Inexact Rounded

fmax3207 fma  1   '123456789' 0.499999999   -> '123456789' Inexact Rounded

fmax3208 fma  1   '123456789' 0.5           -> '123456790' Inexact Rounded

fmax3209 fma  1   '123456789' 0.500000001   -> '123456790' Inexact Rounded

fmax3210 fma  1   '123456789' 0.500001      -> '123456790' Inexact Rounded

fmax3211 fma  1   '123456789' 0.51          -> '123456790' Inexact Rounded

fmax3212 fma  1   '123456789' 0.6           -> '123456790' Inexact Rounded

fmax3213 fma  1   '123456789' 0.9           -> '123456790' Inexact Rounded

fmax3214 fma  1   '123456789' 0.99999       -> '123456790' Inexact Rounded

fmax3215 fma  1   '123456789' 0.999999999   -> '123456790' Inexact Rounded

fmax3216 fma  1   '123456789' 1             -> '123456790'

fmax3217 fma  1   '123456789' 1.000000001   -> '123456790' Inexact Rounded

fmax3218 fma  1   '123456789' 1.00001       -> '123456790' Inexact Rounded

fmax3219 fma  1   '123456789' 1.1           -> '123456790' Inexact Rounded



rounding: half_even

fmax3220 fma  1   '123456789' 0             -> '123456789'

fmax3221 fma  1   '123456789' 0.000000001   -> '123456789' Inexact Rounded

fmax3222 fma  1   '123456789' 0.000001      -> '123456789' Inexact Rounded

fmax3223 fma  1   '123456789' 0.1           -> '123456789' Inexact Rounded

fmax3224 fma  1   '123456789' 0.4           -> '123456789' Inexact Rounded

fmax3225 fma  1   '123456789' 0.49          -> '123456789' Inexact Rounded

fmax3226 fma  1   '123456789' 0.499999      -> '123456789' Inexact Rounded

fmax3227 fma  1   '123456789' 0.499999999   -> '123456789' Inexact Rounded

fmax3228 fma  1   '123456789' 0.5           -> '123456790' Inexact Rounded

fmax3229 fma  1   '123456789' 0.500000001   -> '123456790' Inexact Rounded

fmax3230 fma  1   '123456789' 0.500001      -> '123456790' Inexact Rounded

fmax3231 fma  1   '123456789' 0.51          -> '123456790' Inexact Rounded

fmax3232 fma  1   '123456789' 0.6           -> '123456790' Inexact Rounded

fmax3233 fma  1   '123456789' 0.9           -> '123456790' Inexact Rounded

fmax3234 fma  1   '123456789' 0.99999       -> '123456790' Inexact Rounded

fmax3235 fma  1   '123456789' 0.999999999   -> '123456790' Inexact Rounded

fmax3236 fma  1   '123456789' 1             -> '123456790'

fmax3237 fma  1   '123456789' 1.00000001    -> '123456790' Inexact Rounded

fmax3238 fma  1   '123456789' 1.00001       -> '123456790' Inexact Rounded

fmax3239 fma  1   '123456789' 1.1           -> '123456790' Inexact Rounded

-- critical few with even bottom digit...

fmax3240 fma  1   '123456788' 0.499999999   -> '123456788' Inexact Rounded

fmax3241 fma  1   '123456788' 0.5           -> '123456788' Inexact Rounded

fmax3242 fma  1   '123456788' 0.500000001   -> '123456789' Inexact Rounded



rounding: down

fmax3250 fma  1   '123456789' 0             -> '123456789'

fmax3251 fma  1   '123456789' 0.000000001   -> '123456789' Inexact Rounded

fmax3252 fma  1   '123456789' 0.000001      -> '123456789' Inexact Rounded

fmax3253 fma  1   '123456789' 0.1           -> '123456789' Inexact Rounded

fmax3254 fma  1   '123456789' 0.4           -> '123456789' Inexact Rounded

fmax3255 fma  1   '123456789' 0.49          -> '123456789' Inexact Rounded

fmax3256 fma  1   '123456789' 0.499999      -> '123456789' Inexact Rounded

fmax3257 fma  1   '123456789' 0.499999999   -> '123456789' Inexact Rounded

fmax3258 fma  1   '123456789' 0.5           -> '123456789' Inexact Rounded

fmax3259 fma  1   '123456789' 0.500000001   -> '123456789' Inexact Rounded

fmax3260 fma  1   '123456789' 0.500001      -> '123456789' Inexact Rounded

fmax3261 fma  1   '123456789' 0.51          -> '123456789' Inexact Rounded

fmax3262 fma  1   '123456789' 0.6           -> '123456789' Inexact Rounded

fmax3263 fma  1   '123456789' 0.9           -> '123456789' Inexact Rounded

fmax3264 fma  1   '123456789' 0.99999       -> '123456789' Inexact Rounded

fmax3265 fma  1   '123456789' 0.999999999   -> '123456789' Inexact Rounded

fmax3266 fma  1   '123456789' 1             -> '123456790'

fmax3267 fma  1   '123456789' 1.00000001    -> '123456790' Inexact Rounded

fmax3268 fma  1   '123456789' 1.00001       -> '123456790' Inexact Rounded

fmax3269 fma  1   '123456789' 1.1           -> '123456790' Inexact Rounded



-- input preparation tests (operands should not be rounded)

precision: 3

rounding: half_up



fmax3270 fma  1   '12345678900000'  9999999999999 ->  '2.23E+13' Inexact Rounded

fmax3271 fma  1    '9999999999999' 12345678900000 ->  '2.23E+13' Inexact Rounded



fmax3272 fma  1   '12E+3'  '3444'   ->  '1.54E+4' Inexact Rounded

fmax3273 fma  1   '12E+3'  '3446'   ->  '1.54E+4' Inexact Rounded

fmax3274 fma  1   '12E+3'  '3449.9' ->  '1.54E+4' Inexact Rounded

fmax3275 fma  1   '12E+3'  '3450.0' ->  '1.55E+4' Inexact Rounded

fmax3276 fma  1   '12E+3'  '3450.1' ->  '1.55E+4' Inexact Rounded

fmax3277 fma  1   '12E+3'  '3454'   ->  '1.55E+4' Inexact Rounded

fmax3278 fma  1   '12E+3'  '3456'   ->  '1.55E+4' Inexact Rounded



fmax3281 fma  1   '3444'   '12E+3'  ->  '1.54E+4' Inexact Rounded

fmax3282 fma  1   '3446'   '12E+3'  ->  '1.54E+4' Inexact Rounded

fmax3283 fma  1   '3449.9' '12E+3'  ->  '1.54E+4' Inexact Rounded

fmax3284 fma  1   '3450.0' '12E+3'  ->  '1.55E+4' Inexact Rounded

fmax3285 fma  1   '3450.1' '12E+3'  ->  '1.55E+4' Inexact Rounded

fmax3286 fma  1   '3454'   '12E+3'  ->  '1.55E+4' Inexact Rounded

fmax3287 fma  1   '3456'   '12E+3'  ->  '1.55E+4' Inexact Rounded



rounding: half_down

fmax3291 fma  1   '3444'   '12E+3'  ->  '1.54E+4' Inexact Rounded

fmax3292 fma  1   '3446'   '12E+3'  ->  '1.54E+4' Inexact Rounded

fmax3293 fma  1   '3449.9' '12E+3'  ->  '1.54E+4' Inexact Rounded

fmax3294 fma  1   '3450.0' '12E+3'  ->  '1.54E+4' Inexact Rounded

fmax3295 fma  1   '3450.1' '12E+3'  ->  '1.55E+4' Inexact Rounded

fmax3296 fma  1   '3454'   '12E+3'  ->  '1.55E+4' Inexact Rounded

fmax3297 fma  1   '3456'   '12E+3'  ->  '1.55E+4' Inexact Rounded



-- 1 in last place tests

rounding: half_up

fmax3301 fma  1    -1   1      ->   0

fmax3302 fma  1     0   1      ->   1

fmax3303 fma  1     1   1      ->   2

fmax3304 fma  1    12   1      ->  13

fmax3305 fma  1    98   1      ->  99

fmax3306 fma  1    99   1      -> 100

fmax3307 fma  1   100   1      -> 101

fmax3308 fma  1   101   1      -> 102

fmax3309 fma  1    -1  -1      ->  -2

fmax3310 fma  1     0  -1      ->  -1

fmax3311 fma  1     1  -1      ->   0

fmax3312 fma  1    12  -1      ->  11

fmax3313 fma  1    98  -1      ->  97

fmax3314 fma  1    99  -1      ->  98

fmax3315 fma  1   100  -1      ->  99

fmax3316 fma  1   101  -1      -> 100



fmax3321 fma  1   -0.01  0.01    ->  0.00

fmax3322 fma  1    0.00  0.01    ->  0.01

fmax3323 fma  1    0.01  0.01    ->  0.02

fmax3324 fma  1    0.12  0.01    ->  0.13

fmax3325 fma  1    0.98  0.01    ->  0.99

fmax3326 fma  1    0.99  0.01    ->  1.00

fmax3327 fma  1    1.00  0.01    ->  1.01

fmax3328 fma  1    1.01  0.01    ->  1.02

fmax3329 fma  1   -0.01 -0.01    -> -0.02

fmax3330 fma  1    0.00 -0.01    -> -0.01

fmax3331 fma  1    0.01 -0.01    ->  0.00

fmax3332 fma  1    0.12 -0.01    ->  0.11

fmax3333 fma  1    0.98 -0.01    ->  0.97

fmax3334 fma  1    0.99 -0.01    ->  0.98

fmax3335 fma  1    1.00 -0.01    ->  0.99

fmax3336 fma  1    1.01 -0.01    ->  1.00



-- some more cases where fma  1  ing 0 affects the coefficient

precision: 9

fmax3340 fma  1   1E+3    0    ->         1000

fmax3341 fma  1   1E+8    0    ->    100000000

fmax3342 fma  1   1E+9    0    ->   1.00000000E+9   Rounded

fmax3343 fma  1   1E+10   0    ->   1.00000000E+10  Rounded

-- which simply follow from these cases ...

fmax3344 fma  1   1E+3    1    ->         1001

fmax3345 fma  1   1E+8    1    ->    100000001

fmax3346 fma  1   1E+9    1    ->   1.00000000E+9   Inexact Rounded

fmax3347 fma  1   1E+10   1    ->   1.00000000E+10  Inexact Rounded

fmax3348 fma  1   1E+3    7    ->         1007

fmax3349 fma  1   1E+8    7    ->    100000007

fmax3350 fma  1   1E+9    7    ->   1.00000001E+9   Inexact Rounded

fmax3351 fma  1   1E+10   7    ->   1.00000000E+10  Inexact Rounded



-- tryzeros cases

precision:   7

rounding:    half_up

maxExponent: 92

minexponent: -92

fmax3361  fma  1   0E+50 10000E+1  -> 1.0000E+5

fmax3362  fma  1   10000E+1 0E-50  -> 100000.0  Rounded

fmax3363  fma  1   10000E+1 10000E-50  -> 100000.0  Rounded Inexact

fmax3364  fma  1   9.999999E+92 -9.999999E+92 -> 0E+86



-- a curiosity from JSR 13 testing

rounding:    half_down

precision:   10

fmax3370 fma  1   99999999 81512 -> 100081511

precision:      6

fmax3371 fma  1   99999999 81512 -> 1.00082E+8 Rounded Inexact

rounding:    half_up

precision:   10

fmax3372 fma  1   99999999 81512 -> 100081511

precision:      6

fmax3373 fma  1   99999999 81512 -> 1.00082E+8 Rounded Inexact

rounding:    half_even

precision:   10

fmax3374 fma  1   99999999 81512 -> 100081511

precision:      6

fmax3375 fma  1   99999999 81512 -> 1.00082E+8 Rounded Inexact



-- ulp replacement tests

precision: 9

maxexponent: 999999

minexponent: -999999

fmax3400 fma  1     1   77e-7       ->  1.0000077

fmax3401 fma  1     1   77e-8       ->  1.00000077

fmax3402 fma  1     1   77e-9       ->  1.00000008 Inexact Rounded

fmax3403 fma  1     1   77e-10      ->  1.00000001 Inexact Rounded

fmax3404 fma  1     1   77e-11      ->  1.00000000 Inexact Rounded

fmax3405 fma  1     1   77e-12      ->  1.00000000 Inexact Rounded

fmax3406 fma  1     1   77e-999     ->  1.00000000 Inexact Rounded

fmax3407 fma  1     1   77e-999999  ->  1.00000000 Inexact Rounded



fmax3410 fma  1    10   77e-7       ->  10.0000077

fmax3411 fma  1    10   77e-8       ->  10.0000008 Inexact Rounded

fmax3412 fma  1    10   77e-9       ->  10.0000001 Inexact Rounded

fmax3413 fma  1    10   77e-10      ->  10.0000000 Inexact Rounded

fmax3414 fma  1    10   77e-11      ->  10.0000000 Inexact Rounded

fmax3415 fma  1    10   77e-12      ->  10.0000000 Inexact Rounded

fmax3416 fma  1    10   77e-999     ->  10.0000000 Inexact Rounded

fmax3417 fma  1    10   77e-999999  ->  10.0000000 Inexact Rounded



fmax3420 fma  1    77e-7        1   ->  1.0000077

fmax3421 fma  1    77e-8        1   ->  1.00000077

fmax3422 fma  1    77e-9        1   ->  1.00000008 Inexact Rounded

fmax3423 fma  1    77e-10       1   ->  1.00000001 Inexact Rounded

fmax3424 fma  1    77e-11       1   ->  1.00000000 Inexact Rounded

fmax3425 fma  1    77e-12       1   ->  1.00000000 Inexact Rounded

fmax3426 fma  1    77e-999      1   ->  1.00000000 Inexact Rounded

fmax3427 fma  1    77e-999999   1   ->  1.00000000 Inexact Rounded



fmax3430 fma  1    77e-7       10   ->  10.0000077

fmax3431 fma  1    77e-8       10   ->  10.0000008 Inexact Rounded

fmax3432 fma  1    77e-9       10   ->  10.0000001 Inexact Rounded

fmax3433 fma  1    77e-10      10   ->  10.0000000 Inexact Rounded

fmax3434 fma  1    77e-11      10   ->  10.0000000 Inexact Rounded

fmax3435 fma  1    77e-12      10   ->  10.0000000 Inexact Rounded

fmax3436 fma  1    77e-999     10   ->  10.0000000 Inexact Rounded

fmax3437 fma  1    77e-999999  10   ->  10.0000000 Inexact Rounded



-- negative ulps

fmax3440 fma  1     1   -77e-7       ->  0.9999923

fmax3441 fma  1     1   -77e-8       ->  0.99999923

fmax3442 fma  1     1   -77e-9       ->  0.999999923

fmax3443 fma  1     1   -77e-10      ->  0.999999992 Inexact Rounded

fmax3444 fma  1     1   -77e-11      ->  0.999999999 Inexact Rounded

fmax3445 fma  1     1   -77e-12      ->  1.00000000 Inexact Rounded

fmax3446 fma  1     1   -77e-999     ->  1.00000000 Inexact Rounded

fmax3447 fma  1     1   -77e-999999  ->  1.00000000 Inexact Rounded



fmax3450 fma  1    10   -77e-7       ->   9.9999923

fmax3451 fma  1    10   -77e-8       ->   9.99999923

fmax3452 fma  1    10   -77e-9       ->   9.99999992 Inexact Rounded

fmax3453 fma  1    10   -77e-10      ->   9.99999999 Inexact Rounded

fmax3454 fma  1    10   -77e-11      ->  10.0000000 Inexact Rounded

fmax3455 fma  1    10   -77e-12      ->  10.0000000 Inexact Rounded

fmax3456 fma  1    10   -77e-999     ->  10.0000000 Inexact Rounded

fmax3457 fma  1    10   -77e-999999  ->  10.0000000 Inexact Rounded



fmax3460 fma  1    -77e-7        1   ->  0.9999923

fmax3461 fma  1    -77e-8        1   ->  0.99999923

fmax3462 fma  1    -77e-9        1   ->  0.999999923

fmax3463 fma  1    -77e-10       1   ->  0.999999992 Inexact Rounded

fmax3464 fma  1    -77e-11       1   ->  0.999999999 Inexact Rounded

fmax3465 fma  1    -77e-12       1   ->  1.00000000 Inexact Rounded

fmax3466 fma  1    -77e-999      1   ->  1.00000000 Inexact Rounded

fmax3467 fma  1    -77e-999999   1   ->  1.00000000 Inexact Rounded



fmax3470 fma  1    -77e-7       10   ->   9.9999923

fmax3471 fma  1    -77e-8       10   ->   9.99999923

fmax3472 fma  1    -77e-9       10   ->   9.99999992 Inexact Rounded

fmax3473 fma  1    -77e-10      10   ->   9.99999999 Inexact Rounded

fmax3474 fma  1    -77e-11      10   ->  10.0000000 Inexact Rounded

fmax3475 fma  1    -77e-12      10   ->  10.0000000 Inexact Rounded

fmax3476 fma  1    -77e-999     10   ->  10.0000000 Inexact Rounded

fmax3477 fma  1    -77e-999999  10   ->  10.0000000 Inexact Rounded



-- negative ulps

fmax3480 fma  1    -1    77e-7       ->  -0.9999923

fmax3481 fma  1    -1    77e-8       ->  -0.99999923

fmax3482 fma  1    -1    77e-9       ->  -0.999999923

fmax3483 fma  1    -1    77e-10      ->  -0.999999992 Inexact Rounded

fmax3484 fma  1    -1    77e-11      ->  -0.999999999 Inexact Rounded

fmax3485 fma  1    -1    77e-12      ->  -1.00000000 Inexact Rounded

fmax3486 fma  1    -1    77e-999     ->  -1.00000000 Inexact Rounded

fmax3487 fma  1    -1    77e-999999  ->  -1.00000000 Inexact Rounded



fmax3490 fma  1   -10    77e-7       ->   -9.9999923

fmax3491 fma  1   -10    77e-8       ->   -9.99999923

fmax3492 fma  1   -10    77e-9       ->   -9.99999992 Inexact Rounded

fmax3493 fma  1   -10    77e-10      ->   -9.99999999 Inexact Rounded

fmax3494 fma  1   -10    77e-11      ->  -10.0000000 Inexact Rounded

fmax3495 fma  1   -10    77e-12      ->  -10.0000000 Inexact Rounded

fmax3496 fma  1   -10    77e-999     ->  -10.0000000 Inexact Rounded

fmax3497 fma  1   -10    77e-999999  ->  -10.0000000 Inexact Rounded



fmax3500 fma  1     77e-7       -1   ->  -0.9999923

fmax3501 fma  1     77e-8       -1   ->  -0.99999923

fmax3502 fma  1     77e-9       -1   ->  -0.999999923

fmax3503 fma  1     77e-10      -1   ->  -0.999999992 Inexact Rounded

fmax3504 fma  1     77e-11      -1   ->  -0.999999999 Inexact Rounded

fmax3505 fma  1     77e-12      -1   ->  -1.00000000 Inexact Rounded

fmax3506 fma  1     77e-999     -1   ->  -1.00000000 Inexact Rounded

fmax3507 fma  1     77e-999999  -1   ->  -1.00000000 Inexact Rounded



fmax3510 fma  1     77e-7       -10  ->   -9.9999923

fmax3511 fma  1     77e-8       -10  ->   -9.99999923

fmax3512 fma  1     77e-9       -10  ->   -9.99999992 Inexact Rounded

fmax3513 fma  1     77e-10      -10  ->   -9.99999999 Inexact Rounded

fmax3514 fma  1     77e-11      -10  ->  -10.0000000 Inexact Rounded

fmax3515 fma  1     77e-12      -10  ->  -10.0000000 Inexact Rounded

fmax3516 fma  1     77e-999     -10  ->  -10.0000000 Inexact Rounded

fmax3517 fma  1     77e-999999  -10  ->  -10.0000000 Inexact Rounded





-- long operands

maxexponent: 999

minexponent: -999

precision: 9

fmax3521 fma  1   12345678000 0 -> 1.23456780E+10 Rounded

fmax3522 fma  1   0 12345678000 -> 1.23456780E+10 Rounded

fmax3523 fma  1   1234567800  0 -> 1.23456780E+9 Rounded

fmax3524 fma  1   0 1234567800  -> 1.23456780E+9 Rounded

fmax3525 fma  1   1234567890  0 -> 1.23456789E+9 Rounded

fmax3526 fma  1   0 1234567890  -> 1.23456789E+9 Rounded

fmax3527 fma  1   1234567891  0 -> 1.23456789E+9 Inexact Rounded

fmax3528 fma  1   0 1234567891  -> 1.23456789E+9 Inexact Rounded

fmax3529 fma  1   12345678901 0 -> 1.23456789E+10 Inexact Rounded

fmax3530 fma  1   0 12345678901 -> 1.23456789E+10 Inexact Rounded

fmax3531 fma  1   1234567896  0 -> 1.23456790E+9 Inexact Rounded

fmax3532 fma  1   0 1234567896  -> 1.23456790E+9 Inexact Rounded



precision: 15

-- still checking

fmax3541 fma  1   12345678000 0 -> 12345678000

fmax3542 fma  1   0 12345678000 -> 12345678000

fmax3543 fma  1   1234567800  0 -> 1234567800

fmax3544 fma  1   0 1234567800  -> 1234567800

fmax3545 fma  1   1234567890  0 -> 1234567890

fmax3546 fma  1   0 1234567890  -> 1234567890

fmax3547 fma  1   1234567891  0 -> 1234567891

fmax3548 fma  1   0 1234567891  -> 1234567891

fmax3549 fma  1   12345678901 0 -> 12345678901

fmax3550 fma  1   0 12345678901 -> 12345678901

fmax3551 fma  1   1234567896  0 -> 1234567896

fmax3552 fma  1   0 1234567896  -> 1234567896



-- verify a query

precision:    16

maxExponent: +394

minExponent: -393

rounding:     down

fmax3561 fma  1   1e-398 9.000000000000000E+384 -> 9.000000000000000E+384 Inexact Rounded

fmax3562 fma  1        0 9.000000000000000E+384 -> 9.000000000000000E+384 Rounded

-- and using decimal64 bounds...

precision:    16

maxExponent: +384

minExponent: -383

rounding:     down

fmax3563 fma  1   1e-388 9.000000000000000E+374 -> 9.000000000000000E+374 Inexact Rounded

fmax3564 fma  1        0 9.000000000000000E+374 -> 9.000000000000000E+374 Rounded





-- some more residue effects with extreme rounding

precision:   9

rounding: half_up

fmax3601 fma  1   123456789  0.000001 -> 123456789 Inexact Rounded

rounding: half_even

fmax3602 fma  1   123456789  0.000001 -> 123456789 Inexact Rounded

rounding: half_down

fmax3603 fma  1   123456789  0.000001 -> 123456789 Inexact Rounded

rounding: floor

fmax3604 fma  1   123456789  0.000001 -> 123456789 Inexact Rounded

rounding: ceiling

fmax3605 fma  1   123456789  0.000001 -> 123456790 Inexact Rounded

rounding: up

fmax3606 fma  1   123456789  0.000001 -> 123456790 Inexact Rounded

rounding: down

fmax3607 fma  1   123456789  0.000001 -> 123456789 Inexact Rounded



rounding: half_up

fmax3611 fma  1   123456789 -0.000001 -> 123456789 Inexact Rounded

rounding: half_even

fmax3612 fma  1   123456789 -0.000001 -> 123456789 Inexact Rounded

rounding: half_down

fmax3613 fma  1   123456789 -0.000001 -> 123456789 Inexact Rounded

rounding: floor

fmax3614 fma  1   123456789 -0.000001 -> 123456788 Inexact Rounded

rounding: ceiling

fmax3615 fma  1   123456789 -0.000001 -> 123456789 Inexact Rounded

rounding: up

fmax3616 fma  1   123456789 -0.000001 -> 123456789 Inexact Rounded

rounding: down

fmax3617 fma  1   123456789 -0.000001 -> 123456788 Inexact Rounded



rounding: half_up

fmax3621 fma  1   123456789  0.499999 -> 123456789 Inexact Rounded

rounding: half_even

fmax3622 fma  1   123456789  0.499999 -> 123456789 Inexact Rounded

rounding: half_down

fmax3623 fma  1   123456789  0.499999 -> 123456789 Inexact Rounded

rounding: floor

fmax3624 fma  1   123456789  0.499999 -> 123456789 Inexact Rounded

rounding: ceiling

fmax3625 fma  1   123456789  0.499999 -> 123456790 Inexact Rounded

rounding: up

fmax3626 fma  1   123456789  0.499999 -> 123456790 Inexact Rounded

rounding: down

fmax3627 fma  1   123456789  0.499999 -> 123456789 Inexact Rounded



rounding: half_up

fmax3631 fma  1   123456789 -0.499999 -> 123456789 Inexact Rounded

rounding: half_even

fmax3632 fma  1   123456789 -0.499999 -> 123456789 Inexact Rounded

rounding: half_down

fmax3633 fma  1   123456789 -0.499999 -> 123456789 Inexact Rounded

rounding: floor

fmax3634 fma  1   123456789 -0.499999 -> 123456788 Inexact Rounded

rounding: ceiling

fmax3635 fma  1   123456789 -0.499999 -> 123456789 Inexact Rounded

rounding: up

fmax3636 fma  1   123456789 -0.499999 -> 123456789 Inexact Rounded

rounding: down

fmax3637 fma  1   123456789 -0.499999 -> 123456788 Inexact Rounded



rounding: half_up

fmax3641 fma  1   123456789  0.500001 -> 123456790 Inexact Rounded

rounding: half_even

fmax3642 fma  1   123456789  0.500001 -> 123456790 Inexact Rounded

rounding: half_down

fmax3643 fma  1   123456789  0.500001 -> 123456790 Inexact Rounded

rounding: floor

fmax3644 fma  1   123456789  0.500001 -> 123456789 Inexact Rounded

rounding: ceiling

fmax3645 fma  1   123456789  0.500001 -> 123456790 Inexact Rounded

rounding: up

fmax3646 fma  1   123456789  0.500001 -> 123456790 Inexact Rounded

rounding: down

fmax3647 fma  1   123456789  0.500001 -> 123456789 Inexact Rounded



rounding: half_up

fmax3651 fma  1   123456789 -0.500001 -> 123456788 Inexact Rounded

rounding: half_even

fmax3652 fma  1   123456789 -0.500001 -> 123456788 Inexact Rounded

rounding: half_down

fmax3653 fma  1   123456789 -0.500001 -> 123456788 Inexact Rounded

rounding: floor

fmax3654 fma  1   123456789 -0.500001 -> 123456788 Inexact Rounded

rounding: ceiling

fmax3655 fma  1   123456789 -0.500001 -> 123456789 Inexact Rounded

rounding: up

fmax3656 fma  1   123456789 -0.500001 -> 123456789 Inexact Rounded

rounding: down

fmax3657 fma  1   123456789 -0.500001 -> 123456788 Inexact Rounded



-- long operand triangle

rounding: half_up

precision:  37

fmax3660 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023638922337114834538

precision:  36

fmax3661 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102363892233711483454  Inexact Rounded

precision:  35

fmax3662 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236389223371148345   Inexact Rounded

precision:  34

fmax3663 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023638922337114835    Inexact Rounded

precision:  33

fmax3664 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102363892233711483     Inexact Rounded

precision:  32

fmax3665 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236389223371148      Inexact Rounded

precision:  31

fmax3666 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023638922337115       Inexact Rounded

precision:  30

fmax3667 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102363892233711        Inexact Rounded

precision:  29

fmax3668 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236389223371         Inexact Rounded

precision:  28

fmax3669 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023638922337          Inexact Rounded

precision:  27

fmax3670 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102363892234           Inexact Rounded

precision:  26

fmax3671 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236389223            Inexact Rounded

precision:  25

fmax3672 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023638922             Inexact Rounded

precision:  24

fmax3673 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102363892              Inexact Rounded

precision:  23

fmax3674 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236389               Inexact Rounded

precision:  22

fmax3675 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023639                Inexact Rounded

precision:  21

fmax3676 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102364                 Inexact Rounded

precision:  20

fmax3677 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236                  Inexact Rounded

precision:  19

fmax3678 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211024                   Inexact Rounded

precision:  18

fmax3679 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102                    Inexact Rounded

precision:  17

fmax3680 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110                     Inexact Rounded

precision:  16

fmax3681 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211                      Inexact Rounded

precision:  15

fmax3682 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221                       Inexact Rounded

precision:  14

fmax3683 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422                        Inexact Rounded

precision:  13

fmax3684 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42                         Inexact Rounded

precision:  12

fmax3685 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4                          Inexact Rounded

precision:  11

fmax3686 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166                            Inexact Rounded

precision:  10

fmax3687 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.847117417E+10                        Inexact Rounded

precision:   9

fmax3688 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.84711742E+10                         Inexact Rounded

precision:   8

fmax3689 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.8471174E+10                          Inexact Rounded

precision:   7

fmax3690 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.847117E+10                          Inexact Rounded

precision:   6

fmax3691 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.84712E+10                          Inexact Rounded

precision:   5

fmax3692 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.8471E+10                          Inexact Rounded

precision:   4

fmax3693 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.847E+10                          Inexact Rounded

precision:   3

fmax3694 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.85E+10                          Inexact Rounded

precision:   2

fmax3695 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.8E+10                          Inexact Rounded

precision:   1

fmax3696 fma  1   98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 1E+11                          Inexact Rounded



-- more zeros, etc.

rounding: half_up

precision:   9



fmax3701 fma  1   5.00 1.00E-3 -> 5.00100

fmax3702 fma  1   00.00 0.000  -> 0.000

fmax3703 fma  1   00.00 0E-3   -> 0.000

fmax3704 fma  1   0E-3  00.00  -> 0.000



fmax3710 fma  1   0E+3  00.00  -> 0.00

fmax3711 fma  1   0E+3  00.0   -> 0.0

fmax3712 fma  1   0E+3  00.    -> 0

fmax3713 fma  1   0E+3  00.E+1 -> 0E+1

fmax3714 fma  1   0E+3  00.E+2 -> 0E+2

fmax3715 fma  1   0E+3  00.E+3 -> 0E+3

fmax3716 fma  1   0E+3  00.E+4 -> 0E+3

fmax3717 fma  1   0E+3  00.E+5 -> 0E+3

fmax3718 fma  1   0E+3  -00.0   -> 0.0

fmax3719 fma  1   0E+3  -00.    -> 0

fmax3731 fma  1   0E+3  -00.E+1 -> 0E+1



fmax3720 fma  1   00.00  0E+3  -> 0.00

fmax3721 fma  1   00.0   0E+3  -> 0.0

fmax3722 fma  1   00.    0E+3  -> 0

fmax3723 fma  1   00.E+1 0E+3  -> 0E+1

fmax3724 fma  1   00.E+2 0E+3  -> 0E+2

fmax3725 fma  1   00.E+3 0E+3  -> 0E+3

fmax3726 fma  1   00.E+4 0E+3  -> 0E+3

fmax3727 fma  1   00.E+5 0E+3  -> 0E+3

fmax3728 fma  1   -00.00 0E+3  -> 0.00

fmax3729 fma  1   -00.0  0E+3  -> 0.0

fmax3730 fma  1   -00.   0E+3  -> 0



fmax3732 fma  1    0     0     ->  0

fmax3733 fma  1    0    -0     ->  0

fmax3734 fma  1   -0     0     ->  0

fmax3735 fma  1   -0    -0     -> -0     -- IEEE 854 special case



fmax3736 fma  1    1    -1     ->  0

fmax3737 fma  1   -1    -1     -> -2

fmax3738 fma  1    1     1     ->  2

fmax3739 fma  1   -1     1     ->  0



fmax3741 fma  1    0    -1     -> -1

fmax3742 fma  1   -0    -1     -> -1

fmax3743 fma  1    0     1     ->  1

fmax3744 fma  1   -0     1     ->  1

fmax3745 fma  1   -1     0     -> -1

fmax3746 fma  1   -1    -0     -> -1

fmax3747 fma  1    1     0     ->  1

fmax3748 fma  1    1    -0     ->  1



fmax3751 fma  1    0.0  -1     -> -1.0

fmax3752 fma  1   -0.0  -1     -> -1.0

fmax3753 fma  1    0.0   1     ->  1.0

fmax3754 fma  1   -0.0   1     ->  1.0

fmax3755 fma  1   -1.0   0     -> -1.0

fmax3756 fma  1   -1.0  -0     -> -1.0

fmax3757 fma  1    1.0   0     ->  1.0

fmax3758 fma  1    1.0  -0     ->  1.0



fmax3761 fma  1    0    -1.0   -> -1.0

fmax3762 fma  1   -0    -1.0   -> -1.0

fmax3763 fma  1    0     1.0   ->  1.0

fmax3764 fma  1   -0     1.0   ->  1.0

fmax3765 fma  1   -1     0.0   -> -1.0

fmax3766 fma  1   -1    -0.0   -> -1.0

fmax3767 fma  1    1     0.0   ->  1.0

fmax3768 fma  1    1    -0.0   ->  1.0



fmax3771 fma  1    0.0  -1.0   -> -1.0

fmax3772 fma  1   -0.0  -1.0   -> -1.0

fmax3773 fma  1    0.0   1.0   ->  1.0

fmax3774 fma  1   -0.0   1.0   ->  1.0

fmax3775 fma  1   -1.0   0.0   -> -1.0

fmax3776 fma  1   -1.0  -0.0   -> -1.0

fmax3777 fma  1    1.0   0.0   ->  1.0

fmax3778 fma  1    1.0  -0.0   ->  1.0



-- Specials

fmax3780 fma  1   -Inf  -Inf   -> -Infinity

fmax3781 fma  1   -Inf  -1000  -> -Infinity

fmax3782 fma  1   -Inf  -1     -> -Infinity

fmax3783 fma  1   -Inf  -0     -> -Infinity

fmax3784 fma  1   -Inf   0     -> -Infinity

fmax3785 fma  1   -Inf   1     -> -Infinity

fmax3786 fma  1   -Inf   1000  -> -Infinity

fmax3787 fma  1   -1000 -Inf   -> -Infinity

fmax3788 fma  1   -Inf  -Inf   -> -Infinity

fmax3789 fma  1   -1    -Inf   -> -Infinity

fmax3790 fma  1   -0    -Inf   -> -Infinity

fmax3791 fma  1    0    -Inf   -> -Infinity

fmax3792 fma  1    1    -Inf   -> -Infinity

fmax3793 fma  1    1000 -Inf   -> -Infinity

fmax3794 fma  1    Inf  -Inf   ->  NaN  Invalid_operation



fmax3800 fma  1    Inf  -Inf   ->  NaN  Invalid_operation

fmax3801 fma  1    Inf  -1000  ->  Infinity

fmax3802 fma  1    Inf  -1     ->  Infinity

fmax3803 fma  1    Inf  -0     ->  Infinity

fmax3804 fma  1    Inf   0     ->  Infinity

fmax3805 fma  1    Inf   1     ->  Infinity

fmax3806 fma  1    Inf   1000  ->  Infinity

fmax3807 fma  1    Inf   Inf   ->  Infinity

fmax3808 fma  1   -1000  Inf   ->  Infinity

fmax3809 fma  1   -Inf   Inf   ->  NaN  Invalid_operation

fmax3810 fma  1   -1     Inf   ->  Infinity

fmax3811 fma  1   -0     Inf   ->  Infinity

fmax3812 fma  1    0     Inf   ->  Infinity

fmax3813 fma  1    1     Inf   ->  Infinity

fmax3814 fma  1    1000  Inf   ->  Infinity

fmax3815 fma  1    Inf   Inf   ->  Infinity



fmax3821 fma  1    NaN -Inf    ->  NaN

fmax3822 fma  1    NaN -1000   ->  NaN

fmax3823 fma  1    NaN -1      ->  NaN

fmax3824 fma  1    NaN -0      ->  NaN

fmax3825 fma  1    NaN  0      ->  NaN

fmax3826 fma  1    NaN  1      ->  NaN

fmax3827 fma  1    NaN  1000   ->  NaN

fmax3828 fma  1    NaN  Inf    ->  NaN

fmax3829 fma  1    NaN  NaN    ->  NaN

fmax3830 fma  1   -Inf  NaN    ->  NaN

fmax3831 fma  1   -1000 NaN    ->  NaN

fmax3832 fma  1   -1    NaN    ->  NaN

fmax3833 fma  1   -0    NaN    ->  NaN

fmax3834 fma  1    0    NaN    ->  NaN

fmax3835 fma  1    1    NaN    ->  NaN

fmax3836 fma  1    1000 NaN    ->  NaN

fmax3837 fma  1    Inf  NaN    ->  NaN



fmax3841 fma  1    sNaN -Inf   ->  NaN  Invalid_operation

fmax3842 fma  1    sNaN -1000  ->  NaN  Invalid_operation

fmax3843 fma  1    sNaN -1     ->  NaN  Invalid_operation

fmax3844 fma  1    sNaN -0     ->  NaN  Invalid_operation

fmax3845 fma  1    sNaN  0     ->  NaN  Invalid_operation

fmax3846 fma  1    sNaN  1     ->  NaN  Invalid_operation

fmax3847 fma  1    sNaN  1000  ->  NaN  Invalid_operation

fmax3848 fma  1    sNaN  NaN   ->  NaN  Invalid_operation

fmax3849 fma  1    sNaN sNaN   ->  NaN  Invalid_operation

fmax3850 fma  1    NaN  sNaN   ->  NaN  Invalid_operation

fmax3851 fma  1   -Inf  sNaN   ->  NaN  Invalid_operation

fmax3852 fma  1   -1000 sNaN   ->  NaN  Invalid_operation

fmax3853 fma  1   -1    sNaN   ->  NaN  Invalid_operation

fmax3854 fma  1   -0    sNaN   ->  NaN  Invalid_operation

fmax3855 fma  1    0    sNaN   ->  NaN  Invalid_operation

fmax3856 fma  1    1    sNaN   ->  NaN  Invalid_operation

fmax3857 fma  1    1000 sNaN   ->  NaN  Invalid_operation

fmax3858 fma  1    Inf  sNaN   ->  NaN  Invalid_operation

fmax3859 fma  1    NaN  sNaN   ->  NaN  Invalid_operation



-- propagating NaNs

fmax3861 fma  1    NaN1   -Inf    ->  NaN1

fmax3862 fma  1   +NaN2   -1000   ->  NaN2

fmax3863 fma  1    NaN3    1000   ->  NaN3

fmax3864 fma  1    NaN4    Inf    ->  NaN4

fmax3865 fma  1    NaN5   +NaN6   ->  NaN5

fmax3866 fma  1   -Inf     NaN7   ->  NaN7

fmax3867 fma  1   -1000    NaN8   ->  NaN8

fmax3868 fma  1    1000    NaN9   ->  NaN9

fmax3869 fma  1    Inf    +NaN10  ->  NaN10

fmax3871 fma  1    sNaN11  -Inf   ->  NaN11  Invalid_operation

fmax3872 fma  1    sNaN12  -1000  ->  NaN12  Invalid_operation

fmax3873 fma  1    sNaN13   1000  ->  NaN13  Invalid_operation

fmax3874 fma  1    sNaN14   NaN17 ->  NaN14  Invalid_operation

fmax3875 fma  1    sNaN15  sNaN18 ->  NaN15  Invalid_operation

fmax3876 fma  1    NaN16   sNaN19 ->  NaN19  Invalid_operation

fmax3877 fma  1   -Inf    +sNaN20 ->  NaN20  Invalid_operation

fmax3878 fma  1   -1000    sNaN21 ->  NaN21  Invalid_operation

fmax3879 fma  1    1000    sNaN22 ->  NaN22  Invalid_operation

fmax3880 fma  1    Inf     sNaN23 ->  NaN23  Invalid_operation

fmax3881 fma  1   +NaN25  +sNaN24 ->  NaN24  Invalid_operation

fmax3882 fma  1   -NaN26    NaN28 -> -NaN26

fmax3883 fma  1   -sNaN27  sNaN29 -> -NaN27  Invalid_operation

fmax3884 fma  1    1000    -NaN30 -> -NaN30

fmax3885 fma  1    1000   -sNaN31 -> -NaN31  Invalid_operation



-- overflow, underflow and subnormal tests

maxexponent: 999999

minexponent: -999999

precision: 9

fmax3890 fma  1   1E+999999     9E+999999   -> Infinity Overflow Inexact Rounded

fmax3891 fma  1   9E+999999     1E+999999   -> Infinity Overflow Inexact Rounded

fmax3892 fma  1   -1.1E-999999  1E-999999   -> -1E-1000000    Subnormal

fmax3893 fma  1   1E-999999    -1.1e-999999 -> -1E-1000000    Subnormal

fmax3894 fma  1   -1.0001E-999999  1E-999999   -> -1E-1000003 Subnormal

fmax3895 fma  1   1E-999999    -1.0001e-999999 -> -1E-1000003 Subnormal

fmax3896 fma  1   -1E+999999   -9E+999999   -> -Infinity Overflow Inexact Rounded

fmax3897 fma  1   -9E+999999   -1E+999999   -> -Infinity Overflow Inexact Rounded

fmax3898 fma  1   +1.1E-999999 -1E-999999   -> 1E-1000000   Subnormal

fmax3899 fma  1   -1E-999999   +1.1e-999999 -> 1E-1000000    Subnormal

fmax3900 fma  1   +1.0001E-999999 -1E-999999   -> 1E-1000003 Subnormal

fmax3901 fma  1   -1E-999999   +1.0001e-999999 -> 1E-1000003 Subnormal

fmax3902 fma  1   -1E+999999   +9E+999999   ->  8E+999999

fmax3903 fma  1   -9E+999999   +1E+999999   -> -8E+999999



precision: 3

fmax3904 fma  1        0 -9.999E+999999   -> -Infinity Inexact Overflow Rounded

fmax3905 fma  1          -9.999E+999999 0 -> -Infinity Inexact Overflow Rounded

fmax3906 fma  1        0  9.999E+999999   ->  Infinity Inexact Overflow Rounded

fmax3907 fma  1           9.999E+999999 0 ->  Infinity Inexact Overflow Rounded



precision: 3

maxexponent: 999

minexponent: -999

fmax3910 fma  1    1.00E-999   0    ->   1.00E-999

fmax3911 fma  1    0.1E-999    0    ->   1E-1000   Subnormal

fmax3912 fma  1    0.10E-999   0    ->   1.0E-1000 Subnormal

fmax3913 fma  1    0.100E-999  0    ->   1.0E-1000 Subnormal Rounded

fmax3914 fma  1    0.01E-999   0    ->   1E-1001   Subnormal

-- next is rounded to Nmin

fmax3915 fma  1    0.999E-999  0    ->   1.00E-999 Inexact Rounded Subnormal Underflow

fmax3916 fma  1    0.099E-999  0    ->   1.0E-1000 Inexact Rounded Subnormal Underflow

fmax3917 fma  1    0.009E-999  0    ->   1E-1001   Inexact Rounded Subnormal Underflow

fmax3918 fma  1    0.001E-999  0    ->   0E-1001   Inexact Rounded Subnormal Underflow Clamped

fmax3919 fma  1    0.0009E-999 0    ->   0E-1001   Inexact Rounded Subnormal Underflow Clamped

fmax3920 fma  1    0.0001E-999 0    ->   0E-1001   Inexact Rounded Subnormal Underflow Clamped



fmax3930 fma  1   -1.00E-999   0    ->  -1.00E-999

fmax3931 fma  1   -0.1E-999    0    ->  -1E-1000   Subnormal

fmax3932 fma  1   -0.10E-999   0    ->  -1.0E-1000 Subnormal

fmax3933 fma  1   -0.100E-999  0    ->  -1.0E-1000 Subnormal Rounded

fmax3934 fma  1   -0.01E-999   0    ->  -1E-1001   Subnormal

-- next is rounded to Nmin

fmax3935 fma  1   -0.999E-999  0    ->  -1.00E-999 Inexact Rounded Subnormal Underflow

fmax3936 fma  1   -0.099E-999  0    ->  -1.0E-1000 Inexact Rounded Subnormal Underflow

fmax3937 fma  1   -0.009E-999  0    ->  -1E-1001   Inexact Rounded Subnormal Underflow

fmax3938 fma  1   -0.001E-999  0    ->  -0E-1001   Inexact Rounded Subnormal Underflow Clamped

fmax3939 fma  1   -0.0009E-999 0    ->  -0E-1001   Inexact Rounded Subnormal Underflow Clamped

fmax3940 fma  1   -0.0001E-999 0    ->  -0E-1001   Inexact Rounded Subnormal Underflow Clamped



-- some non-zero subnormal fma  1  s

fmax3950 fma  1    1.00E-999    0.1E-999  ->   1.10E-999

fmax3951 fma  1    0.1E-999     0.1E-999  ->   2E-1000    Subnormal

fmax3952 fma  1    0.10E-999    0.1E-999  ->   2.0E-1000  Subnormal

fmax3953 fma  1    0.100E-999   0.1E-999  ->   2.0E-1000  Subnormal Rounded

fmax3954 fma  1    0.01E-999    0.1E-999  ->   1.1E-1000  Subnormal

fmax3955 fma  1    0.999E-999   0.1E-999  ->   1.10E-999  Inexact Rounded

fmax3956 fma  1    0.099E-999   0.1E-999  ->   2.0E-1000  Inexact Rounded Subnormal Underflow

fmax3957 fma  1    0.009E-999   0.1E-999  ->   1.1E-1000  Inexact Rounded Subnormal Underflow

fmax3958 fma  1    0.001E-999   0.1E-999  ->   1.0E-1000  Inexact Rounded Subnormal Underflow

fmax3959 fma  1    0.0009E-999  0.1E-999  ->   1.0E-1000  Inexact Rounded Subnormal Underflow

fmax3960 fma  1    0.0001E-999  0.1E-999  ->   1.0E-1000  Inexact Rounded Subnormal Underflow

-- negatives...

fmax3961 fma  1    1.00E-999   -0.1E-999  ->   9.0E-1000  Subnormal

fmax3962 fma  1    0.1E-999    -0.1E-999  ->   0E-1000

fmax3963 fma  1    0.10E-999   -0.1E-999  ->   0E-1001

fmax3964 fma  1    0.100E-999  -0.1E-999  ->   0E-1001    Clamped

fmax3965 fma  1    0.01E-999   -0.1E-999  ->   -9E-1001   Subnormal

fmax3966 fma  1    0.999E-999  -0.1E-999  ->   9.0E-1000  Inexact Rounded Subnormal Underflow

fmax3967 fma  1    0.099E-999  -0.1E-999  ->   -0E-1001   Inexact Rounded Subnormal Underflow Clamped

fmax3968 fma  1    0.009E-999  -0.1E-999  ->   -9E-1001   Inexact Rounded Subnormal Underflow

fmax3969 fma  1    0.001E-999  -0.1E-999  ->   -1.0E-1000 Inexact Rounded Subnormal Underflow

fmax3970 fma  1    0.0009E-999 -0.1E-999  ->   -1.0E-1000 Inexact Rounded Subnormal Underflow

fmax3971 fma  1    0.0001E-999 -0.1E-999  ->   -1.0E-1000 Inexact Rounded Subnormal Underflow



-- some 'real' numbers

maxExponent: 384

minExponent: -383

precision: 8

fmax3566 fma  1   99999061735E-394  0E-394 -> 9.999906E-384 Inexact Rounded Underflow Subnormal

precision: 7

fmax3567 fma  1   99999061735E-394  0E-394 -> 9.99991E-384 Inexact Rounded Underflow Subnormal

precision: 6

fmax3568 fma  1   99999061735E-394  0E-394 -> 9.9999E-384 Inexact Rounded Underflow Subnormal



-- now the case where we can get underflow but the result is normal

-- [note this can't happen if the operands are also bounded, as we

-- cannot represent 1E-399, for example]

precision:   16

rounding:    half_up

maxExponent: 384

minExponent: -383



fmax3571 fma  1         1E-383       0  -> 1E-383

fmax3572 fma  1         1E-384       0  -> 1E-384   Subnormal

fmax3573 fma  1         1E-383  1E-384  -> 1.1E-383

fmax3574 subtract  1E-383  1E-384  ->   9E-384 Subnormal



-- Here we explore the boundary of rounding a subnormal to Nmin

fmax3575 subtract  1E-383  1E-398  ->   9.99999999999999E-384  Subnormal

fmax3576 subtract  1E-383  1E-398  ->   9.99999999999999E-384  Subnormal

fmax3577 subtract  1E-383  1E-399  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded

fmax3578 subtract  1E-383  1E-400  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded

fmax3579 subtract  1E-383  1E-401  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded

fmax3580 subtract  1E-383  1E-402  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded



-- check for double-rounded subnormals

precision:   5

maxexponent: 79

minexponent: -79

-- Add: lhs and rhs 0

fmax31001 fma  1         1.52444E-80 0 -> 1.524E-80 Inexact Rounded Subnormal Underflow

fmax31002 fma  1         1.52445E-80 0 -> 1.524E-80 Inexact Rounded Subnormal Underflow

fmax31003 fma  1         1.52446E-80 0 -> 1.524E-80 Inexact Rounded Subnormal Underflow

fmax31004 fma  1         0 1.52444E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow

fmax31005 fma  1         0 1.52445E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow

fmax31006 fma  1         0 1.52446E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow



-- Add: lhs >> rhs and vice versa

fmax31011 fma  1         1.52444E-80 1E-100 -> 1.524E-80 Inexact Rounded Subnormal Underflow

fmax31012 fma  1         1.52445E-80 1E-100 -> 1.524E-80 Inexact Rounded Subnormal Underflow

fmax31013 fma  1         1.52446E-80 1E-100 -> 1.524E-80 Inexact Rounded Subnormal Underflow

fmax31014 fma  1         1E-100 1.52444E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow

fmax31015 fma  1         1E-100 1.52445E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow

fmax31016 fma  1         1E-100 1.52446E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow



-- Add: lhs + rhs fma  1  ition carried out

fmax31021 fma  1         1.52443E-80 1.00001E-80  -> 2.524E-80 Inexact Rounded Subnormal Underflow

fmax31022 fma  1         1.52444E-80 1.00001E-80  -> 2.524E-80 Inexact Rounded Subnormal Underflow

fmax31023 fma  1         1.52445E-80 1.00001E-80  -> 2.524E-80 Inexact Rounded Subnormal Underflow

fmax31024 fma  1         1.00001E-80  1.52443E-80 -> 2.524E-80 Inexact Rounded Subnormal Underflow

fmax31025 fma  1         1.00001E-80  1.52444E-80 -> 2.524E-80 Inexact Rounded Subnormal Underflow

fmax31026 fma  1         1.00001E-80  1.52445E-80 -> 2.524E-80 Inexact Rounded Subnormal Underflow



-- And for round down full and subnormal results

precision:    16

maxExponent: +384

minExponent: -383

rounding:     down



fmax31100 fma  1   1e+2 -1e-383    -> 99.99999999999999 Rounded Inexact

fmax31101 fma  1   1e+1 -1e-383    -> 9.999999999999999  Rounded Inexact

fmax31103 fma  1     +1 -1e-383    -> 0.9999999999999999  Rounded Inexact

fmax31104 fma  1   1e-1 -1e-383    -> 0.09999999999999999  Rounded Inexact

fmax31105 fma  1   1e-2 -1e-383    -> 0.009999999999999999  Rounded Inexact

fmax31106 fma  1   1e-3 -1e-383    -> 0.0009999999999999999  Rounded Inexact

fmax31107 fma  1   1e-4 -1e-383    -> 0.00009999999999999999  Rounded Inexact

fmax31108 fma  1   1e-5 -1e-383    -> 0.000009999999999999999  Rounded Inexact

fmax31109 fma  1   1e-6 -1e-383    -> 9.999999999999999E-7  Rounded Inexact



rounding:     ceiling

fmax31110 fma  1   -1e+2 +1e-383   -> -99.99999999999999 Rounded Inexact

fmax31111 fma  1   -1e+1 +1e-383   -> -9.999999999999999  Rounded Inexact

fmax31113 fma  1      -1 +1e-383   -> -0.9999999999999999  Rounded Inexact

fmax31114 fma  1   -1e-1 +1e-383   -> -0.09999999999999999  Rounded Inexact

fmax31115 fma  1   -1e-2 +1e-383   -> -0.009999999999999999  Rounded Inexact

fmax31116 fma  1   -1e-3 +1e-383   -> -0.0009999999999999999  Rounded Inexact

fmax31117 fma  1   -1e-4 +1e-383   -> -0.00009999999999999999  Rounded Inexact

fmax31118 fma  1   -1e-5 +1e-383   -> -0.000009999999999999999  Rounded Inexact

fmax31119 fma  1   -1e-6 +1e-383   -> -9.999999999999999E-7  Rounded Inexact



rounding:     down

precision:    7

maxExponent: +96

minExponent: -95

fmax31130 fma  1     1            -1e-200  -> 0.9999999  Rounded Inexact

-- subnormal boundary

fmax31131 fma  1     1.000000E-94  -1e-200  ->  9.999999E-95  Rounded Inexact

fmax31132 fma  1     1.000001E-95  -1e-200  ->  1.000000E-95  Rounded Inexact

fmax31133 fma  1     1.000000E-95  -1e-200  ->  9.99999E-96  Rounded Inexact Subnormal Underflow

fmax31134 fma  1     0.999999E-95  -1e-200  ->  9.99998E-96  Rounded Inexact Subnormal Underflow

fmax31135 fma  1     0.001000E-95  -1e-200  ->  9.99E-99  Rounded Inexact Subnormal Underflow

fmax31136 fma  1     0.000999E-95  -1e-200  ->  9.98E-99  Rounded Inexact Subnormal Underflow

fmax31137 fma  1     1.000000E-95  -1e-101  ->  9.99999E-96  Subnormal

fmax31138 fma  1        10000E-101 -1e-200  ->  9.999E-98  Subnormal Inexact Rounded Underflow

fmax31139 fma  1         1000E-101 -1e-200  ->  9.99E-99   Subnormal Inexact Rounded Underflow

fmax31140 fma  1          100E-101 -1e-200  ->  9.9E-100   Subnormal Inexact Rounded Underflow

fmax31141 fma  1           10E-101 -1e-200  ->  9E-101     Subnormal Inexact Rounded Underflow

fmax31142 fma  1            1E-101 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow Clamped

fmax31143 fma  1            0E-101 -1e-200  -> -0E-101     Subnormal Inexact Rounded Underflow Clamped

fmax31144 fma  1            1E-102 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow Clamped



fmax31151 fma  1        10000E-102 -1e-200  ->  9.99E-99  Subnormal Inexact Rounded Underflow

fmax31152 fma  1         1000E-102 -1e-200  ->  9.9E-100  Subnormal Inexact Rounded Underflow

fmax31153 fma  1          100E-102 -1e-200  ->  9E-101   Subnormal Inexact Rounded Underflow

fmax31154 fma  1           10E-102 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow Clamped

fmax31155 fma  1            1E-102 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow Clamped

fmax31156 fma  1            0E-102 -1e-200  -> -0E-101     Subnormal Inexact Rounded Underflow Clamped

fmax31157 fma  1            1E-103 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow Clamped



fmax31160 fma  1          100E-105 -1e-101  -> -0E-101 Subnormal Inexact Rounded Underflow Clamped

fmax31161 fma  1          100E-105 -1e-201  ->  0E-101 Subnormal Inexact Rounded Underflow Clamped



-- tests based on Gunnar Degnbol's edge case

precision:   15

rounding:    half_up

maxExponent: 384

minexponent: -383



fmax31200 fma  1   1E15  -0.5                 ->  1.00000000000000E+15 Inexact Rounded

fmax31201 fma  1   1E15  -0.50                ->  1.00000000000000E+15 Inexact Rounded

fmax31210 fma  1   1E15  -0.51                ->  999999999999999      Inexact Rounded

fmax31211 fma  1   1E15  -0.501               ->  999999999999999      Inexact Rounded

fmax31212 fma  1   1E15  -0.5001              ->  999999999999999      Inexact Rounded

fmax31213 fma  1   1E15  -0.50001             ->  999999999999999      Inexact Rounded

fmax31214 fma  1   1E15  -0.500001            ->  999999999999999      Inexact Rounded

fmax31215 fma  1   1E15  -0.5000001           ->  999999999999999      Inexact Rounded

fmax31216 fma  1   1E15  -0.50000001          ->  999999999999999      Inexact Rounded

fmax31217 fma  1   1E15  -0.500000001         ->  999999999999999      Inexact Rounded

fmax31218 fma  1   1E15  -0.5000000001        ->  999999999999999      Inexact Rounded

fmax31219 fma  1   1E15  -0.50000000001       ->  999999999999999      Inexact Rounded

fmax31220 fma  1   1E15  -0.500000000001      ->  999999999999999      Inexact Rounded

fmax31221 fma  1   1E15  -0.5000000000001     ->  999999999999999      Inexact Rounded

fmax31222 fma  1   1E15  -0.50000000000001    ->  999999999999999      Inexact Rounded

fmax31223 fma  1   1E15  -0.500000000000001   ->  999999999999999      Inexact Rounded

fmax31224 fma  1   1E15  -0.5000000000000001  ->  999999999999999      Inexact Rounded

fmax31225 fma  1   1E15  -0.5000000000000000  ->  1.00000000000000E+15 Inexact Rounded

fmax31230 fma  1   1E15  -5000000.000000001   ->  999999995000000      Inexact Rounded



precision:   16



fmax31300 fma  1   1E16  -0.5                 ->  1.000000000000000E+16 Inexact Rounded

fmax31310 fma  1   1E16  -0.51                ->  9999999999999999      Inexact Rounded

fmax31311 fma  1   1E16  -0.501               ->  9999999999999999      Inexact Rounded

fmax31312 fma  1   1E16  -0.5001              ->  9999999999999999      Inexact Rounded

fmax31313 fma  1   1E16  -0.50001             ->  9999999999999999      Inexact Rounded

fmax31314 fma  1   1E16  -0.500001            ->  9999999999999999      Inexact Rounded

fmax31315 fma  1   1E16  -0.5000001           ->  9999999999999999      Inexact Rounded

fmax31316 fma  1   1E16  -0.50000001          ->  9999999999999999      Inexact Rounded

fmax31317 fma  1   1E16  -0.500000001         ->  9999999999999999      Inexact Rounded

fmax31318 fma  1   1E16  -0.5000000001        ->  9999999999999999      Inexact Rounded

fmax31319 fma  1   1E16  -0.50000000001       ->  9999999999999999      Inexact Rounded

fmax31320 fma  1   1E16  -0.500000000001      ->  9999999999999999      Inexact Rounded

fmax31321 fma  1   1E16  -0.5000000000001     ->  9999999999999999      Inexact Rounded

fmax31322 fma  1   1E16  -0.50000000000001    ->  9999999999999999      Inexact Rounded

fmax31323 fma  1   1E16  -0.500000000000001   ->  9999999999999999      Inexact Rounded

fmax31324 fma  1   1E16  -0.5000000000000001  ->  9999999999999999      Inexact Rounded

fmax31325 fma  1   1E16  -0.5000000000000000  ->  1.000000000000000E+16 Inexact Rounded

fmax31326 fma  1   1E16  -0.500000000000000   ->  1.000000000000000E+16 Inexact Rounded

fmax31327 fma  1   1E16  -0.50000000000000    ->  1.000000000000000E+16 Inexact Rounded

fmax31328 fma  1   1E16  -0.5000000000000     ->  1.000000000000000E+16 Inexact Rounded

fmax31329 fma  1   1E16  -0.500000000000      ->  1.000000000000000E+16 Inexact Rounded

fmax31330 fma  1   1E16  -0.50000000000       ->  1.000000000000000E+16 Inexact Rounded

fmax31331 fma  1   1E16  -0.5000000000        ->  1.000000000000000E+16 Inexact Rounded

fmax31332 fma  1   1E16  -0.500000000         ->  1.000000000000000E+16 Inexact Rounded

fmax31333 fma  1   1E16  -0.50000000          ->  1.000000000000000E+16 Inexact Rounded

fmax31334 fma  1   1E16  -0.5000000           ->  1.000000000000000E+16 Inexact Rounded

fmax31335 fma  1   1E16  -0.500000            ->  1.000000000000000E+16 Inexact Rounded

fmax31336 fma  1   1E16  -0.50000             ->  1.000000000000000E+16 Inexact Rounded

fmax31337 fma  1   1E16  -0.5000              ->  1.000000000000000E+16 Inexact Rounded

fmax31338 fma  1   1E16  -0.500               ->  1.000000000000000E+16 Inexact Rounded

fmax31339 fma  1   1E16  -0.50                ->  1.000000000000000E+16 Inexact Rounded



fmax31340 fma  1   1E16  -5000000.000010001   ->  9999999995000000      Inexact Rounded

fmax31341 fma  1   1E16  -5000000.000000001   ->  9999999995000000      Inexact Rounded



fmax31349 fma  1   9999999999999999 0.4                 ->  9999999999999999      Inexact Rounded

fmax31350 fma  1   9999999999999999 0.49                ->  9999999999999999      Inexact Rounded

fmax31351 fma  1   9999999999999999 0.499               ->  9999999999999999      Inexact Rounded

fmax31352 fma  1   9999999999999999 0.4999              ->  9999999999999999      Inexact Rounded

fmax31353 fma  1   9999999999999999 0.49999             ->  9999999999999999      Inexact Rounded

fmax31354 fma  1   9999999999999999 0.499999            ->  9999999999999999      Inexact Rounded

fmax31355 fma  1   9999999999999999 0.4999999           ->  9999999999999999      Inexact Rounded

fmax31356 fma  1   9999999999999999 0.49999999          ->  9999999999999999      Inexact Rounded

fmax31357 fma  1   9999999999999999 0.499999999         ->  9999999999999999      Inexact Rounded

fmax31358 fma  1   9999999999999999 0.4999999999        ->  9999999999999999      Inexact Rounded

fmax31359 fma  1   9999999999999999 0.49999999999       ->  9999999999999999      Inexact Rounded

fmax31360 fma  1   9999999999999999 0.499999999999      ->  9999999999999999      Inexact Rounded

fmax31361 fma  1   9999999999999999 0.4999999999999     ->  9999999999999999      Inexact Rounded

fmax31362 fma  1   9999999999999999 0.49999999999999    ->  9999999999999999      Inexact Rounded

fmax31363 fma  1   9999999999999999 0.499999999999999   ->  9999999999999999      Inexact Rounded

fmax31364 fma  1   9999999999999999 0.4999999999999999  ->  9999999999999999      Inexact Rounded

fmax31365 fma  1   9999999999999999 0.5000000000000000  ->  1.000000000000000E+16 Inexact Rounded

fmax31367 fma  1   9999999999999999 0.500000000000000   ->  1.000000000000000E+16 Inexact Rounded

fmax31368 fma  1   9999999999999999 0.50000000000000    ->  1.000000000000000E+16 Inexact Rounded

fmax31369 fma  1   9999999999999999 0.5000000000000     ->  1.000000000000000E+16 Inexact Rounded

fmax31370 fma  1   9999999999999999 0.500000000000      ->  1.000000000000000E+16 Inexact Rounded

fmax31371 fma  1   9999999999999999 0.50000000000       ->  1.000000000000000E+16 Inexact Rounded

fmax31372 fma  1   9999999999999999 0.5000000000        ->  1.000000000000000E+16 Inexact Rounded

fmax31373 fma  1   9999999999999999 0.500000000         ->  1.000000000000000E+16 Inexact Rounded

fmax31374 fma  1   9999999999999999 0.50000000          ->  1.000000000000000E+16 Inexact Rounded

fmax31375 fma  1   9999999999999999 0.5000000           ->  1.000000000000000E+16 Inexact Rounded

fmax31376 fma  1   9999999999999999 0.500000            ->  1.000000000000000E+16 Inexact Rounded

fmax31377 fma  1   9999999999999999 0.50000             ->  1.000000000000000E+16 Inexact Rounded

fmax31378 fma  1   9999999999999999 0.5000              ->  1.000000000000000E+16 Inexact Rounded

fmax31379 fma  1   9999999999999999 0.500               ->  1.000000000000000E+16 Inexact Rounded

fmax31380 fma  1   9999999999999999 0.50                ->  1.000000000000000E+16 Inexact Rounded

fmax31381 fma  1   9999999999999999 0.5                 ->  1.000000000000000E+16 Inexact Rounded

fmax31382 fma  1   9999999999999999 0.5000000000000001  ->  1.000000000000000E+16 Inexact Rounded

fmax31383 fma  1   9999999999999999 0.500000000000001   ->  1.000000000000000E+16 Inexact Rounded

fmax31384 fma  1   9999999999999999 0.50000000000001    ->  1.000000000000000E+16 Inexact Rounded

fmax31385 fma  1   9999999999999999 0.5000000000001     ->  1.000000000000000E+16 Inexact Rounded

fmax31386 fma  1   9999999999999999 0.500000000001      ->  1.000000000000000E+16 Inexact Rounded

fmax31387 fma  1   9999999999999999 0.50000000001       ->  1.000000000000000E+16 Inexact Rounded

fmax31388 fma  1   9999999999999999 0.5000000001        ->  1.000000000000000E+16 Inexact Rounded

fmax31389 fma  1   9999999999999999 0.500000001         ->  1.000000000000000E+16 Inexact Rounded

fmax31390 fma  1   9999999999999999 0.50000001          ->  1.000000000000000E+16 Inexact Rounded

fmax31391 fma  1   9999999999999999 0.5000001           ->  1.000000000000000E+16 Inexact Rounded

fmax31392 fma  1   9999999999999999 0.500001            ->  1.000000000000000E+16 Inexact Rounded

fmax31393 fma  1   9999999999999999 0.50001             ->  1.000000000000000E+16 Inexact Rounded

fmax31394 fma  1   9999999999999999 0.5001              ->  1.000000000000000E+16 Inexact Rounded

fmax31395 fma  1   9999999999999999 0.501               ->  1.000000000000000E+16 Inexact Rounded

fmax31396 fma  1   9999999999999999 0.51                ->  1.000000000000000E+16 Inexact Rounded



-- More GD edge cases, where difference between the unadjusted

-- exponents is larger than the maximum precision and one side is 0

precision:   15

rounding:    half_up

maxExponent: 384

minexponent: -383



fmax31400 fma  1    0 1.23456789012345     -> 1.23456789012345

fmax31401 fma  1    0 1.23456789012345E-1  -> 0.123456789012345

fmax31402 fma  1    0 1.23456789012345E-2  -> 0.0123456789012345

fmax31403 fma  1    0 1.23456789012345E-3  -> 0.00123456789012345

fmax31404 fma  1    0 1.23456789012345E-4  -> 0.000123456789012345

fmax31405 fma  1    0 1.23456789012345E-5  -> 0.0000123456789012345

fmax31406 fma  1    0 1.23456789012345E-6  -> 0.00000123456789012345

fmax31407 fma  1    0 1.23456789012345E-7  -> 1.23456789012345E-7

fmax31408 fma  1    0 1.23456789012345E-8  -> 1.23456789012345E-8

fmax31409 fma  1    0 1.23456789012345E-9  -> 1.23456789012345E-9

fmax31410 fma  1    0 1.23456789012345E-10 -> 1.23456789012345E-10

fmax31411 fma  1    0 1.23456789012345E-11 -> 1.23456789012345E-11

fmax31412 fma  1    0 1.23456789012345E-12 -> 1.23456789012345E-12

fmax31413 fma  1    0 1.23456789012345E-13 -> 1.23456789012345E-13

fmax31414 fma  1    0 1.23456789012345E-14 -> 1.23456789012345E-14

fmax31415 fma  1    0 1.23456789012345E-15 -> 1.23456789012345E-15

fmax31416 fma  1    0 1.23456789012345E-16 -> 1.23456789012345E-16

fmax31417 fma  1    0 1.23456789012345E-17 -> 1.23456789012345E-17

fmax31418 fma  1    0 1.23456789012345E-18 -> 1.23456789012345E-18

fmax31419 fma  1    0 1.23456789012345E-19 -> 1.23456789012345E-19



-- same, precision 16..

precision:   16

fmax31420 fma  1    0 1.123456789012345     -> 1.123456789012345

fmax31421 fma  1    0 1.123456789012345E-1  -> 0.1123456789012345

fmax31422 fma  1    0 1.123456789012345E-2  -> 0.01123456789012345

fmax31423 fma  1    0 1.123456789012345E-3  -> 0.001123456789012345

fmax31424 fma  1    0 1.123456789012345E-4  -> 0.0001123456789012345

fmax31425 fma  1    0 1.123456789012345E-5  -> 0.00001123456789012345

fmax31426 fma  1    0 1.123456789012345E-6  -> 0.000001123456789012345

fmax31427 fma  1    0 1.123456789012345E-7  -> 1.123456789012345E-7

fmax31428 fma  1    0 1.123456789012345E-8  -> 1.123456789012345E-8

fmax31429 fma  1    0 1.123456789012345E-9  -> 1.123456789012345E-9

fmax31430 fma  1    0 1.123456789012345E-10 -> 1.123456789012345E-10

fmax31431 fma  1    0 1.123456789012345E-11 -> 1.123456789012345E-11

fmax31432 fma  1    0 1.123456789012345E-12 -> 1.123456789012345E-12

fmax31433 fma  1    0 1.123456789012345E-13 -> 1.123456789012345E-13

fmax31434 fma  1    0 1.123456789012345E-14 -> 1.123456789012345E-14

fmax31435 fma  1    0 1.123456789012345E-15 -> 1.123456789012345E-15

fmax31436 fma  1    0 1.123456789012345E-16 -> 1.123456789012345E-16

fmax31437 fma  1    0 1.123456789012345E-17 -> 1.123456789012345E-17

fmax31438 fma  1    0 1.123456789012345E-18 -> 1.123456789012345E-18

fmax31439 fma  1    0 1.123456789012345E-19 -> 1.123456789012345E-19



-- same, reversed 0

fmax31440 fma  1   1.123456789012345     0 -> 1.123456789012345

fmax31441 fma  1   1.123456789012345E-1  0 -> 0.1123456789012345

fmax31442 fma  1   1.123456789012345E-2  0 -> 0.01123456789012345

fmax31443 fma  1   1.123456789012345E-3  0 -> 0.001123456789012345

fmax31444 fma  1   1.123456789012345E-4  0 -> 0.0001123456789012345

fmax31445 fma  1   1.123456789012345E-5  0 -> 0.00001123456789012345

fmax31446 fma  1   1.123456789012345E-6  0 -> 0.000001123456789012345

fmax31447 fma  1   1.123456789012345E-7  0 -> 1.123456789012345E-7

fmax31448 fma  1   1.123456789012345E-8  0 -> 1.123456789012345E-8

fmax31449 fma  1   1.123456789012345E-9  0 -> 1.123456789012345E-9

fmax31450 fma  1   1.123456789012345E-10 0 -> 1.123456789012345E-10

fmax31451 fma  1   1.123456789012345E-11 0 -> 1.123456789012345E-11

fmax31452 fma  1   1.123456789012345E-12 0 -> 1.123456789012345E-12

fmax31453 fma  1   1.123456789012345E-13 0 -> 1.123456789012345E-13

fmax31454 fma  1   1.123456789012345E-14 0 -> 1.123456789012345E-14

fmax31455 fma  1   1.123456789012345E-15 0 -> 1.123456789012345E-15

fmax31456 fma  1   1.123456789012345E-16 0 -> 1.123456789012345E-16

fmax31457 fma  1   1.123456789012345E-17 0 -> 1.123456789012345E-17

fmax31458 fma  1   1.123456789012345E-18 0 -> 1.123456789012345E-18

fmax31459 fma  1   1.123456789012345E-19 0 -> 1.123456789012345E-19



-- same, Es on the 0

fmax31460 fma  1   1.123456789012345  0E-0   -> 1.123456789012345

fmax31461 fma  1   1.123456789012345  0E-1   -> 1.123456789012345

fmax31462 fma  1   1.123456789012345  0E-2   -> 1.123456789012345

fmax31463 fma  1   1.123456789012345  0E-3   -> 1.123456789012345

fmax31464 fma  1   1.123456789012345  0E-4   -> 1.123456789012345

fmax31465 fma  1   1.123456789012345  0E-5   -> 1.123456789012345

fmax31466 fma  1   1.123456789012345  0E-6   -> 1.123456789012345

fmax31467 fma  1   1.123456789012345  0E-7   -> 1.123456789012345

fmax31468 fma  1   1.123456789012345  0E-8   -> 1.123456789012345

fmax31469 fma  1   1.123456789012345  0E-9   -> 1.123456789012345

fmax31470 fma  1   1.123456789012345  0E-10  -> 1.123456789012345

fmax31471 fma  1   1.123456789012345  0E-11  -> 1.123456789012345

fmax31472 fma  1   1.123456789012345  0E-12  -> 1.123456789012345

fmax31473 fma  1   1.123456789012345  0E-13  -> 1.123456789012345

fmax31474 fma  1   1.123456789012345  0E-14  -> 1.123456789012345

fmax31475 fma  1   1.123456789012345  0E-15  -> 1.123456789012345

-- next four flag Rounded because the 0 extends the result

fmax31476 fma  1   1.123456789012345  0E-16  -> 1.123456789012345 Rounded

fmax31477 fma  1   1.123456789012345  0E-17  -> 1.123456789012345 Rounded

fmax31478 fma  1   1.123456789012345  0E-18  -> 1.123456789012345 Rounded

fmax31479 fma  1   1.123456789012345  0E-19  -> 1.123456789012345 Rounded



-- sum of two opposite-sign operands is exactly 0 and floor => -0

precision:   16

maxExponent: 384

minexponent: -383



rounding:    half_up

-- exact zeros from zeros

fmax31500 fma  1    0        0E-19  ->  0E-19

fmax31501 fma  1   -0        0E-19  ->  0E-19

fmax31502 fma  1    0       -0E-19  ->  0E-19

fmax31503 fma  1   -0       -0E-19  -> -0E-19

fmax31504 fma  1    0E-400   0E-19  ->  0E-398 Clamped

fmax31505 fma  1   -0E-400   0E-19  ->  0E-398 Clamped

fmax31506 fma  1    0E-400  -0E-19  ->  0E-398 Clamped

fmax31507 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped

-- inexact zeros

fmax31511 fma  1    1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax31512 fma  1   -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax31513 fma  1    1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax31514 fma  1   -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

-- some exact zeros from non-zeros

fmax31515 fma  1    1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax31516 fma  1   -1E-401   1E-401 ->  0E-398 Clamped

fmax31517 fma  1    1E-401  -1E-401 ->  0E-398 Clamped

fmax31518 fma  1   -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped



rounding:    half_down

-- exact zeros from zeros

fmax31520 fma  1    0        0E-19  ->  0E-19

fmax31521 fma  1   -0        0E-19  ->  0E-19

fmax31522 fma  1    0       -0E-19  ->  0E-19

fmax31523 fma  1   -0       -0E-19  -> -0E-19

fmax31524 fma  1    0E-400   0E-19  ->  0E-398 Clamped

fmax31525 fma  1   -0E-400   0E-19  ->  0E-398 Clamped

fmax31526 fma  1    0E-400  -0E-19  ->  0E-398 Clamped

fmax31527 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped

-- inexact zeros

fmax31531 fma  1    1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax31532 fma  1   -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax31533 fma  1    1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax31534 fma  1   -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

-- some exact zeros from non-zeros

fmax31535 fma  1    1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax31536 fma  1   -1E-401   1E-401 ->  0E-398 Clamped

fmax31537 fma  1    1E-401  -1E-401 ->  0E-398 Clamped

fmax31538 fma  1   -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped



rounding:    half_even

-- exact zeros from zeros

fmax31540 fma  1    0        0E-19  ->  0E-19

fmax31541 fma  1   -0        0E-19  ->  0E-19

fmax31542 fma  1    0       -0E-19  ->  0E-19

fmax31543 fma  1   -0       -0E-19  -> -0E-19

fmax31544 fma  1    0E-400   0E-19  ->  0E-398 Clamped

fmax31545 fma  1   -0E-400   0E-19  ->  0E-398 Clamped

fmax31546 fma  1    0E-400  -0E-19  ->  0E-398 Clamped

fmax31547 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped

-- inexact zeros

fmax31551 fma  1    1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax31552 fma  1   -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax31553 fma  1    1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax31554 fma  1   -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

-- some exact zeros from non-zeros

fmax31555 fma  1    1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax31556 fma  1   -1E-401   1E-401 ->  0E-398 Clamped

fmax31557 fma  1    1E-401  -1E-401 ->  0E-398 Clamped

fmax31558 fma  1   -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped



rounding:    up

-- exact zeros from zeros

fmax31560 fma  1    0        0E-19  ->  0E-19

fmax31561 fma  1   -0        0E-19  ->  0E-19

fmax31562 fma  1    0       -0E-19  ->  0E-19

fmax31563 fma  1   -0       -0E-19  -> -0E-19

fmax31564 fma  1    0E-400   0E-19  ->  0E-398 Clamped

fmax31565 fma  1   -0E-400   0E-19  ->  0E-398 Clamped

fmax31566 fma  1    0E-400  -0E-19  ->  0E-398 Clamped

fmax31567 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped

-- inexact zeros

fmax31571 fma  1    1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow

fmax31572 fma  1   -1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow

fmax31573 fma  1    1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow

fmax31574 fma  1   -1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow

-- some exact zeros from non-zeros

fmax31575 fma  1    1E-401   1E-401 ->  1E-398 Subnormal Inexact Rounded Underflow

fmax31576 fma  1   -1E-401   1E-401 ->  0E-398 Clamped

fmax31577 fma  1    1E-401  -1E-401 ->  0E-398 Clamped

fmax31578 fma  1   -1E-401  -1E-401 -> -1E-398 Subnormal Inexact Rounded Underflow



rounding:    down

-- exact zeros from zeros

fmax31580 fma  1    0        0E-19  ->  0E-19

fmax31581 fma  1   -0        0E-19  ->  0E-19

fmax31582 fma  1    0       -0E-19  ->  0E-19

fmax31583 fma  1   -0       -0E-19  -> -0E-19

fmax31584 fma  1    0E-400   0E-19  ->  0E-398 Clamped

fmax31585 fma  1   -0E-400   0E-19  ->  0E-398 Clamped

fmax31586 fma  1    0E-400  -0E-19  ->  0E-398 Clamped

fmax31587 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped

-- inexact zeros

fmax31591 fma  1    1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax31592 fma  1   -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax31593 fma  1    1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax31594 fma  1   -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

-- some exact zeros from non-zeros

fmax31595 fma  1    1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax31596 fma  1   -1E-401   1E-401 ->  0E-398 Clamped

fmax31597 fma  1    1E-401  -1E-401 ->  0E-398 Clamped

fmax31598 fma  1   -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped



rounding:    ceiling

-- exact zeros from zeros

fmax31600 fma  1    0        0E-19  ->  0E-19

fmax31601 fma  1   -0        0E-19  ->  0E-19

fmax31602 fma  1    0       -0E-19  ->  0E-19

fmax31603 fma  1   -0       -0E-19  -> -0E-19

fmax31604 fma  1    0E-400   0E-19  ->  0E-398 Clamped

fmax31605 fma  1   -0E-400   0E-19  ->  0E-398 Clamped

fmax31606 fma  1    0E-400  -0E-19  ->  0E-398 Clamped

fmax31607 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped

-- inexact zeros

fmax31611 fma  1    1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow

fmax31612 fma  1   -1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow

fmax31613 fma  1    1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax31614 fma  1   -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

-- some exact zeros from non-zeros

fmax31615 fma  1    1E-401   1E-401 ->  1E-398 Subnormal Inexact Rounded Underflow

fmax31616 fma  1   -1E-401   1E-401 ->  0E-398 Clamped

fmax31617 fma  1    1E-401  -1E-401 ->  0E-398 Clamped

fmax31618 fma  1   -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped



-- and the extra-special ugly case; unusual minuses marked by -- *

rounding:    floor

-- exact zeros from zeros

fmax31620 fma  1    0        0E-19  ->  0E-19

fmax31621 fma  1   -0        0E-19  -> -0E-19           -- *

fmax31622 fma  1    0       -0E-19  -> -0E-19           -- *

fmax31623 fma  1   -0       -0E-19  -> -0E-19

fmax31624 fma  1    0E-400   0E-19  ->  0E-398 Clamped

fmax31625 fma  1   -0E-400   0E-19  -> -0E-398 Clamped  -- *

fmax31626 fma  1    0E-400  -0E-19  -> -0E-398 Clamped  -- *

fmax31627 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped

-- inexact zeros

fmax31631 fma  1    1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax31632 fma  1   -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax31633 fma  1    1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow

fmax31634 fma  1   -1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow

-- some exact zeros from non-zeros

fmax31635 fma  1    1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax31636 fma  1   -1E-401   1E-401 -> -0E-398 Clamped  -- *

fmax31637 fma  1    1E-401  -1E-401 -> -0E-398 Clamped  -- *

fmax31638 fma  1   -1E-401  -1E-401 -> -1E-398 Subnormal Inexact Rounded Underflow



-- BigDecimal problem testcases 2006.01.23

precision:   16

maxExponent: 384

minexponent: -383



rounding:  down

precision: 7

fmax31651 fma  1    10001E+2  -2E+1 -> 1.00008E+6

precision: 6

fmax31652 fma  1    10001E+2  -2E+1 -> 1.00008E+6

precision: 5

fmax31653 fma  1    10001E+2  -2E+1 -> 1.0000E+6   Inexact Rounded

precision: 4

fmax31654 fma  1    10001E+2  -2E+1 -> 1.000E+6    Inexact Rounded

precision: 3

fmax31655 fma  1    10001E+2  -2E+1 -> 1.00E+6     Inexact Rounded

precision: 2

fmax31656 fma  1    10001E+2  -2E+1 -> 1.0E+6      Inexact Rounded

precision: 1

fmax31657 fma  1    10001E+2  -2E+1 -> 1E+6        Inexact Rounded



rounding:  half_even

precision: 7

fmax31661 fma  1    10001E+2  -2E+1 -> 1.00008E+6

precision: 6

fmax31662 fma  1    10001E+2  -2E+1 -> 1.00008E+6

precision: 5

fmax31663 fma  1    10001E+2  -2E+1 -> 1.0001E+6   Inexact Rounded

precision: 4

fmax31664 fma  1    10001E+2  -2E+1 -> 1.000E+6    Inexact Rounded

precision: 3

fmax31665 fma  1    10001E+2  -2E+1 -> 1.00E+6     Inexact Rounded

precision: 2

fmax31666 fma  1    10001E+2  -2E+1 -> 1.0E+6      Inexact Rounded

precision: 1

fmax31667 fma  1    10001E+2  -2E+1 -> 1E+6        Inexact Rounded



rounding:  up

precision: 7

fmax31671 fma  1    10001E+2  -2E+1 -> 1.00008E+6

precision: 6

fmax31672 fma  1    10001E+2  -2E+1 -> 1.00008E+6

precision: 5

fmax31673 fma  1    10001E+2  -2E+1 -> 1.0001E+6   Inexact Rounded

precision: 4

fmax31674 fma  1    10001E+2  -2E+1 -> 1.001E+6    Inexact Rounded

precision: 3

fmax31675 fma  1    10001E+2  -2E+1 -> 1.01E+6     Inexact Rounded

precision: 2

fmax31676 fma  1    10001E+2  -2E+1 -> 1.1E+6      Inexact Rounded

precision: 1

fmax31677 fma  1    10001E+2  -2E+1 -> 2E+6        Inexact Rounded



precision:   34

rounding:    half_up

maxExponent: 6144

minExponent: -6143

-- Examples from SQL proposal (Krishna Kulkarni)

fmax31701  fma  1   130E-2    120E-2    -> 2.50

fmax31702  fma  1   130E-2    12E-1     -> 2.50

fmax31703  fma  1   130E-2    1E0       -> 2.30

fmax31704  fma  1   1E2       1E4       -> 1.01E+4

fmax31705  subtract 130E-2  120E-2 -> 0.10

fmax31706  subtract 130E-2  12E-1  -> 0.10

fmax31707  subtract 130E-2  1E0    -> 0.30

fmax31708  subtract 1E2     1E4    -> -9.9E+3



------------------------------------------------------------------------

-- Same as above, using decimal64 default parameters                  --

------------------------------------------------------------------------

precision:   16

rounding:    half_even

maxExponent: 384

minexponent: -383



-- [first group are 'quick confidence check']

fmax36001 fma  1   1       1       ->  2

fmax36002 fma  1   2       3       ->  5

fmax36003 fma  1   '5.75'  '3.3'   ->  9.05

fmax36004 fma  1   '5'     '-3'    ->  2

fmax36005 fma  1   '-5'    '-3'    ->  -8

fmax36006 fma  1   '-7'    '2.5'   ->  -4.5

fmax36007 fma  1   '0.7'   '0.3'   ->  1.0

fmax36008 fma  1   '1.25'  '1.25'  ->  2.50

fmax36009 fma  1   '1.23456789'  '1.00000000' -> '2.23456789'

fmax36010 fma  1   '1.23456789'  '1.00000011' -> '2.23456800'



fmax36011 fma  1   '0.44444444444444444'  '0.55555555555555555' -> '1.000000000000000' Inexact Rounded

fmax36012 fma  1   '0.44444444444444440'  '0.55555555555555555' -> '1.000000000000000' Inexact Rounded

fmax36013 fma  1   '0.44444444444444444'  '0.55555555555555550' -> '0.9999999999999999' Inexact Rounded

fmax36014 fma  1   '0.444444444444444449'    '0' -> '0.4444444444444444' Inexact Rounded

fmax36015 fma  1   '0.4444444444444444499'   '0' -> '0.4444444444444444' Inexact Rounded

fmax36016 fma  1   '0.44444444444444444999'  '0' -> '0.4444444444444444' Inexact Rounded

fmax36017 fma  1   '0.44444444444444445000'  '0' -> '0.4444444444444444' Inexact Rounded

fmax36018 fma  1   '0.44444444444444445001'  '0' -> '0.4444444444444445' Inexact Rounded

fmax36019 fma  1   '0.4444444444444444501'   '0' -> '0.4444444444444445' Inexact Rounded

fmax36020 fma  1   '0.444444444444444451'    '0' -> '0.4444444444444445' Inexact Rounded



fmax36021 fma  1   0 1 -> 1

fmax36022 fma  1   1 1 -> 2

fmax36023 fma  1   2 1 -> 3

fmax36024 fma  1   3 1 -> 4

fmax36025 fma  1   4 1 -> 5

fmax36026 fma  1   5 1 -> 6

fmax36027 fma  1   6 1 -> 7

fmax36028 fma  1   7 1 -> 8

fmax36029 fma  1   8 1 -> 9

fmax36030 fma  1   9 1 -> 10



-- some carrying effects

fmax36031 fma  1   '0.9998'  '0.0000' -> '0.9998'

fmax36032 fma  1   '0.9998'  '0.0001' -> '0.9999'

fmax36033 fma  1   '0.9998'  '0.0002' -> '1.0000'

fmax36034 fma  1   '0.9998'  '0.0003' -> '1.0001'



fmax36035 fma  1   '70'      '10000e+16' -> '1.000000000000000E+20' Inexact Rounded

fmax36036 fma  1   '700'     '10000e+16' -> '1.000000000000000E+20' Inexact Rounded

fmax36037 fma  1   '7000'    '10000e+16' -> '1.000000000000000E+20' Inexact Rounded

fmax36038 fma  1   '70000'   '10000e+16' -> '1.000000000000001E+20' Inexact Rounded

fmax36039 fma  1   '700000'  '10000e+16' -> '1.000000000000007E+20' Rounded



-- symmetry:

fmax36040 fma  1   '10000e+16'  '70' -> '1.000000000000000E+20' Inexact Rounded

fmax36041 fma  1   '10000e+16'  '700' -> '1.000000000000000E+20' Inexact Rounded

fmax36042 fma  1   '10000e+16'  '7000' -> '1.000000000000000E+20' Inexact Rounded

fmax36044 fma  1   '10000e+16'  '70000' -> '1.000000000000001E+20' Inexact Rounded

fmax36045 fma  1   '10000e+16'  '700000' -> '1.000000000000007E+20' Rounded



fmax36046 fma  1   '10000e+9'  '7' -> '10000000000007'

fmax36047 fma  1   '10000e+9'  '70' -> '10000000000070'

fmax36048 fma  1   '10000e+9'  '700' -> '10000000000700'

fmax36049 fma  1   '10000e+9'  '7000' -> '10000000007000'

fmax36050 fma  1   '10000e+9'  '70000' -> '10000000070000'

fmax36051 fma  1   '10000e+9'  '700000' -> '10000000700000'



-- examples from decarith

fmax36053 fma  1   '12' '7.00' -> '19.00'

fmax36054 fma  1   '1.3' '-1.07' -> '0.23'

fmax36055 fma  1   '1.3' '-1.30' -> '0.00'

fmax36056 fma  1   '1.3' '-2.07' -> '-0.77'

fmax36057 fma  1   '1E+2' '1E+4' -> '1.01E+4'



-- from above

fmax36061 fma  1   1 '0.1' -> '1.1'

fmax36062 fma  1   1 '0.01' -> '1.01'

fmax36063 fma  1   1 '0.001' -> '1.001'

fmax36064 fma  1   1 '0.0001' -> '1.0001'

fmax36065 fma  1   1 '0.00001' -> '1.00001'

fmax36066 fma  1   1 '0.000001' -> '1.000001'

fmax36067 fma  1   1 '0.0000001' -> '1.0000001'

fmax36068 fma  1   1 '0.00000001' -> '1.00000001'



-- some funny zeros [in case of bad signum]

fmax36070 fma  1   1  0    -> 1

fmax36071 fma  1   1 0.    -> 1

fmax36072 fma  1   1  .0   -> 1.0

fmax36073 fma  1   1 0.0   -> 1.0

fmax36074 fma  1   1 0.00  -> 1.00

fmax36075 fma  1    0  1   -> 1

fmax36076 fma  1   0.  1   -> 1

fmax36077 fma  1    .0 1   -> 1.0

fmax36078 fma  1   0.0 1   -> 1.0

fmax36079 fma  1   0.00 1  -> 1.00



-- some carries

fmax36080 fma  1   9999999999999998 1  -> 9999999999999999

fmax36081 fma  1   9999999999999999 1  -> 1.000000000000000E+16 Rounded

fmax36082 fma  1    999999999999999 1  -> 1000000000000000

fmax36083 fma  1      9999999999999 1  -> 10000000000000

fmax36084 fma  1        99999999999 1  -> 100000000000

fmax36085 fma  1          999999999 1  -> 1000000000

fmax36086 fma  1            9999999 1  -> 10000000

fmax36087 fma  1              99999 1  -> 100000

fmax36088 fma  1                999 1  -> 1000

fmax36089 fma  1                  9 1  -> 10





-- more LHS swaps

fmax36090 fma  1   '-56267E-10'   0 ->  '-0.0000056267'

fmax36091 fma  1   '-56267E-6'    0 ->  '-0.056267'

fmax36092 fma  1   '-56267E-5'    0 ->  '-0.56267'

fmax36093 fma  1   '-56267E-4'    0 ->  '-5.6267'

fmax36094 fma  1   '-56267E-3'    0 ->  '-56.267'

fmax36095 fma  1   '-56267E-2'    0 ->  '-562.67'

fmax36096 fma  1   '-56267E-1'    0 ->  '-5626.7'

fmax36097 fma  1   '-56267E-0'    0 ->  '-56267'

fmax36098 fma  1   '-5E-10'       0 ->  '-5E-10'

fmax36099 fma  1   '-5E-7'        0 ->  '-5E-7'

fmax36100 fma  1   '-5E-6'        0 ->  '-0.000005'

fmax36101 fma  1   '-5E-5'        0 ->  '-0.00005'

fmax36102 fma  1   '-5E-4'        0 ->  '-0.0005'

fmax36103 fma  1   '-5E-1'        0 ->  '-0.5'

fmax36104 fma  1   '-5E0'         0 ->  '-5'

fmax36105 fma  1   '-5E1'         0 ->  '-50'

fmax36106 fma  1   '-5E5'         0 ->  '-500000'

fmax36107 fma  1   '-5E15'        0 ->  '-5000000000000000'

fmax36108 fma  1   '-5E16'        0 ->  '-5.000000000000000E+16'   Rounded

fmax36109 fma  1   '-5E17'        0 ->  '-5.000000000000000E+17'  Rounded

fmax36110 fma  1   '-5E18'        0 ->  '-5.000000000000000E+18'  Rounded

fmax36111 fma  1   '-5E100'       0 ->  '-5.000000000000000E+100' Rounded



-- more RHS swaps

fmax36113 fma  1   0  '-56267E-10' ->  '-0.0000056267'

fmax36114 fma  1   0  '-56267E-6'  ->  '-0.056267'

fmax36116 fma  1   0  '-56267E-5'  ->  '-0.56267'

fmax36117 fma  1   0  '-56267E-4'  ->  '-5.6267'

fmax36119 fma  1   0  '-56267E-3'  ->  '-56.267'

fmax36120 fma  1   0  '-56267E-2'  ->  '-562.67'

fmax36121 fma  1   0  '-56267E-1'  ->  '-5626.7'

fmax36122 fma  1   0  '-56267E-0'  ->  '-56267'

fmax36123 fma  1   0  '-5E-10'     ->  '-5E-10'

fmax36124 fma  1   0  '-5E-7'      ->  '-5E-7'

fmax36125 fma  1   0  '-5E-6'      ->  '-0.000005'

fmax36126 fma  1   0  '-5E-5'      ->  '-0.00005'

fmax36127 fma  1   0  '-5E-4'      ->  '-0.0005'

fmax36128 fma  1   0  '-5E-1'      ->  '-0.5'

fmax36129 fma  1   0  '-5E0'       ->  '-5'

fmax36130 fma  1   0  '-5E1'       ->  '-50'

fmax36131 fma  1   0  '-5E5'       ->  '-500000'

fmax36132 fma  1   0  '-5E15'      ->  '-5000000000000000'

fmax36133 fma  1   0  '-5E16'      ->  '-5.000000000000000E+16'   Rounded

fmax36134 fma  1   0  '-5E17'      ->  '-5.000000000000000E+17'   Rounded

fmax36135 fma  1   0  '-5E18'      ->  '-5.000000000000000E+18'   Rounded

fmax36136 fma  1   0  '-5E100'     ->  '-5.000000000000000E+100'  Rounded



-- related

fmax36137 fma  1    1  '0E-19'      ->  '1.000000000000000'  Rounded

fmax36138 fma  1   -1  '0E-19'      ->  '-1.000000000000000' Rounded

fmax36139 fma  1   '0E-19' 1        ->  '1.000000000000000'  Rounded

fmax36140 fma  1   '0E-19' -1       ->  '-1.000000000000000' Rounded

fmax36141 fma  1   1E+11   0.0000   ->  '100000000000.0000'

fmax36142 fma  1   1E+11   0.00000  ->  '100000000000.0000'  Rounded

fmax36143 fma  1   0.000   1E+12    ->  '1000000000000.000'

fmax36144 fma  1   0.0000  1E+12    ->  '1000000000000.000'  Rounded



-- [some of the next group are really constructor tests]

fmax36146 fma  1   '00.0'  0       ->  '0.0'

fmax36147 fma  1   '0.00'  0       ->  '0.00'

fmax36148 fma  1    0      '0.00'  ->  '0.00'

fmax36149 fma  1    0      '00.0'  ->  '0.0'

fmax36150 fma  1   '00.0'  '0.00'  ->  '0.00'

fmax36151 fma  1   '0.00'  '00.0'  ->  '0.00'

fmax36152 fma  1   '3'     '.3'    ->  '3.3'

fmax36153 fma  1   '3.'    '.3'    ->  '3.3'

fmax36154 fma  1   '3.0'   '.3'    ->  '3.3'

fmax36155 fma  1   '3.00'  '.3'    ->  '3.30'

fmax36156 fma  1   '3'     '3'     ->  '6'

fmax36157 fma  1   '3'     '+3'    ->  '6'

fmax36158 fma  1   '3'     '-3'    ->  '0'

fmax36159 fma  1   '0.3'   '-0.3'  ->  '0.0'

fmax36160 fma  1   '0.03'  '-0.03' ->  '0.00'



-- try borderline precision, with carries, etc.

fmax36161 fma  1   '1E+13' '-1'    -> '9999999999999'

fmax36162 fma  1   '1E+13'  '1.11' -> '10000000000001.11'

fmax36163 fma  1   '1.11'  '1E+13' -> '10000000000001.11'

fmax36164 fma  1   '-1'    '1E+13' -> '9999999999999'

fmax36165 fma  1   '7E+13' '-1'    -> '69999999999999'

fmax36166 fma  1   '7E+13'  '1.11' -> '70000000000001.11'

fmax36167 fma  1   '1.11'  '7E+13' -> '70000000000001.11'

fmax36168 fma  1   '-1'    '7E+13' -> '69999999999999'



--                    1234567890123456      1234567890123456      1 234567890123456

fmax36170 fma  1   '0.4444444444444444'  '0.5555555555555563' -> '1.000000000000001' Inexact Rounded

fmax36171 fma  1   '0.4444444444444444'  '0.5555555555555562' -> '1.000000000000001' Inexact Rounded

fmax36172 fma  1   '0.4444444444444444'  '0.5555555555555561' -> '1.000000000000000' Inexact Rounded

fmax36173 fma  1   '0.4444444444444444'  '0.5555555555555560' -> '1.000000000000000' Inexact Rounded

fmax36174 fma  1   '0.4444444444444444'  '0.5555555555555559' -> '1.000000000000000' Inexact Rounded

fmax36175 fma  1   '0.4444444444444444'  '0.5555555555555558' -> '1.000000000000000' Inexact Rounded

fmax36176 fma  1   '0.4444444444444444'  '0.5555555555555557' -> '1.000000000000000' Inexact Rounded

fmax36177 fma  1   '0.4444444444444444'  '0.5555555555555556' -> '1.000000000000000' Rounded

fmax36178 fma  1   '0.4444444444444444'  '0.5555555555555555' -> '0.9999999999999999'

fmax36179 fma  1   '0.4444444444444444'  '0.5555555555555554' -> '0.9999999999999998'

fmax36180 fma  1   '0.4444444444444444'  '0.5555555555555553' -> '0.9999999999999997'

fmax36181 fma  1   '0.4444444444444444'  '0.5555555555555552' -> '0.9999999999999996'

fmax36182 fma  1   '0.4444444444444444'  '0.5555555555555551' -> '0.9999999999999995'

fmax36183 fma  1   '0.4444444444444444'  '0.5555555555555550' -> '0.9999999999999994'



-- and some more, including residue effects and different roundings

rounding: half_up

fmax36200 fma  1   '6543210123456789' 0             -> '6543210123456789'

fmax36201 fma  1   '6543210123456789' 0.000000001   -> '6543210123456789' Inexact Rounded

fmax36202 fma  1   '6543210123456789' 0.000001      -> '6543210123456789' Inexact Rounded

fmax36203 fma  1   '6543210123456789' 0.1           -> '6543210123456789' Inexact Rounded

fmax36204 fma  1   '6543210123456789' 0.4           -> '6543210123456789' Inexact Rounded

fmax36205 fma  1   '6543210123456789' 0.49          -> '6543210123456789' Inexact Rounded

fmax36206 fma  1   '6543210123456789' 0.499999      -> '6543210123456789' Inexact Rounded

fmax36207 fma  1   '6543210123456789' 0.499999   -> '6543210123456789' Inexact Rounded

fmax36208 fma  1   '6543210123456789' 0.5           -> '6543210123456790' Inexact Rounded

fmax36209 fma  1   '6543210123456789' 0.500000001   -> '6543210123456790' Inexact Rounded

fmax36210 fma  1   '6543210123456789' 0.500001      -> '6543210123456790' Inexact Rounded

fmax36211 fma  1   '6543210123456789' 0.51          -> '6543210123456790' Inexact Rounded

fmax36212 fma  1   '6543210123456789' 0.6           -> '6543210123456790' Inexact Rounded

fmax36213 fma  1   '6543210123456789' 0.9           -> '6543210123456790' Inexact Rounded

fmax36214 fma  1   '6543210123456789' 0.99999       -> '6543210123456790' Inexact Rounded

fmax36215 fma  1   '6543210123456789' 0.999999   -> '6543210123456790' Inexact Rounded

fmax36216 fma  1   '6543210123456789' 1             -> '6543210123456790'

fmax36217 fma  1   '6543210123456789' 1.000000001   -> '6543210123456790' Inexact Rounded

fmax36218 fma  1   '6543210123456789' 1.00001       -> '6543210123456790' Inexact Rounded

fmax36219 fma  1   '6543210123456789' 1.1           -> '6543210123456790' Inexact Rounded



rounding: half_even

fmax36220 fma  1   '6543210123456789' 0             -> '6543210123456789'

fmax36221 fma  1   '6543210123456789' 0.000000001   -> '6543210123456789' Inexact Rounded

fmax36222 fma  1   '6543210123456789' 0.000001      -> '6543210123456789' Inexact Rounded

fmax36223 fma  1   '6543210123456789' 0.1           -> '6543210123456789' Inexact Rounded

fmax36224 fma  1   '6543210123456789' 0.4           -> '6543210123456789' Inexact Rounded

fmax36225 fma  1   '6543210123456789' 0.49          -> '6543210123456789' Inexact Rounded

fmax36226 fma  1   '6543210123456789' 0.499999      -> '6543210123456789' Inexact Rounded

fmax36227 fma  1   '6543210123456789' 0.499999   -> '6543210123456789' Inexact Rounded

fmax36228 fma  1   '6543210123456789' 0.5           -> '6543210123456790' Inexact Rounded

fmax36229 fma  1   '6543210123456789' 0.500000001   -> '6543210123456790' Inexact Rounded

fmax36230 fma  1   '6543210123456789' 0.500001      -> '6543210123456790' Inexact Rounded

fmax36231 fma  1   '6543210123456789' 0.51          -> '6543210123456790' Inexact Rounded

fmax36232 fma  1   '6543210123456789' 0.6           -> '6543210123456790' Inexact Rounded

fmax36233 fma  1   '6543210123456789' 0.9           -> '6543210123456790' Inexact Rounded

fmax36234 fma  1   '6543210123456789' 0.99999       -> '6543210123456790' Inexact Rounded

fmax36235 fma  1   '6543210123456789' 0.999999   -> '6543210123456790' Inexact Rounded

fmax36236 fma  1   '6543210123456789' 1             -> '6543210123456790'

fmax36237 fma  1   '6543210123456789' 1.00000001    -> '6543210123456790' Inexact Rounded

fmax36238 fma  1   '6543210123456789' 1.00001       -> '6543210123456790' Inexact Rounded

fmax36239 fma  1   '6543210123456789' 1.1           -> '6543210123456790' Inexact Rounded

-- critical few with even bottom digit...

fmax36240 fma  1   '6543210123456788' 0.499999   -> '6543210123456788' Inexact Rounded

fmax36241 fma  1   '6543210123456788' 0.5           -> '6543210123456788' Inexact Rounded

fmax36242 fma  1   '6543210123456788' 0.500000001   -> '6543210123456789' Inexact Rounded



rounding: down

fmax36250 fma  1   '6543210123456789' 0             -> '6543210123456789'

fmax36251 fma  1   '6543210123456789' 0.000000001   -> '6543210123456789' Inexact Rounded

fmax36252 fma  1   '6543210123456789' 0.000001      -> '6543210123456789' Inexact Rounded

fmax36253 fma  1   '6543210123456789' 0.1           -> '6543210123456789' Inexact Rounded

fmax36254 fma  1   '6543210123456789' 0.4           -> '6543210123456789' Inexact Rounded

fmax36255 fma  1   '6543210123456789' 0.49          -> '6543210123456789' Inexact Rounded

fmax36256 fma  1   '6543210123456789' 0.499999      -> '6543210123456789' Inexact Rounded

fmax36257 fma  1   '6543210123456789' 0.499999   -> '6543210123456789' Inexact Rounded

fmax36258 fma  1   '6543210123456789' 0.5           -> '6543210123456789' Inexact Rounded

fmax36259 fma  1   '6543210123456789' 0.500000001   -> '6543210123456789' Inexact Rounded

fmax36260 fma  1   '6543210123456789' 0.500001      -> '6543210123456789' Inexact Rounded

fmax36261 fma  1   '6543210123456789' 0.51          -> '6543210123456789' Inexact Rounded

fmax36262 fma  1   '6543210123456789' 0.6           -> '6543210123456789' Inexact Rounded

fmax36263 fma  1   '6543210123456789' 0.9           -> '6543210123456789' Inexact Rounded

fmax36264 fma  1   '6543210123456789' 0.99999       -> '6543210123456789' Inexact Rounded

fmax36265 fma  1   '6543210123456789' 0.999999   -> '6543210123456789' Inexact Rounded

fmax36266 fma  1   '6543210123456789' 1             -> '6543210123456790'

fmax36267 fma  1   '6543210123456789' 1.00000001    -> '6543210123456790' Inexact Rounded

fmax36268 fma  1   '6543210123456789' 1.00001       -> '6543210123456790' Inexact Rounded

fmax36269 fma  1   '6543210123456789' 1.1           -> '6543210123456790' Inexact Rounded



-- 1 in last place tests

rounding: half_even

fmax36301 fma  1    -1   1      ->   0

fmax36302 fma  1     0   1      ->   1

fmax36303 fma  1     1   1      ->   2

fmax36304 fma  1    12   1      ->  13

fmax36305 fma  1    98   1      ->  99

fmax36306 fma  1    99   1      -> 100

fmax36307 fma  1   100   1      -> 101

fmax36308 fma  1   101   1      -> 102

fmax36309 fma  1    -1  -1      ->  -2

fmax36310 fma  1     0  -1      ->  -1

fmax36311 fma  1     1  -1      ->   0

fmax36312 fma  1    12  -1      ->  11

fmax36313 fma  1    98  -1      ->  97

fmax36314 fma  1    99  -1      ->  98

fmax36315 fma  1   100  -1      ->  99

fmax36316 fma  1   101  -1      -> 100



fmax36321 fma  1   -0.01  0.01    ->  0.00

fmax36322 fma  1    0.00  0.01    ->  0.01

fmax36323 fma  1    0.01  0.01    ->  0.02

fmax36324 fma  1    0.12  0.01    ->  0.13

fmax36325 fma  1    0.98  0.01    ->  0.99

fmax36326 fma  1    0.99  0.01    ->  1.00

fmax36327 fma  1    1.00  0.01    ->  1.01

fmax36328 fma  1    1.01  0.01    ->  1.02

fmax36329 fma  1   -0.01 -0.01    -> -0.02

fmax36330 fma  1    0.00 -0.01    -> -0.01

fmax36331 fma  1    0.01 -0.01    ->  0.00

fmax36332 fma  1    0.12 -0.01    ->  0.11

fmax36333 fma  1    0.98 -0.01    ->  0.97

fmax36334 fma  1    0.99 -0.01    ->  0.98

fmax36335 fma  1    1.00 -0.01    ->  0.99

fmax36336 fma  1    1.01 -0.01    ->  1.00



-- some more cases where fma  1  ing 0 affects the coefficient

fmax36340 fma  1   1E+3    0    ->         1000

fmax36341 fma  1   1E+15   0    ->    1000000000000000

fmax36342 fma  1   1E+16   0    ->   1.000000000000000E+16  Rounded

fmax36343 fma  1   1E+17   0    ->   1.000000000000000E+17  Rounded

-- which simply follow from these cases ...

fmax36344 fma  1   1E+3    1    ->         1001

fmax36345 fma  1   1E+15   1    ->    1000000000000001

fmax36346 fma  1   1E+16   1    ->   1.000000000000000E+16  Inexact Rounded

fmax36347 fma  1   1E+17   1    ->   1.000000000000000E+17  Inexact Rounded

fmax36348 fma  1   1E+3    7    ->         1007

fmax36349 fma  1   1E+15   7    ->    1000000000000007

fmax36350 fma  1   1E+16   7    ->   1.000000000000001E+16  Inexact Rounded

fmax36351 fma  1   1E+17   7    ->   1.000000000000000E+17  Inexact Rounded



-- tryzeros cases

fmax36361  fma  1   0E+50 10000E+1  -> 1.0000E+5

fmax36362  fma  1   10000E+1 0E-50  -> 100000.0000000000  Rounded

fmax36363  fma  1   10000E+1 10000E-50  -> 100000.0000000000  Rounded Inexact

fmax36364  fma  1   12.34    0e-398  -> 12.34000000000000  Rounded



-- ulp replacement tests

fmax36400 fma  1     1   77e-14      ->  1.00000000000077

fmax36401 fma  1     1   77e-15      ->  1.000000000000077

fmax36402 fma  1     1   77e-16      ->  1.000000000000008 Inexact Rounded

fmax36403 fma  1     1   77e-17      ->  1.000000000000001 Inexact Rounded

fmax36404 fma  1     1   77e-18      ->  1.000000000000000 Inexact Rounded

fmax36405 fma  1     1   77e-19      ->  1.000000000000000 Inexact Rounded

fmax36406 fma  1     1   77e-99      ->  1.000000000000000 Inexact Rounded



fmax36410 fma  1    10   77e-14      ->  10.00000000000077

fmax36411 fma  1    10   77e-15      ->  10.00000000000008 Inexact Rounded

fmax36412 fma  1    10   77e-16      ->  10.00000000000001 Inexact Rounded

fmax36413 fma  1    10   77e-17      ->  10.00000000000000 Inexact Rounded

fmax36414 fma  1    10   77e-18      ->  10.00000000000000 Inexact Rounded

fmax36415 fma  1    10   77e-19      ->  10.00000000000000 Inexact Rounded

fmax36416 fma  1    10   77e-99      ->  10.00000000000000 Inexact Rounded



fmax36420 fma  1    77e-14       1   ->  1.00000000000077

fmax36421 fma  1    77e-15       1   ->  1.000000000000077

fmax36422 fma  1    77e-16       1   ->  1.000000000000008 Inexact Rounded

fmax36423 fma  1    77e-17       1   ->  1.000000000000001 Inexact Rounded

fmax36424 fma  1    77e-18       1   ->  1.000000000000000 Inexact Rounded

fmax36425 fma  1    77e-19       1   ->  1.000000000000000 Inexact Rounded

fmax36426 fma  1    77e-99       1   ->  1.000000000000000 Inexact Rounded



fmax36430 fma  1    77e-14      10   ->  10.00000000000077

fmax36431 fma  1    77e-15      10   ->  10.00000000000008 Inexact Rounded

fmax36432 fma  1    77e-16      10   ->  10.00000000000001 Inexact Rounded

fmax36433 fma  1    77e-17      10   ->  10.00000000000000 Inexact Rounded

fmax36434 fma  1    77e-18      10   ->  10.00000000000000 Inexact Rounded

fmax36435 fma  1    77e-19      10   ->  10.00000000000000 Inexact Rounded

fmax36436 fma  1    77e-99      10   ->  10.00000000000000 Inexact Rounded



-- negative ulps

fmax36440 fma  1     1   -77e-14      ->  0.99999999999923

fmax36441 fma  1     1   -77e-15      ->  0.999999999999923

fmax36442 fma  1     1   -77e-16      ->  0.9999999999999923

fmax36443 fma  1     1   -77e-17      ->  0.9999999999999992 Inexact Rounded

fmax36444 fma  1     1   -77e-18      ->  0.9999999999999999 Inexact Rounded

fmax36445 fma  1     1   -77e-19      ->  1.000000000000000 Inexact Rounded

fmax36446 fma  1     1   -77e-99      ->  1.000000000000000 Inexact Rounded



fmax36450 fma  1    10   -77e-14      ->   9.99999999999923

fmax36451 fma  1    10   -77e-15      ->   9.999999999999923

fmax36452 fma  1    10   -77e-16      ->   9.999999999999992 Inexact Rounded

fmax36453 fma  1    10   -77e-17      ->   9.999999999999999 Inexact Rounded

fmax36454 fma  1    10   -77e-18      ->  10.00000000000000 Inexact Rounded

fmax36455 fma  1    10   -77e-19      ->  10.00000000000000 Inexact Rounded

fmax36456 fma  1    10   -77e-99      ->  10.00000000000000 Inexact Rounded



fmax36460 fma  1    -77e-14       1   ->  0.99999999999923

fmax36461 fma  1    -77e-15       1   ->  0.999999999999923

fmax36462 fma  1    -77e-16       1   ->  0.9999999999999923

fmax36463 fma  1    -77e-17       1   ->  0.9999999999999992 Inexact Rounded

fmax36464 fma  1    -77e-18       1   ->  0.9999999999999999 Inexact Rounded

fmax36465 fma  1    -77e-19       1   ->  1.000000000000000 Inexact Rounded

fmax36466 fma  1    -77e-99       1   ->  1.000000000000000 Inexact Rounded



fmax36470 fma  1    -77e-14      10   ->   9.99999999999923

fmax36471 fma  1    -77e-15      10   ->   9.999999999999923

fmax36472 fma  1    -77e-16      10   ->   9.999999999999992 Inexact Rounded

fmax36473 fma  1    -77e-17      10   ->   9.999999999999999 Inexact Rounded

fmax36474 fma  1    -77e-18      10   ->  10.00000000000000 Inexact Rounded

fmax36475 fma  1    -77e-19      10   ->  10.00000000000000 Inexact Rounded

fmax36476 fma  1    -77e-99      10   ->  10.00000000000000 Inexact Rounded



-- negative ulps

fmax36480 fma  1    -1    77e-14      ->  -0.99999999999923

fmax36481 fma  1    -1    77e-15      ->  -0.999999999999923

fmax36482 fma  1    -1    77e-16      ->  -0.9999999999999923

fmax36483 fma  1    -1    77e-17      ->  -0.9999999999999992 Inexact Rounded

fmax36484 fma  1    -1    77e-18      ->  -0.9999999999999999 Inexact Rounded

fmax36485 fma  1    -1    77e-19      ->  -1.000000000000000 Inexact Rounded

fmax36486 fma  1    -1    77e-99      ->  -1.000000000000000 Inexact Rounded



fmax36490 fma  1   -10    77e-14      ->   -9.99999999999923

fmax36491 fma  1   -10    77e-15      ->   -9.999999999999923

fmax36492 fma  1   -10    77e-16      ->   -9.999999999999992 Inexact Rounded

fmax36493 fma  1   -10    77e-17      ->   -9.999999999999999 Inexact Rounded

fmax36494 fma  1   -10    77e-18      ->  -10.00000000000000 Inexact Rounded

fmax36495 fma  1   -10    77e-19      ->  -10.00000000000000 Inexact Rounded

fmax36496 fma  1   -10    77e-99      ->  -10.00000000000000 Inexact Rounded



fmax36500 fma  1     77e-14      -1   ->  -0.99999999999923

fmax36501 fma  1     77e-15      -1   ->  -0.999999999999923

fmax36502 fma  1     77e-16      -1   ->  -0.9999999999999923

fmax36503 fma  1     77e-17      -1   ->  -0.9999999999999992 Inexact Rounded

fmax36504 fma  1     77e-18      -1   ->  -0.9999999999999999 Inexact Rounded

fmax36505 fma  1     77e-19      -1   ->  -1.000000000000000 Inexact Rounded

fmax36506 fma  1     77e-99      -1   ->  -1.000000000000000 Inexact Rounded



fmax36510 fma  1     77e-14      -10  ->   -9.99999999999923

fmax36511 fma  1     77e-15      -10  ->   -9.999999999999923

fmax36512 fma  1     77e-16      -10  ->   -9.999999999999992 Inexact Rounded

fmax36513 fma  1     77e-17      -10  ->   -9.999999999999999 Inexact Rounded

fmax36514 fma  1     77e-18      -10  ->  -10.00000000000000 Inexact Rounded

fmax36515 fma  1     77e-19      -10  ->  -10.00000000000000 Inexact Rounded

fmax36516 fma  1     77e-99      -10  ->  -10.00000000000000 Inexact Rounded





-- long operands

fmax36521 fma  1   101234562345678000 0 -> 1.012345623456780E+17 Rounded

fmax36522 fma  1   0 101234562345678000 -> 1.012345623456780E+17 Rounded

fmax36523 fma  1   10123456234567800  0 -> 1.012345623456780E+16 Rounded

fmax36524 fma  1   0 10123456234567800  -> 1.012345623456780E+16 Rounded

fmax36525 fma  1   10123456234567890  0 -> 1.012345623456789E+16 Rounded

fmax36526 fma  1   0 10123456234567890  -> 1.012345623456789E+16 Rounded

fmax36527 fma  1   10123456234567891  0 -> 1.012345623456789E+16 Inexact Rounded

fmax36528 fma  1   0 10123456234567891  -> 1.012345623456789E+16 Inexact Rounded

fmax36529 fma  1   101234562345678901 0 -> 1.012345623456789E+17 Inexact Rounded

fmax36530 fma  1   0 101234562345678901 -> 1.012345623456789E+17 Inexact Rounded

fmax36531 fma  1   10123456234567896  0 -> 1.012345623456790E+16 Inexact Rounded

fmax36532 fma  1   0 10123456234567896  -> 1.012345623456790E+16 Inexact Rounded



-- verify a query

rounding:     down

fmax36561 fma  1   1e-398 9.000000000000000E+384 -> 9.000000000000000E+384 Inexact Rounded

fmax36562 fma  1        0 9.000000000000000E+384 -> 9.000000000000000E+384 Rounded

-- and using decimal64 bounds...

rounding:     down

fmax36563 fma  1   1e-388 9.000000000000000E+374 -> 9.000000000000000E+374 Inexact Rounded

fmax36564 fma  1        0 9.000000000000000E+374 -> 9.000000000000000E+374 Rounded



-- more zeros, etc.

rounding: half_even



fmax36701 fma  1   5.00 1.00E-3 -> 5.00100

fmax36702 fma  1   00.00 0.000  -> 0.000

fmax36703 fma  1   00.00 0E-3   -> 0.000

fmax36704 fma  1   0E-3  00.00  -> 0.000



fmax36710 fma  1   0E+3  00.00  -> 0.00

fmax36711 fma  1   0E+3  00.0   -> 0.0

fmax36712 fma  1   0E+3  00.    -> 0

fmax36713 fma  1   0E+3  00.E+1 -> 0E+1

fmax36714 fma  1   0E+3  00.E+2 -> 0E+2

fmax36715 fma  1   0E+3  00.E+3 -> 0E+3

fmax36716 fma  1   0E+3  00.E+4 -> 0E+3

fmax36717 fma  1   0E+3  00.E+5 -> 0E+3

fmax36718 fma  1   0E+3  -00.0   -> 0.0

fmax36719 fma  1   0E+3  -00.    -> 0

fmax36731 fma  1   0E+3  -00.E+1 -> 0E+1



fmax36720 fma  1   00.00  0E+3  -> 0.00

fmax36721 fma  1   00.0   0E+3  -> 0.0

fmax36722 fma  1   00.    0E+3  -> 0

fmax36723 fma  1   00.E+1 0E+3  -> 0E+1

fmax36724 fma  1   00.E+2 0E+3  -> 0E+2

fmax36725 fma  1   00.E+3 0E+3  -> 0E+3

fmax36726 fma  1   00.E+4 0E+3  -> 0E+3

fmax36727 fma  1   00.E+5 0E+3  -> 0E+3

fmax36728 fma  1   -00.00 0E+3  -> 0.00

fmax36729 fma  1   -00.0  0E+3  -> 0.0

fmax36730 fma  1   -00.   0E+3  -> 0



fmax36732 fma  1    0     0     ->  0

fmax36733 fma  1    0    -0     ->  0

fmax36734 fma  1   -0     0     ->  0

fmax36735 fma  1   -0    -0     -> -0     -- IEEE 854 special case



fmax36736 fma  1    1    -1     ->  0

fmax36737 fma  1   -1    -1     -> -2

fmax36738 fma  1    1     1     ->  2

fmax36739 fma  1   -1     1     ->  0



fmax36741 fma  1    0    -1     -> -1

fmax36742 fma  1   -0    -1     -> -1

fmax36743 fma  1    0     1     ->  1

fmax36744 fma  1   -0     1     ->  1

fmax36745 fma  1   -1     0     -> -1

fmax36746 fma  1   -1    -0     -> -1

fmax36747 fma  1    1     0     ->  1

fmax36748 fma  1    1    -0     ->  1



fmax36751 fma  1    0.0  -1     -> -1.0

fmax36752 fma  1   -0.0  -1     -> -1.0

fmax36753 fma  1    0.0   1     ->  1.0

fmax36754 fma  1   -0.0   1     ->  1.0

fmax36755 fma  1   -1.0   0     -> -1.0

fmax36756 fma  1   -1.0  -0     -> -1.0

fmax36757 fma  1    1.0   0     ->  1.0

fmax36758 fma  1    1.0  -0     ->  1.0



fmax36761 fma  1    0    -1.0   -> -1.0

fmax36762 fma  1   -0    -1.0   -> -1.0

fmax36763 fma  1    0     1.0   ->  1.0

fmax36764 fma  1   -0     1.0   ->  1.0

fmax36765 fma  1   -1     0.0   -> -1.0

fmax36766 fma  1   -1    -0.0   -> -1.0

fmax36767 fma  1    1     0.0   ->  1.0

fmax36768 fma  1    1    -0.0   ->  1.0



fmax36771 fma  1    0.0  -1.0   -> -1.0

fmax36772 fma  1   -0.0  -1.0   -> -1.0

fmax36773 fma  1    0.0   1.0   ->  1.0

fmax36774 fma  1   -0.0   1.0   ->  1.0

fmax36775 fma  1   -1.0   0.0   -> -1.0

fmax36776 fma  1   -1.0  -0.0   -> -1.0

fmax36777 fma  1    1.0   0.0   ->  1.0

fmax36778 fma  1    1.0  -0.0   ->  1.0



-- Specials

fmax36780 fma  1   -Inf  -Inf   -> -Infinity

fmax36781 fma  1   -Inf  -1000  -> -Infinity

fmax36782 fma  1   -Inf  -1     -> -Infinity

fmax36783 fma  1   -Inf  -0     -> -Infinity

fmax36784 fma  1   -Inf   0     -> -Infinity

fmax36785 fma  1   -Inf   1     -> -Infinity

fmax36786 fma  1   -Inf   1000  -> -Infinity

fmax36787 fma  1   -1000 -Inf   -> -Infinity

fmax36788 fma  1   -Inf  -Inf   -> -Infinity

fmax36789 fma  1   -1    -Inf   -> -Infinity

fmax36790 fma  1   -0    -Inf   -> -Infinity

fmax36791 fma  1    0    -Inf   -> -Infinity

fmax36792 fma  1    1    -Inf   -> -Infinity

fmax36793 fma  1    1000 -Inf   -> -Infinity

fmax36794 fma  1    Inf  -Inf   ->  NaN  Invalid_operation



fmax36800 fma  1    Inf  -Inf   ->  NaN  Invalid_operation

fmax36801 fma  1    Inf  -1000  ->  Infinity

fmax36802 fma  1    Inf  -1     ->  Infinity

fmax36803 fma  1    Inf  -0     ->  Infinity

fmax36804 fma  1    Inf   0     ->  Infinity

fmax36805 fma  1    Inf   1     ->  Infinity

fmax36806 fma  1    Inf   1000  ->  Infinity

fmax36807 fma  1    Inf   Inf   ->  Infinity

fmax36808 fma  1   -1000  Inf   ->  Infinity

fmax36809 fma  1   -Inf   Inf   ->  NaN  Invalid_operation

fmax36810 fma  1   -1     Inf   ->  Infinity

fmax36811 fma  1   -0     Inf   ->  Infinity

fmax36812 fma  1    0     Inf   ->  Infinity

fmax36813 fma  1    1     Inf   ->  Infinity

fmax36814 fma  1    1000  Inf   ->  Infinity

fmax36815 fma  1    Inf   Inf   ->  Infinity



fmax36821 fma  1    NaN -Inf    ->  NaN

fmax36822 fma  1    NaN -1000   ->  NaN

fmax36823 fma  1    NaN -1      ->  NaN

fmax36824 fma  1    NaN -0      ->  NaN

fmax36825 fma  1    NaN  0      ->  NaN

fmax36826 fma  1    NaN  1      ->  NaN

fmax36827 fma  1    NaN  1000   ->  NaN

fmax36828 fma  1    NaN  Inf    ->  NaN

fmax36829 fma  1    NaN  NaN    ->  NaN

fmax36830 fma  1   -Inf  NaN    ->  NaN

fmax36831 fma  1   -1000 NaN    ->  NaN

fmax36832 fma  1   -1    NaN    ->  NaN

fmax36833 fma  1   -0    NaN    ->  NaN

fmax36834 fma  1    0    NaN    ->  NaN

fmax36835 fma  1    1    NaN    ->  NaN

fmax36836 fma  1    1000 NaN    ->  NaN

fmax36837 fma  1    Inf  NaN    ->  NaN



fmax36841 fma  1    sNaN -Inf   ->  NaN  Invalid_operation

fmax36842 fma  1    sNaN -1000  ->  NaN  Invalid_operation

fmax36843 fma  1    sNaN -1     ->  NaN  Invalid_operation

fmax36844 fma  1    sNaN -0     ->  NaN  Invalid_operation

fmax36845 fma  1    sNaN  0     ->  NaN  Invalid_operation

fmax36846 fma  1    sNaN  1     ->  NaN  Invalid_operation

fmax36847 fma  1    sNaN  1000  ->  NaN  Invalid_operation

fmax36848 fma  1    sNaN  NaN   ->  NaN  Invalid_operation

fmax36849 fma  1    sNaN sNaN   ->  NaN  Invalid_operation

fmax36850 fma  1    NaN  sNaN   ->  NaN  Invalid_operation

fmax36851 fma  1   -Inf  sNaN   ->  NaN  Invalid_operation

fmax36852 fma  1   -1000 sNaN   ->  NaN  Invalid_operation

fmax36853 fma  1   -1    sNaN   ->  NaN  Invalid_operation

fmax36854 fma  1   -0    sNaN   ->  NaN  Invalid_operation

fmax36855 fma  1    0    sNaN   ->  NaN  Invalid_operation

fmax36856 fma  1    1    sNaN   ->  NaN  Invalid_operation

fmax36857 fma  1    1000 sNaN   ->  NaN  Invalid_operation

fmax36858 fma  1    Inf  sNaN   ->  NaN  Invalid_operation

fmax36859 fma  1    NaN  sNaN   ->  NaN  Invalid_operation



-- propagating NaNs

fmax36861 fma  1    NaN1   -Inf    ->  NaN1

fmax36862 fma  1   +NaN2   -1000   ->  NaN2

fmax36863 fma  1    NaN3    1000   ->  NaN3

fmax36864 fma  1    NaN4    Inf    ->  NaN4

fmax36865 fma  1    NaN5   +NaN6   ->  NaN5

fmax36866 fma  1   -Inf     NaN7   ->  NaN7

fmax36867 fma  1   -1000    NaN8   ->  NaN8

fmax36868 fma  1    1000    NaN9   ->  NaN9

fmax36869 fma  1    Inf    +NaN10  ->  NaN10

fmax36871 fma  1    sNaN11  -Inf   ->  NaN11  Invalid_operation

fmax36872 fma  1    sNaN12  -1000  ->  NaN12  Invalid_operation

fmax36873 fma  1    sNaN13   1000  ->  NaN13  Invalid_operation

fmax36874 fma  1    sNaN14   NaN17 ->  NaN14  Invalid_operation

fmax36875 fma  1    sNaN15  sNaN18 ->  NaN15  Invalid_operation

fmax36876 fma  1    NaN16   sNaN19 ->  NaN19  Invalid_operation

fmax36877 fma  1   -Inf    +sNaN20 ->  NaN20  Invalid_operation

fmax36878 fma  1   -1000    sNaN21 ->  NaN21  Invalid_operation

fmax36879 fma  1    1000    sNaN22 ->  NaN22  Invalid_operation

fmax36880 fma  1    Inf     sNaN23 ->  NaN23  Invalid_operation

fmax36881 fma  1   +NaN25  +sNaN24 ->  NaN24  Invalid_operation

fmax36882 fma  1   -NaN26    NaN28 -> -NaN26

fmax36883 fma  1   -sNaN27  sNaN29 -> -NaN27  Invalid_operation

fmax36884 fma  1    1000    -NaN30 -> -NaN30

fmax36885 fma  1    1000   -sNaN31 -> -NaN31  Invalid_operation



-- now the case where we can get underflow but the result is normal

-- [note this can't happen if the operands are also bounded, as we

-- cannot represent 1E-399, for example]



fmax36571 fma  1         1E-383       0  -> 1E-383

fmax36572 fma  1         1E-384       0  -> 1E-384   Subnormal

fmax36573 fma  1         1E-383  1E-384  -> 1.1E-383

fmax36574 subtract  1E-383  1E-384  ->   9E-384 Subnormal



-- Here we explore the boundary of rounding a subnormal to Nmin

fmax36575 subtract  1E-383  1E-398  ->   9.99999999999999E-384  Subnormal

fmax36576 subtract  1E-383  1E-398  ->   9.99999999999999E-384  Subnormal

fmax36577 subtract  1E-383  1E-399  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded

fmax36578 subtract  1E-383  1E-400  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded

fmax36579 subtract  1E-383  1E-401  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded

fmax36580 subtract  1E-383  1E-402  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded



-- check overflow edge case

--               1234567890123456

fmax36972 apply        9.999999999999999E+384         -> 9.999999999999999E+384

fmax36973 fma  1       9.999999999999999E+384  1      -> 9.999999999999999E+384 Inexact Rounded

fmax36974 fma  1        9999999999999999E+369  1      -> 9.999999999999999E+384 Inexact Rounded

fmax36975 fma  1        9999999999999999E+369  1E+369  -> Infinity Overflow Inexact Rounded

fmax36976 fma  1        9999999999999999E+369  9E+368  -> Infinity Overflow Inexact Rounded

fmax36977 fma  1        9999999999999999E+369  8E+368  -> Infinity Overflow Inexact Rounded

fmax36978 fma  1        9999999999999999E+369  7E+368  -> Infinity Overflow Inexact Rounded

fmax36979 fma  1        9999999999999999E+369  6E+368  -> Infinity Overflow Inexact Rounded

fmax36980 fma  1        9999999999999999E+369  5E+368  -> Infinity Overflow Inexact Rounded

fmax36981 fma  1        9999999999999999E+369  4E+368  -> 9.999999999999999E+384 Inexact Rounded

fmax36982 fma  1        9999999999999999E+369  3E+368  -> 9.999999999999999E+384 Inexact Rounded

fmax36983 fma  1        9999999999999999E+369  2E+368  -> 9.999999999999999E+384 Inexact Rounded

fmax36984 fma  1        9999999999999999E+369  1E+368  -> 9.999999999999999E+384 Inexact Rounded



fmax36985 apply       -9.999999999999999E+384         -> -9.999999999999999E+384

fmax36986 fma  1      -9.999999999999999E+384 -1      -> -9.999999999999999E+384 Inexact Rounded

fmax36987 fma  1       -9999999999999999E+369 -1      -> -9.999999999999999E+384 Inexact Rounded

fmax36988 fma  1       -9999999999999999E+369 -1E+369  -> -Infinity Overflow Inexact Rounded

fmax36989 fma  1       -9999999999999999E+369 -9E+368  -> -Infinity Overflow Inexact Rounded

fmax36990 fma  1       -9999999999999999E+369 -8E+368  -> -Infinity Overflow Inexact Rounded

fmax36991 fma  1       -9999999999999999E+369 -7E+368  -> -Infinity Overflow Inexact Rounded

fmax36992 fma  1       -9999999999999999E+369 -6E+368  -> -Infinity Overflow Inexact Rounded

fmax36993 fma  1       -9999999999999999E+369 -5E+368  -> -Infinity Overflow Inexact Rounded

fmax36994 fma  1       -9999999999999999E+369 -4E+368  -> -9.999999999999999E+384 Inexact Rounded

fmax36995 fma  1       -9999999999999999E+369 -3E+368  -> -9.999999999999999E+384 Inexact Rounded

fmax36996 fma  1       -9999999999999999E+369 -2E+368  -> -9.999999999999999E+384 Inexact Rounded

fmax36997 fma  1       -9999999999999999E+369 -1E+368  -> -9.999999999999999E+384 Inexact Rounded



-- And for round down full and subnormal results

rounding:     down

fmax361100 fma  1   1e+2 -1e-383    -> 99.99999999999999 Rounded Inexact

fmax361101 fma  1   1e+1 -1e-383    -> 9.999999999999999  Rounded Inexact

fmax361103 fma  1     +1 -1e-383    -> 0.9999999999999999  Rounded Inexact

fmax361104 fma  1   1e-1 -1e-383    -> 0.09999999999999999  Rounded Inexact

fmax361105 fma  1   1e-2 -1e-383    -> 0.009999999999999999  Rounded Inexact

fmax361106 fma  1   1e-3 -1e-383    -> 0.0009999999999999999  Rounded Inexact

fmax361107 fma  1   1e-4 -1e-383    -> 0.00009999999999999999  Rounded Inexact

fmax361108 fma  1   1e-5 -1e-383    -> 0.000009999999999999999  Rounded Inexact

fmax361109 fma  1   1e-6 -1e-383    -> 9.999999999999999E-7  Rounded Inexact



rounding:     ceiling

fmax361110 fma  1   -1e+2 +1e-383   -> -99.99999999999999 Rounded Inexact

fmax361111 fma  1   -1e+1 +1e-383   -> -9.999999999999999  Rounded Inexact

fmax361113 fma  1      -1 +1e-383   -> -0.9999999999999999  Rounded Inexact

fmax361114 fma  1   -1e-1 +1e-383   -> -0.09999999999999999  Rounded Inexact

fmax361115 fma  1   -1e-2 +1e-383   -> -0.009999999999999999  Rounded Inexact

fmax361116 fma  1   -1e-3 +1e-383   -> -0.0009999999999999999  Rounded Inexact

fmax361117 fma  1   -1e-4 +1e-383   -> -0.00009999999999999999  Rounded Inexact

fmax361118 fma  1   -1e-5 +1e-383   -> -0.000009999999999999999  Rounded Inexact

fmax361119 fma  1   -1e-6 +1e-383   -> -9.999999999999999E-7  Rounded Inexact



-- tests based on Gunnar Degnbol's edge case

rounding:     half_even



fmax361300 fma  1   1E16  -0.5                 ->  1.000000000000000E+16 Inexact Rounded

fmax361310 fma  1   1E16  -0.51                ->  9999999999999999      Inexact Rounded

fmax361311 fma  1   1E16  -0.501               ->  9999999999999999      Inexact Rounded

fmax361312 fma  1   1E16  -0.5001              ->  9999999999999999      Inexact Rounded

fmax361313 fma  1   1E16  -0.50001             ->  9999999999999999      Inexact Rounded

fmax361314 fma  1   1E16  -0.500001            ->  9999999999999999      Inexact Rounded

fmax361315 fma  1   1E16  -0.5000001           ->  9999999999999999      Inexact Rounded

fmax361316 fma  1   1E16  -0.50000001          ->  9999999999999999      Inexact Rounded

fmax361317 fma  1   1E16  -0.500000001         ->  9999999999999999      Inexact Rounded

fmax361318 fma  1   1E16  -0.5000000001        ->  9999999999999999      Inexact Rounded

fmax361319 fma  1   1E16  -0.50000000001       ->  9999999999999999      Inexact Rounded

fmax361320 fma  1   1E16  -0.500000000001      ->  9999999999999999      Inexact Rounded

fmax361321 fma  1   1E16  -0.5000000000001     ->  9999999999999999      Inexact Rounded

fmax361322 fma  1   1E16  -0.50000000000001    ->  9999999999999999      Inexact Rounded

fmax361323 fma  1   1E16  -0.500000000000001   ->  9999999999999999      Inexact Rounded

fmax361324 fma  1   1E16  -0.5000000000000001  ->  9999999999999999      Inexact Rounded

fmax361325 fma  1   1E16  -0.5000000000000000  ->  1.000000000000000E+16 Inexact Rounded

fmax361326 fma  1   1E16  -0.500000000000000   ->  1.000000000000000E+16 Inexact Rounded

fmax361327 fma  1   1E16  -0.50000000000000    ->  1.000000000000000E+16 Inexact Rounded

fmax361328 fma  1   1E16  -0.5000000000000     ->  1.000000000000000E+16 Inexact Rounded

fmax361329 fma  1   1E16  -0.500000000000      ->  1.000000000000000E+16 Inexact Rounded

fmax361330 fma  1   1E16  -0.50000000000       ->  1.000000000000000E+16 Inexact Rounded

fmax361331 fma  1   1E16  -0.5000000000        ->  1.000000000000000E+16 Inexact Rounded

fmax361332 fma  1   1E16  -0.500000000         ->  1.000000000000000E+16 Inexact Rounded

fmax361333 fma  1   1E16  -0.50000000          ->  1.000000000000000E+16 Inexact Rounded

fmax361334 fma  1   1E16  -0.5000000           ->  1.000000000000000E+16 Inexact Rounded

fmax361335 fma  1   1E16  -0.500000            ->  1.000000000000000E+16 Inexact Rounded

fmax361336 fma  1   1E16  -0.50000             ->  1.000000000000000E+16 Inexact Rounded

fmax361337 fma  1   1E16  -0.5000              ->  1.000000000000000E+16 Inexact Rounded

fmax361338 fma  1   1E16  -0.500               ->  1.000000000000000E+16 Inexact Rounded

fmax361339 fma  1   1E16  -0.50                ->  1.000000000000000E+16 Inexact Rounded



fmax361340 fma  1   1E16  -5000000.000010001   ->  9999999995000000      Inexact Rounded

fmax361341 fma  1   1E16  -5000000.000000001   ->  9999999995000000      Inexact Rounded



fmax361349 fma  1   9999999999999999 0.4                 ->  9999999999999999      Inexact Rounded

fmax361350 fma  1   9999999999999999 0.49                ->  9999999999999999      Inexact Rounded

fmax361351 fma  1   9999999999999999 0.499               ->  9999999999999999      Inexact Rounded

fmax361352 fma  1   9999999999999999 0.4999              ->  9999999999999999      Inexact Rounded

fmax361353 fma  1   9999999999999999 0.49999             ->  9999999999999999      Inexact Rounded

fmax361354 fma  1   9999999999999999 0.499999            ->  9999999999999999      Inexact Rounded

fmax361355 fma  1   9999999999999999 0.4999999           ->  9999999999999999      Inexact Rounded

fmax361356 fma  1   9999999999999999 0.49999999          ->  9999999999999999      Inexact Rounded

fmax361357 fma  1   9999999999999999 0.499999999         ->  9999999999999999      Inexact Rounded

fmax361358 fma  1   9999999999999999 0.4999999999        ->  9999999999999999      Inexact Rounded

fmax361359 fma  1   9999999999999999 0.49999999999       ->  9999999999999999      Inexact Rounded

fmax361360 fma  1   9999999999999999 0.499999999999      ->  9999999999999999      Inexact Rounded

fmax361361 fma  1   9999999999999999 0.4999999999999     ->  9999999999999999      Inexact Rounded

fmax361362 fma  1   9999999999999999 0.49999999999999    ->  9999999999999999      Inexact Rounded

fmax361363 fma  1   9999999999999999 0.499999999999999   ->  9999999999999999      Inexact Rounded

fmax361364 fma  1   9999999999999999 0.4999999999999999  ->  9999999999999999      Inexact Rounded

fmax361365 fma  1   9999999999999999 0.5000000000000000  ->  1.000000000000000E+16 Inexact Rounded

fmax361367 fma  1   9999999999999999 0.500000000000000   ->  1.000000000000000E+16 Inexact Rounded

fmax361368 fma  1   9999999999999999 0.50000000000000    ->  1.000000000000000E+16 Inexact Rounded

fmax361369 fma  1   9999999999999999 0.5000000000000     ->  1.000000000000000E+16 Inexact Rounded

fmax361370 fma  1   9999999999999999 0.500000000000      ->  1.000000000000000E+16 Inexact Rounded

fmax361371 fma  1   9999999999999999 0.50000000000       ->  1.000000000000000E+16 Inexact Rounded

fmax361372 fma  1   9999999999999999 0.5000000000        ->  1.000000000000000E+16 Inexact Rounded

fmax361373 fma  1   9999999999999999 0.500000000         ->  1.000000000000000E+16 Inexact Rounded

fmax361374 fma  1   9999999999999999 0.50000000          ->  1.000000000000000E+16 Inexact Rounded

fmax361375 fma  1   9999999999999999 0.5000000           ->  1.000000000000000E+16 Inexact Rounded

fmax361376 fma  1   9999999999999999 0.500000            ->  1.000000000000000E+16 Inexact Rounded

fmax361377 fma  1   9999999999999999 0.50000             ->  1.000000000000000E+16 Inexact Rounded

fmax361378 fma  1   9999999999999999 0.5000              ->  1.000000000000000E+16 Inexact Rounded

fmax361379 fma  1   9999999999999999 0.500               ->  1.000000000000000E+16 Inexact Rounded

fmax361380 fma  1   9999999999999999 0.50                ->  1.000000000000000E+16 Inexact Rounded

fmax361381 fma  1   9999999999999999 0.5                 ->  1.000000000000000E+16 Inexact Rounded

fmax361382 fma  1   9999999999999999 0.5000000000000001  ->  1.000000000000000E+16 Inexact Rounded

fmax361383 fma  1   9999999999999999 0.500000000000001   ->  1.000000000000000E+16 Inexact Rounded

fmax361384 fma  1   9999999999999999 0.50000000000001    ->  1.000000000000000E+16 Inexact Rounded

fmax361385 fma  1   9999999999999999 0.5000000000001     ->  1.000000000000000E+16 Inexact Rounded

fmax361386 fma  1   9999999999999999 0.500000000001      ->  1.000000000000000E+16 Inexact Rounded

fmax361387 fma  1   9999999999999999 0.50000000001       ->  1.000000000000000E+16 Inexact Rounded

fmax361388 fma  1   9999999999999999 0.5000000001        ->  1.000000000000000E+16 Inexact Rounded

fmax361389 fma  1   9999999999999999 0.500000001         ->  1.000000000000000E+16 Inexact Rounded

fmax361390 fma  1   9999999999999999 0.50000001          ->  1.000000000000000E+16 Inexact Rounded

fmax361391 fma  1   9999999999999999 0.5000001           ->  1.000000000000000E+16 Inexact Rounded

fmax361392 fma  1   9999999999999999 0.500001            ->  1.000000000000000E+16 Inexact Rounded

fmax361393 fma  1   9999999999999999 0.50001             ->  1.000000000000000E+16 Inexact Rounded

fmax361394 fma  1   9999999999999999 0.5001              ->  1.000000000000000E+16 Inexact Rounded

fmax361395 fma  1   9999999999999999 0.501               ->  1.000000000000000E+16 Inexact Rounded

fmax361396 fma  1   9999999999999999 0.51                ->  1.000000000000000E+16 Inexact Rounded



-- More GD edge cases, where difference between the unadjusted

-- exponents is larger than the maximum precision and one side is 0

fmax361420 fma  1    0 1.123456789012345     -> 1.123456789012345

fmax361421 fma  1    0 1.123456789012345E-1  -> 0.1123456789012345

fmax361422 fma  1    0 1.123456789012345E-2  -> 0.01123456789012345

fmax361423 fma  1    0 1.123456789012345E-3  -> 0.001123456789012345

fmax361424 fma  1    0 1.123456789012345E-4  -> 0.0001123456789012345

fmax361425 fma  1    0 1.123456789012345E-5  -> 0.00001123456789012345

fmax361426 fma  1    0 1.123456789012345E-6  -> 0.000001123456789012345

fmax361427 fma  1    0 1.123456789012345E-7  -> 1.123456789012345E-7

fmax361428 fma  1    0 1.123456789012345E-8  -> 1.123456789012345E-8

fmax361429 fma  1    0 1.123456789012345E-9  -> 1.123456789012345E-9

fmax361430 fma  1    0 1.123456789012345E-10 -> 1.123456789012345E-10

fmax361431 fma  1    0 1.123456789012345E-11 -> 1.123456789012345E-11

fmax361432 fma  1    0 1.123456789012345E-12 -> 1.123456789012345E-12

fmax361433 fma  1    0 1.123456789012345E-13 -> 1.123456789012345E-13

fmax361434 fma  1    0 1.123456789012345E-14 -> 1.123456789012345E-14

fmax361435 fma  1    0 1.123456789012345E-15 -> 1.123456789012345E-15

fmax361436 fma  1    0 1.123456789012345E-16 -> 1.123456789012345E-16

fmax361437 fma  1    0 1.123456789012345E-17 -> 1.123456789012345E-17

fmax361438 fma  1    0 1.123456789012345E-18 -> 1.123456789012345E-18

fmax361439 fma  1    0 1.123456789012345E-19 -> 1.123456789012345E-19



-- same, reversed 0

fmax361440 fma  1   1.123456789012345     0 -> 1.123456789012345

fmax361441 fma  1   1.123456789012345E-1  0 -> 0.1123456789012345

fmax361442 fma  1   1.123456789012345E-2  0 -> 0.01123456789012345

fmax361443 fma  1   1.123456789012345E-3  0 -> 0.001123456789012345

fmax361444 fma  1   1.123456789012345E-4  0 -> 0.0001123456789012345

fmax361445 fma  1   1.123456789012345E-5  0 -> 0.00001123456789012345

fmax361446 fma  1   1.123456789012345E-6  0 -> 0.000001123456789012345

fmax361447 fma  1   1.123456789012345E-7  0 -> 1.123456789012345E-7

fmax361448 fma  1   1.123456789012345E-8  0 -> 1.123456789012345E-8

fmax361449 fma  1   1.123456789012345E-9  0 -> 1.123456789012345E-9

fmax361450 fma  1   1.123456789012345E-10 0 -> 1.123456789012345E-10

fmax361451 fma  1   1.123456789012345E-11 0 -> 1.123456789012345E-11

fmax361452 fma  1   1.123456789012345E-12 0 -> 1.123456789012345E-12

fmax361453 fma  1   1.123456789012345E-13 0 -> 1.123456789012345E-13

fmax361454 fma  1   1.123456789012345E-14 0 -> 1.123456789012345E-14

fmax361455 fma  1   1.123456789012345E-15 0 -> 1.123456789012345E-15

fmax361456 fma  1   1.123456789012345E-16 0 -> 1.123456789012345E-16

fmax361457 fma  1   1.123456789012345E-17 0 -> 1.123456789012345E-17

fmax361458 fma  1   1.123456789012345E-18 0 -> 1.123456789012345E-18

fmax361459 fma  1   1.123456789012345E-19 0 -> 1.123456789012345E-19



-- same, Es on the 0

fmax361460 fma  1   1.123456789012345  0E-0   -> 1.123456789012345

fmax361461 fma  1   1.123456789012345  0E-1   -> 1.123456789012345

fmax361462 fma  1   1.123456789012345  0E-2   -> 1.123456789012345

fmax361463 fma  1   1.123456789012345  0E-3   -> 1.123456789012345

fmax361464 fma  1   1.123456789012345  0E-4   -> 1.123456789012345

fmax361465 fma  1   1.123456789012345  0E-5   -> 1.123456789012345

fmax361466 fma  1   1.123456789012345  0E-6   -> 1.123456789012345

fmax361467 fma  1   1.123456789012345  0E-7   -> 1.123456789012345

fmax361468 fma  1   1.123456789012345  0E-8   -> 1.123456789012345

fmax361469 fma  1   1.123456789012345  0E-9   -> 1.123456789012345

fmax361470 fma  1   1.123456789012345  0E-10  -> 1.123456789012345

fmax361471 fma  1   1.123456789012345  0E-11  -> 1.123456789012345

fmax361472 fma  1   1.123456789012345  0E-12  -> 1.123456789012345

fmax361473 fma  1   1.123456789012345  0E-13  -> 1.123456789012345

fmax361474 fma  1   1.123456789012345  0E-14  -> 1.123456789012345

fmax361475 fma  1   1.123456789012345  0E-15  -> 1.123456789012345

-- next four flag Rounded because the 0 extends the result

fmax361476 fma  1   1.123456789012345  0E-16  -> 1.123456789012345 Rounded

fmax361477 fma  1   1.123456789012345  0E-17  -> 1.123456789012345 Rounded

fmax361478 fma  1   1.123456789012345  0E-18  -> 1.123456789012345 Rounded

fmax361479 fma  1   1.123456789012345  0E-19  -> 1.123456789012345 Rounded



-- sum of two opposite-sign operands is exactly 0 and floor => -0

rounding:    half_up

-- exact zeros from zeros

fmax361500 fma  1    0        0E-19  ->  0E-19

fmax361501 fma  1   -0        0E-19  ->  0E-19

fmax361502 fma  1    0       -0E-19  ->  0E-19

fmax361503 fma  1   -0       -0E-19  -> -0E-19

fmax361504 fma  1    0E-400   0E-19  ->  0E-398 Clamped

fmax361505 fma  1   -0E-400   0E-19  ->  0E-398 Clamped

fmax361506 fma  1    0E-400  -0E-19  ->  0E-398 Clamped

fmax361507 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped

-- inexact zeros

fmax361511 fma  1    1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax361512 fma  1   -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax361513 fma  1    1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax361514 fma  1   -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

-- some exact zeros from non-zeros

fmax361515 fma  1    1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax361516 fma  1   -1E-401   1E-401 ->  0E-398 Clamped

fmax361517 fma  1    1E-401  -1E-401 ->  0E-398 Clamped

fmax361518 fma  1   -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped



rounding:    half_down

-- exact zeros from zeros

fmax361520 fma  1    0        0E-19  ->  0E-19

fmax361521 fma  1   -0        0E-19  ->  0E-19

fmax361522 fma  1    0       -0E-19  ->  0E-19

fmax361523 fma  1   -0       -0E-19  -> -0E-19

fmax361524 fma  1    0E-400   0E-19  ->  0E-398 Clamped

fmax361525 fma  1   -0E-400   0E-19  ->  0E-398 Clamped

fmax361526 fma  1    0E-400  -0E-19  ->  0E-398 Clamped

fmax361527 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped

-- inexact zeros

fmax361531 fma  1    1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax361532 fma  1   -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax361533 fma  1    1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax361534 fma  1   -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

-- some exact zeros from non-zeros

fmax361535 fma  1    1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax361536 fma  1   -1E-401   1E-401 ->  0E-398 Clamped

fmax361537 fma  1    1E-401  -1E-401 ->  0E-398 Clamped

fmax361538 fma  1   -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped



rounding:    half_even

-- exact zeros from zeros

fmax361540 fma  1    0        0E-19  ->  0E-19

fmax361541 fma  1   -0        0E-19  ->  0E-19

fmax361542 fma  1    0       -0E-19  ->  0E-19

fmax361543 fma  1   -0       -0E-19  -> -0E-19

fmax361544 fma  1    0E-400   0E-19  ->  0E-398 Clamped

fmax361545 fma  1   -0E-400   0E-19  ->  0E-398 Clamped

fmax361546 fma  1    0E-400  -0E-19  ->  0E-398 Clamped

fmax361547 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped

-- inexact zeros

fmax361551 fma  1    1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax361552 fma  1   -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax361553 fma  1    1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax361554 fma  1   -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

-- some exact zeros from non-zeros

fmax361555 fma  1    1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax361556 fma  1   -1E-401   1E-401 ->  0E-398 Clamped

fmax361557 fma  1    1E-401  -1E-401 ->  0E-398 Clamped

fmax361558 fma  1   -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped



rounding:    up

-- exact zeros from zeros

fmax361560 fma  1    0        0E-19  ->  0E-19

fmax361561 fma  1   -0        0E-19  ->  0E-19

fmax361562 fma  1    0       -0E-19  ->  0E-19

fmax361563 fma  1   -0       -0E-19  -> -0E-19

fmax361564 fma  1    0E-400   0E-19  ->  0E-398 Clamped

fmax361565 fma  1   -0E-400   0E-19  ->  0E-398 Clamped

fmax361566 fma  1    0E-400  -0E-19  ->  0E-398 Clamped

fmax361567 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped

-- inexact zeros

fmax361571 fma  1    1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow

fmax361572 fma  1   -1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow

fmax361573 fma  1    1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow

fmax361574 fma  1   -1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow

-- some exact zeros from non-zeros

fmax361575 fma  1    1E-401   1E-401 ->  1E-398 Subnormal Inexact Rounded Underflow

fmax361576 fma  1   -1E-401   1E-401 ->  0E-398 Clamped

fmax361577 fma  1    1E-401  -1E-401 ->  0E-398 Clamped

fmax361578 fma  1   -1E-401  -1E-401 -> -1E-398 Subnormal Inexact Rounded Underflow



rounding:    down

-- exact zeros from zeros

fmax361580 fma  1    0        0E-19  ->  0E-19

fmax361581 fma  1   -0        0E-19  ->  0E-19

fmax361582 fma  1    0       -0E-19  ->  0E-19

fmax361583 fma  1   -0       -0E-19  -> -0E-19

fmax361584 fma  1    0E-400   0E-19  ->  0E-398 Clamped

fmax361585 fma  1   -0E-400   0E-19  ->  0E-398 Clamped

fmax361586 fma  1    0E-400  -0E-19  ->  0E-398 Clamped

fmax361587 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped

-- inexact zeros

fmax361591 fma  1    1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax361592 fma  1   -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax361593 fma  1    1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax361594 fma  1   -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

-- some exact zeros from non-zeros

fmax361595 fma  1    1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax361596 fma  1   -1E-401   1E-401 ->  0E-398 Clamped

fmax361597 fma  1    1E-401  -1E-401 ->  0E-398 Clamped

fmax361598 fma  1   -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped



rounding:    ceiling

-- exact zeros from zeros

fmax361600 fma  1    0        0E-19  ->  0E-19

fmax361601 fma  1   -0        0E-19  ->  0E-19

fmax361602 fma  1    0       -0E-19  ->  0E-19

fmax361603 fma  1   -0       -0E-19  -> -0E-19

fmax361604 fma  1    0E-400   0E-19  ->  0E-398 Clamped

fmax361605 fma  1   -0E-400   0E-19  ->  0E-398 Clamped

fmax361606 fma  1    0E-400  -0E-19  ->  0E-398 Clamped

fmax361607 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped

-- inexact zeros

fmax361611 fma  1    1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow

fmax361612 fma  1   -1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow

fmax361613 fma  1    1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax361614 fma  1   -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped

-- some exact zeros from non-zeros

fmax361615 fma  1    1E-401   1E-401 ->  1E-398 Subnormal Inexact Rounded Underflow

fmax361616 fma  1   -1E-401   1E-401 ->  0E-398 Clamped

fmax361617 fma  1    1E-401  -1E-401 ->  0E-398 Clamped

fmax361618 fma  1   -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped



-- and the extra-special ugly case; unusual minuses marked by -- *

rounding:    floor

-- exact zeros from zeros

fmax361620 fma  1    0        0E-19  ->  0E-19

fmax361621 fma  1   -0        0E-19  -> -0E-19           -- *

fmax361622 fma  1    0       -0E-19  -> -0E-19           -- *

fmax361623 fma  1   -0       -0E-19  -> -0E-19

fmax361624 fma  1    0E-400   0E-19  ->  0E-398 Clamped

fmax361625 fma  1   -0E-400   0E-19  -> -0E-398 Clamped  -- *

fmax361626 fma  1    0E-400  -0E-19  -> -0E-398 Clamped  -- *

fmax361627 fma  1   -0E-400  -0E-19  -> -0E-398 Clamped

-- inexact zeros

fmax361631 fma  1    1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax361632 fma  1   -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax361633 fma  1    1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow

fmax361634 fma  1   -1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow

-- some exact zeros from non-zeros

fmax361635 fma  1    1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped

fmax361636 fma  1   -1E-401   1E-401 -> -0E-398 Clamped  -- *

fmax361637 fma  1    1E-401  -1E-401 -> -0E-398 Clamped  -- *

fmax361638 fma  1   -1E-401  -1E-401 -> -1E-398 Subnormal Inexact Rounded Underflow



-- Examples from SQL proposal (Krishna Kulkarni)

fmax361701 fma  1   130E-2    120E-2    -> 2.50

fmax361702 fma  1   130E-2    12E-1     -> 2.50

fmax361703 fma  1   130E-2    1E0       -> 2.30

fmax361704 fma  1   1E2       1E4       -> 1.01E+4

fmax361705 subtract 130E-2  120E-2 -> 0.10

fmax361706 subtract 130E-2  12E-1  -> 0.10

fmax361707 subtract 130E-2  1E0    -> 0.30

fmax361708 subtract 1E2     1E4    -> -9.9E+3



-- Gappy coefficients; check residue handling even with full coefficient gap

rounding: half_even



fmax362001 fma  1   1234567890123456 1      -> 1234567890123457

fmax362002 fma  1   1234567890123456 0.6    -> 1234567890123457  Inexact Rounded

fmax362003 fma  1   1234567890123456 0.06   -> 1234567890123456  Inexact Rounded

fmax362004 fma  1   1234567890123456 6E-3   -> 1234567890123456  Inexact Rounded

fmax362005 fma  1   1234567890123456 6E-4   -> 1234567890123456  Inexact Rounded

fmax362006 fma  1   1234567890123456 6E-5   -> 1234567890123456  Inexact Rounded

fmax362007 fma  1   1234567890123456 6E-6   -> 1234567890123456  Inexact Rounded

fmax362008 fma  1   1234567890123456 6E-7   -> 1234567890123456  Inexact Rounded

fmax362009 fma  1   1234567890123456 6E-8   -> 1234567890123456  Inexact Rounded

fmax362010 fma  1   1234567890123456 6E-9   -> 1234567890123456  Inexact Rounded

fmax362011 fma  1   1234567890123456 6E-10  -> 1234567890123456  Inexact Rounded

fmax362012 fma  1   1234567890123456 6E-11  -> 1234567890123456  Inexact Rounded

fmax362013 fma  1   1234567890123456 6E-12  -> 1234567890123456  Inexact Rounded

fmax362014 fma  1   1234567890123456 6E-13  -> 1234567890123456  Inexact Rounded

fmax362015 fma  1   1234567890123456 6E-14  -> 1234567890123456  Inexact Rounded

fmax362016 fma  1   1234567890123456 6E-15  -> 1234567890123456  Inexact Rounded

fmax362017 fma  1   1234567890123456 6E-16  -> 1234567890123456  Inexact Rounded

fmax362018 fma  1   1234567890123456 6E-17  -> 1234567890123456  Inexact Rounded

fmax362019 fma  1   1234567890123456 6E-18  -> 1234567890123456  Inexact Rounded

fmax362020 fma  1   1234567890123456 6E-19  -> 1234567890123456  Inexact Rounded

fmax362021 fma  1   1234567890123456 6E-20  -> 1234567890123456  Inexact Rounded



-- widening second argument at gap

fmax362030 fma  1   12345678 1                       -> 12345679

fmax362031 fma  1   12345678 0.1                     -> 12345678.1

fmax362032 fma  1   12345678 0.12                    -> 12345678.12

fmax362033 fma  1   12345678 0.123                   -> 12345678.123

fmax362034 fma  1   12345678 0.1234                  -> 12345678.1234

fmax362035 fma  1   12345678 0.12345                 -> 12345678.12345

fmax362036 fma  1   12345678 0.123456                -> 12345678.123456

fmax362037 fma  1   12345678 0.1234567               -> 12345678.1234567

fmax362038 fma  1   12345678 0.12345678              -> 12345678.12345678

fmax362039 fma  1   12345678 0.123456789             -> 12345678.12345679 Inexact Rounded

fmax362040 fma  1   12345678 0.123456785             -> 12345678.12345678 Inexact Rounded

fmax362041 fma  1   12345678 0.1234567850            -> 12345678.12345678 Inexact Rounded

fmax362042 fma  1   12345678 0.1234567851            -> 12345678.12345679 Inexact Rounded

fmax362043 fma  1   12345678 0.12345678501           -> 12345678.12345679 Inexact Rounded

fmax362044 fma  1   12345678 0.123456785001          -> 12345678.12345679 Inexact Rounded

fmax362045 fma  1   12345678 0.1234567850001         -> 12345678.12345679 Inexact Rounded

fmax362046 fma  1   12345678 0.12345678500001        -> 12345678.12345679 Inexact Rounded

fmax362047 fma  1   12345678 0.123456785000001       -> 12345678.12345679 Inexact Rounded

fmax362048 fma  1   12345678 0.1234567850000001      -> 12345678.12345679 Inexact Rounded

fmax362049 fma  1   12345678 0.1234567850000000      -> 12345678.12345678 Inexact Rounded

--                               90123456

rounding: half_even

fmax362050 fma  1   12345678 0.0234567750000000      -> 12345678.02345678 Inexact Rounded

fmax362051 fma  1   12345678 0.0034567750000000      -> 12345678.00345678 Inexact Rounded

fmax362052 fma  1   12345678 0.0004567750000000      -> 12345678.00045678 Inexact Rounded

fmax362053 fma  1   12345678 0.0000567750000000      -> 12345678.00005678 Inexact Rounded

fmax362054 fma  1   12345678 0.0000067750000000      -> 12345678.00000678 Inexact Rounded

fmax362055 fma  1   12345678 0.0000007750000000      -> 12345678.00000078 Inexact Rounded

fmax362056 fma  1   12345678 0.0000000750000000      -> 12345678.00000008 Inexact Rounded

fmax362057 fma  1   12345678 0.0000000050000000      -> 12345678.00000000 Inexact Rounded

fmax362060 fma  1   12345678 0.0234567750000001      -> 12345678.02345678 Inexact Rounded

fmax362061 fma  1   12345678 0.0034567750000001      -> 12345678.00345678 Inexact Rounded

fmax362062 fma  1   12345678 0.0004567750000001      -> 12345678.00045678 Inexact Rounded

fmax362063 fma  1   12345678 0.0000567750000001      -> 12345678.00005678 Inexact Rounded

fmax362064 fma  1   12345678 0.0000067750000001      -> 12345678.00000678 Inexact Rounded

fmax362065 fma  1   12345678 0.0000007750000001      -> 12345678.00000078 Inexact Rounded

fmax362066 fma  1   12345678 0.0000000750000001      -> 12345678.00000008 Inexact Rounded

fmax362067 fma  1   12345678 0.0000000050000001      -> 12345678.00000001 Inexact Rounded

-- far-out residues (full coefficient gap is 16+15 digits)

rounding: up

fmax362070 fma  1   12345678 1E-8                    -> 12345678.00000001

fmax362071 fma  1   12345678 1E-9                    -> 12345678.00000001 Inexact Rounded

fmax362072 fma  1   12345678 1E-10                   -> 12345678.00000001 Inexact Rounded

fmax362073 fma  1   12345678 1E-11                   -> 12345678.00000001 Inexact Rounded

fmax362074 fma  1   12345678 1E-12                   -> 12345678.00000001 Inexact Rounded

fmax362075 fma  1   12345678 1E-13                   -> 12345678.00000001 Inexact Rounded

fmax362076 fma  1   12345678 1E-14                   -> 12345678.00000001 Inexact Rounded

fmax362077 fma  1   12345678 1E-15                   -> 12345678.00000001 Inexact Rounded

fmax362078 fma  1   12345678 1E-16                   -> 12345678.00000001 Inexact Rounded

fmax362079 fma  1   12345678 1E-17                   -> 12345678.00000001 Inexact Rounded

fmax362080 fma  1   12345678 1E-18                   -> 12345678.00000001 Inexact Rounded

fmax362081 fma  1   12345678 1E-19                   -> 12345678.00000001 Inexact Rounded

fmax362082 fma  1   12345678 1E-20                   -> 12345678.00000001 Inexact Rounded

fmax362083 fma  1   12345678 1E-25                   -> 12345678.00000001 Inexact Rounded

fmax362084 fma  1   12345678 1E-30                   -> 12345678.00000001 Inexact Rounded

fmax362085 fma  1   12345678 1E-31                   -> 12345678.00000001 Inexact Rounded

fmax362086 fma  1   12345678 1E-32                   -> 12345678.00000001 Inexact Rounded

fmax362087 fma  1   12345678 1E-33                   -> 12345678.00000001 Inexact Rounded

fmax362088 fma  1   12345678 1E-34                   -> 12345678.00000001 Inexact Rounded

fmax362089 fma  1   12345678 1E-35                   -> 12345678.00000001 Inexact Rounded



-- payload decapitate x3

precision: 5

fmax363000 fma  1 1  sNaN1234567890     ->  NaN67890  Invalid_operation

fmax363001 fma    1 -sNaN1234512345 1   -> -NaN12345  Invalid_operation

fmax363002 fma       sNaN1234554321 1 1 ->  NaN54321  Invalid_operation



-- Null tests

fmax39990 fma  1   10  # -> NaN Invalid_operation

fmax39991 fma  1    # 10 -> NaN Invalid_operation