------------------------------------------------------------------------
-- comparesig.decTest -- decimal comparison that signals on NaNs      --
-- Copyright (c) Mike Cowlishaw,  1981, 2010.  All rights reserved.   --
-- Parts copyright (c) IBM Corporation, 1981, 2008.                   --
------------------------------------------------------------------------
-- Please see the document "General Decimal Arithmetic Testcases"     --
-- at http://speleotrove.com/decimal for the description of           --
-- these testcases.                                                   --
--                                                                    --
-- These testcases are experimental ('beta' versions), and they       --
-- may contain errors.  They are offered on an as-is basis.  In       --
-- particular, achieving the same results as the tests here is not    --
-- a guarantee that an implementation complies with any Standard      --
-- or specification.  The tests are not exhaustive.                   --
--                                                                    --
-- Please send comments, suggestions, and corrections to the author:  --
--   Mike Cowlishaw, mfc@speleotrove.com                              --
------------------------------------------------------------------------
version: 2.62

-- This testcase is the same as compare.decTest except that both
-- quiet and signaling NaNs raise invalid (and propagate payloads)

extended: 1

precision:   9
rounding:    half_up
maxExponent: 999
minexponent: -999

-- sanity checks
cmsx001 comparesig  -2  -2  -> 0
cmsx002 comparesig  -2  -1  -> -1
cmsx003 comparesig  -2   0  -> -1
cmsx004 comparesig  -2   1  -> -1
cmsx005 comparesig  -2   2  -> -1
cmsx006 comparesig  -1  -2  -> 1
cmsx007 comparesig  -1  -1  -> 0
cmsx008 comparesig  -1   0  -> -1
cmsx009 comparesig  -1   1  -> -1
cmsx010 comparesig  -1   2  -> -1
cmsx011 comparesig   0  -2  -> 1
cmsx012 comparesig   0  -1  -> 1
cmsx013 comparesig   0   0  -> 0
cmsx014 comparesig   0   1  -> -1
cmsx015 comparesig   0   2  -> -1
cmsx016 comparesig   1  -2  -> 1
cmsx017 comparesig   1  -1  -> 1
cmsx018 comparesig   1   0  -> 1
cmsx019 comparesig   1   1  -> 0
cmsx020 comparesig   1   2  -> -1
cmsx021 comparesig   2  -2  -> 1
cmsx022 comparesig   2  -1  -> 1
cmsx023 comparesig   2   0  -> 1
cmsx025 comparesig   2   1  -> 1
cmsx026 comparesig   2   2  -> 0

cmsx031 comparesig  -20  -20  -> 0
cmsx032 comparesig  -20  -10  -> -1
cmsx033 comparesig  -20   00  -> -1
cmsx034 comparesig  -20   10  -> -1
cmsx035 comparesig  -20   20  -> -1
cmsx036 comparesig  -10  -20  -> 1
cmsx037 comparesig  -10  -10  -> 0
cmsx038 comparesig  -10   00  -> -1
cmsx039 comparesig  -10   10  -> -1
cmsx040 comparesig  -10   20  -> -1
cmsx041 comparesig   00  -20  -> 1
cmsx042 comparesig   00  -10  -> 1
cmsx043 comparesig   00   00  -> 0
cmsx044 comparesig   00   10  -> -1
cmsx045 comparesig   00   20  -> -1
cmsx046 comparesig   10  -20  -> 1
cmsx047 comparesig   10  -10  -> 1
cmsx048 comparesig   10   00  -> 1
cmsx049 comparesig   10   10  -> 0
cmsx050 comparesig   10   20  -> -1
cmsx051 comparesig   20  -20  -> 1
cmsx052 comparesig   20  -10  -> 1
cmsx053 comparesig   20   00  -> 1
cmsx055 comparesig   20   10  -> 1
cmsx056 comparesig   20   20  -> 0

cmsx061 comparesig  -2.0  -2.0  -> 0
cmsx062 comparesig  -2.0  -1.0  -> -1
cmsx063 comparesig  -2.0   0.0  -> -1
cmsx064 comparesig  -2.0   1.0  -> -1
cmsx065 comparesig  -2.0   2.0  -> -1
cmsx066 comparesig  -1.0  -2.0  -> 1
cmsx067 comparesig  -1.0  -1.0  -> 0
cmsx068 comparesig  -1.0   0.0  -> -1
cmsx069 comparesig  -1.0   1.0  -> -1
cmsx070 comparesig  -1.0   2.0  -> -1
cmsx071 comparesig   0.0  -2.0  -> 1
cmsx072 comparesig   0.0  -1.0  -> 1
cmsx073 comparesig   0.0   0.0  -> 0
cmsx074 comparesig   0.0   1.0  -> -1
cmsx075 comparesig   0.0   2.0  -> -1
cmsx076 comparesig   1.0  -2.0  -> 1
cmsx077 comparesig   1.0  -1.0  -> 1
cmsx078 comparesig   1.0   0.0  -> 1
cmsx079 comparesig   1.0   1.0  -> 0
cmsx080 comparesig   1.0   2.0  -> -1
cmsx081 comparesig   2.0  -2.0  -> 1
cmsx082 comparesig   2.0  -1.0  -> 1
cmsx083 comparesig   2.0   0.0  -> 1
cmsx085 comparesig   2.0   1.0  -> 1
cmsx086 comparesig   2.0   2.0  -> 0

