summaryrefslogtreecommitdiffstats
path: root/Lib/test/decimaltestdata/dqFMA.decTest
blob: f68fdf924804a717c6b71c0a419bc31cdc07177d (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
------------------------------------------------------------------------
-- dqFMA.decTest -- decQuad Fused Multiply Add                        --
-- Copyright (c) IBM Corporation, 1981, 2007.  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.57

extended:    1
clamp:       1
precision:   34
maxExponent: 6144
minExponent: -6143
rounding:    half_even

-- 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
dqfma0001 fma  1   1   1 ->   2
dqfma0002 fma  1   1   2 ->   3
dqfma0003 fma  2   2   3 ->   7
dqfma0004 fma  9   9   9 ->  90
dqfma0005 fma -1   1   1 ->   0
dqfma0006 fma -1   1   2 ->   1
dqfma0007 fma -2   2   3 ->  -1
dqfma0008 fma -9   9   9 -> -72
dqfma0011 fma  1  -1   1 ->   0
dqfma0012 fma  1  -1   2 ->   1
dqfma0013 fma  2  -2   3 ->  -1
dqfma0014 fma  9  -9   9 -> -72
dqfma0015 fma  1   1  -1 ->   0
dqfma0016 fma  1   1  -2 ->  -1
dqfma0017 fma  2   2  -3 ->   1
dqfma0018 fma  9   9  -9 ->  72

-- non-integer exacts
dqfma0100  fma    25.2   63.6   -438  ->  1164.72
dqfma0101  fma   0.301  0.380    334  ->  334.114380
dqfma0102  fma    49.2   -4.8   23.3  ->  -212.86
dqfma0103  fma    4.22  0.079  -94.6  ->  -94.26662
dqfma0104  fma     903  0.797  0.887  ->  720.578
dqfma0105  fma    6.13   -161   65.9  ->  -921.03
dqfma0106  fma    28.2    727   5.45  ->  20506.85
dqfma0107  fma       4    605    688  ->  3108
dqfma0108  fma    93.3   0.19  0.226  ->  17.953
dqfma0109  fma   0.169   -341   5.61  ->  -52.019
dqfma0110  fma   -72.2     30  -51.2  ->  -2217.2
dqfma0111  fma  -0.409     13   20.4  ->  15.083
dqfma0112  fma     317   77.0   19.0  ->  24428.0
dqfma0113  fma      47   6.58   1.62  ->  310.88
dqfma0114  fma    1.36  0.984  0.493  ->  1.83124
dqfma0115  fma    72.7    274   1.56  ->  19921.36
dqfma0116  fma     335    847     83  ->  283828
dqfma0117  fma     666  0.247   25.4  ->  189.902
dqfma0118  fma   -3.87   3.06   78.0  ->  66.1578
dqfma0119  fma   0.742    192   35.6  ->  178.064
dqfma0120  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]
--                                                                                                            ->  4.500119002100000209469729375698778E+38
dqfma0202  fma       68537985861355864457.5694      6565875762972086605.85969       35892634447236753.172812  ->  4.500119002100000209469729375698779E+38 Inexact Rounded
--                                                                                                            ->  5.996248469584594346858881620185514E+41
dqfma0208  fma          89261822344727628571.9      6717595845654131383336.89      5061036497288796076266.11  ->  5.996248469584594346858881620185513E+41 Inexact Rounded
--                                                                                                            ->  1.899242968678256924021594770874070E+34
dqfma0210  fma       320506237232448685.495971       59257597764017967.984448      3205615239077711589912.85  ->  1.899242968678256924021594770874071E+34 Inexact Rounded
--                                                                                                            ->  7.078596978842809537929699954860309E+37
dqfma0215  fma        220247843259112263.17995       321392340287987979002.80        47533279819997167655440  ->  7.078596978842809537929699954860308E+37 Inexact Rounded
--                                                                                                            ->  1.224955667581427559754106862350743E+37
dqfma0226  fma       23880729790368880412.1449       512947333827064719.55407      217117438419590824502.963  ->  1.224955667581427559754106862350744E+37 Inexact Rounded
--                                                                                                            ->  -2.530094043253148806272276368579144E+42
dqfma0229  fma        2539892357016099706.4126      -996142232667504817717435       53682082598315949425.937  ->  -2.530094043253148806272276368579143E+42 Inexact Rounded
--                                                                                                            ->  1.713387085759711954319391412788454E+37
dqfma0233  fma        4546339491341624464.0804            3768717864169205581       83578980278690395184.620  ->  1.713387085759711954319391412788453E+37 Inexact Rounded
--                                                                                                            ->  4.062275663405823716411579117771547E+35
dqfma0235  fma        409242119433816131.42253      992633815166741501.477249        70179636544416756129546  ->  4.062275663405823716411579117771548E+35 Inexact Rounded
--                                                                                                            ->  6.002604327732568490562249875306823E+47
dqfma0258  fma        817941336593541742159684       733867339769310729266598      78563844650942419311830.8  ->  6.002604327732568490562249875306822E+47 Inexact Rounded
--                                                                                                            ->  -2.027022514381452197510103395283874E+39
dqfma0264  fma       387617310169161270.737532     -5229442703414956061216.62      57665666816652967150473.5  ->  -2.027022514381452197510103395283873E+39 Inexact Rounded
--                                                                                                            ->  -7.856525039803554001144089842730361E+37
dqfma0267  fma      -847655845720565274701.210        92685316564117739.83984      22780950041376424429.5686  ->  -7.856525039803554001144089842730360E+37 Inexact Rounded
--                                                                                                            ->  1.695515562011520746125607502237559E+38
dqfma0268  fma          21590290365127685.3675       7853139227576541379426.8       -3275859437236180.761544  ->  1.695515562011520746125607502237558E+38 Inexact Rounded
--                                                                                                            ->  -8.448422935783289219748115038014710E+38
dqfma0269  fma      -974320636272862697.971586      867109103641860247440.756        -9775170775902454762.98  ->  -8.448422935783289219748115038014709E+38 Inexact Rounded

-- Cases where multiply would overflow or underflow if separate
dqfma0300  fma   9e+6144    10   0         -> Infinity  Overflow Inexact Rounded
dqfma0301  fma   1e+6144    10   0         -> Infinity  Overflow Inexact Rounded
dqfma0302  fma   1e+6144    10   -1e+6144  -> 9.000000000000000000000000000000000E+6144 Clamped
dqfma0303  fma   1e+6144    10   -9e+6144  -> 1.000000000000000000000000000000000E+6144 Clamped
-- subnormal etc.
dqfma0305  fma   1e-6176    0.1  0         -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
dqfma0306  fma   1e-6176    0.1  1         -> 1.000000000000000000000000000000000 Inexact Rounded
dqfma0307  fma   1e-6176    0.1  1e-6176   -> 1E-6176 Underflow Subnormal Inexact Rounded

-- Infinite combinations
dqfma0800 fma  Inf   Inf   Inf    ->  Infinity
dqfma0801 fma  Inf   Inf  -Inf    ->  NaN Invalid_operation
dqfma0802 fma  Inf  -Inf   Inf    ->  NaN Invalid_operation
dqfma0803 fma  Inf  -Inf  -Inf    -> -Infinity
dqfma0804 fma -Inf   Inf   Inf    ->  NaN Invalid_operation
dqfma0805 fma -Inf   Inf  -Inf    -> -Infinity
dqfma0806 fma -Inf  -Inf   Inf    ->  Infinity
dqfma0807 fma -Inf  -Inf  -Inf    ->  NaN Invalid_operation

-- Triple NaN propagation
dqfma0900 fma  NaN2  NaN3  NaN5   ->  NaN2
dqfma0901 fma  0     NaN3  NaN5   ->  NaN3
dqfma0902 fma  0     0     NaN5   ->  NaN5
-- first sNaN wins (consider qNaN from earlier sNaN being
-- overridden by an sNaN in third operand)
dqfma0903 fma  sNaN1 sNaN2 sNaN3  ->  NaN1 Invalid_operation
dqfma0904 fma  0     sNaN2 sNaN3  ->  NaN2 Invalid_operation
dqfma0905 fma  0     0     sNaN3  ->  NaN3 Invalid_operation
dqfma0906 fma  sNaN1 sNaN2 sNaN3  ->  NaN1 Invalid_operation
dqfma0907 fma  NaN7  sNaN2 sNaN3  ->  NaN2 Invalid_operation
dqfma0908 fma  NaN7  NaN5  sNaN3  ->  NaN3 Invalid_operation

-- MULTIPLICATION TESTS ------------------------------------------------
rounding:    half_even

-- sanity checks
dqfma2000 fma  2      2   0e+6144  -> 4
dqfma2001 fma  2      3   0e+6144  -> 6
dqfma2002 fma  5      1   0e+6144  -> 5
dqfma2003 fma  5      2   0e+6144  -> 10
dqfma2004 fma  1.20   2   0e+6144  -> 2.40
dqfma2005 fma  1.20   0   0e+6144  -> 0.00
dqfma2006 fma  1.20  -2   0e+6144  -> -2.40
dqfma2007 fma  -1.20  2   0e+6144  -> -2.40
dqfma2008 fma  -1.20  0   0e+6144  -> 0.00
dqfma2009 fma  -1.20 -2   0e+6144  -> 2.40
dqfma2010 fma  5.09 7.1   0e+6144  -> 36.139
dqfma2011 fma  2.5    4   0e+6144  -> 10.0
dqfma2012 fma  2.50   4   0e+6144  -> 10.00
dqfma2013 fma  1.23456789 1.0000000000000000000000000000   0e+6144  -> 1.234567890000000000000000000000000 Rounded
dqfma2015 fma  2.50   4   0e+6144  -> 10.00
dqfma2016 fma   9.99999999999999999  9.99999999999999999   0e+6144  ->  99.99999999999999980000000000000000 Inexact Rounded
dqfma2017 fma   9.99999999999999999 -9.99999999999999999   0e+6144  -> -99.99999999999999980000000000000000 Inexact Rounded
dqfma2018 fma  -9.99999999999999999  9.99999999999999999   0e+6144  -> -99.99999999999999980000000000000000 Inexact Rounded
dqfma2019 fma  -9.99999999999999999 -9.99999999999999999   0e+6144  ->  99.99999999999999980000000000000000 Inexact Rounded

-- zeros, etc.
dqfma2021 fma   0      0       0e+6144  ->  0
dqfma2022 fma   0     -0       0e+6144  ->  0
dqfma2023 fma  -0      0       0e+6144  ->  0
dqfma2024 fma  -0     -0       0e+6144  ->  0
dqfma2025 fma  -0.0   -0.0     0e+6144  ->  0.00
dqfma2026 fma  -0.0   -0.0     0e+6144  ->  0.00
dqfma2027 fma  -0.0   -0.0     0e+6144  ->  0.00
dqfma2028 fma  -0.0   -0.0     0e+6144  ->  0.00
dqfma2030 fma   5.00   1E-3    0e+6144  ->  0.00500
dqfma2031 fma   00.00  0.000   0e+6144  ->  0.00000
dqfma2032 fma   00.00  0E-3    0e+6144  ->  0.00000     -- rhs is 0
dqfma2033 fma   0E-3   00.00   0e+6144  ->  0.00000     -- lhs is 0
dqfma2034 fma  -5.00   1E-3    0e+6144  -> -0.00500
dqfma2035 fma  -00.00  0.000   0e+6144  ->  0.00000
dqfma2036 fma  -00.00  0E-3    0e+6144  ->  0.00000     -- rhs is 0
dqfma2037 fma  -0E-3   00.00   0e+6144  ->  0.00000     -- lhs is 0
dqfma2038 fma   5.00  -1E-3    0e+6144  -> -0.00500
dqfma2039 fma   00.00 -0.000   0e+6144  ->  0.00000
dqfma2040 fma   00.00 -0E-3    0e+6144  ->  0.00000     -- rhs is 0
dqfma2041 fma   0E-3  -00.00   0e+6144  ->  0.00000     -- lhs is 0
dqfma2042 fma  -5.00  -1E-3    0e+6144  ->  0.00500
dqfma2043 fma  -00.00 -0.000   0e+6144  ->  0.00000
dqfma2044 fma  -00.00 -0E-3    0e+6144  ->  0.00000     -- rhs is 0
dqfma2045 fma  -0E-3  -00.00   0e+6144  ->  0.00000     -- lhs is 0

-- examples from decarith
dqfma2050 fma  1.20 3          0e+6144  -> 3.60
dqfma2051 fma  7    3          0e+6144  -> 21
dqfma2052 fma  0.9  0.8        0e+6144  -> 0.72
dqfma2053 fma  0.9  -0         0e+6144  -> 0.0
dqfma2054 fma  654321 654321   0e+6144  -> 428135971041

dqfma2060 fma  123.45 1e7    0e+6144  ->  1.2345E+9
dqfma2061 fma  123.45 1e8    0e+6144  ->  1.2345E+10
dqfma2062 fma  123.45 1e+9   0e+6144  ->  1.2345E+11
dqfma2063 fma  123.45 1e10   0e+6144  ->  1.2345E+12
dqfma2064 fma  123.45 1e11   0e+6144  ->  1.2345E+13
dqfma2065 fma  123.45 1e12   0e+6144  ->  1.2345E+14
dqfma2066 fma  123.45 1e13   0e+6144  ->  1.2345E+15


-- test some intermediate lengths
--                    1234567890123456
dqfma2080 fma  0.1 1230123456456789       0e+6144  -> 123012345645678.9
dqfma2084 fma  0.1 1230123456456789       0e+6144  -> 123012345645678.9
dqfma2090 fma  1230123456456789     0.1   0e+6144  -> 123012345645678.9
dqfma2094 fma  1230123456456789     0.1   0e+6144  -> 123012345645678.9

-- test some more edge cases and carries
dqfma2101 fma  9 9     0e+6144  -> 81
dqfma2102 fma  9 90     0e+6144  -> 810
dqfma2103 fma  9 900     0e+6144  -> 8100
dqfma2104 fma  9 9000     0e+6144  -> 81000
dqfma2105 fma  9 90000     0e+6144  -> 810000
dqfma2106 fma  9 900000     0e+6144  -> 8100000
dqfma2107 fma  9 9000000     0e+6144  -> 81000000
dqfma2108 fma  9 90000000     0e+6144  -> 810000000
dqfma2109 fma  9 900000000     0e+6144  -> 8100000000
dqfma2110 fma  9 9000000000     0e+6144  -> 81000000000
dqfma2111 fma  9 90000000000     0e+6144  -> 810000000000
dqfma2112 fma  9 900000000000     0e+6144  -> 8100000000000
dqfma2113 fma  9 9000000000000     0e+6144  -> 81000000000000
dqfma2114 fma  9 90000000000000     0e+6144  -> 810000000000000
dqfma2115 fma  9 900000000000000     0e+6144  -> 8100000000000000
--dqfma2116 fma  9 9000000000000000     0e+6144  -> 81000000000000000
--dqfma2117 fma  9 90000000000000000     0e+6144  -> 810000000000000000
--dqfma2118 fma  9 900000000000000000     0e+6144  -> 8100000000000000000
--dqfma2119 fma  9 9000000000000000000     0e+6144  -> 81000000000000000000
--dqfma2120 fma  9 90000000000000000000     0e+6144  -> 810000000000000000000
--dqfma2121 fma  9 900000000000000000000     0e+6144  -> 8100000000000000000000
--dqfma2122 fma  9 9000000000000000000000     0e+6144  -> 81000000000000000000000
--dqfma2123 fma  9 90000000000000000000000     0e+6144  -> 810000000000000000000000
-- test some more edge cases without carries
dqfma2131 fma  3 3     0e+6144  -> 9
dqfma2132 fma  3 30     0e+6144  -> 90
dqfma2133 fma  3 300     0e+6144  -> 900
dqfma2134 fma  3 3000     0e+6144  -> 9000
dqfma2135 fma  3 30000     0e+6144  -> 90000
dqfma2136 fma  3 300000     0e+6144  -> 900000
dqfma2137 fma  3 3000000     0e+6144  -> 9000000
dqfma2138 fma  3 30000000     0e+6144  -> 90000000
dqfma2139 fma  3 300000000     0e+6144  -> 900000000
dqfma2140 fma  3 3000000000     0e+6144  -> 9000000000
dqfma2141 fma  3 30000000000     0e+6144  -> 90000000000
dqfma2142 fma  3 300000000000     0e+6144  -> 900000000000
dqfma2143 fma  3 3000000000000     0e+6144  -> 9000000000000
dqfma2144 fma  3 30000000000000     0e+6144  -> 90000000000000
dqfma2145 fma  3 300000000000000     0e+6144  -> 900000000000000
dqfma2146 fma  3 3000000000000000     0e+6144  -> 9000000000000000
dqfma2147 fma  3 30000000000000000     0e+6144  -> 90000000000000000
dqfma2148 fma  3 300000000000000000     0e+6144  -> 900000000000000000
dqfma2149 fma  3 3000000000000000000     0e+6144  -> 9000000000000000000
dqfma2150 fma  3 30000000000000000000     0e+6144  -> 90000000000000000000
dqfma2151 fma  3 300000000000000000000     0e+6144  -> 900000000000000000000
dqfma2152 fma  3 3000000000000000000000     0e+6144  -> 9000000000000000000000
dqfma2153 fma  3 30000000000000000000000     0e+6144  -> 90000000000000000000000

dqfma2263 fma  30269.587755640502150977251770554 4.8046009735990873395936309640543   0e+6144  -> 145433.2908011933696719165119928296 Inexact Rounded

