summaryrefslogtreecommitdiff
path: root/lib/python2.7/test/decimaltestdata/fma.decTest
blob: a8197ef8a43ff1a150c8350b100b0b64588b85dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
------------------------------------------------------------------------
-- 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 comprese 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 a 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 arithemtic)
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