-- now some cases which might overflow if subtract were used
maxexponent: 999999999
minexponent: -999999999
cmsx090 comparesig  9.99999999E+999999999 9.99999999E+999999999  -> 0
cmsx091 comparesig -9.99999999E+999999999 9.99999999E+999999999  -> -1
cmsx092 comparesig  9.99999999E+999999999 -9.99999999E+999999999 -> 1
cmsx093 comparesig -9.99999999E+999999999 -9.99999999E+999999999 -> 0

-- some differing length/exponent cases
cmsx100 comparesig   7.0    7.0    -> 0
cmsx101 comparesig   7.0    7      -> 0
cmsx102 comparesig   7      7.0    -> 0
cmsx103 comparesig   7E+0   7.0    -> 0
cmsx104 comparesig   70E-1  7.0    -> 0
cmsx105 comparesig   0.7E+1 7      -> 0
cmsx106 comparesig   70E-1  7      -> 0
cmsx107 comparesig   7.0    7E+0   -> 0
cmsx108 comparesig   7.0    70E-1  -> 0
cmsx109 comparesig   7      0.7E+1 -> 0
cmsx110 comparesig   7      70E-1  -> 0

cmsx120 comparesig   8.0    7.0    -> 1
cmsx121 comparesig   8.0    7      -> 1
cmsx122 comparesig   8      7.0    -> 1
cmsx123 comparesig   8E+0   7.0    -> 1
cmsx124 comparesig   80E-1  7.0    -> 1
cmsx125 comparesig   0.8E+1 7      -> 1
cmsx126 comparesig   80E-1  7      -> 1
cmsx127 comparesig   8.0    7E+0   -> 1
cmsx128 comparesig   8.0    70E-1  -> 1
cmsx129 comparesig   8      0.7E+1  -> 1
cmsx130 comparesig   8      70E-1  -> 1

cmsx140 comparesig   8.0    9.0    -> -1
cmsx141 comparesig   8.0    9      -> -1
cmsx142 comparesig   8      9.0    -> -1
cmsx143 comparesig   8E+0   9.0    -> -1
cmsx144 comparesig   80E-1  9.0    -> -1
cmsx145 comparesig   0.8E+1 9      -> -1
cmsx146 comparesig   80E-1  9      -> -1
cmsx147 comparesig   8.0    9E+0   -> -1
cmsx148 comparesig   8.0    90E-1  -> -1
cmsx149 comparesig   8      0.9E+1 -> -1
cmsx150 comparesig   8      90E-1  -> -1

-- and again, with sign changes -+ ..
cmsx200 comparesig  -7.0    7.0    -> -1
cmsx201 comparesig  -7.0    7      -> -1
cmsx202 comparesig  -7      7.0    -> -1
cmsx203 comparesig  -7E+0   7.0    -> -1
cmsx204 comparesig  -70E-1  7.0    -> -1
cmsx205 comparesig  -0.7E+1 7      -> -1
cmsx206 comparesig  -70E-1  7      -> -1
cmsx207 comparesig  -7.0    7E+0   -> -1
cmsx208 comparesig  -7.0    70E-1  -> -1
cmsx209 comparesig  -7      0.7E+1 -> -1
cmsx210 comparesig  -7      70E-1  -> -1

cmsx220 comparesig  -8.0    7.0    -> -1
cmsx221 comparesig  -8.0    7      -> -1
cmsx222 comparesig  -8      7.0    -> -1
cmsx223 comparesig  -8E+0   7.0    -> -1
cmsx224 comparesig  -80E-1  7.0    -> -1
cmsx225 comparesig  -0.8E+1 7      -> -1
cmsx226 comparesig  -80E-1  7      -> -1
cmsx227 comparesig  -8.0    7E+0   -> -1
cmsx228 comparesig  -8.0    70E-1  -> -1
cmsx229 comparesig  -8      0.7E+1 -> -1
cmsx230 comparesig  -8      70E-1  -> -1

cmsx240 comparesig  -8.0    9.0    -> -1
cmsx241 comparesig  -8.0    9      -> -1
cmsx242 comparesig  -8      9.0    -> -1
cmsx243 comparesig  -8E+0   9.0    -> -1
cmsx244 comparesig  -80E-1  9.0    -> -1
cmsx245 comparesig  -0.8E+1 9      -> -1
cmsx246 comparesig  -80E-1  9      -> -1
cmsx247 comparesig  -8.0    9E+0   -> -1
cmsx248 comparesig  -8.0    90E-1  -> -1
cmsx249 comparesig  -8      0.9E+1 -> -1
cmsx250 comparesig  -8      90E-1  -> -1

-- and again, with sign changes +- ..
cmsx300 comparesig   7.0    -7.0    -> 1
cmsx301 comparesig   7.0    -7      -> 1
cmsx302 comparesig   7      -7.0    -> 1
cmsx303 comparesig   7E+0   -7.0    -> 1
cmsx304 comparesig   70E-1  -7.0    -> 1
cmsx305 comparesig   .7E+1  -7      -> 1
cmsx306 comparesig   70E-1  -7      -> 1
cmsx307 comparesig   7.0    -7E+0   -> 1
cmsx308 comparesig   7.0    -70E-1  -> 1
cmsx309 comparesig   7      -.7E+1  -> 1
cmsx310 comparesig   7      -70E-1  -> 1

