Merged revisions 58095-58132,58136-58148,58151-58197 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r58096 | brett.cannon | 2007-09-10 23:38:27 +0200 (Mon, 10 Sep 2007) | 4 lines

  Fix a possible segfault from recursing too deep to get the repr of a list.

  Closes issue #1096.
........
  r58097 | bill.janssen | 2007-09-10 23:51:02 +0200 (Mon, 10 Sep 2007) | 33 lines

  More work on SSL support.

  * Much expanded test suite:

    All protocols tested against all other protocols.
    All protocols tested with all certificate options.
    Tests for bad key and bad cert.
    Test of STARTTLS functionality.
    Test of RAND_* functions.

  * Fixes for threading/malloc bug.

  * Issue 1065 fixed:

    sslsocket class renamed to SSLSocket.
    sslerror class renamed to SSLError.
    Function "wrap_socket" now used to wrap an existing socket.

  * Issue 1583946 finally fixed:

    Support for subjectAltName added.
    Subject name now returned as proper DN list of RDNs.

  * SSLError exported from socket as "sslerror".

  * RAND_* functions properly exported from ssl.py.

  * Documentation improved:

    Example of how to create a self-signed certificate.
    Better indexing.
........
  r58098 | guido.van.rossum | 2007-09-11 00:02:25 +0200 (Tue, 11 Sep 2007) | 9 lines

  Patch # 1140 (my code, approved by Effbot).

  Make sure the type of the return value of re.sub(x, y, z) is the type
  of y+x (i.e. unicode if either is unicode, str if they are both str)
  even if there are no substitutions or if x==z (which triggered various
  special cases in join_list()).

  Could be backported to 2.5; no need to port to 3.0.
........
  r58099 | guido.van.rossum | 2007-09-11 00:36:02 +0200 (Tue, 11 Sep 2007) | 8 lines

  Patch # 1026 by Benjamin Aranguren (with Alex Martelli):
  Backport abc.py and isinstance/issubclass overloading to 2.6.

  I had to backport test_typechecks.py myself, and make one small change
  to abc.py to avoid duplicate work when x.__class__ and type(x) are the
  same.
........
  r58100 | bill.janssen | 2007-09-11 01:41:24 +0200 (Tue, 11 Sep 2007) | 3 lines

  A better way of finding an open port to test with.
........
  r58101 | bill.janssen | 2007-09-11 03:09:19 +0200 (Tue, 11 Sep 2007) | 4 lines

  Make sure test_ssl doesn't reference the ssl module in a
  context where it can't be imported.
........
  r58102 | bill.janssen | 2007-09-11 04:42:07 +0200 (Tue, 11 Sep 2007) | 3 lines

  Fix some documentation bugs.
........
  r58103 | nick.coghlan | 2007-09-11 16:01:18 +0200 (Tue, 11 Sep 2007) | 1 line

  Always use the -E flag when spawning subprocesses in test_cmd_line (Issue 1056)
........
  r58106 | thomas.heller | 2007-09-11 21:17:48 +0200 (Tue, 11 Sep 2007) | 3 lines

  Disable some tests that fail on the 'ppc Debian unstable' buildbot to
  find out if they cause the segfault on the 'alpha Debian' machine.
........
  r58108 | brett.cannon | 2007-09-11 23:02:28 +0200 (Tue, 11 Sep 2007) | 6 lines

  Generators had their throw() method allowing string exceptions.  That's a
  no-no.

  Fixes issue #1147.  Need to fix 2.5 to raise a proper warning if a string
  exception is passed in.
........
  r58112 | georg.brandl | 2007-09-12 20:03:51 +0200 (Wed, 12 Sep 2007) | 3 lines

  New documentation page for the bdb module.
  (This doesn't need to be merged to Py3k.)
........
  r58114 | georg.brandl | 2007-09-12 20:05:57 +0200 (Wed, 12 Sep 2007) | 2 lines

  Bug #1152: use non-deprecated name in example.
........
  r58115 | georg.brandl | 2007-09-12 20:08:33 +0200 (Wed, 12 Sep 2007) | 2 lines

  Fix #1122: wrong return type documented for various _Size() functions.
........
  r58117 | georg.brandl | 2007-09-12 20:10:56 +0200 (Wed, 12 Sep 2007) | 2 lines

  Fix #1139: PyFile_Encoding really is PyFile_SetEncoding.
........
  r58119 | georg.brandl | 2007-09-12 20:29:18 +0200 (Wed, 12 Sep 2007) | 2 lines

  bug #1154: release memory allocated by "es" PyArg_ParseTuple format specifier.
........
  r58121 | bill.janssen | 2007-09-12 20:52:05 +0200 (Wed, 12 Sep 2007) | 1 line

  root certificate for https://svn.python.org/, used in test_ssl
........
  r58122 | georg.brandl | 2007-09-12 21:00:07 +0200 (Wed, 12 Sep 2007) | 3 lines

  Bug #1153: repr.repr() now doesn't require set and dictionary items
  to be orderable to properly represent them.
........
  r58125 | georg.brandl | 2007-09-12 21:29:28 +0200 (Wed, 12 Sep 2007) | 4 lines

  #1120: put explicit version in the shebang lines of pydoc, idle
  and smtpd.py scripts that are installed by setup.py. That way, they
  work when only "make altinstall" is used.
........
  r58139 | mark.summerfield | 2007-09-13 16:54:30 +0200 (Thu, 13 Sep 2007) | 9 lines

  Replaced variable o with obj in operator.rst because o is easy to
  confuse.

  Added a note about Python 3's collections.Mapping etc., above section
  that describes isMappingType() etc.

  Added xrefs between os, os.path, fileinput, and open().
........
  r58143 | facundo.batista | 2007-09-13 20:13:15 +0200 (Thu, 13 Sep 2007) | 7 lines


  Merged the decimal-branch (revisions 54886 to 58140). Decimal is now
  fully updated to the latests Decimal Specification (v1.66) and the
  latests test cases (v2.56).

  Thanks to Mark Dickinson for all his help during this process.
........
  r58145 | facundo.batista | 2007-09-13 20:42:09 +0200 (Thu, 13 Sep 2007) | 7 lines


  Put the parameter watchexp back in (changed watchexp from an int
  to a bool).  Also second argument to watchexp is now converted
  to Decimal, just as with all the other two-argument operations.

  Thanks Mark Dickinson.
........
  r58147 | andrew.kuchling | 2007-09-14 00:49:34 +0200 (Fri, 14 Sep 2007) | 1 line

  Add various items
........
  r58148 | andrew.kuchling | 2007-09-14 00:50:10 +0200 (Fri, 14 Sep 2007) | 1 line

  Make target unique
........
  r58154 | facundo.batista | 2007-09-14 20:58:34 +0200 (Fri, 14 Sep 2007) | 3 lines


  Included the new functions, and new descriptions.
........
  r58155 | thomas.heller | 2007-09-14 21:40:35 +0200 (Fri, 14 Sep 2007) | 2 lines

  ctypes.util.find_library uses dump(1) instead of objdump(1) on Solaris.
  Fixes issue #1777530; will backport to release25-maint.
........
  r58159 | facundo.batista | 2007-09-14 23:29:52 +0200 (Fri, 14 Sep 2007) | 3 lines


  Some additions (examples and a bit on the tutorial).
........
  r58160 | georg.brandl | 2007-09-15 18:53:36 +0200 (Sat, 15 Sep 2007) | 2 lines

  Remove bdb from the "undocumented modules" list.
........
  r58164 | bill.janssen | 2007-09-17 00:06:00 +0200 (Mon, 17 Sep 2007) | 15 lines

  Add support for asyncore server-side SSL support.  This requires
  adding the 'makefile' method to ssl.SSLSocket, and importing the
  requisite fakefile class from socket.py, and making the appropriate
  changes to it to make it use the SSL connection.

  Added sample HTTPS server to test_ssl.py, and test that uses it.

  Change SSL tests to use https://svn.python.org/, instead of
  www.sf.net and pop.gmail.com.

  Added utility function to ssl module, get_server_certificate,
  to wrap up the several things to be done to pull a certificate
  from a remote server.
........
  r58173 | bill.janssen | 2007-09-17 01:16:46 +0200 (Mon, 17 Sep 2007) | 1 line

  use binary mode when reading files for testAsyncore to make Windows happy
........
  r58175 | raymond.hettinger | 2007-09-17 02:55:00 +0200 (Mon, 17 Sep 2007) | 7 lines

  Sync-up named tuples with the latest version of the ASPN recipe.
  Allows optional commas in the field-name spec (help when named tuples are used in conjuction with sql queries).
  Adds the __fields__ attribute for introspection and to support conversion to dictionary form.
  Adds a  __replace__() method similar to str.replace() but using a named field as a target.
  Clean-up spelling and presentation in doc-strings.
........
  r58176 | brett.cannon | 2007-09-17 05:28:34 +0200 (Mon, 17 Sep 2007) | 5 lines

  Add a bunch of GIL release/acquire points in tp_print implementations and for
  PyObject_Print().

  Closes issue #1164.
........
  r58177 | sean.reifschneider | 2007-09-17 07:45:04 +0200 (Mon, 17 Sep 2007) | 2 lines

  issue1597011: Fix for bz2 module corner-case error due to error checking bug.
........
  r58180 | facundo.batista | 2007-09-17 18:26:50 +0200 (Mon, 17 Sep 2007) | 3 lines


  Decimal is updated, :)
........
  r58181 | facundo.batista | 2007-09-17 19:30:13 +0200 (Mon, 17 Sep 2007) | 5 lines


  The methods always return Decimal classes, even if they're
  executed through a subclass (thanks Mark Dickinson).
  Added a bit of testing for this.
........
  r58183 | sean.reifschneider | 2007-09-17 22:53:21 +0200 (Mon, 17 Sep 2007) | 2 lines

  issue1082: Fixing platform and system for Vista.
........
  r58185 | andrew.kuchling | 2007-09-18 03:36:16 +0200 (Tue, 18 Sep 2007) | 1 line

  Add item; sort properly
........
  r58186 | raymond.hettinger | 2007-09-18 05:33:19 +0200 (Tue, 18 Sep 2007) | 1 line

  Handle corner cased on 0-tuples and 1-tuples.  Add verbose option so people can see how it works.
........
  r58192 | georg.brandl | 2007-09-18 09:24:40 +0200 (Tue, 18 Sep 2007) | 2 lines

  A bit of reordering, also show more subheadings in the lang ref index.
........
  r58193 | facundo.batista | 2007-09-18 18:53:18 +0200 (Tue, 18 Sep 2007) | 4 lines


  Speed up of the various division operations (remainder, divide,
  divideint and divmod). Thanks Mark Dickinson.
........
  r58197 | raymond.hettinger | 2007-09-19 00:18:02 +0200 (Wed, 19 Sep 2007) | 1 line

  Cleanup docs for NamedTuple.
........
diff --git a/Lib/test/decimaltestdata/add.decTest b/Lib/test/decimaltestdata/add.decTest
index 2d3efab..3460aa4 100644
--- a/Lib/test/decimaltestdata/add.decTest
+++ b/Lib/test/decimaltestdata/add.decTest
@@ -1,6 +1,6 @@
-------------------------------------------------------------------------
+------/cancell----------------------------------------------------------
 -- add.decTest -- decimal addition                                    --
--- Copyright (c) IBM Corporation, 1981, 2004.  All rights reserved.   --
+-- Copyright (c) IBM Corporation, 1981, 2007.  All rights reserved.   --
 ------------------------------------------------------------------------
 -- Please see the document "General Decimal Arithmetic Testcases"     --
 -- at http://www2.hursley.ibm.com/decimal for the description of      --
@@ -17,7 +17,7 @@
 --   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --
 --   mfc@uk.ibm.com                                                   --
 ------------------------------------------------------------------------
-version: 2.39
+version: 2.56
 
 precision:   9
 rounding:    half_up
@@ -86,6 +86,7 @@
 addx049 add '10000e+9'  '7000' -> '10000000007000'
 addx050 add '10000e+9'  '70000' -> '10000000070000'
 addx051 add '10000e+9'  '700000' -> '10000000700000'
+addx052 add '10000e+9'  '7000000' -> '10000007000000'
 
 -- examples from decarith
 addx053 add '12' '7.00' -> '19.00'
@@ -216,7 +217,7 @@
 addx167 add '1.11'  '7E+12' -> '7000000000001.11'
 addx168 add '-1'    '7E+12' -> '6999999999999'
 
---            123456789012345      123456789012345      1 23456789012345
+--             123456789012345      123456789012345      1 23456789012345
 addx170 add '0.444444444444444'  '0.555555555555563' -> '1.00000000000001' Inexact Rounded
 addx171 add '0.444444444444444'  '0.555555555555562' -> '1.00000000000001' Inexact Rounded
 addx172 add '0.444444444444444'  '0.555555555555561' -> '1.00000000000001' Inexact Rounded
@@ -396,6 +397,7 @@
 addx361  add 0E+50 10000E+1  -> 1.0000E+5
 addx362  add 10000E+1 0E-50  -> 100000.0  Rounded
 addx363  add 10000E+1 10000E-50  -> 100000.0  Rounded Inexact
+addx364  add 9.999999E+92 -9.999999E+92 -> 0E+86
 
 -- a curiosity from JSR 13 testing
 rounding:    half_down
@@ -568,7 +570,7 @@
 rounding:     down
 addx561 add 1e-398 9.000000000000000E+384 -> 9.000000000000000E+384 Inexact Rounded
 addx562 add      0 9.000000000000000E+384 -> 9.000000000000000E+384 Rounded
--- and using decimal64 bounds...
+-- and using decimal64 bounds (see also ddadd.decTest)
 precision:    16
 maxExponent: +384
 minExponent: -383
@@ -576,6 +578,7 @@
 addx563 add 1e-388 9.000000000000000E+374 -> 9.000000000000000E+374 Inexact Rounded
 addx564 add      0 9.000000000000000E+374 -> 9.000000000000000E+374 Rounded
 
+
 -- some more residue effects with extreme rounding
 precision:   9
 rounding: half_up
@@ -955,26 +958,26 @@
 addx912 add  0.10E-999   0    ->   1.0E-1000 Subnormal
 addx913 add  0.100E-999  0    ->   1.0E-1000 Subnormal Rounded
 addx914 add  0.01E-999   0    ->   1E-1001   Subnormal
--- next is rounded to Emin
+-- next is rounded to Nmin
 addx915 add  0.999E-999  0    ->   1.00E-999 Inexact Rounded Subnormal Underflow
 addx916 add  0.099E-999  0    ->   1.0E-1000 Inexact Rounded Subnormal Underflow
 addx917 add  0.009E-999  0    ->   1E-1001   Inexact Rounded Subnormal Underflow
-addx918 add  0.001E-999  0    ->   0E-1001   Inexact Rounded Subnormal Underflow
-addx919 add  0.0009E-999 0    ->   0E-1001   Inexact Rounded Subnormal Underflow
-addx920 add  0.0001E-999 0    ->   0E-1001   Inexact Rounded Subnormal Underflow
+addx918 add  0.001E-999  0    ->   0E-1001   Inexact Rounded Subnormal Underflow Clamped
+addx919 add  0.0009E-999 0    ->   0E-1001   Inexact Rounded Subnormal Underflow Clamped
+addx920 add  0.0001E-999 0    ->   0E-1001   Inexact Rounded Subnormal Underflow Clamped
 
 addx930 add -1.00E-999   0    ->  -1.00E-999
 addx931 add -0.1E-999    0    ->  -1E-1000   Subnormal
 addx932 add -0.10E-999   0    ->  -1.0E-1000 Subnormal
 addx933 add -0.100E-999  0    ->  -1.0E-1000 Subnormal Rounded
 addx934 add -0.01E-999   0    ->  -1E-1001   Subnormal
