github.com/cockroachdb/apd/v3@v3.2.0/testdata/add.decTest (about)

     1  ------/cancell----------------------------------------------------------
     2  -- add.decTest -- decimal addition                                    --
     3  -- Copyright (c) Mike Cowlishaw,  1981, 2010.  All rights reserved.   --
     4  -- Parts copyright (c) IBM Corporation, 1981, 2008.                   --
     5  ------------------------------------------------------------------------
     6  -- Please see the document "General Decimal Arithmetic Testcases"     --
     7  -- at http://speleotrove.com/decimal for the description of           --
     8  -- these testcases.                                                   --
     9  --                                                                    --
    10  -- These testcases are experimental ('beta' versions), and they       --
    11  -- may contain errors.  They are offered on an as-is basis.  In       --
    12  -- particular, achieving the same results as the tests here is not    --
    13  -- a guarantee that an implementation complies with any Standard      --
    14  -- or specification.  The tests are not exhaustive.                   --
    15  --                                                                    --
    16  -- Please send comments, suggestions, and corrections to the author:  --
    17  --   Mike Cowlishaw, mfc@speleotrove.com                              --
    18  ------------------------------------------------------------------------
    19  version: 2.62
    20  
    21  precision:   9
    22  rounding:    half_up
    23  maxExponent: 384
    24  minexponent: -383
    25  extended:    1
    26  
    27  -- [first group are 'quick confidence check']
    28  addx001 add 1       1       ->  2
    29  addx002 add 2       3       ->  5
    30  addx003 add '5.75'  '3.3'   ->  9.05
    31  addx004 add '5'     '-3'    ->  2
    32  addx005 add '-5'    '-3'    ->  -8
    33  addx006 add '-7'    '2.5'   ->  -4.5
    34  addx007 add '0.7'   '0.3'   ->  1.0
    35  addx008 add '1.25'  '1.25'  ->  2.50
    36  addx009 add '1.23456789'  '1.00000000' -> '2.23456789'
    37  addx010 add '1.23456789'  '1.00000011' -> '2.23456800'
    38  
    39  addx011 add '0.4444444444'  '0.5555555555' -> '1.00000000' Inexact Rounded
    40  addx012 add '0.4444444440'  '0.5555555555' -> '1.00000000' Inexact Rounded
    41  addx013 add '0.4444444444'  '0.5555555550' -> '0.999999999' Inexact Rounded
    42  addx014 add '0.44444444449'    '0' -> '0.444444444' Inexact Rounded
    43  addx015 add '0.444444444499'   '0' -> '0.444444444' Inexact Rounded
    44  addx016 add '0.4444444444999'  '0' -> '0.444444444' Inexact Rounded
    45  addx017 add '0.4444444445000'  '0' -> '0.444444445' Inexact Rounded
    46  addx018 add '0.4444444445001'  '0' -> '0.444444445' Inexact Rounded
    47  addx019 add '0.444444444501'   '0' -> '0.444444445' Inexact Rounded
    48  addx020 add '0.44444444451'    '0' -> '0.444444445' Inexact Rounded
    49  
    50  addx021 add 0 1 -> 1
    51  addx022 add 1 1 -> 2
    52  addx023 add 2 1 -> 3
    53  addx024 add 3 1 -> 4
    54  addx025 add 4 1 -> 5
    55  addx026 add 5 1 -> 6
    56  addx027 add 6 1 -> 7
    57  addx028 add 7 1 -> 8
    58  addx029 add 8 1 -> 9
    59  addx030 add 9 1 -> 10
    60  
    61  -- some carrying effects
    62  addx031 add '0.9998'  '0.0000' -> '0.9998'
    63  addx032 add '0.9998'  '0.0001' -> '0.9999'
    64  addx033 add '0.9998'  '0.0002' -> '1.0000'
    65  addx034 add '0.9998'  '0.0003' -> '1.0001'
    66  
    67  addx035 add '70'  '10000e+9' -> '1.00000000E+13' Inexact Rounded
    68  addx036 add '700'  '10000e+9' -> '1.00000000E+13' Inexact Rounded
    69  addx037 add '7000'  '10000e+9' -> '1.00000000E+13' Inexact Rounded
    70  addx038 add '70000'  '10000e+9' -> '1.00000001E+13' Inexact Rounded
    71  addx039 add '700000'  '10000e+9' -> '1.00000007E+13' Rounded
    72  
    73  -- symmetry:
    74  addx040 add '10000e+9'  '70' -> '1.00000000E+13' Inexact Rounded
    75  addx041 add '10000e+9'  '700' -> '1.00000000E+13' Inexact Rounded
    76  addx042 add '10000e+9'  '7000' -> '1.00000000E+13' Inexact Rounded
    77  addx044 add '10000e+9'  '70000' -> '1.00000001E+13' Inexact Rounded
    78  addx045 add '10000e+9'  '700000' -> '1.00000007E+13' Rounded
    79  
    80  -- same, higher precision
    81  precision: 15
    82  addx046 add '10000e+9'  '7' -> '10000000000007'
    83  addx047 add '10000e+9'  '70' -> '10000000000070'
    84  addx048 add '10000e+9'  '700' -> '10000000000700'
    85  addx049 add '10000e+9'  '7000' -> '10000000007000'
    86  addx050 add '10000e+9'  '70000' -> '10000000070000'
    87  addx051 add '10000e+9'  '700000' -> '10000000700000'
    88  addx052 add '10000e+9'  '7000000' -> '10000007000000'
    89  
    90  -- examples from decarith
    91  addx053 add '12' '7.00' -> '19.00'
    92  addx054 add '1.3' '-1.07' -> '0.23'
    93  addx055 add '1.3' '-1.30' -> '0.00'
    94  addx056 add '1.3' '-2.07' -> '-0.77'
    95  addx057 add '1E+2' '1E+4' -> '1.01E+4'
    96  
    97  -- zero preservation
    98  precision: 6
    99  addx060 add '10000e+9'  '70000' -> '1.00000E+13' Inexact Rounded
   100  addx061 add 1 '0.0001' -> '1.0001'
   101  addx062 add 1 '0.00001' -> '1.00001'
   102  addx063 add 1 '0.000001' -> '1.00000' Inexact Rounded
   103  addx064 add 1 '0.0000001' -> '1.00000' Inexact Rounded
   104  addx065 add 1 '0.00000001' -> '1.00000' Inexact Rounded
   105  
   106  -- some funny zeros [in case of bad signum]
   107  addx070 add 1  0    -> 1
   108  addx071 add 1 0.    -> 1
   109  addx072 add 1  .0   -> 1.0
   110  addx073 add 1 0.0   -> 1.0
   111  addx074 add 1 0.00  -> 1.00
   112  addx075 add  0  1   -> 1
   113  addx076 add 0.  1   -> 1
   114  addx077 add  .0 1   -> 1.0
   115  addx078 add 0.0 1   -> 1.0
   116  addx079 add 0.00 1  -> 1.00
   117  
   118  precision: 9
   119  
   120  -- some carries
   121  addx080 add 999999998 1  -> 999999999
   122  addx081 add 999999999 1  -> 1.00000000E+9 Rounded
   123  addx082 add  99999999 1  -> 100000000
   124  addx083 add   9999999 1  -> 10000000
   125  addx084 add    999999 1  -> 1000000
   126  addx085 add     99999 1  -> 100000
   127  addx086 add      9999 1  -> 10000
   128  addx087 add       999 1  -> 1000
   129  addx088 add        99 1  -> 100
   130  addx089 add         9 1  -> 10
   131  
   132  
   133  -- more LHS swaps
   134  addx090 add '-56267E-10'   0 ->  '-0.0000056267'
   135  addx091 add '-56267E-6'    0 ->  '-0.056267'
   136  addx092 add '-56267E-5'    0 ->  '-0.56267'
   137  addx093 add '-56267E-4'    0 ->  '-5.6267'
   138  addx094 add '-56267E-3'    0 ->  '-56.267'
   139  addx095 add '-56267E-2'    0 ->  '-562.67'
   140  addx096 add '-56267E-1'    0 ->  '-5626.7'
   141  addx097 add '-56267E-0'    0 ->  '-56267'
   142  addx098 add '-5E-10'       0 ->  '-5E-10'
   143  addx099 add '-5E-7'        0 ->  '-5E-7'
   144  addx100 add '-5E-6'        0 ->  '-0.000005'
   145  addx101 add '-5E-5'        0 ->  '-0.00005'
   146  addx102 add '-5E-4'        0 ->  '-0.0005'
   147  addx103 add '-5E-1'        0 ->  '-0.5'
   148  addx104 add '-5E0'         0 ->  '-5'
   149  addx105 add '-5E1'         0 ->  '-50'
   150  addx106 add '-5E5'         0 ->  '-500000'
   151  addx107 add '-5E8'         0 ->  '-500000000'
   152  addx108 add '-5E9'         0 ->  '-5.00000000E+9'   Rounded
   153  addx109 add '-5E10'        0 ->  '-5.00000000E+10'  Rounded
   154  addx110 add '-5E11'        0 ->  '-5.00000000E+11'  Rounded
   155  addx111 add '-5E100'       0 ->  '-5.00000000E+100' Rounded
   156  
   157  -- more RHS swaps
   158  addx113 add 0  '-56267E-10' ->  '-0.0000056267'
   159  addx114 add 0  '-56267E-6'  ->  '-0.056267'
   160  addx116 add 0  '-56267E-5'  ->  '-0.56267'
   161  addx117 add 0  '-56267E-4'  ->  '-5.6267'
   162  addx119 add 0  '-56267E-3'  ->  '-56.267'
   163  addx120 add 0  '-56267E-2'  ->  '-562.67'
   164  addx121 add 0  '-56267E-1'  ->  '-5626.7'
   165  addx122 add 0  '-56267E-0'  ->  '-56267'
   166  addx123 add 0  '-5E-10'     ->  '-5E-10'
   167  addx124 add 0  '-5E-7'      ->  '-5E-7'
   168  addx125 add 0  '-5E-6'      ->  '-0.000005'
   169  addx126 add 0  '-5E-5'      ->  '-0.00005'
   170  addx127 add 0  '-5E-4'      ->  '-0.0005'
   171  addx128 add 0  '-5E-1'      ->  '-0.5'
   172  addx129 add 0  '-5E0'       ->  '-5'
   173  addx130 add 0  '-5E1'       ->  '-50'
   174  addx131 add 0  '-5E5'       ->  '-500000'
   175  addx132 add 0  '-5E8'       ->  '-500000000'
   176  addx133 add 0  '-5E9'       ->  '-5.00000000E+9'    Rounded
   177  addx134 add 0  '-5E10'      ->  '-5.00000000E+10'   Rounded
   178  addx135 add 0  '-5E11'      ->  '-5.00000000E+11'   Rounded
   179  addx136 add 0  '-5E100'     ->  '-5.00000000E+100'  Rounded
   180  
   181  -- related
   182  addx137 add  1  '0E-12'      ->  '1.00000000'  Rounded
   183  addx138 add -1  '0E-12'      ->  '-1.00000000' Rounded
   184  addx139 add '0E-12' 1        ->  '1.00000000'  Rounded
   185  addx140 add '0E-12' -1       ->  '-1.00000000' Rounded
   186  addx141 add 1E+4    0.0000   ->  '10000.0000'
   187  addx142 add 1E+4    0.00000  ->  '10000.0000'  Rounded
   188  addx143 add 0.000   1E+5     ->  '100000.000'
   189  addx144 add 0.0000  1E+5     ->  '100000.000'  Rounded
   190  
   191  -- [some of the next group are really constructor tests]
   192  addx146 add '00.0'  0       ->  '0.0'
   193  addx147 add '0.00'  0       ->  '0.00'
   194  addx148 add  0      '0.00'  ->  '0.00'
   195  addx149 add  0      '00.0'  ->  '0.0'
   196  addx150 add '00.0'  '0.00'  ->  '0.00'
   197  addx151 add '0.00'  '00.0'  ->  '0.00'
   198  addx152 add '3'     '.3'    ->  '3.3'
   199  addx153 add '3.'    '.3'    ->  '3.3'
   200  addx154 add '3.0'   '.3'    ->  '3.3'
   201  addx155 add '3.00'  '.3'    ->  '3.30'
   202  addx156 add '3'     '3'     ->  '6'
   203  addx157 add '3'     '+3'    ->  '6'
   204  addx158 add '3'     '-3'    ->  '0'
   205  addx159 add '0.3'   '-0.3'  ->  '0.0'
   206  addx160 add '0.03'  '-0.03' ->  '0.00'
   207  
   208  -- try borderline precision, with carries, etc.
   209  precision: 15
   210  addx161 add '1E+12' '-1'    -> '999999999999'
   211  addx162 add '1E+12'  '1.11' -> '1000000000001.11'
   212  addx163 add '1.11'  '1E+12' -> '1000000000001.11'
   213  addx164 add '-1'    '1E+12' -> '999999999999'
   214  addx165 add '7E+12' '-1'    -> '6999999999999'
   215  addx166 add '7E+12'  '1.11' -> '7000000000001.11'
   216  addx167 add '1.11'  '7E+12' -> '7000000000001.11'
   217  addx168 add '-1'    '7E+12' -> '6999999999999'
   218  
   219  --             123456789012345      123456789012345      1 23456789012345
   220  addx170 add '0.444444444444444'  '0.555555555555563' -> '1.00000000000001' Inexact Rounded
   221  addx171 add '0.444444444444444'  '0.555555555555562' -> '1.00000000000001' Inexact Rounded
   222  addx172 add '0.444444444444444'  '0.555555555555561' -> '1.00000000000001' Inexact Rounded
   223  addx173 add '0.444444444444444'  '0.555555555555560' -> '1.00000000000000' Inexact Rounded
   224  addx174 add '0.444444444444444'  '0.555555555555559' -> '1.00000000000000' Inexact Rounded
   225  addx175 add '0.444444444444444'  '0.555555555555558' -> '1.00000000000000' Inexact Rounded
   226  addx176 add '0.444444444444444'  '0.555555555555557' -> '1.00000000000000' Inexact Rounded
   227  addx177 add '0.444444444444444'  '0.555555555555556' -> '1.00000000000000' Rounded
   228  addx178 add '0.444444444444444'  '0.555555555555555' -> '0.999999999999999'
   229  addx179 add '0.444444444444444'  '0.555555555555554' -> '0.999999999999998'
   230  addx180 add '0.444444444444444'  '0.555555555555553' -> '0.999999999999997'
   231  addx181 add '0.444444444444444'  '0.555555555555552' -> '0.999999999999996'
   232  addx182 add '0.444444444444444'  '0.555555555555551' -> '0.999999999999995'
   233  addx183 add '0.444444444444444'  '0.555555555555550' -> '0.999999999999994'
   234  
   235  -- and some more, including residue effects and different roundings
   236  precision: 9
   237  rounding: half_up
   238  addx200 add '123456789' 0             -> '123456789'
   239  addx201 add '123456789' 0.000000001   -> '123456789' Inexact Rounded
   240  addx202 add '123456789' 0.000001      -> '123456789' Inexact Rounded
   241  addx203 add '123456789' 0.1           -> '123456789' Inexact Rounded
   242  addx204 add '123456789' 0.4           -> '123456789' Inexact Rounded
   243  addx205 add '123456789' 0.49          -> '123456789' Inexact Rounded
   244  addx206 add '123456789' 0.499999      -> '123456789' Inexact Rounded
   245  addx207 add '123456789' 0.499999999   -> '123456789' Inexact Rounded
   246  addx208 add '123456789' 0.5           -> '123456790' Inexact Rounded
   247  addx209 add '123456789' 0.500000001   -> '123456790' Inexact Rounded
   248  addx210 add '123456789' 0.500001      -> '123456790' Inexact Rounded
   249  addx211 add '123456789' 0.51          -> '123456790' Inexact Rounded
   250  addx212 add '123456789' 0.6           -> '123456790' Inexact Rounded
   251  addx213 add '123456789' 0.9           -> '123456790' Inexact Rounded
   252  addx214 add '123456789' 0.99999       -> '123456790' Inexact Rounded
   253  addx215 add '123456789' 0.999999999   -> '123456790' Inexact Rounded
   254  addx216 add '123456789' 1             -> '123456790'
   255  addx217 add '123456789' 1.000000001   -> '123456790' Inexact Rounded
   256  addx218 add '123456789' 1.00001       -> '123456790' Inexact Rounded
   257  addx219 add '123456789' 1.1           -> '123456790' Inexact Rounded
   258  
   259  rounding: half_even
   260  addx220 add '123456789' 0             -> '123456789'
   261  addx221 add '123456789' 0.000000001   -> '123456789' Inexact Rounded
   262  addx222 add '123456789' 0.000001      -> '123456789' Inexact Rounded
   263  addx223 add '123456789' 0.1           -> '123456789' Inexact Rounded
   264  addx224 add '123456789' 0.4           -> '123456789' Inexact Rounded
   265  addx225 add '123456789' 0.49          -> '123456789' Inexact Rounded
   266  addx226 add '123456789' 0.499999      -> '123456789' Inexact Rounded
   267  addx227 add '123456789' 0.499999999   -> '123456789' Inexact Rounded
   268  addx228 add '123456789' 0.5           -> '123456790' Inexact Rounded
   269  addx229 add '123456789' 0.500000001   -> '123456790' Inexact Rounded
   270  addx230 add '123456789' 0.500001      -> '123456790' Inexact Rounded
   271  addx231 add '123456789' 0.51          -> '123456790' Inexact Rounded
   272  addx232 add '123456789' 0.6           -> '123456790' Inexact Rounded
   273  addx233 add '123456789' 0.9           -> '123456790' Inexact Rounded
   274  addx234 add '123456789' 0.99999       -> '123456790' Inexact Rounded
   275  addx235 add '123456789' 0.999999999   -> '123456790' Inexact Rounded
   276  addx236 add '123456789' 1             -> '123456790'
   277  addx237 add '123456789' 1.00000001    -> '123456790' Inexact Rounded
   278  addx238 add '123456789' 1.00001       -> '123456790' Inexact Rounded
   279  addx239 add '123456789' 1.1           -> '123456790' Inexact Rounded
   280  -- critical few with even bottom digit...
   281  addx240 add '123456788' 0.499999999   -> '123456788' Inexact Rounded
   282  addx241 add '123456788' 0.5           -> '123456788' Inexact Rounded
   283  addx242 add '123456788' 0.500000001   -> '123456789' Inexact Rounded
   284  
   285  rounding: down
   286  addx250 add '123456789' 0             -> '123456789'
   287  addx251 add '123456789' 0.000000001   -> '123456789' Inexact Rounded
   288  addx252 add '123456789' 0.000001      -> '123456789' Inexact Rounded
   289  addx253 add '123456789' 0.1           -> '123456789' Inexact Rounded
   290  addx254 add '123456789' 0.4           -> '123456789' Inexact Rounded
   291  addx255 add '123456789' 0.49          -> '123456789' Inexact Rounded
   292  addx256 add '123456789' 0.499999      -> '123456789' Inexact Rounded
   293  addx257 add '123456789' 0.499999999   -> '123456789' Inexact Rounded
   294  addx258 add '123456789' 0.5           -> '123456789' Inexact Rounded
   295  addx259 add '123456789' 0.500000001   -> '123456789' Inexact Rounded
   296  addx260 add '123456789' 0.500001      -> '123456789' Inexact Rounded
   297  addx261 add '123456789' 0.51          -> '123456789' Inexact Rounded
   298  addx262 add '123456789' 0.6           -> '123456789' Inexact Rounded
   299  addx263 add '123456789' 0.9           -> '123456789' Inexact Rounded
   300  addx264 add '123456789' 0.99999       -> '123456789' Inexact Rounded
   301  addx265 add '123456789' 0.999999999   -> '123456789' Inexact Rounded
   302  addx266 add '123456789' 1             -> '123456790'
   303  addx267 add '123456789' 1.00000001    -> '123456790' Inexact Rounded
   304  addx268 add '123456789' 1.00001       -> '123456790' Inexact Rounded
   305  addx269 add '123456789' 1.1           -> '123456790' Inexact Rounded
   306  
   307  -- input preparation tests (operands should not be rounded)
   308  precision: 3
   309  rounding: half_up
   310  
   311  addx270 add '12345678900000'  9999999999999 ->  '2.23E+13' Inexact Rounded
   312  addx271 add  '9999999999999' 12345678900000 ->  '2.23E+13' Inexact Rounded
   313  
   314  addx272 add '12E+3'  '3444'   ->  '1.54E+4' Inexact Rounded
   315  addx273 add '12E+3'  '3446'   ->  '1.54E+4' Inexact Rounded
   316  addx274 add '12E+3'  '3449.9' ->  '1.54E+4' Inexact Rounded
   317  addx275 add '12E+3'  '3450.0' ->  '1.55E+4' Inexact Rounded
   318  addx276 add '12E+3'  '3450.1' ->  '1.55E+4' Inexact Rounded
   319  addx277 add '12E+3'  '3454'   ->  '1.55E+4' Inexact Rounded
   320  addx278 add '12E+3'  '3456'   ->  '1.55E+4' Inexact Rounded
   321  
   322  addx281 add '3444'   '12E+3'  ->  '1.54E+4' Inexact Rounded
   323  addx282 add '3446'   '12E+3'  ->  '1.54E+4' Inexact Rounded
   324  addx283 add '3449.9' '12E+3'  ->  '1.54E+4' Inexact Rounded
   325  addx284 add '3450.0' '12E+3'  ->  '1.55E+4' Inexact Rounded
   326  addx285 add '3450.1' '12E+3'  ->  '1.55E+4' Inexact Rounded
   327  addx286 add '3454'   '12E+3'  ->  '1.55E+4' Inexact Rounded
   328  addx287 add '3456'   '12E+3'  ->  '1.55E+4' Inexact Rounded
   329  
   330  rounding: half_down
   331  addx291 add '3444'   '12E+3'  ->  '1.54E+4' Inexact Rounded
   332  addx292 add '3446'   '12E+3'  ->  '1.54E+4' Inexact Rounded
   333  addx293 add '3449.9' '12E+3'  ->  '1.54E+4' Inexact Rounded
   334  addx294 add '3450.0' '12E+3'  ->  '1.54E+4' Inexact Rounded
   335  addx295 add '3450.1' '12E+3'  ->  '1.55E+4' Inexact Rounded
   336  addx296 add '3454'   '12E+3'  ->  '1.55E+4' Inexact Rounded
   337  addx297 add '3456'   '12E+3'  ->  '1.55E+4' Inexact Rounded
   338  
   339  -- 1 in last place tests
   340  rounding: half_up
   341  addx301 add  -1   1      ->   0
   342  addx302 add   0   1      ->   1
   343  addx303 add   1   1      ->   2
   344  addx304 add  12   1      ->  13
   345  addx305 add  98   1      ->  99
   346  addx306 add  99   1      -> 100
   347  addx307 add 100   1      -> 101
   348  addx308 add 101   1      -> 102
   349  addx309 add  -1  -1      ->  -2
   350  addx310 add   0  -1      ->  -1
   351  addx311 add   1  -1      ->   0
   352  addx312 add  12  -1      ->  11
   353  addx313 add  98  -1      ->  97
   354  addx314 add  99  -1      ->  98
   355  addx315 add 100  -1      ->  99
   356  addx316 add 101  -1      -> 100
   357  
   358  addx321 add -0.01  0.01    ->  0.00
   359  addx322 add  0.00  0.01    ->  0.01
   360  addx323 add  0.01  0.01    ->  0.02
   361  addx324 add  0.12  0.01    ->  0.13
   362  addx325 add  0.98  0.01    ->  0.99
   363  addx326 add  0.99  0.01    ->  1.00
   364  addx327 add  1.00  0.01    ->  1.01
   365  addx328 add  1.01  0.01    ->  1.02
   366  addx329 add -0.01 -0.01    -> -0.02
   367  addx330 add  0.00 -0.01    -> -0.01
   368  addx331 add  0.01 -0.01    ->  0.00
   369  addx332 add  0.12 -0.01    ->  0.11
   370  addx333 add  0.98 -0.01    ->  0.97
   371  addx334 add  0.99 -0.01    ->  0.98
   372  addx335 add  1.00 -0.01    ->  0.99
   373  addx336 add  1.01 -0.01    ->  1.00
   374  
   375  -- some more cases where adding 0 affects the coefficient
   376  precision: 9
   377  addx340 add 1E+3    0    ->         1000
   378  addx341 add 1E+8    0    ->    100000000
   379  addx342 add 1E+9    0    ->   1.00000000E+9   Rounded
   380  addx343 add 1E+10   0    ->   1.00000000E+10  Rounded
   381  -- which simply follow from these cases ...
   382  addx344 add 1E+3    1    ->         1001
   383  addx345 add 1E+8    1    ->    100000001
   384  addx346 add 1E+9    1    ->   1.00000000E+9   Inexact Rounded
   385  addx347 add 1E+10   1    ->   1.00000000E+10  Inexact Rounded
   386  addx348 add 1E+3    7    ->         1007
   387  addx349 add 1E+8    7    ->    100000007
   388  addx350 add 1E+9    7    ->   1.00000001E+9   Inexact Rounded
   389  addx351 add 1E+10   7    ->   1.00000000E+10  Inexact Rounded
   390  
   391  -- tryzeros cases
   392  precision:   7
   393  rounding:    half_up
   394  maxExponent: 92
   395  minexponent: -92
   396  addx361  add 0E+50 10000E+1  -> 1.0000E+5
   397  addx362  add 10000E+1 0E-50  -> 100000.0  Rounded
   398  addx363  add 10000E+1 10000E-50  -> 100000.0  Rounded Inexact
   399  addx364  add 9.999999E+92 -9.999999E+92 -> 0E+86
   400  
   401  -- a curiosity from JSR 13 testing
   402  rounding:    half_down
   403  precision:   10
   404  addx370 add 99999999 81512 -> 100081511
   405  precision:      6
   406  addx371 add 99999999 81512 -> 1.00082E+8 Rounded Inexact
   407  rounding:    half_up
   408  precision:   10
   409  addx372 add 99999999 81512 -> 100081511
   410  precision:      6
   411  addx373 add 99999999 81512 -> 1.00082E+8 Rounded Inexact
   412  rounding:    half_even
   413  precision:   10
   414  addx374 add 99999999 81512 -> 100081511
   415  precision:      6
   416  addx375 add 99999999 81512 -> 1.00082E+8 Rounded Inexact
   417  
   418  -- ulp replacement tests
   419  precision: 9
   420  maxexponent: 999999999
   421  minexponent: -999999999
   422  addx400 add   1   77e-7       ->  1.0000077
   423  addx401 add   1   77e-8       ->  1.00000077
   424  addx402 add   1   77e-9       ->  1.00000008 Inexact Rounded
   425  addx403 add   1   77e-10      ->  1.00000001 Inexact Rounded
   426  addx404 add   1   77e-11      ->  1.00000000 Inexact Rounded
   427  addx405 add   1   77e-12      ->  1.00000000 Inexact Rounded
   428  addx406 add   1   77e-999     ->  1.00000000 Inexact Rounded
   429  addx407 add   1   77e-9999999 ->  1.00000000 Inexact Rounded
   430  
   431  addx410 add  10   77e-7       ->  10.0000077
   432  addx411 add  10   77e-8       ->  10.0000008 Inexact Rounded
   433  addx412 add  10   77e-9       ->  10.0000001 Inexact Rounded
   434  addx413 add  10   77e-10      ->  10.0000000 Inexact Rounded
   435  addx414 add  10   77e-11      ->  10.0000000 Inexact Rounded
   436  addx415 add  10   77e-12      ->  10.0000000 Inexact Rounded
   437  addx416 add  10   77e-999     ->  10.0000000 Inexact Rounded
   438  addx417 add  10   77e-9999999 ->  10.0000000 Inexact Rounded
   439  
   440  addx420 add  77e-7        1   ->  1.0000077
   441  addx421 add  77e-8        1   ->  1.00000077
   442  addx422 add  77e-9        1   ->  1.00000008 Inexact Rounded
   443  addx423 add  77e-10       1   ->  1.00000001 Inexact Rounded
   444  addx424 add  77e-11       1   ->  1.00000000 Inexact Rounded
   445  addx425 add  77e-12       1   ->  1.00000000 Inexact Rounded
   446  addx426 add  77e-999      1   ->  1.00000000 Inexact Rounded
   447  addx427 add  77e-9999999  1   ->  1.00000000 Inexact Rounded
   448  
   449  addx430 add  77e-7       10   ->  10.0000077
   450  addx431 add  77e-8       10   ->  10.0000008 Inexact Rounded
   451  addx432 add  77e-9       10   ->  10.0000001 Inexact Rounded
   452  addx433 add  77e-10      10   ->  10.0000000 Inexact Rounded
   453  addx434 add  77e-11      10   ->  10.0000000 Inexact Rounded
   454  addx435 add  77e-12      10   ->  10.0000000 Inexact Rounded
   455  addx436 add  77e-999     10   ->  10.0000000 Inexact Rounded
   456  addx437 add  77e-9999999 10   ->  10.0000000 Inexact Rounded
   457  
   458  -- negative ulps
   459  addx440 add   1   -77e-7       ->  0.9999923
   460  addx441 add   1   -77e-8       ->  0.99999923
   461  addx442 add   1   -77e-9       ->  0.999999923
   462  addx443 add   1   -77e-10      ->  0.999999992 Inexact Rounded
   463  addx444 add   1   -77e-11      ->  0.999999999 Inexact Rounded
   464  addx445 add   1   -77e-12      ->  1.00000000 Inexact Rounded
   465  addx446 add   1   -77e-999     ->  1.00000000 Inexact Rounded
   466  addx447 add   1   -77e-9999999 ->  1.00000000 Inexact Rounded
   467  
   468  addx450 add  10   -77e-7       ->   9.9999923
   469  addx451 add  10   -77e-8       ->   9.99999923
   470  addx452 add  10   -77e-9       ->   9.99999992 Inexact Rounded
   471  addx453 add  10   -77e-10      ->   9.99999999 Inexact Rounded
   472  addx454 add  10   -77e-11      ->  10.0000000 Inexact Rounded
   473  addx455 add  10   -77e-12      ->  10.0000000 Inexact Rounded
   474  addx456 add  10   -77e-999     ->  10.0000000 Inexact Rounded
   475  addx457 add  10   -77e-9999999 ->  10.0000000 Inexact Rounded
   476  
   477  addx460 add  -77e-7        1   ->  0.9999923
   478  addx461 add  -77e-8        1   ->  0.99999923
   479  addx462 add  -77e-9        1   ->  0.999999923
   480  addx463 add  -77e-10       1   ->  0.999999992 Inexact Rounded
   481  addx464 add  -77e-11       1   ->  0.999999999 Inexact Rounded
   482  addx465 add  -77e-12       1   ->  1.00000000 Inexact Rounded
   483  addx466 add  -77e-999      1   ->  1.00000000 Inexact Rounded
   484  addx467 add  -77e-9999999  1   ->  1.00000000 Inexact Rounded
   485  
   486  addx470 add  -77e-7       10   ->   9.9999923
   487  addx471 add  -77e-8       10   ->   9.99999923
   488  addx472 add  -77e-9       10   ->   9.99999992 Inexact Rounded
   489  addx473 add  -77e-10      10   ->   9.99999999 Inexact Rounded
   490  addx474 add  -77e-11      10   ->  10.0000000 Inexact Rounded
   491  addx475 add  -77e-12      10   ->  10.0000000 Inexact Rounded
   492  addx476 add  -77e-999     10   ->  10.0000000 Inexact Rounded
   493  addx477 add  -77e-9999999 10   ->  10.0000000 Inexact Rounded
   494  
   495  -- negative ulps
   496  addx480 add  -1    77e-7       ->  -0.9999923
   497  addx481 add  -1    77e-8       ->  -0.99999923
   498  addx482 add  -1    77e-9       ->  -0.999999923
   499  addx483 add  -1    77e-10      ->  -0.999999992 Inexact Rounded
   500  addx484 add  -1    77e-11      ->  -0.999999999 Inexact Rounded
   501  addx485 add  -1    77e-12      ->  -1.00000000 Inexact Rounded
   502  addx486 add  -1    77e-999     ->  -1.00000000 Inexact Rounded
   503  addx487 add  -1    77e-9999999 ->  -1.00000000 Inexact Rounded
   504  
   505  addx490 add -10    77e-7       ->   -9.9999923
   506  addx491 add -10    77e-8       ->   -9.99999923
   507  addx492 add -10    77e-9       ->   -9.99999992 Inexact Rounded
   508  addx493 add -10    77e-10      ->   -9.99999999 Inexact Rounded
   509  addx494 add -10    77e-11      ->  -10.0000000 Inexact Rounded
   510  addx495 add -10    77e-12      ->  -10.0000000 Inexact Rounded
   511  addx496 add -10    77e-999     ->  -10.0000000 Inexact Rounded
   512  addx497 add -10    77e-9999999 ->  -10.0000000 Inexact Rounded
   513  
   514  addx500 add   77e-7       -1   ->  -0.9999923
   515  addx501 add   77e-8       -1   ->  -0.99999923
   516  addx502 add   77e-9       -1   ->  -0.999999923
   517  addx503 add   77e-10      -1   ->  -0.999999992 Inexact Rounded
   518  addx504 add   77e-11      -1   ->  -0.999999999 Inexact Rounded
   519  addx505 add   77e-12      -1   ->  -1.00000000 Inexact Rounded
   520  addx506 add   77e-999     -1   ->  -1.00000000 Inexact Rounded
   521  addx507 add   77e-9999999 -1   ->  -1.00000000 Inexact Rounded
   522  
   523  addx510 add   77e-7       -10  ->   -9.9999923
   524  addx511 add   77e-8       -10  ->   -9.99999923
   525  addx512 add   77e-9       -10  ->   -9.99999992 Inexact Rounded
   526  addx513 add   77e-10      -10  ->   -9.99999999 Inexact Rounded
   527  addx514 add   77e-11      -10  ->  -10.0000000 Inexact Rounded
   528  addx515 add   77e-12      -10  ->  -10.0000000 Inexact Rounded
   529  addx516 add   77e-999     -10  ->  -10.0000000 Inexact Rounded
   530  addx517 add   77e-9999999 -10  ->  -10.0000000 Inexact Rounded
   531  
   532  
   533  -- long operands
   534  maxexponent: 999
   535  minexponent: -999
   536  precision: 9
   537  addx521 add 12345678000 0 -> 1.23456780E+10 Rounded
   538  addx522 add 0 12345678000 -> 1.23456780E+10 Rounded
   539  addx523 add 1234567800  0 -> 1.23456780E+9 Rounded
   540  addx524 add 0 1234567800  -> 1.23456780E+9 Rounded
   541  addx525 add 1234567890  0 -> 1.23456789E+9 Rounded
   542  addx526 add 0 1234567890  -> 1.23456789E+9 Rounded
   543  addx527 add 1234567891  0 -> 1.23456789E+9 Inexact Rounded
   544  addx528 add 0 1234567891  -> 1.23456789E+9 Inexact Rounded
   545  addx529 add 12345678901 0 -> 1.23456789E+10 Inexact Rounded
   546  addx530 add 0 12345678901 -> 1.23456789E+10 Inexact Rounded
   547  addx531 add 1234567896  0 -> 1.23456790E+9 Inexact Rounded
   548  addx532 add 0 1234567896  -> 1.23456790E+9 Inexact Rounded
   549  
   550  precision: 15
   551  -- still checking
   552  addx541 add 12345678000 0 -> 12345678000
   553  addx542 add 0 12345678000 -> 12345678000
   554  addx543 add 1234567800  0 -> 1234567800
   555  addx544 add 0 1234567800  -> 1234567800
   556  addx545 add 1234567890  0 -> 1234567890
   557  addx546 add 0 1234567890  -> 1234567890
   558  addx547 add 1234567891  0 -> 1234567891
   559  addx548 add 0 1234567891  -> 1234567891
   560  addx549 add 12345678901 0 -> 12345678901
   561  addx550 add 0 12345678901 -> 12345678901
   562  addx551 add 1234567896  0 -> 1234567896
   563  addx552 add 0 1234567896  -> 1234567896
   564  
   565  -- verify a query
   566  precision:    16
   567  maxExponent: +394
   568  minExponent: -393
   569  rounding:     down
   570  addx561 add 1e-398 9.000000000000000E+384 -> 9.000000000000000E+384 Inexact Rounded
   571  addx562 add      0 9.000000000000000E+384 -> 9.000000000000000E+384 Rounded
   572  -- and using decimal64 bounds (see also ddadd.decTest)
   573  precision:    16
   574  maxExponent: +384
   575  minExponent: -383
   576  rounding:     down
   577  addx563 add 1e-388 9.000000000000000E+374 -> 9.000000000000000E+374 Inexact Rounded
   578  addx564 add      0 9.000000000000000E+374 -> 9.000000000000000E+374 Rounded
   579  
   580  
   581  -- some more residue effects with extreme rounding
   582  precision:   9
   583  rounding: half_up
   584  addx601 add 123456789  0.000001 -> 123456789 Inexact Rounded
   585  rounding: half_even
   586  addx602 add 123456789  0.000001 -> 123456789 Inexact Rounded
   587  rounding: half_down
   588  addx603 add 123456789  0.000001 -> 123456789 Inexact Rounded
   589  rounding: floor
   590  addx604 add 123456789  0.000001 -> 123456789 Inexact Rounded
   591  rounding: ceiling
   592  addx605 add 123456789  0.000001 -> 123456790 Inexact Rounded
   593  rounding: up
   594  addx606 add 123456789  0.000001 -> 123456790 Inexact Rounded
   595  rounding: down
   596  addx607 add 123456789  0.000001 -> 123456789 Inexact Rounded
   597  
   598  rounding: half_up
   599  addx611 add 123456789 -0.000001 -> 123456789 Inexact Rounded
   600  rounding: half_even
   601  addx612 add 123456789 -0.000001 -> 123456789 Inexact Rounded
   602  rounding: half_down
   603  addx613 add 123456789 -0.000001 -> 123456789 Inexact Rounded
   604  rounding: floor
   605  addx614 add 123456789 -0.000001 -> 123456788 Inexact Rounded
   606  rounding: ceiling
   607  addx615 add 123456789 -0.000001 -> 123456789 Inexact Rounded
   608  rounding: up
   609  addx616 add 123456789 -0.000001 -> 123456789 Inexact Rounded
   610  rounding: down
   611  addx617 add 123456789 -0.000001 -> 123456788 Inexact Rounded
   612  
   613  rounding: half_up
   614  addx621 add 123456789  0.499999 -> 123456789 Inexact Rounded
   615  rounding: half_even
   616  addx622 add 123456789  0.499999 -> 123456789 Inexact Rounded
   617  rounding: half_down
   618  addx623 add 123456789  0.499999 -> 123456789 Inexact Rounded
   619  rounding: floor
   620  addx624 add 123456789  0.499999 -> 123456789 Inexact Rounded
   621  rounding: ceiling
   622  addx625 add 123456789  0.499999 -> 123456790 Inexact Rounded
   623  rounding: up
   624  addx626 add 123456789  0.499999 -> 123456790 Inexact Rounded
   625  rounding: down
   626  addx627 add 123456789  0.499999 -> 123456789 Inexact Rounded
   627  
   628  rounding: half_up
   629  addx631 add 123456789 -0.499999 -> 123456789 Inexact Rounded
   630  rounding: half_even
   631  addx632 add 123456789 -0.499999 -> 123456789 Inexact Rounded
   632  rounding: half_down
   633  addx633 add 123456789 -0.499999 -> 123456789 Inexact Rounded
   634  rounding: floor
   635  addx634 add 123456789 -0.499999 -> 123456788 Inexact Rounded
   636  rounding: ceiling
   637  addx635 add 123456789 -0.499999 -> 123456789 Inexact Rounded
   638  rounding: up
   639  addx636 add 123456789 -0.499999 -> 123456789 Inexact Rounded
   640  rounding: down
   641  addx637 add 123456789 -0.499999 -> 123456788 Inexact Rounded
   642  
   643  rounding: half_up
   644  addx641 add 123456789  0.500001 -> 123456790 Inexact Rounded
   645  rounding: half_even
   646  addx642 add 123456789  0.500001 -> 123456790 Inexact Rounded
   647  rounding: half_down
   648  addx643 add 123456789  0.500001 -> 123456790 Inexact Rounded
   649  rounding: floor
   650  addx644 add 123456789  0.500001 -> 123456789 Inexact Rounded
   651  rounding: ceiling
   652  addx645 add 123456789  0.500001 -> 123456790 Inexact Rounded
   653  rounding: up
   654  addx646 add 123456789  0.500001 -> 123456790 Inexact Rounded
   655  rounding: down
   656  addx647 add 123456789  0.500001 -> 123456789 Inexact Rounded
   657  
   658  rounding: half_up
   659  addx651 add 123456789 -0.500001 -> 123456788 Inexact Rounded
   660  rounding: half_even
   661  addx652 add 123456789 -0.500001 -> 123456788 Inexact Rounded
   662  rounding: half_down
   663  addx653 add 123456789 -0.500001 -> 123456788 Inexact Rounded
   664  rounding: floor
   665  addx654 add 123456789 -0.500001 -> 123456788 Inexact Rounded
   666  rounding: ceiling
   667  addx655 add 123456789 -0.500001 -> 123456789 Inexact Rounded
   668  rounding: up
   669  addx656 add 123456789 -0.500001 -> 123456789 Inexact Rounded
   670  rounding: down
   671  addx657 add 123456789 -0.500001 -> 123456788 Inexact Rounded
   672  
   673  -- long operand triangle
   674  rounding: half_up
   675  precision:  37
   676  addx660 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023638922337114834538
   677  precision:  36
   678  addx661 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102363892233711483454  Inexact Rounded
   679  precision:  35
   680  addx662 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236389223371148345   Inexact Rounded
   681  precision:  34
   682  addx663 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023638922337114835    Inexact Rounded
   683  precision:  33
   684  addx664 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102363892233711483     Inexact Rounded
   685  precision:  32
   686  addx665 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236389223371148      Inexact Rounded
   687  precision:  31
   688  addx666 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023638922337115       Inexact Rounded
   689  precision:  30
   690  addx667 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102363892233711        Inexact Rounded
   691  precision:  29
   692  addx668 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236389223371         Inexact Rounded
   693  precision:  28
   694  addx669 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023638922337          Inexact Rounded
   695  precision:  27
   696  addx670 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102363892234           Inexact Rounded
   697  precision:  26
   698  addx671 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236389223            Inexact Rounded
   699  precision:  25
   700  addx672 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023638922             Inexact Rounded
   701  precision:  24
   702  addx673 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102363892              Inexact Rounded
   703  precision:  23
   704  addx674 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236389               Inexact Rounded
   705  precision:  22
   706  addx675 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211023639                Inexact Rounded
   707  precision:  21
   708  addx676 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102364                 Inexact Rounded
   709  precision:  20
   710  addx677 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110236                  Inexact Rounded
   711  precision:  19
   712  addx678 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211024                   Inexact Rounded
   713  precision:  18
   714  addx679 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221102                    Inexact Rounded
   715  precision:  17
   716  addx680 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422110                     Inexact Rounded
   717  precision:  16
   718  addx681 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42211                      Inexact Rounded
   719  precision:  15
   720  addx682 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4221                       Inexact Rounded
   721  precision:  14
   722  addx683 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.422                        Inexact Rounded
   723  precision:  13
   724  addx684 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.42                         Inexact Rounded
   725  precision:  12
   726  addx685 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166.4                          Inexact Rounded
   727  precision:  11
   728  addx686 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 98471174166                            Inexact Rounded
   729  precision:  10
   730  addx687 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.847117417E+10                        Inexact Rounded
   731  precision:   9
   732  addx688 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.84711742E+10                         Inexact Rounded
   733  precision:   8
   734  addx689 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.8471174E+10                          Inexact Rounded
   735  precision:   7
   736  addx690 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.847117E+10                          Inexact Rounded
   737  precision:   6
   738  addx691 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.84712E+10                          Inexact Rounded
   739  precision:   5
   740  addx692 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.8471E+10                          Inexact Rounded
   741  precision:   4
   742  addx693 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.847E+10                          Inexact Rounded
   743  precision:   3
   744  addx694 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.85E+10                          Inexact Rounded
   745  precision:   2
   746  addx695 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 9.8E+10                          Inexact Rounded
   747  precision:   1
   748  addx696 add 98471198160.56524417578665886060 -23994.14313393939743548945165462 -> 1E+11                          Inexact Rounded
   749  
   750  -- more zeros, etc.
   751  rounding: half_up
   752  precision:   9
   753  
   754  addx701 add 5.00 1.00E-3 -> 5.00100
   755  addx702 add 00.00 0.000  -> 0.000
   756  addx703 add 00.00 0E-3   -> 0.000
   757  addx704 add 0E-3  00.00  -> 0.000
   758  
   759  addx710 add 0E+3  00.00  -> 0.00
   760  addx711 add 0E+3  00.0   -> 0.0
   761  addx712 add 0E+3  00.    -> 0
   762  addx713 add 0E+3  00.E+1 -> 0E+1
   763  addx714 add 0E+3  00.E+2 -> 0E+2
   764  addx715 add 0E+3  00.E+3 -> 0E+3
   765  addx716 add 0E+3  00.E+4 -> 0E+3
   766  addx717 add 0E+3  00.E+5 -> 0E+3
   767  addx718 add 0E+3  -00.0   -> 0.0
   768  addx719 add 0E+3  -00.    -> 0
   769  addx731 add 0E+3  -00.E+1 -> 0E+1
   770  
   771  addx720 add 00.00  0E+3  -> 0.00
   772  addx721 add 00.0   0E+3  -> 0.0
   773  addx722 add 00.    0E+3  -> 0
   774  addx723 add 00.E+1 0E+3  -> 0E+1
   775  addx724 add 00.E+2 0E+3  -> 0E+2
   776  addx725 add 00.E+3 0E+3  -> 0E+3
   777  addx726 add 00.E+4 0E+3  -> 0E+3
   778  addx727 add 00.E+5 0E+3  -> 0E+3
   779  addx728 add -00.00 0E+3  -> 0.00
   780  addx729 add -00.0  0E+3  -> 0.0
   781  addx730 add -00.   0E+3  -> 0
   782  
   783  addx732 add  0     0     ->  0
   784  addx733 add  0    -0     ->  0
   785  addx734 add -0     0     ->  0
   786  addx735 add -0    -0     -> -0     -- IEEE 854 special case
   787  
   788  addx736 add  1    -1     ->  0
   789  addx737 add -1    -1     -> -2
   790  addx738 add  1     1     ->  2
   791  addx739 add -1     1     ->  0
   792  
   793  addx741 add  0    -1     -> -1
   794  addx742 add -0    -1     -> -1
   795  addx743 add  0     1     ->  1
   796  addx744 add -0     1     ->  1
   797  addx745 add -1     0     -> -1
   798  addx746 add -1    -0     -> -1
   799  addx747 add  1     0     ->  1
   800  addx748 add  1    -0     ->  1
   801  
   802  addx751 add  0.0  -1     -> -1.0
   803  addx752 add -0.0  -1     -> -1.0
   804  addx753 add  0.0   1     ->  1.0
   805  addx754 add -0.0   1     ->  1.0
   806  addx755 add -1.0   0     -> -1.0
   807  addx756 add -1.0  -0     -> -1.0
   808  addx757 add  1.0   0     ->  1.0
   809  addx758 add  1.0  -0     ->  1.0
   810  
   811  addx761 add  0    -1.0   -> -1.0
   812  addx762 add -0    -1.0   -> -1.0
   813  addx763 add  0     1.0   ->  1.0
   814  addx764 add -0     1.0   ->  1.0
   815  addx765 add -1     0.0   -> -1.0
   816  addx766 add -1    -0.0   -> -1.0
   817  addx767 add  1     0.0   ->  1.0
   818  addx768 add  1    -0.0   ->  1.0
   819  
   820  addx771 add  0.0  -1.0   -> -1.0
   821  addx772 add -0.0  -1.0   -> -1.0
   822  addx773 add  0.0   1.0   ->  1.0
   823  addx774 add -0.0   1.0   ->  1.0
   824  addx775 add -1.0   0.0   -> -1.0
   825  addx776 add -1.0  -0.0   -> -1.0
   826  addx777 add  1.0   0.0   ->  1.0
   827  addx778 add  1.0  -0.0   ->  1.0
   828  
   829  -- Specials
   830  addx780 add -Inf  -Inf   -> -Infinity
   831  addx781 add -Inf  -1000  -> -Infinity
   832  addx782 add -Inf  -1     -> -Infinity
   833  addx783 add -Inf  -0     -> -Infinity
   834  addx784 add -Inf   0     -> -Infinity
   835  addx785 add -Inf   1     -> -Infinity
   836  addx786 add -Inf   1000  -> -Infinity
   837  addx787 add -1000 -Inf   -> -Infinity
   838  addx788 add -Inf  -Inf   -> -Infinity
   839  addx789 add -1    -Inf   -> -Infinity
   840  addx790 add -0    -Inf   -> -Infinity
   841  addx791 add  0    -Inf   -> -Infinity
   842  addx792 add  1    -Inf   -> -Infinity
   843  addx793 add  1000 -Inf   -> -Infinity
   844  addx794 add  Inf  -Inf   ->  NaN  Invalid_operation
   845  
   846  addx800 add  Inf  -Inf   ->  NaN  Invalid_operation
   847  addx801 add  Inf  -1000  ->  Infinity
   848  addx802 add  Inf  -1     ->  Infinity
   849  addx803 add  Inf  -0     ->  Infinity
   850  addx804 add  Inf   0     ->  Infinity
   851  addx805 add  Inf   1     ->  Infinity
   852  addx806 add  Inf   1000  ->  Infinity
   853  addx807 add  Inf   Inf   ->  Infinity
   854  addx808 add -1000  Inf   ->  Infinity
   855  addx809 add -Inf   Inf   ->  NaN  Invalid_operation
   856  addx810 add -1     Inf   ->  Infinity
   857  addx811 add -0     Inf   ->  Infinity
   858  addx812 add  0     Inf   ->  Infinity
   859  addx813 add  1     Inf   ->  Infinity
   860  addx814 add  1000  Inf   ->  Infinity
   861  addx815 add  Inf   Inf   ->  Infinity
   862  
   863  addx821 add  NaN -Inf    ->  NaN
   864  addx822 add  NaN -1000   ->  NaN
   865  addx823 add  NaN -1      ->  NaN
   866  addx824 add  NaN -0      ->  NaN
   867  addx825 add  NaN  0      ->  NaN
   868  addx826 add  NaN  1      ->  NaN
   869  addx827 add  NaN  1000   ->  NaN
   870  addx828 add  NaN  Inf    ->  NaN
   871  addx829 add  NaN  NaN    ->  NaN
   872  addx830 add -Inf  NaN    ->  NaN
   873  addx831 add -1000 NaN    ->  NaN
   874  addx832 add -1    NaN    ->  NaN
   875  addx833 add -0    NaN    ->  NaN
   876  addx834 add  0    NaN    ->  NaN
   877  addx835 add  1    NaN    ->  NaN
   878  addx836 add  1000 NaN    ->  NaN
   879  addx837 add  Inf  NaN    ->  NaN
   880  
   881  addx841 add  sNaN -Inf   ->  NaN  Invalid_operation
   882  addx842 add  sNaN -1000  ->  NaN  Invalid_operation
   883  addx843 add  sNaN -1     ->  NaN  Invalid_operation
   884  addx844 add  sNaN -0     ->  NaN  Invalid_operation
   885  addx845 add  sNaN  0     ->  NaN  Invalid_operation
   886  addx846 add  sNaN  1     ->  NaN  Invalid_operation
   887  addx847 add  sNaN  1000  ->  NaN  Invalid_operation
   888  addx848 add  sNaN  NaN   ->  NaN  Invalid_operation
   889  addx849 add  sNaN sNaN   ->  NaN  Invalid_operation
   890  addx850 add  NaN  sNaN   ->  NaN  Invalid_operation
   891  addx851 add -Inf  sNaN   ->  NaN  Invalid_operation
   892  addx852 add -1000 sNaN   ->  NaN  Invalid_operation
   893  addx853 add -1    sNaN   ->  NaN  Invalid_operation
   894  addx854 add -0    sNaN   ->  NaN  Invalid_operation
   895  addx855 add  0    sNaN   ->  NaN  Invalid_operation
   896  addx856 add  1    sNaN   ->  NaN  Invalid_operation
   897  addx857 add  1000 sNaN   ->  NaN  Invalid_operation
   898  addx858 add  Inf  sNaN   ->  NaN  Invalid_operation
   899  addx859 add  NaN  sNaN   ->  NaN  Invalid_operation
   900  
   901  -- propagating NaNs
   902  addx861 add  NaN1   -Inf    ->  NaN1
   903  addx862 add +NaN2   -1000   ->  NaN2
   904  addx863 add  NaN3    1000   ->  NaN3
   905  addx864 add  NaN4    Inf    ->  NaN4
   906  addx865 add  NaN5   +NaN6   ->  NaN5
   907  addx866 add -Inf     NaN7   ->  NaN7
   908  addx867 add -1000    NaN8   ->  NaN8
   909  addx868 add  1000    NaN9   ->  NaN9
   910  addx869 add  Inf    +NaN10  ->  NaN10
   911  addx871 add  sNaN11  -Inf   ->  NaN11  Invalid_operation
   912  addx872 add  sNaN12  -1000  ->  NaN12  Invalid_operation
   913  addx873 add  sNaN13   1000  ->  NaN13  Invalid_operation
   914  addx874 add  sNaN14   NaN17 ->  NaN14  Invalid_operation
   915  addx875 add  sNaN15  sNaN18 ->  NaN15  Invalid_operation
   916  addx876 add  NaN16   sNaN19 ->  NaN19  Invalid_operation
   917  addx877 add -Inf    +sNaN20 ->  NaN20  Invalid_operation
   918  addx878 add -1000    sNaN21 ->  NaN21  Invalid_operation
   919  addx879 add  1000    sNaN22 ->  NaN22  Invalid_operation
   920  addx880 add  Inf     sNaN23 ->  NaN23  Invalid_operation
   921  addx881 add +NaN25  +sNaN24 ->  NaN24  Invalid_operation
   922  addx882 add -NaN26    NaN28 -> -NaN26
   923  addx883 add -sNaN27  sNaN29 -> -NaN27  Invalid_operation
   924  addx884 add  1000    -NaN30 -> -NaN30
   925  addx885 add  1000   -sNaN31 -> -NaN31  Invalid_operation
   926  
   927  -- overflow, underflow and subnormal tests
   928  maxexponent: 999999999
   929  minexponent: -999999999
   930  precision: 9
   931  addx890 add 1E+999999999     9E+999999999   -> Infinity Overflow Inexact Rounded
   932  addx891 add 9E+999999999     1E+999999999   -> Infinity Overflow Inexact Rounded
   933  addx892 add -1.1E-999999999  1E-999999999   -> -1E-1000000000    Subnormal
   934  addx893 add 1E-999999999    -1.1e-999999999 -> -1E-1000000000    Subnormal
   935  addx894 add -1.0001E-999999999  1E-999999999   -> -1E-1000000003 Subnormal
   936  addx895 add 1E-999999999    -1.0001e-999999999 -> -1E-1000000003 Subnormal
   937  addx896 add -1E+999999999   -9E+999999999   -> -Infinity Overflow Inexact Rounded
   938  addx897 add -9E+999999999   -1E+999999999   -> -Infinity Overflow Inexact Rounded
   939  addx898 add +1.1E-999999999 -1E-999999999   -> 1E-1000000000    Subnormal
   940  addx899 add -1E-999999999   +1.1e-999999999 -> 1E-1000000000    Subnormal
   941  addx900 add +1.0001E-999999999 -1E-999999999   -> 1E-1000000003 Subnormal
   942  addx901 add -1E-999999999   +1.0001e-999999999 -> 1E-1000000003 Subnormal
   943  addx902 add -1E+999999999   +9E+999999999   ->  8E+999999999
   944  addx903 add -9E+999999999   +1E+999999999   -> -8E+999999999
   945  
   946  precision: 3
   947  addx904 add      0 -9.999E+999999999   -> -Infinity Inexact Overflow Rounded
   948  addx905 add        -9.999E+999999999 0 -> -Infinity Inexact Overflow Rounded
   949  addx906 add      0  9.999E+999999999   ->  Infinity Inexact Overflow Rounded
   950  addx907 add         9.999E+999999999 0 ->  Infinity Inexact Overflow Rounded
   951  
   952  precision: 3
   953  maxexponent: 999
   954  minexponent: -999
   955  addx910 add  1.00E-999   0    ->   1.00E-999
   956  addx911 add  0.1E-999    0    ->   1E-1000   Subnormal
   957  addx912 add  0.10E-999   0    ->   1.0E-1000 Subnormal
   958  addx913 add  0.100E-999  0    ->   1.0E-1000 Subnormal Rounded
   959  addx914 add  0.01E-999   0    ->   1E-1001   Subnormal
   960  -- next is rounded to Nmin
   961  addx915 add  0.999E-999  0    ->   1.00E-999 Inexact Rounded Subnormal Underflow
   962  addx916 add  0.099E-999  0    ->   1.0E-1000 Inexact Rounded Subnormal Underflow
   963  addx917 add  0.009E-999  0    ->   1E-1001   Inexact Rounded Subnormal Underflow
   964  addx918 add  0.001E-999  0    ->   0E-1001   Inexact Rounded Subnormal Underflow Clamped
   965  addx919 add  0.0009E-999 0    ->   0E-1001   Inexact Rounded Subnormal Underflow Clamped
   966  addx920 add  0.0001E-999 0    ->   0E-1001   Inexact Rounded Subnormal Underflow Clamped
   967  
   968  addx930 add -1.00E-999   0    ->  -1.00E-999
   969  addx931 add -0.1E-999    0    ->  -1E-1000   Subnormal
   970  addx932 add -0.10E-999   0    ->  -1.0E-1000 Subnormal
   971  addx933 add -0.100E-999  0    ->  -1.0E-1000 Subnormal Rounded
   972  addx934 add -0.01E-999   0    ->  -1E-1001   Subnormal
   973  -- next is rounded to Nmin
   974  addx935 add -0.999E-999  0    ->  -1.00E-999 Inexact Rounded Subnormal Underflow
   975  addx936 add -0.099E-999  0    ->  -1.0E-1000 Inexact Rounded Subnormal Underflow
   976  addx937 add -0.009E-999  0    ->  -1E-1001   Inexact Rounded Subnormal Underflow
   977  addx938 add -0.001E-999  0    ->  -0E-1001   Inexact Rounded Subnormal Underflow Clamped
   978  addx939 add -0.0009E-999 0    ->  -0E-1001   Inexact Rounded Subnormal Underflow Clamped
   979  addx940 add -0.0001E-999 0    ->  -0E-1001   Inexact Rounded Subnormal Underflow Clamped
   980  
   981  -- some non-zero subnormal adds
   982  addx950 add  1.00E-999    0.1E-999  ->   1.10E-999
   983  addx951 add  0.1E-999     0.1E-999  ->   2E-1000    Subnormal
   984  addx952 add  0.10E-999    0.1E-999  ->   2.0E-1000  Subnormal
   985  addx953 add  0.100E-999   0.1E-999  ->   2.0E-1000  Subnormal Rounded
   986  addx954 add  0.01E-999    0.1E-999  ->   1.1E-1000  Subnormal
   987  addx955 add  0.999E-999   0.1E-999  ->   1.10E-999  Inexact Rounded
   988  addx956 add  0.099E-999   0.1E-999  ->   2.0E-1000  Inexact Rounded Subnormal Underflow
   989  addx957 add  0.009E-999   0.1E-999  ->   1.1E-1000  Inexact Rounded Subnormal Underflow
   990  addx958 add  0.001E-999   0.1E-999  ->   1.0E-1000  Inexact Rounded Subnormal Underflow
   991  addx959 add  0.0009E-999  0.1E-999  ->   1.0E-1000  Inexact Rounded Subnormal Underflow
   992  addx960 add  0.0001E-999  0.1E-999  ->   1.0E-1000  Inexact Rounded Subnormal Underflow
   993  -- negatives...
   994  addx961 add  1.00E-999   -0.1E-999  ->   9.0E-1000  Subnormal
   995  addx962 add  0.1E-999    -0.1E-999  ->   0E-1000
   996  addx963 add  0.10E-999   -0.1E-999  ->   0E-1001
   997  addx964 add  0.100E-999  -0.1E-999  ->   0E-1001    Clamped
   998  addx965 add  0.01E-999   -0.1E-999  ->   -9E-1001   Subnormal
   999  addx966 add  0.999E-999  -0.1E-999  ->   9.0E-1000  Inexact Rounded Subnormal Underflow
  1000  addx967 add  0.099E-999  -0.1E-999  ->   -0E-1001   Inexact Rounded Subnormal Underflow Clamped
  1001  addx968 add  0.009E-999  -0.1E-999  ->   -9E-1001   Inexact Rounded Subnormal Underflow
  1002  addx969 add  0.001E-999  -0.1E-999  ->   -1.0E-1000 Inexact Rounded Subnormal Underflow
  1003  addx970 add  0.0009E-999 -0.1E-999  ->   -1.0E-1000 Inexact Rounded Subnormal Underflow
  1004  addx971 add  0.0001E-999 -0.1E-999  ->   -1.0E-1000 Inexact Rounded Subnormal Underflow
  1005  
  1006  -- some 'real' numbers
  1007  maxExponent: 384
  1008  minExponent: -383
  1009  precision: 8
  1010  addx566 add 99999061735E-394  0E-394 -> 9.999906E-384 Inexact Rounded Underflow Subnormal
  1011  precision: 7
  1012  addx567 add 99999061735E-394  0E-394 -> 9.99991E-384 Inexact Rounded Underflow Subnormal
  1013  precision: 6
  1014  addx568 add 99999061735E-394  0E-394 -> 9.9999E-384 Inexact Rounded Underflow Subnormal
  1015  
  1016  -- now the case where we can get underflow but the result is normal
  1017  -- [note this can't happen if the operands are also bounded, as we
  1018  -- cannot represent 1E-399, for example]
  1019  precision:   16
  1020  rounding:    half_up
  1021  maxExponent: 384
  1022  minExponent: -383
  1023  
  1024  addx571 add       1E-383       0  -> 1E-383
  1025  addx572 add       1E-384       0  -> 1E-384   Subnormal
  1026  addx573 add       1E-383  1E-384  -> 1.1E-383
  1027  addx574 subtract  1E-383  1E-384  ->   9E-384 Subnormal
  1028  
  1029  -- Here we explore the boundary of rounding a subnormal to Nmin
  1030  addx575 subtract  1E-383  1E-398  ->   9.99999999999999E-384  Subnormal
  1031  addx576 subtract  1E-383  1E-398  ->   9.99999999999999E-384  Subnormal
  1032  addx577 subtract  1E-383  1E-399  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded
  1033  addx578 subtract  1E-383  1E-400  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded
  1034  addx579 subtract  1E-383  1E-401  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded
  1035  addx580 subtract  1E-383  1E-402  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded
  1036  
  1037  -- check overflow edge case
  1038  precision:   7
  1039  rounding:    half_up
  1040  maxExponent: 96
  1041  minExponent: -95
  1042  addx972 apply   9.999999E+96         -> 9.999999E+96
  1043  addx973 add     9.999999E+96  1      -> 9.999999E+96 Inexact Rounded
  1044  addx974 add      9999999E+90  1      -> 9.999999E+96 Inexact Rounded
  1045  addx975 add      9999999E+90  1E+90  -> Infinity Overflow Inexact Rounded
  1046  addx976 add      9999999E+90  9E+89  -> Infinity Overflow Inexact Rounded
  1047  addx977 add      9999999E+90  8E+89  -> Infinity Overflow Inexact Rounded
  1048  addx978 add      9999999E+90  7E+89  -> Infinity Overflow Inexact Rounded
  1049  addx979 add      9999999E+90  6E+89  -> Infinity Overflow Inexact Rounded
  1050  addx980 add      9999999E+90  5E+89  -> Infinity Overflow Inexact Rounded
  1051  addx981 add      9999999E+90  4E+89  -> 9.999999E+96 Inexact Rounded
  1052  addx982 add      9999999E+90  3E+89  -> 9.999999E+96 Inexact Rounded
  1053  addx983 add      9999999E+90  2E+89  -> 9.999999E+96 Inexact Rounded
  1054  addx984 add      9999999E+90  1E+89  -> 9.999999E+96 Inexact Rounded
  1055  
  1056  addx985 apply  -9.999999E+96         -> -9.999999E+96
  1057  addx986 add    -9.999999E+96 -1      -> -9.999999E+96 Inexact Rounded
  1058  addx987 add     -9999999E+90 -1      -> -9.999999E+96 Inexact Rounded
  1059  addx988 add     -9999999E+90 -1E+90  -> -Infinity Overflow Inexact Rounded
  1060  addx989 add     -9999999E+90 -9E+89  -> -Infinity Overflow Inexact Rounded
  1061  addx990 add     -9999999E+90 -8E+89  -> -Infinity Overflow Inexact Rounded
  1062  addx991 add     -9999999E+90 -7E+89  -> -Infinity Overflow Inexact Rounded
  1063  addx992 add     -9999999E+90 -6E+89  -> -Infinity Overflow Inexact Rounded
  1064  addx993 add     -9999999E+90 -5E+89  -> -Infinity Overflow Inexact Rounded
  1065  addx994 add     -9999999E+90 -4E+89  -> -9.999999E+96 Inexact Rounded
  1066  addx995 add     -9999999E+90 -3E+89  -> -9.999999E+96 Inexact Rounded
  1067  addx996 add     -9999999E+90 -2E+89  -> -9.999999E+96 Inexact Rounded
  1068  addx997 add     -9999999E+90 -1E+89  -> -9.999999E+96 Inexact Rounded
  1069  
  1070  -- check for double-rounded subnormals
  1071  precision:   5
  1072  maxexponent: 79
  1073  minexponent: -79
  1074  -- Add: lhs and rhs 0
  1075  addx1001 add       1.52444E-80 0 -> 1.524E-80 Inexact Rounded Subnormal Underflow
  1076  addx1002 add       1.52445E-80 0 -> 1.524E-80 Inexact Rounded Subnormal Underflow
  1077  addx1003 add       1.52446E-80 0 -> 1.524E-80 Inexact Rounded Subnormal Underflow
  1078  addx1004 add       0 1.52444E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow
  1079  addx1005 add       0 1.52445E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow
  1080  addx1006 add       0 1.52446E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow
  1081  
  1082  -- Add: lhs >> rhs and vice versa
  1083  addx1011 add       1.52444E-80 1E-100 -> 1.524E-80 Inexact Rounded Subnormal Underflow
  1084  addx1012 add       1.52445E-80 1E-100 -> 1.524E-80 Inexact Rounded Subnormal Underflow
  1085  addx1013 add       1.52446E-80 1E-100 -> 1.524E-80 Inexact Rounded Subnormal Underflow
  1086  addx1014 add       1E-100 1.52444E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow
  1087  addx1015 add       1E-100 1.52445E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow
  1088  addx1016 add       1E-100 1.52446E-80 -> 1.524E-80 Inexact Rounded Subnormal Underflow
  1089  
  1090  -- Add: lhs + rhs addition carried out
  1091  addx1021 add       1.52443E-80 1.00001E-80  -> 2.524E-80 Inexact Rounded Subnormal Underflow
  1092  addx1022 add       1.52444E-80 1.00001E-80  -> 2.524E-80 Inexact Rounded Subnormal Underflow
  1093  addx1023 add       1.52445E-80 1.00001E-80  -> 2.524E-80 Inexact Rounded Subnormal Underflow
  1094  addx1024 add       1.00001E-80  1.52443E-80 -> 2.524E-80 Inexact Rounded Subnormal Underflow
  1095  addx1025 add       1.00001E-80  1.52444E-80 -> 2.524E-80 Inexact Rounded Subnormal Underflow
  1096  addx1026 add       1.00001E-80  1.52445E-80 -> 2.524E-80 Inexact Rounded Subnormal Underflow
  1097  
  1098  -- And for round down full and subnormal results
  1099  precision:    16
  1100  maxExponent: +384
  1101  minExponent: -383
  1102  rounding:     down
  1103  
  1104  addx1100 add 1e+2 -1e-383    -> 99.99999999999999 Rounded Inexact
  1105  addx1101 add 1e+1 -1e-383    -> 9.999999999999999  Rounded Inexact
  1106  addx1103 add   +1 -1e-383    -> 0.9999999999999999  Rounded Inexact
  1107  addx1104 add 1e-1 -1e-383    -> 0.09999999999999999  Rounded Inexact
  1108  addx1105 add 1e-2 -1e-383    -> 0.009999999999999999  Rounded Inexact
  1109  addx1106 add 1e-3 -1e-383    -> 0.0009999999999999999  Rounded Inexact
  1110  addx1107 add 1e-4 -1e-383    -> 0.00009999999999999999  Rounded Inexact
  1111  addx1108 add 1e-5 -1e-383    -> 0.000009999999999999999  Rounded Inexact
  1112  addx1109 add 1e-6 -1e-383    -> 9.999999999999999E-7  Rounded Inexact
  1113  
  1114  rounding:     ceiling
  1115  addx1110 add -1e+2 +1e-383   -> -99.99999999999999 Rounded Inexact
  1116  addx1111 add -1e+1 +1e-383   -> -9.999999999999999  Rounded Inexact
  1117  addx1113 add    -1 +1e-383   -> -0.9999999999999999  Rounded Inexact
  1118  addx1114 add -1e-1 +1e-383   -> -0.09999999999999999  Rounded Inexact
  1119  addx1115 add -1e-2 +1e-383   -> -0.009999999999999999  Rounded Inexact
  1120  addx1116 add -1e-3 +1e-383   -> -0.0009999999999999999  Rounded Inexact
  1121  addx1117 add -1e-4 +1e-383   -> -0.00009999999999999999  Rounded Inexact
  1122  addx1118 add -1e-5 +1e-383   -> -0.000009999999999999999  Rounded Inexact
  1123  addx1119 add -1e-6 +1e-383   -> -9.999999999999999E-7  Rounded Inexact
  1124  addx1120 add +1e-383 -1e+2   -> -99.99999999999999 Rounded Inexact
  1125  addx1121 add +1e-383 -1e+1   -> -9.999999999999999  Rounded Inexact
  1126  addx1123 add +1e-383    -1   -> -0.9999999999999999  Rounded Inexact
  1127  addx1124 add +1e-383 -1e-1   -> -0.09999999999999999  Rounded Inexact
  1128  addx1125 add +1e-383 -1e-2   -> -0.009999999999999999  Rounded Inexact
  1129  addx1126 add +1e-383 -1e-3   -> -0.0009999999999999999  Rounded Inexact
  1130  addx1127 add +1e-383 -1e-4   -> -0.00009999999999999999  Rounded Inexact
  1131  addx1128 add +1e-383 -1e-5   -> -0.000009999999999999999  Rounded Inexact
  1132  addx1129 add +1e-383 -1e-6   -> -9.999999999999999E-7  Rounded Inexact
  1133  
  1134  rounding:     down
  1135  precision:    7
  1136  maxExponent: +96
  1137  minExponent: -95
  1138  addx1130 add   1            -1e-200  -> 0.9999999  Rounded Inexact
  1139  -- subnormal boundary
  1140  addx1131 add   1.000000E-94  -1e-200  ->  9.999999E-95  Rounded Inexact
  1141  addx1132 add   1.000001E-95  -1e-200  ->  1.000000E-95  Rounded Inexact
  1142  addx1133 add   1.000000E-95  -1e-200  ->  9.99999E-96  Rounded Inexact Subnormal Underflow
  1143  addx1134 add   0.999999E-95  -1e-200  ->  9.99998E-96  Rounded Inexact Subnormal Underflow
  1144  addx1135 add   0.001000E-95  -1e-200  ->  9.99E-99  Rounded Inexact Subnormal Underflow
  1145  addx1136 add   0.000999E-95  -1e-200  ->  9.98E-99  Rounded Inexact Subnormal Underflow
  1146  addx1137 add   1.000000E-95  -1e-101  ->  9.99999E-96  Subnormal
  1147  addx1138 add      10000E-101 -1e-200  ->  9.999E-98  Subnormal Inexact Rounded Underflow
  1148  addx1139 add       1000E-101 -1e-200  ->  9.99E-99   Subnormal Inexact Rounded Underflow
  1149  addx1140 add        100E-101 -1e-200  ->  9.9E-100   Subnormal Inexact Rounded Underflow
  1150  addx1141 add         10E-101 -1e-200  ->  9E-101     Subnormal Inexact Rounded Underflow
  1151  addx1142 add          1E-101 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow Clamped
  1152  addx1143 add          0E-101 -1e-200  -> -0E-101     Subnormal Inexact Rounded Underflow Clamped
  1153  addx1144 add          1E-102 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow Clamped
  1154  
  1155  addx1151 add      10000E-102 -1e-200  ->  9.99E-99  Subnormal Inexact Rounded Underflow
  1156  addx1152 add       1000E-102 -1e-200  ->  9.9E-100  Subnormal Inexact Rounded Underflow
  1157  addx1153 add        100E-102 -1e-200  ->  9E-101   Subnormal Inexact Rounded Underflow
  1158  addx1154 add         10E-102 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow Clamped
  1159  addx1155 add          1E-102 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow Clamped
  1160  addx1156 add          0E-102 -1e-200  -> -0E-101     Subnormal Inexact Rounded Underflow Clamped
  1161  addx1157 add          1E-103 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow Clamped
  1162  
  1163  addx1160 add        100E-105 -1e-101  -> -0E-101 Subnormal Inexact Rounded Underflow Clamped
  1164  addx1161 add        100E-105 -1e-201  ->  0E-101 Subnormal Inexact Rounded Underflow Clamped
  1165  
  1166  -- tests based on Gunnar Degnbol's edge case
  1167  precision:   15
  1168  rounding:    half_up
  1169  maxExponent: 384
  1170  minexponent: -383
  1171  
  1172  addx1200 add 1E15  -0.5                 ->  1.00000000000000E+15 Inexact Rounded
  1173  addx1201 add 1E15  -0.50                ->  1.00000000000000E+15 Inexact Rounded
  1174  addx1210 add 1E15  -0.51                ->  999999999999999      Inexact Rounded
  1175  addx1211 add 1E15  -0.501               ->  999999999999999      Inexact Rounded
  1176  addx1212 add 1E15  -0.5001              ->  999999999999999      Inexact Rounded
  1177  addx1213 add 1E15  -0.50001             ->  999999999999999      Inexact Rounded
  1178  addx1214 add 1E15  -0.500001            ->  999999999999999      Inexact Rounded
  1179  addx1215 add 1E15  -0.5000001           ->  999999999999999      Inexact Rounded
  1180  addx1216 add 1E15  -0.50000001          ->  999999999999999      Inexact Rounded
  1181  addx1217 add 1E15  -0.500000001         ->  999999999999999      Inexact Rounded
  1182  addx1218 add 1E15  -0.5000000001        ->  999999999999999      Inexact Rounded
  1183  addx1219 add 1E15  -0.50000000001       ->  999999999999999      Inexact Rounded
  1184  addx1220 add 1E15  -0.500000000001      ->  999999999999999      Inexact Rounded
  1185  addx1221 add 1E15  -0.5000000000001     ->  999999999999999      Inexact Rounded
  1186  addx1222 add 1E15  -0.50000000000001    ->  999999999999999      Inexact Rounded
  1187  addx1223 add 1E15  -0.500000000000001   ->  999999999999999      Inexact Rounded
  1188  addx1224 add 1E15  -0.5000000000000001  ->  999999999999999      Inexact Rounded
  1189  addx1225 add 1E15  -0.5000000000000000  ->  1.00000000000000E+15 Inexact Rounded
  1190  addx1230 add 1E15  -5000000.000000001   ->  999999995000000      Inexact Rounded
  1191  
  1192  precision:   16
  1193  
  1194  addx1300 add 1E16  -0.5                 ->  1.000000000000000E+16 Inexact Rounded
  1195  addx1310 add 1E16  -0.51                ->  9999999999999999      Inexact Rounded
  1196  addx1311 add 1E16  -0.501               ->  9999999999999999      Inexact Rounded
  1197  addx1312 add 1E16  -0.5001              ->  9999999999999999      Inexact Rounded
  1198  addx1313 add 1E16  -0.50001             ->  9999999999999999      Inexact Rounded
  1199  addx1314 add 1E16  -0.500001            ->  9999999999999999      Inexact Rounded
  1200  addx1315 add 1E16  -0.5000001           ->  9999999999999999      Inexact Rounded
  1201  addx1316 add 1E16  -0.50000001          ->  9999999999999999      Inexact Rounded
  1202  addx1317 add 1E16  -0.500000001         ->  9999999999999999      Inexact Rounded
  1203  addx1318 add 1E16  -0.5000000001        ->  9999999999999999      Inexact Rounded
  1204  addx1319 add 1E16  -0.50000000001       ->  9999999999999999      Inexact Rounded
  1205  addx1320 add 1E16  -0.500000000001      ->  9999999999999999      Inexact Rounded
  1206  addx1321 add 1E16  -0.5000000000001     ->  9999999999999999      Inexact Rounded
  1207  addx1322 add 1E16  -0.50000000000001    ->  9999999999999999      Inexact Rounded
  1208  addx1323 add 1E16  -0.500000000000001   ->  9999999999999999      Inexact Rounded
  1209  addx1324 add 1E16  -0.5000000000000001  ->  9999999999999999      Inexact Rounded
  1210  addx1325 add 1E16  -0.5000000000000000  ->  1.000000000000000E+16 Inexact Rounded
  1211  addx1326 add 1E16  -0.500000000000000   ->  1.000000000000000E+16 Inexact Rounded
  1212  addx1327 add 1E16  -0.50000000000000    ->  1.000000000000000E+16 Inexact Rounded
  1213  addx1328 add 1E16  -0.5000000000000     ->  1.000000000000000E+16 Inexact Rounded
  1214  addx1329 add 1E16  -0.500000000000      ->  1.000000000000000E+16 Inexact Rounded
  1215  addx1330 add 1E16  -0.50000000000       ->  1.000000000000000E+16 Inexact Rounded
  1216  addx1331 add 1E16  -0.5000000000        ->  1.000000000000000E+16 Inexact Rounded
  1217  addx1332 add 1E16  -0.500000000         ->  1.000000000000000E+16 Inexact Rounded
  1218  addx1333 add 1E16  -0.50000000          ->  1.000000000000000E+16 Inexact Rounded
  1219  addx1334 add 1E16  -0.5000000           ->  1.000000000000000E+16 Inexact Rounded
  1220  addx1335 add 1E16  -0.500000            ->  1.000000000000000E+16 Inexact Rounded
  1221  addx1336 add 1E16  -0.50000             ->  1.000000000000000E+16 Inexact Rounded
  1222  addx1337 add 1E16  -0.5000              ->  1.000000000000000E+16 Inexact Rounded
  1223  addx1338 add 1E16  -0.500               ->  1.000000000000000E+16 Inexact Rounded
  1224  addx1339 add 1E16  -0.50                ->  1.000000000000000E+16 Inexact Rounded
  1225  
  1226  addx1340 add 1E16  -5000000.000010001   ->  9999999995000000      Inexact Rounded
  1227  addx1341 add 1E16  -5000000.000000001   ->  9999999995000000      Inexact Rounded
  1228  
  1229  addx1349 add 9999999999999999 0.4                 ->  9999999999999999      Inexact Rounded
  1230  addx1350 add 9999999999999999 0.49                ->  9999999999999999      Inexact Rounded
  1231  addx1351 add 9999999999999999 0.499               ->  9999999999999999      Inexact Rounded
  1232  addx1352 add 9999999999999999 0.4999              ->  9999999999999999      Inexact Rounded
  1233  addx1353 add 9999999999999999 0.49999             ->  9999999999999999      Inexact Rounded
  1234  addx1354 add 9999999999999999 0.499999            ->  9999999999999999      Inexact Rounded
  1235  addx1355 add 9999999999999999 0.4999999           ->  9999999999999999      Inexact Rounded
  1236  addx1356 add 9999999999999999 0.49999999          ->  9999999999999999      Inexact Rounded
  1237  addx1357 add 9999999999999999 0.499999999         ->  9999999999999999      Inexact Rounded
  1238  addx1358 add 9999999999999999 0.4999999999        ->  9999999999999999      Inexact Rounded
  1239  addx1359 add 9999999999999999 0.49999999999       ->  9999999999999999      Inexact Rounded
  1240  addx1360 add 9999999999999999 0.499999999999      ->  9999999999999999      Inexact Rounded
  1241  addx1361 add 9999999999999999 0.4999999999999     ->  9999999999999999      Inexact Rounded
  1242  addx1362 add 9999999999999999 0.49999999999999    ->  9999999999999999      Inexact Rounded
  1243  addx1363 add 9999999999999999 0.499999999999999   ->  9999999999999999      Inexact Rounded
  1244  addx1364 add 9999999999999999 0.4999999999999999  ->  9999999999999999      Inexact Rounded
  1245  addx1365 add 9999999999999999 0.5000000000000000  ->  1.000000000000000E+16 Inexact Rounded
  1246  addx1367 add 9999999999999999 0.500000000000000   ->  1.000000000000000E+16 Inexact Rounded
  1247  addx1368 add 9999999999999999 0.50000000000000    ->  1.000000000000000E+16 Inexact Rounded
  1248  addx1369 add 9999999999999999 0.5000000000000     ->  1.000000000000000E+16 Inexact Rounded
  1249  addx1370 add 9999999999999999 0.500000000000      ->  1.000000000000000E+16 Inexact Rounded
  1250  addx1371 add 9999999999999999 0.50000000000       ->  1.000000000000000E+16 Inexact Rounded
  1251  addx1372 add 9999999999999999 0.5000000000        ->  1.000000000000000E+16 Inexact Rounded
  1252  addx1373 add 9999999999999999 0.500000000         ->  1.000000000000000E+16 Inexact Rounded
  1253  addx1374 add 9999999999999999 0.50000000          ->  1.000000000000000E+16 Inexact Rounded
  1254  addx1375 add 9999999999999999 0.5000000           ->  1.000000000000000E+16 Inexact Rounded
  1255  addx1376 add 9999999999999999 0.500000            ->  1.000000000000000E+16 Inexact Rounded
  1256  addx1377 add 9999999999999999 0.50000             ->  1.000000000000000E+16 Inexact Rounded
  1257  addx1378 add 9999999999999999 0.5000              ->  1.000000000000000E+16 Inexact Rounded
  1258  addx1379 add 9999999999999999 0.500               ->  1.000000000000000E+16 Inexact Rounded
  1259  addx1380 add 9999999999999999 0.50                ->  1.000000000000000E+16 Inexact Rounded
  1260  addx1381 add 9999999999999999 0.5                 ->  1.000000000000000E+16 Inexact Rounded
  1261  addx1382 add 9999999999999999 0.5000000000000001  ->  1.000000000000000E+16 Inexact Rounded
  1262  addx1383 add 9999999999999999 0.500000000000001   ->  1.000000000000000E+16 Inexact Rounded
  1263  addx1384 add 9999999999999999 0.50000000000001    ->  1.000000000000000E+16 Inexact Rounded
  1264  addx1385 add 9999999999999999 0.5000000000001     ->  1.000000000000000E+16 Inexact Rounded
  1265  addx1386 add 9999999999999999 0.500000000001      ->  1.000000000000000E+16 Inexact Rounded
  1266  addx1387 add 9999999999999999 0.50000000001       ->  1.000000000000000E+16 Inexact Rounded
  1267  addx1388 add 9999999999999999 0.5000000001        ->  1.000000000000000E+16 Inexact Rounded
  1268  addx1389 add 9999999999999999 0.500000001         ->  1.000000000000000E+16 Inexact Rounded
  1269  addx1390 add 9999999999999999 0.50000001          ->  1.000000000000000E+16 Inexact Rounded
  1270  addx1391 add 9999999999999999 0.5000001           ->  1.000000000000000E+16 Inexact Rounded
  1271  addx1392 add 9999999999999999 0.500001            ->  1.000000000000000E+16 Inexact Rounded
  1272  addx1393 add 9999999999999999 0.50001             ->  1.000000000000000E+16 Inexact Rounded
  1273  addx1394 add 9999999999999999 0.5001              ->  1.000000000000000E+16 Inexact Rounded
  1274  addx1395 add 9999999999999999 0.501               ->  1.000000000000000E+16 Inexact Rounded
  1275  addx1396 add 9999999999999999 0.51                ->  1.000000000000000E+16 Inexact Rounded
  1276  
  1277  -- More GD edge cases, where difference between the unadjusted
  1278  -- exponents is larger than the maximum precision and one side is 0
  1279  precision:   15
  1280  rounding:    half_up
  1281  maxExponent: 384
  1282  minexponent: -383
  1283  
  1284  addx1400 add  0 1.23456789012345     -> 1.23456789012345
  1285  addx1401 add  0 1.23456789012345E-1  -> 0.123456789012345
  1286  addx1402 add  0 1.23456789012345E-2  -> 0.0123456789012345
  1287  addx1403 add  0 1.23456789012345E-3  -> 0.00123456789012345
  1288  addx1404 add  0 1.23456789012345E-4  -> 0.000123456789012345
  1289  addx1405 add  0 1.23456789012345E-5  -> 0.0000123456789012345
  1290  addx1406 add  0 1.23456789012345E-6  -> 0.00000123456789012345
  1291  addx1407 add  0 1.23456789012345E-7  -> 1.23456789012345E-7
  1292  addx1408 add  0 1.23456789012345E-8  -> 1.23456789012345E-8
  1293  addx1409 add  0 1.23456789012345E-9  -> 1.23456789012345E-9
  1294  addx1410 add  0 1.23456789012345E-10 -> 1.23456789012345E-10
  1295  addx1411 add  0 1.23456789012345E-11 -> 1.23456789012345E-11
  1296  addx1412 add  0 1.23456789012345E-12 -> 1.23456789012345E-12
  1297  addx1413 add  0 1.23456789012345E-13 -> 1.23456789012345E-13
  1298  addx1414 add  0 1.23456789012345E-14 -> 1.23456789012345E-14
  1299  addx1415 add  0 1.23456789012345E-15 -> 1.23456789012345E-15
  1300  addx1416 add  0 1.23456789012345E-16 -> 1.23456789012345E-16
  1301  addx1417 add  0 1.23456789012345E-17 -> 1.23456789012345E-17
  1302  addx1418 add  0 1.23456789012345E-18 -> 1.23456789012345E-18
  1303  addx1419 add  0 1.23456789012345E-19 -> 1.23456789012345E-19
  1304  
  1305  -- same, precision 16..
  1306  precision:   16
  1307  addx1420 add  0 1.123456789012345     -> 1.123456789012345
  1308  addx1421 add  0 1.123456789012345E-1  -> 0.1123456789012345
  1309  addx1422 add  0 1.123456789012345E-2  -> 0.01123456789012345
  1310  addx1423 add  0 1.123456789012345E-3  -> 0.001123456789012345
  1311  addx1424 add  0 1.123456789012345E-4  -> 0.0001123456789012345
  1312  addx1425 add  0 1.123456789012345E-5  -> 0.00001123456789012345
  1313  addx1426 add  0 1.123456789012345E-6  -> 0.000001123456789012345
  1314  addx1427 add  0 1.123456789012345E-7  -> 1.123456789012345E-7
  1315  addx1428 add  0 1.123456789012345E-8  -> 1.123456789012345E-8
  1316  addx1429 add  0 1.123456789012345E-9  -> 1.123456789012345E-9
  1317  addx1430 add  0 1.123456789012345E-10 -> 1.123456789012345E-10
  1318  addx1431 add  0 1.123456789012345E-11 -> 1.123456789012345E-11
  1319  addx1432 add  0 1.123456789012345E-12 -> 1.123456789012345E-12
  1320  addx1433 add  0 1.123456789012345E-13 -> 1.123456789012345E-13
  1321  addx1434 add  0 1.123456789012345E-14 -> 1.123456789012345E-14
  1322  addx1435 add  0 1.123456789012345E-15 -> 1.123456789012345E-15
  1323  addx1436 add  0 1.123456789012345E-16 -> 1.123456789012345E-16
  1324  addx1437 add  0 1.123456789012345E-17 -> 1.123456789012345E-17
  1325  addx1438 add  0 1.123456789012345E-18 -> 1.123456789012345E-18
  1326  addx1439 add  0 1.123456789012345E-19 -> 1.123456789012345E-19
  1327  
  1328  -- same, reversed 0
  1329  addx1440 add 1.123456789012345     0 -> 1.123456789012345
  1330  addx1441 add 1.123456789012345E-1  0 -> 0.1123456789012345
  1331  addx1442 add 1.123456789012345E-2  0 -> 0.01123456789012345
  1332  addx1443 add 1.123456789012345E-3  0 -> 0.001123456789012345
  1333  addx1444 add 1.123456789012345E-4  0 -> 0.0001123456789012345
  1334  addx1445 add 1.123456789012345E-5  0 -> 0.00001123456789012345
  1335  addx1446 add 1.123456789012345E-6  0 -> 0.000001123456789012345
  1336  addx1447 add 1.123456789012345E-7  0 -> 1.123456789012345E-7
  1337  addx1448 add 1.123456789012345E-8  0 -> 1.123456789012345E-8
  1338  addx1449 add 1.123456789012345E-9  0 -> 1.123456789012345E-9
  1339  addx1450 add 1.123456789012345E-10 0 -> 1.123456789012345E-10
  1340  addx1451 add 1.123456789012345E-11 0 -> 1.123456789012345E-11
  1341  addx1452 add 1.123456789012345E-12 0 -> 1.123456789012345E-12
  1342  addx1453 add 1.123456789012345E-13 0 -> 1.123456789012345E-13
  1343  addx1454 add 1.123456789012345E-14 0 -> 1.123456789012345E-14
  1344  addx1455 add 1.123456789012345E-15 0 -> 1.123456789012345E-15
  1345  addx1456 add 1.123456789012345E-16 0 -> 1.123456789012345E-16
  1346  addx1457 add 1.123456789012345E-17 0 -> 1.123456789012345E-17
  1347  addx1458 add 1.123456789012345E-18 0 -> 1.123456789012345E-18
  1348  addx1459 add 1.123456789012345E-19 0 -> 1.123456789012345E-19
  1349  
  1350  -- same, Es on the 0
  1351  addx1460 add 1.123456789012345  0E-0   -> 1.123456789012345
  1352  addx1461 add 1.123456789012345  0E-1   -> 1.123456789012345
  1353  addx1462 add 1.123456789012345  0E-2   -> 1.123456789012345
  1354  addx1463 add 1.123456789012345  0E-3   -> 1.123456789012345
  1355  addx1464 add 1.123456789012345  0E-4   -> 1.123456789012345
  1356  addx1465 add 1.123456789012345  0E-5   -> 1.123456789012345
  1357  addx1466 add 1.123456789012345  0E-6   -> 1.123456789012345
  1358  addx1467 add 1.123456789012345  0E-7   -> 1.123456789012345
  1359  addx1468 add 1.123456789012345  0E-8   -> 1.123456789012345
  1360  addx1469 add 1.123456789012345  0E-9   -> 1.123456789012345
  1361  addx1470 add 1.123456789012345  0E-10  -> 1.123456789012345
  1362  addx1471 add 1.123456789012345  0E-11  -> 1.123456789012345
  1363  addx1472 add 1.123456789012345  0E-12  -> 1.123456789012345
  1364  addx1473 add 1.123456789012345  0E-13  -> 1.123456789012345
  1365  addx1474 add 1.123456789012345  0E-14  -> 1.123456789012345
  1366  addx1475 add 1.123456789012345  0E-15  -> 1.123456789012345
  1367  -- next four flag Rounded because the 0 extends the result
  1368  addx1476 add 1.123456789012345  0E-16  -> 1.123456789012345 Rounded
  1369  addx1477 add 1.123456789012345  0E-17  -> 1.123456789012345 Rounded
  1370  addx1478 add 1.123456789012345  0E-18  -> 1.123456789012345 Rounded
  1371  addx1479 add 1.123456789012345  0E-19  -> 1.123456789012345 Rounded
  1372  
  1373  -- sum of two opposite-sign operands is exactly 0 and floor => -0
  1374  precision:   16
  1375  maxExponent: 384
  1376  minexponent: -383
  1377  
  1378  rounding:    half_up
  1379  -- exact zeros from zeros
  1380  addx1500 add  0        0E-19  ->  0E-19
  1381  addx1501 add -0        0E-19  ->  0E-19
  1382  addx1502 add  0       -0E-19  ->  0E-19
  1383  addx1503 add -0       -0E-19  -> -0E-19
  1384  addx1504 add  0E-400   0E-19  ->  0E-398 Clamped
  1385  addx1505 add -0E-400   0E-19  ->  0E-398 Clamped
  1386  addx1506 add  0E-400  -0E-19  ->  0E-398 Clamped
  1387  addx1507 add -0E-400  -0E-19  -> -0E-398 Clamped
  1388  -- inexact zeros
  1389  addx1511 add  1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  1390  addx1512 add -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  1391  addx1513 add  1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  1392  addx1514 add -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  1393  -- some exact zeros from non-zeros
  1394  addx1515 add  1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  1395  addx1516 add -1E-401   1E-401 ->  0E-398 Clamped
  1396  addx1517 add  1E-401  -1E-401 ->  0E-398 Clamped
  1397  addx1518 add -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  1398  
  1399  rounding:    half_down
  1400  -- exact zeros from zeros
  1401  addx1520 add  0        0E-19  ->  0E-19
  1402  addx1521 add -0        0E-19  ->  0E-19
  1403  addx1522 add  0       -0E-19  ->  0E-19
  1404  addx1523 add -0       -0E-19  -> -0E-19
  1405  addx1524 add  0E-400   0E-19  ->  0E-398 Clamped
  1406  addx1525 add -0E-400   0E-19  ->  0E-398 Clamped
  1407  addx1526 add  0E-400  -0E-19  ->  0E-398 Clamped
  1408  addx1527 add -0E-400  -0E-19  -> -0E-398 Clamped
  1409  -- inexact zeros
  1410  addx1531 add  1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  1411  addx1532 add -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  1412  addx1533 add  1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  1413  addx1534 add -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  1414  -- some exact zeros from non-zeros
  1415  addx1535 add  1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  1416  addx1536 add -1E-401   1E-401 ->  0E-398 Clamped
  1417  addx1537 add  1E-401  -1E-401 ->  0E-398 Clamped
  1418  addx1538 add -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  1419  
  1420  rounding:    half_even
  1421  -- exact zeros from zeros
  1422  addx1540 add  0        0E-19  ->  0E-19
  1423  addx1541 add -0        0E-19  ->  0E-19
  1424  addx1542 add  0       -0E-19  ->  0E-19
  1425  addx1543 add -0       -0E-19  -> -0E-19
  1426  addx1544 add  0E-400   0E-19  ->  0E-398 Clamped
  1427  addx1545 add -0E-400   0E-19  ->  0E-398 Clamped
  1428  addx1546 add  0E-400  -0E-19  ->  0E-398 Clamped
  1429  addx1547 add -0E-400  -0E-19  -> -0E-398 Clamped
  1430  -- inexact zeros
  1431  addx1551 add  1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  1432  addx1552 add -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  1433  addx1553 add  1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  1434  addx1554 add -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  1435  -- some exact zeros from non-zeros
  1436  addx1555 add  1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  1437  addx1556 add -1E-401   1E-401 ->  0E-398 Clamped
  1438  addx1557 add  1E-401  -1E-401 ->  0E-398 Clamped
  1439  addx1558 add -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  1440  
  1441  rounding:    up
  1442  -- exact zeros from zeros
  1443  addx1560 add  0        0E-19  ->  0E-19
  1444  addx1561 add -0        0E-19  ->  0E-19
  1445  addx1562 add  0       -0E-19  ->  0E-19
  1446  addx1563 add -0       -0E-19  -> -0E-19
  1447  addx1564 add  0E-400   0E-19  ->  0E-398 Clamped
  1448  addx1565 add -0E-400   0E-19  ->  0E-398 Clamped
  1449  addx1566 add  0E-400  -0E-19  ->  0E-398 Clamped
  1450  addx1567 add -0E-400  -0E-19  -> -0E-398 Clamped
  1451  -- inexact zeros
  1452  addx1571 add  1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
  1453  addx1572 add -1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
  1454  addx1573 add  1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
  1455  addx1574 add -1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
  1456  -- some exact zeros from non-zeros
  1457  addx1575 add  1E-401   1E-401 ->  1E-398 Subnormal Inexact Rounded Underflow
  1458  addx1576 add -1E-401   1E-401 ->  0E-398 Clamped
  1459  addx1577 add  1E-401  -1E-401 ->  0E-398 Clamped
  1460  addx1578 add -1E-401  -1E-401 -> -1E-398 Subnormal Inexact Rounded Underflow
  1461  
  1462  rounding:    down
  1463  -- exact zeros from zeros
  1464  addx1580 add  0        0E-19  ->  0E-19
  1465  addx1581 add -0        0E-19  ->  0E-19
  1466  addx1582 add  0       -0E-19  ->  0E-19
  1467  addx1583 add -0       -0E-19  -> -0E-19
  1468  addx1584 add  0E-400   0E-19  ->  0E-398 Clamped
  1469  addx1585 add -0E-400   0E-19  ->  0E-398 Clamped
  1470  addx1586 add  0E-400  -0E-19  ->  0E-398 Clamped
  1471  addx1587 add -0E-400  -0E-19  -> -0E-398 Clamped
  1472  -- inexact zeros
  1473  addx1591 add  1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  1474  addx1592 add -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  1475  addx1593 add  1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  1476  addx1594 add -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  1477  -- some exact zeros from non-zeros
  1478  addx1595 add  1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  1479  addx1596 add -1E-401   1E-401 ->  0E-398 Clamped
  1480  addx1597 add  1E-401  -1E-401 ->  0E-398 Clamped
  1481  addx1598 add -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  1482  
  1483  rounding:    ceiling
  1484  -- exact zeros from zeros
  1485  addx1600 add  0        0E-19  ->  0E-19
  1486  addx1601 add -0        0E-19  ->  0E-19
  1487  addx1602 add  0       -0E-19  ->  0E-19
  1488  addx1603 add -0       -0E-19  -> -0E-19
  1489  addx1604 add  0E-400   0E-19  ->  0E-398 Clamped
  1490  addx1605 add -0E-400   0E-19  ->  0E-398 Clamped
  1491  addx1606 add  0E-400  -0E-19  ->  0E-398 Clamped
  1492  addx1607 add -0E-400  -0E-19  -> -0E-398 Clamped
  1493  -- inexact zeros
  1494  addx1611 add  1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
  1495  addx1612 add -1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
  1496  addx1613 add  1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  1497  addx1614 add -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  1498  -- some exact zeros from non-zeros
  1499  addx1615 add  1E-401   1E-401 ->  1E-398 Subnormal Inexact Rounded Underflow
  1500  addx1616 add -1E-401   1E-401 ->  0E-398 Clamped
  1501  addx1617 add  1E-401  -1E-401 ->  0E-398 Clamped
  1502  addx1618 add -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  1503  
  1504  -- and the extra-special ugly case; unusual minuses marked by -- *
  1505  rounding:    floor
  1506  -- exact zeros from zeros
  1507  addx1620 add  0        0E-19  ->  0E-19
  1508  addx1621 add -0        0E-19  -> -0E-19           -- *
  1509  addx1622 add  0       -0E-19  -> -0E-19           -- *
  1510  addx1623 add -0       -0E-19  -> -0E-19
  1511  addx1624 add  0E-400   0E-19  ->  0E-398 Clamped
  1512  addx1625 add -0E-400   0E-19  -> -0E-398 Clamped  -- *
  1513  addx1626 add  0E-400  -0E-19  -> -0E-398 Clamped  -- *
  1514  addx1627 add -0E-400  -0E-19  -> -0E-398 Clamped
  1515  -- inexact zeros
  1516  addx1631 add  1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  1517  addx1632 add -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  1518  addx1633 add  1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
  1519  addx1634 add -1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
  1520  -- some exact zeros from non-zeros
  1521  addx1635 add  1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  1522  addx1636 add -1E-401   1E-401 -> -0E-398 Clamped  -- *
  1523  addx1637 add  1E-401  -1E-401 -> -0E-398 Clamped  -- *
  1524  addx1638 add -1E-401  -1E-401 -> -1E-398 Subnormal Inexact Rounded Underflow
  1525  
  1526  -- BigDecimal problem testcases 2006.01.23
  1527  precision:   16
  1528  maxExponent: 384
  1529  minexponent: -383
  1530  
  1531  rounding:  down
  1532  precision: 7
  1533  addx1651 add  10001E+2  -2E+1 -> 1.00008E+6
  1534  precision: 6
  1535  addx1652 add  10001E+2  -2E+1 -> 1.00008E+6
  1536  precision: 5
  1537  addx1653 add  10001E+2  -2E+1 -> 1.0000E+6   Inexact Rounded
  1538  precision: 4
  1539  addx1654 add  10001E+2  -2E+1 -> 1.000E+6    Inexact Rounded
  1540  precision: 3
  1541  addx1655 add  10001E+2  -2E+1 -> 1.00E+6     Inexact Rounded
  1542  precision: 2
  1543  addx1656 add  10001E+2  -2E+1 -> 1.0E+6      Inexact Rounded
  1544  precision: 1
  1545  addx1657 add  10001E+2  -2E+1 -> 1E+6        Inexact Rounded
  1546  
  1547  rounding:  half_even
  1548  precision: 7
  1549  addx1661 add  10001E+2  -2E+1 -> 1.00008E+6
  1550  precision: 6
  1551  addx1662 add  10001E+2  -2E+1 -> 1.00008E+6
  1552  precision: 5
  1553  addx1663 add  10001E+2  -2E+1 -> 1.0001E+6   Inexact Rounded
  1554  precision: 4
  1555  addx1664 add  10001E+2  -2E+1 -> 1.000E+6    Inexact Rounded
  1556  precision: 3
  1557  addx1665 add  10001E+2  -2E+1 -> 1.00E+6     Inexact Rounded
  1558  precision: 2
  1559  addx1666 add  10001E+2  -2E+1 -> 1.0E+6      Inexact Rounded
  1560  precision: 1
  1561  addx1667 add  10001E+2  -2E+1 -> 1E+6        Inexact Rounded
  1562  
  1563  rounding:  up
  1564  precision: 7
  1565  addx1671 add  10001E+2  -2E+1 -> 1.00008E+6
  1566  precision: 6
  1567  addx1672 add  10001E+2  -2E+1 -> 1.00008E+6
  1568  precision: 5
  1569  addx1673 add  10001E+2  -2E+1 -> 1.0001E+6   Inexact Rounded
  1570  precision: 4
  1571  addx1674 add  10001E+2  -2E+1 -> 1.001E+6    Inexact Rounded
  1572  precision: 3
  1573  addx1675 add  10001E+2  -2E+1 -> 1.01E+6     Inexact Rounded
  1574  precision: 2
  1575  addx1676 add  10001E+2  -2E+1 -> 1.1E+6      Inexact Rounded
  1576  precision: 1
  1577  addx1677 add  10001E+2  -2E+1 -> 2E+6        Inexact Rounded
  1578  
  1579  precision:   34
  1580  rounding:    half_up
  1581  maxExponent: 6144
  1582  minExponent: -6143
  1583  -- Examples from SQL proposal (Krishna Kulkarni)
  1584  addx1701  add 130E-2    120E-2    -> 2.50
  1585  addx1702  add 130E-2    12E-1     -> 2.50
  1586  addx1703  add 130E-2    1E0       -> 2.30
  1587  addx1704  add 1E2       1E4       -> 1.01E+4
  1588  addx1705  subtract 130E-2  120E-2 -> 0.10
  1589  addx1706  subtract 130E-2  12E-1  -> 0.10
  1590  addx1707  subtract 130E-2  1E0    -> 0.30
  1591  addx1708  subtract 1E2     1E4    -> -9.9E+3
  1592  
  1593  ------------------------------------------------------------------------
  1594  -- Same as above, using decimal64 default parameters                  --
  1595  ------------------------------------------------------------------------
  1596  precision:   16
  1597  rounding:    half_even
  1598  maxExponent: 384
  1599  minexponent: -383
  1600  
  1601  -- [first group are 'quick confidence check']
  1602  addx6001 add 1       1       ->  2
  1603  addx6002 add 2       3       ->  5
  1604  addx6003 add '5.75'  '3.3'   ->  9.05
  1605  addx6004 add '5'     '-3'    ->  2
  1606  addx6005 add '-5'    '-3'    ->  -8
  1607  addx6006 add '-7'    '2.5'   ->  -4.5
  1608  addx6007 add '0.7'   '0.3'   ->  1.0
  1609  addx6008 add '1.25'  '1.25'  ->  2.50
  1610  addx6009 add '1.23456789'  '1.00000000' -> '2.23456789'
  1611  addx6010 add '1.23456789'  '1.00000011' -> '2.23456800'
  1612  
  1613  addx6011 add '0.44444444444444444'  '0.55555555555555555' -> '1.000000000000000' Inexact Rounded
  1614  addx6012 add '0.44444444444444440'  '0.55555555555555555' -> '1.000000000000000' Inexact Rounded
  1615  addx6013 add '0.44444444444444444'  '0.55555555555555550' -> '0.9999999999999999' Inexact Rounded
  1616  addx6014 add '0.444444444444444449'    '0' -> '0.4444444444444444' Inexact Rounded
  1617  addx6015 add '0.4444444444444444499'   '0' -> '0.4444444444444444' Inexact Rounded
  1618  addx6016 add '0.44444444444444444999'  '0' -> '0.4444444444444444' Inexact Rounded
  1619  addx6017 add '0.44444444444444445000'  '0' -> '0.4444444444444444' Inexact Rounded
  1620  addx6018 add '0.44444444444444445001'  '0' -> '0.4444444444444445' Inexact Rounded
  1621  addx6019 add '0.4444444444444444501'   '0' -> '0.4444444444444445' Inexact Rounded
  1622  addx6020 add '0.444444444444444451'    '0' -> '0.4444444444444445' Inexact Rounded
  1623  
  1624  addx6021 add 0 1 -> 1
  1625  addx6022 add 1 1 -> 2
  1626  addx6023 add 2 1 -> 3
  1627  addx6024 add 3 1 -> 4
  1628  addx6025 add 4 1 -> 5
  1629  addx6026 add 5 1 -> 6
  1630  addx6027 add 6 1 -> 7
  1631  addx6028 add 7 1 -> 8
  1632  addx6029 add 8 1 -> 9
  1633  addx6030 add 9 1 -> 10
  1634  
  1635  -- some carrying effects
  1636  addx6031 add '0.9998'  '0.0000' -> '0.9998'
  1637  addx6032 add '0.9998'  '0.0001' -> '0.9999'
  1638  addx6033 add '0.9998'  '0.0002' -> '1.0000'
  1639  addx6034 add '0.9998'  '0.0003' -> '1.0001'
  1640  
  1641  addx6035 add '70'      '10000e+16' -> '1.000000000000000E+20' Inexact Rounded
  1642  addx6036 add '700'     '10000e+16' -> '1.000000000000000E+20' Inexact Rounded
  1643  addx6037 add '7000'    '10000e+16' -> '1.000000000000000E+20' Inexact Rounded
  1644  addx6038 add '70000'   '10000e+16' -> '1.000000000000001E+20' Inexact Rounded
  1645  addx6039 add '700000'  '10000e+16' -> '1.000000000000007E+20' Rounded
  1646  
  1647  -- symmetry:
  1648  addx6040 add '10000e+16'  '70' -> '1.000000000000000E+20' Inexact Rounded
  1649  addx6041 add '10000e+16'  '700' -> '1.000000000000000E+20' Inexact Rounded
  1650  addx6042 add '10000e+16'  '7000' -> '1.000000000000000E+20' Inexact Rounded
  1651  addx6044 add '10000e+16'  '70000' -> '1.000000000000001E+20' Inexact Rounded
  1652  addx6045 add '10000e+16'  '700000' -> '1.000000000000007E+20' Rounded
  1653  
  1654  addx6046 add '10000e+9'  '7' -> '10000000000007'
  1655  addx6047 add '10000e+9'  '70' -> '10000000000070'
  1656  addx6048 add '10000e+9'  '700' -> '10000000000700'
  1657  addx6049 add '10000e+9'  '7000' -> '10000000007000'
  1658  addx6050 add '10000e+9'  '70000' -> '10000000070000'
  1659  addx6051 add '10000e+9'  '700000' -> '10000000700000'
  1660  
  1661  -- examples from decarith
  1662  addx6053 add '12' '7.00' -> '19.00'
  1663  addx6054 add '1.3' '-1.07' -> '0.23'
  1664  addx6055 add '1.3' '-1.30' -> '0.00'
  1665  addx6056 add '1.3' '-2.07' -> '-0.77'
  1666  addx6057 add '1E+2' '1E+4' -> '1.01E+4'
  1667  
  1668  -- from above
  1669  addx6060 add 1 '0.1' -> '1.1'
  1670  addx6061 add 1 '0.01' -> '1.01'
  1671  addx6062 add 1 '0.001' -> '1.001'
  1672  addx6063 add 1 '0.0001' -> '1.0001'
  1673  addx6064 add 1 '0.00001' -> '1.00001'
  1674  addx6065 add 1 '0.000001' -> '1.000001'
  1675  addx6066 add 1 '0.0000001' -> '1.0000001'
  1676  addx6067 add 1 '0.00000001' -> '1.00000001'
  1677  
  1678  -- cancellation to integer
  1679  addx6068 add 99999999999999123456789 -99999999999999E+9 -> 123456789
  1680  -- similar from FMA fun
  1681  addx6069 add "-1234567890123455.234567890123454" "1234567890123456" -> 0.765432109876546
  1682  
  1683  -- some funny zeros [in case of bad signum]
  1684  addx6070 add 1  0    -> 1
  1685  addx6071 add 1 0.    -> 1
  1686  addx6072 add 1  .0   -> 1.0
  1687  addx6073 add 1 0.0   -> 1.0
  1688  addx6074 add 1 0.00  -> 1.00
  1689  addx6075 add  0  1   -> 1
  1690  addx6076 add 0.  1   -> 1
  1691  addx6077 add  .0 1   -> 1.0
  1692  addx6078 add 0.0 1   -> 1.0
  1693  addx6079 add 0.00 1  -> 1.00
  1694  
  1695  -- some carries
  1696  addx6080 add 9999999999999998 1  -> 9999999999999999
  1697  addx6081 add 9999999999999999 1  -> 1.000000000000000E+16 Rounded
  1698  addx6082 add  999999999999999 1  -> 1000000000000000
  1699  addx6083 add    9999999999999 1  -> 10000000000000
  1700  addx6084 add      99999999999 1  -> 100000000000
  1701  addx6085 add        999999999 1  -> 1000000000
  1702  addx6086 add          9999999 1  -> 10000000
  1703  addx6087 add            99999 1  -> 100000
  1704  addx6088 add              999 1  -> 1000
  1705  addx6089 add                9 1  -> 10
  1706  
  1707  
  1708  -- more LHS swaps
  1709  addx6090 add '-56267E-10'   0 ->  '-0.0000056267'
  1710  addx6091 add '-56267E-6'    0 ->  '-0.056267'
  1711  addx6092 add '-56267E-5'    0 ->  '-0.56267'
  1712  addx6093 add '-56267E-4'    0 ->  '-5.6267'
  1713  addx6094 add '-56267E-3'    0 ->  '-56.267'
  1714  addx6095 add '-56267E-2'    0 ->  '-562.67'
  1715  addx6096 add '-56267E-1'    0 ->  '-5626.7'
  1716  addx6097 add '-56267E-0'    0 ->  '-56267'
  1717  addx6098 add '-5E-10'       0 ->  '-5E-10'
  1718  addx6099 add '-5E-7'        0 ->  '-5E-7'
  1719  addx6100 add '-5E-6'        0 ->  '-0.000005'
  1720  addx6101 add '-5E-5'        0 ->  '-0.00005'
  1721  addx6102 add '-5E-4'        0 ->  '-0.0005'
  1722  addx6103 add '-5E-1'        0 ->  '-0.5'
  1723  addx6104 add '-5E0'         0 ->  '-5'
  1724  addx6105 add '-5E1'         0 ->  '-50'
  1725  addx6106 add '-5E5'         0 ->  '-500000'
  1726  addx6107 add '-5E15'        0 ->  '-5000000000000000'
  1727  addx6108 add '-5E16'        0 ->  '-5.000000000000000E+16'   Rounded
  1728  addx6109 add '-5E17'        0 ->  '-5.000000000000000E+17'  Rounded
  1729  addx6110 add '-5E18'        0 ->  '-5.000000000000000E+18'  Rounded
  1730  addx6111 add '-5E100'       0 ->  '-5.000000000000000E+100' Rounded
  1731  
  1732  -- more RHS swaps
  1733  addx6113 add 0  '-56267E-10' ->  '-0.0000056267'
  1734  addx6114 add 0  '-56267E-6'  ->  '-0.056267'
  1735  addx6116 add 0  '-56267E-5'  ->  '-0.56267'
  1736  addx6117 add 0  '-56267E-4'  ->  '-5.6267'
  1737  addx6119 add 0  '-56267E-3'  ->  '-56.267'
  1738  addx6120 add 0  '-56267E-2'  ->  '-562.67'
  1739  addx6121 add 0  '-56267E-1'  ->  '-5626.7'
  1740  addx6122 add 0  '-56267E-0'  ->  '-56267'
  1741  addx6123 add 0  '-5E-10'     ->  '-5E-10'
  1742  addx6124 add 0  '-5E-7'      ->  '-5E-7'
  1743  addx6125 add 0  '-5E-6'      ->  '-0.000005'
  1744  addx6126 add 0  '-5E-5'      ->  '-0.00005'
  1745  addx6127 add 0  '-5E-4'      ->  '-0.0005'
  1746  addx6128 add 0  '-5E-1'      ->  '-0.5'
  1747  addx6129 add 0  '-5E0'       ->  '-5'
  1748  addx6130 add 0  '-5E1'       ->  '-50'
  1749  addx6131 add 0  '-5E5'       ->  '-500000'
  1750  addx6132 add 0  '-5E15'      ->  '-5000000000000000'
  1751  addx6133 add 0  '-5E16'      ->  '-5.000000000000000E+16'   Rounded
  1752  addx6134 add 0  '-5E17'      ->  '-5.000000000000000E+17'   Rounded
  1753  addx6135 add 0  '-5E18'      ->  '-5.000000000000000E+18'   Rounded
  1754  addx6136 add 0  '-5E100'     ->  '-5.000000000000000E+100'  Rounded
  1755  
  1756  -- related
  1757  addx6137 add  1  '0E-19'      ->  '1.000000000000000'  Rounded
  1758  addx6138 add -1  '0E-19'      ->  '-1.000000000000000' Rounded
  1759  addx6139 add '0E-19' 1        ->  '1.000000000000000'  Rounded
  1760  addx6140 add '0E-19' -1       ->  '-1.000000000000000' Rounded
  1761  addx6141 add 1E+11   0.0000   ->  '100000000000.0000'
  1762  addx6142 add 1E+11   0.00000  ->  '100000000000.0000'  Rounded
  1763  addx6143 add 0.000   1E+12    ->  '1000000000000.000'
  1764  addx6144 add 0.0000  1E+12    ->  '1000000000000.000'  Rounded
  1765  
  1766  -- [some of the next group are really constructor tests]
  1767  addx6146 add '00.0'  0       ->  '0.0'
  1768  addx6147 add '0.00'  0       ->  '0.00'
  1769  addx6148 add  0      '0.00'  ->  '0.00'
  1770  addx6149 add  0      '00.0'  ->  '0.0'
  1771  addx6150 add '00.0'  '0.00'  ->  '0.00'
  1772  addx6151 add '0.00'  '00.0'  ->  '0.00'
  1773  addx6152 add '3'     '.3'    ->  '3.3'
  1774  addx6153 add '3.'    '.3'    ->  '3.3'
  1775  addx6154 add '3.0'   '.3'    ->  '3.3'
  1776  addx6155 add '3.00'  '.3'    ->  '3.30'
  1777  addx6156 add '3'     '3'     ->  '6'
  1778  addx6157 add '3'     '+3'    ->  '6'
  1779  addx6158 add '3'     '-3'    ->  '0'
  1780  addx6159 add '0.3'   '-0.3'  ->  '0.0'
  1781  addx6160 add '0.03'  '-0.03' ->  '0.00'
  1782  
  1783  -- try borderline precision, with carries, etc.
  1784  addx6161 add '1E+13' '-1'    -> '9999999999999'
  1785  addx6162 add '1E+13'  '1.11' -> '10000000000001.11'
  1786  addx6163 add '1.11'  '1E+13' -> '10000000000001.11'
  1787  addx6164 add '-1'    '1E+13' -> '9999999999999'
  1788  addx6165 add '7E+13' '-1'    -> '69999999999999'
  1789  addx6166 add '7E+13'  '1.11' -> '70000000000001.11'
  1790  addx6167 add '1.11'  '7E+13' -> '70000000000001.11'
  1791  addx6168 add '-1'    '7E+13' -> '69999999999999'
  1792  
  1793  --             1234567890123456      1234567890123456      1 234567890123456
  1794  addx6170 add '0.4444444444444444'  '0.5555555555555563' -> '1.000000000000001' Inexact Rounded
  1795  addx6171 add '0.4444444444444444'  '0.5555555555555562' -> '1.000000000000001' Inexact Rounded
  1796  addx6172 add '0.4444444444444444'  '0.5555555555555561' -> '1.000000000000000' Inexact Rounded
  1797  addx6173 add '0.4444444444444444'  '0.5555555555555560' -> '1.000000000000000' Inexact Rounded
  1798  addx6174 add '0.4444444444444444'  '0.5555555555555559' -> '1.000000000000000' Inexact Rounded
  1799  addx6175 add '0.4444444444444444'  '0.5555555555555558' -> '1.000000000000000' Inexact Rounded
  1800  addx6176 add '0.4444444444444444'  '0.5555555555555557' -> '1.000000000000000' Inexact Rounded
  1801  addx6177 add '0.4444444444444444'  '0.5555555555555556' -> '1.000000000000000' Rounded
  1802  addx6178 add '0.4444444444444444'  '0.5555555555555555' -> '0.9999999999999999'
  1803  addx6179 add '0.4444444444444444'  '0.5555555555555554' -> '0.9999999999999998'
  1804  addx6180 add '0.4444444444444444'  '0.5555555555555553' -> '0.9999999999999997'
  1805  addx6181 add '0.4444444444444444'  '0.5555555555555552' -> '0.9999999999999996'
  1806  addx6182 add '0.4444444444444444'  '0.5555555555555551' -> '0.9999999999999995'
  1807  addx6183 add '0.4444444444444444'  '0.5555555555555550' -> '0.9999999999999994'
  1808  
  1809  -- and some more, including residue effects and different roundings
  1810  rounding: half_up
  1811  addx6200 add '6543210123456789' 0             -> '6543210123456789'
  1812  addx6201 add '6543210123456789' 0.000000001   -> '6543210123456789' Inexact Rounded
  1813  addx6202 add '6543210123456789' 0.000001      -> '6543210123456789' Inexact Rounded
  1814  addx6203 add '6543210123456789' 0.1           -> '6543210123456789' Inexact Rounded
  1815  addx6204 add '6543210123456789' 0.4           -> '6543210123456789' Inexact Rounded
  1816  addx6205 add '6543210123456789' 0.49          -> '6543210123456789' Inexact Rounded
  1817  addx6206 add '6543210123456789' 0.499999      -> '6543210123456789' Inexact Rounded
  1818  addx6207 add '6543210123456789' 0.499999999   -> '6543210123456789' Inexact Rounded
  1819  addx6208 add '6543210123456789' 0.5           -> '6543210123456790' Inexact Rounded
  1820  addx6209 add '6543210123456789' 0.500000001   -> '6543210123456790' Inexact Rounded
  1821  addx6210 add '6543210123456789' 0.500001      -> '6543210123456790' Inexact Rounded
  1822  addx6211 add '6543210123456789' 0.51          -> '6543210123456790' Inexact Rounded
  1823  addx6212 add '6543210123456789' 0.6           -> '6543210123456790' Inexact Rounded
  1824  addx6213 add '6543210123456789' 0.9           -> '6543210123456790' Inexact Rounded
  1825  addx6214 add '6543210123456789' 0.99999       -> '6543210123456790' Inexact Rounded
  1826  addx6215 add '6543210123456789' 0.999999999   -> '6543210123456790' Inexact Rounded
  1827  addx6216 add '6543210123456789' 1             -> '6543210123456790'
  1828  addx6217 add '6543210123456789' 1.000000001   -> '6543210123456790' Inexact Rounded
  1829  addx6218 add '6543210123456789' 1.00001       -> '6543210123456790' Inexact Rounded
  1830  addx6219 add '6543210123456789' 1.1           -> '6543210123456790' Inexact Rounded
  1831  
  1832  rounding: half_even
  1833  addx6220 add '6543210123456789' 0             -> '6543210123456789'
  1834  addx6221 add '6543210123456789' 0.000000001   -> '6543210123456789' Inexact Rounded
  1835  addx6222 add '6543210123456789' 0.000001      -> '6543210123456789' Inexact Rounded
  1836  addx6223 add '6543210123456789' 0.1           -> '6543210123456789' Inexact Rounded
  1837  addx6224 add '6543210123456789' 0.4           -> '6543210123456789' Inexact Rounded
  1838  addx6225 add '6543210123456789' 0.49          -> '6543210123456789' Inexact Rounded
  1839  addx6226 add '6543210123456789' 0.499999      -> '6543210123456789' Inexact Rounded
  1840  addx6227 add '6543210123456789' 0.499999999   -> '6543210123456789' Inexact Rounded
  1841  addx6228 add '6543210123456789' 0.5           -> '6543210123456790' Inexact Rounded
  1842  addx6229 add '6543210123456789' 0.500000001   -> '6543210123456790' Inexact Rounded
  1843  addx6230 add '6543210123456789' 0.500001      -> '6543210123456790' Inexact Rounded
  1844  addx6231 add '6543210123456789' 0.51          -> '6543210123456790' Inexact Rounded
  1845  addx6232 add '6543210123456789' 0.6           -> '6543210123456790' Inexact Rounded
  1846  addx6233 add '6543210123456789' 0.9           -> '6543210123456790' Inexact Rounded
  1847  addx6234 add '6543210123456789' 0.99999       -> '6543210123456790' Inexact Rounded
  1848  addx6235 add '6543210123456789' 0.999999999   -> '6543210123456790' Inexact Rounded
  1849  addx6236 add '6543210123456789' 1             -> '6543210123456790'
  1850  addx6237 add '6543210123456789' 1.00000001    -> '6543210123456790' Inexact Rounded
  1851  addx6238 add '6543210123456789' 1.00001       -> '6543210123456790' Inexact Rounded
  1852  addx6239 add '6543210123456789' 1.1           -> '6543210123456790' Inexact Rounded
  1853  -- critical few with even bottom digit...
  1854  addx6240 add '6543210123456788' 0.499999999   -> '6543210123456788' Inexact Rounded
  1855  addx6241 add '6543210123456788' 0.5           -> '6543210123456788' Inexact Rounded
  1856  addx6242 add '6543210123456788' 0.500000001   -> '6543210123456789' Inexact Rounded
  1857  
  1858  rounding: down
  1859  addx6250 add '6543210123456789' 0             -> '6543210123456789'
  1860  addx6251 add '6543210123456789' 0.000000001   -> '6543210123456789' Inexact Rounded
  1861  addx6252 add '6543210123456789' 0.000001      -> '6543210123456789' Inexact Rounded
  1862  addx6253 add '6543210123456789' 0.1           -> '6543210123456789' Inexact Rounded
  1863  addx6254 add '6543210123456789' 0.4           -> '6543210123456789' Inexact Rounded
  1864  addx6255 add '6543210123456789' 0.49          -> '6543210123456789' Inexact Rounded
  1865  addx6256 add '6543210123456789' 0.499999      -> '6543210123456789' Inexact Rounded
  1866  addx6257 add '6543210123456789' 0.499999999   -> '6543210123456789' Inexact Rounded
  1867  addx6258 add '6543210123456789' 0.5           -> '6543210123456789' Inexact Rounded
  1868  addx6259 add '6543210123456789' 0.500000001   -> '6543210123456789' Inexact Rounded
  1869  addx6260 add '6543210123456789' 0.500001      -> '6543210123456789' Inexact Rounded
  1870  addx6261 add '6543210123456789' 0.51          -> '6543210123456789' Inexact Rounded
  1871  addx6262 add '6543210123456789' 0.6           -> '6543210123456789' Inexact Rounded
  1872  addx6263 add '6543210123456789' 0.9           -> '6543210123456789' Inexact Rounded
  1873  addx6264 add '6543210123456789' 0.99999       -> '6543210123456789' Inexact Rounded
  1874  addx6265 add '6543210123456789' 0.999999999   -> '6543210123456789' Inexact Rounded
  1875  addx6266 add '6543210123456789' 1             -> '6543210123456790'
  1876  addx6267 add '6543210123456789' 1.00000001    -> '6543210123456790' Inexact Rounded
  1877  addx6268 add '6543210123456789' 1.00001       -> '6543210123456790' Inexact Rounded
  1878  addx6269 add '6543210123456789' 1.1           -> '6543210123456790' Inexact Rounded
  1879  
  1880  -- 1 in last place tests
  1881  rounding: half_even
  1882  addx6301 add  -1   1      ->   0
  1883  addx6302 add   0   1      ->   1
  1884  addx6303 add   1   1      ->   2
  1885  addx6304 add  12   1      ->  13
  1886  addx6305 add  98   1      ->  99
  1887  addx6306 add  99   1      -> 100
  1888  addx6307 add 100   1      -> 101
  1889  addx6308 add 101   1      -> 102
  1890  addx6309 add  -1  -1      ->  -2
  1891  addx6310 add   0  -1      ->  -1
  1892  addx6311 add   1  -1      ->   0
  1893  addx6312 add  12  -1      ->  11
  1894  addx6313 add  98  -1      ->  97
  1895  addx6314 add  99  -1      ->  98
  1896  addx6315 add 100  -1      ->  99
  1897  addx6316 add 101  -1      -> 100
  1898  
  1899  addx6321 add -0.01  0.01    ->  0.00
  1900  addx6322 add  0.00  0.01    ->  0.01
  1901  addx6323 add  0.01  0.01    ->  0.02
  1902  addx6324 add  0.12  0.01    ->  0.13
  1903  addx6325 add  0.98  0.01    ->  0.99
  1904  addx6326 add  0.99  0.01    ->  1.00
  1905  addx6327 add  1.00  0.01    ->  1.01
  1906  addx6328 add  1.01  0.01    ->  1.02
  1907  addx6329 add -0.01 -0.01    -> -0.02
  1908  addx6330 add  0.00 -0.01    -> -0.01
  1909  addx6331 add  0.01 -0.01    ->  0.00
  1910  addx6332 add  0.12 -0.01    ->  0.11
  1911  addx6333 add  0.98 -0.01    ->  0.97
  1912  addx6334 add  0.99 -0.01    ->  0.98
  1913  addx6335 add  1.00 -0.01    ->  0.99
  1914  addx6336 add  1.01 -0.01    ->  1.00
  1915  
  1916  -- some more cases where adding 0 affects the coefficient
  1917  addx6340 add 1E+3    0    ->         1000
  1918  addx6341 add 1E+15   0    ->    1000000000000000
  1919  addx6342 add 1E+16   0    ->   1.000000000000000E+16  Rounded
  1920  addx6343 add 1E+17   0    ->   1.000000000000000E+17  Rounded
  1921  -- which simply follow from these cases ...
  1922  addx6344 add 1E+3    1    ->         1001
  1923  addx6345 add 1E+15   1    ->    1000000000000001
  1924  addx6346 add 1E+16   1    ->   1.000000000000000E+16  Inexact Rounded
  1925  addx6347 add 1E+17   1    ->   1.000000000000000E+17  Inexact Rounded
  1926  addx6348 add 1E+3    7    ->         1007
  1927  addx6349 add 1E+15   7    ->    1000000000000007
  1928  addx6350 add 1E+16   7    ->   1.000000000000001E+16  Inexact Rounded
  1929  addx6351 add 1E+17   7    ->   1.000000000000000E+17  Inexact Rounded
  1930  
  1931  -- tryzeros cases
  1932  addx6361  add 0E+50 10000E+1  -> 1.0000E+5
  1933  addx6362  add 10000E+1 0E-50  -> 100000.0000000000  Rounded
  1934  addx6363  add 10000E+1 10000E-50  -> 100000.0000000000  Rounded Inexact
  1935  addx6364  add 12.34    0e-398  -> 12.34000000000000  Rounded
  1936  
  1937  -- ulp replacement tests
  1938  addx6400 add   1   77e-14      ->  1.00000000000077
  1939  addx6401 add   1   77e-15      ->  1.000000000000077
  1940  addx6402 add   1   77e-16      ->  1.000000000000008 Inexact Rounded
  1941  addx6403 add   1   77e-17      ->  1.000000000000001 Inexact Rounded
  1942  addx6404 add   1   77e-18      ->  1.000000000000000 Inexact Rounded
  1943  addx6405 add   1   77e-19      ->  1.000000000000000 Inexact Rounded
  1944  addx6406 add   1   77e-99      ->  1.000000000000000 Inexact Rounded
  1945  
  1946  addx6410 add  10   77e-14      ->  10.00000000000077
  1947  addx6411 add  10   77e-15      ->  10.00000000000008 Inexact Rounded
  1948  addx6412 add  10   77e-16      ->  10.00000000000001 Inexact Rounded
  1949  addx6413 add  10   77e-17      ->  10.00000000000000 Inexact Rounded
  1950  addx6414 add  10   77e-18      ->  10.00000000000000 Inexact Rounded
  1951  addx6415 add  10   77e-19      ->  10.00000000000000 Inexact Rounded
  1952  addx6416 add  10   77e-99      ->  10.00000000000000 Inexact Rounded
  1953  
  1954  addx6420 add  77e-14       1   ->  1.00000000000077
  1955  addx6421 add  77e-15       1   ->  1.000000000000077
  1956  addx6422 add  77e-16       1   ->  1.000000000000008 Inexact Rounded
  1957  addx6423 add  77e-17       1   ->  1.000000000000001 Inexact Rounded
  1958  addx6424 add  77e-18       1   ->  1.000000000000000 Inexact Rounded
  1959  addx6425 add  77e-19       1   ->  1.000000000000000 Inexact Rounded
  1960  addx6426 add  77e-99       1   ->  1.000000000000000 Inexact Rounded
  1961  
  1962  addx6430 add  77e-14      10   ->  10.00000000000077
  1963  addx6431 add  77e-15      10   ->  10.00000000000008 Inexact Rounded
  1964  addx6432 add  77e-16      10   ->  10.00000000000001 Inexact Rounded
  1965  addx6433 add  77e-17      10   ->  10.00000000000000 Inexact Rounded
  1966  addx6434 add  77e-18      10   ->  10.00000000000000 Inexact Rounded
  1967  addx6435 add  77e-19      10   ->  10.00000000000000 Inexact Rounded
  1968  addx6436 add  77e-99      10   ->  10.00000000000000 Inexact Rounded
  1969  
  1970  -- negative ulps
  1971  addx6440 add   1   -77e-14      ->  0.99999999999923
  1972  addx6441 add   1   -77e-15      ->  0.999999999999923
  1973  addx6442 add   1   -77e-16      ->  0.9999999999999923
  1974  addx6443 add   1   -77e-17      ->  0.9999999999999992 Inexact Rounded
  1975  addx6444 add   1   -77e-18      ->  0.9999999999999999 Inexact Rounded
  1976  addx6445 add   1   -77e-19      ->  1.000000000000000 Inexact Rounded
  1977  addx6446 add   1   -77e-99      ->  1.000000000000000 Inexact Rounded
  1978  
  1979  addx6450 add  10   -77e-14      ->   9.99999999999923
  1980  addx6451 add  10   -77e-15      ->   9.999999999999923
  1981  addx6452 add  10   -77e-16      ->   9.999999999999992 Inexact Rounded
  1982  addx6453 add  10   -77e-17      ->   9.999999999999999 Inexact Rounded
  1983  addx6454 add  10   -77e-18      ->  10.00000000000000 Inexact Rounded
  1984  addx6455 add  10   -77e-19      ->  10.00000000000000 Inexact Rounded
  1985  addx6456 add  10   -77e-99      ->  10.00000000000000 Inexact Rounded
  1986  
  1987  addx6460 add  -77e-14       1   ->  0.99999999999923
  1988  addx6461 add  -77e-15       1   ->  0.999999999999923
  1989  addx6462 add  -77e-16       1   ->  0.9999999999999923
  1990  addx6463 add  -77e-17       1   ->  0.9999999999999992 Inexact Rounded
  1991  addx6464 add  -77e-18       1   ->  0.9999999999999999 Inexact Rounded
  1992  addx6465 add  -77e-19       1   ->  1.000000000000000 Inexact Rounded
  1993  addx6466 add  -77e-99       1   ->  1.000000000000000 Inexact Rounded
  1994  
  1995  addx6470 add  -77e-14      10   ->   9.99999999999923
  1996  addx6471 add  -77e-15      10   ->   9.999999999999923
  1997  addx6472 add  -77e-16      10   ->   9.999999999999992 Inexact Rounded
  1998  addx6473 add  -77e-17      10   ->   9.999999999999999 Inexact Rounded
  1999  addx6474 add  -77e-18      10   ->  10.00000000000000 Inexact Rounded
  2000  addx6475 add  -77e-19      10   ->  10.00000000000000 Inexact Rounded
  2001  addx6476 add  -77e-99      10   ->  10.00000000000000 Inexact Rounded
  2002  
  2003  -- negative ulps
  2004  addx6480 add  -1    77e-14      ->  -0.99999999999923
  2005  addx6481 add  -1    77e-15      ->  -0.999999999999923
  2006  addx6482 add  -1    77e-16      ->  -0.9999999999999923
  2007  addx6483 add  -1    77e-17      ->  -0.9999999999999992 Inexact Rounded
  2008  addx6484 add  -1    77e-18      ->  -0.9999999999999999 Inexact Rounded
  2009  addx6485 add  -1    77e-19      ->  -1.000000000000000 Inexact Rounded
  2010  addx6486 add  -1    77e-99      ->  -1.000000000000000 Inexact Rounded
  2011  
  2012  addx6490 add -10    77e-14      ->   -9.99999999999923
  2013  addx6491 add -10    77e-15      ->   -9.999999999999923
  2014  addx6492 add -10    77e-16      ->   -9.999999999999992 Inexact Rounded
  2015  addx6493 add -10    77e-17      ->   -9.999999999999999 Inexact Rounded
  2016  addx6494 add -10    77e-18      ->  -10.00000000000000 Inexact Rounded
  2017  addx6495 add -10    77e-19      ->  -10.00000000000000 Inexact Rounded
  2018  addx6496 add -10    77e-99      ->  -10.00000000000000 Inexact Rounded
  2019  
  2020  addx6500 add   77e-14      -1   ->  -0.99999999999923
  2021  addx6501 add   77e-15      -1   ->  -0.999999999999923
  2022  addx6502 add   77e-16      -1   ->  -0.9999999999999923
  2023  addx6503 add   77e-17      -1   ->  -0.9999999999999992 Inexact Rounded
  2024  addx6504 add   77e-18      -1   ->  -0.9999999999999999 Inexact Rounded
  2025  addx6505 add   77e-19      -1   ->  -1.000000000000000 Inexact Rounded
  2026  addx6506 add   77e-99      -1   ->  -1.000000000000000 Inexact Rounded
  2027  
  2028  addx6510 add   77e-14      -10  ->   -9.99999999999923
  2029  addx6511 add   77e-15      -10  ->   -9.999999999999923
  2030  addx6512 add   77e-16      -10  ->   -9.999999999999992 Inexact Rounded
  2031  addx6513 add   77e-17      -10  ->   -9.999999999999999 Inexact Rounded
  2032  addx6514 add   77e-18      -10  ->  -10.00000000000000 Inexact Rounded
  2033  addx6515 add   77e-19      -10  ->  -10.00000000000000 Inexact Rounded
  2034  addx6516 add   77e-99      -10  ->  -10.00000000000000 Inexact Rounded
  2035  
  2036  
  2037  -- long operands
  2038  addx6521 add 101234562345678000 0 -> 1.012345623456780E+17 Rounded
  2039  addx6522 add 0 101234562345678000 -> 1.012345623456780E+17 Rounded
  2040  addx6523 add 10123456234567800  0 -> 1.012345623456780E+16 Rounded
  2041  addx6524 add 0 10123456234567800  -> 1.012345623456780E+16 Rounded
  2042  addx6525 add 10123456234567890  0 -> 1.012345623456789E+16 Rounded
  2043  addx6526 add 0 10123456234567890  -> 1.012345623456789E+16 Rounded
  2044  addx6527 add 10123456234567891  0 -> 1.012345623456789E+16 Inexact Rounded
  2045  addx6528 add 0 10123456234567891  -> 1.012345623456789E+16 Inexact Rounded
  2046  addx6529 add 101234562345678901 0 -> 1.012345623456789E+17 Inexact Rounded
  2047  addx6530 add 0 101234562345678901 -> 1.012345623456789E+17 Inexact Rounded
  2048  addx6531 add 10123456234567896  0 -> 1.012345623456790E+16 Inexact Rounded
  2049  addx6532 add 0 10123456234567896  -> 1.012345623456790E+16 Inexact Rounded
  2050  
  2051  -- verify a query
  2052  rounding:     down
  2053  addx6561 add 1e-398 9.000000000000000E+384 -> 9.000000000000000E+384 Inexact Rounded
  2054  addx6562 add      0 9.000000000000000E+384 -> 9.000000000000000E+384 Rounded
  2055  -- and using decimal64 bounds...
  2056  rounding:     down
  2057  addx6563 add 1e-388 9.000000000000000E+374 -> 9.000000000000000E+374 Inexact Rounded
  2058  addx6564 add      0 9.000000000000000E+374 -> 9.000000000000000E+374 Rounded
  2059  
  2060  -- more zeros, etc.
  2061  rounding: half_even
  2062  
  2063  addx6701 add 5.00 1.00E-3 -> 5.00100
  2064  addx6702 add 00.00 0.000  -> 0.000
  2065  addx6703 add 00.00 0E-3   -> 0.000
  2066  addx6704 add 0E-3  00.00  -> 0.000
  2067  
  2068  addx6710 add 0E+3  00.00  -> 0.00
  2069  addx6711 add 0E+3  00.0   -> 0.0
  2070  addx6712 add 0E+3  00.    -> 0
  2071  addx6713 add 0E+3  00.E+1 -> 0E+1
  2072  addx6714 add 0E+3  00.E+2 -> 0E+2
  2073  addx6715 add 0E+3  00.E+3 -> 0E+3
  2074  addx6716 add 0E+3  00.E+4 -> 0E+3
  2075  addx6717 add 0E+3  00.E+5 -> 0E+3
  2076  addx6718 add 0E+3  -00.0   -> 0.0
  2077  addx6719 add 0E+3  -00.    -> 0
  2078  addx6731 add 0E+3  -00.E+1 -> 0E+1
  2079  
  2080  addx6720 add 00.00  0E+3  -> 0.00
  2081  addx6721 add 00.0   0E+3  -> 0.0
  2082  addx6722 add 00.    0E+3  -> 0
  2083  addx6723 add 00.E+1 0E+3  -> 0E+1
  2084  addx6724 add 00.E+2 0E+3  -> 0E+2
  2085  addx6725 add 00.E+3 0E+3  -> 0E+3
  2086  addx6726 add 00.E+4 0E+3  -> 0E+3
  2087  addx6727 add 00.E+5 0E+3  -> 0E+3
  2088  addx6728 add -00.00 0E+3  -> 0.00
  2089  addx6729 add -00.0  0E+3  -> 0.0
  2090  addx6730 add -00.   0E+3  -> 0
  2091  
  2092  addx6732 add  0     0     ->  0
  2093  addx6733 add  0    -0     ->  0
  2094  addx6734 add -0     0     ->  0
  2095  addx6735 add -0    -0     -> -0     -- IEEE 854 special case
  2096  
  2097  addx6736 add  1    -1     ->  0
  2098  addx6737 add -1    -1     -> -2
  2099  addx6738 add  1     1     ->  2
  2100  addx6739 add -1     1     ->  0
  2101  
  2102  addx6741 add  0    -1     -> -1
  2103  addx6742 add -0    -1     -> -1
  2104  addx6743 add  0     1     ->  1
  2105  addx6744 add -0     1     ->  1
  2106  addx6745 add -1     0     -> -1
  2107  addx6746 add -1    -0     -> -1
  2108  addx6747 add  1     0     ->  1
  2109  addx6748 add  1    -0     ->  1
  2110  
  2111  addx6751 add  0.0  -1     -> -1.0
  2112  addx6752 add -0.0  -1     -> -1.0
  2113  addx6753 add  0.0   1     ->  1.0
  2114  addx6754 add -0.0   1     ->  1.0
  2115  addx6755 add -1.0   0     -> -1.0
  2116  addx6756 add -1.0  -0     -> -1.0
  2117  addx6757 add  1.0   0     ->  1.0
  2118  addx6758 add  1.0  -0     ->  1.0
  2119  
  2120  addx6761 add  0    -1.0   -> -1.0
  2121  addx6762 add -0    -1.0   -> -1.0
  2122  addx6763 add  0     1.0   ->  1.0
  2123  addx6764 add -0     1.0   ->  1.0
  2124  addx6765 add -1     0.0   -> -1.0
  2125  addx6766 add -1    -0.0   -> -1.0
  2126  addx6767 add  1     0.0   ->  1.0
  2127  addx6768 add  1    -0.0   ->  1.0
  2128  
  2129  addx6771 add  0.0  -1.0   -> -1.0
  2130  addx6772 add -0.0  -1.0   -> -1.0
  2131  addx6773 add  0.0   1.0   ->  1.0
  2132  addx6774 add -0.0   1.0   ->  1.0
  2133  addx6775 add -1.0   0.0   -> -1.0
  2134  addx6776 add -1.0  -0.0   -> -1.0
  2135  addx6777 add  1.0   0.0   ->  1.0
  2136  addx6778 add  1.0  -0.0   ->  1.0
  2137  
  2138  -- Specials
  2139  addx6780 add -Inf  -Inf   -> -Infinity
  2140  addx6781 add -Inf  -1000  -> -Infinity
  2141  addx6782 add -Inf  -1     -> -Infinity
  2142  addx6783 add -Inf  -0     -> -Infinity
  2143  addx6784 add -Inf   0     -> -Infinity
  2144  addx6785 add -Inf   1     -> -Infinity
  2145  addx6786 add -Inf   1000  -> -Infinity
  2146  addx6787 add -1000 -Inf   -> -Infinity
  2147  addx6788 add -Inf  -Inf   -> -Infinity
  2148  addx6789 add -1    -Inf   -> -Infinity
  2149  addx6790 add -0    -Inf   -> -Infinity
  2150  addx6791 add  0    -Inf   -> -Infinity
  2151  addx6792 add  1    -Inf   -> -Infinity
  2152  addx6793 add  1000 -Inf   -> -Infinity
  2153  addx6794 add  Inf  -Inf   ->  NaN  Invalid_operation
  2154  
  2155  addx6800 add  Inf  -Inf   ->  NaN  Invalid_operation
  2156  addx6801 add  Inf  -1000  ->  Infinity
  2157  addx6802 add  Inf  -1     ->  Infinity
  2158  addx6803 add  Inf  -0     ->  Infinity
  2159  addx6804 add  Inf   0     ->  Infinity
  2160  addx6805 add  Inf   1     ->  Infinity
  2161  addx6806 add  Inf   1000  ->  Infinity
  2162  addx6807 add  Inf   Inf   ->  Infinity
  2163  addx6808 add -1000  Inf   ->  Infinity
  2164  addx6809 add -Inf   Inf   ->  NaN  Invalid_operation
  2165  addx6810 add -1     Inf   ->  Infinity
  2166  addx6811 add -0     Inf   ->  Infinity
  2167  addx6812 add  0     Inf   ->  Infinity
  2168  addx6813 add  1     Inf   ->  Infinity
  2169  addx6814 add  1000  Inf   ->  Infinity
  2170  addx6815 add  Inf   Inf   ->  Infinity
  2171  
  2172  addx6821 add  NaN -Inf    ->  NaN
  2173  addx6822 add  NaN -1000   ->  NaN
  2174  addx6823 add  NaN -1      ->  NaN
  2175  addx6824 add  NaN -0      ->  NaN
  2176  addx6825 add  NaN  0      ->  NaN
  2177  addx6826 add  NaN  1      ->  NaN
  2178  addx6827 add  NaN  1000   ->  NaN
  2179  addx6828 add  NaN  Inf    ->  NaN
  2180  addx6829 add  NaN  NaN    ->  NaN
  2181  addx6830 add -Inf  NaN    ->  NaN
  2182  addx6831 add -1000 NaN    ->  NaN
  2183  addx6832 add -1    NaN    ->  NaN
  2184  addx6833 add -0    NaN    ->  NaN
  2185  addx6834 add  0    NaN    ->  NaN
  2186  addx6835 add  1    NaN    ->  NaN
  2187  addx6836 add  1000 NaN    ->  NaN
  2188  addx6837 add  Inf  NaN    ->  NaN
  2189  
  2190  addx6841 add  sNaN -Inf   ->  NaN  Invalid_operation
  2191  addx6842 add  sNaN -1000  ->  NaN  Invalid_operation
  2192  addx6843 add  sNaN -1     ->  NaN  Invalid_operation
  2193  addx6844 add  sNaN -0     ->  NaN  Invalid_operation
  2194  addx6845 add  sNaN  0     ->  NaN  Invalid_operation
  2195  addx6846 add  sNaN  1     ->  NaN  Invalid_operation
  2196  addx6847 add  sNaN  1000  ->  NaN  Invalid_operation
  2197  addx6848 add  sNaN  NaN   ->  NaN  Invalid_operation
  2198  addx6849 add  sNaN sNaN   ->  NaN  Invalid_operation
  2199  addx6850 add  NaN  sNaN   ->  NaN  Invalid_operation
  2200  addx6851 add -Inf  sNaN   ->  NaN  Invalid_operation
  2201  addx6852 add -1000 sNaN   ->  NaN  Invalid_operation
  2202  addx6853 add -1    sNaN   ->  NaN  Invalid_operation
  2203  addx6854 add -0    sNaN   ->  NaN  Invalid_operation
  2204  addx6855 add  0    sNaN   ->  NaN  Invalid_operation
  2205  addx6856 add  1    sNaN   ->  NaN  Invalid_operation
  2206  addx6857 add  1000 sNaN   ->  NaN  Invalid_operation
  2207  addx6858 add  Inf  sNaN   ->  NaN  Invalid_operation
  2208  addx6859 add  NaN  sNaN   ->  NaN  Invalid_operation
  2209  
  2210  -- propagating NaNs
  2211  addx6861 add  NaN1   -Inf    ->  NaN1
  2212  addx6862 add +NaN2   -1000   ->  NaN2
  2213  addx6863 add  NaN3    1000   ->  NaN3
  2214  addx6864 add  NaN4    Inf    ->  NaN4
  2215  addx6865 add  NaN5   +NaN6   ->  NaN5
  2216  addx6866 add -Inf     NaN7   ->  NaN7
  2217  addx6867 add -1000    NaN8   ->  NaN8
  2218  addx6868 add  1000    NaN9   ->  NaN9
  2219  addx6869 add  Inf    +NaN10  ->  NaN10
  2220  addx6871 add  sNaN11  -Inf   ->  NaN11  Invalid_operation
  2221  addx6872 add  sNaN12  -1000  ->  NaN12  Invalid_operation
  2222  addx6873 add  sNaN13   1000  ->  NaN13  Invalid_operation
  2223  addx6874 add  sNaN14   NaN17 ->  NaN14  Invalid_operation
  2224  addx6875 add  sNaN15  sNaN18 ->  NaN15  Invalid_operation
  2225  addx6876 add  NaN16   sNaN19 ->  NaN19  Invalid_operation
  2226  addx6877 add -Inf    +sNaN20 ->  NaN20  Invalid_operation
  2227  addx6878 add -1000    sNaN21 ->  NaN21  Invalid_operation
  2228  addx6879 add  1000    sNaN22 ->  NaN22  Invalid_operation
  2229  addx6880 add  Inf     sNaN23 ->  NaN23  Invalid_operation
  2230  addx6881 add +NaN25  +sNaN24 ->  NaN24  Invalid_operation
  2231  addx6882 add -NaN26    NaN28 -> -NaN26
  2232  addx6883 add -sNaN27  sNaN29 -> -NaN27  Invalid_operation
  2233  addx6884 add  1000    -NaN30 -> -NaN30
  2234  addx6885 add  1000   -sNaN31 -> -NaN31  Invalid_operation
  2235  
  2236  -- now the case where we can get underflow but the result is normal
  2237  -- [note this can't happen if the operands are also bounded, as we
  2238  -- cannot represent 1E-399, for example]
  2239  
  2240  addx6571 add       1E-383       0  -> 1E-383
  2241  addx6572 add       1E-384       0  -> 1E-384   Subnormal
  2242  addx6573 add       1E-383  1E-384  -> 1.1E-383
  2243  addx6574 subtract  1E-383  1E-384  ->   9E-384 Subnormal
  2244  
  2245  -- Here we explore the boundary of rounding a subnormal to Nmin
  2246  addx6575 subtract  1E-383  1E-398  ->   9.99999999999999E-384  Subnormal
  2247  addx6576 subtract  1E-383  1E-398  ->   9.99999999999999E-384  Subnormal
  2248  addx6577 subtract  1E-383  1E-399  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded
  2249  addx6578 subtract  1E-383  1E-400  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded
  2250  addx6579 subtract  1E-383  1E-401  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded
  2251  addx6580 subtract  1E-383  1E-402  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded
  2252  
  2253  -- check overflow edge case
  2254  --               1234567890123456
  2255  addx6972 apply   9.999999999999999E+384         -> 9.999999999999999E+384
  2256  addx6973 add     9.999999999999999E+384  1      -> 9.999999999999999E+384 Inexact Rounded
  2257  addx6974 add      9999999999999999E+369  1      -> 9.999999999999999E+384 Inexact Rounded
  2258  addx6975 add      9999999999999999E+369  1E+369  -> Infinity Overflow Inexact Rounded
  2259  addx6976 add      9999999999999999E+369  9E+368  -> Infinity Overflow Inexact Rounded
  2260  addx6977 add      9999999999999999E+369  8E+368  -> Infinity Overflow Inexact Rounded
  2261  addx6978 add      9999999999999999E+369  7E+368  -> Infinity Overflow Inexact Rounded
  2262  addx6979 add      9999999999999999E+369  6E+368  -> Infinity Overflow Inexact Rounded
  2263  addx6980 add      9999999999999999E+369  5E+368  -> Infinity Overflow Inexact Rounded
  2264  addx6981 add      9999999999999999E+369  4E+368  -> 9.999999999999999E+384 Inexact Rounded
  2265  addx6982 add      9999999999999999E+369  3E+368  -> 9.999999999999999E+384 Inexact Rounded
  2266  addx6983 add      9999999999999999E+369  2E+368  -> 9.999999999999999E+384 Inexact Rounded
  2267  addx6984 add      9999999999999999E+369  1E+368  -> 9.999999999999999E+384 Inexact Rounded
  2268  
  2269  addx6985 apply  -9.999999999999999E+384         -> -9.999999999999999E+384
  2270  addx6986 add    -9.999999999999999E+384 -1      -> -9.999999999999999E+384 Inexact Rounded
  2271  addx6987 add     -9999999999999999E+369 -1      -> -9.999999999999999E+384 Inexact Rounded
  2272  addx6988 add     -9999999999999999E+369 -1E+369  -> -Infinity Overflow Inexact Rounded
  2273  addx6989 add     -9999999999999999E+369 -9E+368  -> -Infinity Overflow Inexact Rounded
  2274  addx6990 add     -9999999999999999E+369 -8E+368  -> -Infinity Overflow Inexact Rounded
  2275  addx6991 add     -9999999999999999E+369 -7E+368  -> -Infinity Overflow Inexact Rounded
  2276  addx6992 add     -9999999999999999E+369 -6E+368  -> -Infinity Overflow Inexact Rounded
  2277  addx6993 add     -9999999999999999E+369 -5E+368  -> -Infinity Overflow Inexact Rounded
  2278  addx6994 add     -9999999999999999E+369 -4E+368  -> -9.999999999999999E+384 Inexact Rounded
  2279  addx6995 add     -9999999999999999E+369 -3E+368  -> -9.999999999999999E+384 Inexact Rounded
  2280  addx6996 add     -9999999999999999E+369 -2E+368  -> -9.999999999999999E+384 Inexact Rounded
  2281  addx6997 add     -9999999999999999E+369 -1E+368  -> -9.999999999999999E+384 Inexact Rounded
  2282  
  2283  -- And for round down full and subnormal results
  2284  rounding:     down
  2285  addx61100 add 1e+2 -1e-383    -> 99.99999999999999 Rounded Inexact
  2286  addx61101 add 1e+1 -1e-383    -> 9.999999999999999  Rounded Inexact
  2287  addx61103 add   +1 -1e-383    -> 0.9999999999999999  Rounded Inexact
  2288  addx61104 add 1e-1 -1e-383    -> 0.09999999999999999  Rounded Inexact
  2289  addx61105 add 1e-2 -1e-383    -> 0.009999999999999999  Rounded Inexact
  2290  addx61106 add 1e-3 -1e-383    -> 0.0009999999999999999  Rounded Inexact
  2291  addx61107 add 1e-4 -1e-383    -> 0.00009999999999999999  Rounded Inexact
  2292  addx61108 add 1e-5 -1e-383    -> 0.000009999999999999999  Rounded Inexact
  2293  addx61109 add 1e-6 -1e-383    -> 9.999999999999999E-7  Rounded Inexact
  2294  
  2295  rounding:     ceiling
  2296  addx61110 add -1e+2 +1e-383   -> -99.99999999999999 Rounded Inexact
  2297  addx61111 add -1e+1 +1e-383   -> -9.999999999999999  Rounded Inexact
  2298  addx61113 add    -1 +1e-383   -> -0.9999999999999999  Rounded Inexact
  2299  addx61114 add -1e-1 +1e-383   -> -0.09999999999999999  Rounded Inexact
  2300  addx61115 add -1e-2 +1e-383   -> -0.009999999999999999  Rounded Inexact
  2301  addx61116 add -1e-3 +1e-383   -> -0.0009999999999999999  Rounded Inexact
  2302  addx61117 add -1e-4 +1e-383   -> -0.00009999999999999999  Rounded Inexact
  2303  addx61118 add -1e-5 +1e-383   -> -0.000009999999999999999  Rounded Inexact
  2304  addx61119 add -1e-6 +1e-383   -> -9.999999999999999E-7  Rounded Inexact
  2305  
  2306  -- tests based on Gunnar Degnbol's edge case
  2307  rounding:     half_even
  2308  
  2309  addx61300 add 1E16  -0.5                 ->  1.000000000000000E+16 Inexact Rounded
  2310  addx61310 add 1E16  -0.51                ->  9999999999999999      Inexact Rounded
  2311  addx61311 add 1E16  -0.501               ->  9999999999999999      Inexact Rounded
  2312  addx61312 add 1E16  -0.5001              ->  9999999999999999      Inexact Rounded
  2313  addx61313 add 1E16  -0.50001             ->  9999999999999999      Inexact Rounded
  2314  addx61314 add 1E16  -0.500001            ->  9999999999999999      Inexact Rounded
  2315  addx61315 add 1E16  -0.5000001           ->  9999999999999999      Inexact Rounded
  2316  addx61316 add 1E16  -0.50000001          ->  9999999999999999      Inexact Rounded
  2317  addx61317 add 1E16  -0.500000001         ->  9999999999999999      Inexact Rounded
  2318  addx61318 add 1E16  -0.5000000001        ->  9999999999999999      Inexact Rounded
  2319  addx61319 add 1E16  -0.50000000001       ->  9999999999999999      Inexact Rounded
  2320  addx61320 add 1E16  -0.500000000001      ->  9999999999999999      Inexact Rounded
  2321  addx61321 add 1E16  -0.5000000000001     ->  9999999999999999      Inexact Rounded
  2322  addx61322 add 1E16  -0.50000000000001    ->  9999999999999999      Inexact Rounded
  2323  addx61323 add 1E16  -0.500000000000001   ->  9999999999999999      Inexact Rounded
  2324  addx61324 add 1E16  -0.5000000000000001  ->  9999999999999999      Inexact Rounded
  2325  addx61325 add 1E16  -0.5000000000000000  ->  1.000000000000000E+16 Inexact Rounded
  2326  addx61326 add 1E16  -0.500000000000000   ->  1.000000000000000E+16 Inexact Rounded
  2327  addx61327 add 1E16  -0.50000000000000    ->  1.000000000000000E+16 Inexact Rounded
  2328  addx61328 add 1E16  -0.5000000000000     ->  1.000000000000000E+16 Inexact Rounded
  2329  addx61329 add 1E16  -0.500000000000      ->  1.000000000000000E+16 Inexact Rounded
  2330  addx61330 add 1E16  -0.50000000000       ->  1.000000000000000E+16 Inexact Rounded
  2331  addx61331 add 1E16  -0.5000000000        ->  1.000000000000000E+16 Inexact Rounded
  2332  addx61332 add 1E16  -0.500000000         ->  1.000000000000000E+16 Inexact Rounded
  2333  addx61333 add 1E16  -0.50000000          ->  1.000000000000000E+16 Inexact Rounded
  2334  addx61334 add 1E16  -0.5000000           ->  1.000000000000000E+16 Inexact Rounded
  2335  addx61335 add 1E16  -0.500000            ->  1.000000000000000E+16 Inexact Rounded
  2336  addx61336 add 1E16  -0.50000             ->  1.000000000000000E+16 Inexact Rounded
  2337  addx61337 add 1E16  -0.5000              ->  1.000000000000000E+16 Inexact Rounded
  2338  addx61338 add 1E16  -0.500               ->  1.000000000000000E+16 Inexact Rounded
  2339  addx61339 add 1E16  -0.50                ->  1.000000000000000E+16 Inexact Rounded
  2340  
  2341  addx61340 add 1E16  -5000000.000010001   ->  9999999995000000      Inexact Rounded
  2342  addx61341 add 1E16  -5000000.000000001   ->  9999999995000000      Inexact Rounded
  2343  
  2344  addx61349 add 9999999999999999 0.4                 ->  9999999999999999      Inexact Rounded
  2345  addx61350 add 9999999999999999 0.49                ->  9999999999999999      Inexact Rounded
  2346  addx61351 add 9999999999999999 0.499               ->  9999999999999999      Inexact Rounded
  2347  addx61352 add 9999999999999999 0.4999              ->  9999999999999999      Inexact Rounded
  2348  addx61353 add 9999999999999999 0.49999             ->  9999999999999999      Inexact Rounded
  2349  addx61354 add 9999999999999999 0.499999            ->  9999999999999999      Inexact Rounded
  2350  addx61355 add 9999999999999999 0.4999999           ->  9999999999999999      Inexact Rounded
  2351  addx61356 add 9999999999999999 0.49999999          ->  9999999999999999      Inexact Rounded
  2352  addx61357 add 9999999999999999 0.499999999         ->  9999999999999999      Inexact Rounded
  2353  addx61358 add 9999999999999999 0.4999999999        ->  9999999999999999      Inexact Rounded
  2354  addx61359 add 9999999999999999 0.49999999999       ->  9999999999999999      Inexact Rounded
  2355  addx61360 add 9999999999999999 0.499999999999      ->  9999999999999999      Inexact Rounded
  2356  addx61361 add 9999999999999999 0.4999999999999     ->  9999999999999999      Inexact Rounded
  2357  addx61362 add 9999999999999999 0.49999999999999    ->  9999999999999999      Inexact Rounded
  2358  addx61363 add 9999999999999999 0.499999999999999   ->  9999999999999999      Inexact Rounded
  2359  addx61364 add 9999999999999999 0.4999999999999999  ->  9999999999999999      Inexact Rounded
  2360  addx61365 add 9999999999999999 0.5000000000000000  ->  1.000000000000000E+16 Inexact Rounded
  2361  addx61367 add 9999999999999999 0.500000000000000   ->  1.000000000000000E+16 Inexact Rounded
  2362  addx61368 add 9999999999999999 0.50000000000000    ->  1.000000000000000E+16 Inexact Rounded
  2363  addx61369 add 9999999999999999 0.5000000000000     ->  1.000000000000000E+16 Inexact Rounded
  2364  addx61370 add 9999999999999999 0.500000000000      ->  1.000000000000000E+16 Inexact Rounded
  2365  addx61371 add 9999999999999999 0.50000000000       ->  1.000000000000000E+16 Inexact Rounded
  2366  addx61372 add 9999999999999999 0.5000000000        ->  1.000000000000000E+16 Inexact Rounded
  2367  addx61373 add 9999999999999999 0.500000000         ->  1.000000000000000E+16 Inexact Rounded
  2368  addx61374 add 9999999999999999 0.50000000          ->  1.000000000000000E+16 Inexact Rounded
  2369  addx61375 add 9999999999999999 0.5000000           ->  1.000000000000000E+16 Inexact Rounded
  2370  addx61376 add 9999999999999999 0.500000            ->  1.000000000000000E+16 Inexact Rounded
  2371  addx61377 add 9999999999999999 0.50000             ->  1.000000000000000E+16 Inexact Rounded
  2372  addx61378 add 9999999999999999 0.5000              ->  1.000000000000000E+16 Inexact Rounded
  2373  addx61379 add 9999999999999999 0.500               ->  1.000000000000000E+16 Inexact Rounded
  2374  addx61380 add 9999999999999999 0.50                ->  1.000000000000000E+16 Inexact Rounded
  2375  addx61381 add 9999999999999999 0.5                 ->  1.000000000000000E+16 Inexact Rounded
  2376  addx61382 add 9999999999999999 0.5000000000000001  ->  1.000000000000000E+16 Inexact Rounded
  2377  addx61383 add 9999999999999999 0.500000000000001   ->  1.000000000000000E+16 Inexact Rounded
  2378  addx61384 add 9999999999999999 0.50000000000001    ->  1.000000000000000E+16 Inexact Rounded
  2379  addx61385 add 9999999999999999 0.5000000000001     ->  1.000000000000000E+16 Inexact Rounded
  2380  addx61386 add 9999999999999999 0.500000000001      ->  1.000000000000000E+16 Inexact Rounded
  2381  addx61387 add 9999999999999999 0.50000000001       ->  1.000000000000000E+16 Inexact Rounded
  2382  addx61388 add 9999999999999999 0.5000000001        ->  1.000000000000000E+16 Inexact Rounded
  2383  addx61389 add 9999999999999999 0.500000001         ->  1.000000000000000E+16 Inexact Rounded
  2384  addx61390 add 9999999999999999 0.50000001          ->  1.000000000000000E+16 Inexact Rounded
  2385  addx61391 add 9999999999999999 0.5000001           ->  1.000000000000000E+16 Inexact Rounded
  2386  addx61392 add 9999999999999999 0.500001            ->  1.000000000000000E+16 Inexact Rounded
  2387  addx61393 add 9999999999999999 0.50001             ->  1.000000000000000E+16 Inexact Rounded
  2388  addx61394 add 9999999999999999 0.5001              ->  1.000000000000000E+16 Inexact Rounded
  2389  addx61395 add 9999999999999999 0.501               ->  1.000000000000000E+16 Inexact Rounded
  2390  addx61396 add 9999999999999999 0.51                ->  1.000000000000000E+16 Inexact Rounded
  2391  
  2392  -- More GD edge cases, where difference between the unadjusted
  2393  -- exponents is larger than the maximum precision and one side is 0
  2394  addx61420 add  0 1.123456789012345     -> 1.123456789012345
  2395  addx61421 add  0 1.123456789012345E-1  -> 0.1123456789012345
  2396  addx61422 add  0 1.123456789012345E-2  -> 0.01123456789012345
  2397  addx61423 add  0 1.123456789012345E-3  -> 0.001123456789012345
  2398  addx61424 add  0 1.123456789012345E-4  -> 0.0001123456789012345
  2399  addx61425 add  0 1.123456789012345E-5  -> 0.00001123456789012345
  2400  addx61426 add  0 1.123456789012345E-6  -> 0.000001123456789012345
  2401  addx61427 add  0 1.123456789012345E-7  -> 1.123456789012345E-7
  2402  addx61428 add  0 1.123456789012345E-8  -> 1.123456789012345E-8
  2403  addx61429 add  0 1.123456789012345E-9  -> 1.123456789012345E-9
  2404  addx61430 add  0 1.123456789012345E-10 -> 1.123456789012345E-10
  2405  addx61431 add  0 1.123456789012345E-11 -> 1.123456789012345E-11
  2406  addx61432 add  0 1.123456789012345E-12 -> 1.123456789012345E-12
  2407  addx61433 add  0 1.123456789012345E-13 -> 1.123456789012345E-13
  2408  addx61434 add  0 1.123456789012345E-14 -> 1.123456789012345E-14
  2409  addx61435 add  0 1.123456789012345E-15 -> 1.123456789012345E-15
  2410  addx61436 add  0 1.123456789012345E-16 -> 1.123456789012345E-16
  2411  addx61437 add  0 1.123456789012345E-17 -> 1.123456789012345E-17
  2412  addx61438 add  0 1.123456789012345E-18 -> 1.123456789012345E-18
  2413  addx61439 add  0 1.123456789012345E-19 -> 1.123456789012345E-19
  2414  
  2415  -- same, reversed 0
  2416  addx61440 add 1.123456789012345     0 -> 1.123456789012345
  2417  addx61441 add 1.123456789012345E-1  0 -> 0.1123456789012345
  2418  addx61442 add 1.123456789012345E-2  0 -> 0.01123456789012345
  2419  addx61443 add 1.123456789012345E-3  0 -> 0.001123456789012345
  2420  addx61444 add 1.123456789012345E-4  0 -> 0.0001123456789012345
  2421  addx61445 add 1.123456789012345E-5  0 -> 0.00001123456789012345
  2422  addx61446 add 1.123456789012345E-6  0 -> 0.000001123456789012345
  2423  addx61447 add 1.123456789012345E-7  0 -> 1.123456789012345E-7
  2424  addx61448 add 1.123456789012345E-8  0 -> 1.123456789012345E-8
  2425  addx61449 add 1.123456789012345E-9  0 -> 1.123456789012345E-9
  2426  addx61450 add 1.123456789012345E-10 0 -> 1.123456789012345E-10
  2427  addx61451 add 1.123456789012345E-11 0 -> 1.123456789012345E-11
  2428  addx61452 add 1.123456789012345E-12 0 -> 1.123456789012345E-12
  2429  addx61453 add 1.123456789012345E-13 0 -> 1.123456789012345E-13
  2430  addx61454 add 1.123456789012345E-14 0 -> 1.123456789012345E-14
  2431  addx61455 add 1.123456789012345E-15 0 -> 1.123456789012345E-15
  2432  addx61456 add 1.123456789012345E-16 0 -> 1.123456789012345E-16
  2433  addx61457 add 1.123456789012345E-17 0 -> 1.123456789012345E-17
  2434  addx61458 add 1.123456789012345E-18 0 -> 1.123456789012345E-18
  2435  addx61459 add 1.123456789012345E-19 0 -> 1.123456789012345E-19
  2436  
  2437  -- same, Es on the 0
  2438  addx61460 add 1.123456789012345  0E-0   -> 1.123456789012345
  2439  addx61461 add 1.123456789012345  0E-1   -> 1.123456789012345
  2440  addx61462 add 1.123456789012345  0E-2   -> 1.123456789012345
  2441  addx61463 add 1.123456789012345  0E-3   -> 1.123456789012345
  2442  addx61464 add 1.123456789012345  0E-4   -> 1.123456789012345
  2443  addx61465 add 1.123456789012345  0E-5   -> 1.123456789012345
  2444  addx61466 add 1.123456789012345  0E-6   -> 1.123456789012345
  2445  addx61467 add 1.123456789012345  0E-7   -> 1.123456789012345
  2446  addx61468 add 1.123456789012345  0E-8   -> 1.123456789012345
  2447  addx61469 add 1.123456789012345  0E-9   -> 1.123456789012345
  2448  addx61470 add 1.123456789012345  0E-10  -> 1.123456789012345
  2449  addx61471 add 1.123456789012345  0E-11  -> 1.123456789012345
  2450  addx61472 add 1.123456789012345  0E-12  -> 1.123456789012345
  2451  addx61473 add 1.123456789012345  0E-13  -> 1.123456789012345
  2452  addx61474 add 1.123456789012345  0E-14  -> 1.123456789012345
  2453  addx61475 add 1.123456789012345  0E-15  -> 1.123456789012345
  2454  -- next four flag Rounded because the 0 extends the result
  2455  addx61476 add 1.123456789012345  0E-16  -> 1.123456789012345 Rounded
  2456  addx61477 add 1.123456789012345  0E-17  -> 1.123456789012345 Rounded
  2457  addx61478 add 1.123456789012345  0E-18  -> 1.123456789012345 Rounded
  2458  addx61479 add 1.123456789012345  0E-19  -> 1.123456789012345 Rounded
  2459  
  2460  -- sum of two opposite-sign operands is exactly 0 and floor => -0
  2461  rounding:    half_up
  2462  -- exact zeros from zeros
  2463  addx61500 add  0        0E-19  ->  0E-19
  2464  addx61501 add -0        0E-19  ->  0E-19
  2465  addx61502 add  0       -0E-19  ->  0E-19
  2466  addx61503 add -0       -0E-19  -> -0E-19
  2467  addx61504 add  0E-400   0E-19  ->  0E-398 Clamped
  2468  addx61505 add -0E-400   0E-19  ->  0E-398 Clamped
  2469  addx61506 add  0E-400  -0E-19  ->  0E-398 Clamped
  2470  addx61507 add -0E-400  -0E-19  -> -0E-398 Clamped
  2471  -- inexact zeros
  2472  addx61511 add  1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  2473  addx61512 add -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  2474  addx61513 add  1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  2475  addx61514 add -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  2476  -- some exact zeros from non-zeros
  2477  addx61515 add  1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  2478  addx61516 add -1E-401   1E-401 ->  0E-398 Clamped
  2479  addx61517 add  1E-401  -1E-401 ->  0E-398 Clamped
  2480  addx61518 add -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  2481  
  2482  rounding:    half_down
  2483  -- exact zeros from zeros
  2484  addx61520 add  0        0E-19  ->  0E-19
  2485  addx61521 add -0        0E-19  ->  0E-19
  2486  addx61522 add  0       -0E-19  ->  0E-19
  2487  addx61523 add -0       -0E-19  -> -0E-19
  2488  addx61524 add  0E-400   0E-19  ->  0E-398 Clamped
  2489  addx61525 add -0E-400   0E-19  ->  0E-398 Clamped
  2490  addx61526 add  0E-400  -0E-19  ->  0E-398 Clamped
  2491  addx61527 add -0E-400  -0E-19  -> -0E-398 Clamped
  2492  -- inexact zeros
  2493  addx61531 add  1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  2494  addx61532 add -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  2495  addx61533 add  1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  2496  addx61534 add -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  2497  -- some exact zeros from non-zeros
  2498  addx61535 add  1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  2499  addx61536 add -1E-401   1E-401 ->  0E-398 Clamped
  2500  addx61537 add  1E-401  -1E-401 ->  0E-398 Clamped
  2501  addx61538 add -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  2502  
  2503  rounding:    half_even
  2504  -- exact zeros from zeros
  2505  addx61540 add  0        0E-19  ->  0E-19
  2506  addx61541 add -0        0E-19  ->  0E-19
  2507  addx61542 add  0       -0E-19  ->  0E-19
  2508  addx61543 add -0       -0E-19  -> -0E-19
  2509  addx61544 add  0E-400   0E-19  ->  0E-398 Clamped
  2510  addx61545 add -0E-400   0E-19  ->  0E-398 Clamped
  2511  addx61546 add  0E-400  -0E-19  ->  0E-398 Clamped
  2512  addx61547 add -0E-400  -0E-19  -> -0E-398 Clamped
  2513  -- inexact zeros
  2514  addx61551 add  1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  2515  addx61552 add -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  2516  addx61553 add  1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  2517  addx61554 add -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  2518  -- some exact zeros from non-zeros
  2519  addx61555 add  1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  2520  addx61556 add -1E-401   1E-401 ->  0E-398 Clamped
  2521  addx61557 add  1E-401  -1E-401 ->  0E-398 Clamped
  2522  addx61558 add -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  2523  
  2524  rounding:    up
  2525  -- exact zeros from zeros
  2526  addx61560 add  0        0E-19  ->  0E-19
  2527  addx61561 add -0        0E-19  ->  0E-19
  2528  addx61562 add  0       -0E-19  ->  0E-19
  2529  addx61563 add -0       -0E-19  -> -0E-19
  2530  addx61564 add  0E-400   0E-19  ->  0E-398 Clamped
  2531  addx61565 add -0E-400   0E-19  ->  0E-398 Clamped
  2532  addx61566 add  0E-400  -0E-19  ->  0E-398 Clamped
  2533  addx61567 add -0E-400  -0E-19  -> -0E-398 Clamped
  2534  -- inexact zeros
  2535  addx61571 add  1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
  2536  addx61572 add -1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
  2537  addx61573 add  1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
  2538  addx61574 add -1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
  2539  -- some exact zeros from non-zeros
  2540  addx61575 add  1E-401   1E-401 ->  1E-398 Subnormal Inexact Rounded Underflow
  2541  addx61576 add -1E-401   1E-401 ->  0E-398 Clamped
  2542  addx61577 add  1E-401  -1E-401 ->  0E-398 Clamped
  2543  addx61578 add -1E-401  -1E-401 -> -1E-398 Subnormal Inexact Rounded Underflow
  2544  
  2545  rounding:    down
  2546  -- exact zeros from zeros
  2547  addx61580 add  0        0E-19  ->  0E-19
  2548  addx61581 add -0        0E-19  ->  0E-19
  2549  addx61582 add  0       -0E-19  ->  0E-19
  2550  addx61583 add -0       -0E-19  -> -0E-19
  2551  addx61584 add  0E-400   0E-19  ->  0E-398 Clamped
  2552  addx61585 add -0E-400   0E-19  ->  0E-398 Clamped
  2553  addx61586 add  0E-400  -0E-19  ->  0E-398 Clamped
  2554  addx61587 add -0E-400  -0E-19  -> -0E-398 Clamped
  2555  -- inexact zeros
  2556  addx61591 add  1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  2557  addx61592 add -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  2558  addx61593 add  1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  2559  addx61594 add -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  2560  -- some exact zeros from non-zeros
  2561  addx61595 add  1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  2562  addx61596 add -1E-401   1E-401 ->  0E-398 Clamped
  2563  addx61597 add  1E-401  -1E-401 ->  0E-398 Clamped
  2564  addx61598 add -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  2565  
  2566  rounding:    ceiling
  2567  -- exact zeros from zeros
  2568  addx61600 add  0        0E-19  ->  0E-19
  2569  addx61601 add -0        0E-19  ->  0E-19
  2570  addx61602 add  0       -0E-19  ->  0E-19
  2571  addx61603 add -0       -0E-19  -> -0E-19
  2572  addx61604 add  0E-400   0E-19  ->  0E-398 Clamped
  2573  addx61605 add -0E-400   0E-19  ->  0E-398 Clamped
  2574  addx61606 add  0E-400  -0E-19  ->  0E-398 Clamped
  2575  addx61607 add -0E-400  -0E-19  -> -0E-398 Clamped
  2576  -- inexact zeros
  2577  addx61611 add  1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
  2578  addx61612 add -1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
  2579  addx61613 add  1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  2580  addx61614 add -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  2581  -- some exact zeros from non-zeros
  2582  addx61615 add  1E-401   1E-401 ->  1E-398 Subnormal Inexact Rounded Underflow
  2583  addx61616 add -1E-401   1E-401 ->  0E-398 Clamped
  2584  addx61617 add  1E-401  -1E-401 ->  0E-398 Clamped
  2585  addx61618 add -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
  2586  
  2587  -- and the extra-special ugly case; unusual minuses marked by -- *
  2588  rounding:    floor
  2589  -- exact zeros from zeros
  2590  addx61620 add  0        0E-19  ->  0E-19
  2591  addx61621 add -0        0E-19  -> -0E-19           -- *
  2592  addx61622 add  0       -0E-19  -> -0E-19           -- *
  2593  addx61623 add -0       -0E-19  -> -0E-19
  2594  addx61624 add  0E-400   0E-19  ->  0E-398 Clamped
  2595  addx61625 add -0E-400   0E-19  -> -0E-398 Clamped  -- *
  2596  addx61626 add  0E-400  -0E-19  -> -0E-398 Clamped  -- *
  2597  addx61627 add -0E-400  -0E-19  -> -0E-398 Clamped
  2598  -- inexact zeros
  2599  addx61631 add  1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  2600  addx61632 add -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  2601  addx61633 add  1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
  2602  addx61634 add -1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
  2603  -- some exact zeros from non-zeros
  2604  addx61635 add  1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
  2605  addx61636 add -1E-401   1E-401 -> -0E-398 Clamped  -- *
  2606  addx61637 add  1E-401  -1E-401 -> -0E-398 Clamped  -- *
  2607  addx61638 add -1E-401  -1E-401 -> -1E-398 Subnormal Inexact Rounded Underflow
  2608  
  2609  -- Examples from SQL proposal (Krishna Kulkarni)
  2610  addx61701 add 130E-2    120E-2    -> 2.50
  2611  addx61702 add 130E-2    12E-1     -> 2.50
  2612  addx61703 add 130E-2    1E0       -> 2.30
  2613  addx61704 add 1E2       1E4       -> 1.01E+4
  2614  addx61705 subtract 130E-2  120E-2 -> 0.10
  2615  addx61706 subtract 130E-2  12E-1  -> 0.10
  2616  addx61707 subtract 130E-2  1E0    -> 0.30
  2617  addx61708 subtract 1E2     1E4    -> -9.9E+3
  2618  
  2619  -- Gappy coefficients; check residue handling even with full coefficient gap
  2620  rounding: half_even
  2621  
  2622  addx62001 add 1234567890123456 1      -> 1234567890123457
  2623  addx62002 add 1234567890123456 0.6    -> 1234567890123457  Inexact Rounded
  2624  addx62003 add 1234567890123456 0.06   -> 1234567890123456  Inexact Rounded
  2625  addx62004 add 1234567890123456 6E-3   -> 1234567890123456  Inexact Rounded
  2626  addx62005 add 1234567890123456 6E-4   -> 1234567890123456  Inexact Rounded
  2627  addx62006 add 1234567890123456 6E-5   -> 1234567890123456  Inexact Rounded
  2628  addx62007 add 1234567890123456 6E-6   -> 1234567890123456  Inexact Rounded
  2629  addx62008 add 1234567890123456 6E-7   -> 1234567890123456  Inexact Rounded
  2630  addx62009 add 1234567890123456 6E-8   -> 1234567890123456  Inexact Rounded
  2631  addx62010 add 1234567890123456 6E-9   -> 1234567890123456  Inexact Rounded
  2632  addx62011 add 1234567890123456 6E-10  -> 1234567890123456  Inexact Rounded
  2633  addx62012 add 1234567890123456 6E-11  -> 1234567890123456  Inexact Rounded
  2634  addx62013 add 1234567890123456 6E-12  -> 1234567890123456  Inexact Rounded
  2635  addx62014 add 1234567890123456 6E-13  -> 1234567890123456  Inexact Rounded
  2636  addx62015 add 1234567890123456 6E-14  -> 1234567890123456  Inexact Rounded
  2637  addx62016 add 1234567890123456 6E-15  -> 1234567890123456  Inexact Rounded
  2638  addx62017 add 1234567890123456 6E-16  -> 1234567890123456  Inexact Rounded
  2639  addx62018 add 1234567890123456 6E-17  -> 1234567890123456  Inexact Rounded
  2640  addx62019 add 1234567890123456 6E-18  -> 1234567890123456  Inexact Rounded
  2641  addx62020 add 1234567890123456 6E-19  -> 1234567890123456  Inexact Rounded
  2642  addx62021 add 1234567890123456 6E-20  -> 1234567890123456  Inexact Rounded
  2643  
  2644  -- widening second argument at gap
  2645  addx62030 add 12345678 1                       -> 12345679
  2646  addx62031 add 12345678 0.1                     -> 12345678.1
  2647  addx62032 add 12345678 0.12                    -> 12345678.12
  2648  addx62033 add 12345678 0.123                   -> 12345678.123
  2649  addx62034 add 12345678 0.1234                  -> 12345678.1234
  2650  addx62035 add 12345678 0.12345                 -> 12345678.12345
  2651  addx62036 add 12345678 0.123456                -> 12345678.123456
  2652  addx62037 add 12345678 0.1234567               -> 12345678.1234567
  2653  addx62038 add 12345678 0.12345678              -> 12345678.12345678
  2654  addx62039 add 12345678 0.123456789             -> 12345678.12345679 Inexact Rounded
  2655  addx62040 add 12345678 0.123456785             -> 12345678.12345678 Inexact Rounded
  2656  addx62041 add 12345678 0.1234567850            -> 12345678.12345678 Inexact Rounded
  2657  addx62042 add 12345678 0.1234567851            -> 12345678.12345679 Inexact Rounded
  2658  addx62043 add 12345678 0.12345678501           -> 12345678.12345679 Inexact Rounded
  2659  addx62044 add 12345678 0.123456785001          -> 12345678.12345679 Inexact Rounded
  2660  addx62045 add 12345678 0.1234567850001         -> 12345678.12345679 Inexact Rounded
  2661  addx62046 add 12345678 0.12345678500001        -> 12345678.12345679 Inexact Rounded
  2662  addx62047 add 12345678 0.123456785000001       -> 12345678.12345679 Inexact Rounded
  2663  addx62048 add 12345678 0.1234567850000001      -> 12345678.12345679 Inexact Rounded
  2664  addx62049 add 12345678 0.1234567850000000      -> 12345678.12345678 Inexact Rounded
  2665  --                               90123456
  2666  rounding: half_even
  2667  addx62050 add 12345678 0.0234567750000000      -> 12345678.02345678 Inexact Rounded
  2668  addx62051 add 12345678 0.0034567750000000      -> 12345678.00345678 Inexact Rounded
  2669  addx62052 add 12345678 0.0004567750000000      -> 12345678.00045678 Inexact Rounded
  2670  addx62053 add 12345678 0.0000567750000000      -> 12345678.00005678 Inexact Rounded
  2671  addx62054 add 12345678 0.0000067750000000      -> 12345678.00000678 Inexact Rounded
  2672  addx62055 add 12345678 0.0000007750000000      -> 12345678.00000078 Inexact Rounded
  2673  addx62056 add 12345678 0.0000000750000000      -> 12345678.00000008 Inexact Rounded
  2674  addx62057 add 12345678 0.0000000050000000      -> 12345678.00000000 Inexact Rounded
  2675  addx62060 add 12345678 0.0234567750000001      -> 12345678.02345678 Inexact Rounded
  2676  addx62061 add 12345678 0.0034567750000001      -> 12345678.00345678 Inexact Rounded
  2677  addx62062 add 12345678 0.0004567750000001      -> 12345678.00045678 Inexact Rounded
  2678  addx62063 add 12345678 0.0000567750000001      -> 12345678.00005678 Inexact Rounded
  2679  addx62064 add 12345678 0.0000067750000001      -> 12345678.00000678 Inexact Rounded
  2680  addx62065 add 12345678 0.0000007750000001      -> 12345678.00000078 Inexact Rounded
  2681  addx62066 add 12345678 0.0000000750000001      -> 12345678.00000008 Inexact Rounded
  2682  addx62067 add 12345678 0.0000000050000001      -> 12345678.00000001 Inexact Rounded
  2683  -- far-out residues (full coefficient gap is 16+15 digits)
  2684  rounding: up
  2685  addx62070 add 12345678 1E-8                    -> 12345678.00000001
  2686  addx62071 add 12345678 1E-9                    -> 12345678.00000001 Inexact Rounded
  2687  addx62072 add 12345678 1E-10                   -> 12345678.00000001 Inexact Rounded
  2688  addx62073 add 12345678 1E-11                   -> 12345678.00000001 Inexact Rounded
  2689  addx62074 add 12345678 1E-12                   -> 12345678.00000001 Inexact Rounded
  2690  addx62075 add 12345678 1E-13                   -> 12345678.00000001 Inexact Rounded
  2691  addx62076 add 12345678 1E-14                   -> 12345678.00000001 Inexact Rounded
  2692  addx62077 add 12345678 1E-15                   -> 12345678.00000001 Inexact Rounded
  2693  addx62078 add 12345678 1E-16                   -> 12345678.00000001 Inexact Rounded
  2694  addx62079 add 12345678 1E-17                   -> 12345678.00000001 Inexact Rounded
  2695  addx62080 add 12345678 1E-18                   -> 12345678.00000001 Inexact Rounded
  2696  addx62081 add 12345678 1E-19                   -> 12345678.00000001 Inexact Rounded
  2697  addx62082 add 12345678 1E-20                   -> 12345678.00000001 Inexact Rounded
  2698  addx62083 add 12345678 1E-25                   -> 12345678.00000001 Inexact Rounded
  2699  addx62084 add 12345678 1E-30                   -> 12345678.00000001 Inexact Rounded
  2700  addx62085 add 12345678 1E-31                   -> 12345678.00000001 Inexact Rounded
  2701  addx62086 add 12345678 1E-32                   -> 12345678.00000001 Inexact Rounded
  2702  addx62087 add 12345678 1E-33                   -> 12345678.00000001 Inexact Rounded
  2703  addx62088 add 12345678 1E-34                   -> 12345678.00000001 Inexact Rounded
  2704  addx62089 add 12345678 1E-35                   -> 12345678.00000001 Inexact Rounded
  2705  
  2706  -- payload decapitate
  2707  precision: 5
  2708  addx62100 add      11  sNaN123456789 ->  NaN56789  Invalid_operation
  2709  addx62101 add     -11 -sNaN123456789 -> -NaN56789  Invalid_operation
  2710  addx62102 add      11   NaN123456789 ->  NaN56789
  2711  addx62103 add     -11  -NaN123456789 -> -NaN56789
  2712  
  2713  -- Null tests
  2714  addx9990 add 10  # -> NaN Invalid_operation
  2715  addx9991 add  # 10 -> NaN Invalid_operation