cmsx320 comparesig   8.0    -7.0    -> 1
cmsx321 comparesig   8.0    -7      -> 1
cmsx322 comparesig   8      -7.0    -> 1
cmsx323 comparesig   8E+0   -7.0    -> 1
cmsx324 comparesig   80E-1  -7.0    -> 1
cmsx325 comparesig   .8E+1  -7      -> 1
cmsx326 comparesig   80E-1  -7      -> 1
cmsx327 comparesig   8.0    -7E+0   -> 1
cmsx328 comparesig   8.0    -70E-1  -> 1
cmsx329 comparesig   8      -.7E+1  -> 1
cmsx330 comparesig   8      -70E-1  -> 1

cmsx340 comparesig   8.0    -9.0    -> 1
cmsx341 comparesig   8.0    -9      -> 1
cmsx342 comparesig   8      -9.0    -> 1
cmsx343 comparesig   8E+0   -9.0    -> 1
cmsx344 comparesig   80E-1  -9.0    -> 1
cmsx345 comparesig   .8E+1  -9      -> 1
cmsx346 comparesig   80E-1  -9      -> 1
cmsx347 comparesig   8.0    -9E+0   -> 1
cmsx348 comparesig   8.0    -90E-1  -> 1
cmsx349 comparesig   8      -.9E+1  -> 1
cmsx350 comparesig   8      -90E-1  -> 1

-- and again, with sign changes -- ..
cmsx400 comparesig   -7.0    -7.0    -> 0
cmsx401 comparesig   -7.0    -7      -> 0
cmsx402 comparesig   -7      -7.0    -> 0
cmsx403 comparesig   -7E+0   -7.0    -> 0
cmsx404 comparesig   -70E-1  -7.0    -> 0
cmsx405 comparesig   -.7E+1  -7      -> 0
cmsx406 comparesig   -70E-1  -7      -> 0
cmsx407 comparesig   -7.0    -7E+0   -> 0
cmsx408 comparesig   -7.0    -70E-1  -> 0
cmsx409 comparesig   -7      -.7E+1  -> 0
cmsx410 comparesig   -7      -70E-1  -> 0

cmsx420 comparesig   -8.0    -7.0    -> -1
cmsx421 comparesig   -8.0    -7      -> -1
cmsx422 comparesig   -8      -7.0    -> -1
cmsx423 comparesig   -8E+0   -7.0    -> -1
cmsx424 comparesig   -80E-1  -7.0    -> -1
cmsx425 comparesig   -.8E+1  -7      -> -1
cmsx426 comparesig   -80E-1  -7      -> -1
cmsx427 comparesig   -8.0    -7E+0   -> -1
cmsx428 comparesig   -8.0    -70E-1  -> -1
cmsx429 comparesig   -8      -.7E+1  -> -1
cmsx430 comparesig   -8      -70E-1  -> -1

cmsx440 comparesig   -8.0    -9.0    -> 1
cmsx441 comparesig   -8.0    -9      -> 1
cmsx442 comparesig   -8      -9.0    -> 1
cmsx443 comparesig   -8E+0   -9.0    -> 1
cmsx444 comparesig   -80E-1  -9.0    -> 1
cmsx445 comparesig   -.8E+1  -9      -> 1
cmsx446 comparesig   -80E-1  -9      -> 1
cmsx447 comparesig   -8.0    -9E+0   -> 1
cmsx448 comparesig   -8.0    -90E-1  -> 1
cmsx449 comparesig   -8      -.9E+1  -> 1
cmsx450 comparesig   -8      -90E-1  -> 1


-- testcases that subtract to lots of zeros at boundaries [pgr]
precision: 40
cmsx470 comparesig 123.4560000000000000E789 123.456E789 -> 0
cmsx471 comparesig 123.456000000000000E-89 123.456E-89 -> 0
cmsx472 comparesig 123.45600000000000E789 123.456E789 -> 0
cmsx473 comparesig 123.4560000000000E-89 123.456E-89 -> 0
cmsx474 comparesig 123.456000000000E789 123.456E789 -> 0
cmsx475 comparesig 123.45600000000E-89 123.456E-89 -> 0
cmsx476 comparesig 123.4560000000E789 123.456E789 -> 0
cmsx477 comparesig 123.456000000E-89 123.456E-89 -> 0
cmsx478 comparesig 123.45600000E789 123.456E789 -> 0
cmsx479 comparesig 123.4560000E-89 123.456E-89 -> 0
cmsx480 comparesig 123.456000E789 123.456E789 -> 0
cmsx481 comparesig 123.45600E-89 123.456E-89 -> 0
cmsx482 comparesig 123.4560E789 123.456E789 -> 0
cmsx483 comparesig 123.456E-89 123.456E-89 -> 0
cmsx484 comparesig 123.456E-89 123.4560000000000000E-89 -> 0
cmsx485 comparesig 123.456E789 123.456000000000000E789 -> 0
cmsx486 comparesig 123.456E-89 123.45600000000000E-89 -> 0
cmsx487 comparesig 123.456E789 123.4560000000000E789 -> 0
cmsx488 comparesig 123.456E-89 123.456000000000E-89 -> 0
cmsx489 comparesig 123.456E789 123.45600000000E789 -> 0
cmsx490 comparesig 123.456E-89 123.4560000000E-89 -> 0
cmsx491 comparesig 123.456E789 123.456000000E789 -> 0
cmsx492 comparesig 123.456E-89 123.45600000E-89 -> 0
cmsx493 comparesig 123.456E789 123.4560000E789 -> 0
cmsx494 comparesig 123.456E-89 123.456000E-89 -> 0
cmsx495 comparesig 123.456E789 123.45600E789 -> 0
cmsx496 comparesig 123.456E-89 123.4560E-89 -> 0
cmsx497 comparesig 123.456E789 123.456E789 -> 0