--- next is rounded to Emin
+-- next is rounded to Nmin
 addx935 add -0.999E-999  0    ->  -1.00E-999 Inexact Rounded Subnormal Underflow
 addx936 add -0.099E-999  0    ->  -1.0E-1000 Inexact Rounded Subnormal Underflow
 addx937 add -0.009E-999  0    ->  -1E-1001   Inexact Rounded Subnormal Underflow
-addx938 add -0.001E-999  0    ->  -0E-1001   Inexact Rounded Subnormal Underflow
-addx939 add -0.0009E-999 0    ->  -0E-1001   Inexact Rounded Subnormal Underflow
-addx940 add -0.0001E-999 0    ->  -0E-1001   Inexact Rounded Subnormal Underflow
+addx938 add -0.001E-999  0    ->  -0E-1001   Inexact Rounded Subnormal Underflow Clamped
+addx939 add -0.0009E-999 0    ->  -0E-1001   Inexact Rounded Subnormal Underflow Clamped
+addx940 add -0.0001E-999 0    ->  -0E-1001   Inexact Rounded Subnormal Underflow Clamped
 
 -- some non-zero subnormal adds
 addx950 add  1.00E-999    0.1E-999  ->   1.10E-999
@@ -995,12 +998,43 @@
 addx964 add  0.100E-999  -0.1E-999  ->   0E-1001    Clamped
 addx965 add  0.01E-999   -0.1E-999  ->   -9E-1001   Subnormal
 addx966 add  0.999E-999  -0.1E-999  ->   9.0E-1000  Inexact Rounded Subnormal Underflow
-addx967 add  0.099E-999  -0.1E-999  ->   -0E-1001   Inexact Rounded Subnormal Underflow
+addx967 add  0.099E-999  -0.1E-999  ->   -0E-1001   Inexact Rounded Subnormal Underflow Clamped
 addx968 add  0.009E-999  -0.1E-999  ->   -9E-1001   Inexact Rounded Subnormal Underflow
 addx969 add  0.001E-999  -0.1E-999  ->   -1.0E-1000 Inexact Rounded Subnormal Underflow
 addx970 add  0.0009E-999 -0.1E-999  ->   -1.0E-1000 Inexact Rounded Subnormal Underflow
 addx971 add  0.0001E-999 -0.1E-999  ->   -1.0E-1000 Inexact Rounded Subnormal Underflow
 
+-- some 'real' numbers
+maxExponent: 384
+minExponent: -383
+precision: 8
+addx566 add 99999061735E-394  0E-394 -> 9.999906E-384 Inexact Rounded Underflow Subnormal
+precision: 7
+addx567 add 99999061735E-394  0E-394 -> 9.99991E-384 Inexact Rounded Underflow Subnormal
+precision: 6
+addx568 add 99999061735E-394  0E-394 -> 9.9999E-384 Inexact Rounded Underflow Subnormal
+
+-- now the case where we can get underflow but the result is normal
+-- [note this can't happen if the operands are also bounded, as we
+-- cannot represent 1E-399, for example]
+precision:   16
+rounding:    half_up
+maxExponent: 384
+minExponent: -383
+
+addx571 add       1E-383       0  -> 1E-383
+addx572 add       1E-384       0  -> 1E-384   Subnormal
+addx573 add       1E-383  1E-384  -> 1.1E-383
+addx574 subtract  1E-383  1E-384  ->   9E-384 Subnormal
+
+-- Here we explore the boundary of rounding a subnormal to Nmin
+addx575 subtract  1E-383  1E-398  ->   9.99999999999999E-384  Subnormal
+addx576 subtract  1E-383  1E-398  ->   9.99999999999999E-384  Subnormal
+addx577 subtract  1E-383  1E-399  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded
+addx578 subtract  1E-383  1E-400  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded
+addx579 subtract  1E-383  1E-401  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded
+addx580 subtract  1E-383  1E-402  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded
+
 -- check overflow edge case
 precision:   7
 rounding:    half_up
@@ -1106,21 +1140,1565 @@
 addx1139 add       1000E-101 -1e-200  ->  9.99E-99   Subnormal Inexact Rounded Underflow
 addx1140 add        100E-101 -1e-200  ->  9.9E-100   Subnormal Inexact Rounded Underflow
 addx1141 add         10E-101 -1e-200  ->  9E-101     Subnormal Inexact Rounded Underflow
-addx1142 add          1E-101 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow
-addx1143 add          0E-101 -1e-200  -> -0E-101     Subnormal Inexact Rounded Underflow
-addx1144 add          1E-102 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow
+addx1142 add          1E-101 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow Clamped
+addx1143 add          0E-101 -1e-200  -> -0E-101     Subnormal Inexact Rounded Underflow Clamped
+addx1144 add          1E-102 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow Clamped
 
 addx1151 add      10000E-102 -1e-200  ->  9.99E-99  Subnormal Inexact Rounded Underflow
 addx1152 add       1000E-102 -1e-200  ->  9.9E-100  Subnormal Inexact Rounded Underflow
 addx1153 add        100E-102 -1e-200  ->  9E-101   Subnormal Inexact Rounded Underflow
-addx1154 add         10E-102 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow
-addx1155 add          1E-102 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow
-addx1156 add          0E-102 -1e-200  -> -0E-101     Subnormal Inexact Rounded Underflow
-addx1157 add          1E-103 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow
+addx1154 add         10E-102 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow Clamped
+addx1155 add          1E-102 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow Clamped
+addx1156 add          0E-102 -1e-200  -> -0E-101     Subnormal Inexact Rounded Underflow Clamped
+addx1157 add          1E-103 -1e-200  ->  0E-101     Subnormal Inexact Rounded Underflow Clamped
 
-addx1160 add        100E-105 -1e-101  -> -0E-101 Subnormal Inexact Rounded Underflow
-addx1161 add        100E-105 -1e-201  ->  0E-101 Subnormal Inexact Rounded Underflow
+addx1160 add        100E-105 -1e-101  -> -0E-101 Subnormal Inexact Rounded Underflow Clamped
+addx1161 add        100E-105 -1e-201  ->  0E-101 Subnormal Inexact Rounded Underflow Clamped
 