-- test some edge cases with exact rounding
dqfma2301 fma  900000000000000000 9     0e+6144  -> 8100000000000000000
dqfma2302 fma  900000000000000000 90     0e+6144  -> 81000000000000000000
dqfma2303 fma  900000000000000000 900     0e+6144  -> 810000000000000000000
dqfma2304 fma  900000000000000000 9000     0e+6144  -> 8100000000000000000000
dqfma2305 fma  900000000000000000 90000     0e+6144  -> 81000000000000000000000
dqfma2306 fma  900000000000000000 900000     0e+6144  -> 810000000000000000000000
dqfma2307 fma  900000000000000000 9000000     0e+6144  -> 8100000000000000000000000
dqfma2308 fma  900000000000000000 90000000     0e+6144  -> 81000000000000000000000000
dqfma2309 fma  900000000000000000 900000000     0e+6144  -> 810000000000000000000000000
dqfma2310 fma  900000000000000000 9000000000     0e+6144  -> 8100000000000000000000000000
dqfma2311 fma  900000000000000000 90000000000     0e+6144  -> 81000000000000000000000000000
dqfma2312 fma  900000000000000000 900000000000     0e+6144  -> 810000000000000000000000000000
dqfma2313 fma  900000000000000000 9000000000000     0e+6144  -> 8100000000000000000000000000000
dqfma2314 fma  900000000000000000 90000000000000     0e+6144  -> 81000000000000000000000000000000
dqfma2315 fma  900000000000000000 900000000000000     0e+6144  -> 810000000000000000000000000000000
dqfma2316 fma  900000000000000000 9000000000000000     0e+6144  -> 8100000000000000000000000000000000
dqfma2317 fma  9000000000000000000 9000000000000000     0e+6144  -> 8.100000000000000000000000000000000E+34  Rounded
dqfma2318 fma  90000000000000000000 9000000000000000     0e+6144  -> 8.100000000000000000000000000000000E+35  Rounded
dqfma2319 fma  900000000000000000000 9000000000000000     0e+6144  -> 8.100000000000000000000000000000000E+36  Rounded
dqfma2320 fma  9000000000000000000000 9000000000000000     0e+6144  -> 8.100000000000000000000000000000000E+37  Rounded
dqfma2321 fma  90000000000000000000000 9000000000000000     0e+6144  -> 8.100000000000000000000000000000000E+38  Rounded
dqfma2322 fma  900000000000000000000000 9000000000000000     0e+6144  -> 8.100000000000000000000000000000000E+39  Rounded
dqfma2323 fma  9000000000000000000000000 9000000000000000     0e+6144  -> 8.100000000000000000000000000000000E+40  Rounded

-- tryzeros cases
dqfma2504  fma   0E-4260 1000E-4260    0e+6144  -> 0E-6176 Clamped
dqfma2505  fma   100E+4260 0E+4260     0e+6144  -> 0E+6111 Clamped

-- mixed with zeros
dqfma2541 fma   0    -1       0e+6144  ->  0
dqfma2542 fma  -0    -1       0e+6144  ->  0
dqfma2543 fma   0     1       0e+6144  ->  0
dqfma2544 fma  -0     1       0e+6144  ->  0
dqfma2545 fma  -1     0       0e+6144  ->  0
dqfma2546 fma  -1    -0       0e+6144  ->  0
dqfma2547 fma   1     0       0e+6144  ->  0
dqfma2548 fma   1    -0       0e+6144  ->  0

dqfma2551 fma   0.0  -1       0e+6144  ->  0.0
dqfma2552 fma  -0.0  -1       0e+6144  ->  0.0
dqfma2553 fma   0.0   1       0e+6144  ->  0.0
dqfma2554 fma  -0.0   1       0e+6144  ->  0.0
dqfma2555 fma  -1.0   0       0e+6144  ->  0.0
dqfma2556 fma  -1.0  -0       0e+6144  ->  0.0
dqfma2557 fma   1.0   0       0e+6144  ->  0.0
dqfma2558 fma   1.0  -0       0e+6144  ->  0.0

dqfma2561 fma   0    -1.0     0e+6144  ->  0.0
dqfma2562 fma  -0    -1.0     0e+6144  ->  0.0
dqfma2563 fma   0     1.0     0e+6144  ->  0.0
dqfma2564 fma  -0     1.0     0e+6144  ->  0.0
dqfma2565 fma  -1     0.0     0e+6144  ->  0.0
dqfma2566 fma  -1    -0.0     0e+6144  ->  0.0
dqfma2567 fma   1     0.0     0e+6144  ->  0.0
dqfma2568 fma   1    -0.0     0e+6144  ->  0.0

dqfma2571 fma   0.0  -1.0     0e+6144  ->  0.00
dqfma2572 fma  -0.0  -1.0     0e+6144  ->  0.00
dqfma2573 fma   0.0   1.0     0e+6144  ->  0.00
dqfma2574 fma  -0.0   1.0     0e+6144  ->  0.00
dqfma2575 fma  -1.0   0.0     0e+6144  ->  0.00
dqfma2576 fma  -1.0  -0.0     0e+6144  ->  0.00
dqfma2577 fma   1.0   0.0     0e+6144  ->  0.00
dqfma2578 fma   1.0  -0.0     0e+6144  ->  0.00
dqfma2579 fma   1.0   0.0     0e+6144  ->  0.00
dqfma2530 fma  -1.0  -0.0     0e+6144  ->  0.00
dqfma2531 fma  -1.0   0.0     0e+6144  ->  0.00
dqfma2532 fma   1.0  -0.0    -0e+6144  -> -0.00
dqfma2533 fma   1.0   0.0    -0e+6144  ->  0.00
dqfma2534 fma  -1.0  -0.0    -0e+6144  ->  0.00
dqfma2535 fma  -1.0   0.0    -0e+6144  -> -0.00


-- Specials
dqfma2580 fma   Inf  -Inf     0e+6144  -> -Infinity
dqfma2581 fma   Inf  -1000    0e+6144  -> -Infinity
dqfma2582 fma   Inf  -1       0e+6144  -> -Infinity
dqfma2583 fma   Inf  -0       0e+6144  ->  NaN  Invalid_operation
dqfma2584 fma   Inf   0       0e+6144  ->  NaN  Invalid_operation
dqfma2585 fma   Inf   1       0e+6144  ->  Infinity
dqfma2586 fma   Inf   1000    0e+6144  ->  Infinity
dqfma2587 fma   Inf   Inf     0e+6144  ->  Infinity
dqfma2588 fma  -1000  Inf     0e+6144  -> -Infinity
dqfma2589 fma  -Inf   Inf     0e+6144  -> -Infinity
dqfma2590 fma  -1     Inf     0e+6144  -> -Infinity
dqfma2591 fma  -0     Inf     0e+6144  ->  NaN  Invalid_operation
dqfma2592 fma   0     Inf     0e+6144  ->  NaN  Invalid_operation
dqfma2593 fma   1     Inf     0e+6144  ->  Infinity
dqfma2594 fma   1000  Inf     0e+6144  ->  Infinity
dqfma2595 fma   Inf   Inf     0e+6144  ->  Infinity

dqfma2600 fma  -Inf  -Inf     0e+6144  ->  Infinity
dqfma2601 fma  -Inf  -1000    0e+6144  ->  Infinity
dqfma2602 fma  -Inf  -1       0e+6144  ->  Infinity
dqfma2603 fma  -Inf  -0       0e+6144  ->  NaN  Invalid_operation
dqfma2604 fma  -Inf   0       0e+6144  ->  NaN  Invalid_operation
dqfma2605 fma  -Inf   1       0e+6144  -> -Infinity
dqfma2606 fma  -Inf   1000    0e+6144  -> -Infinity
dqfma2607 fma  -Inf   Inf     0e+6144  -> -Infinity
dqfma2608 fma  -1000  Inf     0e+6144  -> -Infinity
dqfma2609 fma  -Inf  -Inf     0e+6144  ->  Infinity
dqfma2610 fma  -1    -Inf     0e+6144  ->  Infinity
dqfma2611 fma  -0    -Inf     0e+6144  ->  NaN  Invalid_operation
dqfma2612 fma   0    -Inf     0e+6144  ->  NaN  Invalid_operation
dqfma2613 fma   1    -Inf     0e+6144  -> -Infinity
dqfma2614 fma   1000 -Inf     0e+6144  -> -Infinity
dqfma2615 fma   Inf  -Inf     0e+6144  -> -Infinity

dqfma2621 fma   NaN -Inf      0e+6144  ->  NaN
dqfma2622 fma   NaN -1000     0e+6144  ->  NaN
dqfma2623 fma   NaN -1        0e+6144  ->  NaN
dqfma2624 fma   NaN -0        0e+6144  ->  NaN
dqfma2625 fma   NaN  0        0e+6144  ->  NaN
dqfma2626 fma   NaN  1        0e+6144  ->  NaN
dqfma2627 fma   NaN  1000     0e+6144  ->  NaN
dqfma2628 fma   NaN  Inf      0e+6144  ->  NaN
dqfma2629 fma   NaN  NaN      0e+6144  ->  NaN
dqfma2630 fma  -Inf  NaN      0e+6144  ->  NaN
dqfma2631 fma  -1000 NaN      0e+6144  ->  NaN
dqfma2632 fma  -1    NaN      0e+6144  ->  NaN
dqfma2633 fma  -0    NaN      0e+6144  ->  NaN
dqfma2634 fma   0    NaN      0e+6144  ->  NaN
dqfma2635 fma   1    NaN      0e+6144  ->  NaN
dqfma2636 fma   1000 NaN      0e+6144  ->  NaN
dqfma2637 fma   Inf  NaN      0e+6144  ->  NaN

dqfma2641 fma   sNaN -Inf     0e+6144  ->  NaN  Invalid_operation
dqfma2642 fma   sNaN -1000    0e+6144  ->  NaN  Invalid_operation
dqfma2643 fma   sNaN -1       0e+6144  ->  NaN  Invalid_operation
dqfma2644 fma   sNaN -0       0e+6144  ->  NaN  Invalid_operation
dqfma2645 fma   sNaN  0       0e+6144  ->  NaN  Invalid_operation
dqfma2646 fma   sNaN  1       0e+6144  ->  NaN  Invalid_operation
dqfma2647 fma   sNaN  1000    0e+6144  ->  NaN  Invalid_operation
dqfma2648 fma   sNaN  NaN     0e+6144  ->  NaN  Invalid_operation
dqfma2649 fma   sNaN sNaN     0e+6144  ->  NaN  Invalid_operation
dqfma2650 fma   NaN  sNaN     0e+6144  ->  NaN  Invalid_operation
dqfma2651 fma  -Inf  sNaN     0e+6144  ->  NaN  Invalid_operation
dqfma2652 fma  -1000 sNaN     0e+6144  ->  NaN  Invalid_operation
dqfma2653 fma  -1    sNaN     0e+6144  ->  NaN  Invalid_operation
dqfma2654 fma  -0    sNaN     0e+6144  ->  NaN  Invalid_operation
dqfma2655 fma   0    sNaN     0e+6144  ->  NaN  Invalid_operation
dqfma2656 fma   1    sNaN     0e+6144  ->  NaN  Invalid_operation
dqfma2657 fma   1000 sNaN     0e+6144  ->  NaN  Invalid_operation
dqfma2658 fma   Inf  sNaN     0e+6144  ->  NaN  Invalid_operation
dqfma2659 fma   NaN  sNaN     0e+6144  ->  NaN  Invalid_operation

-- propagating NaNs
dqfma2661 fma   NaN9 -Inf     0e+6144  ->  NaN9
dqfma2662 fma   NaN8  999     0e+6144  ->  NaN8
dqfma2663 fma   NaN71 Inf     0e+6144  ->  NaN71
dqfma2664 fma   NaN6  NaN5    0e+6144  ->  NaN6
dqfma2665 fma  -Inf   NaN4    0e+6144  ->  NaN4
dqfma2666 fma  -999   NaN33   0e+6144  ->  NaN33
dqfma2667 fma   Inf   NaN2    0e+6144  ->  NaN2

dqfma2671 fma   sNaN99 -Inf      0e+6144  ->  NaN99 Invalid_operation
dqfma2672 fma   sNaN98 -11       0e+6144  ->  NaN98 Invalid_operation
dqfma2673 fma   sNaN97  NaN      0e+6144  ->  NaN97 Invalid_operation
dqfma2674 fma   sNaN16 sNaN94    0e+6144  ->  NaN16 Invalid_operation
dqfma2675 fma   NaN95  sNaN93    0e+6144  ->  NaN93 Invalid_operation
dqfma2676 fma  -Inf    sNaN92    0e+6144  ->  NaN92 Invalid_operation
dqfma2677 fma   088    sNaN91    0e+6144  ->  NaN91 Invalid_operation
dqfma2678 fma   Inf    sNaN90    0e+6144  ->  NaN90 Invalid_operation
dqfma2679 fma   NaN    sNaN89    0e+6144  ->  NaN89 Invalid_operation

dqfma2681 fma  -NaN9 -Inf     0e+6144  -> -NaN9
dqfma2682 fma  -NaN8  999     0e+6144  -> -NaN8
dqfma2683 fma  -NaN71 Inf     0e+6144  -> -NaN71
dqfma2684 fma  -NaN6 -NaN5    0e+6144  -> -NaN6
dqfma2685 fma  -Inf  -NaN4    0e+6144  -> -NaN4
dqfma2686 fma  -999  -NaN33   0e+6144  -> -NaN33
dqfma2687 fma   Inf  -NaN2    0e+6144  -> -NaN2

dqfma2691 fma  -sNaN99 -Inf      0e+6144  -> -NaN99 Invalid_operation
dqfma2692 fma  -sNaN98 -11       0e+6144  -> -NaN98 Invalid_operation
dqfma2693 fma  -sNaN97  NaN      0e+6144  -> -NaN97 Invalid_operation
dqfma2694 fma  -sNaN16 -sNaN94   0e+6144  -> -NaN16 Invalid_operation
dqfma2695 fma  -NaN95  -sNaN93   0e+6144  -> -NaN93 Invalid_operation
dqfma2696 fma  -Inf    -sNaN92   0e+6144  -> -NaN92 Invalid_operation
dqfma2697 fma   088    -sNaN91   0e+6144  -> -NaN91 Invalid_operation
dqfma2698 fma   Inf    -sNaN90   0e+6144  -> -NaN90 Invalid_operation
dqfma2699 fma  -NaN    -sNaN89   0e+6144  -> -NaN89 Invalid_operation

dqfma2701 fma  -NaN  -Inf     0e+6144  -> -NaN
dqfma2702 fma  -NaN   999     0e+6144  -> -NaN
dqfma2703 fma  -NaN   Inf     0e+6144  -> -NaN
dqfma2704 fma  -NaN  -NaN     0e+6144  -> -NaN
dqfma2705 fma  -Inf  -NaN0    0e+6144  -> -NaN
dqfma2706 fma  -999  -NaN     0e+6144  -> -NaN
dqfma2707 fma   Inf  -NaN     0e+6144  -> -NaN

dqfma2711 fma  -sNaN   -Inf      0e+6144  -> -NaN Invalid_operation
dqfma2712 fma  -sNaN   -11       0e+6144  -> -NaN Invalid_operation
dqfma2713 fma  -sNaN00  NaN      0e+6144  -> -NaN Invalid_operation
dqfma2714 fma  -sNaN   -sNaN     0e+6144  -> -NaN Invalid_operation
dqfma2715 fma  -NaN    -sNaN     0e+6144  -> -NaN Invalid_operation
dqfma2716 fma  -Inf    -sNaN     0e+6144  -> -NaN Invalid_operation
dqfma2717 fma   088    -sNaN     0e+6144  -> -NaN Invalid_operation
dqfma2718 fma   Inf    -sNaN     0e+6144  -> -NaN Invalid_operation
dqfma2719 fma  -NaN    -sNaN     0e+6144  -> -NaN Invalid_operation

-- overflow and underflow tests .. note subnormal results
-- signs
dqfma2751 fma   1e+4277  1e+3311   0e+6144  ->  Infinity Overflow Inexact Rounded
dqfma2752 fma   1e+4277 -1e+3311   0e+6144  -> -Infinity Overflow Inexact Rounded
dqfma2753 fma  -1e+4277  1e+3311   0e+6144  -> -Infinity Overflow Inexact Rounded
dqfma2754 fma  -1e+4277 -1e+3311   0e+6144  ->  Infinity Overflow Inexact Rounded
dqfma2755 fma   1e-4277  1e-3311   0e+6144  ->  0E-6176 Underflow Subnormal Inexact Rounded Clamped
dqfma2756 fma   1e-4277 -1e-3311   0e+6144  -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
dqfma2757 fma  -1e-4277  1e-3311   0e+6144  -> -0E-6176 Underflow Subnormal Inexact Rounded Clamped
dqfma2758 fma  -1e-4277 -1e-3311   0e+6144  ->  0E-6176 Underflow Subnormal Inexact Rounded Clamped

-- 'subnormal' boundary (all hard underflow or overflow in base arithemtic)
dqfma2760 fma  1e-6069 1e-101   0e+6144  -> 1E-6170 Subnormal
dqfma2761 fma  1e-6069 1e-102   0e+6144  -> 1E-6171 Subnormal
dqfma2762 fma  1e-6069 1e-103   0e+6144  -> 1E-6172 Subnormal
dqfma2763 fma  1e-6069 1e-104   0e+6144  -> 1E-6173 Subnormal
dqfma2764 fma  1e-6069 1e-105   0e+6144  -> 1E-6174 Subnormal
dqfma2765 fma  1e-6069 1e-106   0e+6144  -> 1E-6175 Subnormal
dqfma2766 fma  1e-6069 1e-107   0e+6144  -> 1E-6176 Subnormal
dqfma2767 fma  1e-6069 1e-108   0e+6144  -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
dqfma2768 fma  1e-6069 1e-109   0e+6144  -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
dqfma2769 fma  1e-6069 1e-110   0e+6144  -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
-- [no equivalent of 'subnormal' for overflow]
dqfma2770 fma  1e+40 1e+6101   0e+6144  -> 1.000000000000000000000000000000E+6141 Clamped
dqfma2771 fma  1e+40 1e+6102   0e+6144  -> 1.0000000000000000000000000000000E+6142  Clamped
dqfma2772 fma  1e+40 1e+6103   0e+6144  -> 1.00000000000000000000000000000000E+6143  Clamped
dqfma2773 fma  1e+40 1e+6104   0e+6144  -> 1.000000000000000000000000000000000E+6144  Clamped
dqfma2774 fma  1e+40 1e+6105   0e+6144  -> Infinity Overflow Inexact Rounded
dqfma2775 fma  1e+40 1e+6106   0e+6144  -> Infinity Overflow Inexact Rounded
dqfma2776 fma  1e+40 1e+6107   0e+6144  -> Infinity Overflow Inexact Rounded
dqfma2777 fma  1e+40 1e+6108   0e+6144  -> Infinity Overflow Inexact Rounded
dqfma2778 fma  1e+40 1e+6109   0e+6144  -> Infinity Overflow Inexact Rounded
dqfma2779 fma  1e+40 1e+6110   0e+6144  -> Infinity Overflow Inexact Rounded

