-
-
Notifications
You must be signed in to change notification settings - Fork 34.5k
Expand file tree
/
Copy pathdqFMA.decTest
More file actions
1786 lines (1650 loc) · 127 KB
/
dqFMA.decTest
File metadata and controls
1786 lines (1650 loc) · 127 KB
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
------------------------------------------------------------------------
-- dqFMA.decTest -- decQuad Fused Multiply Add --
-- Copyright (c) IBM Corporation, 1981, 2008. All rights reserved. --
------------------------------------------------------------------------
-- Please see the document "General Decimal Arithmetic Testcases" --
-- at http://www2.hursley.ibm.com/decimal for the description of --
-- these testcases. --
-- --
-- These testcases are experimental ('beta' versions), and they --
-- may contain errors. They are offered on an as-is basis. In --
-- particular, achieving the same results as the tests here is not --
-- a guarantee that an implementation complies with any Standard --
-- or specification. The tests are not exhaustive. --
-- --
-- Please send comments, suggestions, and corrections to the author: --
-- Mike Cowlishaw, IBM Fellow --
-- IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK --
-- mfc@uk.ibm.com --
------------------------------------------------------------------------
version: 2.59
extended: 1
clamp: 1
precision: 34
maxExponent: 6144
minExponent: -6143
rounding: half_even
-- These tests comprise three parts:
-- 1. Sanity checks and other three-operand tests (especially those
-- where the fused operation makes a difference)
-- 2. Multiply tests (third operand is neutral zero [0E+emax])
-- 3. Addition tests (first operand is 1)
-- The multiply and addition tests are extensive because FMA may have
-- its own dedicated multiplication or addition routine(s), and they
-- also inherently check the left-to-right properties.
-- Sanity checks
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 arithmetic)
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