-- wide-ranging, around precision; signs equal
precision: 9
cmsx500 comparesig    1     1E-15    -> 1
cmsx501 comparesig    1     1E-14    -> 1
cmsx502 comparesig    1     1E-13    -> 1
cmsx503 comparesig    1     1E-12    -> 1
cmsx504 comparesig    1     1E-11    -> 1
cmsx505 comparesig    1     1E-10    -> 1
cmsx506 comparesig    1     1E-9     -> 1
cmsx507 comparesig    1     1E-8     -> 1
cmsx508 comparesig    1     1E-7     -> 1
cmsx509 comparesig    1     1E-6     -> 1
cmsx510 comparesig    1     1E-5     -> 1
cmsx511 comparesig    1     1E-4     -> 1
cmsx512 comparesig    1     1E-3     -> 1
cmsx513 comparesig    1     1E-2     -> 1
cmsx514 comparesig    1     1E-1     -> 1
cmsx515 comparesig    1     1E-0     -> 0
cmsx516 comparesig    1     1E+1     -> -1
cmsx517 comparesig    1     1E+2     -> -1
cmsx518 comparesig    1     1E+3     -> -1
cmsx519 comparesig    1     1E+4     -> -1
cmsx521 comparesig    1     1E+5     -> -1
cmsx522 comparesig    1     1E+6     -> -1
cmsx523 comparesig    1     1E+7     -> -1
cmsx524 comparesig    1     1E+8     -> -1
cmsx525 comparesig    1     1E+9     -> -1
cmsx526 comparesig    1     1E+10    -> -1
cmsx527 comparesig    1     1E+11    -> -1
cmsx528 comparesig    1     1E+12    -> -1
cmsx529 comparesig    1     1E+13    -> -1
cmsx530 comparesig    1     1E+14    -> -1
cmsx531 comparesig    1     1E+15    -> -1
-- LR swap
cmsx540 comparesig    1E-15  1       -> -1
cmsx541 comparesig    1E-14  1       -> -1
cmsx542 comparesig    1E-13  1       -> -1
cmsx543 comparesig    1E-12  1       -> -1
cmsx544 comparesig    1E-11  1       -> -1
cmsx545 comparesig    1E-10  1       -> -1
cmsx546 comparesig    1E-9   1       -> -1
cmsx547 comparesig    1E-8   1       -> -1
cmsx548 comparesig    1E-7   1       -> -1
cmsx549 comparesig    1E-6   1       -> -1
cmsx550 comparesig    1E-5   1       -> -1
cmsx551 comparesig    1E-4   1       -> -1
cmsx552 comparesig    1E-3   1       -> -1
cmsx553 comparesig    1E-2   1       -> -1
cmsx554 comparesig    1E-1   1       -> -1
cmsx555 comparesig    1E-0   1       ->  0
cmsx556 comparesig    1E+1   1       ->  1
cmsx557 comparesig    1E+2   1       ->  1
cmsx558 comparesig    1E+3   1       ->  1
cmsx559 comparesig    1E+4   1       ->  1
cmsx561 comparesig    1E+5   1       ->  1
cmsx562 comparesig    1E+6   1       ->  1
cmsx563 comparesig    1E+7   1       ->  1
cmsx564 comparesig    1E+8   1       ->  1
cmsx565 comparesig    1E+9   1       ->  1
cmsx566 comparesig    1E+10  1       ->  1
cmsx567 comparesig    1E+11  1       ->  1
cmsx568 comparesig    1E+12  1       ->  1
cmsx569 comparesig    1E+13  1       ->  1
cmsx570 comparesig    1E+14  1       ->  1
cmsx571 comparesig    1E+15  1       ->  1
-- similar with a useful coefficient, one side only
cmsx580 comparesig  0.000000987654321     1E-15    -> 1
cmsx581 comparesig  0.000000987654321     1E-14    -> 1
cmsx582 comparesig  0.000000987654321     1E-13    -> 1
cmsx583 comparesig  0.000000987654321     1E-12    -> 1
cmsx584 comparesig  0.000000987654321     1E-11    -> 1
cmsx585 comparesig  0.000000987654321     1E-10    -> 1
cmsx586 comparesig  0.000000987654321     1E-9     -> 1
cmsx587 comparesig  0.000000987654321     1E-8     -> 1
cmsx588 comparesig  0.000000987654321     1E-7     -> 1
cmsx589 comparesig  0.000000987654321     1E-6     -> -1
cmsx590 comparesig  0.000000987654321     1E-5     -> -1
cmsx591 comparesig  0.000000987654321     1E-4     -> -1
cmsx592 comparesig  0.000000987654321     1E-3     -> -1
cmsx593 comparesig  0.000000987654321     1E-2     -> -1
cmsx594 comparesig  0.000000987654321     1E-1     -> -1
cmsx595 comparesig  0.000000987654321     1E-0     -> -1
cmsx596 comparesig  0.000000987654321     1E+1     -> -1
cmsx597 comparesig  0.000000987654321     1E+2     -> -1
cmsx598 comparesig  0.000000987654321     1E+3     -> -1
cmsx599 comparesig  0.000000987654321     1E+4     -> -1