dqfma2801 fma   1.0000E-6172  1       0e+6144  -> 1.0000E-6172 Subnormal
dqfma2802 fma   1.000E-6172   1e-1    0e+6144  -> 1.000E-6173  Subnormal
dqfma2803 fma   1.00E-6172    1e-2    0e+6144  -> 1.00E-6174   Subnormal
dqfma2804 fma   1.0E-6172     1e-3    0e+6144  -> 1.0E-6175    Subnormal
dqfma2805 fma   1.0E-6172     1e-4    0e+6144  -> 1E-6176     Subnormal Rounded
dqfma2806 fma   1.3E-6172     1e-4    0e+6144  -> 1E-6176     Underflow Subnormal Inexact Rounded
dqfma2807 fma   1.5E-6172     1e-4    0e+6144  -> 2E-6176     Underflow Subnormal Inexact Rounded
dqfma2808 fma   1.7E-6172     1e-4    0e+6144  -> 2E-6176     Underflow Subnormal Inexact Rounded
dqfma2809 fma   2.3E-6172     1e-4    0e+6144  -> 2E-6176     Underflow Subnormal Inexact Rounded
dqfma2810 fma   2.5E-6172     1e-4    0e+6144  -> 2E-6176     Underflow Subnormal Inexact Rounded
dqfma2811 fma   2.7E-6172     1e-4    0e+6144  -> 3E-6176     Underflow Subnormal Inexact Rounded
dqfma2812 fma   1.49E-6172    1e-4    0e+6144  -> 1E-6176     Underflow Subnormal Inexact Rounded
dqfma2813 fma   1.50E-6172    1e-4    0e+6144  -> 2E-6176     Underflow Subnormal Inexact Rounded
dqfma2814 fma   1.51E-6172    1e-4    0e+6144  -> 2E-6176     Underflow Subnormal Inexact Rounded
dqfma2815 fma   2.49E-6172    1e-4    0e+6144  -> 2E-6176     Underflow Subnormal Inexact Rounded
dqfma2816 fma   2.50E-6172    1e-4    0e+6144  -> 2E-6176     Underflow Subnormal Inexact Rounded
dqfma2817 fma   2.51E-6172    1e-4    0e+6144  -> 3E-6176     Underflow Subnormal Inexact Rounded

dqfma2818 fma   1E-6172       1e-4    0e+6144  -> 1E-6176     Subnormal
dqfma2819 fma   3E-6172       1e-5    0e+6144  -> 0E-6176     Underflow Subnormal Inexact Rounded Clamped
dqfma2820 fma   5E-6172       1e-5    0e+6144  -> 0E-6176     Underflow Subnormal Inexact Rounded Clamped
dqfma2821 fma   7E-6172       1e-5    0e+6144  -> 1E-6176     Underflow Subnormal Inexact Rounded
dqfma2822 fma   9E-6172       1e-5    0e+6144  -> 1E-6176     Underflow Subnormal Inexact Rounded
dqfma2823 fma   9.9E-6172     1e-5    0e+6144  -> 1E-6176     Underflow Subnormal Inexact Rounded

dqfma2824 fma   1E-6172      -1e-4    0e+6144  -> -1E-6176    Subnormal
dqfma2825 fma   3E-6172      -1e-5    0e+6144  -> -0E-6176    Underflow Subnormal Inexact Rounded Clamped
dqfma2826 fma  -5E-6172       1e-5    0e+6144  -> -0E-6176    Underflow Subnormal Inexact Rounded Clamped
dqfma2827 fma   7E-6172      -1e-5    0e+6144  -> -1E-6176    Underflow Subnormal Inexact Rounded
dqfma2828 fma  -9E-6172       1e-5    0e+6144  -> -1E-6176    Underflow Subnormal Inexact Rounded
dqfma2829 fma   9.9E-6172    -1e-5    0e+6144  -> -1E-6176    Underflow Subnormal Inexact Rounded
dqfma2830 fma   3.0E-6172    -1e-5    0e+6144  -> -0E-6176    Underflow Subnormal Inexact Rounded Clamped

dqfma2831 fma   1.0E-5977     1e-200   0e+6144  -> 0E-6176 Underflow Subnormal Inexact Rounded Clamped
dqfma2832 fma   1.0E-5977     1e-199   0e+6144  -> 1E-6176    Subnormal Rounded
dqfma2833 fma   1.0E-5977     1e-198   0e+6144  -> 1.0E-6175    Subnormal
dqfma2834 fma   2.0E-5977     2e-198   0e+6144  -> 4.0E-6175    Subnormal
dqfma2835 fma   4.0E-5977     4e-198   0e+6144  -> 1.60E-6174   Subnormal
dqfma2836 fma  10.0E-5977    10e-198   0e+6144  -> 1.000E-6173  Subnormal
dqfma2837 fma  30.0E-5977    30e-198   0e+6144  -> 9.000E-6173  Subnormal
dqfma2838 fma  40.0E-5982    40e-166   0e+6144  -> 1.6000E-6145 Subnormal
dqfma2839 fma  40.0E-5982    40e-165   0e+6144  -> 1.6000E-6144 Subnormal
dqfma2840 fma  40.0E-5982    40e-164   0e+6144  -> 1.6000E-6143

-- Long operand overflow may be a different path
dqfma2870 fma  100  9.999E+6143       0e+6144  ->  Infinity Inexact Overflow Rounded
dqfma2871 fma  100 -9.999E+6143       0e+6144  -> -Infinity Inexact Overflow Rounded
dqfma2872 fma       9.999E+6143 100   0e+6144  ->  Infinity Inexact Overflow Rounded
dqfma2873 fma      -9.999E+6143 100   0e+6144  -> -Infinity Inexact Overflow Rounded

-- check for double-rounded subnormals
dqfma2881 fma   1.2347E-6133 1.2347E-40    0e+6144  ->  1.524E-6173 Inexact Rounded Subnormal Underflow
dqfma2882 fma   1.234E-6133 1.234E-40      0e+6144  ->  1.523E-6173 Inexact Rounded Subnormal Underflow
dqfma2883 fma   1.23E-6133  1.23E-40       0e+6144  ->  1.513E-6173 Inexact Rounded Subnormal Underflow
dqfma2884 fma   1.2E-6133   1.2E-40        0e+6144  ->  1.44E-6173  Subnormal
dqfma2885 fma   1.2E-6133   1.2E-41        0e+6144  ->  1.44E-6174  Subnormal
dqfma2886 fma   1.2E-6133   1.2E-42        0e+6144  ->  1.4E-6175   Subnormal Inexact Rounded Underflow
dqfma2887 fma   1.2E-6133   1.3E-42        0e+6144  ->  1.6E-6175   Subnormal Inexact Rounded Underflow
dqfma2888 fma   1.3E-6133   1.3E-42        0e+6144  ->  1.7E-6175   Subnormal Inexact Rounded Underflow
dqfma2889 fma   1.3E-6133   1.3E-43        0e+6144  ->    2E-6176   Subnormal Inexact Rounded Underflow
dqfma2890 fma   1.3E-6134   1.3E-43        0e+6144  ->    0E-6176   Clamped Subnormal Inexact Rounded Underflow

dqfma2891 fma   1.2345E-39    1.234E-6133   0e+6144  ->  1.5234E-6172 Inexact Rounded Subnormal Underflow
dqfma2892 fma   1.23456E-39   1.234E-6133   0e+6144  ->  1.5234E-6172 Inexact Rounded Subnormal Underflow
dqfma2893 fma   1.2345E-40   1.234E-6133   0e+6144  ->  1.523E-6173  Inexact Rounded Subnormal Underflow
dqfma2894 fma   1.23456E-40  1.234E-6133   0e+6144  ->  1.523E-6173  Inexact Rounded Subnormal Underflow
dqfma2895 fma   1.2345E-41   1.234E-6133   0e+6144  ->  1.52E-6174   Inexact Rounded Subnormal Underflow
dqfma2896 fma   1.23456E-41  1.234E-6133   0e+6144  ->  1.52E-6174   Inexact Rounded Subnormal Underflow

-- Now explore the case where we get a normal result with Underflow
-- prove operands are exact
dqfma2906 fma   9.999999999999999999999999999999999E-6143  1                         0e+6144  -> 9.999999999999999999999999999999999E-6143
dqfma2907 fma                        1  0.09999999999999999999999999999999999       0e+6144  -> 0.09999999999999999999999999999999999
-- the next rounds to Nmin
dqfma2908 fma   9.999999999999999999999999999999999E-6143  0.09999999999999999999999999999999999       0e+6144  -> 1.000000000000000000000000000000000E-6143 Underflow Inexact Subnormal Rounded

-- hugest
dqfma2909 fma  9999999999999999999999999999999999 9999999999999999999999999999999999   0e+6144  -> 9.999999999999999999999999999999998E+67 Inexact Rounded

-- Examples from SQL proposal (Krishna Kulkarni)
precision:   34
rounding:    half_up
maxExponent: 6144
minExponent: -6143
dqfma21001  fma  130E-2  120E-2   0e+6144  -> 1.5600
dqfma21002  fma  130E-2  12E-1    0e+6144  -> 1.560
dqfma21003  fma  130E-2  1E0      0e+6144  -> 1.30
dqfma21004  fma  1E2     1E4      0e+6144  -> 1E+6

-- Null tests
dqfma2990 fma  10  #   0e+6144  -> NaN Invalid_operation
dqfma2991 fma   # 10   0e+6144  -> NaN Invalid_operation


-- ADDITION TESTS ------------------------------------------------------
rounding:    half_even

-- [first group are 'quick confidence check']
dqadd3001 fma  1  1       1       ->  2
dqadd3002 fma  1  2       3       ->  5
dqadd3003 fma  1  '5.75'  '3.3'   ->  9.05
dqadd3004 fma  1  '5'     '-3'    ->  2
dqadd3005 fma  1  '-5'    '-3'    ->  -8
dqadd3006 fma  1  '-7'    '2.5'   ->  -4.5
dqadd3007 fma  1  '0.7'   '0.3'   ->  1.0
dqadd3008 fma  1  '1.25'  '1.25'  ->  2.50
dqadd3009 fma  1  '1.23456789'  '1.00000000' -> '2.23456789'
dqadd3010 fma  1  '1.23456789'  '1.00000011' -> '2.23456800'

--             1234567890123456      1234567890123456
dqadd3011 fma  1  '0.4444444444444444444444444444444446'  '0.5555555555555555555555555555555555' -> '1.000000000000000000000000000000000' Inexact Rounded
dqadd3012 fma  1  '0.4444444444444444444444444444444445'  '0.5555555555555555555555555555555555' -> '1.000000000000000000000000000000000' Rounded
dqadd3013 fma  1  '0.4444444444444444444444444444444444'  '0.5555555555555555555555555555555555' -> '0.9999999999999999999999999999999999'
dqadd3014 fma  1    '4444444444444444444444444444444444' '0.49'   -> '4444444444444444444444444444444444' Inexact Rounded
dqadd3015 fma  1    '4444444444444444444444444444444444' '0.499'  -> '4444444444444444444444444444444444' Inexact Rounded
dqadd3016 fma  1    '4444444444444444444444444444444444' '0.4999' -> '4444444444444444444444444444444444' Inexact Rounded
dqadd3017 fma  1    '4444444444444444444444444444444444' '0.5000' -> '4444444444444444444444444444444444' Inexact Rounded
dqadd3018 fma  1    '4444444444444444444444444444444444' '0.5001' -> '4444444444444444444444444444444445' Inexact Rounded
dqadd3019 fma  1    '4444444444444444444444444444444444' '0.501'  -> '4444444444444444444444444444444445' Inexact Rounded
dqadd3020 fma  1    '4444444444444444444444444444444444' '0.51'   -> '4444444444444444444444444444444445' Inexact Rounded

dqadd3021 fma  1  0 1 -> 1
dqadd3022 fma  1  1 1 -> 2
dqadd3023 fma  1  2 1 -> 3
dqadd3024 fma  1  3 1 -> 4
dqadd3025 fma  1  4 1 -> 5
dqadd3026 fma  1  5 1 -> 6
dqadd3027 fma  1  6 1 -> 7
dqadd3028 fma  1  7 1 -> 8
dqadd3029 fma  1  8 1 -> 9
dqadd3030 fma  1  9 1 -> 10

-- some carrying effects
dqadd3031 fma  1  '0.9998'  '0.0000' -> '0.9998'
dqadd3032 fma  1  '0.9998'  '0.0001' -> '0.9999'
dqadd3033 fma  1  '0.9998'  '0.0002' -> '1.0000'
dqadd3034 fma  1  '0.9998'  '0.0003' -> '1.0001'

dqadd3035 fma  1  '70'  '10000e+34' -> '1.000000000000000000000000000000000E+38' Inexact Rounded
dqadd3036 fma  1  '700'  '10000e+34' -> '1.000000000000000000000000000000000E+38' Inexact Rounded
dqadd3037 fma  1  '7000'  '10000e+34' -> '1.000000000000000000000000000000000E+38' Inexact Rounded
dqadd3038 fma  1  '70000'  '10000e+34' -> '1.000000000000000000000000000000001E+38' Inexact Rounded
dqadd3039 fma  1  '700000'  '10000e+34' -> '1.000000000000000000000000000000007E+38' Rounded

-- symmetry:
dqadd3040 fma  1  '10000e+34'  '70' -> '1.000000000000000000000000000000000E+38' Inexact Rounded
dqadd3041 fma  1  '10000e+34'  '700' -> '1.000000000000000000000000000000000E+38' Inexact Rounded
dqadd3042 fma  1  '10000e+34'  '7000' -> '1.000000000000000000000000000000000E+38' Inexact Rounded
dqadd3044 fma  1  '10000e+34'  '70000' -> '1.000000000000000000000000000000001E+38' Inexact Rounded
dqadd3045 fma  1  '10000e+34'  '700000' -> '1.000000000000000000000000000000007E+38' Rounded

-- same, without rounding
dqadd3046 fma  1  '10000e+9'  '7' -> '10000000000007'
dqadd3047 fma  1  '10000e+9'  '70' -> '10000000000070'
dqadd3048 fma  1  '10000e+9'  '700' -> '10000000000700'
dqadd3049 fma  1  '10000e+9'  '7000' -> '10000000007000'
dqadd3050 fma  1  '10000e+9'  '70000' -> '10000000070000'
dqadd3051 fma  1  '10000e+9'  '700000' -> '10000000700000'
dqadd3052 fma  1  '10000e+9'  '7000000' -> '10000007000000'

-- examples from decarith
dqadd3053 fma  1  '12' '7.00' -> '19.00'
dqadd3054 fma  1  '1.3' '-1.07' -> '0.23'
dqadd3055 fma  1  '1.3' '-1.30' -> '0.00'
dqadd3056 fma  1  '1.3' '-2.07' -> '-0.77'
dqadd3057 fma  1  '1E+2' '1E+4' -> '1.01E+4'

-- leading zero preservation
dqadd3061 fma  1  1 '0.0001' -> '1.0001'
dqadd3062 fma  1  1 '0.00001' -> '1.00001'
dqadd3063 fma  1  1 '0.000001' -> '1.000001'
dqadd3064 fma  1  1 '0.0000001' -> '1.0000001'
dqadd3065 fma  1  1 '0.00000001' -> '1.00000001'

-- some funny zeros [in case of bad signum]
dqadd3070 fma  1  1  0    -> 1
dqadd3071 fma  1  1 0.    -> 1
dqadd3072 fma  1  1  .0   -> 1.0
dqadd3073 fma  1  1 0.0   -> 1.0
dqadd3074 fma  1  1 0.00  -> 1.00
dqadd3075 fma  1   0  1   -> 1
dqadd3076 fma  1  0.  1   -> 1
dqadd3077 fma  1   .0 1   -> 1.0
dqadd3078 fma  1  0.0 1   -> 1.0
dqadd3079 fma  1  0.00 1  -> 1.00

-- some carries
dqadd3080 fma  1  999999998 1  -> 999999999
dqadd3081 fma  1  999999999 1  -> 1000000000
dqadd3082 fma  1   99999999 1  -> 100000000
dqadd3083 fma  1    9999999 1  -> 10000000
dqadd3084 fma  1     999999 1  -> 1000000
dqadd3085 fma  1      99999 1  -> 100000
dqadd3086 fma  1       9999 1  -> 10000
dqadd3087 fma  1        999 1  -> 1000
dqadd3088 fma  1         99 1  -> 100
dqadd3089 fma  1          9 1  -> 10


-- more LHS swaps
dqadd3090 fma  1  '-56267E-10'   0 ->  '-0.0000056267'
dqadd3091 fma  1  '-56267E-6'    0 ->  '-0.056267'
dqadd3092 fma  1  '-56267E-5'    0 ->  '-0.56267'
dqadd3093 fma  1  '-56267E-4'    0 ->  '-5.6267'
dqadd3094 fma  1  '-56267E-3'    0 ->  '-56.267'
dqadd3095 fma  1  '-56267E-2'    0 ->  '-562.67'
dqadd3096 fma  1  '-56267E-1'    0 ->  '-5626.7'
dqadd3097 fma  1  '-56267E-0'    0 ->  '-56267'
dqadd3098 fma  1  '-5E-10'       0 ->  '-5E-10'
dqadd3099 fma  1  '-5E-7'        0 ->  '-5E-7'
dqadd3100 fma  1  '-5E-6'        0 ->  '-0.000005'
dqadd3101 fma  1  '-5E-5'        0 ->  '-0.00005'
dqadd3102 fma  1  '-5E-4'        0 ->  '-0.0005'
dqadd3103 fma  1  '-5E-1'        0 ->  '-0.5'
dqadd3104 fma  1  '-5E0'         0 ->  '-5'
dqadd3105 fma  1  '-5E1'         0 ->  '-50'
dqadd3106 fma  1  '-5E5'         0 ->  '-500000'
dqadd3107 fma  1  '-5E33'        0 ->  '-5000000000000000000000000000000000'
dqadd3108 fma  1  '-5E34'        0 ->  '-5.000000000000000000000000000000000E+34'  Rounded
dqadd3109 fma  1  '-5E35'        0 ->  '-5.000000000000000000000000000000000E+35'  Rounded
dqadd3110 fma  1  '-5E36'        0 ->  '-5.000000000000000000000000000000000E+36'  Rounded
dqadd3111 fma  1  '-5E100'       0 ->  '-5.000000000000000000000000000000000E+100' Rounded