+-- tests based on Gunnar Degnbol's edge case
+precision:   15
+rounding:    half_up
+maxExponent: 384
+minexponent: -383
+
+addx1200 add 1E15  -0.5                 ->  1.00000000000000E+15 Inexact Rounded
+addx1201 add 1E15  -0.50                ->  1.00000000000000E+15 Inexact Rounded
+addx1210 add 1E15  -0.51                ->  999999999999999      Inexact Rounded
+addx1211 add 1E15  -0.501               ->  999999999999999      Inexact Rounded
+addx1212 add 1E15  -0.5001              ->  999999999999999      Inexact Rounded
+addx1213 add 1E15  -0.50001             ->  999999999999999      Inexact Rounded
+addx1214 add 1E15  -0.500001            ->  999999999999999      Inexact Rounded
+addx1215 add 1E15  -0.5000001           ->  999999999999999      Inexact Rounded
+addx1216 add 1E15  -0.50000001          ->  999999999999999      Inexact Rounded
+addx1217 add 1E15  -0.500000001         ->  999999999999999      Inexact Rounded
+addx1218 add 1E15  -0.5000000001        ->  999999999999999      Inexact Rounded
+addx1219 add 1E15  -0.50000000001       ->  999999999999999      Inexact Rounded
+addx1220 add 1E15  -0.500000000001      ->  999999999999999      Inexact Rounded
+addx1221 add 1E15  -0.5000000000001     ->  999999999999999      Inexact Rounded
+addx1222 add 1E15  -0.50000000000001    ->  999999999999999      Inexact Rounded
+addx1223 add 1E15  -0.500000000000001   ->  999999999999999      Inexact Rounded
+addx1224 add 1E15  -0.5000000000000001  ->  999999999999999      Inexact Rounded
+addx1225 add 1E15  -0.5000000000000000  ->  1.00000000000000E+15 Inexact Rounded
+addx1230 add 1E15  -5000000.000000001   ->  999999995000000      Inexact Rounded
+
+precision:   16
+
+addx1300 add 1E16  -0.5                 ->  1.000000000000000E+16 Inexact Rounded
+addx1310 add 1E16  -0.51                ->  9999999999999999      Inexact Rounded
+addx1311 add 1E16  -0.501               ->  9999999999999999      Inexact Rounded
+addx1312 add 1E16  -0.5001              ->  9999999999999999      Inexact Rounded
+addx1313 add 1E16  -0.50001             ->  9999999999999999      Inexact Rounded
+addx1314 add 1E16  -0.500001            ->  9999999999999999      Inexact Rounded
+addx1315 add 1E16  -0.5000001           ->  9999999999999999      Inexact Rounded
+addx1316 add 1E16  -0.50000001          ->  9999999999999999      Inexact Rounded
+addx1317 add 1E16  -0.500000001         ->  9999999999999999      Inexact Rounded
+addx1318 add 1E16  -0.5000000001        ->  9999999999999999      Inexact Rounded
+addx1319 add 1E16  -0.50000000001       ->  9999999999999999      Inexact Rounded
+addx1320 add 1E16  -0.500000000001      ->  9999999999999999      Inexact Rounded
+addx1321 add 1E16  -0.5000000000001     ->  9999999999999999      Inexact Rounded
+addx1322 add 1E16  -0.50000000000001    ->  9999999999999999      Inexact Rounded
+addx1323 add 1E16  -0.500000000000001   ->  9999999999999999      Inexact Rounded
+addx1324 add 1E16  -0.5000000000000001  ->  9999999999999999      Inexact Rounded
+addx1325 add 1E16  -0.5000000000000000  ->  1.000000000000000E+16 Inexact Rounded
+addx1326 add 1E16  -0.500000000000000   ->  1.000000000000000E+16 Inexact Rounded
+addx1327 add 1E16  -0.50000000000000    ->  1.000000000000000E+16 Inexact Rounded
+addx1328 add 1E16  -0.5000000000000     ->  1.000000000000000E+16 Inexact Rounded
+addx1329 add 1E16  -0.500000000000      ->  1.000000000000000E+16 Inexact Rounded
+addx1330 add 1E16  -0.50000000000       ->  1.000000000000000E+16 Inexact Rounded
+addx1331 add 1E16  -0.5000000000        ->  1.000000000000000E+16 Inexact Rounded
+addx1332 add 1E16  -0.500000000         ->  1.000000000000000E+16 Inexact Rounded
+addx1333 add 1E16  -0.50000000          ->  1.000000000000000E+16 Inexact Rounded
+addx1334 add 1E16  -0.5000000           ->  1.000000000000000E+16 Inexact Rounded
+addx1335 add 1E16  -0.500000            ->  1.000000000000000E+16 Inexact Rounded
+addx1336 add 1E16  -0.50000             ->  1.000000000000000E+16 Inexact Rounded
+addx1337 add 1E16  -0.5000              ->  1.000000000000000E+16 Inexact Rounded
+addx1338 add 1E16  -0.500               ->  1.000000000000000E+16 Inexact Rounded
+addx1339 add 1E16  -0.50                ->  1.000000000000000E+16 Inexact Rounded
+
+addx1340 add 1E16  -5000000.000010001   ->  9999999995000000      Inexact Rounded
+addx1341 add 1E16  -5000000.000000001   ->  9999999995000000      Inexact Rounded
+
+addx1349 add 9999999999999999 0.4                 ->  9999999999999999      Inexact Rounded
+addx1350 add 9999999999999999 0.49                ->  9999999999999999      Inexact Rounded
+addx1351 add 9999999999999999 0.499               ->  9999999999999999      Inexact Rounded
+addx1352 add 9999999999999999 0.4999              ->  9999999999999999      Inexact Rounded
+addx1353 add 9999999999999999 0.49999             ->  9999999999999999      Inexact Rounded
+addx1354 add 9999999999999999 0.499999            ->  9999999999999999      Inexact Rounded
+addx1355 add 9999999999999999 0.4999999           ->  9999999999999999      Inexact Rounded
+addx1356 add 9999999999999999 0.49999999          ->  9999999999999999      Inexact Rounded
+addx1357 add 9999999999999999 0.499999999         ->  9999999999999999      Inexact Rounded
+addx1358 add 9999999999999999 0.4999999999        ->  9999999999999999      Inexact Rounded
+addx1359 add 9999999999999999 0.49999999999       ->  9999999999999999      Inexact Rounded
+addx1360 add 9999999999999999 0.499999999999      ->  9999999999999999      Inexact Rounded
+addx1361 add 9999999999999999 0.4999999999999     ->  9999999999999999      Inexact Rounded
+addx1362 add 9999999999999999 0.49999999999999    ->  9999999999999999      Inexact Rounded
+addx1363 add 9999999999999999 0.499999999999999   ->  9999999999999999      Inexact Rounded
+addx1364 add 9999999999999999 0.4999999999999999  ->  9999999999999999      Inexact Rounded
+addx1365 add 9999999999999999 0.5000000000000000  ->  1.000000000000000E+16 Inexact Rounded
+addx1367 add 9999999999999999 0.500000000000000   ->  1.000000000000000E+16 Inexact Rounded
+addx1368 add 9999999999999999 0.50000000000000    ->  1.000000000000000E+16 Inexact Rounded
+addx1369 add 9999999999999999 0.5000000000000     ->  1.000000000000000E+16 Inexact Rounded
+addx1370 add 9999999999999999 0.500000000000      ->  1.000000000000000E+16 Inexact Rounded
+addx1371 add 9999999999999999 0.50000000000       ->  1.000000000000000E+16 Inexact Rounded
+addx1372 add 9999999999999999 0.5000000000        ->  1.000000000000000E+16 Inexact Rounded
+addx1373 add 9999999999999999 0.500000000         ->  1.000000000000000E+16 Inexact Rounded
+addx1374 add 9999999999999999 0.50000000          ->  1.000000000000000E+16 Inexact Rounded
+addx1375 add 9999999999999999 0.5000000           ->  1.000000000000000E+16 Inexact Rounded
+addx1376 add 9999999999999999 0.500000            ->  1.000000000000000E+16 Inexact Rounded
+addx1377 add 9999999999999999 0.50000             ->  1.000000000000000E+16 Inexact Rounded
+addx1378 add 9999999999999999 0.5000              ->  1.000000000000000E+16 Inexact Rounded
+addx1379 add 9999999999999999 0.500               ->  1.000000000000000E+16 Inexact Rounded
+addx1380 add 9999999999999999 0.50                ->  1.000000000000000E+16 Inexact Rounded
+addx1381 add 9999999999999999 0.5                 ->  1.000000000000000E+16 Inexact Rounded
+addx1382 add 9999999999999999 0.5000000000000001  ->  1.000000000000000E+16 Inexact Rounded
+addx1383 add 9999999999999999 0.500000000000001   ->  1.000000000000000E+16 Inexact Rounded
+addx1384 add 9999999999999999 0.50000000000001    ->  1.000000000000000E+16 Inexact Rounded
+addx1385 add 9999999999999999 0.5000000000001     ->  1.000000000000000E+16 Inexact Rounded
+addx1386 add 9999999999999999 0.500000000001      ->  1.000000000000000E+16 Inexact Rounded
+addx1387 add 9999999999999999 0.50000000001       ->  1.000000000000000E+16 Inexact Rounded
+addx1388 add 9999999999999999 0.5000000001        ->  1.000000000000000E+16 Inexact Rounded
+addx1389 add 9999999999999999 0.500000001         ->  1.000000000000000E+16 Inexact Rounded
+addx1390 add 9999999999999999 0.50000001          ->  1.000000000000000E+16 Inexact Rounded
+addx1391 add 9999999999999999 0.5000001           ->  1.000000000000000E+16 Inexact Rounded
+addx1392 add 9999999999999999 0.500001            ->  1.000000000000000E+16 Inexact Rounded
+addx1393 add 9999999999999999 0.50001             ->  1.000000000000000E+16 Inexact Rounded
+addx1394 add 9999999999999999 0.5001              ->  1.000000000000000E+16 Inexact Rounded
+addx1395 add 9999999999999999 0.501               ->  1.000000000000000E+16 Inexact Rounded
+addx1396 add 9999999999999999 0.51                ->  1.000000000000000E+16 Inexact Rounded
+
+-- More GD edge cases, where difference between the unadjusted
+-- exponents is larger than the maximum precision and one side is 0
+precision:   15
+rounding:    half_up
+maxExponent: 384
+minexponent: -383
+
+addx1400 add  0 1.23456789012345     -> 1.23456789012345
+addx1401 add  0 1.23456789012345E-1  -> 0.123456789012345
+addx1402 add  0 1.23456789012345E-2  -> 0.0123456789012345
+addx1403 add  0 1.23456789012345E-3  -> 0.00123456789012345
+addx1404 add  0 1.23456789012345E-4  -> 0.000123456789012345
+addx1405 add  0 1.23456789012345E-5  -> 0.0000123456789012345
+addx1406 add  0 1.23456789012345E-6  -> 0.00000123456789012345
+addx1407 add  0 1.23456789012345E-7  -> 1.23456789012345E-7
+addx1408 add  0 1.23456789012345E-8  -> 1.23456789012345E-8
+addx1409 add  0 1.23456789012345E-9  -> 1.23456789012345E-9
+addx1410 add  0 1.23456789012345E-10 -> 1.23456789012345E-10
+addx1411 add  0 1.23456789012345E-11 -> 1.23456789012345E-11
+addx1412 add  0 1.23456789012345E-12 -> 1.23456789012345E-12
+addx1413 add  0 1.23456789012345E-13 -> 1.23456789012345E-13
+addx1414 add  0 1.23456789012345E-14 -> 1.23456789012345E-14
+addx1415 add  0 1.23456789012345E-15 -> 1.23456789012345E-15
+addx1416 add  0 1.23456789012345E-16 -> 1.23456789012345E-16
+addx1417 add  0 1.23456789012345E-17 -> 1.23456789012345E-17
+addx1418 add  0 1.23456789012345E-18 -> 1.23456789012345E-18
+addx1419 add  0 1.23456789012345E-19 -> 1.23456789012345E-19
+
+-- same, precision 16..
+precision:   16
+addx1420 add  0 1.123456789012345     -> 1.123456789012345
+addx1421 add  0 1.123456789012345E-1  -> 0.1123456789012345
+addx1422 add  0 1.123456789012345E-2  -> 0.01123456789012345
+addx1423 add  0 1.123456789012345E-3  -> 0.001123456789012345
+addx1424 add  0 1.123456789012345E-4  -> 0.0001123456789012345
+addx1425 add  0 1.123456789012345E-5  -> 0.00001123456789012345
+addx1426 add  0 1.123456789012345E-6  -> 0.000001123456789012345
+addx1427 add  0 1.123456789012345E-7  -> 1.123456789012345E-7
+addx1428 add  0 1.123456789012345E-8  -> 1.123456789012345E-8
+addx1429 add  0 1.123456789012345E-9  -> 1.123456789012345E-9
+addx1430 add  0 1.123456789012345E-10 -> 1.123456789012345E-10
+addx1431 add  0 1.123456789012345E-11 -> 1.123456789012345E-11
+addx1432 add  0 1.123456789012345E-12 -> 1.123456789012345E-12
+addx1433 add  0 1.123456789012345E-13 -> 1.123456789012345E-13
+addx1434 add  0 1.123456789012345E-14 -> 1.123456789012345E-14
+addx1435 add  0 1.123456789012345E-15 -> 1.123456789012345E-15
+addx1436 add  0 1.123456789012345E-16 -> 1.123456789012345E-16
+addx1437 add  0 1.123456789012345E-17 -> 1.123456789012345E-17
+addx1438 add  0 1.123456789012345E-18 -> 1.123456789012345E-18
+addx1439 add  0 1.123456789012345E-19 -> 1.123456789012345E-19
+
+-- same, reversed 0
+addx1440 add 1.123456789012345     0 -> 1.123456789012345
+addx1441 add 1.123456789012345E-1  0 -> 0.1123456789012345
+addx1442 add 1.123456789012345E-2  0 -> 0.01123456789012345
+addx1443 add 1.123456789012345E-3  0 -> 0.001123456789012345
+addx1444 add 1.123456789012345E-4  0 -> 0.0001123456789012345
+addx1445 add 1.123456789012345E-5  0 -> 0.00001123456789012345
+addx1446 add 1.123456789012345E-6  0 -> 0.000001123456789012345
+addx1447 add 1.123456789012345E-7  0 -> 1.123456789012345E-7
+addx1448 add 1.123456789012345E-8  0 -> 1.123456789012345E-8
+addx1449 add 1.123456789012345E-9  0 -> 1.123456789012345E-9
+addx1450 add 1.123456789012345E-10 0 -> 1.123456789012345E-10
+addx1451 add 1.123456789012345E-11 0 -> 1.123456789012345E-11
+addx1452 add 1.123456789012345E-12 0 -> 1.123456789012345E-12
+addx1453 add 1.123456789012345E-13 0 -> 1.123456789012345E-13
+addx1454 add 1.123456789012345E-14 0 -> 1.123456789012345E-14
+addx1455 add 1.123456789012345E-15 0 -> 1.123456789012345E-15
+addx1456 add 1.123456789012345E-16 0 -> 1.123456789012345E-16
+addx1457 add 1.123456789012345E-17 0 -> 1.123456789012345E-17
+addx1458 add 1.123456789012345E-18 0 -> 1.123456789012345E-18
+addx1459 add 1.123456789012345E-19 0 -> 1.123456789012345E-19
+
+-- same, Es on the 0
+addx1460 add 1.123456789012345  0E-0   -> 1.123456789012345
+addx1461 add 1.123456789012345  0E-1   -> 1.123456789012345
+addx1462 add 1.123456789012345  0E-2   -> 1.123456789012345
+addx1463 add 1.123456789012345  0E-3   -> 1.123456789012345
+addx1464 add 1.123456789012345  0E-4   -> 1.123456789012345
+addx1465 add 1.123456789012345  0E-5   -> 1.123456789012345
+addx1466 add 1.123456789012345  0E-6   -> 1.123456789012345
+addx1467 add 1.123456789012345  0E-7   -> 1.123456789012345
+addx1468 add 1.123456789012345  0E-8   -> 1.123456789012345
+addx1469 add 1.123456789012345  0E-9   -> 1.123456789012345
+addx1470 add 1.123456789012345  0E-10  -> 1.123456789012345
+addx1471 add 1.123456789012345  0E-11  -> 1.123456789012345
+addx1472 add 1.123456789012345  0E-12  -> 1.123456789012345
+addx1473 add 1.123456789012345  0E-13  -> 1.123456789012345
+addx1474 add 1.123456789012345  0E-14  -> 1.123456789012345
+addx1475 add 1.123456789012345  0E-15  -> 1.123456789012345
+-- next four flag Rounded because the 0 extends the result
+addx1476 add 1.123456789012345  0E-16  -> 1.123456789012345 Rounded
+addx1477 add 1.123456789012345  0E-17  -> 1.123456789012345 Rounded
+addx1478 add 1.123456789012345  0E-18  -> 1.123456789012345 Rounded
+addx1479 add 1.123456789012345  0E-19  -> 1.123456789012345 Rounded
+
+-- sum of two opposite-sign operands is exactly 0 and floor => -0
+precision:   16
+maxExponent: 384
+minexponent: -383
+
+rounding:    half_up
+-- exact zeros from zeros
+addx1500 add  0        0E-19  ->  0E-19
+addx1501 add -0        0E-19  ->  0E-19
+addx1502 add  0       -0E-19  ->  0E-19
+addx1503 add -0       -0E-19  -> -0E-19
+addx1504 add  0E-400   0E-19  ->  0E-398 Clamped
+addx1505 add -0E-400   0E-19  ->  0E-398 Clamped
+addx1506 add  0E-400  -0E-19  ->  0E-398 Clamped
+addx1507 add -0E-400  -0E-19  -> -0E-398 Clamped
+-- inexact zeros
+addx1511 add  1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx1512 add -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx1513 add  1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx1514 add -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+-- some exact zeros from non-zeros
+addx1515 add  1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx1516 add -1E-401   1E-401 ->  0E-398 Clamped
+addx1517 add  1E-401  -1E-401 ->  0E-398 Clamped
+addx1518 add -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+
+rounding:    half_down
+-- exact zeros from zeros
+addx1520 add  0        0E-19  ->  0E-19
+addx1521 add -0        0E-19  ->  0E-19
+addx1522 add  0       -0E-19  ->  0E-19
+addx1523 add -0       -0E-19  -> -0E-19
+addx1524 add  0E-400   0E-19  ->  0E-398 Clamped
+addx1525 add -0E-400   0E-19  ->  0E-398 Clamped
+addx1526 add  0E-400  -0E-19  ->  0E-398 Clamped
+addx1527 add -0E-400  -0E-19  -> -0E-398 Clamped
+-- inexact zeros
+addx1531 add  1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx1532 add -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx1533 add  1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx1534 add -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+-- some exact zeros from non-zeros
+addx1535 add  1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx1536 add -1E-401   1E-401 ->  0E-398 Clamped
+addx1537 add  1E-401  -1E-401 ->  0E-398 Clamped
+addx1538 add -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+
+rounding:    half_even
+-- exact zeros from zeros
+addx1540 add  0        0E-19  ->  0E-19
+addx1541 add -0        0E-19  ->  0E-19
+addx1542 add  0       -0E-19  ->  0E-19
+addx1543 add -0       -0E-19  -> -0E-19
+addx1544 add  0E-400   0E-19  ->  0E-398 Clamped
+addx1545 add -0E-400   0E-19  ->  0E-398 Clamped
+addx1546 add  0E-400  -0E-19  ->  0E-398 Clamped
+addx1547 add -0E-400  -0E-19  -> -0E-398 Clamped
+-- inexact zeros
+addx1551 add  1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx1552 add -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx1553 add  1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx1554 add -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+-- some exact zeros from non-zeros
+addx1555 add  1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx1556 add -1E-401   1E-401 ->  0E-398 Clamped
+addx1557 add  1E-401  -1E-401 ->  0E-398 Clamped
+addx1558 add -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+
+rounding:    up
+-- exact zeros from zeros
+addx1560 add  0        0E-19  ->  0E-19
+addx1561 add -0        0E-19  ->  0E-19
+addx1562 add  0       -0E-19  ->  0E-19
+addx1563 add -0       -0E-19  -> -0E-19
+addx1564 add  0E-400   0E-19  ->  0E-398 Clamped
+addx1565 add -0E-400   0E-19  ->  0E-398 Clamped
+addx1566 add  0E-400  -0E-19  ->  0E-398 Clamped
+addx1567 add -0E-400  -0E-19  -> -0E-398 Clamped
+-- inexact zeros
+addx1571 add  1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
+addx1572 add -1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
+addx1573 add  1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
+addx1574 add -1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
+-- some exact zeros from non-zeros
+addx1575 add  1E-401   1E-401 ->  1E-398 Subnormal Inexact Rounded Underflow
+addx1576 add -1E-401   1E-401 ->  0E-398 Clamped
+addx1577 add  1E-401  -1E-401 ->  0E-398 Clamped
+addx1578 add -1E-401  -1E-401 -> -1E-398 Subnormal Inexact Rounded Underflow
+
+rounding:    down
+-- exact zeros from zeros
+addx1580 add  0        0E-19  ->  0E-19
+addx1581 add -0        0E-19  ->  0E-19
+addx1582 add  0       -0E-19  ->  0E-19
+addx1583 add -0       -0E-19  -> -0E-19
+addx1584 add  0E-400   0E-19  ->  0E-398 Clamped
+addx1585 add -0E-400   0E-19  ->  0E-398 Clamped
+addx1586 add  0E-400  -0E-19  ->  0E-398 Clamped
+addx1587 add -0E-400  -0E-19  -> -0E-398 Clamped
+-- inexact zeros
+addx1591 add  1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx1592 add -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx1593 add  1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx1594 add -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+-- some exact zeros from non-zeros
+addx1595 add  1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx1596 add -1E-401   1E-401 ->  0E-398 Clamped
+addx1597 add  1E-401  -1E-401 ->  0E-398 Clamped
+addx1598 add -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+
+rounding:    ceiling
+-- exact zeros from zeros
+addx1600 add  0        0E-19  ->  0E-19
+addx1601 add -0        0E-19  ->  0E-19
+addx1602 add  0       -0E-19  ->  0E-19
+addx1603 add -0       -0E-19  -> -0E-19
+addx1604 add  0E-400   0E-19  ->  0E-398 Clamped
+addx1605 add -0E-400   0E-19  ->  0E-398 Clamped
+addx1606 add  0E-400  -0E-19  ->  0E-398 Clamped
+addx1607 add -0E-400  -0E-19  -> -0E-398 Clamped
+-- inexact zeros
+addx1611 add  1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
+addx1612 add -1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
+addx1613 add  1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx1614 add -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+-- some exact zeros from non-zeros
+addx1615 add  1E-401   1E-401 ->  1E-398 Subnormal Inexact Rounded Underflow
+addx1616 add -1E-401   1E-401 ->  0E-398 Clamped
+addx1617 add  1E-401  -1E-401 ->  0E-398 Clamped
+addx1618 add -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+
+-- and the extra-special ugly case; unusual minuses marked by -- *
+rounding:    floor
+-- exact zeros from zeros
+addx1620 add  0        0E-19  ->  0E-19
+addx1621 add -0        0E-19  -> -0E-19           -- *
+addx1622 add  0       -0E-19  -> -0E-19           -- *
+addx1623 add -0       -0E-19  -> -0E-19
+addx1624 add  0E-400   0E-19  ->  0E-398 Clamped
+addx1625 add -0E-400   0E-19  -> -0E-398 Clamped  -- *
+addx1626 add  0E-400  -0E-19  -> -0E-398 Clamped  -- *
+addx1627 add -0E-400  -0E-19  -> -0E-398 Clamped
+-- inexact zeros
+addx1631 add  1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx1632 add -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx1633 add  1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
+addx1634 add -1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
+-- some exact zeros from non-zeros
+addx1635 add  1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx1636 add -1E-401   1E-401 -> -0E-398 Clamped  -- *
+addx1637 add  1E-401  -1E-401 -> -0E-398 Clamped  -- *
+addx1638 add -1E-401  -1E-401 -> -1E-398 Subnormal Inexact Rounded Underflow
+
+-- BigDecimal problem testcases 2006.01.23
+precision:   16
+maxExponent: 384
+minexponent: -383
+
+rounding:  down
+precision: 7
+addx1651 add  10001E+2  -2E+1 -> 1.00008E+6
+precision: 6
+addx1652 add  10001E+2  -2E+1 -> 1.00008E+6
+precision: 5
+addx1653 add  10001E+2  -2E+1 -> 1.0000E+6   Inexact Rounded
+precision: 4
+addx1654 add  10001E+2  -2E+1 -> 1.000E+6    Inexact Rounded
+precision: 3
+addx1655 add  10001E+2  -2E+1 -> 1.00E+6     Inexact Rounded
+precision: 2
+addx1656 add  10001E+2  -2E+1 -> 1.0E+6      Inexact Rounded
+precision: 1
+addx1657 add  10001E+2  -2E+1 -> 1E+6        Inexact Rounded
+
+rounding:  half_even
+precision: 7
+addx1661 add  10001E+2  -2E+1 -> 1.00008E+6
+precision: 6
+addx1662 add  10001E+2  -2E+1 -> 1.00008E+6
+precision: 5
+addx1663 add  10001E+2  -2E+1 -> 1.0001E+6   Inexact Rounded
+precision: 4
+addx1664 add  10001E+2  -2E+1 -> 1.000E+6    Inexact Rounded
+precision: 3
+addx1665 add  10001E+2  -2E+1 -> 1.00E+6     Inexact Rounded
+precision: 2
+addx1666 add  10001E+2  -2E+1 -> 1.0E+6      Inexact Rounded
+precision: 1
+addx1667 add  10001E+2  -2E+1 -> 1E+6        Inexact Rounded
+
+rounding:  up
+precision: 7
+addx1671 add  10001E+2  -2E+1 -> 1.00008E+6
+precision: 6
+addx1672 add  10001E+2  -2E+1 -> 1.00008E+6
+precision: 5
+addx1673 add  10001E+2  -2E+1 -> 1.0001E+6   Inexact Rounded
+precision: 4
+addx1674 add  10001E+2  -2E+1 -> 1.001E+6    Inexact Rounded
+precision: 3
+addx1675 add  10001E+2  -2E+1 -> 1.01E+6     Inexact Rounded
+precision: 2
+addx1676 add  10001E+2  -2E+1 -> 1.1E+6      Inexact Rounded
+precision: 1
+addx1677 add  10001E+2  -2E+1 -> 2E+6        Inexact Rounded
+
+precision:   34
+rounding:    half_up
+maxExponent: 6144
+minExponent: -6143
+-- Examples from SQL proposal (Krishna Kulkarni)
+addx1701  add 130E-2    120E-2    -> 2.50
+addx1702  add 130E-2    12E-1     -> 2.50
+addx1703  add 130E-2    1E0       -> 2.30
+addx1704  add 1E2       1E4       -> 1.01E+4
+addx1705  subtract 130E-2  120E-2 -> 0.10
+addx1706  subtract 130E-2  12E-1  -> 0.10
+addx1707  subtract 130E-2  1E0    -> 0.30
+addx1708  subtract 1E2     1E4    -> -9.9E+3
+
+------------------------------------------------------------------------
+-- Same as above, using decimal64 default parameters                  --
+------------------------------------------------------------------------
+precision:   16
+rounding:    half_even
+maxExponent: 384
+minexponent: -383
+
+-- [first group are 'quick confidence check']
+addx6001 add 1       1       ->  2
+addx6002 add 2       3       ->  5
+addx6003 add '5.75'  '3.3'   ->  9.05
+addx6004 add '5'     '-3'    ->  2
+addx6005 add '-5'    '-3'    ->  -8
+addx6006 add '-7'    '2.5'   ->  -4.5
+addx6007 add '0.7'   '0.3'   ->  1.0
+addx6008 add '1.25'  '1.25'  ->  2.50
+addx6009 add '1.23456789'  '1.00000000' -> '2.23456789'
+addx6010 add '1.23456789'  '1.00000011' -> '2.23456800'
+
+addx6011 add '0.44444444444444444'  '0.55555555555555555' -> '1.000000000000000' Inexact Rounded
+addx6012 add '0.44444444444444440'  '0.55555555555555555' -> '1.000000000000000' Inexact Rounded
+addx6013 add '0.44444444444444444'  '0.55555555555555550' -> '0.9999999999999999' Inexact Rounded
+addx6014 add '0.444444444444444449'    '0' -> '0.4444444444444444' Inexact Rounded
+addx6015 add '0.4444444444444444499'   '0' -> '0.4444444444444444' Inexact Rounded
+addx6016 add '0.44444444444444444999'  '0' -> '0.4444444444444444' Inexact Rounded
+addx6017 add '0.44444444444444445000'  '0' -> '0.4444444444444444' Inexact Rounded
+addx6018 add '0.44444444444444445001'  '0' -> '0.4444444444444445' Inexact Rounded
+addx6019 add '0.4444444444444444501'   '0' -> '0.4444444444444445' Inexact Rounded
+addx6020 add '0.444444444444444451'    '0' -> '0.4444444444444445' Inexact Rounded
+
+addx6021 add 0 1 -> 1
+addx6022 add 1 1 -> 2
+addx6023 add 2 1 -> 3
+addx6024 add 3 1 -> 4
+addx6025 add 4 1 -> 5
+addx6026 add 5 1 -> 6
+addx6027 add 6 1 -> 7
+addx6028 add 7 1 -> 8
+addx6029 add 8 1 -> 9
+addx6030 add 9 1 -> 10
+
+-- some carrying effects
+addx6031 add '0.9998'  '0.0000' -> '0.9998'
+addx6032 add '0.9998'  '0.0001' -> '0.9999'
+addx6033 add '0.9998'  '0.0002' -> '1.0000'
+addx6034 add '0.9998'  '0.0003' -> '1.0001'
+
+addx6035 add '70'      '10000e+16' -> '1.000000000000000E+20' Inexact Rounded
+addx6036 add '700'     '10000e+16' -> '1.000000000000000E+20' Inexact Rounded
+addx6037 add '7000'    '10000e+16' -> '1.000000000000000E+20' Inexact Rounded
+addx6038 add '70000'   '10000e+16' -> '1.000000000000001E+20' Inexact Rounded
+addx6039 add '700000'  '10000e+16' -> '1.000000000000007E+20' Rounded
+
+-- symmetry:
+addx6040 add '10000e+16'  '70' -> '1.000000000000000E+20' Inexact Rounded
+addx6041 add '10000e+16'  '700' -> '1.000000000000000E+20' Inexact Rounded
+addx6042 add '10000e+16'  '7000' -> '1.000000000000000E+20' Inexact Rounded
+addx6044 add '10000e+16'  '70000' -> '1.000000000000001E+20' Inexact Rounded
+addx6045 add '10000e+16'  '700000' -> '1.000000000000007E+20' Rounded
+
+addx6046 add '10000e+9'  '7' -> '10000000000007'
+addx6047 add '10000e+9'  '70' -> '10000000000070'
+addx6048 add '10000e+9'  '700' -> '10000000000700'
+addx6049 add '10000e+9'  '7000' -> '10000000007000'
+addx6050 add '10000e+9'  '70000' -> '10000000070000'
+addx6051 add '10000e+9'  '700000' -> '10000000700000'
+
+-- examples from decarith
+addx6053 add '12' '7.00' -> '19.00'
+addx6054 add '1.3' '-1.07' -> '0.23'
+addx6055 add '1.3' '-1.30' -> '0.00'
+addx6056 add '1.3' '-2.07' -> '-0.77'
+addx6057 add '1E+2' '1E+4' -> '1.01E+4'
+
+-- from above
+addx6061 add 1 '0.1' -> '1.1'
+addx6062 add 1 '0.01' -> '1.01'
+addx6063 add 1 '0.001' -> '1.001'
+addx6064 add 1 '0.0001' -> '1.0001'
+addx6065 add 1 '0.00001' -> '1.00001'
+addx6066 add 1 '0.000001' -> '1.000001'
+addx6067 add 1 '0.0000001' -> '1.0000001'
+addx6068 add 1 '0.00000001' -> '1.00000001'
+
+-- cancellation to integer
+addx6069 add 99999999999999123456789 -99999999999999E+9 -> 123456789
+
+-- some funny zeros [in case of bad signum]
+addx6070 add 1  0    -> 1
+addx6071 add 1 0.    -> 1
+addx6072 add 1  .0   -> 1.0
+addx6073 add 1 0.0   -> 1.0
+addx6074 add 1 0.00  -> 1.00
+addx6075 add  0  1   -> 1
+addx6076 add 0.  1   -> 1
+addx6077 add  .0 1   -> 1.0
+addx6078 add 0.0 1   -> 1.0
+addx6079 add 0.00 1  -> 1.00
+
+-- some carries
+addx6080 add 9999999999999998 1  -> 9999999999999999
+addx6081 add 9999999999999999 1  -> 1.000000000000000E+16 Rounded
+addx6082 add  999999999999999 1  -> 1000000000000000
+addx6083 add    9999999999999 1  -> 10000000000000
+addx6084 add      99999999999 1  -> 100000000000
+addx6085 add        999999999 1  -> 1000000000
+addx6086 add          9999999 1  -> 10000000
+addx6087 add            99999 1  -> 100000
+addx6088 add              999 1  -> 1000
+addx6089 add                9 1  -> 10
+
+
+-- more LHS swaps
+addx6090 add '-56267E-10'   0 ->  '-0.0000056267'
+addx6091 add '-56267E-6'    0 ->  '-0.056267'
+addx6092 add '-56267E-5'    0 ->  '-0.56267'
+addx6093 add '-56267E-4'    0 ->  '-5.6267'
+addx6094 add '-56267E-3'    0 ->  '-56.267'
+addx6095 add '-56267E-2'    0 ->  '-562.67'
+addx6096 add '-56267E-1'    0 ->  '-5626.7'
+addx6097 add '-56267E-0'    0 ->  '-56267'
+addx6098 add '-5E-10'       0 ->  '-5E-10'
+addx6099 add '-5E-7'        0 ->  '-5E-7'
+addx6100 add '-5E-6'        0 ->  '-0.000005'
+addx6101 add '-5E-5'        0 ->  '-0.00005'
+addx6102 add '-5E-4'        0 ->  '-0.0005'
+addx6103 add '-5E-1'        0 ->  '-0.5'
+addx6104 add '-5E0'         0 ->  '-5'
+addx6105 add '-5E1'         0 ->  '-50'
+addx6106 add '-5E5'         0 ->  '-500000'
+addx6107 add '-5E15'        0 ->  '-5000000000000000'
+addx6108 add '-5E16'        0 ->  '-5.000000000000000E+16'   Rounded
+addx6109 add '-5E17'        0 ->  '-5.000000000000000E+17'  Rounded
+addx6110 add '-5E18'        0 ->  '-5.000000000000000E+18'  Rounded
+addx6111 add '-5E100'       0 ->  '-5.000000000000000E+100' Rounded
+
+-- more RHS swaps
+addx6113 add 0  '-56267E-10' ->  '-0.0000056267'
+addx6114 add 0  '-56267E-6'  ->  '-0.056267'
+addx6116 add 0  '-56267E-5'  ->  '-0.56267'
+addx6117 add 0  '-56267E-4'  ->  '-5.6267'
+addx6119 add 0  '-56267E-3'  ->  '-56.267'
+addx6120 add 0  '-56267E-2'  ->  '-562.67'
+addx6121 add 0  '-56267E-1'  ->  '-5626.7'
+addx6122 add 0  '-56267E-0'  ->  '-56267'
+addx6123 add 0  '-5E-10'     ->  '-5E-10'
+addx6124 add 0  '-5E-7'      ->  '-5E-7'
+addx6125 add 0  '-5E-6'      ->  '-0.000005'
+addx6126 add 0  '-5E-5'      ->  '-0.00005'
+addx6127 add 0  '-5E-4'      ->  '-0.0005'
+addx6128 add 0  '-5E-1'      ->  '-0.5'
+addx6129 add 0  '-5E0'       ->  '-5'
+addx6130 add 0  '-5E1'       ->  '-50'
+addx6131 add 0  '-5E5'       ->  '-500000'
+addx6132 add 0  '-5E15'      ->  '-5000000000000000'
+addx6133 add 0  '-5E16'      ->  '-5.000000000000000E+16'   Rounded
+addx6134 add 0  '-5E17'      ->  '-5.000000000000000E+17'   Rounded
+addx6135 add 0  '-5E18'      ->  '-5.000000000000000E+18'   Rounded
+addx6136 add 0  '-5E100'     ->  '-5.000000000000000E+100'  Rounded
+
+-- related
+addx6137 add  1  '0E-19'      ->  '1.000000000000000'  Rounded
+addx6138 add -1  '0E-19'      ->  '-1.000000000000000' Rounded
+addx6139 add '0E-19' 1        ->  '1.000000000000000'  Rounded
+addx6140 add '0E-19' -1       ->  '-1.000000000000000' Rounded
+addx6141 add 1E+11   0.0000   ->  '100000000000.0000'
+addx6142 add 1E+11   0.00000  ->  '100000000000.0000'  Rounded
+addx6143 add 0.000   1E+12    ->  '1000000000000.000'
+addx6144 add 0.0000  1E+12    ->  '1000000000000.000'  Rounded
+
+-- [some of the next group are really constructor tests]
+addx6146 add '00.0'  0       ->  '0.0'
+addx6147 add '0.00'  0       ->  '0.00'
+addx6148 add  0      '0.00'  ->  '0.00'
+addx6149 add  0      '00.0'  ->  '0.0'
+addx6150 add '00.0'  '0.00'  ->  '0.00'
+addx6151 add '0.00'  '00.0'  ->  '0.00'
+addx6152 add '3'     '.3'    ->  '3.3'
+addx6153 add '3.'    '.3'    ->  '3.3'
+addx6154 add '3.0'   '.3'    ->  '3.3'
+addx6155 add '3.00'  '.3'    ->  '3.30'
+addx6156 add '3'     '3'     ->  '6'
+addx6157 add '3'     '+3'    ->  '6'
+addx6158 add '3'     '-3'    ->  '0'
+addx6159 add '0.3'   '-0.3'  ->  '0.0'
+addx6160 add '0.03'  '-0.03' ->  '0.00'
+
+-- try borderline precision, with carries, etc.
+addx6161 add '1E+13' '-1'    -> '9999999999999'
+addx6162 add '1E+13'  '1.11' -> '10000000000001.11'
+addx6163 add '1.11'  '1E+13' -> '10000000000001.11'
+addx6164 add '-1'    '1E+13' -> '9999999999999'
+addx6165 add '7E+13' '-1'    -> '69999999999999'
+addx6166 add '7E+13'  '1.11' -> '70000000000001.11'
+addx6167 add '1.11'  '7E+13' -> '70000000000001.11'
+addx6168 add '-1'    '7E+13' -> '69999999999999'
+
+--             1234567890123456      1234567890123456      1 234567890123456
+addx6170 add '0.4444444444444444'  '0.5555555555555563' -> '1.000000000000001' Inexact Rounded
+addx6171 add '0.4444444444444444'  '0.5555555555555562' -> '1.000000000000001' Inexact Rounded
+addx6172 add '0.4444444444444444'  '0.5555555555555561' -> '1.000000000000000' Inexact Rounded
+addx6173 add '0.4444444444444444'  '0.5555555555555560' -> '1.000000000000000' Inexact Rounded
+addx6174 add '0.4444444444444444'  '0.5555555555555559' -> '1.000000000000000' Inexact Rounded
+addx6175 add '0.4444444444444444'  '0.5555555555555558' -> '1.000000000000000' Inexact Rounded
+addx6176 add '0.4444444444444444'  '0.5555555555555557' -> '1.000000000000000' Inexact Rounded
+addx6177 add '0.4444444444444444'  '0.5555555555555556' -> '1.000000000000000' Rounded
+addx6178 add '0.4444444444444444'  '0.5555555555555555' -> '0.9999999999999999'
+addx6179 add '0.4444444444444444'  '0.5555555555555554' -> '0.9999999999999998'
+addx6180 add '0.4444444444444444'  '0.5555555555555553' -> '0.9999999999999997'
+addx6181 add '0.4444444444444444'  '0.5555555555555552' -> '0.9999999999999996'
+addx6182 add '0.4444444444444444'  '0.5555555555555551' -> '0.9999999999999995'
+addx6183 add '0.4444444444444444'  '0.5555555555555550' -> '0.9999999999999994'
+
+-- and some more, including residue effects and different roundings
+rounding: half_up
+addx6200 add '6543210123456789' 0             -> '6543210123456789'
+addx6201 add '6543210123456789' 0.000000001   -> '6543210123456789' Inexact Rounded
+addx6202 add '6543210123456789' 0.000001      -> '6543210123456789' Inexact Rounded
+addx6203 add '6543210123456789' 0.1           -> '6543210123456789' Inexact Rounded
+addx6204 add '6543210123456789' 0.4           -> '6543210123456789' Inexact Rounded
+addx6205 add '6543210123456789' 0.49          -> '6543210123456789' Inexact Rounded
+addx6206 add '6543210123456789' 0.499999      -> '6543210123456789' Inexact Rounded
+addx6207 add '6543210123456789' 0.499999999   -> '6543210123456789' Inexact Rounded
+addx6208 add '6543210123456789' 0.5           -> '6543210123456790' Inexact Rounded
+addx6209 add '6543210123456789' 0.500000001   -> '6543210123456790' Inexact Rounded
+addx6210 add '6543210123456789' 0.500001      -> '6543210123456790' Inexact Rounded
+addx6211 add '6543210123456789' 0.51          -> '6543210123456790' Inexact Rounded
+addx6212 add '6543210123456789' 0.6           -> '6543210123456790' Inexact Rounded
+addx6213 add '6543210123456789' 0.9           -> '6543210123456790' Inexact Rounded
+addx6214 add '6543210123456789' 0.99999       -> '6543210123456790' Inexact Rounded
+addx6215 add '6543210123456789' 0.999999999   -> '6543210123456790' Inexact Rounded
+addx6216 add '6543210123456789' 1             -> '6543210123456790'
+addx6217 add '6543210123456789' 1.000000001   -> '6543210123456790' Inexact Rounded
+addx6218 add '6543210123456789' 1.00001       -> '6543210123456790' Inexact Rounded
+addx6219 add '6543210123456789' 1.1           -> '6543210123456790' Inexact Rounded
+
+rounding: half_even
+addx6220 add '6543210123456789' 0             -> '6543210123456789'
+addx6221 add '6543210123456789' 0.000000001   -> '6543210123456789' Inexact Rounded
+addx6222 add '6543210123456789' 0.000001      -> '6543210123456789' Inexact Rounded
+addx6223 add '6543210123456789' 0.1           -> '6543210123456789' Inexact Rounded
+addx6224 add '6543210123456789' 0.4           -> '6543210123456789' Inexact Rounded
+addx6225 add '6543210123456789' 0.49          -> '6543210123456789' Inexact Rounded
+addx6226 add '6543210123456789' 0.499999      -> '6543210123456789' Inexact Rounded
+addx6227 add '6543210123456789' 0.499999999   -> '6543210123456789' Inexact Rounded
+addx6228 add '6543210123456789' 0.5           -> '6543210123456790' Inexact Rounded
+addx6229 add '6543210123456789' 0.500000001   -> '6543210123456790' Inexact Rounded
+addx6230 add '6543210123456789' 0.500001      -> '6543210123456790' Inexact Rounded
+addx6231 add '6543210123456789' 0.51          -> '6543210123456790' Inexact Rounded
+addx6232 add '6543210123456789' 0.6           -> '6543210123456790' Inexact Rounded
+addx6233 add '6543210123456789' 0.9           -> '6543210123456790' Inexact Rounded
+addx6234 add '6543210123456789' 0.99999       -> '6543210123456790' Inexact Rounded
+addx6235 add '6543210123456789' 0.999999999   -> '6543210123456790' Inexact Rounded
+addx6236 add '6543210123456789' 1             -> '6543210123456790'
+addx6237 add '6543210123456789' 1.00000001    -> '6543210123456790' Inexact Rounded
+addx6238 add '6543210123456789' 1.00001       -> '6543210123456790' Inexact Rounded
+addx6239 add '6543210123456789' 1.1           -> '6543210123456790' Inexact Rounded
+-- critical few with even bottom digit...
+addx6240 add '6543210123456788' 0.499999999   -> '6543210123456788' Inexact Rounded
+addx6241 add '6543210123456788' 0.5           -> '6543210123456788' Inexact Rounded
+addx6242 add '6543210123456788' 0.500000001   -> '6543210123456789' Inexact Rounded
+
+rounding: down
+addx6250 add '6543210123456789' 0             -> '6543210123456789'
+addx6251 add '6543210123456789' 0.000000001   -> '6543210123456789' Inexact Rounded
+addx6252 add '6543210123456789' 0.000001      -> '6543210123456789' Inexact Rounded
+addx6253 add '6543210123456789' 0.1           -> '6543210123456789' Inexact Rounded
+addx6254 add '6543210123456789' 0.4           -> '6543210123456789' Inexact Rounded
+addx6255 add '6543210123456789' 0.49          -> '6543210123456789' Inexact Rounded
+addx6256 add '6543210123456789' 0.499999      -> '6543210123456789' Inexact Rounded
+addx6257 add '6543210123456789' 0.499999999   -> '6543210123456789' Inexact Rounded
+addx6258 add '6543210123456789' 0.5           -> '6543210123456789' Inexact Rounded
+addx6259 add '6543210123456789' 0.500000001   -> '6543210123456789' Inexact Rounded
+addx6260 add '6543210123456789' 0.500001      -> '6543210123456789' Inexact Rounded
+addx6261 add '6543210123456789' 0.51          -> '6543210123456789' Inexact Rounded
+addx6262 add '6543210123456789' 0.6           -> '6543210123456789' Inexact Rounded
+addx6263 add '6543210123456789' 0.9           -> '6543210123456789' Inexact Rounded
+addx6264 add '6543210123456789' 0.99999       -> '6543210123456789' Inexact Rounded
+addx6265 add '6543210123456789' 0.999999999   -> '6543210123456789' Inexact Rounded
+addx6266 add '6543210123456789' 1             -> '6543210123456790'
+addx6267 add '6543210123456789' 1.00000001    -> '6543210123456790' Inexact Rounded
+addx6268 add '6543210123456789' 1.00001       -> '6543210123456790' Inexact Rounded
+addx6269 add '6543210123456789' 1.1           -> '6543210123456790' Inexact Rounded
+
+-- 1 in last place tests
+rounding: half_even
+addx6301 add  -1   1      ->   0
+addx6302 add   0   1      ->   1
+addx6303 add   1   1      ->   2
+addx6304 add  12   1      ->  13
+addx6305 add  98   1      ->  99
+addx6306 add  99   1      -> 100
+addx6307 add 100   1      -> 101
+addx6308 add 101   1      -> 102
+addx6309 add  -1  -1      ->  -2
+addx6310 add   0  -1      ->  -1
+addx6311 add   1  -1      ->   0
+addx6312 add  12  -1      ->  11
+addx6313 add  98  -1      ->  97
+addx6314 add  99  -1      ->  98
+addx6315 add 100  -1      ->  99
+addx6316 add 101  -1      -> 100
+
+addx6321 add -0.01  0.01    ->  0.00
+addx6322 add  0.00  0.01    ->  0.01
+addx6323 add  0.01  0.01    ->  0.02
+addx6324 add  0.12  0.01    ->  0.13
+addx6325 add  0.98  0.01    ->  0.99
+addx6326 add  0.99  0.01    ->  1.00
+addx6327 add  1.00  0.01    ->  1.01
+addx6328 add  1.01  0.01    ->  1.02
+addx6329 add -0.01 -0.01    -> -0.02
+addx6330 add  0.00 -0.01    -> -0.01
+addx6331 add  0.01 -0.01    ->  0.00
+addx6332 add  0.12 -0.01    ->  0.11
+addx6333 add  0.98 -0.01    ->  0.97
+addx6334 add  0.99 -0.01    ->  0.98
+addx6335 add  1.00 -0.01    ->  0.99
+addx6336 add  1.01 -0.01    ->  1.00
+
+-- some more cases where adding 0 affects the coefficient
+addx6340 add 1E+3    0    ->         1000
+addx6341 add 1E+15   0    ->    1000000000000000
+addx6342 add 1E+16   0    ->   1.000000000000000E+16  Rounded
+addx6343 add 1E+17   0    ->   1.000000000000000E+17  Rounded
+-- which simply follow from these cases ...
+addx6344 add 1E+3    1    ->         1001
+addx6345 add 1E+15   1    ->    1000000000000001
+addx6346 add 1E+16   1    ->   1.000000000000000E+16  Inexact Rounded
+addx6347 add 1E+17   1    ->   1.000000000000000E+17  Inexact Rounded
+addx6348 add 1E+3    7    ->         1007
+addx6349 add 1E+15   7    ->    1000000000000007
+addx6350 add 1E+16   7    ->   1.000000000000001E+16  Inexact Rounded
+addx6351 add 1E+17   7    ->   1.000000000000000E+17  Inexact Rounded
+
+-- tryzeros cases
+addx6361  add 0E+50 10000E+1  -> 1.0000E+5
+addx6362  add 10000E+1 0E-50  -> 100000.0000000000  Rounded
+addx6363  add 10000E+1 10000E-50  -> 100000.0000000000  Rounded Inexact
+addx6364  add 12.34    0e-398  -> 12.34000000000000  Rounded
+
+-- ulp replacement tests
+addx6400 add   1   77e-14      ->  1.00000000000077
+addx6401 add   1   77e-15      ->  1.000000000000077
+addx6402 add   1   77e-16      ->  1.000000000000008 Inexact Rounded
+addx6403 add   1   77e-17      ->  1.000000000000001 Inexact Rounded
+addx6404 add   1   77e-18      ->  1.000000000000000 Inexact Rounded
+addx6405 add   1   77e-19      ->  1.000000000000000 Inexact Rounded
+addx6406 add   1   77e-99      ->  1.000000000000000 Inexact Rounded
+
+addx6410 add  10   77e-14      ->  10.00000000000077
+addx6411 add  10   77e-15      ->  10.00000000000008 Inexact Rounded
+addx6412 add  10   77e-16      ->  10.00000000000001 Inexact Rounded
+addx6413 add  10   77e-17      ->  10.00000000000000 Inexact Rounded
+addx6414 add  10   77e-18      ->  10.00000000000000 Inexact Rounded
+addx6415 add  10   77e-19      ->  10.00000000000000 Inexact Rounded
+addx6416 add  10   77e-99      ->  10.00000000000000 Inexact Rounded
+
+addx6420 add  77e-14       1   ->  1.00000000000077
+addx6421 add  77e-15       1   ->  1.000000000000077
+addx6422 add  77e-16       1   ->  1.000000000000008 Inexact Rounded
+addx6423 add  77e-17       1   ->  1.000000000000001 Inexact Rounded
+addx6424 add  77e-18       1   ->  1.000000000000000 Inexact Rounded
+addx6425 add  77e-19       1   ->  1.000000000000000 Inexact Rounded
+addx6426 add  77e-99       1   ->  1.000000000000000 Inexact Rounded
+
+addx6430 add  77e-14      10   ->  10.00000000000077
+addx6431 add  77e-15      10   ->  10.00000000000008 Inexact Rounded
+addx6432 add  77e-16      10   ->  10.00000000000001 Inexact Rounded
+addx6433 add  77e-17      10   ->  10.00000000000000 Inexact Rounded
+addx6434 add  77e-18      10   ->  10.00000000000000 Inexact Rounded
+addx6435 add  77e-19      10   ->  10.00000000000000 Inexact Rounded
+addx6436 add  77e-99      10   ->  10.00000000000000 Inexact Rounded
+
+-- negative ulps
+addx6440 add   1   -77e-14      ->  0.99999999999923
+addx6441 add   1   -77e-15      ->  0.999999999999923
+addx6442 add   1   -77e-16      ->  0.9999999999999923
+addx6443 add   1   -77e-17      ->  0.9999999999999992 Inexact Rounded
+addx6444 add   1   -77e-18      ->  0.9999999999999999 Inexact Rounded
+addx6445 add   1   -77e-19      ->  1.000000000000000 Inexact Rounded
+addx6446 add   1   -77e-99      ->  1.000000000000000 Inexact Rounded
+
+addx6450 add  10   -77e-14      ->   9.99999999999923
+addx6451 add  10   -77e-15      ->   9.999999999999923
+addx6452 add  10   -77e-16      ->   9.999999999999992 Inexact Rounded
+addx6453 add  10   -77e-17      ->   9.999999999999999 Inexact Rounded
+addx6454 add  10   -77e-18      ->  10.00000000000000 Inexact Rounded
+addx6455 add  10   -77e-19      ->  10.00000000000000 Inexact Rounded
+addx6456 add  10   -77e-99      ->  10.00000000000000 Inexact Rounded
+
+addx6460 add  -77e-14       1   ->  0.99999999999923
+addx6461 add  -77e-15       1   ->  0.999999999999923
+addx6462 add  -77e-16       1   ->  0.9999999999999923
+addx6463 add  -77e-17       1   ->  0.9999999999999992 Inexact Rounded
+addx6464 add  -77e-18       1   ->  0.9999999999999999 Inexact Rounded
+addx6465 add  -77e-19       1   ->  1.000000000000000 Inexact Rounded
+addx6466 add  -77e-99       1   ->  1.000000000000000 Inexact Rounded
+
+addx6470 add  -77e-14      10   ->   9.99999999999923
+addx6471 add  -77e-15      10   ->   9.999999999999923
+addx6472 add  -77e-16      10   ->   9.999999999999992 Inexact Rounded
+addx6473 add  -77e-17      10   ->   9.999999999999999 Inexact Rounded
+addx6474 add  -77e-18      10   ->  10.00000000000000 Inexact Rounded
+addx6475 add  -77e-19      10   ->  10.00000000000000 Inexact Rounded
+addx6476 add  -77e-99      10   ->  10.00000000000000 Inexact Rounded
+
+-- negative ulps
+addx6480 add  -1    77e-14      ->  -0.99999999999923
+addx6481 add  -1    77e-15      ->  -0.999999999999923
+addx6482 add  -1    77e-16      ->  -0.9999999999999923
+addx6483 add  -1    77e-17      ->  -0.9999999999999992 Inexact Rounded
+addx6484 add  -1    77e-18      ->  -0.9999999999999999 Inexact Rounded
+addx6485 add  -1    77e-19      ->  -1.000000000000000 Inexact Rounded
+addx6486 add  -1    77e-99      ->  -1.000000000000000 Inexact Rounded
+
+addx6490 add -10    77e-14      ->   -9.99999999999923
+addx6491 add -10    77e-15      ->   -9.999999999999923
+addx6492 add -10    77e-16      ->   -9.999999999999992 Inexact Rounded
+addx6493 add -10    77e-17      ->   -9.999999999999999 Inexact Rounded
+addx6494 add -10    77e-18      ->  -10.00000000000000 Inexact Rounded
+addx6495 add -10    77e-19      ->  -10.00000000000000 Inexact Rounded
+addx6496 add -10    77e-99      ->  -10.00000000000000 Inexact Rounded
+
+addx6500 add   77e-14      -1   ->  -0.99999999999923
+addx6501 add   77e-15      -1   ->  -0.999999999999923
+addx6502 add   77e-16      -1   ->  -0.9999999999999923
+addx6503 add   77e-17      -1   ->  -0.9999999999999992 Inexact Rounded
+addx6504 add   77e-18      -1   ->  -0.9999999999999999 Inexact Rounded
+addx6505 add   77e-19      -1   ->  -1.000000000000000 Inexact Rounded
+addx6506 add   77e-99      -1   ->  -1.000000000000000 Inexact Rounded
+
+addx6510 add   77e-14      -10  ->   -9.99999999999923
+addx6511 add   77e-15      -10  ->   -9.999999999999923
+addx6512 add   77e-16      -10  ->   -9.999999999999992 Inexact Rounded
+addx6513 add   77e-17      -10  ->   -9.999999999999999 Inexact Rounded
+addx6514 add   77e-18      -10  ->  -10.00000000000000 Inexact Rounded
+addx6515 add   77e-19      -10  ->  -10.00000000000000 Inexact Rounded
+addx6516 add   77e-99      -10  ->  -10.00000000000000 Inexact Rounded
+
+
+-- long operands
+addx6521 add 101234562345678000 0 -> 1.012345623456780E+17 Rounded
+addx6522 add 0 101234562345678000 -> 1.012345623456780E+17 Rounded
+addx6523 add 10123456234567800  0 -> 1.012345623456780E+16 Rounded
+addx6524 add 0 10123456234567800  -> 1.012345623456780E+16 Rounded
+addx6525 add 10123456234567890  0 -> 1.012345623456789E+16 Rounded
+addx6526 add 0 10123456234567890  -> 1.012345623456789E+16 Rounded
+addx6527 add 10123456234567891  0 -> 1.012345623456789E+16 Inexact Rounded
+addx6528 add 0 10123456234567891  -> 1.012345623456789E+16 Inexact Rounded
+addx6529 add 101234562345678901 0 -> 1.012345623456789E+17 Inexact Rounded
+addx6530 add 0 101234562345678901 -> 1.012345623456789E+17 Inexact Rounded
+addx6531 add 10123456234567896  0 -> 1.012345623456790E+16 Inexact Rounded
+addx6532 add 0 10123456234567896  -> 1.012345623456790E+16 Inexact Rounded
+
+-- verify a query
+rounding:     down
+addx6561 add 1e-398 9.000000000000000E+384 -> 9.000000000000000E+384 Inexact Rounded
+addx6562 add      0 9.000000000000000E+384 -> 9.000000000000000E+384 Rounded
+-- and using decimal64 bounds...
+rounding:     down
+addx6563 add 1e-388 9.000000000000000E+374 -> 9.000000000000000E+374 Inexact Rounded
+addx6564 add      0 9.000000000000000E+374 -> 9.000000000000000E+374 Rounded
+
+-- more zeros, etc.
+rounding: half_even
+
+addx6701 add 5.00 1.00E-3 -> 5.00100
+addx6702 add 00.00 0.000  -> 0.000
+addx6703 add 00.00 0E-3   -> 0.000
+addx6704 add 0E-3  00.00  -> 0.000
+
+addx6710 add 0E+3  00.00  -> 0.00
+addx6711 add 0E+3  00.0   -> 0.0
+addx6712 add 0E+3  00.    -> 0
+addx6713 add 0E+3  00.E+1 -> 0E+1
+addx6714 add 0E+3  00.E+2 -> 0E+2
+addx6715 add 0E+3  00.E+3 -> 0E+3
+addx6716 add 0E+3  00.E+4 -> 0E+3
+addx6717 add 0E+3  00.E+5 -> 0E+3
+addx6718 add 0E+3  -00.0   -> 0.0
+addx6719 add 0E+3  -00.    -> 0
+addx6731 add 0E+3  -00.E+1 -> 0E+1
+
+addx6720 add 00.00  0E+3  -> 0.00
+addx6721 add 00.0   0E+3  -> 0.0
+addx6722 add 00.    0E+3  -> 0
+addx6723 add 00.E+1 0E+3  -> 0E+1
+addx6724 add 00.E+2 0E+3  -> 0E+2
+addx6725 add 00.E+3 0E+3  -> 0E+3
+addx6726 add 00.E+4 0E+3  -> 0E+3
+addx6727 add 00.E+5 0E+3  -> 0E+3
+addx6728 add -00.00 0E+3  -> 0.00
+addx6729 add -00.0  0E+3  -> 0.0
+addx6730 add -00.   0E+3  -> 0
+
+addx6732 add  0     0     ->  0
+addx6733 add  0    -0     ->  0
+addx6734 add -0     0     ->  0
+addx6735 add -0    -0     -> -0     -- IEEE 854 special case
+
+addx6736 add  1    -1     ->  0
+addx6737 add -1    -1     -> -2
+addx6738 add  1     1     ->  2
+addx6739 add -1     1     ->  0
+
+addx6741 add  0    -1     -> -1
+addx6742 add -0    -1     -> -1
+addx6743 add  0     1     ->  1
+addx6744 add -0     1     ->  1
+addx6745 add -1     0     -> -1
+addx6746 add -1    -0     -> -1
+addx6747 add  1     0     ->  1
+addx6748 add  1    -0     ->  1
+
+addx6751 add  0.0  -1     -> -1.0
+addx6752 add -0.0  -1     -> -1.0
+addx6753 add  0.0   1     ->  1.0
+addx6754 add -0.0   1     ->  1.0
+addx6755 add -1.0   0     -> -1.0
+addx6756 add -1.0  -0     -> -1.0
+addx6757 add  1.0   0     ->  1.0
+addx6758 add  1.0  -0     ->  1.0
+
+addx6761 add  0    -1.0   -> -1.0
+addx6762 add -0    -1.0   -> -1.0
+addx6763 add  0     1.0   ->  1.0
+addx6764 add -0     1.0   ->  1.0
+addx6765 add -1     0.0   -> -1.0
+addx6766 add -1    -0.0   -> -1.0
+addx6767 add  1     0.0   ->  1.0
+addx6768 add  1    -0.0   ->  1.0
+
+addx6771 add  0.0  -1.0   -> -1.0
+addx6772 add -0.0  -1.0   -> -1.0
+addx6773 add  0.0   1.0   ->  1.0
+addx6774 add -0.0   1.0   ->  1.0
+addx6775 add -1.0   0.0   -> -1.0
+addx6776 add -1.0  -0.0   -> -1.0
+addx6777 add  1.0   0.0   ->  1.0
+addx6778 add  1.0  -0.0   ->  1.0
+
+-- Specials
+addx6780 add -Inf  -Inf   -> -Infinity
+addx6781 add -Inf  -1000  -> -Infinity
+addx6782 add -Inf  -1     -> -Infinity
+addx6783 add -Inf  -0     -> -Infinity
+addx6784 add -Inf   0     -> -Infinity
+addx6785 add -Inf   1     -> -Infinity
+addx6786 add -Inf   1000  -> -Infinity
+addx6787 add -1000 -Inf   -> -Infinity
+addx6788 add -Inf  -Inf   -> -Infinity
+addx6789 add -1    -Inf   -> -Infinity
+addx6790 add -0    -Inf   -> -Infinity
+addx6791 add  0    -Inf   -> -Infinity
+addx6792 add  1    -Inf   -> -Infinity
+addx6793 add  1000 -Inf   -> -Infinity
+addx6794 add  Inf  -Inf   ->  NaN  Invalid_operation
+
+addx6800 add  Inf  -Inf   ->  NaN  Invalid_operation
+addx6801 add  Inf  -1000  ->  Infinity
+addx6802 add  Inf  -1     ->  Infinity
+addx6803 add  Inf  -0     ->  Infinity
+addx6804 add  Inf   0     ->  Infinity
+addx6805 add  Inf   1     ->  Infinity
+addx6806 add  Inf   1000  ->  Infinity
+addx6807 add  Inf   Inf   ->  Infinity
+addx6808 add -1000  Inf   ->  Infinity
+addx6809 add -Inf   Inf   ->  NaN  Invalid_operation
+addx6810 add -1     Inf   ->  Infinity
+addx6811 add -0     Inf   ->  Infinity
+addx6812 add  0     Inf   ->  Infinity
+addx6813 add  1     Inf   ->  Infinity
+addx6814 add  1000  Inf   ->  Infinity
+addx6815 add  Inf   Inf   ->  Infinity
+
+addx6821 add  NaN -Inf    ->  NaN
+addx6822 add  NaN -1000   ->  NaN
+addx6823 add  NaN -1      ->  NaN
+addx6824 add  NaN -0      ->  NaN
+addx6825 add  NaN  0      ->  NaN
+addx6826 add  NaN  1      ->  NaN
+addx6827 add  NaN  1000   ->  NaN
+addx6828 add  NaN  Inf    ->  NaN
+addx6829 add  NaN  NaN    ->  NaN
+addx6830 add -Inf  NaN    ->  NaN
+addx6831 add -1000 NaN    ->  NaN
+addx6832 add -1    NaN    ->  NaN
+addx6833 add -0    NaN    ->  NaN
+addx6834 add  0    NaN    ->  NaN
+addx6835 add  1    NaN    ->  NaN
+addx6836 add  1000 NaN    ->  NaN
+addx6837 add  Inf  NaN    ->  NaN
+
+addx6841 add  sNaN -Inf   ->  NaN  Invalid_operation
+addx6842 add  sNaN -1000  ->  NaN  Invalid_operation
+addx6843 add  sNaN -1     ->  NaN  Invalid_operation
+addx6844 add  sNaN -0     ->  NaN  Invalid_operation
+addx6845 add  sNaN  0     ->  NaN  Invalid_operation
+addx6846 add  sNaN  1     ->  NaN  Invalid_operation
+addx6847 add  sNaN  1000  ->  NaN  Invalid_operation
+addx6848 add  sNaN  NaN   ->  NaN  Invalid_operation
+addx6849 add  sNaN sNaN   ->  NaN  Invalid_operation
+addx6850 add  NaN  sNaN   ->  NaN  Invalid_operation
+addx6851 add -Inf  sNaN   ->  NaN  Invalid_operation
+addx6852 add -1000 sNaN   ->  NaN  Invalid_operation
+addx6853 add -1    sNaN   ->  NaN  Invalid_operation
+addx6854 add -0    sNaN   ->  NaN  Invalid_operation
+addx6855 add  0    sNaN   ->  NaN  Invalid_operation
+addx6856 add  1    sNaN   ->  NaN  Invalid_operation
+addx6857 add  1000 sNaN   ->  NaN  Invalid_operation
+addx6858 add  Inf  sNaN   ->  NaN  Invalid_operation
+addx6859 add  NaN  sNaN   ->  NaN  Invalid_operation
+
+-- propagating NaNs
+addx6861 add  NaN1   -Inf    ->  NaN1
+addx6862 add +NaN2   -1000   ->  NaN2
+addx6863 add  NaN3    1000   ->  NaN3
+addx6864 add  NaN4    Inf    ->  NaN4
+addx6865 add  NaN5   +NaN6   ->  NaN5
+addx6866 add -Inf     NaN7   ->  NaN7
+addx6867 add -1000    NaN8   ->  NaN8
+addx6868 add  1000    NaN9   ->  NaN9
+addx6869 add  Inf    +NaN10  ->  NaN10
+addx6871 add  sNaN11  -Inf   ->  NaN11  Invalid_operation
+addx6872 add  sNaN12  -1000  ->  NaN12  Invalid_operation
+addx6873 add  sNaN13   1000  ->  NaN13  Invalid_operation
+addx6874 add  sNaN14   NaN17 ->  NaN14  Invalid_operation
+addx6875 add  sNaN15  sNaN18 ->  NaN15  Invalid_operation
+addx6876 add  NaN16   sNaN19 ->  NaN19  Invalid_operation
+addx6877 add -Inf    +sNaN20 ->  NaN20  Invalid_operation
+addx6878 add -1000    sNaN21 ->  NaN21  Invalid_operation
+addx6879 add  1000    sNaN22 ->  NaN22  Invalid_operation
+addx6880 add  Inf     sNaN23 ->  NaN23  Invalid_operation
+addx6881 add +NaN25  +sNaN24 ->  NaN24  Invalid_operation
+addx6882 add -NaN26    NaN28 -> -NaN26
+addx6883 add -sNaN27  sNaN29 -> -NaN27  Invalid_operation
+addx6884 add  1000    -NaN30 -> -NaN30
+addx6885 add  1000   -sNaN31 -> -NaN31  Invalid_operation
+
+-- now the case where we can get underflow but the result is normal
+-- [note this can't happen if the operands are also bounded, as we
+-- cannot represent 1E-399, for example]
+
+addx6571 add       1E-383       0  -> 1E-383
+addx6572 add       1E-384       0  -> 1E-384   Subnormal
+addx6573 add       1E-383  1E-384  -> 1.1E-383
+addx6574 subtract  1E-383  1E-384  ->   9E-384 Subnormal
+
+-- Here we explore the boundary of rounding a subnormal to Nmin
+addx6575 subtract  1E-383  1E-398  ->   9.99999999999999E-384  Subnormal
+addx6576 subtract  1E-383  1E-398  ->   9.99999999999999E-384  Subnormal
+addx6577 subtract  1E-383  1E-399  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded
+addx6578 subtract  1E-383  1E-400  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded
+addx6579 subtract  1E-383  1E-401  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded
+addx6580 subtract  1E-383  1E-402  ->   1.000000000000000E-383 Underflow Inexact Subnormal Rounded
+
+-- check overflow edge case
+--               1234567890123456
+addx6972 apply   9.999999999999999E+384         -> 9.999999999999999E+384
+addx6973 add     9.999999999999999E+384  1      -> 9.999999999999999E+384 Inexact Rounded
+addx6974 add      9999999999999999E+369  1      -> 9.999999999999999E+384 Inexact Rounded
+addx6975 add      9999999999999999E+369  1E+369  -> Infinity Overflow Inexact Rounded
+addx6976 add      9999999999999999E+369  9E+368  -> Infinity Overflow Inexact Rounded
+addx6977 add      9999999999999999E+369  8E+368  -> Infinity Overflow Inexact Rounded
+addx6978 add      9999999999999999E+369  7E+368  -> Infinity Overflow Inexact Rounded
+addx6979 add      9999999999999999E+369  6E+368  -> Infinity Overflow Inexact Rounded
+addx6980 add      9999999999999999E+369  5E+368  -> Infinity Overflow Inexact Rounded
+addx6981 add      9999999999999999E+369  4E+368  -> 9.999999999999999E+384 Inexact Rounded
+addx6982 add      9999999999999999E+369  3E+368  -> 9.999999999999999E+384 Inexact Rounded
+addx6983 add      9999999999999999E+369  2E+368  -> 9.999999999999999E+384 Inexact Rounded
+addx6984 add      9999999999999999E+369  1E+368  -> 9.999999999999999E+384 Inexact Rounded
+
+addx6985 apply  -9.999999999999999E+384         -> -9.999999999999999E+384
+addx6986 add    -9.999999999999999E+384 -1      -> -9.999999999999999E+384 Inexact Rounded
+addx6987 add     -9999999999999999E+369 -1      -> -9.999999999999999E+384 Inexact Rounded
+addx6988 add     -9999999999999999E+369 -1E+369  -> -Infinity Overflow Inexact Rounded
+addx6989 add     -9999999999999999E+369 -9E+368  -> -Infinity Overflow Inexact Rounded
+addx6990 add     -9999999999999999E+369 -8E+368  -> -Infinity Overflow Inexact Rounded
+addx6991 add     -9999999999999999E+369 -7E+368  -> -Infinity Overflow Inexact Rounded
+addx6992 add     -9999999999999999E+369 -6E+368  -> -Infinity Overflow Inexact Rounded
+addx6993 add     -9999999999999999E+369 -5E+368  -> -Infinity Overflow Inexact Rounded
+addx6994 add     -9999999999999999E+369 -4E+368  -> -9.999999999999999E+384 Inexact Rounded
+addx6995 add     -9999999999999999E+369 -3E+368  -> -9.999999999999999E+384 Inexact Rounded
+addx6996 add     -9999999999999999E+369 -2E+368  -> -9.999999999999999E+384 Inexact Rounded
+addx6997 add     -9999999999999999E+369 -1E+368  -> -9.999999999999999E+384 Inexact Rounded
+
+-- And for round down full and subnormal results
+rounding:     down
+addx61100 add 1e+2 -1e-383    -> 99.99999999999999 Rounded Inexact
+addx61101 add 1e+1 -1e-383    -> 9.999999999999999  Rounded Inexact
+addx61103 add   +1 -1e-383    -> 0.9999999999999999  Rounded Inexact
+addx61104 add 1e-1 -1e-383    -> 0.09999999999999999  Rounded Inexact
+addx61105 add 1e-2 -1e-383    -> 0.009999999999999999  Rounded Inexact
+addx61106 add 1e-3 -1e-383    -> 0.0009999999999999999  Rounded Inexact
+addx61107 add 1e-4 -1e-383    -> 0.00009999999999999999  Rounded Inexact
+addx61108 add 1e-5 -1e-383    -> 0.000009999999999999999  Rounded Inexact
+addx61109 add 1e-6 -1e-383    -> 9.999999999999999E-7  Rounded Inexact
+
+rounding:     ceiling
+addx61110 add -1e+2 +1e-383   -> -99.99999999999999 Rounded Inexact
+addx61111 add -1e+1 +1e-383   -> -9.999999999999999  Rounded Inexact
+addx61113 add    -1 +1e-383   -> -0.9999999999999999  Rounded Inexact
+addx61114 add -1e-1 +1e-383   -> -0.09999999999999999  Rounded Inexact
+addx61115 add -1e-2 +1e-383   -> -0.009999999999999999  Rounded Inexact
+addx61116 add -1e-3 +1e-383   -> -0.0009999999999999999  Rounded Inexact
+addx61117 add -1e-4 +1e-383   -> -0.00009999999999999999  Rounded Inexact
+addx61118 add -1e-5 +1e-383   -> -0.000009999999999999999  Rounded Inexact
+addx61119 add -1e-6 +1e-383   -> -9.999999999999999E-7  Rounded Inexact
+
+-- tests based on Gunnar Degnbol's edge case
+rounding:     half_even
+
+addx61300 add 1E16  -0.5                 ->  1.000000000000000E+16 Inexact Rounded
+addx61310 add 1E16  -0.51                ->  9999999999999999      Inexact Rounded
+addx61311 add 1E16  -0.501               ->  9999999999999999      Inexact Rounded
+addx61312 add 1E16  -0.5001              ->  9999999999999999      Inexact Rounded
+addx61313 add 1E16  -0.50001             ->  9999999999999999      Inexact Rounded
+addx61314 add 1E16  -0.500001            ->  9999999999999999      Inexact Rounded
+addx61315 add 1E16  -0.5000001           ->  9999999999999999      Inexact Rounded
+addx61316 add 1E16  -0.50000001          ->  9999999999999999      Inexact Rounded
+addx61317 add 1E16  -0.500000001         ->  9999999999999999      Inexact Rounded
+addx61318 add 1E16  -0.5000000001        ->  9999999999999999      Inexact Rounded
+addx61319 add 1E16  -0.50000000001       ->  9999999999999999      Inexact Rounded
+addx61320 add 1E16  -0.500000000001      ->  9999999999999999      Inexact Rounded
+addx61321 add 1E16  -0.5000000000001     ->  9999999999999999      Inexact Rounded
+addx61322 add 1E16  -0.50000000000001    ->  9999999999999999      Inexact Rounded
+addx61323 add 1E16  -0.500000000000001   ->  9999999999999999      Inexact Rounded
+addx61324 add 1E16  -0.5000000000000001  ->  9999999999999999      Inexact Rounded
+addx61325 add 1E16  -0.5000000000000000  ->  1.000000000000000E+16 Inexact Rounded
+addx61326 add 1E16  -0.500000000000000   ->  1.000000000000000E+16 Inexact Rounded
+addx61327 add 1E16  -0.50000000000000    ->  1.000000000000000E+16 Inexact Rounded
+addx61328 add 1E16  -0.5000000000000     ->  1.000000000000000E+16 Inexact Rounded
+addx61329 add 1E16  -0.500000000000      ->  1.000000000000000E+16 Inexact Rounded
+addx61330 add 1E16  -0.50000000000       ->  1.000000000000000E+16 Inexact Rounded
+addx61331 add 1E16  -0.5000000000        ->  1.000000000000000E+16 Inexact Rounded
+addx61332 add 1E16  -0.500000000         ->  1.000000000000000E+16 Inexact Rounded
+addx61333 add 1E16  -0.50000000          ->  1.000000000000000E+16 Inexact Rounded
+addx61334 add 1E16  -0.5000000           ->  1.000000000000000E+16 Inexact Rounded
+addx61335 add 1E16  -0.500000            ->  1.000000000000000E+16 Inexact Rounded
+addx61336 add 1E16  -0.50000             ->  1.000000000000000E+16 Inexact Rounded
+addx61337 add 1E16  -0.5000              ->  1.000000000000000E+16 Inexact Rounded
+addx61338 add 1E16  -0.500               ->  1.000000000000000E+16 Inexact Rounded
+addx61339 add 1E16  -0.50                ->  1.000000000000000E+16 Inexact Rounded
+
+addx61340 add 1E16  -5000000.000010001   ->  9999999995000000      Inexact Rounded
+addx61341 add 1E16  -5000000.000000001   ->  9999999995000000      Inexact Rounded
+
+addx61349 add 9999999999999999 0.4                 ->  9999999999999999      Inexact Rounded
+addx61350 add 9999999999999999 0.49                ->  9999999999999999      Inexact Rounded
+addx61351 add 9999999999999999 0.499               ->  9999999999999999      Inexact Rounded
+addx61352 add 9999999999999999 0.4999              ->  9999999999999999      Inexact Rounded
+addx61353 add 9999999999999999 0.49999             ->  9999999999999999      Inexact Rounded
+addx61354 add 9999999999999999 0.499999            ->  9999999999999999      Inexact Rounded
+addx61355 add 9999999999999999 0.4999999           ->  9999999999999999      Inexact Rounded
+addx61356 add 9999999999999999 0.49999999          ->  9999999999999999      Inexact Rounded
+addx61357 add 9999999999999999 0.499999999         ->  9999999999999999      Inexact Rounded
+addx61358 add 9999999999999999 0.4999999999        ->  9999999999999999      Inexact Rounded
+addx61359 add 9999999999999999 0.49999999999       ->  9999999999999999      Inexact Rounded
+addx61360 add 9999999999999999 0.499999999999      ->  9999999999999999      Inexact Rounded
+addx61361 add 9999999999999999 0.4999999999999     ->  9999999999999999      Inexact Rounded
+addx61362 add 9999999999999999 0.49999999999999    ->  9999999999999999      Inexact Rounded
+addx61363 add 9999999999999999 0.499999999999999   ->  9999999999999999      Inexact Rounded
+addx61364 add 9999999999999999 0.4999999999999999  ->  9999999999999999      Inexact Rounded
+addx61365 add 9999999999999999 0.5000000000000000  ->  1.000000000000000E+16 Inexact Rounded
+addx61367 add 9999999999999999 0.500000000000000   ->  1.000000000000000E+16 Inexact Rounded
+addx61368 add 9999999999999999 0.50000000000000    ->  1.000000000000000E+16 Inexact Rounded
+addx61369 add 9999999999999999 0.5000000000000     ->  1.000000000000000E+16 Inexact Rounded
+addx61370 add 9999999999999999 0.500000000000      ->  1.000000000000000E+16 Inexact Rounded
+addx61371 add 9999999999999999 0.50000000000       ->  1.000000000000000E+16 Inexact Rounded
+addx61372 add 9999999999999999 0.5000000000        ->  1.000000000000000E+16 Inexact Rounded
+addx61373 add 9999999999999999 0.500000000         ->  1.000000000000000E+16 Inexact Rounded
+addx61374 add 9999999999999999 0.50000000          ->  1.000000000000000E+16 Inexact Rounded
+addx61375 add 9999999999999999 0.5000000           ->  1.000000000000000E+16 Inexact Rounded
+addx61376 add 9999999999999999 0.500000            ->  1.000000000000000E+16 Inexact Rounded
+addx61377 add 9999999999999999 0.50000             ->  1.000000000000000E+16 Inexact Rounded
+addx61378 add 9999999999999999 0.5000              ->  1.000000000000000E+16 Inexact Rounded
+addx61379 add 9999999999999999 0.500               ->  1.000000000000000E+16 Inexact Rounded
+addx61380 add 9999999999999999 0.50                ->  1.000000000000000E+16 Inexact Rounded
+addx61381 add 9999999999999999 0.5                 ->  1.000000000000000E+16 Inexact Rounded
+addx61382 add 9999999999999999 0.5000000000000001  ->  1.000000000000000E+16 Inexact Rounded
+addx61383 add 9999999999999999 0.500000000000001   ->  1.000000000000000E+16 Inexact Rounded
+addx61384 add 9999999999999999 0.50000000000001    ->  1.000000000000000E+16 Inexact Rounded
+addx61385 add 9999999999999999 0.5000000000001     ->  1.000000000000000E+16 Inexact Rounded
+addx61386 add 9999999999999999 0.500000000001      ->  1.000000000000000E+16 Inexact Rounded
+addx61387 add 9999999999999999 0.50000000001       ->  1.000000000000000E+16 Inexact Rounded
+addx61388 add 9999999999999999 0.5000000001        ->  1.000000000000000E+16 Inexact Rounded
+addx61389 add 9999999999999999 0.500000001         ->  1.000000000000000E+16 Inexact Rounded
+addx61390 add 9999999999999999 0.50000001          ->  1.000000000000000E+16 Inexact Rounded
+addx61391 add 9999999999999999 0.5000001           ->  1.000000000000000E+16 Inexact Rounded
+addx61392 add 9999999999999999 0.500001            ->  1.000000000000000E+16 Inexact Rounded
+addx61393 add 9999999999999999 0.50001             ->  1.000000000000000E+16 Inexact Rounded
+addx61394 add 9999999999999999 0.5001              ->  1.000000000000000E+16 Inexact Rounded
+addx61395 add 9999999999999999 0.501               ->  1.000000000000000E+16 Inexact Rounded
+addx61396 add 9999999999999999 0.51                ->  1.000000000000000E+16 Inexact Rounded
+
+-- More GD edge cases, where difference between the unadjusted
+-- exponents is larger than the maximum precision and one side is 0
+addx61420 add  0 1.123456789012345     -> 1.123456789012345
+addx61421 add  0 1.123456789012345E-1  -> 0.1123456789012345
+addx61422 add  0 1.123456789012345E-2  -> 0.01123456789012345
+addx61423 add  0 1.123456789012345E-3  -> 0.001123456789012345
+addx61424 add  0 1.123456789012345E-4  -> 0.0001123456789012345
+addx61425 add  0 1.123456789012345E-5  -> 0.00001123456789012345
+addx61426 add  0 1.123456789012345E-6  -> 0.000001123456789012345
+addx61427 add  0 1.123456789012345E-7  -> 1.123456789012345E-7
+addx61428 add  0 1.123456789012345E-8  -> 1.123456789012345E-8
+addx61429 add  0 1.123456789012345E-9  -> 1.123456789012345E-9
+addx61430 add  0 1.123456789012345E-10 -> 1.123456789012345E-10
+addx61431 add  0 1.123456789012345E-11 -> 1.123456789012345E-11
+addx61432 add  0 1.123456789012345E-12 -> 1.123456789012345E-12
+addx61433 add  0 1.123456789012345E-13 -> 1.123456789012345E-13
+addx61434 add  0 1.123456789012345E-14 -> 1.123456789012345E-14
+addx61435 add  0 1.123456789012345E-15 -> 1.123456789012345E-15
+addx61436 add  0 1.123456789012345E-16 -> 1.123456789012345E-16
+addx61437 add  0 1.123456789012345E-17 -> 1.123456789012345E-17
+addx61438 add  0 1.123456789012345E-18 -> 1.123456789012345E-18
+addx61439 add  0 1.123456789012345E-19 -> 1.123456789012345E-19
+
+-- same, reversed 0
+addx61440 add 1.123456789012345     0 -> 1.123456789012345
+addx61441 add 1.123456789012345E-1  0 -> 0.1123456789012345
+addx61442 add 1.123456789012345E-2  0 -> 0.01123456789012345
+addx61443 add 1.123456789012345E-3  0 -> 0.001123456789012345
+addx61444 add 1.123456789012345E-4  0 -> 0.0001123456789012345
+addx61445 add 1.123456789012345E-5  0 -> 0.00001123456789012345
+addx61446 add 1.123456789012345E-6  0 -> 0.000001123456789012345
+addx61447 add 1.123456789012345E-7  0 -> 1.123456789012345E-7
+addx61448 add 1.123456789012345E-8  0 -> 1.123456789012345E-8
+addx61449 add 1.123456789012345E-9  0 -> 1.123456789012345E-9
+addx61450 add 1.123456789012345E-10 0 -> 1.123456789012345E-10
+addx61451 add 1.123456789012345E-11 0 -> 1.123456789012345E-11
+addx61452 add 1.123456789012345E-12 0 -> 1.123456789012345E-12
+addx61453 add 1.123456789012345E-13 0 -> 1.123456789012345E-13
+addx61454 add 1.123456789012345E-14 0 -> 1.123456789012345E-14
+addx61455 add 1.123456789012345E-15 0 -> 1.123456789012345E-15
+addx61456 add 1.123456789012345E-16 0 -> 1.123456789012345E-16
+addx61457 add 1.123456789012345E-17 0 -> 1.123456789012345E-17
+addx61458 add 1.123456789012345E-18 0 -> 1.123456789012345E-18
+addx61459 add 1.123456789012345E-19 0 -> 1.123456789012345E-19
+
+-- same, Es on the 0
+addx61460 add 1.123456789012345  0E-0   -> 1.123456789012345
+addx61461 add 1.123456789012345  0E-1   -> 1.123456789012345
+addx61462 add 1.123456789012345  0E-2   -> 1.123456789012345
+addx61463 add 1.123456789012345  0E-3   -> 1.123456789012345
+addx61464 add 1.123456789012345  0E-4   -> 1.123456789012345
+addx61465 add 1.123456789012345  0E-5   -> 1.123456789012345
+addx61466 add 1.123456789012345  0E-6   -> 1.123456789012345
+addx61467 add 1.123456789012345  0E-7   -> 1.123456789012345
+addx61468 add 1.123456789012345  0E-8   -> 1.123456789012345
+addx61469 add 1.123456789012345  0E-9   -> 1.123456789012345
+addx61470 add 1.123456789012345  0E-10  -> 1.123456789012345
+addx61471 add 1.123456789012345  0E-11  -> 1.123456789012345
+addx61472 add 1.123456789012345  0E-12  -> 1.123456789012345
+addx61473 add 1.123456789012345  0E-13  -> 1.123456789012345
+addx61474 add 1.123456789012345  0E-14  -> 1.123456789012345
+addx61475 add 1.123456789012345  0E-15  -> 1.123456789012345
+-- next four flag Rounded because the 0 extends the result
+addx61476 add 1.123456789012345  0E-16  -> 1.123456789012345 Rounded
+addx61477 add 1.123456789012345  0E-17  -> 1.123456789012345 Rounded
+addx61478 add 1.123456789012345  0E-18  -> 1.123456789012345 Rounded
+addx61479 add 1.123456789012345  0E-19  -> 1.123456789012345 Rounded
+
+-- sum of two opposite-sign operands is exactly 0 and floor => -0
+rounding:    half_up
+-- exact zeros from zeros
+addx61500 add  0        0E-19  ->  0E-19
+addx61501 add -0        0E-19  ->  0E-19
+addx61502 add  0       -0E-19  ->  0E-19
+addx61503 add -0       -0E-19  -> -0E-19
+addx61504 add  0E-400   0E-19  ->  0E-398 Clamped
+addx61505 add -0E-400   0E-19  ->  0E-398 Clamped
+addx61506 add  0E-400  -0E-19  ->  0E-398 Clamped
+addx61507 add -0E-400  -0E-19  -> -0E-398 Clamped
+-- inexact zeros
+addx61511 add  1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx61512 add -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx61513 add  1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx61514 add -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+-- some exact zeros from non-zeros
+addx61515 add  1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx61516 add -1E-401   1E-401 ->  0E-398 Clamped
+addx61517 add  1E-401  -1E-401 ->  0E-398 Clamped
+addx61518 add -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+
+rounding:    half_down
+-- exact zeros from zeros
+addx61520 add  0        0E-19  ->  0E-19
+addx61521 add -0        0E-19  ->  0E-19
+addx61522 add  0       -0E-19  ->  0E-19
+addx61523 add -0       -0E-19  -> -0E-19
+addx61524 add  0E-400   0E-19  ->  0E-398 Clamped
+addx61525 add -0E-400   0E-19  ->  0E-398 Clamped
+addx61526 add  0E-400  -0E-19  ->  0E-398 Clamped
+addx61527 add -0E-400  -0E-19  -> -0E-398 Clamped
+-- inexact zeros
+addx61531 add  1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx61532 add -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx61533 add  1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx61534 add -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+-- some exact zeros from non-zeros
+addx61535 add  1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx61536 add -1E-401   1E-401 ->  0E-398 Clamped
+addx61537 add  1E-401  -1E-401 ->  0E-398 Clamped
+addx61538 add -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+
+rounding:    half_even
+-- exact zeros from zeros
+addx61540 add  0        0E-19  ->  0E-19
+addx61541 add -0        0E-19  ->  0E-19
+addx61542 add  0       -0E-19  ->  0E-19
+addx61543 add -0       -0E-19  -> -0E-19
+addx61544 add  0E-400   0E-19  ->  0E-398 Clamped
+addx61545 add -0E-400   0E-19  ->  0E-398 Clamped
+addx61546 add  0E-400  -0E-19  ->  0E-398 Clamped
+addx61547 add -0E-400  -0E-19  -> -0E-398 Clamped
+-- inexact zeros
+addx61551 add  1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx61552 add -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx61553 add  1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx61554 add -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+-- some exact zeros from non-zeros
+addx61555 add  1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx61556 add -1E-401   1E-401 ->  0E-398 Clamped
+addx61557 add  1E-401  -1E-401 ->  0E-398 Clamped
+addx61558 add -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+
+rounding:    up
+-- exact zeros from zeros
+addx61560 add  0        0E-19  ->  0E-19
+addx61561 add -0        0E-19  ->  0E-19
+addx61562 add  0       -0E-19  ->  0E-19
+addx61563 add -0       -0E-19  -> -0E-19
+addx61564 add  0E-400   0E-19  ->  0E-398 Clamped
+addx61565 add -0E-400   0E-19  ->  0E-398 Clamped
+addx61566 add  0E-400  -0E-19  ->  0E-398 Clamped
+addx61567 add -0E-400  -0E-19  -> -0E-398 Clamped
+-- inexact zeros
+addx61571 add  1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
+addx61572 add -1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
+addx61573 add  1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
+addx61574 add -1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
+-- some exact zeros from non-zeros
+addx61575 add  1E-401   1E-401 ->  1E-398 Subnormal Inexact Rounded Underflow
+addx61576 add -1E-401   1E-401 ->  0E-398 Clamped
+addx61577 add  1E-401  -1E-401 ->  0E-398 Clamped
+addx61578 add -1E-401  -1E-401 -> -1E-398 Subnormal Inexact Rounded Underflow
+
+rounding:    down
+-- exact zeros from zeros
+addx61580 add  0        0E-19  ->  0E-19
+addx61581 add -0        0E-19  ->  0E-19
+addx61582 add  0       -0E-19  ->  0E-19
+addx61583 add -0       -0E-19  -> -0E-19
+addx61584 add  0E-400   0E-19  ->  0E-398 Clamped
+addx61585 add -0E-400   0E-19  ->  0E-398 Clamped
+addx61586 add  0E-400  -0E-19  ->  0E-398 Clamped
+addx61587 add -0E-400  -0E-19  -> -0E-398 Clamped
+-- inexact zeros
+addx61591 add  1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx61592 add -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx61593 add  1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx61594 add -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+-- some exact zeros from non-zeros
+addx61595 add  1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx61596 add -1E-401   1E-401 ->  0E-398 Clamped
+addx61597 add  1E-401  -1E-401 ->  0E-398 Clamped
+addx61598 add -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+
+rounding:    ceiling
+-- exact zeros from zeros
+addx61600 add  0        0E-19  ->  0E-19
+addx61601 add -0        0E-19  ->  0E-19
+addx61602 add  0       -0E-19  ->  0E-19
+addx61603 add -0       -0E-19  -> -0E-19
+addx61604 add  0E-400   0E-19  ->  0E-398 Clamped
+addx61605 add -0E-400   0E-19  ->  0E-398 Clamped
+addx61606 add  0E-400  -0E-19  ->  0E-398 Clamped
+addx61607 add -0E-400  -0E-19  -> -0E-398 Clamped
+-- inexact zeros
+addx61611 add  1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
+addx61612 add -1E-401   1E-400 ->  1E-398 Subnormal Inexact Rounded Underflow
+addx61613 add  1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx61614 add -1E-401  -1E-400 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+-- some exact zeros from non-zeros
+addx61615 add  1E-401   1E-401 ->  1E-398 Subnormal Inexact Rounded Underflow
+addx61616 add -1E-401   1E-401 ->  0E-398 Clamped
+addx61617 add  1E-401  -1E-401 ->  0E-398 Clamped
+addx61618 add -1E-401  -1E-401 -> -0E-398 Subnormal Inexact Rounded Underflow Clamped
+
+-- and the extra-special ugly case; unusual minuses marked by -- *
+rounding:    floor
+-- exact zeros from zeros
+addx61620 add  0        0E-19  ->  0E-19
+addx61621 add -0        0E-19  -> -0E-19           -- *
+addx61622 add  0       -0E-19  -> -0E-19           -- *
+addx61623 add -0       -0E-19  -> -0E-19
+addx61624 add  0E-400   0E-19  ->  0E-398 Clamped
+addx61625 add -0E-400   0E-19  -> -0E-398 Clamped  -- *
+addx61626 add  0E-400  -0E-19  -> -0E-398 Clamped  -- *
+addx61627 add -0E-400  -0E-19  -> -0E-398 Clamped
+-- inexact zeros
+addx61631 add  1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx61632 add -1E-401   1E-400 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx61633 add  1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
+addx61634 add -1E-401  -1E-400 -> -1E-398 Subnormal Inexact Rounded Underflow
+-- some exact zeros from non-zeros
+addx61635 add  1E-401   1E-401 ->  0E-398 Subnormal Inexact Rounded Underflow Clamped
+addx61636 add -1E-401   1E-401 -> -0E-398 Clamped  -- *
+addx61637 add  1E-401  -1E-401 -> -0E-398 Clamped  -- *
+addx61638 add -1E-401  -1E-401 -> -1E-398 Subnormal Inexact Rounded Underflow
+
+-- Examples from SQL proposal (Krishna Kulkarni)
+addx61701 add 130E-2    120E-2    -> 2.50
+addx61702 add 130E-2    12E-1     -> 2.50
+addx61703 add 130E-2    1E0       -> 2.30
+addx61704 add 1E2       1E4       -> 1.01E+4
+addx61705 subtract 130E-2  120E-2 -> 0.10
+addx61706 subtract 130E-2  12E-1  -> 0.10
+addx61707 subtract 130E-2  1E0    -> 0.30
+addx61708 subtract 1E2     1E4    -> -9.9E+3
+
+-- Gappy coefficients; check residue handling even with full coefficient gap
+rounding: half_even
+
+addx62001 add 1234567890123456 1      -> 1234567890123457
+addx62002 add 1234567890123456 0.6    -> 1234567890123457  Inexact Rounded
+addx62003 add 1234567890123456 0.06   -> 1234567890123456  Inexact Rounded
+addx62004 add 1234567890123456 6E-3   -> 1234567890123456  Inexact Rounded
+addx62005 add 1234567890123456 6E-4   -> 1234567890123456  Inexact Rounded
+addx62006 add 1234567890123456 6E-5   -> 1234567890123456  Inexact Rounded
+addx62007 add 1234567890123456 6E-6   -> 1234567890123456  Inexact Rounded
+addx62008 add 1234567890123456 6E-7   -> 1234567890123456  Inexact Rounded
+addx62009 add 1234567890123456 6E-8   -> 1234567890123456  Inexact Rounded
+addx62010 add 1234567890123456 6E-9   -> 1234567890123456  Inexact Rounded
+addx62011 add 1234567890123456 6E-10  -> 1234567890123456  Inexact Rounded
+addx62012 add 1234567890123456 6E-11  -> 1234567890123456  Inexact Rounded
+addx62013 add 1234567890123456 6E-12  -> 1234567890123456  Inexact Rounded
+addx62014 add 1234567890123456 6E-13  -> 1234567890123456  Inexact Rounded
+addx62015 add 1234567890123456 6E-14  -> 1234567890123456  Inexact Rounded
+addx62016 add 1234567890123456 6E-15  -> 1234567890123456  Inexact Rounded
+addx62017 add 1234567890123456 6E-16  -> 1234567890123456  Inexact Rounded
+addx62018 add 1234567890123456 6E-17  -> 1234567890123456  Inexact Rounded
+addx62019 add 1234567890123456 6E-18  -> 1234567890123456  Inexact Rounded
+addx62020 add 1234567890123456 6E-19  -> 1234567890123456  Inexact Rounded
+addx62021 add 1234567890123456 6E-20  -> 1234567890123456  Inexact Rounded
+
+-- widening second argument at gap
+addx62030 add 12345678 1                       -> 12345679
+addx62031 add 12345678 0.1                     -> 12345678.1
+addx62032 add 12345678 0.12                    -> 12345678.12
+addx62033 add 12345678 0.123                   -> 12345678.123
+addx62034 add 12345678 0.1234                  -> 12345678.1234
+addx62035 add 12345678 0.12345                 -> 12345678.12345
+addx62036 add 12345678 0.123456                -> 12345678.123456
+addx62037 add 12345678 0.1234567               -> 12345678.1234567
+addx62038 add 12345678 0.12345678              -> 12345678.12345678
+addx62039 add 12345678 0.123456789             -> 12345678.12345679 Inexact Rounded
+addx62040 add 12345678 0.123456785             -> 12345678.12345678 Inexact Rounded
+addx62041 add 12345678 0.1234567850            -> 12345678.12345678 Inexact Rounded
+addx62042 add 12345678 0.1234567851            -> 12345678.12345679 Inexact Rounded
+addx62043 add 12345678 0.12345678501           -> 12345678.12345679 Inexact Rounded
+addx62044 add 12345678 0.123456785001          -> 12345678.12345679 Inexact Rounded
+addx62045 add 12345678 0.1234567850001         -> 12345678.12345679 Inexact Rounded
+addx62046 add 12345678 0.12345678500001        -> 12345678.12345679 Inexact Rounded
+addx62047 add 12345678 0.123456785000001       -> 12345678.12345679 Inexact Rounded
+addx62048 add 12345678 0.1234567850000001      -> 12345678.12345679 Inexact Rounded
+addx62049 add 12345678 0.1234567850000000      -> 12345678.12345678 Inexact Rounded
+--                               90123456
+rounding: half_even
+addx62050 add 12345678 0.0234567750000000      -> 12345678.02345678 Inexact Rounded
+addx62051 add 12345678 0.0034567750000000      -> 12345678.00345678 Inexact Rounded
+addx62052 add 12345678 0.0004567750000000      -> 12345678.00045678 Inexact Rounded
+addx62053 add 12345678 0.0000567750000000      -> 12345678.00005678 Inexact Rounded
+addx62054 add 12345678 0.0000067750000000      -> 12345678.00000678 Inexact Rounded
+addx62055 add 12345678 0.0000007750000000      -> 12345678.00000078 Inexact Rounded
+addx62056 add 12345678 0.0000000750000000      -> 12345678.00000008 Inexact Rounded
+addx62057 add 12345678 0.0000000050000000      -> 12345678.00000000 Inexact Rounded
+addx62060 add 12345678 0.0234567750000001      -> 12345678.02345678 Inexact Rounded
+addx62061 add 12345678 0.0034567750000001      -> 12345678.00345678 Inexact Rounded
+addx62062 add 12345678 0.0004567750000001      -> 12345678.00045678 Inexact Rounded
+addx62063 add 12345678 0.0000567750000001      -> 12345678.00005678 Inexact Rounded
+addx62064 add 12345678 0.0000067750000001      -> 12345678.00000678 Inexact Rounded
+addx62065 add 12345678 0.0000007750000001      -> 12345678.00000078 Inexact Rounded
+addx62066 add 12345678 0.0000000750000001      -> 12345678.00000008 Inexact Rounded
+addx62067 add 12345678 0.0000000050000001      -> 12345678.00000001 Inexact Rounded
+-- far-out residues (full coefficient gap is 16+15 digits)
+rounding: up
+addx62070 add 12345678 1E-8                    -> 12345678.00000001
+addx62071 add 12345678 1E-9                    -> 12345678.00000001 Inexact Rounded
+addx62072 add 12345678 1E-10                   -> 12345678.00000001 Inexact Rounded
+addx62073 add 12345678 1E-11                   -> 12345678.00000001 Inexact Rounded
+addx62074 add 12345678 1E-12                   -> 12345678.00000001 Inexact Rounded
+addx62075 add 12345678 1E-13                   -> 12345678.00000001 Inexact Rounded
+addx62076 add 12345678 1E-14                   -> 12345678.00000001 Inexact Rounded
+addx62077 add 12345678 1E-15                   -> 12345678.00000001 Inexact Rounded
+addx62078 add 12345678 1E-16                   -> 12345678.00000001 Inexact Rounded
+addx62079 add 12345678 1E-17                   -> 12345678.00000001 Inexact Rounded
+addx62080 add 12345678 1E-18                   -> 12345678.00000001 Inexact Rounded
+addx62081 add 12345678 1E-19                   -> 12345678.00000001 Inexact Rounded
+addx62082 add 12345678 1E-20                   -> 12345678.00000001 Inexact Rounded
+addx62083 add 12345678 1E-25                   -> 12345678.00000001 Inexact Rounded
+addx62084 add 12345678 1E-30                   -> 12345678.00000001 Inexact Rounded
+addx62085 add 12345678 1E-31                   -> 12345678.00000001 Inexact Rounded
+addx62086 add 12345678 1E-32                   -> 12345678.00000001 Inexact Rounded
+addx62087 add 12345678 1E-33                   -> 12345678.00000001 Inexact Rounded
+addx62088 add 12345678 1E-34                   -> 12345678.00000001 Inexact Rounded
+addx62089 add 12345678 1E-35                   -> 12345678.00000001 Inexact Rounded
+
+-- payload decapitate
+precision: 5
+addx62100 add      11  sNaN123456789 ->  NaN56789  Invalid_operation
+addx62101 add     -11 -sNaN123456789 -> -NaN56789  Invalid_operation
+addx62102 add      11   NaN123456789 ->  NaN56789
+addx62103 add     -11  -NaN123456789 -> -NaN56789
 
 -- Null tests
 addx9990 add 10  # -> NaN Invalid_operation