-- check some unit-y traps
precision: 20
cmsx600 comparesig   12            12.2345 -> -1
cmsx601 comparesig   12.0          12.2345 -> -1
cmsx602 comparesig   12.00         12.2345 -> -1
cmsx603 comparesig   12.000        12.2345 -> -1
cmsx604 comparesig   12.0000       12.2345 -> -1
cmsx605 comparesig   12.00000      12.2345 -> -1
cmsx606 comparesig   12.000000     12.2345 -> -1
cmsx607 comparesig   12.0000000    12.2345 -> -1
cmsx608 comparesig   12.00000000   12.2345 -> -1
cmsx609 comparesig   12.000000000  12.2345 -> -1
cmsx610 comparesig   12.1234 12            ->  1
cmsx611 comparesig   12.1234 12.0          ->  1
cmsx612 comparesig   12.1234 12.00         ->  1
cmsx613 comparesig   12.1234 12.000        ->  1
cmsx614 comparesig   12.1234 12.0000       ->  1
cmsx615 comparesig   12.1234 12.00000      ->  1
cmsx616 comparesig   12.1234 12.000000     ->  1
cmsx617 comparesig   12.1234 12.0000000    ->  1
cmsx618 comparesig   12.1234 12.00000000   ->  1
cmsx619 comparesig   12.1234 12.000000000  ->  1
cmsx620 comparesig  -12           -12.2345 ->  1
cmsx621 comparesig  -12.0         -12.2345 ->  1
cmsx622 comparesig  -12.00        -12.2345 ->  1
cmsx623 comparesig  -12.000       -12.2345 ->  1
cmsx624 comparesig  -12.0000      -12.2345 ->  1
cmsx625 comparesig  -12.00000     -12.2345 ->  1
cmsx626 comparesig  -12.000000    -12.2345 ->  1
cmsx627 comparesig  -12.0000000   -12.2345 ->  1
cmsx628 comparesig  -12.00000000  -12.2345 ->  1
cmsx629 comparesig  -12.000000000 -12.2345 ->  1
cmsx630 comparesig  -12.1234 -12           -> -1
cmsx631 comparesig  -12.1234 -12.0         -> -1
cmsx632 comparesig  -12.1234 -12.00        -> -1
cmsx633 comparesig  -12.1234 -12.000       -> -1
cmsx634 comparesig  -12.1234 -12.0000      -> -1
cmsx635 comparesig  -12.1234 -12.00000     -> -1
cmsx636 comparesig  -12.1234 -12.000000    -> -1
cmsx637 comparesig  -12.1234 -12.0000000   -> -1
cmsx638 comparesig  -12.1234 -12.00000000  -> -1
cmsx639 comparesig  -12.1234 -12.000000000 -> -1
precision: 9

-- extended zeros
cmsx640 comparesig   0     0   -> 0
cmsx641 comparesig   0    -0   -> 0
cmsx642 comparesig   0    -0.0 -> 0
cmsx643 comparesig   0     0.0 -> 0
cmsx644 comparesig  -0     0   -> 0
cmsx645 comparesig  -0    -0   -> 0
cmsx646 comparesig  -0    -0.0 -> 0
cmsx647 comparesig  -0     0.0 -> 0
cmsx648 comparesig   0.0   0   -> 0
cmsx649 comparesig   0.0  -0   -> 0
cmsx650 comparesig   0.0  -0.0 -> 0
cmsx651 comparesig   0.0   0.0 -> 0
cmsx652 comparesig  -0.0   0   -> 0
cmsx653 comparesig  -0.0  -0   -> 0
cmsx654 comparesig  -0.0  -0.0 -> 0
cmsx655 comparesig  -0.0   0.0 -> 0

cmsx656 comparesig  -0E1   0.0 -> 0
cmsx657 comparesig  -0E2   0.0 -> 0
cmsx658 comparesig   0E1   0.0 -> 0
cmsx659 comparesig   0E2   0.0 -> 0
cmsx660 comparesig  -0E1   0   -> 0
cmsx661 comparesig  -0E2   0   -> 0
cmsx662 comparesig   0E1   0   -> 0
cmsx663 comparesig   0E2   0   -> 0
cmsx664 comparesig  -0E1  -0E1 -> 0
cmsx665 comparesig  -0E2  -0E1 -> 0
cmsx666 comparesig   0E1  -0E1 -> 0
cmsx667 comparesig   0E2  -0E1 -> 0
cmsx668 comparesig  -0E1  -0E2 -> 0
cmsx669 comparesig  -0E2  -0E2 -> 0
cmsx670 comparesig   0E1  -0E2 -> 0
cmsx671 comparesig   0E2  -0E2 -> 0
cmsx672 comparesig  -0E1   0E1 -> 0
cmsx673 comparesig  -0E2   0E1 -> 0
cmsx674 comparesig   0E1   0E1 -> 0
cmsx675 comparesig   0E2   0E1 -> 0
cmsx676 comparesig  -0E1   0E2 -> 0
cmsx677 comparesig  -0E2   0E2 -> 0
cmsx678 comparesig   0E1   0E2 -> 0
cmsx679 comparesig   0E2   0E2 -> 0