-- more RHS swaps
dqadd3113 fma  1  0  '-56267E-10' ->  '-0.0000056267'
dqadd3114 fma  1  0  '-56267E-6'  ->  '-0.056267'
dqadd3116 fma  1  0  '-56267E-5'  ->  '-0.56267'
dqadd3117 fma  1  0  '-56267E-4'  ->  '-5.6267'
dqadd3119 fma  1  0  '-56267E-3'  ->  '-56.267'
dqadd3120 fma  1  0  '-56267E-2'  ->  '-562.67'
dqadd3121 fma  1  0  '-56267E-1'  ->  '-5626.7'
dqadd3122 fma  1  0  '-56267E-0'  ->  '-56267'
dqadd3123 fma  1  0  '-5E-10'     ->  '-5E-10'
dqadd3124 fma  1  0  '-5E-7'      ->  '-5E-7'
dqadd3125 fma  1  0  '-5E-6'      ->  '-0.000005'
dqadd3126 fma  1  0  '-5E-5'      ->  '-0.00005'
dqadd3127 fma  1  0  '-5E-4'      ->  '-0.0005'
dqadd3128 fma  1  0  '-5E-1'      ->  '-0.5'
dqadd3129 fma  1  0  '-5E0'       ->  '-5'
dqadd3130 fma  1  0  '-5E1'       ->  '-50'
dqadd3131 fma  1  0  '-5E5'       ->  '-500000'
dqadd3132 fma  1  0  '-5E33'      ->  '-5000000000000000000000000000000000'
dqadd3133 fma  1  0  '-5E34'      ->  '-5.000000000000000000000000000000000E+34'   Rounded
dqadd3134 fma  1  0  '-5E35'      ->  '-5.000000000000000000000000000000000E+35'   Rounded
dqadd3135 fma  1  0  '-5E36'      ->  '-5.000000000000000000000000000000000E+36'   Rounded
dqadd3136 fma  1  0  '-5E100'     ->  '-5.000000000000000000000000000000000E+100'  Rounded

-- related
dqadd3137 fma  1   1  '0E-39'      ->  '1.000000000000000000000000000000000'  Rounded
dqadd3138 fma  1  -1  '0E-39'      ->  '-1.000000000000000000000000000000000' Rounded
dqadd3139 fma  1  '0E-39' 1        ->  '1.000000000000000000000000000000000'  Rounded
dqadd3140 fma  1  '0E-39' -1       ->  '-1.000000000000000000000000000000000' Rounded
dqadd3141 fma  1  1E+29   0.0000   ->  '100000000000000000000000000000.0000'
dqadd3142 fma  1  1E+29   0.00000  ->  '100000000000000000000000000000.0000'  Rounded
dqadd3143 fma  1  0.000   1E+30    ->  '1000000000000000000000000000000.000'
dqadd3144 fma  1  0.0000  1E+30    ->  '1000000000000000000000000000000.000'  Rounded

-- [some of the next group are really constructor tests]
dqadd3146 fma  1  '00.0'  0       ->  '0.0'
dqadd3147 fma  1  '0.00'  0       ->  '0.00'
dqadd3148 fma  1   0      '0.00'  ->  '0.00'
dqadd3149 fma  1   0      '00.0'  ->  '0.0'
dqadd3150 fma  1  '00.0'  '0.00'  ->  '0.00'
dqadd3151 fma  1  '0.00'  '00.0'  ->  '0.00'
dqadd3152 fma  1  '3'     '.3'    ->  '3.3'
dqadd3153 fma  1  '3.'    '.3'    ->  '3.3'
dqadd3154 fma  1  '3.0'   '.3'    ->  '3.3'
dqadd3155 fma  1  '3.00'  '.3'    ->  '3.30'
dqadd3156 fma  1  '3'     '3'     ->  '6'
dqadd3157 fma  1  '3'     '+3'    ->  '6'
dqadd3158 fma  1  '3'     '-3'    ->  '0'
dqadd3159 fma  1  '0.3'   '-0.3'  ->  '0.0'
dqadd3160 fma  1  '0.03'  '-0.03' ->  '0.00'

-- try borderline precision, with carries, etc.
dqadd3161 fma  1  '1E+12' '-1'    -> '999999999999'
dqadd3162 fma  1  '1E+12'  '1.11' -> '1000000000001.11'
dqadd3163 fma  1  '1.11'  '1E+12' -> '1000000000001.11'
dqadd3164 fma  1  '-1'    '1E+12' -> '999999999999'
dqadd3165 fma  1  '7E+12' '-1'    -> '6999999999999'
dqadd3166 fma  1  '7E+12'  '1.11' -> '7000000000001.11'
dqadd3167 fma  1  '1.11'  '7E+12' -> '7000000000001.11'
dqadd3168 fma  1  '-1'    '7E+12' -> '6999999999999'

rounding: half_up
dqadd3170 fma  1  '4.444444444444444444444444444444444'  '0.5555555555555555555555555555555567' -> '5.000000000000000000000000000000001' Inexact Rounded
dqadd3171 fma  1  '4.444444444444444444444444444444444'  '0.5555555555555555555555555555555566' -> '5.000000000000000000000000000000001' Inexact Rounded
dqadd3172 fma  1  '4.444444444444444444444444444444444'  '0.5555555555555555555555555555555565' -> '5.000000000000000000000000000000001' Inexact Rounded
dqadd3173 fma  1  '4.444444444444444444444444444444444'  '0.5555555555555555555555555555555564' -> '5.000000000000000000000000000000000' Inexact Rounded
dqadd3174 fma  1  '4.444444444444444444444444444444444'  '0.5555555555555555555555555555555553' -> '4.999999999999999999999999999999999' Inexact Rounded
dqadd3175 fma  1  '4.444444444444444444444444444444444'  '0.5555555555555555555555555555555552' -> '4.999999999999999999999999999999999' Inexact Rounded
dqadd3176 fma  1  '4.444444444444444444444444444444444'  '0.5555555555555555555555555555555551' -> '4.999999999999999999999999999999999' Inexact Rounded
dqadd3177 fma  1  '4.444444444444444444444444444444444'  '0.5555555555555555555555555555555550' -> '4.999999999999999999999999999999999' Rounded
dqadd3178 fma  1  '4.444444444444444444444444444444444'  '0.5555555555555555555555555555555545' -> '4.999999999999999999999999999999999' Inexact Rounded
dqadd3179 fma  1  '4.444444444444444444444444444444444'  '0.5555555555555555555555555555555544' -> '4.999999999999999999999999999999998' Inexact Rounded
dqadd3180 fma  1  '4.444444444444444444444444444444444'  '0.5555555555555555555555555555555543' -> '4.999999999999999999999999999999998' Inexact Rounded
dqadd3181 fma  1  '4.444444444444444444444444444444444'  '0.5555555555555555555555555555555542' -> '4.999999999999999999999999999999998' Inexact Rounded
dqadd3182 fma  1  '4.444444444444444444444444444444444'  '0.5555555555555555555555555555555541' -> '4.999999999999999999999999999999998' Inexact Rounded
dqadd3183 fma  1  '4.444444444444444444444444444444444'  '0.5555555555555555555555555555555540' -> '4.999999999999999999999999999999998' Rounded

-- and some more, including residue effects and different roundings
rounding: half_up
dqadd3200 fma  1  '1231234567890123456784560123456789' 0             -> '1231234567890123456784560123456789'
dqadd3201 fma  1  '1231234567890123456784560123456789' 0.000000001   -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3202 fma  1  '1231234567890123456784560123456789' 0.000001      -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3203 fma  1  '1231234567890123456784560123456789' 0.1           -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3204 fma  1  '1231234567890123456784560123456789' 0.4           -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3205 fma  1  '1231234567890123456784560123456789' 0.49          -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3206 fma  1  '1231234567890123456784560123456789' 0.499999      -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3207 fma  1  '1231234567890123456784560123456789' 0.499999999   -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3208 fma  1  '1231234567890123456784560123456789' 0.5           -> '1231234567890123456784560123456790' Inexact Rounded
dqadd3209 fma  1  '1231234567890123456784560123456789' 0.500000001   -> '1231234567890123456784560123456790' Inexact Rounded
dqadd3210 fma  1  '1231234567890123456784560123456789' 0.500001      -> '1231234567890123456784560123456790' Inexact Rounded
dqadd3211 fma  1  '1231234567890123456784560123456789' 0.51          -> '1231234567890123456784560123456790' Inexact Rounded
dqadd3212 fma  1  '1231234567890123456784560123456789' 0.6           -> '1231234567890123456784560123456790' Inexact Rounded
dqadd3213 fma  1  '1231234567890123456784560123456789' 0.9           -> '1231234567890123456784560123456790' Inexact Rounded
dqadd3214 fma  1  '1231234567890123456784560123456789' 0.99999       -> '1231234567890123456784560123456790' Inexact Rounded
dqadd3215 fma  1  '1231234567890123456784560123456789' 0.999999999   -> '1231234567890123456784560123456790' Inexact Rounded
dqadd3216 fma  1  '1231234567890123456784560123456789' 1             -> '1231234567890123456784560123456790'
dqadd3217 fma  1  '1231234567890123456784560123456789' 1.000000001   -> '1231234567890123456784560123456790' Inexact Rounded
dqadd3218 fma  1  '1231234567890123456784560123456789' 1.00001       -> '1231234567890123456784560123456790' Inexact Rounded
dqadd3219 fma  1  '1231234567890123456784560123456789' 1.1           -> '1231234567890123456784560123456790' Inexact Rounded

rounding: half_even
dqadd3220 fma  1  '1231234567890123456784560123456789' 0             -> '1231234567890123456784560123456789'
dqadd3221 fma  1  '1231234567890123456784560123456789' 0.000000001   -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3222 fma  1  '1231234567890123456784560123456789' 0.000001      -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3223 fma  1  '1231234567890123456784560123456789' 0.1           -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3224 fma  1  '1231234567890123456784560123456789' 0.4           -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3225 fma  1  '1231234567890123456784560123456789' 0.49          -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3226 fma  1  '1231234567890123456784560123456789' 0.499999      -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3227 fma  1  '1231234567890123456784560123456789' 0.499999999   -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3228 fma  1  '1231234567890123456784560123456789' 0.5           -> '1231234567890123456784560123456790' Inexact Rounded
dqadd3229 fma  1  '1231234567890123456784560123456789' 0.500000001   -> '1231234567890123456784560123456790' Inexact Rounded
dqadd3230 fma  1  '1231234567890123456784560123456789' 0.500001      -> '1231234567890123456784560123456790' Inexact Rounded
dqadd3231 fma  1  '1231234567890123456784560123456789' 0.51          -> '1231234567890123456784560123456790' Inexact Rounded
dqadd3232 fma  1  '1231234567890123456784560123456789' 0.6           -> '1231234567890123456784560123456790' Inexact Rounded
dqadd3233 fma  1  '1231234567890123456784560123456789' 0.9           -> '1231234567890123456784560123456790' Inexact Rounded
dqadd3234 fma  1  '1231234567890123456784560123456789' 0.99999       -> '1231234567890123456784560123456790' Inexact Rounded
dqadd3235 fma  1  '1231234567890123456784560123456789' 0.999999999   -> '1231234567890123456784560123456790' Inexact Rounded
dqadd3236 fma  1  '1231234567890123456784560123456789' 1             -> '1231234567890123456784560123456790'
dqadd3237 fma  1  '1231234567890123456784560123456789' 1.00000001    -> '1231234567890123456784560123456790' Inexact Rounded
dqadd3238 fma  1  '1231234567890123456784560123456789' 1.00001       -> '1231234567890123456784560123456790' Inexact Rounded
dqadd3239 fma  1  '1231234567890123456784560123456789' 1.1           -> '1231234567890123456784560123456790' Inexact Rounded
-- critical few with even bottom digit...
dqadd3240 fma  1  '1231234567890123456784560123456788' 0.499999999   -> '1231234567890123456784560123456788' Inexact Rounded
dqadd3241 fma  1  '1231234567890123456784560123456788' 0.5           -> '1231234567890123456784560123456788' Inexact Rounded
dqadd3242 fma  1  '1231234567890123456784560123456788' 0.500000001   -> '1231234567890123456784560123456789' Inexact Rounded

rounding: down
dqadd3250 fma  1  '1231234567890123456784560123456789' 0             -> '1231234567890123456784560123456789'
dqadd3251 fma  1  '1231234567890123456784560123456789' 0.000000001   -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3252 fma  1  '1231234567890123456784560123456789' 0.000001      -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3253 fma  1  '1231234567890123456784560123456789' 0.1           -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3254 fma  1  '1231234567890123456784560123456789' 0.4           -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3255 fma  1  '1231234567890123456784560123456789' 0.49          -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3256 fma  1  '1231234567890123456784560123456789' 0.499999      -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3257 fma  1  '1231234567890123456784560123456789' 0.499999999   -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3258 fma  1  '1231234567890123456784560123456789' 0.5           -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3259 fma  1  '1231234567890123456784560123456789' 0.500000001   -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3260 fma  1  '1231234567890123456784560123456789' 0.500001      -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3261 fma  1  '1231234567890123456784560123456789' 0.51          -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3262 fma  1  '1231234567890123456784560123456789' 0.6           -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3263 fma  1  '1231234567890123456784560123456789' 0.9           -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3264 fma  1  '1231234567890123456784560123456789' 0.99999       -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3265 fma  1  '1231234567890123456784560123456789' 0.999999999   -> '1231234567890123456784560123456789' Inexact Rounded
dqadd3266 fma  1  '1231234567890123456784560123456789' 1             -> '1231234567890123456784560123456790'
dqadd3267 fma  1  '1231234567890123456784560123456789' 1.00000001    -> '1231234567890123456784560123456790' Inexact Rounded
dqadd3268 fma  1  '1231234567890123456784560123456789' 1.00001       -> '1231234567890123456784560123456790' Inexact Rounded
dqadd3269 fma  1  '1231234567890123456784560123456789' 1.1           -> '1231234567890123456784560123456790' Inexact Rounded

-- 1 in last place tests
rounding: half_up
dqadd3301 fma  1   -1   1      ->   0
dqadd3302 fma  1    0   1      ->   1
dqadd3303 fma  1    1   1      ->   2
dqadd3304 fma  1   12   1      ->  13
dqadd3305 fma  1   98   1      ->  99
dqadd3306 fma  1   99   1      -> 100
dqadd3307 fma  1  100   1      -> 101
dqadd3308 fma  1  101   1      -> 102
dqadd3309 fma  1   -1  -1      ->  -2
dqadd3310 fma  1    0  -1      ->  -1
dqadd3311 fma  1    1  -1      ->   0
dqadd3312 fma  1   12  -1      ->  11
dqadd3313 fma  1   98  -1      ->  97
dqadd3314 fma  1   99  -1      ->  98
dqadd3315 fma  1  100  -1      ->  99
dqadd3316 fma  1  101  -1      -> 100

dqadd3321 fma  1  -0.01  0.01    ->  0.00
dqadd3322 fma  1   0.00  0.01    ->  0.01
dqadd3323 fma  1   0.01  0.01    ->  0.02
dqadd3324 fma  1   0.12  0.01    ->  0.13
dqadd3325 fma  1   0.98  0.01    ->  0.99
dqadd3326 fma  1   0.99  0.01    ->  1.00
dqadd3327 fma  1   1.00  0.01    ->  1.01
dqadd3328 fma  1   1.01  0.01    ->  1.02
dqadd3329 fma  1  -0.01 -0.01    -> -0.02
dqadd3330 fma  1   0.00 -0.01    -> -0.01
dqadd3331 fma  1   0.01 -0.01    ->  0.00
dqadd3332 fma  1   0.12 -0.01    ->  0.11
dqadd3333 fma  1   0.98 -0.01    ->  0.97
dqadd3334 fma  1   0.99 -0.01    ->  0.98
dqadd3335 fma  1   1.00 -0.01    ->  0.99
dqadd3336 fma  1   1.01 -0.01    ->  1.00

-- some more cases where adding 0 affects the coefficient
dqadd3340 fma  1  1E+3    0    ->         1000
dqadd3341 fma  1  1E+33   0    ->    1000000000000000000000000000000000
dqadd3342 fma  1  1E+34   0    ->   1.000000000000000000000000000000000E+34  Rounded
dqadd3343 fma  1  1E+35   0    ->   1.000000000000000000000000000000000E+35  Rounded
-- which simply follow from these cases ...
dqadd3344 fma  1  1E+3    1    ->         1001
dqadd3345 fma  1  1E+33   1    ->    1000000000000000000000000000000001
dqadd3346 fma  1  1E+34   1    ->   1.000000000000000000000000000000000E+34  Inexact Rounded
dqadd3347 fma  1  1E+35   1    ->   1.000000000000000000000000000000000E+35  Inexact Rounded
dqadd3348 fma  1  1E+3    7    ->         1007
dqadd3349 fma  1  1E+33   7    ->    1000000000000000000000000000000007
dqadd3350 fma  1  1E+34   7    ->   1.000000000000000000000000000000001E+34  Inexact Rounded
dqadd3351 fma  1  1E+35   7    ->   1.000000000000000000000000000000000E+35  Inexact Rounded

-- tryzeros cases
rounding:    half_up
dqadd3360  fma  1  0E+50 10000E+1  -> 1.0000E+5
dqadd3361  fma  1  0E-50 10000E+1  -> 100000.0000000000000000000000000000 Rounded
dqadd3362  fma  1  10000E+1 0E-50  -> 100000.0000000000000000000000000000 Rounded
dqadd3363  fma  1  10000E+1 10000E-50  -> 100000.0000000000000000000000000000 Rounded Inexact
dqadd3364  fma  1  9.999999999999999999999999999999999E+6144 -9.999999999999999999999999999999999E+6144 -> 0E+6111
--            1 234567890123456789012345678901234

-- a curiosity from JSR 13 testing
rounding:    half_down
dqadd3370 fma  1   999999999999999999999999999999999 815 -> 1000000000000000000000000000000814
dqadd3371 fma  1  9999999999999999999999999999999999 815 -> 1.000000000000000000000000000000081E+34 Rounded Inexact
rounding:    half_up
dqadd3372 fma  1   999999999999999999999999999999999 815 -> 1000000000000000000000000000000814
dqadd3373 fma  1  9999999999999999999999999999999999 815 -> 1.000000000000000000000000000000081E+34 Rounded Inexact
rounding:    half_even
dqadd3374 fma  1   999999999999999999999999999999999 815 -> 1000000000000000000000000000000814
dqadd3375 fma  1  9999999999999999999999999999999999 815 -> 1.000000000000000000000000000000081E+34 Rounded Inexact

-- ulp replacement tests
dqadd3400 fma  1    1   77e-32      ->  1.00000000000000000000000000000077
dqadd3401 fma  1    1   77e-33      ->  1.000000000000000000000000000000077
dqadd3402 fma  1    1   77e-34      ->  1.000000000000000000000000000000008 Inexact Rounded
dqadd3403 fma  1    1   77e-35      ->  1.000000000000000000000000000000001 Inexact Rounded
dqadd3404 fma  1    1   77e-36      ->  1.000000000000000000000000000000000 Inexact Rounded
dqadd3405 fma  1    1   77e-37      ->  1.000000000000000000000000000000000 Inexact Rounded
dqadd3406 fma  1    1   77e-299     ->  1.000000000000000000000000000000000 Inexact Rounded

dqadd3410 fma  1   10   77e-32      ->  10.00000000000000000000000000000077
dqadd3411 fma  1   10   77e-33      ->  10.00000000000000000000000000000008 Inexact Rounded
dqadd3412 fma  1   10   77e-34      ->  10.00000000000000000000000000000001 Inexact Rounded
dqadd3413 fma  1   10   77e-35      ->  10.00000000000000000000000000000000 Inexact Rounded
dqadd3414 fma  1   10   77e-36      ->  10.00000000000000000000000000000000 Inexact Rounded
dqadd3415 fma  1   10   77e-37      ->  10.00000000000000000000000000000000 Inexact Rounded
dqadd3416 fma  1   10   77e-299     ->  10.00000000000000000000000000000000 Inexact Rounded

dqadd3420 fma  1   77e-32       1   ->  1.00000000000000000000000000000077
dqadd3421 fma  1   77e-33       1   ->  1.000000000000000000000000000000077
dqadd3422 fma  1   77e-34       1   ->  1.000000000000000000000000000000008 Inexact Rounded
dqadd3423 fma  1   77e-35       1   ->  1.000000000000000000000000000000001 Inexact Rounded
dqadd3424 fma  1   77e-36       1   ->  1.000000000000000000000000000000000 Inexact Rounded
dqadd3425 fma  1   77e-37       1   ->  1.000000000000000000000000000000000 Inexact Rounded
dqadd3426 fma  1   77e-299      1   ->  1.000000000000000000000000000000000 Inexact Rounded

dqadd3430 fma  1   77e-32      10   ->  10.00000000000000000000000000000077
dqadd3431 fma  1   77e-33      10   ->  10.00000000000000000000000000000008 Inexact Rounded
dqadd3432 fma  1   77e-34      10   ->  10.00000000000000000000000000000001 Inexact Rounded
dqadd3433 fma  1   77e-35      10   ->  10.00000000000000000000000000000000 Inexact Rounded
dqadd3434 fma  1   77e-36      10   ->  10.00000000000000000000000000000000 Inexact Rounded
dqadd3435 fma  1   77e-37      10   ->  10.00000000000000000000000000000000 Inexact Rounded
dqadd3436 fma  1   77e-299     10   ->  10.00000000000000000000000000000000 Inexact Rounded

-- negative ulps
dqadd36440 fma  1    1   -77e-32      ->  0.99999999999999999999999999999923
dqadd36441 fma  1    1   -77e-33      ->  0.999999999999999999999999999999923
dqadd36442 fma  1    1   -77e-34      ->  0.9999999999999999999999999999999923
dqadd36443 fma  1    1   -77e-35      ->  0.9999999999999999999999999999999992 Inexact Rounded
dqadd36444 fma  1    1   -77e-36      ->  0.9999999999999999999999999999999999 Inexact Rounded
dqadd36445 fma  1    1   -77e-37      ->  1.000000000000000000000000000000000 Inexact Rounded
dqadd36446 fma  1    1   -77e-99      ->  1.000000000000000000000000000000000 Inexact Rounded

dqadd36450 fma  1   10   -77e-32      ->   9.99999999999999999999999999999923
dqadd36451 fma  1   10   -77e-33      ->   9.999999999999999999999999999999923
dqadd36452 fma  1   10   -77e-34      ->   9.999999999999999999999999999999992 Inexact Rounded
dqadd36453 fma  1   10   -77e-35      ->   9.999999999999999999999999999999999 Inexact Rounded
dqadd36454 fma  1   10   -77e-36      ->  10.00000000000000000000000000000000 Inexact Rounded
dqadd36455 fma  1   10   -77e-37      ->  10.00000000000000000000000000000000 Inexact Rounded
dqadd36456 fma  1   10   -77e-99      ->  10.00000000000000000000000000000000 Inexact Rounded

dqadd36460 fma  1   -77e-32       1   ->  0.99999999999999999999999999999923
dqadd36461 fma  1   -77e-33       1   ->  0.999999999999999999999999999999923
dqadd36462 fma  1   -77e-34       1   ->  0.9999999999999999999999999999999923
dqadd36463 fma  1   -77e-35       1   ->  0.9999999999999999999999999999999992 Inexact Rounded
dqadd36464 fma  1   -77e-36       1   ->  0.9999999999999999999999999999999999 Inexact Rounded
dqadd36465 fma  1   -77e-37       1   ->  1.000000000000000000000000000000000 Inexact Rounded
dqadd36466 fma  1   -77e-99       1   ->  1.000000000000000000000000000000000 Inexact Rounded

dqadd36470 fma  1   -77e-32      10   ->   9.99999999999999999999999999999923
dqadd36471 fma  1   -77e-33      10   ->   9.999999999999999999999999999999923
dqadd36472 fma  1   -77e-34      10   ->   9.999999999999999999999999999999992 Inexact Rounded
dqadd36473 fma  1   -77e-35      10   ->   9.999999999999999999999999999999999 Inexact Rounded
dqadd36474 fma  1   -77e-36      10   ->  10.00000000000000000000000000000000 Inexact Rounded
dqadd36475 fma  1   -77e-37      10   ->  10.00000000000000000000000000000000 Inexact Rounded
dqadd36476 fma  1   -77e-99      10   ->  10.00000000000000000000000000000000 Inexact Rounded

-- negative ulps
dqadd36480 fma  1   -1    77e-32      ->  -0.99999999999999999999999999999923
dqadd36481 fma  1   -1    77e-33      ->  -0.999999999999999999999999999999923
dqadd36482 fma  1   -1    77e-34      ->  -0.9999999999999999999999999999999923
dqadd36483 fma  1   -1    77e-35      ->  -0.9999999999999999999999999999999992 Inexact Rounded
dqadd36484 fma  1   -1    77e-36      ->  -0.9999999999999999999999999999999999 Inexact Rounded
dqadd36485 fma  1   -1    77e-37      ->  -1.000000000000000000000000000000000 Inexact Rounded
dqadd36486 fma  1   -1    77e-99      ->  -1.000000000000000000000000000000000 Inexact Rounded

dqadd36490 fma  1  -10    77e-32      ->   -9.99999999999999999999999999999923
dqadd36491 fma  1  -10    77e-33      ->   -9.999999999999999999999999999999923
dqadd36492 fma  1  -10    77e-34      ->   -9.999999999999999999999999999999992 Inexact Rounded
dqadd36493 fma  1  -10    77e-35      ->   -9.999999999999999999999999999999999 Inexact Rounded
dqadd36494 fma  1  -10    77e-36      ->  -10.00000000000000000000000000000000 Inexact Rounded
dqadd36495 fma  1  -10    77e-37      ->  -10.00000000000000000000000000000000 Inexact Rounded
dqadd36496 fma  1  -10    77e-99      ->  -10.00000000000000000000000000000000 Inexact Rounded

dqadd36500 fma  1    77e-32      -1   ->  -0.99999999999999999999999999999923
dqadd36501 fma  1    77e-33      -1   ->  -0.999999999999999999999999999999923
dqadd36502 fma  1    77e-34      -1   ->  -0.9999999999999999999999999999999923
dqadd36503 fma  1    77e-35      -1   ->  -0.9999999999999999999999999999999992 Inexact Rounded
dqadd36504 fma  1    77e-36      -1   ->  -0.9999999999999999999999999999999999 Inexact Rounded
dqadd36505 fma  1    77e-37      -1   ->  -1.000000000000000000000000000000000 Inexact Rounded
dqadd36506 fma  1    77e-99      -1   ->  -1.000000000000000000000000000000000 Inexact Rounded

dqadd36510 fma  1    77e-32      -10  ->   -9.99999999999999999999999999999923
dqadd36511 fma  1    77e-33      -10  ->   -9.999999999999999999999999999999923
dqadd36512 fma  1    77e-34      -10  ->   -9.999999999999999999999999999999992 Inexact Rounded
dqadd36513 fma  1    77e-35      -10  ->   -9.999999999999999999999999999999999 Inexact Rounded
dqadd36514 fma  1    77e-36      -10  ->  -10.00000000000000000000000000000000 Inexact Rounded
dqadd36515 fma  1    77e-37      -10  ->  -10.00000000000000000000000000000000 Inexact Rounded
dqadd36516 fma  1    77e-99      -10  ->  -10.00000000000000000000000000000000 Inexact Rounded

-- and some more residue effects and different roundings
rounding: half_up
dqadd36540 fma  1  '9876543219876543216543210123456789' 0             -> '9876543219876543216543210123456789'
dqadd36541 fma  1  '9876543219876543216543210123456789' 0.000000001   -> '9876543219876543216543210123456789' Inexact Rounded
dqadd36542 fma  1  '9876543219876543216543210123456789' 0.000001      -> '9876543219876543216543210123456789' Inexact Rounded
dqadd36543 fma  1  '9876543219876543216543210123456789' 0.1           -> '9876543219876543216543210123456789' Inexact Rounded
dqadd36544 fma  1  '9876543219876543216543210123456789' 0.4           -> '9876543219876543216543210123456789' Inexact Rounded
dqadd36545 fma  1  '9876543219876543216543210123456789' 0.49          -> '9876543219876543216543210123456789' Inexact Rounded
dqadd36546 fma  1  '9876543219876543216543210123456789' 0.499999      -> '9876543219876543216543210123456789' Inexact Rounded
dqadd36547 fma  1  '9876543219876543216543210123456789' 0.499999999   -> '9876543219876543216543210123456789' Inexact Rounded
dqadd36548 fma  1  '9876543219876543216543210123456789' 0.5           -> '9876543219876543216543210123456790' Inexact Rounded
dqadd36549 fma  1  '9876543219876543216543210123456789' 0.500000001   -> '9876543219876543216543210123456790' Inexact Rounded
dqadd36550 fma  1  '9876543219876543216543210123456789' 0.500001      -> '9876543219876543216543210123456790' Inexact Rounded
dqadd36551 fma  1  '9876543219876543216543210123456789' 0.51          -> '9876543219876543216543210123456790' Inexact Rounded
dqadd36552 fma  1  '9876543219876543216543210123456789' 0.6           -> '9876543219876543216543210123456790' Inexact Rounded
dqadd36553 fma  1  '9876543219876543216543210123456789' 0.9           -> '9876543219876543216543210123456790' Inexact Rounded
dqadd36554 fma  1  '9876543219876543216543210123456789' 0.99999       -> '9876543219876543216543210123456790' Inexact Rounded
dqadd36555 fma  1  '9876543219876543216543210123456789' 0.999999999   -> '9876543219876543216543210123456790' Inexact Rounded
dqadd36556 fma  1  '9876543219876543216543210123456789' 1             -> '9876543219876543216543210123456790'
dqadd36557 fma  1  '9876543219876543216543210123456789' 1.000000001   -> '9876543219876543216543210123456790' Inexact Rounded
dqadd36558 fma  1  '9876543219876543216543210123456789' 1.00001       -> '9876543219876543216543210123456790' Inexact Rounded
dqadd36559 fma  1  '9876543219876543216543210123456789' 1.1           -> '9876543219876543216543210123456790' Inexact Rounded

rounding: half_even
dqadd36560 fma  1  '9876543219876543216543210123456789' 0             -> '9876543219876543216543210123456789'
dqadd36561 fma  1  '9876543219876543216543210123456789' 0.000000001   -> '9876543219876543216543210123456789' Inexact Rounded
dqadd36562 fma  1  '9876543219876543216543210123456789' 0.000001      -> '9876543219876543216543210123456789' Inexact Rounded
dqadd36563 fma  1  '9876543219876543216543210123456789' 0.1           -> '9876543219876543216543210123456789' Inexact Rounded
dqadd36564 fma  1  '9876543219876543216543210123456789' 0.4           -> '9876543219876543216543210123456789' Inexact Rounded
dqadd36565 fma  1  '9876543219876543216543210123456789' 0.49          -> '9876543219876543216543210123456789' Inexact Rounded
dqadd36566 fma  1  '9876543219876543216543210123456789' 0.499999      -> '9876543219876543216543210123456789' Inexact Rounded
dqadd36567 fma  1  '9876543219876543216543210123456789' 0.499999999   -> '9876543219876543216543210123456789' Inexact Rounded
dqadd36568 fma  1  '9876543219876543216543210123456789' 0.5           -> '9876543219876543216543210123456790' Inexact Rounded
dqadd36569 fma  1  '9876543219876543216543210123456789' 0.500000001   -> '9876543219876543216543210123456790' Inexact Rounded
dqadd36570 fma  1  '9876543219876543216543210123456789' 0.500001      -> '9876543219876543216543210123456790' Inexact Rounded
dqadd36571 fma  1  '9876543219876543216543210123456789' 0.51          -> '9876543219876543216543210123456790' Inexact Rounded
dqadd36572 fma  1  '9876543219876543216543210123456789' 0.6           -> '9876543219876543216543210123456790' Inexact Rounded
dqadd36573 fma  1  '9876543219876543216543210123456789' 0.9           -> '9876543219876543216543210123456790' Inexact Rounded
dqadd36574 fma  1  '9876543219876543216543210123456789' 0.99999       -> '9876543219876543216543210123456790' Inexact Rounded
dqadd36575 fma  1  '9876543219876543216543210123456789' 0.999999999   -> '9876543219876543216543210123456790' Inexact Rounded
dqadd36576 fma  1  '9876543219876543216543210123456789' 1             -> '9876543219876543216543210123456790'
dqadd36577 fma  1  '9876543219876543216543210123456789' 1.00000001    -> '9876543219876543216543210123456790' Inexact Rounded
dqadd36578 fma  1  '9876543219876543216543210123456789' 1.00001       -> '9876543219876543216543210123456790' Inexact Rounded
dqadd36579 fma  1  '9876543219876543216543210123456789' 1.1           -> '9876543219876543216543210123456790' Inexact Rounded

-- critical few with even bottom digit...
dqadd37540 fma  1  '9876543219876543216543210123456788' 0.499999999   -> '9876543219876543216543210123456788' Inexact Rounded
dqadd37541 fma  1  '9876543219876543216543210123456788' 0.5           -> '9876543219876543216543210123456788' Inexact Rounded
dqadd37542 fma  1  '9876543219876543216543210123456788' 0.500000001   -> '9876543219876543216543210123456789' Inexact Rounded

rounding: down
dqadd37550 fma  1  '9876543219876543216543210123456789' 0             -> '9876543219876543216543210123456789'
dqadd37551 fma  1  '9876543219876543216543210123456789' 0.000000001   -> '9876543219876543216543210123456789' Inexact Rounded
dqadd37552 fma  1  '9876543219876543216543210123456789' 0.000001      -> '9876543219876543216543210123456789' Inexact Rounded
dqadd37553 fma  1  '9876543219876543216543210123456789' 0.1           -> '9876543219876543216543210123456789' Inexact Rounded
dqadd37554 fma  1  '9876543219876543216543210123456789' 0.4           -> '9876543219876543216543210123456789' Inexact Rounded
dqadd37555 fma  1  '9876543219876543216543210123456789' 0.49          -> '9876543219876543216543210123456789' Inexact Rounded
dqadd37556 fma  1  '9876543219876543216543210123456789' 0.499999      -> '9876543219876543216543210123456789' Inexact Rounded
dqadd37557 fma  1  '9876543219876543216543210123456789' 0.499999999   -> '9876543219876543216543210123456789' Inexact Rounded
dqadd37558 fma  1  '9876543219876543216543210123456789' 0.5           -> '9876543219876543216543210123456789' Inexact Rounded
dqadd37559 fma  1  '9876543219876543216543210123456789' 0.500000001   -> '9876543219876543216543210123456789' Inexact Rounded
dqadd37560 fma  1  '9876543219876543216543210123456789' 0.500001      -> '9876543219876543216543210123456789' Inexact Rounded
dqadd37561 fma  1  '9876543219876543216543210123456789' 0.51          -> '9876543219876543216543210123456789' Inexact Rounded
dqadd37562 fma  1  '9876543219876543216543210123456789' 0.6           -> '9876543219876543216543210123456789' Inexact Rounded
dqadd37563 fma  1  '9876543219876543216543210123456789' 0.9           -> '9876543219876543216543210123456789' Inexact Rounded
dqadd37564 fma  1  '9876543219876543216543210123456789' 0.99999       -> '9876543219876543216543210123456789' Inexact Rounded
dqadd37565 fma  1  '9876543219876543216543210123456789' 0.999999999   -> '9876543219876543216543210123456789' Inexact Rounded
dqadd37566 fma  1  '9876543219876543216543210123456789' 1             -> '9876543219876543216543210123456790'
dqadd37567 fma  1  '9876543219876543216543210123456789' 1.00000001    -> '9876543219876543216543210123456790' Inexact Rounded
dqadd37568 fma  1  '9876543219876543216543210123456789' 1.00001       -> '9876543219876543216543210123456790' Inexact Rounded
dqadd37569 fma  1  '9876543219876543216543210123456789' 1.1           -> '9876543219876543216543210123456790' Inexact Rounded

-- more zeros, etc.
rounding: half_even

dqadd37701 fma  1  5.00 1.00E-3 -> 5.00100
dqadd37702 fma  1  00.00 0.000  -> 0.000
dqadd37703 fma  1  00.00 0E-3   -> 0.000
dqadd37704 fma  1  0E-3  00.00  -> 0.000

dqadd37710 fma  1  0E+3  00.00  -> 0.00
dqadd37711 fma  1  0E+3  00.0   -> 0.0
dqadd37712 fma  1  0E+3  00.    -> 0
dqadd37713 fma  1  0E+3  00.E+1 -> 0E+1
dqadd37714 fma  1  0E+3  00.E+2 -> 0E+2
dqadd37715 fma  1  0E+3  00.E+3 -> 0E+3
dqadd37716 fma  1  0E+3  00.E+4 -> 0E+3
dqadd37717 fma  1  0E+3  00.E+5 -> 0E+3
dqadd37718 fma  1  0E+3  -00.0   -> 0.0
dqadd37719 fma  1  0E+3  -00.    -> 0
dqadd37731 fma  1  0E+3  -00.E+1 -> 0E+1