-- trailing zeros; unit-y
precision: 20
cmsx680 comparesig   12    12           -> 0
cmsx681 comparesig   12    12.0         -> 0
cmsx682 comparesig   12    12.00        -> 0
cmsx683 comparesig   12    12.000       -> 0
cmsx684 comparesig   12    12.0000      -> 0
cmsx685 comparesig   12    12.00000     -> 0
cmsx686 comparesig   12    12.000000    -> 0
cmsx687 comparesig   12    12.0000000   -> 0
cmsx688 comparesig   12    12.00000000  -> 0
cmsx689 comparesig   12    12.000000000 -> 0
cmsx690 comparesig   12              12 -> 0
cmsx691 comparesig   12.0            12 -> 0
cmsx692 comparesig   12.00           12 -> 0
cmsx693 comparesig   12.000          12 -> 0
cmsx694 comparesig   12.0000         12 -> 0
cmsx695 comparesig   12.00000        12 -> 0
cmsx696 comparesig   12.000000       12 -> 0
cmsx697 comparesig   12.0000000      12 -> 0
cmsx698 comparesig   12.00000000     12 -> 0
cmsx699 comparesig   12.000000000    12 -> 0

-- long operand checks
maxexponent: 999
minexponent: -999
precision: 9
cmsx701 comparesig 12345678000  1 ->  1
cmsx702 comparesig 1 12345678000  -> -1
cmsx703 comparesig 1234567800   1 ->  1
cmsx704 comparesig 1 1234567800   -> -1
cmsx705 comparesig 1234567890   1 ->  1
cmsx706 comparesig 1 1234567890   -> -1
cmsx707 comparesig 1234567891   1 ->  1
cmsx708 comparesig 1 1234567891   -> -1
cmsx709 comparesig 12345678901  1 ->  1
cmsx710 comparesig 1 12345678901  -> -1
cmsx711 comparesig 1234567896   1 ->  1
cmsx712 comparesig 1 1234567896   -> -1
cmsx713 comparesig -1234567891  1 -> -1
cmsx714 comparesig 1 -1234567891  ->  1
cmsx715 comparesig -12345678901 1 -> -1
cmsx716 comparesig 1 -12345678901 ->  1
cmsx717 comparesig -1234567896  1 -> -1
cmsx718 comparesig 1 -1234567896  ->  1

precision: 15
-- same with plenty of precision
cmsx721 comparesig 12345678000 1 -> 1
cmsx722 comparesig 1 12345678000 -> -1
cmsx723 comparesig 1234567800  1 -> 1
cmsx724 comparesig 1 1234567800  -> -1
cmsx725 comparesig 1234567890  1 -> 1
cmsx726 comparesig 1 1234567890  -> -1
cmsx727 comparesig 1234567891  1 -> 1
cmsx728 comparesig 1 1234567891  -> -1
cmsx729 comparesig 12345678901 1 -> 1
cmsx730 comparesig 1 12345678901 -> -1
cmsx731 comparesig 1234567896  1 -> 1
cmsx732 comparesig 1 1234567896  -> -1

-- residue cases
precision: 5
cmsx740 comparesig  1  0.9999999  -> 1
cmsx741 comparesig  1  0.999999   -> 1
cmsx742 comparesig  1  0.99999    -> 1
cmsx743 comparesig  1  1.0000     -> 0
cmsx744 comparesig  1  1.00001    -> -1
cmsx745 comparesig  1  1.000001   -> -1
cmsx746 comparesig  1  1.0000001  -> -1
cmsx750 comparesig  0.9999999  1  -> -1
cmsx751 comparesig  0.999999   1  -> -1
cmsx752 comparesig  0.99999    1  -> -1
cmsx753 comparesig  1.0000     1  -> 0
cmsx754 comparesig  1.00001    1  -> 1
cmsx755 comparesig  1.000001   1  -> 1
cmsx756 comparesig  1.0000001  1  -> 1

-- a selection of longies
cmsx760 comparesig -36852134.84194296250843579428931 -5830629.8347085025808756560357940 -> -1
cmsx761 comparesig -36852134.84194296250843579428931 -36852134.84194296250843579428931  -> 0
cmsx762 comparesig -36852134.94194296250843579428931 -36852134.84194296250843579428931  -> -1
cmsx763 comparesig -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1
-- precisions above or below the difference should have no effect
precision:   11
cmsx764 comparesig -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1
precision:   10
cmsx765 comparesig -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1
precision:    9
cmsx766 comparesig -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1
precision:    8
cmsx767 comparesig -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1
precision:    7
cmsx768 comparesig -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1
precision:    6
cmsx769 comparesig -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1
precision:    5
cmsx770 comparesig -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1
precision:    4
cmsx771 comparesig -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1
precision:    3
cmsx772 comparesig -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1
precision:    2
cmsx773 comparesig -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1
precision:    1
cmsx774 comparesig -36852134.84194296250843579428931 -36852134.94194296250843579428931  -> 1