dqadd37720 fma  1  00.00  0E+3  -> 0.00
dqadd37721 fma  1  00.0   0E+3  -> 0.0
dqadd37722 fma  1  00.    0E+3  -> 0
dqadd37723 fma  1  00.E+1 0E+3  -> 0E+1
dqadd37724 fma  1  00.E+2 0E+3  -> 0E+2
dqadd37725 fma  1  00.E+3 0E+3  -> 0E+3
dqadd37726 fma  1  00.E+4 0E+3  -> 0E+3
dqadd37727 fma  1  00.E+5 0E+3  -> 0E+3
dqadd37728 fma  1  -00.00 0E+3  -> 0.00
dqadd37729 fma  1  -00.0  0E+3  -> 0.0
dqadd37730 fma  1  -00.   0E+3  -> 0

dqadd37732 fma  1   0     0     ->  0
dqadd37733 fma  1   0    -0     ->  0
dqadd37734 fma  1  -0     0     ->  0
dqadd37735 fma  1  -0    -0     -> -0     -- IEEE 854 special case

dqadd37736 fma  1   1    -1     ->  0
dqadd37737 fma  1  -1    -1     -> -2
dqadd37738 fma  1   1     1     ->  2
dqadd37739 fma  1  -1     1     ->  0

dqadd37741 fma  1   0    -1     -> -1
dqadd37742 fma  1  -0    -1     -> -1
dqadd37743 fma  1   0     1     ->  1
dqadd37744 fma  1  -0     1     ->  1
dqadd37745 fma  1  -1     0     -> -1
dqadd37746 fma  1  -1    -0     -> -1
dqadd37747 fma  1   1     0     ->  1
dqadd37748 fma  1   1    -0     ->  1

dqadd37751 fma  1   0.0  -1     -> -1.0
dqadd37752 fma  1  -0.0  -1     -> -1.0
dqadd37753 fma  1   0.0   1     ->  1.0
dqadd37754 fma  1  -0.0   1     ->  1.0
dqadd37755 fma  1  -1.0   0     -> -1.0
dqadd37756 fma  1  -1.0  -0     -> -1.0
dqadd37757 fma  1   1.0   0     ->  1.0
dqadd37758 fma  1   1.0  -0     ->  1.0

dqadd37761 fma  1   0    -1.0   -> -1.0
dqadd37762 fma  1  -0    -1.0   -> -1.0
dqadd37763 fma  1   0     1.0   ->  1.0
dqadd37764 fma  1  -0     1.0   ->  1.0
dqadd37765 fma  1  -1     0.0   -> -1.0
dqadd37766 fma  1  -1    -0.0   -> -1.0
dqadd37767 fma  1   1     0.0   ->  1.0
dqadd37768 fma  1   1    -0.0   ->  1.0

dqadd37771 fma  1   0.0  -1.0   -> -1.0
dqadd37772 fma  1  -0.0  -1.0   -> -1.0
dqadd37773 fma  1   0.0   1.0   ->  1.0
dqadd37774 fma  1  -0.0   1.0   ->  1.0
dqadd37775 fma  1  -1.0   0.0   -> -1.0
dqadd37776 fma  1  -1.0  -0.0   -> -1.0
dqadd37777 fma  1   1.0   0.0   ->  1.0
dqadd37778 fma  1   1.0  -0.0   ->  1.0

-- Specials
dqadd37780 fma  1  -Inf  -Inf   -> -Infinity
dqadd37781 fma  1  -Inf  -1000  -> -Infinity
dqadd37782 fma  1  -Inf  -1     -> -Infinity
dqadd37783 fma  1  -Inf  -0     -> -Infinity
dqadd37784 fma  1  -Inf   0     -> -Infinity
dqadd37785 fma  1  -Inf   1     -> -Infinity
dqadd37786 fma  1  -Inf   1000  -> -Infinity
dqadd37787 fma  1  -1000 -Inf   -> -Infinity
dqadd37788 fma  1  -Inf  -Inf   -> -Infinity
dqadd37789 fma  1  -1    -Inf   -> -Infinity
dqadd37790 fma  1  -0    -Inf   -> -Infinity
dqadd37791 fma  1   0    -Inf   -> -Infinity
dqadd37792 fma  1   1    -Inf   -> -Infinity
dqadd37793 fma  1   1000 -Inf   -> -Infinity
dqadd37794 fma  1   Inf  -Inf   ->  NaN  Invalid_operation

dqadd37800 fma  1   Inf  -Inf   ->  NaN  Invalid_operation
dqadd37801 fma  1   Inf  -1000  ->  Infinity
dqadd37802 fma  1   Inf  -1     ->  Infinity
dqadd37803 fma  1   Inf  -0     ->  Infinity
dqadd37804 fma  1   Inf   0     ->  Infinity
dqadd37805 fma  1   Inf   1     ->  Infinity
dqadd37806 fma  1   Inf   1000  ->  Infinity
dqadd37807 fma  1   Inf   Inf   ->  Infinity
dqadd37808 fma  1  -1000  Inf   ->  Infinity
dqadd37809 fma  1  -Inf   Inf   ->  NaN  Invalid_operation
dqadd37810 fma  1  -1     Inf   ->  Infinity
dqadd37811 fma  1  -0     Inf   ->  Infinity
dqadd37812 fma  1   0     Inf   ->  Infinity
dqadd37813 fma  1   1     Inf   ->  Infinity
dqadd37814 fma  1   1000  Inf   ->  Infinity
dqadd37815 fma  1   Inf   Inf   ->  Infinity

dqadd37821 fma  1   NaN -Inf    ->  NaN
dqadd37822 fma  1   NaN -1000   ->  NaN
dqadd37823 fma  1   NaN -1      ->  NaN
dqadd37824 fma  1   NaN -0      ->  NaN
dqadd37825 fma  1   NaN  0      ->  NaN
dqadd37826 fma  1   NaN  1      ->  NaN
dqadd37827 fma  1   NaN  1000   ->  NaN
dqadd37828 fma  1   NaN  Inf    ->  NaN
dqadd37829 fma  1   NaN  NaN    ->  NaN
dqadd37830 fma  1  -Inf  NaN    ->  NaN
dqadd37831 fma  1  -1000 NaN    ->  NaN
dqadd37832 fma  1  -1    NaN    ->  NaN
dqadd37833 fma  1  -0    NaN    ->  NaN
dqadd37834 fma  1   0    NaN    ->  NaN
dqadd37835 fma  1   1    NaN    ->  NaN
dqadd37836 fma  1   1000 NaN    ->  NaN
dqadd37837 fma  1   Inf  NaN    ->  NaN

dqadd37841 fma  1   sNaN -Inf   ->  NaN  Invalid_operation
dqadd37842 fma  1   sNaN -1000  ->  NaN  Invalid_operation
dqadd37843 fma  1   sNaN -1     ->  NaN  Invalid_operation
dqadd37844 fma  1   sNaN -0     ->  NaN  Invalid_operation
dqadd37845 fma  1   sNaN  0     ->  NaN  Invalid_operation
dqadd37846 fma  1   sNaN  1     ->  NaN  Invalid_operation
dqadd37847 fma  1   sNaN  1000  ->  NaN  Invalid_operation
dqadd37848 fma  1   sNaN  NaN   ->  NaN  Invalid_operation
dqadd37849 fma  1   sNaN sNaN   ->  NaN  Invalid_operation
dqadd37850 fma  1   NaN  sNaN   ->  NaN  Invalid_operation
dqadd37851 fma  1  -Inf  sNaN   ->  NaN  Invalid_operation
dqadd37852 fma  1  -1000 sNaN   ->  NaN  Invalid_operation
dqadd37853 fma  1  -1    sNaN   ->  NaN  Invalid_operation
dqadd37854 fma  1  -0    sNaN   ->  NaN  Invalid_operation
dqadd37855 fma  1   0    sNaN   ->  NaN  Invalid_operation
dqadd37856 fma  1   1    sNaN   ->  NaN  Invalid_operation
dqadd37857 fma  1   1000 sNaN   ->  NaN  Invalid_operation
dqadd37858 fma  1   Inf  sNaN   ->  NaN  Invalid_operation
dqadd37859 fma  1   NaN  sNaN   ->  NaN  Invalid_operation

-- propagating NaNs
dqadd37861 fma  1   NaN1   -Inf    ->  NaN1
dqadd37862 fma  1  +NaN2   -1000   ->  NaN2
dqadd37863 fma  1   NaN3    1000   ->  NaN3
dqadd37864 fma  1   NaN4    Inf    ->  NaN4
dqadd37865 fma  1   NaN5   +NaN6   ->  NaN5
dqadd37866 fma  1  -Inf     NaN7   ->  NaN7
dqadd37867 fma  1  -1000    NaN8   ->  NaN8
dqadd37868 fma  1   1000    NaN9   ->  NaN9
dqadd37869 fma  1   Inf    +NaN10  ->  NaN10
dqadd37871 fma  1   sNaN11  -Inf   ->  NaN11  Invalid_operation
dqadd37872 fma  1   sNaN12  -1000  ->  NaN12  Invalid_operation
dqadd37873 fma  1   sNaN13   1000  ->  NaN13  Invalid_operation
dqadd37874 fma  1   sNaN14   NaN17 ->  NaN14  Invalid_operation
dqadd37875 fma  1   sNaN15  sNaN18 ->  NaN15  Invalid_operation
dqadd37876 fma  1   NaN16   sNaN19 ->  NaN19  Invalid_operation
dqadd37877 fma  1  -Inf    +sNaN20 ->  NaN20  Invalid_operation
dqadd37878 fma  1  -1000    sNaN21 ->  NaN21  Invalid_operation
dqadd37879 fma  1   1000    sNaN22 ->  NaN22  Invalid_operation
dqadd37880 fma  1   Inf     sNaN23 ->  NaN23  Invalid_operation
dqadd37881 fma  1  +NaN25  +sNaN24 ->  NaN24  Invalid_operation
dqadd37882 fma  1  -NaN26    NaN28 -> -NaN26
dqadd37883 fma  1  -sNaN27  sNaN29 -> -NaN27  Invalid_operation
dqadd37884 fma  1   1000    -NaN30 -> -NaN30
dqadd37885 fma  1   1000   -sNaN31 -> -NaN31  Invalid_operation

-- Here we explore near the boundary of rounding a subnormal to Nmin
dqadd37575 fma  1   1E-6143 -1E-6176 ->  9.99999999999999999999999999999999E-6144 Subnormal
dqadd37576 fma  1  -1E-6143 +1E-6176 -> -9.99999999999999999999999999999999E-6144 Subnormal

-- check overflow edge case
--               1234567890123456
dqadd37972 apply       9.999999999999999999999999999999999E+6144         -> 9.999999999999999999999999999999999E+6144
dqadd37973 fma  1      9.999999999999999999999999999999999E+6144  1      -> 9.999999999999999999999999999999999E+6144 Inexact Rounded
dqadd37974 fma  1       9999999999999999999999999999999999E+6111  1      -> 9.999999999999999999999999999999999E+6144 Inexact Rounded
dqadd37975 fma  1       9999999999999999999999999999999999E+6111  1E+6111  -> Infinity Overflow Inexact Rounded
dqadd37976 fma  1       9999999999999999999999999999999999E+6111  9E+6110  -> Infinity Overflow Inexact Rounded
dqadd37977 fma  1       9999999999999999999999999999999999E+6111  8E+6110  -> Infinity Overflow Inexact Rounded
dqadd37978 fma  1       9999999999999999999999999999999999E+6111  7E+6110  -> Infinity Overflow Inexact Rounded
dqadd37979 fma  1       9999999999999999999999999999999999E+6111  6E+6110  -> Infinity Overflow Inexact Rounded
dqadd37980 fma  1       9999999999999999999999999999999999E+6111  5E+6110  -> Infinity Overflow Inexact Rounded
dqadd37981 fma  1       9999999999999999999999999999999999E+6111  4E+6110  -> 9.999999999999999999999999999999999E+6144 Inexact Rounded
dqadd37982 fma  1       9999999999999999999999999999999999E+6111  3E+6110  -> 9.999999999999999999999999999999999E+6144 Inexact Rounded
dqadd37983 fma  1       9999999999999999999999999999999999E+6111  2E+6110  -> 9.999999999999999999999999999999999E+6144 Inexact Rounded
dqadd37984 fma  1       9999999999999999999999999999999999E+6111  1E+6110  -> 9.999999999999999999999999999999999E+6144 Inexact Rounded

dqadd37985 apply      -9.999999999999999999999999999999999E+6144         -> -9.999999999999999999999999999999999E+6144
dqadd37986 fma  1     -9.999999999999999999999999999999999E+6144 -1      -> -9.999999999999999999999999999999999E+6144 Inexact Rounded
dqadd37987 fma  1      -9999999999999999999999999999999999E+6111 -1      -> -9.999999999999999999999999999999999E+6144 Inexact Rounded
dqadd37988 fma  1      -9999999999999999999999999999999999E+6111 -1E+6111  -> -Infinity Overflow Inexact Rounded
dqadd37989 fma  1      -9999999999999999999999999999999999E+6111 -9E+6110  -> -Infinity Overflow Inexact Rounded
dqadd37990 fma  1      -9999999999999999999999999999999999E+6111 -8E+6110  -> -Infinity Overflow Inexact Rounded
dqadd37991 fma  1      -9999999999999999999999999999999999E+6111 -7E+6110  -> -Infinity Overflow Inexact Rounded
dqadd37992 fma  1      -9999999999999999999999999999999999E+6111 -6E+6110  -> -Infinity Overflow Inexact Rounded
dqadd37993 fma  1      -9999999999999999999999999999999999E+6111 -5E+6110  -> -Infinity Overflow Inexact Rounded
dqadd37994 fma  1      -9999999999999999999999999999999999E+6111 -4E+6110  -> -9.999999999999999999999999999999999E+6144 Inexact Rounded
dqadd37995 fma  1      -9999999999999999999999999999999999E+6111 -3E+6110  -> -9.999999999999999999999999999999999E+6144 Inexact Rounded
dqadd37996 fma  1      -9999999999999999999999999999999999E+6111 -2E+6110  -> -9.999999999999999999999999999999999E+6144 Inexact Rounded
dqadd37997 fma  1      -9999999999999999999999999999999999E+6111 -1E+6110  -> -9.999999999999999999999999999999999E+6144 Inexact Rounded

-- And for round down full and subnormal results
rounding:     down
dqadd371100 fma  1  1e+2 -1e-6143    -> 99.99999999999999999999999999999999 Rounded Inexact
dqadd371101 fma  1  1e+1 -1e-6143    -> 9.999999999999999999999999999999999  Rounded Inexact
dqadd371103 fma  1    +1 -1e-6143    -> 0.9999999999999999999999999999999999  Rounded Inexact
dqadd371104 fma  1  1e-1 -1e-6143    -> 0.09999999999999999999999999999999999  Rounded Inexact
dqadd371105 fma  1  1e-2 -1e-6143    -> 0.009999999999999999999999999999999999  Rounded Inexact
dqadd371106 fma  1  1e-3 -1e-6143    -> 0.0009999999999999999999999999999999999  Rounded Inexact
dqadd371107 fma  1  1e-4 -1e-6143    -> 0.00009999999999999999999999999999999999  Rounded Inexact
dqadd371108 fma  1  1e-5 -1e-6143    -> 0.000009999999999999999999999999999999999  Rounded Inexact
dqadd371109 fma  1  1e-6 -1e-6143    -> 9.999999999999999999999999999999999E-7  Rounded Inexact

rounding:     ceiling
dqadd371110 fma  1  -1e+2 +1e-6143   -> -99.99999999999999999999999999999999 Rounded Inexact
dqadd371111 fma  1  -1e+1 +1e-6143   -> -9.999999999999999999999999999999999  Rounded Inexact
dqadd371113 fma  1     -1 +1e-6143   -> -0.9999999999999999999999999999999999  Rounded Inexact
dqadd371114 fma  1  -1e-1 +1e-6143   -> -0.09999999999999999999999999999999999  Rounded Inexact
dqadd371115 fma  1  -1e-2 +1e-6143   -> -0.009999999999999999999999999999999999  Rounded Inexact
dqadd371116 fma  1  -1e-3 +1e-6143   -> -0.0009999999999999999999999999999999999  Rounded Inexact
dqadd371117 fma  1  -1e-4 +1e-6143   -> -0.00009999999999999999999999999999999999  Rounded Inexact
dqadd371118 fma  1  -1e-5 +1e-6143   -> -0.000009999999999999999999999999999999999  Rounded Inexact
dqadd371119 fma  1  -1e-6 +1e-6143   -> -9.999999999999999999999999999999999E-7  Rounded Inexact

-- tests based on Gunnar Degnbol's edge case
rounding:     half_even

dqadd371300 fma  1  1E34  -0.5                 ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371310 fma  1  1E34  -0.51                ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371311 fma  1  1E34  -0.501               ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371312 fma  1  1E34  -0.5001              ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371313 fma  1  1E34  -0.50001             ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371314 fma  1  1E34  -0.500001            ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371315 fma  1  1E34  -0.5000001           ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371316 fma  1  1E34  -0.50000001          ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371317 fma  1  1E34  -0.500000001         ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371318 fma  1  1E34  -0.5000000001        ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371319 fma  1  1E34  -0.50000000001       ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371320 fma  1  1E34  -0.500000000001      ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371321 fma  1  1E34  -0.5000000000001     ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371322 fma  1  1E34  -0.50000000000001    ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371323 fma  1  1E34  -0.500000000000001   ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371324 fma  1  1E34  -0.5000000000000001  ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371325 fma  1  1E34  -0.5000000000000000  ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371326 fma  1  1E34  -0.500000000000000   ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371327 fma  1  1E34  -0.50000000000000    ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371328 fma  1  1E34  -0.5000000000000     ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371329 fma  1  1E34  -0.500000000000      ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371330 fma  1  1E34  -0.50000000000       ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371331 fma  1  1E34  -0.5000000000        ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371332 fma  1  1E34  -0.500000000         ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371333 fma  1  1E34  -0.50000000          ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371334 fma  1  1E34  -0.5000000           ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371335 fma  1  1E34  -0.500000            ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371336 fma  1  1E34  -0.50000             ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371337 fma  1  1E34  -0.5000              ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371338 fma  1  1E34  -0.500               ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371339 fma  1  1E34  -0.50                ->  1.000000000000000000000000000000000E+34 Inexact Rounded

dqadd371340 fma  1  1E34  -5000000.000010001   ->  9999999999999999999999999995000000      Inexact Rounded
dqadd371341 fma  1  1E34  -5000000.000000001   ->  9999999999999999999999999995000000      Inexact Rounded