-- Specials
precision:   9
cmsx780 comparesig  Inf  -Inf   ->  1
cmsx781 comparesig  Inf  -1000  ->  1
cmsx782 comparesig  Inf  -1     ->  1
cmsx783 comparesig  Inf  -0     ->  1
cmsx784 comparesig  Inf   0     ->  1
cmsx785 comparesig  Inf   1     ->  1
cmsx786 comparesig  Inf   1000  ->  1
cmsx787 comparesig  Inf   Inf   ->  0
cmsx788 comparesig -1000  Inf   -> -1
cmsx789 comparesig -Inf   Inf   -> -1
cmsx790 comparesig -1     Inf   -> -1
cmsx791 comparesig -0     Inf   -> -1
cmsx792 comparesig  0     Inf   -> -1
cmsx793 comparesig  1     Inf   -> -1
cmsx794 comparesig  1000  Inf   -> -1
cmsx795 comparesig  Inf   Inf   ->  0

cmsx800 comparesig -Inf  -Inf   ->  0
cmsx801 comparesig -Inf  -1000  -> -1
cmsx802 comparesig -Inf  -1     -> -1
cmsx803 comparesig -Inf  -0     -> -1
cmsx804 comparesig -Inf   0     -> -1
cmsx805 comparesig -Inf   1     -> -1
cmsx806 comparesig -Inf   1000  -> -1
cmsx807 comparesig -Inf   Inf   -> -1
cmsx808 comparesig -Inf  -Inf   ->  0
cmsx809 comparesig -1000 -Inf   ->  1
cmsx810 comparesig -1    -Inf   ->  1
cmsx811 comparesig -0    -Inf   ->  1
cmsx812 comparesig  0    -Inf   ->  1
cmsx813 comparesig  1    -Inf   ->  1
cmsx814 comparesig  1000 -Inf   ->  1
cmsx815 comparesig  Inf  -Inf   ->  1

cmsx821 comparesig  NaN -Inf    ->  NaN  Invalid_operation
cmsx822 comparesig  NaN -1000   ->  NaN  Invalid_operation
cmsx823 comparesig  NaN -1      ->  NaN  Invalid_operation
cmsx824 comparesig  NaN -0      ->  NaN  Invalid_operation
cmsx825 comparesig  NaN  0      ->  NaN  Invalid_operation
cmsx826 comparesig  NaN  1      ->  NaN  Invalid_operation
cmsx827 comparesig  NaN  1000   ->  NaN  Invalid_operation
cmsx828 comparesig  NaN  Inf    ->  NaN  Invalid_operation
cmsx829 comparesig  NaN  NaN    ->  NaN  Invalid_operation
cmsx830 comparesig -Inf  NaN    ->  NaN  Invalid_operation
cmsx831 comparesig -1000 NaN    ->  NaN  Invalid_operation
cmsx832 comparesig -1    NaN    ->  NaN  Invalid_operation
cmsx833 comparesig -0    NaN    ->  NaN  Invalid_operation
cmsx834 comparesig  0    NaN    ->  NaN  Invalid_operation
cmsx835 comparesig  1    NaN    ->  NaN  Invalid_operation
cmsx836 comparesig  1000 NaN    ->  NaN  Invalid_operation
cmsx837 comparesig  Inf  NaN    ->  NaN  Invalid_operation
cmsx838 comparesig -NaN -NaN    -> -NaN  Invalid_operation
cmsx839 comparesig +NaN -NaN    ->  NaN  Invalid_operation
cmsx840 comparesig -NaN +NaN    -> -NaN  Invalid_operation

cmsx841 comparesig  sNaN -Inf   ->  NaN  Invalid_operation
cmsx842 comparesig  sNaN -1000  ->  NaN  Invalid_operation
cmsx843 comparesig  sNaN -1     ->  NaN  Invalid_operation
cmsx844 comparesig  sNaN -0     ->  NaN  Invalid_operation
cmsx845 comparesig  sNaN  0     ->  NaN  Invalid_operation
cmsx846 comparesig  sNaN  1     ->  NaN  Invalid_operation
cmsx847 comparesig  sNaN  1000  ->  NaN  Invalid_operation
cmsx848 comparesig  sNaN  NaN   ->  NaN  Invalid_operation
cmsx849 comparesig  sNaN sNaN   ->  NaN  Invalid_operation
cmsx850 comparesig  NaN  sNaN   ->  NaN  Invalid_operation
cmsx851 comparesig -Inf  sNaN   ->  NaN  Invalid_operation
cmsx852 comparesig -1000 sNaN   ->  NaN  Invalid_operation
cmsx853 comparesig -1    sNaN   ->  NaN  Invalid_operation
cmsx854 comparesig -0    sNaN   ->  NaN  Invalid_operation
cmsx855 comparesig  0    sNaN   ->  NaN  Invalid_operation
cmsx856 comparesig  1    sNaN   ->  NaN  Invalid_operation
cmsx857 comparesig  1000 sNaN   ->  NaN  Invalid_operation
cmsx858 comparesig  Inf  sNaN   ->  NaN  Invalid_operation
cmsx859 comparesig  NaN  sNaN   ->  NaN  Invalid_operation