dqadd371349 fma  1  9999999999999999999999999999999999 0.4                 ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371350 fma  1  9999999999999999999999999999999999 0.49                ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371351 fma  1  9999999999999999999999999999999999 0.499               ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371352 fma  1  9999999999999999999999999999999999 0.4999              ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371353 fma  1  9999999999999999999999999999999999 0.49999             ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371354 fma  1  9999999999999999999999999999999999 0.499999            ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371355 fma  1  9999999999999999999999999999999999 0.4999999           ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371356 fma  1  9999999999999999999999999999999999 0.49999999          ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371357 fma  1  9999999999999999999999999999999999 0.499999999         ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371358 fma  1  9999999999999999999999999999999999 0.4999999999        ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371359 fma  1  9999999999999999999999999999999999 0.49999999999       ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371360 fma  1  9999999999999999999999999999999999 0.499999999999      ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371361 fma  1  9999999999999999999999999999999999 0.4999999999999     ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371362 fma  1  9999999999999999999999999999999999 0.49999999999999    ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371363 fma  1  9999999999999999999999999999999999 0.499999999999999   ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371364 fma  1  9999999999999999999999999999999999 0.4999999999999999  ->  9999999999999999999999999999999999      Inexact Rounded
dqadd371365 fma  1  9999999999999999999999999999999999 0.5000000000000000  ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371367 fma  1  9999999999999999999999999999999999 0.500000000000000   ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371368 fma  1  9999999999999999999999999999999999 0.50000000000000    ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371369 fma  1  9999999999999999999999999999999999 0.5000000000000     ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371370 fma  1  9999999999999999999999999999999999 0.500000000000      ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371371 fma  1  9999999999999999999999999999999999 0.50000000000       ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371372 fma  1  9999999999999999999999999999999999 0.5000000000        ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371373 fma  1  9999999999999999999999999999999999 0.500000000         ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371374 fma  1  9999999999999999999999999999999999 0.50000000          ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371375 fma  1  9999999999999999999999999999999999 0.5000000           ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371376 fma  1  9999999999999999999999999999999999 0.500000            ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371377 fma  1  9999999999999999999999999999999999 0.50000             ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371378 fma  1  9999999999999999999999999999999999 0.5000              ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371379 fma  1  9999999999999999999999999999999999 0.500               ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371380 fma  1  9999999999999999999999999999999999 0.50                ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371381 fma  1  9999999999999999999999999999999999 0.5                 ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371382 fma  1  9999999999999999999999999999999999 0.5000000000000001  ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371383 fma  1  9999999999999999999999999999999999 0.500000000000001   ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371384 fma  1  9999999999999999999999999999999999 0.50000000000001    ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371385 fma  1  9999999999999999999999999999999999 0.5000000000001     ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371386 fma  1  9999999999999999999999999999999999 0.500000000001      ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371387 fma  1  9999999999999999999999999999999999 0.50000000001       ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371388 fma  1  9999999999999999999999999999999999 0.5000000001        ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371389 fma  1  9999999999999999999999999999999999 0.500000001         ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371390 fma  1  9999999999999999999999999999999999 0.50000001          ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371391 fma  1  9999999999999999999999999999999999 0.5000001           ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371392 fma  1  9999999999999999999999999999999999 0.500001            ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371393 fma  1  9999999999999999999999999999999999 0.50001             ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371394 fma  1  9999999999999999999999999999999999 0.5001              ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371395 fma  1  9999999999999999999999999999999999 0.501               ->  1.000000000000000000000000000000000E+34 Inexact Rounded
dqadd371396 fma  1  9999999999999999999999999999999999 0.51                ->  1.000000000000000000000000000000000E+34 Inexact Rounded

-- More GD edge cases, where difference between the unadjusted
-- exponents is larger than the maximum precision and one side is 0
dqadd371420 fma  1   0 1.123456789987654321123456789012345     -> 1.123456789987654321123456789012345
dqadd371421 fma  1   0 1.123456789987654321123456789012345E-1  -> 0.1123456789987654321123456789012345
dqadd371422 fma  1   0 1.123456789987654321123456789012345E-2  -> 0.01123456789987654321123456789012345
dqadd371423 fma  1   0 1.123456789987654321123456789012345E-3  -> 0.001123456789987654321123456789012345
dqadd371424 fma  1   0 1.123456789987654321123456789012345E-4  -> 0.0001123456789987654321123456789012345
dqadd371425 fma  1   0 1.123456789987654321123456789012345E-5  -> 0.00001123456789987654321123456789012345
dqadd371426 fma  1   0 1.123456789987654321123456789012345E-6  -> 0.000001123456789987654321123456789012345
dqadd371427 fma  1   0 1.123456789987654321123456789012345E-7  -> 1.123456789987654321123456789012345E-7
dqadd371428 fma  1   0 1.123456789987654321123456789012345E-8  -> 1.123456789987654321123456789012345E-8
dqadd371429 fma  1   0 1.123456789987654321123456789012345E-9  -> 1.123456789987654321123456789012345E-9
dqadd371430 fma  1   0 1.123456789987654321123456789012345E-10 -> 1.123456789987654321123456789012345E-10
dqadd371431 fma  1   0 1.123456789987654321123456789012345E-11 -> 1.123456789987654321123456789012345E-11
dqadd371432 fma  1   0 1.123456789987654321123456789012345E-12 -> 1.123456789987654321123456789012345E-12
dqadd371433 fma  1   0 1.123456789987654321123456789012345E-13 -> 1.123456789987654321123456789012345E-13
dqadd371434 fma  1   0 1.123456789987654321123456789012345E-14 -> 1.123456789987654321123456789012345E-14
dqadd371435 fma  1   0 1.123456789987654321123456789012345E-15 -> 1.123456789987654321123456789012345E-15
dqadd371436 fma  1   0 1.123456789987654321123456789012345E-16 -> 1.123456789987654321123456789012345E-16
dqadd371437 fma  1   0 1.123456789987654321123456789012345E-17 -> 1.123456789987654321123456789012345E-17
dqadd371438 fma  1   0 1.123456789987654321123456789012345E-18 -> 1.123456789987654321123456789012345E-18
dqadd371439 fma  1   0 1.123456789987654321123456789012345E-19 -> 1.123456789987654321123456789012345E-19
dqadd371440 fma  1   0 1.123456789987654321123456789012345E-20 -> 1.123456789987654321123456789012345E-20
dqadd371441 fma  1   0 1.123456789987654321123456789012345E-21 -> 1.123456789987654321123456789012345E-21
dqadd371442 fma  1   0 1.123456789987654321123456789012345E-22 -> 1.123456789987654321123456789012345E-22
dqadd371443 fma  1   0 1.123456789987654321123456789012345E-23 -> 1.123456789987654321123456789012345E-23
dqadd371444 fma  1   0 1.123456789987654321123456789012345E-24 -> 1.123456789987654321123456789012345E-24
dqadd371445 fma  1   0 1.123456789987654321123456789012345E-25 -> 1.123456789987654321123456789012345E-25
dqadd371446 fma  1   0 1.123456789987654321123456789012345E-26 -> 1.123456789987654321123456789012345E-26
dqadd371447 fma  1   0 1.123456789987654321123456789012345E-27 -> 1.123456789987654321123456789012345E-27
dqadd371448 fma  1   0 1.123456789987654321123456789012345E-28 -> 1.123456789987654321123456789012345E-28
dqadd371449 fma  1   0 1.123456789987654321123456789012345E-29 -> 1.123456789987654321123456789012345E-29
dqadd371450 fma  1   0 1.123456789987654321123456789012345E-30 -> 1.123456789987654321123456789012345E-30
dqadd371451 fma  1   0 1.123456789987654321123456789012345E-31 -> 1.123456789987654321123456789012345E-31
dqadd371452 fma  1   0 1.123456789987654321123456789012345E-32 -> 1.123456789987654321123456789012345E-32
dqadd371453 fma  1   0 1.123456789987654321123456789012345E-33 -> 1.123456789987654321123456789012345E-33
dqadd371454 fma  1   0 1.123456789987654321123456789012345E-34 -> 1.123456789987654321123456789012345E-34
dqadd371455 fma  1   0 1.123456789987654321123456789012345E-35 -> 1.123456789987654321123456789012345E-35
dqadd371456 fma  1   0 1.123456789987654321123456789012345E-36 -> 1.123456789987654321123456789012345E-36

-- same, reversed 0
dqadd371460 fma  1  1.123456789987654321123456789012345     0 -> 1.123456789987654321123456789012345
dqadd371461 fma  1  1.123456789987654321123456789012345E-1  0 -> 0.1123456789987654321123456789012345
dqadd371462 fma  1  1.123456789987654321123456789012345E-2  0 -> 0.01123456789987654321123456789012345
dqadd371463 fma  1  1.123456789987654321123456789012345E-3  0 -> 0.001123456789987654321123456789012345
dqadd371464 fma  1  1.123456789987654321123456789012345E-4  0 -> 0.0001123456789987654321123456789012345
dqadd371465 fma  1  1.123456789987654321123456789012345E-5  0 -> 0.00001123456789987654321123456789012345
dqadd371466 fma  1  1.123456789987654321123456789012345E-6  0 -> 0.000001123456789987654321123456789012345
dqadd371467 fma  1  1.123456789987654321123456789012345E-7  0 -> 1.123456789987654321123456789012345E-7
dqadd371468 fma  1  1.123456789987654321123456789012345E-8  0 -> 1.123456789987654321123456789012345E-8
dqadd371469 fma  1  1.123456789987654321123456789012345E-9  0 -> 1.123456789987654321123456789012345E-9
dqadd371470 fma  1  1.123456789987654321123456789012345E-10 0 -> 1.123456789987654321123456789012345E-10
dqadd371471 fma  1  1.123456789987654321123456789012345E-11 0 -> 1.123456789987654321123456789012345E-11
dqadd371472 fma  1  1.123456789987654321123456789012345E-12 0 -> 1.123456789987654321123456789012345E-12
dqadd371473 fma  1  1.123456789987654321123456789012345E-13 0 -> 1.123456789987654321123456789012345E-13
dqadd371474 fma  1  1.123456789987654321123456789012345E-14 0 -> 1.123456789987654321123456789012345E-14
dqadd371475 fma  1  1.123456789987654321123456789012345E-15 0 -> 1.123456789987654321123456789012345E-15
dqadd371476 fma  1  1.123456789987654321123456789012345E-16 0 -> 1.123456789987654321123456789012345E-16
dqadd371477 fma  1  1.123456789987654321123456789012345E-17 0 -> 1.123456789987654321123456789012345E-17
dqadd371478 fma  1  1.123456789987654321123456789012345E-18 0 -> 1.123456789987654321123456789012345E-18
dqadd371479 fma  1  1.123456789987654321123456789012345E-19 0 -> 1.123456789987654321123456789012345E-19
dqadd371480 fma  1  1.123456789987654321123456789012345E-20 0 -> 1.123456789987654321123456789012345E-20
dqadd371481 fma  1  1.123456789987654321123456789012345E-21 0 -> 1.123456789987654321123456789012345E-21
dqadd371482 fma  1  1.123456789987654321123456789012345E-22 0 -> 1.123456789987654321123456789012345E-22
dqadd371483 fma  1  1.123456789987654321123456789012345E-23 0 -> 1.123456789987654321123456789012345E-23
dqadd371484 fma  1  1.123456789987654321123456789012345E-24 0 -> 1.123456789987654321123456789012345E-24
dqadd371485 fma  1  1.123456789987654321123456789012345E-25 0 -> 1.123456789987654321123456789012345E-25
dqadd371486 fma  1  1.123456789987654321123456789012345E-26 0 -> 1.123456789987654321123456789012345E-26
dqadd371487 fma  1  1.123456789987654321123456789012345E-27 0 -> 1.123456789987654321123456789012345E-27
dqadd371488 fma  1  1.123456789987654321123456789012345E-28 0 -> 1.123456789987654321123456789012345E-28
dqadd371489 fma  1  1.123456789987654321123456789012345E-29 0 -> 1.123456789987654321123456789012345E-29
dqadd371490 fma  1  1.123456789987654321123456789012345E-30 0 -> 1.123456789987654321123456789012345E-30
dqadd371491 fma  1  1.123456789987654321123456789012345E-31 0 -> 1.123456789987654321123456789012345E-31
dqadd371492 fma  1  1.123456789987654321123456789012345E-32 0 -> 1.123456789987654321123456789012345E-32
dqadd371493 fma  1  1.123456789987654321123456789012345E-33 0 -> 1.123456789987654321123456789012345E-33
dqadd371494 fma  1  1.123456789987654321123456789012345E-34 0 -> 1.123456789987654321123456789012345E-34
dqadd371495 fma  1  1.123456789987654321123456789012345E-35 0 -> 1.123456789987654321123456789012345E-35
dqadd371496 fma  1  1.123456789987654321123456789012345E-36 0 -> 1.123456789987654321123456789012345E-36

-- same, Es on the 0
dqadd371500 fma  1  1.123456789987654321123456789012345  0E-0   -> 1.123456789987654321123456789012345
dqadd371501 fma  1  1.123456789987654321123456789012345  0E-1   -> 1.123456789987654321123456789012345
dqadd371502 fma  1  1.123456789987654321123456789012345  0E-2   -> 1.123456789987654321123456789012345
dqadd371503 fma  1  1.123456789987654321123456789012345  0E-3   -> 1.123456789987654321123456789012345
dqadd371504 fma  1  1.123456789987654321123456789012345  0E-4   -> 1.123456789987654321123456789012345
dqadd371505 fma  1  1.123456789987654321123456789012345  0E-5   -> 1.123456789987654321123456789012345
dqadd371506 fma  1  1.123456789987654321123456789012345  0E-6   -> 1.123456789987654321123456789012345
dqadd371507 fma  1  1.123456789987654321123456789012345  0E-7   -> 1.123456789987654321123456789012345
dqadd371508 fma  1  1.123456789987654321123456789012345  0E-8   -> 1.123456789987654321123456789012345
dqadd371509 fma  1  1.123456789987654321123456789012345  0E-9   -> 1.123456789987654321123456789012345
dqadd371510 fma  1  1.123456789987654321123456789012345  0E-10  -> 1.123456789987654321123456789012345
dqadd371511 fma  1  1.123456789987654321123456789012345  0E-11  -> 1.123456789987654321123456789012345
dqadd371512 fma  1  1.123456789987654321123456789012345  0E-12  -> 1.123456789987654321123456789012345
dqadd371513 fma  1  1.123456789987654321123456789012345  0E-13  -> 1.123456789987654321123456789012345
dqadd371514 fma  1  1.123456789987654321123456789012345  0E-14  -> 1.123456789987654321123456789012345
dqadd371515 fma  1  1.123456789987654321123456789012345  0E-15  -> 1.123456789987654321123456789012345
dqadd371516 fma  1  1.123456789987654321123456789012345  0E-16  -> 1.123456789987654321123456789012345
dqadd371517 fma  1  1.123456789987654321123456789012345  0E-17  -> 1.123456789987654321123456789012345
dqadd371518 fma  1  1.123456789987654321123456789012345  0E-18  -> 1.123456789987654321123456789012345
dqadd371519 fma  1  1.123456789987654321123456789012345  0E-19  -> 1.123456789987654321123456789012345
dqadd371520 fma  1  1.123456789987654321123456789012345  0E-20  -> 1.123456789987654321123456789012345
dqadd371521 fma  1  1.123456789987654321123456789012345  0E-21  -> 1.123456789987654321123456789012345
dqadd371522 fma  1  1.123456789987654321123456789012345  0E-22  -> 1.123456789987654321123456789012345
dqadd371523 fma  1  1.123456789987654321123456789012345  0E-23  -> 1.123456789987654321123456789012345
dqadd371524 fma  1  1.123456789987654321123456789012345  0E-24  -> 1.123456789987654321123456789012345
dqadd371525 fma  1  1.123456789987654321123456789012345  0E-25  -> 1.123456789987654321123456789012345
dqadd371526 fma  1  1.123456789987654321123456789012345  0E-26  -> 1.123456789987654321123456789012345
dqadd371527 fma  1  1.123456789987654321123456789012345  0E-27  -> 1.123456789987654321123456789012345
dqadd371528 fma  1  1.123456789987654321123456789012345  0E-28  -> 1.123456789987654321123456789012345
dqadd371529 fma  1  1.123456789987654321123456789012345  0E-29  -> 1.123456789987654321123456789012345
dqadd371530 fma  1  1.123456789987654321123456789012345  0E-30  -> 1.123456789987654321123456789012345
dqadd371531 fma  1  1.123456789987654321123456789012345  0E-31  -> 1.123456789987654321123456789012345
dqadd371532 fma  1  1.123456789987654321123456789012345  0E-32  -> 1.123456789987654321123456789012345
dqadd371533 fma  1  1.123456789987654321123456789012345  0E-33  -> 1.123456789987654321123456789012345
-- next four flag Rounded because the 0 extends the result
dqadd371534 fma  1  1.123456789987654321123456789012345  0E-34  -> 1.123456789987654321123456789012345 Rounded
dqadd371535 fma  1  1.123456789987654321123456789012345  0E-35  -> 1.123456789987654321123456789012345 Rounded
dqadd371536 fma  1  1.123456789987654321123456789012345  0E-36  -> 1.123456789987654321123456789012345 Rounded
dqadd371537 fma  1  1.123456789987654321123456789012345  0E-37  -> 1.123456789987654321123456789012345 Rounded

-- sum of two opposite-sign operands is exactly 0 and floor => -0
rounding:    half_up
-- exact zeros from zeros
dqadd371600 fma  1   0        0E-19  ->  0E-19
dqadd371601 fma  1  -0        0E-19  ->  0E-19
dqadd371602 fma  1   0       -0E-19  ->  0E-19
dqadd371603 fma  1  -0       -0E-19  -> -0E-19
-- exact zeros from non-zeros
dqadd371611 fma  1  -11      11    ->  0
dqadd371612 fma  1   11     -11    ->  0
-- overflow
dqadd371613 fma  9E6144 10   1     ->  Infinity Overflow Inexact Rounded
dqadd371614 fma -9E6144 10   1     -> -Infinity Overflow Inexact Rounded

rounding:    half_down
-- exact zeros from zeros
dqadd371620 fma  1   0        0E-19  ->  0E-19
dqadd371621 fma  1  -0        0E-19  ->  0E-19
dqadd371622 fma  1   0       -0E-19  ->  0E-19
dqadd371623 fma  1  -0       -0E-19  -> -0E-19
-- exact zeros from non-zeros
dqadd371631 fma  1  -11      11    ->  0
dqadd371632 fma  1   11     -11    ->  0
-- overflow
dqadd371633 fma  9E6144 10   1     ->  Infinity Overflow Inexact Rounded
dqadd371634 fma -9E6144 10   1     -> -Infinity Overflow Inexact Rounded