-- propagating NaNs
cmsx860 comparesig  NaN9 -Inf   ->  NaN9   Invalid_operation
cmsx861 comparesig  NaN8  999   ->  NaN8   Invalid_operation
cmsx862 comparesig  NaN77 Inf   ->  NaN77  Invalid_operation
cmsx863 comparesig -NaN67 NaN5  -> -NaN67  Invalid_operation
cmsx864 comparesig -Inf  -NaN4  -> -NaN4   Invalid_operation
cmsx865 comparesig -999  -NaN33 -> -NaN33  Invalid_operation
cmsx866 comparesig  Inf   NaN2  ->  NaN2   Invalid_operation
cmsx867 comparesig -NaN41 -NaN42 -> -NaN41 Invalid_operation
cmsx868 comparesig +NaN41 -NaN42 ->  NaN41 Invalid_operation
cmsx869 comparesig -NaN41 +NaN42 -> -NaN41 Invalid_operation
cmsx870 comparesig +NaN41 +NaN42 ->  NaN41 Invalid_operation

cmsx871 comparesig -sNaN99 -Inf    -> -NaN99 Invalid_operation
cmsx872 comparesig  sNaN98 -11     ->  NaN98 Invalid_operation
cmsx873 comparesig  sNaN97  NaN    ->  NaN97 Invalid_operation
cmsx874 comparesig  sNaN16 sNaN94  ->  NaN16 Invalid_operation
cmsx875 comparesig  NaN85  sNaN83  ->  NaN83 Invalid_operation
cmsx876 comparesig -Inf    sNaN92  ->  NaN92 Invalid_operation
cmsx877 comparesig  088    sNaN81  ->  NaN81 Invalid_operation
cmsx878 comparesig  Inf    sNaN90  ->  NaN90 Invalid_operation
cmsx879 comparesig  NaN   -sNaN89  -> -NaN89 Invalid_operation

-- overflow and underflow tests .. subnormal results now allowed
maxExponent: 999999999
minexponent: -999999999
cmsx880 comparesig +1.23456789012345E-0 9E+999999999 -> -1
cmsx881 comparesig 9E+999999999 +1.23456789012345E-0 ->  1
cmsx882 comparesig +0.100 9E-999999999               ->  1
cmsx883 comparesig 9E-999999999 +0.100               -> -1
cmsx885 comparesig -1.23456789012345E-0 9E+999999999 -> -1
cmsx886 comparesig 9E+999999999 -1.23456789012345E-0 ->  1
cmsx887 comparesig -0.100 9E-999999999               -> -1
cmsx888 comparesig 9E-999999999 -0.100               ->  1

cmsx889 comparesig 1e-599999999 1e-400000001   -> -1
cmsx890 comparesig 1e-599999999 1e-400000000   -> -1
cmsx891 comparesig 1e-600000000 1e-400000000   -> -1
cmsx892 comparesig 9e-999999998 0.01           -> -1
cmsx893 comparesig 9e-999999998 0.1            -> -1
cmsx894 comparesig 0.01 9e-999999998           ->  1
cmsx895 comparesig 1e599999999 1e400000001     ->  1
cmsx896 comparesig 1e599999999 1e400000000     ->  1
cmsx897 comparesig 1e600000000 1e400000000     ->  1
cmsx898 comparesig 9e999999998 100             ->  1
cmsx899 comparesig 9e999999998 10              ->  1
cmsx900 comparesig 100  9e999999998            -> -1
-- signs
cmsx901 comparesig  1e+777777777  1e+411111111 ->  1
cmsx902 comparesig  1e+777777777 -1e+411111111 ->  1
cmsx903 comparesig -1e+777777777  1e+411111111 -> -1
cmsx904 comparesig -1e+777777777 -1e+411111111 -> -1
cmsx905 comparesig  1e-777777777  1e-411111111 -> -1
cmsx906 comparesig  1e-777777777 -1e-411111111 ->  1
cmsx907 comparesig -1e-777777777  1e-411111111 -> -1
cmsx908 comparesig -1e-777777777 -1e-411111111 ->  1

-- spread zeros
comx910 comparesig   0E-383  0       ->  0
cmsx911 comparesig   0E-383 -0       ->  0
cmsx912 comparesig  -0E-383  0       ->  0
cmsx913 comparesig  -0E-383 -0       ->  0
cmsx914 comparesig   0E-383  0E+384  ->  0
cmsx915 comparesig   0E-383 -0E+384  ->  0
cmsx916 comparesig  -0E-383  0E+384  ->  0
cmsx917 comparesig  -0E-383 -0E+384  ->  0
cmsx918 comparesig   0       0E+384  ->  0
cmsx919 comparesig   0      -0E+384  ->  0
cmsx920 comparesig  -0       0E+384  ->  0
cmsx921 comparesig  -0      -0E+384  ->  0
cmsx930 comparesig   0E+384  0       ->  0
cmsx931 comparesig   0E+384 -0       ->  0
cmsx932 comparesig  -0E+384  0       ->  0
cmsx933 comparesig  -0E+384 -0       ->  0
cmsx934 comparesig   0E+384  0E-383  ->  0
cmsx935 comparesig   0E+384 -0E-383  ->  0
cmsx936 comparesig  -0E+384  0E-383  ->  0
cmsx937 comparesig  -0E+384 -0E-383  ->  0
cmsx938 comparesig   0       0E-383  ->  0
cmsx939 comparesig   0      -0E-383  ->  0
cmsx940 comparesig  -0       0E-383  ->  0
cmsx941 comparesig  -0      -0E-383  ->  0

-- Null tests
cmsx990 comparesig 10  # -> NaN Invalid_operation
cmsx991 comparesig  # 10 -> NaN Invalid_operation