rounding:    half_even
-- exact zeros from zeros
dqadd371640 fma  1   0        0E-19  ->  0E-19
dqadd371641 fma  1  -0        0E-19  ->  0E-19
dqadd371642 fma  1   0       -0E-19  ->  0E-19
dqadd371643 fma  1  -0       -0E-19  -> -0E-19
-- exact zeros from non-zeros
dqadd371651 fma  1  -11      11    ->  0
dqadd371652 fma  1   11     -11    ->  0
-- overflow
dqadd371653 fma  9E6144 10   1     ->  Infinity Overflow Inexact Rounded
dqadd371654 fma -9E6144 10   1     -> -Infinity Overflow Inexact Rounded

rounding:    up
-- exact zeros from zeros
dqadd371660 fma  1   0        0E-19  ->  0E-19
dqadd371661 fma  1  -0        0E-19  ->  0E-19
dqadd371662 fma  1   0       -0E-19  ->  0E-19
dqadd371663 fma  1  -0       -0E-19  -> -0E-19
-- exact zeros from non-zeros
dqadd371671 fma  1  -11      11    ->  0
dqadd371672 fma  1   11     -11    ->  0
-- overflow
dqadd371673 fma  9E6144 10   1     ->  Infinity Overflow Inexact Rounded
dqadd371674 fma -9E6144 10   1     -> -Infinity Overflow Inexact Rounded

rounding:    down
-- exact zeros from zeros
dqadd371680 fma  1   0        0E-19  ->  0E-19
dqadd371681 fma  1  -0        0E-19  ->  0E-19
dqadd371682 fma  1   0       -0E-19  ->  0E-19
dqadd371683 fma  1  -0       -0E-19  -> -0E-19
-- exact zeros from non-zeros
dqadd371691 fma  1  -11      11    ->  0
dqadd371692 fma  1   11     -11    ->  0
-- overflow
dqadd371693 fma  9E6144 10   1     ->  9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded
dqadd371694 fma -9E6144 10   1     -> -9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded

rounding:    ceiling
-- exact zeros from zeros
dqadd371700 fma  1   0        0E-19  ->  0E-19
dqadd371701 fma  1  -0        0E-19  ->  0E-19
dqadd371702 fma  1   0       -0E-19  ->  0E-19
dqadd371703 fma  1  -0       -0E-19  -> -0E-19
-- exact zeros from non-zeros
dqadd371711 fma  1  -11      11    ->  0
dqadd371712 fma  1   11     -11    ->  0
-- overflow
dqadd371713 fma  9E6144 10   1     ->  Infinity Overflow Inexact Rounded
dqadd371714 fma -9E6144 10   1     -> -9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded

-- and the extra-special ugly case; unusual minuses marked by -- *
rounding:    floor
-- exact zeros from zeros
dqadd371720 fma  1   0        0E-19  ->  0E-19
dqadd371721 fma  1  -0        0E-19  -> -0E-19           -- *
dqadd371722 fma  1   0       -0E-19  -> -0E-19           -- *
dqadd371723 fma  1  -0       -0E-19  -> -0E-19
-- exact zeros from non-zeros
dqadd371731 fma  1  -11      11    ->  -0                -- *
dqadd371732 fma  1   11     -11    ->  -0                -- *
-- overflow
dqadd371733 fma  9E6144 10   1     ->  9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded
dqadd371734 fma -9E6144 10   1     -> -Infinity Overflow Inexact Rounded

rounding:    05up
-- exact zeros from zeros
dqadd371740 fma  1   0        0E-19  ->  0E-19
dqadd371741 fma  1  -0        0E-19  ->  0E-19
dqadd371742 fma  1   0       -0E-19  ->  0E-19
dqadd371743 fma  1  -0       -0E-19  -> -0E-19
-- exact zeros from non-zeros
dqadd371751 fma  1  -11      11    ->  0
dqadd371752 fma  1   11     -11    ->  0
-- overflow
dqadd371753 fma  9E6144 10   1     ->  9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded
dqadd371754 fma -9E6144 10   1     -> -9.999999999999999999999999999999999E+6144 Overflow Inexact Rounded

-- Examples from SQL proposal (Krishna Kulkarni)
dqadd371761 fma  1  130E-2    120E-2    -> 2.50
dqadd371762 fma  1  130E-2    12E-1     -> 2.50
dqadd371763 fma  1  130E-2    1E0       -> 2.30
dqadd371764 fma  1  1E2       1E4       -> 1.01E+4
dqadd371765 fma  1  130E-2   -120E-2 -> 0.10
dqadd371766 fma  1  130E-2   -12E-1  -> 0.10
dqadd371767 fma  1  130E-2   -1E0    -> 0.30
dqadd371768 fma  1  1E2      -1E4    -> -9.9E+3

-- Gappy coefficients; check residue handling even with full coefficient gap
rounding: half_even

dqadd375001 fma  1  1239876543211234567894567890123456 1      -> 1239876543211234567894567890123457
dqadd375002 fma  1  1239876543211234567894567890123456 0.6    -> 1239876543211234567894567890123457  Inexact Rounded
dqadd375003 fma  1  1239876543211234567894567890123456 0.06   -> 1239876543211234567894567890123456  Inexact Rounded
dqadd375004 fma  1  1239876543211234567894567890123456 6E-3   -> 1239876543211234567894567890123456  Inexact Rounded
dqadd375005 fma  1  1239876543211234567894567890123456 6E-4   -> 1239876543211234567894567890123456  Inexact Rounded
dqadd375006 fma  1  1239876543211234567894567890123456 6E-5   -> 1239876543211234567894567890123456  Inexact Rounded
dqadd375007 fma  1  1239876543211234567894567890123456 6E-6   -> 1239876543211234567894567890123456  Inexact Rounded
dqadd375008 fma  1  1239876543211234567894567890123456 6E-7   -> 1239876543211234567894567890123456  Inexact Rounded
dqadd375009 fma  1  1239876543211234567894567890123456 6E-8   -> 1239876543211234567894567890123456  Inexact Rounded
dqadd375010 fma  1  1239876543211234567894567890123456 6E-9   -> 1239876543211234567894567890123456  Inexact Rounded
dqadd375011 fma  1  1239876543211234567894567890123456 6E-10  -> 1239876543211234567894567890123456  Inexact Rounded
dqadd375012 fma  1  1239876543211234567894567890123456 6E-11  -> 1239876543211234567894567890123456  Inexact Rounded
dqadd375013 fma  1  1239876543211234567894567890123456 6E-12  -> 1239876543211234567894567890123456  Inexact Rounded
dqadd375014 fma  1  1239876543211234567894567890123456 6E-13  -> 1239876543211234567894567890123456  Inexact Rounded
dqadd375015 fma  1  1239876543211234567894567890123456 6E-14  -> 1239876543211234567894567890123456  Inexact Rounded
dqadd375016 fma  1  1239876543211234567894567890123456 6E-15  -> 1239876543211234567894567890123456  Inexact Rounded
dqadd375017 fma  1  1239876543211234567894567890123456 6E-16  -> 1239876543211234567894567890123456  Inexact Rounded
dqadd375018 fma  1  1239876543211234567894567890123456 6E-17  -> 1239876543211234567894567890123456  Inexact Rounded
dqadd375019 fma  1  1239876543211234567894567890123456 6E-18  -> 1239876543211234567894567890123456  Inexact Rounded
dqadd375020 fma  1  1239876543211234567894567890123456 6E-19  -> 1239876543211234567894567890123456  Inexact Rounded
dqadd375021 fma  1  1239876543211234567894567890123456 6E-20  -> 1239876543211234567894567890123456  Inexact Rounded

-- widening second argument at gap
dqadd375030 fma  1  12398765432112345678945678 1                       -> 12398765432112345678945679
dqadd375031 fma  1  12398765432112345678945678 0.1                     -> 12398765432112345678945678.1
dqadd375032 fma  1  12398765432112345678945678 0.12                    -> 12398765432112345678945678.12
dqadd375033 fma  1  12398765432112345678945678 0.123                   -> 12398765432112345678945678.123
dqadd375034 fma  1  12398765432112345678945678 0.1234                  -> 12398765432112345678945678.1234
dqadd375035 fma  1  12398765432112345678945678 0.12345                 -> 12398765432112345678945678.12345
dqadd375036 fma  1  12398765432112345678945678 0.123456                -> 12398765432112345678945678.123456
dqadd375037 fma  1  12398765432112345678945678 0.1234567               -> 12398765432112345678945678.1234567
dqadd375038 fma  1  12398765432112345678945678 0.12345678              -> 12398765432112345678945678.12345678
dqadd375039 fma  1  12398765432112345678945678 0.123456789             -> 12398765432112345678945678.12345679 Inexact Rounded
dqadd375040 fma  1  12398765432112345678945678 0.123456785             -> 12398765432112345678945678.12345678 Inexact Rounded
dqadd375041 fma  1  12398765432112345678945678 0.1234567850            -> 12398765432112345678945678.12345678 Inexact Rounded
dqadd375042 fma  1  12398765432112345678945678 0.1234567851            -> 12398765432112345678945678.12345679 Inexact Rounded
dqadd375043 fma  1  12398765432112345678945678 0.12345678501           -> 12398765432112345678945678.12345679 Inexact Rounded
dqadd375044 fma  1  12398765432112345678945678 0.123456785001          -> 12398765432112345678945678.12345679 Inexact Rounded
dqadd375045 fma  1  12398765432112345678945678 0.1234567850001         -> 12398765432112345678945678.12345679 Inexact Rounded
dqadd375046 fma  1  12398765432112345678945678 0.12345678500001        -> 12398765432112345678945678.12345679 Inexact Rounded
dqadd375047 fma  1  12398765432112345678945678 0.123456785000001       -> 12398765432112345678945678.12345679 Inexact Rounded
dqadd375048 fma  1  12398765432112345678945678 0.1234567850000001      -> 12398765432112345678945678.12345679 Inexact Rounded
dqadd375049 fma  1  12398765432112345678945678 0.1234567850000000      -> 12398765432112345678945678.12345678 Inexact Rounded
--                               90123456
rounding: half_even
dqadd375050 fma  1  12398765432112345678945678 0.0234567750000000      -> 12398765432112345678945678.02345678 Inexact Rounded
dqadd375051 fma  1  12398765432112345678945678 0.0034567750000000      -> 12398765432112345678945678.00345678 Inexact Rounded
dqadd375052 fma  1  12398765432112345678945678 0.0004567750000000      -> 12398765432112345678945678.00045678 Inexact Rounded
dqadd375053 fma  1  12398765432112345678945678 0.0000567750000000      -> 12398765432112345678945678.00005678 Inexact Rounded
dqadd375054 fma  1  12398765432112345678945678 0.0000067750000000      -> 12398765432112345678945678.00000678 Inexact Rounded
dqadd375055 fma  1  12398765432112345678945678 0.0000007750000000      -> 12398765432112345678945678.00000078 Inexact Rounded
dqadd375056 fma  1  12398765432112345678945678 0.0000000750000000      -> 12398765432112345678945678.00000008 Inexact Rounded
dqadd375057 fma  1  12398765432112345678945678 0.0000000050000000      -> 12398765432112345678945678.00000000 Inexact Rounded
dqadd375060 fma  1  12398765432112345678945678 0.0234567750000001      -> 12398765432112345678945678.02345678 Inexact Rounded
dqadd375061 fma  1  12398765432112345678945678 0.0034567750000001      -> 12398765432112345678945678.00345678 Inexact Rounded
dqadd375062 fma  1  12398765432112345678945678 0.0004567750000001      -> 12398765432112345678945678.00045678 Inexact Rounded
dqadd375063 fma  1  12398765432112345678945678 0.0000567750000001      -> 12398765432112345678945678.00005678 Inexact Rounded
dqadd375064 fma  1  12398765432112345678945678 0.0000067750000001      -> 12398765432112345678945678.00000678 Inexact Rounded
dqadd375065 fma  1  12398765432112345678945678 0.0000007750000001      -> 12398765432112345678945678.00000078 Inexact Rounded
dqadd375066 fma  1  12398765432112345678945678 0.0000000750000001      -> 12398765432112345678945678.00000008 Inexact Rounded
dqadd375067 fma  1  12398765432112345678945678 0.0000000050000001      -> 12398765432112345678945678.00000001 Inexact Rounded
-- far-out residues (full coefficient gap is 16+15 digits)
rounding: up
dqadd375070 fma  1  12398765432112345678945678 1E-8                    -> 12398765432112345678945678.00000001
dqadd375071 fma  1  12398765432112345678945678 1E-9                    -> 12398765432112345678945678.00000001 Inexact Rounded
dqadd375072 fma  1  12398765432112345678945678 1E-10                   -> 12398765432112345678945678.00000001 Inexact Rounded
dqadd375073 fma  1  12398765432112345678945678 1E-11                   -> 12398765432112345678945678.00000001 Inexact Rounded
dqadd375074 fma  1  12398765432112345678945678 1E-12                   -> 12398765432112345678945678.00000001 Inexact Rounded
dqadd375075 fma  1  12398765432112345678945678 1E-13                   -> 12398765432112345678945678.00000001 Inexact Rounded
dqadd375076 fma  1  12398765432112345678945678 1E-14                   -> 12398765432112345678945678.00000001 Inexact Rounded
dqadd375077 fma  1  12398765432112345678945678 1E-15                   -> 12398765432112345678945678.00000001 Inexact Rounded
dqadd375078 fma  1  12398765432112345678945678 1E-16                   -> 12398765432112345678945678.00000001 Inexact Rounded
dqadd375079 fma  1  12398765432112345678945678 1E-17                   -> 12398765432112345678945678.00000001 Inexact Rounded
dqadd375080 fma  1  12398765432112345678945678 1E-18                   -> 12398765432112345678945678.00000001 Inexact Rounded
dqadd375081 fma  1  12398765432112345678945678 1E-19                   -> 12398765432112345678945678.00000001 Inexact Rounded
dqadd375082 fma  1  12398765432112345678945678 1E-20                   -> 12398765432112345678945678.00000001 Inexact Rounded
dqadd375083 fma  1  12398765432112345678945678 1E-25                   -> 12398765432112345678945678.00000001 Inexact Rounded
dqadd375084 fma  1  12398765432112345678945678 1E-30                   -> 12398765432112345678945678.00000001 Inexact Rounded
dqadd375085 fma  1  12398765432112345678945678 1E-31                   -> 12398765432112345678945678.00000001 Inexact Rounded
dqadd375086 fma  1  12398765432112345678945678 1E-32                   -> 12398765432112345678945678.00000001 Inexact Rounded
dqadd375087 fma  1  12398765432112345678945678 1E-33                   -> 12398765432112345678945678.00000001 Inexact Rounded
dqadd375088 fma  1  12398765432112345678945678 1E-34                   -> 12398765432112345678945678.00000001 Inexact Rounded
dqadd375089 fma  1  12398765432112345678945678 1E-35                   -> 12398765432112345678945678.00000001 Inexact Rounded

-- Destructive subtract (from remainder tests)

-- +++ some of these will be off-by-one remainder vs remainderNear

dqfma4000  fma  -1234567890123456789012345678901233   1.000000000000000000000000000000001    1234567890123456789012345678901234  ->  -0.234567890123456789012345678901233
dqfma4001  fma  -1234567890123456789012345678901222    1.00000000000000000000000000000001    1234567890123456789012345678901234  ->  -0.34567890123456789012345678901222
dqfma4002  fma  -1234567890123456789012345678901111     1.0000000000000000000000000000001    1234567890123456789012345678901234  ->  -0.4567890123456789012345678901111
dqfma4003  fma   -308641972530864197253086419725314   4.000000000000000000000000000000001    1234567890123456789012345678901255  ->  -1.308641972530864197253086419725314
dqfma4004  fma   -308641972530864197253086419725308   4.000000000000000000000000000000001    1234567890123456789012345678901234  ->  1.691358027469135802746913580274692
dqfma4005  fma   -246913578024691357802469135780252     4.9999999999999999999999999999999    1234567890123456789012345678901234  ->  -1.3086421975308642197530864219748
dqfma4006  fma   -246913578024691357802469135780247    4.99999999999999999999999999999999    1234567890123456789012345678901234  ->  1.46913578024691357802469135780247
dqfma4007  fma   -246913578024691357802469135780247   4.999999999999999999999999999999999    1234567890123456789012345678901234  ->  -0.753086421975308642197530864219753
dqfma4008  fma   -246913578024691357802469135780247   5.000000000000000000000000000000001    1234567890123456789012345678901234  ->  -1.246913578024691357802469135780247
dqfma4009  fma   -246913578024691357802469135780246    5.00000000000000000000000000000001    1234567890123456789012345678901234  ->  1.53086421975308642197530864219754
dqfma4010  fma   -246913578024691357802469135780242     5.0000000000000000000000000000001    1234567890123456789012345678901234  ->  -0.6913578024691357802469135780242
dqfma4011  fma  -1234567890123456789012345678901232   1.000000000000000000000000000000001    1234567890123456789012345678901234  ->  0.765432109876543210987654321098768
dqfma4012  fma  -1234567890123456789012345678901221    1.00000000000000000000000000000001    1234567890123456789012345678901234  ->  0.65432109876543210987654321098779
dqfma4013  fma  -1234567890123456789012345678901110     1.0000000000000000000000000000001    1234567890123456789012345678901234  ->  0.5432109876543210987654321098890
dqfma4014  fma   -308641972530864197253086419725313   4.000000000000000000000000000000001    1234567890123456789012345678901255  ->  2.691358027469135802746913580274687
dqfma4015  fma   -308641972530864197253086419725308   4.000000000000000000000000000000001    1234567890123456789012345678901234  ->  1.691358027469135802746913580274692
dqfma4016  fma   -246913578024691357802469135780251     4.9999999999999999999999999999999    1234567890123456789012345678901234  ->  3.6913578024691357802469135780251
dqfma4017  fma   -246913578024691357802469135780247    4.99999999999999999999999999999999    1234567890123456789012345678901234  ->  1.46913578024691357802469135780247
dqfma4018  fma   -246913578024691357802469135780246   4.999999999999999999999999999999999    1234567890123456789012345678901234  ->  4.246913578024691357802469135780246
dqfma4019  fma   -246913578024691357802469135780241     5.0000000000000000000000000000001    1234567890123456789012345678901234  ->  4.3086421975308642197530864219759

-- Null tests
dqadd39990 fma  1  10  # -> NaN Invalid_operation
dqadd39991 fma  1   # 10 -> NaN Invalid_operation