(Dave Nomura).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5853
jm-fp.stderr.exp jm-fp.stdout.exp jm-fp.vgtest \
jm-vmx.stderr.exp jm-vmx.stdout.exp jm-vmx.vgtest \
mftocrf.stderr.exp mftocrf.stdout.exp mftocrf.vgtest \
+ round.stderr.exp round.stdout.exp round.vgtest \
test_fx.stderr.exp test_fx.stdout.exp test_fx.vgtest \
test_gx.stderr.exp test_gx.stdout.exp test_gx.vgtest \
testVMX.stderr.exp testVMX.stdout.exp testVMX.vgtest \
xlc_dbl_u32.stderr.exp xlc_dbl_u32.stdout.exp xlc_dbl_u32.vgtest
check_PROGRAMS = \
- lsw jm-insns mftocrf test_fx test_gx testVMX twi xlc_dbl_u32
+ lsw jm-insns mftocrf round test_fx test_gx testVMX twi xlc_dbl_u32
AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -g -I$(top_srcdir)/include \
@FLAG_M32@
--- /dev/null
+
+/* Copyright (C) 2006 Dave Nomura
+ dcnltc@us.ibm.com
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307, USA.
+
+ The GNU General Public License is contained in the file COPYING.
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <limits.h>
+
+typedef enum { FALSE=0, TRUE } bool_t;
+
+typedef enum {
+ FADDS, FSUBS, FMULS, FDIVS,
+ FMADDS, FMSUBS, FNMADDS, FNMSUBS,
+ FADD, FSUB, FMUL, FDIV, FMADD,
+ FMSUB, FNMADD, FNMSUB, FSQRT
+} flt_op_t;
+
+typedef enum {
+ TO_NEAREST=0, TO_ZERO, TO_PLUS_INFINITY, TO_MINUS_INFINITY } round_mode_t;
+char *round_mode_name[] = { "near", "zero", "+inf", "-inf" };
+
+const char *flt_op_names[] = {
+ "fadds", "fsubs", "fmuls", "fdivs",
+ "fmadds", "fmsubs", "fnmadds", "fnmsubs",
+ "fadd", "fsub", "fmul", "fdiv", "fmadd", "fmsub", "fnmadd",
+ "fnmsub", "fsqrt"
+};
+
+typedef unsigned int fpscr_t;
+
+typedef union {
+ float flt;
+ struct {
+ unsigned int sign:1;
+ unsigned int exp:8;
+ unsigned int frac:23;
+ } layout;
+} flt_overlay;
+
+typedef union {
+ double dbl;
+ struct {
+ unsigned int sign:1;
+ unsigned int exp:11;
+ unsigned int frac_hi:20;
+ unsigned int frac_lo:32;
+ } layout;
+ struct {
+ unsigned int hi;
+ unsigned int lo;
+ } dbl_pair;
+} dbl_overlay;
+
+void assert_fail(const char *msg,
+ const char* expr, const char* file, int line, const char*fn);
+
+#define STRING(__str) #__str
+#define assert(msg, expr) \
+ ((void) ((expr) ? 0 : \
+ (assert_fail (msg, STRING(expr), \
+ __FILE__, __LINE__, \
+ __PRETTY_FUNCTION__), 0)))
+float denorm_small;
+double dbl_denorm_small;
+float norm_small;
+bool_t debug = FALSE;
+bool_t long_is_64_bits = sizeof(long) == 8;
+
+void assert_fail (msg, expr, file, line, fn)
+const char* msg;
+const char* expr;
+const char* file;
+int line;
+const char*fn;
+{
+ printf( "\n%s: %s:%d (%s): Assertion `%s' failed.\n",
+ msg, file, line, fn, expr );
+ exit( 1 );
+}
+void set_rounding_mode(round_mode_t mode)
+{
+ switch(mode) {
+ case TO_NEAREST:
+ asm volatile("mtfsfi 7, 0");
+ break;
+ case TO_ZERO:
+ asm volatile("mtfsfi 7, 1");
+ break;
+ case TO_PLUS_INFINITY:
+ asm volatile("mtfsfi 7, 2");
+ break;
+ case TO_MINUS_INFINITY:
+ asm volatile("mtfsfi 7, 3");
+ break;
+ }
+}
+
+void print_double(char *msg, double dbl)
+{
+ dbl_overlay D;
+ D.dbl = dbl;
+
+ printf("%15s : dbl %-20a = %c(%4d, %05x%08x)\n",
+ msg, D.dbl, (D.layout.sign == 0 ? '+' : '-'),
+ D.layout.exp, D.layout.frac_hi, D.layout.frac_lo);
+}
+
+void print_single(char *msg, float *flt)
+{
+ flt_overlay F;
+ F.flt = *flt;
+
+ /* NOTE: for the purposes of comparing the fraction of a single with
+ ** a double left shift the .frac so that hex digits are grouped
+ ** from left to right. this is necessary because the size of a
+ ** single mantissa (23) bits is not a multiple of 4
+ */
+ printf("%15s : flt %-20a = %c(%4d, %06x)\n",
+ msg, F.flt, (F.layout.sign == 0 ? '+' : '-'), F.layout.exp, F.layout.frac << 1);
+}
+
+int check_dbl_to_flt_round(round_mode_t mode, double dbl, float *expected)
+{
+ int status = 0;
+ flt_overlay R, E;
+ char *result;
+ char *eq_ne;
+
+ set_rounding_mode(mode);
+
+ E.flt = *expected;
+ R.flt = (float)dbl;
+
+ if ((R.layout.sign != E.layout.sign) ||
+ (R.layout.exp != E.layout.exp) ||
+ (R.layout.frac != E.layout.frac)) {
+ result = "FAILED";
+ eq_ne = "!=";
+ status = 1;
+ } else {
+ result = "PASSED";
+ eq_ne = "==";
+ status = 0;
+ }
+ printf("%s:%s:(double)(%-20a) = %20a",
+ round_mode_name[mode], result, R.flt, dbl);
+ if (status) {
+ print_single("\n\texpected", &E.flt);
+ print_single("\n\trounded ", &R.flt);
+ }
+ putchar('\n');
+ return status;
+}
+
+int test_dbl_to_float_convert(char *msg, float *base)
+{
+ int status = 0;
+ double half = (double)denorm_small/2;
+ double qtr = half/2;
+ double D_hi = (double)*base + half + qtr;
+ double D_lo = (double)*base + half - qtr;
+ float F_lo = *base;
+ float F_hi = F_lo + denorm_small;
+
+
+ /*
+ ** .....+-----+-----+-----+-----+---....
+ ** ^F_lo ^ ^ ^
+ ** D_lo
+ ** D_hi
+ ** F_hi
+ ** F_lo and F_hi are two consecutive single float model numbers
+ ** denorm_small distance apart. D_lo and D_hi are two numbers
+ ** within that range that are not representable as single floats
+ ** and will be rounded to either F_lo or F_hi.
+ */
+ printf("-------------------------- %s --------------------------\n", msg);
+ if (debug) {
+ print_double("D_lo", D_lo);
+ print_double("D_hi", D_hi);
+ print_single("F_lo", &F_lo);
+ print_single("F_hi", &F_hi);
+ }
+
+ /* round to nearest */
+ status |= check_dbl_to_flt_round(TO_NEAREST, D_hi, &F_hi);
+ status |= check_dbl_to_flt_round(TO_NEAREST, D_lo, &F_lo);
+
+ /* round to zero */
+ status |= check_dbl_to_flt_round(TO_ZERO, D_hi, (D_hi > 0 ? &F_lo : &F_hi));
+ status |= check_dbl_to_flt_round(TO_ZERO, D_lo, (D_hi > 0 ? &F_lo : &F_hi));
+
+ /* round to +inf */
+ status |= check_dbl_to_flt_round(TO_PLUS_INFINITY, D_hi, &F_hi);
+ status |= check_dbl_to_flt_round(TO_PLUS_INFINITY, D_lo, &F_hi);
+
+ /* round to -inf */
+ status |= check_dbl_to_flt_round(TO_MINUS_INFINITY, D_hi, &F_lo);
+ status |= check_dbl_to_flt_round(TO_MINUS_INFINITY, D_lo, &F_lo);
+ return status;
+}
+
+void
+init()
+{
+ flt_overlay F;
+ dbl_overlay D;
+
+ /* small is the smallest denormalized single float number */
+ F.layout.sign = 0;
+ F.layout.exp = 0;
+ F.layout.frac = 1;
+ denorm_small = F.flt; /* == 2^(-149) */
+ if (debug) {
+ print_double("float small", F.flt);
+ }
+
+ D.layout.sign = 0;
+ D.layout.exp = 0;
+ D.layout.frac_hi = 0;
+ D.layout.frac_lo = 1;
+ dbl_denorm_small = D.dbl; /* == 2^(-1022) */
+ if (debug) {
+ print_double("double small", D.dbl);
+ }
+
+ /* n_small is the smallest normalized single precision float */
+ F.layout.exp = 1;
+ norm_small = F.flt;
+}
+
+int check_int_to_flt_round(round_mode_t mode, long L, float *expected)
+{
+ int status = 0;
+ int I = L;
+ char *int_name = "int";
+ flt_overlay R, E;
+ char *result;
+ int iter;
+
+ set_rounding_mode(mode);
+ E.flt = *expected;
+
+ for (iter = 0; iter < 2; iter++) {
+ int stat = 0;
+ R.flt = (iter == 0 ? (float)I : (float)L);
+
+ if ((R.layout.sign != E.layout.sign) ||
+ (R.layout.exp != E.layout.exp) ||
+ (R.layout.frac != E.layout.frac)) {
+ result = "FAILED";
+ stat = 1;
+ } else {
+ result = "PASSED";
+ stat = 0;
+ }
+ printf("%s:%s:(float)(%4s)%9d = %11.1f",
+ round_mode_name[mode], result, int_name, I, R.flt);
+ if (stat) {
+ print_single("\n\texpected: %.1f ", &E.flt);
+ print_single("\n\trounded ", &R.flt);
+ }
+ putchar('\n');
+ status |= stat;
+
+ if (!long_is_64_bits) break;
+ int_name = "long";
+ }
+ return status;
+}
+
+int check_long_to_dbl_round(round_mode_t mode, long L, double *expected)
+{
+ int status = 0;
+ dbl_overlay R, E;
+ char *result;
+
+ set_rounding_mode(mode);
+ E.dbl = *expected;
+
+ R.dbl = (double)L;
+
+ if ((R.layout.sign != E.layout.sign) ||
+ (R.layout.exp != E.layout.exp) ||
+ (R.layout.frac_lo != E.layout.frac_lo) ||
+ (R.layout.frac_hi != E.layout.frac_hi)) {
+ result = "FAILED";
+ status = 1;
+ } else {
+ result = "PASSED";
+ status = 0;
+ }
+ printf("%s:%s:(double)(%18ld) = %20.1f",
+ round_mode_name[mode], result, L, R.dbl);
+ if (status) {
+ printf("\n\texpected %.1f : ", E.dbl);
+ }
+ putchar('\n');
+ return status;
+}
+
+int test_int_to_float_convert(char *msg)
+{
+ int status = 0;
+ int int24_hi = 0x03ff0fff;
+ int int24_lo = 0x03ff0ffd;
+ float pos_flt_lo = 67047420.0;
+ float pos_flt_hi = 67047424.0;
+ float neg_flt_lo = -67047420.0;
+ float neg_flt_hi = -67047424.0;
+
+ printf("-------------------------- %s --------------------------\n", msg);
+ status |= check_int_to_flt_round(TO_NEAREST, int24_lo, &pos_flt_lo);
+ status |= check_int_to_flt_round(TO_NEAREST, int24_hi, &pos_flt_hi);
+ status |= check_int_to_flt_round(TO_ZERO, int24_lo, &pos_flt_lo);
+ status |= check_int_to_flt_round(TO_ZERO, int24_hi, &pos_flt_lo);
+ status |= check_int_to_flt_round(TO_PLUS_INFINITY, int24_lo, &pos_flt_hi);
+ status |= check_int_to_flt_round(TO_PLUS_INFINITY, int24_hi, &pos_flt_hi);
+ status |= check_int_to_flt_round(TO_MINUS_INFINITY, int24_lo, &pos_flt_lo);
+ status |= check_int_to_flt_round(TO_MINUS_INFINITY, int24_hi, &pos_flt_lo);
+
+ status |= check_int_to_flt_round(TO_NEAREST, -int24_lo, &neg_flt_lo);
+ status |= check_int_to_flt_round(TO_NEAREST, -int24_hi, &neg_flt_hi);
+ status |= check_int_to_flt_round(TO_ZERO, -int24_lo, &neg_flt_lo);
+ status |= check_int_to_flt_round(TO_ZERO, -int24_hi, &neg_flt_lo);
+ status |= check_int_to_flt_round(TO_PLUS_INFINITY, -int24_lo, &neg_flt_lo);
+ status |= check_int_to_flt_round(TO_PLUS_INFINITY, -int24_hi, &neg_flt_lo);
+ status |= check_int_to_flt_round(TO_MINUS_INFINITY, -int24_lo, &neg_flt_hi);
+ status |= check_int_to_flt_round(TO_MINUS_INFINITY, -int24_hi, &neg_flt_hi);
+ return status;
+}
+
+#ifdef __powerpc64__
+int test_long_to_double_convert(char *msg)
+{
+ int status = 0;
+ long long55_hi = 0x07ff0ffffffffff;
+ long long55_lo = 0x07ff0fffffffffd;
+ double pos_dbl_lo = 36012304344547324.0;
+ double pos_dbl_hi = 36012304344547328.0;
+ double neg_dbl_lo = -36012304344547324.0;
+ double neg_dbl_hi = -36012304344547328.0;
+
+ printf("-------------------------- %s --------------------------\n", msg);
+ status |= check_long_to_dbl_round(TO_NEAREST, long55_lo, &pos_dbl_lo);
+ status |= check_long_to_dbl_round(TO_NEAREST, long55_hi, &pos_dbl_hi);
+ status |= check_long_to_dbl_round(TO_ZERO, long55_lo, &pos_dbl_lo);
+ status |= check_long_to_dbl_round(TO_ZERO, long55_hi, &pos_dbl_lo);
+ status |= check_long_to_dbl_round(TO_PLUS_INFINITY, long55_lo, &pos_dbl_hi);
+ status |= check_long_to_dbl_round(TO_PLUS_INFINITY, long55_hi, &pos_dbl_hi);
+ status |= check_long_to_dbl_round(TO_MINUS_INFINITY, long55_lo, &pos_dbl_lo);
+ status |= check_long_to_dbl_round(TO_MINUS_INFINITY, long55_hi, &pos_dbl_lo);
+
+ status |= check_long_to_dbl_round(TO_NEAREST, -long55_lo, &neg_dbl_lo);
+ status |= check_long_to_dbl_round(TO_NEAREST, -long55_hi, &neg_dbl_hi);
+ status |= check_long_to_dbl_round(TO_ZERO, -long55_lo, &neg_dbl_lo);
+ status |= check_long_to_dbl_round(TO_ZERO, -long55_hi, &neg_dbl_lo);
+ status |= check_long_to_dbl_round(TO_PLUS_INFINITY, -long55_lo, &neg_dbl_lo);
+ status |= check_long_to_dbl_round(TO_PLUS_INFINITY, -long55_hi, &neg_dbl_lo);
+ status |= check_long_to_dbl_round(TO_MINUS_INFINITY, -long55_lo, &neg_dbl_hi);
+ status |= check_long_to_dbl_round(TO_MINUS_INFINITY, -long55_hi, &neg_dbl_hi);
+ return status;
+}
+#endif
+
+int check_single_arithmetic_op(flt_op_t op)
+{
+ char *result;
+ int status = 0;
+ dbl_overlay R, E;
+ double qtr, half, fA, fB, fD;
+ round_mode_t mode;
+ int q, s;
+ bool_t two_args = TRUE;
+ float whole = denorm_small;
+
+#define BINOP(op) \
+ __asm__ volatile( \
+ op" %0, %1, %2\n\t" \
+ : "=f"(fD) : "f"(fA) , "f"(fB));
+#define UNOP(op) \
+ __asm__ volatile( \
+ op" %0, %1\n\t" \
+ : "=f"(fD) : "f"(fA));
+
+ half = (double)whole/2;
+ qtr = half/2;
+
+ if (debug) {
+ print_double("qtr", qtr);
+ print_double("whole", whole);
+ print_double("2*whole", 2*whole);
+ }
+
+ for (mode = TO_NEAREST; mode <= TO_MINUS_INFINITY; mode++)
+ for (s = -1; s < 2; s += 2)
+ for (q = 1; q < 4; q += 2) {
+ double expected;
+ double lo = s*whole;
+ double hi = s*2*whole;
+
+ switch(op) {
+ case FADDS:
+ fA = s*whole;
+ fB = s*q*qtr;
+ break;
+ case FSUBS:
+ fA = s*2*whole;
+ fB = s*(q == 1 ? 3 : 1)*qtr;
+ break;
+ case FMULS:
+ fA = 0.5;
+ fB = s*(4+q)*half;
+ break;
+ case FDIVS:
+ fA = s*(4+q)*half;
+ fB = 2.0;
+ break;
+ default:
+ assert("check_single_arithmetic_op: unexpected op",
+ FALSE);
+ break;
+ }
+
+ switch(mode) {
+ case TO_NEAREST:
+ expected = (q == 1 ? lo : hi);
+ break;
+ case TO_ZERO:
+ expected = lo;
+ break;
+ case TO_PLUS_INFINITY:
+ expected = (s == 1 ? hi : lo);
+ break;
+ case TO_MINUS_INFINITY:
+ expected = (s == 1 ? lo : hi);
+ break;
+ }
+
+ set_rounding_mode(mode);
+
+ /*
+ ** do the double precision dual operation just for comparison
+ ** when debugging
+ */
+ switch(op) {
+ case FADDS:
+ BINOP("fadds");
+ R.dbl = fD;
+ BINOP("fadd");
+ break;
+ case FSUBS:
+ BINOP("fsubs");
+ R.dbl = fD;
+ BINOP("fsub");
+ break;
+ case FMULS:
+ BINOP("fmuls");
+ R.dbl = fD;
+ BINOP("fmul");
+ break;
+ case FDIVS:
+ BINOP("fdivs");
+ R.dbl = fD;
+ BINOP("fdiv");
+ break;
+ default:
+ assert("check_single_arithmetic_op: unexpected op",
+ FALSE);
+ break;
+ }
+#undef UNOP
+#undef BINOP
+
+ E.dbl = expected;
+
+ if ((R.layout.sign != E.layout.sign) ||
+ (R.layout.exp != E.layout.exp) ||
+ (R.layout.frac_lo != E.layout.frac_lo) ||
+ (R.layout.frac_hi != E.layout.frac_hi)) {
+ result = "FAILED";
+ status = 1;
+ } else {
+ result = "PASSED";
+ status = 0;
+ }
+
+ printf("%s:%s:%s(%-13a",
+ round_mode_name[mode], result, flt_op_names[op], fA);
+ if (two_args) printf(", %-13a", fB);
+ printf(") = %-13a", R.dbl);
+ if (status) printf("\n\texpected %a", E.dbl);
+ putchar('\n');
+
+ if (debug) {
+ print_double("hi", hi);
+ print_double("lo", lo);
+ print_double("expected", expected);
+ print_double("got", R.dbl);
+ print_double("double result", fD);
+ }
+ }
+
+ return status;
+}
+
+int check_single_guarded_arithmetic_op(flt_op_t op)
+{
+ typedef struct {
+ int num, den, frac;
+ } fdivs_t;
+
+ char *result;
+ int status = 0;
+ flt_overlay A, B, Z;
+ dbl_overlay Res, Exp;
+ double fA, fB, fC, fD;
+ round_mode_t mode;
+ int g, s;
+ int arg_count;
+
+ fdivs_t divs_guard_cases[16] = {
+ { 105, 56, 0x700000 }, /* : 0 */
+ { 100, 57, 0x608FB8 }, /* : 1 */
+ { 000, 00, 0x000000 }, /* : X */
+ { 100, 52, 0x762762 }, /* : 3 */
+ { 000, 00, 0x000000 }, /* : X */
+ { 100, 55, 0x68BA2E }, /* : 5 */
+ { 000, 00, 0x000000 }, /* : X */
+ { 100, 51, 0x7AFAFA }, /* : 7 */
+ { 000, 00, 0x000000 }, /* : X */
+ { 100, 56, 0x649249 }, /* : 9 */
+ { 000, 00, 0x000000 }, /* : X */
+ { 100, 54, 0x6D097B }, /* : B */
+ { 000, 00, 0x000000 }, /* : X */
+ { 100, 59, 0x58F2FB }, /* : D */
+ { 000, 00, 0x000000 }, /* : X */
+ { 101, 52, 0x789D89 } /* : F */
+ };
+
+ /* 0x1.00000 00000000p-3 */
+ /* set up the invariant fields of B, the arg to cause rounding */
+ B.flt = 0.0;
+ B.layout.exp = 124; /* -3 */
+
+ /* set up args so result is always Z = 1.200000000000<g>p+0 */
+ Z.flt = 1.0;
+ Z.layout.sign = 0;
+
+#define TERNOP(op) \
+ arg_count = 3; \
+ __asm__ volatile( \
+ op" %0, %1, %2, %3\n\t" \
+ : "=f"(fD) : "f"(fA) , "f"(fB), "f"(fC));
+#define BINOP(op) \
+ arg_count = 2; \
+ __asm__ volatile( \
+ op" %0, %1, %2\n\t" \
+ : "=f"(fD) : "f"(fA) , "f"(fB));
+#define UNOP(op) \
+ arg_count = 1; \
+ __asm__ volatile( \
+ op" %0, %1\n\t" \
+ : "=f"(fD) : "f"(fA));
+
+ for (mode = TO_NEAREST; mode <= TO_MINUS_INFINITY; mode++)
+ for (s = -1; s < 2; s += 2)
+ for (g = 0; g < 16; g += 1) {
+ double lo, hi, expected;
+ int LSB;
+ int guard = 0;
+ int z_sign = s;
+
+ /*
+ ** one argument will have exponent = 0 as will the result (by
+ ** design) so choose the other argument with exponent -3 to
+ ** force a 3 bit shift for scaling leaving us with 3 guard bits
+ ** and the LSB bit at the bottom of the manitssa.
+ */
+ switch(op) {
+ case FADDS:
+ /* 1p+0 + 1.00000<g>p-3 */
+ B.layout.frac = g;
+
+ fB = s*B.flt;
+ fA = s*1.0;
+
+ /* set up Z to be truncated result */
+
+ /* mask off LSB from resulting guard bits */
+ guard = g & 7;
+
+ Z.layout.frac = 0x100000 | (g >> 3);
+ break;
+ case FSUBS:
+ /* 1.200002p+0 - 1.000000000000<g>p-3 */
+ A.flt = 1.125;
+ /* add enough to avoid scaling of the result */
+ A.layout.frac |= 0x2;
+ fA = s*A.flt;
+
+ B.layout.frac = g;
+ fB = s*B.flt;
+
+ /* set up Z to be truncated result */
+ guard = (0x10-g);
+ Z.layout.frac = guard>>3;
+
+ /* mask off LSB from resulting guard bits */
+ guard &= 7;
+ break;
+ case FMULS:
+ /* 1 + g*2^-23 */
+ A.flt = 1.0;
+ A.layout.frac = g;
+ fA = s*A.flt;
+ fB = 1.125;
+
+ /* set up Z to be truncated result */
+ Z.flt = 1.0;
+ Z.layout.frac = 0x100000;
+ Z.layout.frac |= g + (g>>3);
+ guard = g & 7;
+ break;
+ case FDIVS:
+ /* g >> 3 == LSB, g & 7 == guard bits */
+ guard = g & 7;
+ if ((guard & 1) == 0) {
+ /* special case: guard bit X = 0 */
+ A.flt = denorm_small;
+ A.layout.frac = g;
+ fA = A.flt;
+ fB = s*8.0;
+ Z.flt = 0.0;
+ Z.layout.frac |= (g >> 3);
+ } else {
+ fA = s*divs_guard_cases[g].num;
+ fB = divs_guard_cases[g].den;
+
+ Z.flt = 1.0;
+ Z.layout.frac = divs_guard_cases[g].frac;
+ }
+ break;
+ case FMADDS:
+ case FMSUBS:
+ case FNMADDS:
+ case FNMSUBS:
+ /* 1 + g*2^-23 */
+ A.flt = 1.0;
+ A.layout.frac = g;
+ fA = s*A.flt;
+ fB = 1.125;
+
+ /* 1.000001p-1 */
+ A.flt = 0.5;
+ A.layout.frac = 1;
+ fC = (op == FMADDS || op == FNMADDS ? s : -s)*A.flt;
+
+ /* set up Z to be truncated result */
+ z_sign = (op == FNMADDS || op == FNMSUBS ? -s : s);
+ guard = ((g & 7) + 0x4) & 7;
+ Z.flt = 1.0;
+ Z.layout.frac = 0x500000;
+ Z.layout.frac |= g + (g>>3) + ((g & 7)>> 2 ? 1 : 0);
+ break;
+ default:
+ assert("check_single_arithmetic_op: unexpected op",
+ FALSE);
+ break;
+ }
+
+ /* get LSB for tie breaking */
+ LSB = Z.layout.frac & 1;
+
+ /* set up hi and lo */
+ lo = z_sign*Z.flt;
+ Z.layout.frac += 1;
+ hi = z_sign*Z.flt;
+
+ switch(mode) {
+ case TO_NEAREST:
+ /* look at 3 guard bits to determine expected rounding */
+ switch(guard) {
+ case 0:
+ case 1: case 2: case 3:
+ expected = lo;
+ break;
+ case 4: /* tie: round to even */
+ if (debug) printf("tie: LSB = %d\n", LSB);
+ expected = (LSB == 0 ? lo : hi);
+ break;
+ case 5: case 6: case 7:
+ expected = hi;
+ break;
+ default:
+ assert("check_single_guarded_arithmetic_op: unexpected guard",
+ FALSE);
+ }
+ break;
+ case TO_ZERO:
+ expected = lo;
+ break;
+ case TO_PLUS_INFINITY:
+ if (guard == 0) {
+ /* no rounding */
+ expected = lo;
+ } else {
+ expected = (s == 1 ? hi : lo);
+ }
+ break;
+ case TO_MINUS_INFINITY:
+ if (guard == 0) {
+ /* no rounding */
+ expected = lo;
+ } else {
+ expected = (s == 1 ? lo : hi);
+ }
+ break;
+ }
+
+ set_rounding_mode(mode);
+
+ /*
+ ** do the double precision dual operation just for comparison
+ ** when debugging
+ */
+ switch(op) {
+ case FADDS:
+ BINOP("fadds");
+ Res.dbl = fD;
+ break;
+ case FSUBS:
+ BINOP("fsubs");
+ Res.dbl = fD;
+ break;
+ case FMULS:
+ BINOP("fmuls");
+ Res.dbl = fD;
+ break;
+ case FDIVS:
+ BINOP("fdivs");
+ Res.dbl = fD;
+ break;
+ case FMADDS:
+ TERNOP("fmadds");
+ Res.dbl = fD;
+ break;
+ case FMSUBS:
+ TERNOP("fmsubs");
+ Res.dbl = fD;
+ break;
+ case FNMADDS:
+ TERNOP("fnmadds");
+ Res.dbl = fD;
+ break;
+ case FNMSUBS:
+ TERNOP("fnmsubs");
+ Res.dbl = fD;
+ break;
+ default:
+ assert("check_single_guarded_arithmetic_op: unexpected op",
+ FALSE);
+ break;
+ }
+#undef UNOP
+#undef BINOP
+#undef TERNOP
+
+ Exp.dbl = expected;
+
+ if ((Res.layout.sign != Exp.layout.sign) ||
+ (Res.layout.exp != Exp.layout.exp) ||
+ (Res.layout.frac_lo != Exp.layout.frac_lo) ||
+ (Res.layout.frac_hi != Exp.layout.frac_hi)) {
+ result = "FAILED";
+ status = 1;
+ } else {
+ result = "PASSED";
+ status = 0;
+ }
+
+ printf("%s:%s:%s(%-13f",
+ round_mode_name[mode], result, flt_op_names[op], fA);
+ if (arg_count > 1) printf(", %-13a", fB);
+ if (arg_count > 2) printf(", %-13a", fC);
+ printf(") = %-13a", Res.dbl);
+ if (status) printf("\n\texpected %a", Exp.dbl);
+ putchar('\n');
+
+ if (debug) {
+ print_double("hi", hi);
+ print_double("lo", lo);
+ print_double("expected", expected);
+ print_double("got", Res.dbl);
+ }
+ }
+
+ return status;
+}
+
+int check_double_guarded_arithmetic_op(flt_op_t op)
+{
+ typedef struct {
+ int num, den, hi, lo;
+ } fdiv_t;
+ typedef struct {
+ double arg;
+ int exp, hi, lo;
+ } fsqrt_t;
+
+ char *result;
+ int status = 0;
+ dbl_overlay A, B, Z;
+ dbl_overlay Res, Exp;
+ double fA, fB, fC, fD;
+ round_mode_t mode;
+ int g, s;
+ int arg_count;
+ fdiv_t div_guard_cases[16] = {
+ { 62, 62, 0x00000, 0x00000000 }, /* 0 */
+ { 64, 62, 0x08421, 0x08421084 }, /* 1 */
+ { 66, 62, 0x10842, 0x10842108 }, /* 2 */
+ { 100, 62, 0x9ce73, 0x9ce739ce }, /* 3 */
+ { 100, 62, 0x9ce73, 0x9ce739ce }, /* X */
+ { 102, 62, 0xa5294, 0xa5294a52 }, /* 5 */
+ { 106, 62, 0xb5ad6, 0xb5ad6b5a }, /* 6 */
+ { 108, 62, 0xbdef7, 0xbdef7bde }, /* 7 */
+ { 108, 108, 0x00000, 0x00000000 }, /* 8 */
+ { 112, 62, 0xce739, 0xce739ce7 }, /* 9 */
+ { 114, 62, 0xd6b5a, 0xd6b5ad6b }, /* A */
+ { 116, 62, 0xdef7b, 0xdef7bdef }, /* B */
+ { 84, 62, 0x5ad6b, 0x5ad6b5ad }, /* X */
+ { 118, 62, 0xe739c, 0xe739ce73 }, /* D */
+ { 90, 62, 0x739ce, 0x739ce739 }, /* E */
+ { 92, 62, 0x7bdef, 0x7bdef7bd } /* F */
+ };
+
+
+ fsqrt_t sqrt_guard_cases[16] = {
+ { 0x1.08800p0, 0, 0x04371, 0xd9ab72fb}, /* :0 B8.8440 */
+ { 0x.D2200p0, -1, 0xcfdca, 0xf353049e}, /* :1 A4.6910 */
+ { 0x1.A8220p0, 0, 0x49830, 0x2b49cd6d}, /* :2 E9.D411 */
+ { 0x1.05A20p0, 0, 0x02cd1, 0x3b44f3bf}, /* :3 B7.82D1 */
+ { 0x.CA820p0, -1, 0xc7607, 0x3cec0937}, /* :4 A1.6541 */
+ { 0x1.DCA20p0, 0, 0x5d4f8, 0xd4e4c2b2}, /* :5 F7.EE51 */
+ { 0x1.02C80p0, 0, 0x01630, 0x9cde7483}, /* :6 B6.8164 */
+ { 0x.DC800p0, -1, 0xdb2cf, 0xe686fe7c}, /* :7 A8.6E40 */
+ { 0x.CF920p0, -1, 0xcd089, 0xb6860626}, /* :8 A3.67C9 */
+ { 0x1.1D020p0, 0, 0x0e1d6, 0x2e78ed9d}, /* :9 BF.8E81 */
+ { 0x.E1C80p0, -1, 0xe0d52, 0x6020fb6b}, /* :A AA.70E4 */
+ { 0x.C8000p0, -1, 0xc48c6, 0x001f0abf}, /* :B A0.6400 */
+ { 0x1.48520p0, 0, 0x21e9e, 0xd813e2e2}, /* :C CD.A429 */
+ { 0x.F4C20p0, -1, 0xf4a1b, 0x09bbf0b0}, /* :D B1.7A61 */
+ { 0x.CD080p0, -1, 0xca348, 0x79b907ae}, /* :E A2.6684 */
+ { 0x1.76B20p0, 0, 0x35b67, 0x81aed827} /* :F DB.BB59 */
+ };
+
+ /* 0x1.00000 00000000p-3 */
+ /* set up the invariant fields of B, the arg to cause rounding */
+ B.dbl = 0.0;
+ B.layout.exp = 1020;
+
+ /* set up args so result is always Z = 1.200000000000<g>p+0 */
+ Z.dbl = 1.0;
+ Z.layout.sign = 0;
+
+#define TERNOP(op) \
+ arg_count = 3; \
+ __asm__ volatile( \
+ op" %0, %1, %2, %3\n\t" \
+ : "=f"(fD) : "f"(fA) , "f"(fB), "f"(fC));
+#define BINOP(op) \
+ arg_count = 2; \
+ __asm__ volatile( \
+ op" %0, %1, %2\n\t" \
+ : "=f"(fD) : "f"(fA) , "f"(fB));
+#define UNOP(op) \
+ arg_count = 1; \
+ __asm__ volatile( \
+ op" %0, %1\n\t" \
+ : "=f"(fD) : "f"(fA));
+
+ for (mode = TO_NEAREST; mode <= TO_MINUS_INFINITY; mode++)
+ for (s = (op != FSQRT ? -1 : 1); s < 2; s += 2)
+ for (g = 0; g < 16; g += 1) {
+ double lo, hi, expected;
+ int LSB;
+ int guard;
+ int z_sign = s;
+
+ /*
+ ** one argument will have exponent = 0 as will the result (by
+ ** design) so choose the other argument with exponent -3 to
+ ** force a 3 bit shift for scaling leaving us with 3 guard bits
+ ** and the LSB bit at the bottom of the manitssa.
+ */
+ switch(op) {
+ case FADD:
+ /* 1p+0 + 1.000000000000<g>p-3 */
+ B.layout.frac_lo = g;
+
+ fB = s*B.dbl;
+ fA = s*1.0;
+
+ /* set up Z to be truncated result */
+
+ /* mask off LSB from resulting guard bits */
+ guard = g & 7;
+
+ Z.layout.frac_hi = 0x20000;
+ Z.layout.frac_lo = g >> 3;
+
+ break;
+ case FSUB:
+ /* 1.2000000000002p+0 - 1.000000000000<g>p-3 */
+ A.dbl = 1.125;
+ /* add enough to avoid scaling of the result */
+ A.layout.frac_lo = 0x2;
+ fA = s*A.dbl;
+
+ B.layout.frac_lo = g;
+ fB = s*B.dbl;
+
+ /* set up Z to be truncated result */
+ guard = (0x10-g);
+ Z.layout.frac_hi = 0x0;
+ Z.layout.frac_lo = guard>>3;
+
+ /* mask off LSB from resulting guard bits */
+ guard &= 7;
+ break;
+ case FMUL:
+ /* 1 + g*2^-52 */
+ A.dbl = 1.0;
+ A.layout.frac_lo = g;
+ fA = s*A.dbl;
+ fB = 1.125;
+
+ /* set up Z to be truncated result */
+ Z.dbl = 1.0;
+ Z.layout.frac_hi = 0x20000;
+ Z.layout.frac_lo = g + (g>>3);
+ guard = g & 7;
+ break;
+ case FMADD:
+ case FMSUB:
+ case FNMADD:
+ case FNMSUB:
+ /* 1 + g*2^-52 */
+ A.dbl = 1.0;
+ A.layout.frac_lo = g;
+ fA = s*A.dbl;
+ fB = 1.125;
+
+ /* 1.0000000000001p-1 */
+ A.dbl = 0.5;
+ A.layout.frac_lo = 1;
+ fC = (op == FMADD || op == FNMADD ? s : -s)*A.dbl;
+
+ /* set up Z to be truncated result */
+ z_sign = (op == FNMADD || op == FNMSUB ? -s : s);
+ guard = ((g & 7) + 0x4) & 7;
+ Z.dbl = 1.0;
+ Z.layout.frac_hi = 0xa0000;
+ Z.layout.frac_lo = g + (g>>3) + ((g & 7)>> 2 ? 1 : 0);
+ break;
+ case FDIV:
+ /* g >> 3 == LSB, g & 7 == guard bits */
+ guard = g & 7;
+ if (guard == 0x4) {
+ /* special case guard bits == 4, inexact tie */
+ fB = s*2.0;
+ Z.dbl = 0.0;
+ if (g >> 3) {
+ fA = dbl_denorm_small + 2*dbl_denorm_small;
+ Z.layout.frac_lo = 0x1;
+ } else {
+ fA = dbl_denorm_small;
+ }
+ } else {
+ fA = s*div_guard_cases[g].num;
+ fB = div_guard_cases[g].den;
+
+ printf("%d/%d\n",
+ s*div_guard_cases[g].num,
+ div_guard_cases[g].den);
+ Z.dbl = 1.0;
+ Z.layout.frac_hi = div_guard_cases[g].hi;
+ Z.layout.frac_lo = div_guard_cases[g].lo;
+ }
+ break;
+ case FSQRT:
+ fA = s*sqrt_guard_cases[g].arg;
+ Z.dbl = 1.0;
+ Z.layout.exp = sqrt_guard_cases[g].exp + 1023;
+ Z.layout.frac_hi = sqrt_guard_cases[g].hi;
+ Z.layout.frac_lo = sqrt_guard_cases[g].lo;
+ guard = g >> 1;
+ if (g & 1) guard |= 1;
+ /* don't have test cases for when X bit = 0 */
+ if (guard == 0 || guard == 4) continue;
+ break;
+ default:
+ assert("check_double_guarded_arithmetic_op: unexpected op",
+ FALSE);
+ break;
+ }
+
+ /* get LSB for tie breaking */
+ LSB = Z.layout.frac_lo & 1;
+
+ /* set up hi and lo */
+ lo = z_sign*Z.dbl;
+ Z.layout.frac_lo += 1;
+ hi = z_sign*Z.dbl;
+
+ switch(mode) {
+ case TO_NEAREST:
+ /* look at 3 guard bits to determine expected rounding */
+ switch(guard) {
+ case 0:
+ case 1: case 2: case 3:
+ expected = lo;
+ break;
+ case 4: /* tie: round to even */
+ if (debug) printf("tie: LSB = %d\n", LSB);
+ expected = (LSB == 0 ? lo : hi);
+ break;
+ case 5: case 6: case 7:
+ expected = hi;
+ break;
+ default:
+ assert("check_double_guarded_arithmetic_op: unexpected guard",
+ FALSE);
+ }
+ break;
+ case TO_ZERO:
+ expected = lo;
+ break;
+ case TO_PLUS_INFINITY:
+ if (guard == 0) {
+ /* no rounding */
+ expected = lo;
+ } else {
+ expected = (s == 1 ? hi : lo);
+ }
+ break;
+ case TO_MINUS_INFINITY:
+ if (guard == 0) {
+ /* no rounding */
+ expected = lo;
+ } else {
+ expected = (s == 1 ? lo : hi);
+ }
+ break;
+ }
+
+ set_rounding_mode(mode);
+
+ /*
+ ** do the double precision dual operation just for comparison
+ ** when debugging
+ */
+ switch(op) {
+ case FADD:
+ BINOP("fadd");
+ Res.dbl = fD;
+ break;
+ case FSUB:
+ BINOP("fsub");
+ Res.dbl = fD;
+ break;
+ case FMUL:
+ BINOP("fmul");
+ Res.dbl = fD;
+ break;
+ case FMADD:
+ TERNOP("fmadd");
+ Res.dbl = fD;
+ break;
+ case FMSUB:
+ TERNOP("fmsub");
+ Res.dbl = fD;
+ break;
+ case FNMADD:
+ TERNOP("fnmadd");
+ Res.dbl = fD;
+ break;
+ case FNMSUB:
+ TERNOP("fnmsub");
+ Res.dbl = fD;
+ break;
+ case FDIV:
+ BINOP("fdiv");
+ Res.dbl = fD;
+ break;
+ case FSQRT:
+ UNOP("fsqrt");
+ Res.dbl = fD;
+ break;
+ default:
+ assert("check_double_guarded_arithmetic_op: unexpected op",
+ FALSE);
+ break;
+ }
+#undef UNOP
+#undef BINOP
+#undef TERNOP
+
+ Exp.dbl = expected;
+
+ if ((Res.layout.sign != Exp.layout.sign) ||
+ (Res.layout.exp != Exp.layout.exp) ||
+ (Res.layout.frac_lo != Exp.layout.frac_lo) ||
+ (Res.layout.frac_hi != Exp.layout.frac_hi)) {
+ result = "FAILED";
+ status = 1;
+ } else {
+ result = "PASSED";
+ status = 0;
+ }
+
+ printf("%s:%s:%s(%-13a",
+ round_mode_name[mode], result, flt_op_names[op], fA);
+ if (arg_count > 1) printf(", %-13a", fB);
+ if (arg_count > 2) printf(", %-13a", fC);
+ printf(") = %-13a", Res.dbl);
+ if (status) printf("\n\texpected %a", Exp.dbl);
+ putchar('\n');
+
+ if (debug) {
+ print_double("hi", hi);
+ print_double("lo", lo);
+ print_double("expected", expected);
+ print_double("got", Res.dbl);
+ }
+ }
+
+ return status;
+}
+
+int test_float_arithmetic_ops()
+{
+ int status = 0;
+ flt_op_t op;
+
+ /*
+ ** choose FP operands whose result should be rounded to either
+ ** lo or hi.
+ */
+
+ printf("-------------------------- %s --------------------------\n",
+ "test rounding of float operators without guard bits");
+ for (op = FADDS; op <= FDIVS; op++) {
+ status |= check_single_arithmetic_op(op);
+ }
+
+ printf("-------------------------- %s --------------------------\n",
+ "test rounding of float operators with guard bits");
+ for (op = FADDS; op <= FNMSUBS; op++) {
+ status |= check_single_guarded_arithmetic_op(op);
+ }
+
+ printf("-------------------------- %s --------------------------\n",
+ "test rounding of double operators with guard bits");
+ for (op = FADD; op <= FSQRT; op++) {
+ status |= check_double_guarded_arithmetic_op(op);
+ }
+ return status;
+}
+
+
+int
+main()
+{
+ int status = 0;
+
+ init();
+
+ status |= test_dbl_to_float_convert("test denormalized convert", &denorm_small);
+ status |= test_dbl_to_float_convert("test normalized convert", &norm_small);
+ status |= test_int_to_float_convert("test (float)int convert");
+ status |= test_int_to_float_convert("test (float)int convert");
+
+#ifdef __powerpc64__
+ status |= test_long_to_double_convert("test (double)long convert");
+#endif
+ status |= test_float_arithmetic_ops();
+ return status;
+}
--- /dev/null
+-------------------------- test denormalized convert --------------------------
+near:PASSED:(double)(0x1p-148 ) = 0x1.cp-149
+near:PASSED:(double)(0x1p-149 ) = 0x1.4p-149
+zero:PASSED:(double)(0x1p-149 ) = 0x1.cp-149
+zero:PASSED:(double)(0x1p-149 ) = 0x1.4p-149
++inf:PASSED:(double)(0x1p-148 ) = 0x1.cp-149
++inf:PASSED:(double)(0x1p-148 ) = 0x1.4p-149
+-inf:PASSED:(double)(0x1p-149 ) = 0x1.cp-149
+-inf:PASSED:(double)(0x1p-149 ) = 0x1.4p-149
+-------------------------- test normalized convert --------------------------
+near:PASSED:(double)(0x1.000004p-126 ) = 0x1.0000038p-126
+near:PASSED:(double)(0x1.000002p-126 ) = 0x1.0000028p-126
+zero:PASSED:(double)(0x1.000002p-126 ) = 0x1.0000038p-126
+zero:PASSED:(double)(0x1.000002p-126 ) = 0x1.0000028p-126
++inf:PASSED:(double)(0x1.000004p-126 ) = 0x1.0000038p-126
++inf:PASSED:(double)(0x1.000004p-126 ) = 0x1.0000028p-126
+-inf:PASSED:(double)(0x1.000002p-126 ) = 0x1.0000038p-126
+-inf:PASSED:(double)(0x1.000002p-126 ) = 0x1.0000028p-126
+-------------------------- test (float)int convert --------------------------
+near:PASSED:(float)( int) 67047421 = 67047420.0
+near:PASSED:(float)( int) 67047423 = 67047424.0
+zero:PASSED:(float)( int) 67047421 = 67047420.0
+zero:PASSED:(float)( int) 67047423 = 67047420.0
++inf:PASSED:(float)( int) 67047421 = 67047424.0
++inf:PASSED:(float)( int) 67047423 = 67047424.0
+-inf:PASSED:(float)( int) 67047421 = 67047420.0
+-inf:PASSED:(float)( int) 67047423 = 67047420.0
+near:PASSED:(float)( int)-67047421 = -67047420.0
+near:PASSED:(float)( int)-67047423 = -67047424.0
+zero:PASSED:(float)( int)-67047421 = -67047420.0
+zero:PASSED:(float)( int)-67047423 = -67047420.0
++inf:PASSED:(float)( int)-67047421 = -67047420.0
++inf:PASSED:(float)( int)-67047423 = -67047420.0
+-inf:PASSED:(float)( int)-67047421 = -67047424.0
+-inf:PASSED:(float)( int)-67047423 = -67047424.0
+-------------------------- test (float)int convert --------------------------
+near:PASSED:(float)( int) 67047421 = 67047420.0
+near:PASSED:(float)( int) 67047423 = 67047424.0
+zero:PASSED:(float)( int) 67047421 = 67047420.0
+zero:PASSED:(float)( int) 67047423 = 67047420.0
++inf:PASSED:(float)( int) 67047421 = 67047424.0
++inf:PASSED:(float)( int) 67047423 = 67047424.0
+-inf:PASSED:(float)( int) 67047421 = 67047420.0
+-inf:PASSED:(float)( int) 67047423 = 67047420.0
+near:PASSED:(float)( int)-67047421 = -67047420.0
+near:PASSED:(float)( int)-67047423 = -67047424.0
+zero:PASSED:(float)( int)-67047421 = -67047420.0
+zero:PASSED:(float)( int)-67047423 = -67047420.0
++inf:PASSED:(float)( int)-67047421 = -67047420.0
++inf:PASSED:(float)( int)-67047423 = -67047420.0
+-inf:PASSED:(float)( int)-67047421 = -67047424.0
+-inf:PASSED:(float)( int)-67047423 = -67047424.0
+-------------------------- test rounding of float operators without guard bits --------------------------
+near:PASSED:fadds(-0x1p-149 , -0x1p-151 ) = -0x1p-149
+near:PASSED:fadds(-0x1p-149 , -0x1.8p-150 ) = -0x1p-148
+near:PASSED:fadds(0x1p-149 , 0x1p-151 ) = 0x1p-149
+near:PASSED:fadds(0x1p-149 , 0x1.8p-150 ) = 0x1p-148
+zero:PASSED:fadds(-0x1p-149 , -0x1p-151 ) = -0x1p-149
+zero:PASSED:fadds(-0x1p-149 , -0x1.8p-150 ) = -0x1p-149
+zero:PASSED:fadds(0x1p-149 , 0x1p-151 ) = 0x1p-149
+zero:PASSED:fadds(0x1p-149 , 0x1.8p-150 ) = 0x1p-149
++inf:PASSED:fadds(-0x1p-149 , -0x1p-151 ) = -0x1p-149
++inf:PASSED:fadds(-0x1p-149 , -0x1.8p-150 ) = -0x1p-149
++inf:PASSED:fadds(0x1p-149 , 0x1p-151 ) = 0x1p-148
++inf:PASSED:fadds(0x1p-149 , 0x1.8p-150 ) = 0x1p-148
+-inf:PASSED:fadds(-0x1p-149 , -0x1p-151 ) = -0x1p-148
+-inf:PASSED:fadds(-0x1p-149 , -0x1.8p-150 ) = -0x1p-148
+-inf:PASSED:fadds(0x1p-149 , 0x1p-151 ) = 0x1p-149
+-inf:PASSED:fadds(0x1p-149 , 0x1.8p-150 ) = 0x1p-149
+near:PASSED:fsubs(-0x1p-148 , -0x1.8p-150 ) = -0x1p-149
+near:PASSED:fsubs(-0x1p-148 , -0x1p-151 ) = -0x1p-148
+near:PASSED:fsubs(0x1p-148 , 0x1.8p-150 ) = 0x1p-149
+near:PASSED:fsubs(0x1p-148 , 0x1p-151 ) = 0x1p-148
+zero:PASSED:fsubs(-0x1p-148 , -0x1.8p-150 ) = -0x1p-149
+zero:PASSED:fsubs(-0x1p-148 , -0x1p-151 ) = -0x1p-149
+zero:PASSED:fsubs(0x1p-148 , 0x1.8p-150 ) = 0x1p-149
+zero:PASSED:fsubs(0x1p-148 , 0x1p-151 ) = 0x1p-149
++inf:PASSED:fsubs(-0x1p-148 , -0x1.8p-150 ) = -0x1p-149
++inf:PASSED:fsubs(-0x1p-148 , -0x1p-151 ) = -0x1p-149
++inf:PASSED:fsubs(0x1p-148 , 0x1.8p-150 ) = 0x1p-148
++inf:PASSED:fsubs(0x1p-148 , 0x1p-151 ) = 0x1p-148
+-inf:PASSED:fsubs(-0x1p-148 , -0x1.8p-150 ) = -0x1p-148
+-inf:PASSED:fsubs(-0x1p-148 , -0x1p-151 ) = -0x1p-148
+-inf:PASSED:fsubs(0x1p-148 , 0x1.8p-150 ) = 0x1p-149
+-inf:PASSED:fsubs(0x1p-148 , 0x1p-151 ) = 0x1p-149
+near:PASSED:fmuls(0x1p-1 , -0x1.4p-148 ) = -0x1p-149
+near:PASSED:fmuls(0x1p-1 , -0x1.cp-148 ) = -0x1p-148
+near:PASSED:fmuls(0x1p-1 , 0x1.4p-148 ) = 0x1p-149
+near:PASSED:fmuls(0x1p-1 , 0x1.cp-148 ) = 0x1p-148
+zero:PASSED:fmuls(0x1p-1 , -0x1.4p-148 ) = -0x1p-149
+zero:PASSED:fmuls(0x1p-1 , -0x1.cp-148 ) = -0x1p-149
+zero:PASSED:fmuls(0x1p-1 , 0x1.4p-148 ) = 0x1p-149
+zero:PASSED:fmuls(0x1p-1 , 0x1.cp-148 ) = 0x1p-149
++inf:PASSED:fmuls(0x1p-1 , -0x1.4p-148 ) = -0x1p-149
++inf:PASSED:fmuls(0x1p-1 , -0x1.cp-148 ) = -0x1p-149
++inf:PASSED:fmuls(0x1p-1 , 0x1.4p-148 ) = 0x1p-148
++inf:PASSED:fmuls(0x1p-1 , 0x1.cp-148 ) = 0x1p-148
+-inf:PASSED:fmuls(0x1p-1 , -0x1.4p-148 ) = -0x1p-148
+-inf:PASSED:fmuls(0x1p-1 , -0x1.cp-148 ) = -0x1p-148
+-inf:PASSED:fmuls(0x1p-1 , 0x1.4p-148 ) = 0x1p-149
+-inf:PASSED:fmuls(0x1p-1 , 0x1.cp-148 ) = 0x1p-149
+near:PASSED:fdivs(-0x1.4p-148 , 0x1p+1 ) = -0x1p-149
+near:PASSED:fdivs(-0x1.cp-148 , 0x1p+1 ) = -0x1p-148
+near:PASSED:fdivs(0x1.4p-148 , 0x1p+1 ) = 0x1p-149
+near:PASSED:fdivs(0x1.cp-148 , 0x1p+1 ) = 0x1p-148
+zero:PASSED:fdivs(-0x1.4p-148 , 0x1p+1 ) = -0x1p-149
+zero:PASSED:fdivs(-0x1.cp-148 , 0x1p+1 ) = -0x1p-149
+zero:PASSED:fdivs(0x1.4p-148 , 0x1p+1 ) = 0x1p-149
+zero:PASSED:fdivs(0x1.cp-148 , 0x1p+1 ) = 0x1p-149
++inf:PASSED:fdivs(-0x1.4p-148 , 0x1p+1 ) = -0x1p-149
++inf:PASSED:fdivs(-0x1.cp-148 , 0x1p+1 ) = -0x1p-149
++inf:PASSED:fdivs(0x1.4p-148 , 0x1p+1 ) = 0x1p-148
++inf:PASSED:fdivs(0x1.cp-148 , 0x1p+1 ) = 0x1p-148
+-inf:PASSED:fdivs(-0x1.4p-148 , 0x1p+1 ) = -0x1p-148
+-inf:PASSED:fdivs(-0x1.cp-148 , 0x1p+1 ) = -0x1p-148
+-inf:PASSED:fdivs(0x1.4p-148 , 0x1p+1 ) = 0x1p-149
+-inf:PASSED:fdivs(0x1.cp-148 , 0x1p+1 ) = 0x1p-149
+-------------------------- test rounding of float operators with guard bits --------------------------
+near:PASSED:fadds(-1.000000 , -0x1p-3 ) = -0x1.2p+0
+near:PASSED:fadds(-1.000000 , -0x1.000002p-3) = -0x1.2p+0
+near:PASSED:fadds(-1.000000 , -0x1.000004p-3) = -0x1.2p+0
+near:PASSED:fadds(-1.000000 , -0x1.000006p-3) = -0x1.2p+0
+near:PASSED:fadds(-1.000000 , -0x1.000008p-3) = -0x1.2p+0
+near:PASSED:fadds(-1.000000 , -0x1.00000ap-3) = -0x1.200002p+0
+near:PASSED:fadds(-1.000000 , -0x1.00000cp-3) = -0x1.200002p+0
+near:PASSED:fadds(-1.000000 , -0x1.00000ep-3) = -0x1.200002p+0
+near:PASSED:fadds(-1.000000 , -0x1.00001p-3) = -0x1.200002p+0
+near:PASSED:fadds(-1.000000 , -0x1.000012p-3) = -0x1.200002p+0
+near:PASSED:fadds(-1.000000 , -0x1.000014p-3) = -0x1.200002p+0
+near:PASSED:fadds(-1.000000 , -0x1.000016p-3) = -0x1.200002p+0
+near:PASSED:fadds(-1.000000 , -0x1.000018p-3) = -0x1.200004p+0
+near:PASSED:fadds(-1.000000 , -0x1.00001ap-3) = -0x1.200004p+0
+near:PASSED:fadds(-1.000000 , -0x1.00001cp-3) = -0x1.200004p+0
+near:PASSED:fadds(-1.000000 , -0x1.00001ep-3) = -0x1.200004p+0
+near:PASSED:fadds(1.000000 , 0x1p-3 ) = 0x1.2p+0
+near:PASSED:fadds(1.000000 , 0x1.000002p-3) = 0x1.2p+0
+near:PASSED:fadds(1.000000 , 0x1.000004p-3) = 0x1.2p+0
+near:PASSED:fadds(1.000000 , 0x1.000006p-3) = 0x1.2p+0
+near:PASSED:fadds(1.000000 , 0x1.000008p-3) = 0x1.2p+0
+near:PASSED:fadds(1.000000 , 0x1.00000ap-3) = 0x1.200002p+0
+near:PASSED:fadds(1.000000 , 0x1.00000cp-3) = 0x1.200002p+0
+near:PASSED:fadds(1.000000 , 0x1.00000ep-3) = 0x1.200002p+0
+near:PASSED:fadds(1.000000 , 0x1.00001p-3 ) = 0x1.200002p+0
+near:PASSED:fadds(1.000000 , 0x1.000012p-3) = 0x1.200002p+0
+near:PASSED:fadds(1.000000 , 0x1.000014p-3) = 0x1.200002p+0
+near:PASSED:fadds(1.000000 , 0x1.000016p-3) = 0x1.200002p+0
+near:PASSED:fadds(1.000000 , 0x1.000018p-3) = 0x1.200004p+0
+near:PASSED:fadds(1.000000 , 0x1.00001ap-3) = 0x1.200004p+0
+near:PASSED:fadds(1.000000 , 0x1.00001cp-3) = 0x1.200004p+0
+near:PASSED:fadds(1.000000 , 0x1.00001ep-3) = 0x1.200004p+0
+zero:PASSED:fadds(-1.000000 , -0x1p-3 ) = -0x1.2p+0
+zero:PASSED:fadds(-1.000000 , -0x1.000002p-3) = -0x1.2p+0
+zero:PASSED:fadds(-1.000000 , -0x1.000004p-3) = -0x1.2p+0
+zero:PASSED:fadds(-1.000000 , -0x1.000006p-3) = -0x1.2p+0
+zero:PASSED:fadds(-1.000000 , -0x1.000008p-3) = -0x1.2p+0
+zero:PASSED:fadds(-1.000000 , -0x1.00000ap-3) = -0x1.2p+0
+zero:PASSED:fadds(-1.000000 , -0x1.00000cp-3) = -0x1.2p+0
+zero:PASSED:fadds(-1.000000 , -0x1.00000ep-3) = -0x1.2p+0
+zero:PASSED:fadds(-1.000000 , -0x1.00001p-3) = -0x1.200002p+0
+zero:PASSED:fadds(-1.000000 , -0x1.000012p-3) = -0x1.200002p+0
+zero:PASSED:fadds(-1.000000 , -0x1.000014p-3) = -0x1.200002p+0
+zero:PASSED:fadds(-1.000000 , -0x1.000016p-3) = -0x1.200002p+0
+zero:PASSED:fadds(-1.000000 , -0x1.000018p-3) = -0x1.200002p+0
+zero:PASSED:fadds(-1.000000 , -0x1.00001ap-3) = -0x1.200002p+0
+zero:PASSED:fadds(-1.000000 , -0x1.00001cp-3) = -0x1.200002p+0
+zero:PASSED:fadds(-1.000000 , -0x1.00001ep-3) = -0x1.200002p+0
+zero:PASSED:fadds(1.000000 , 0x1p-3 ) = 0x1.2p+0
+zero:PASSED:fadds(1.000000 , 0x1.000002p-3) = 0x1.2p+0
+zero:PASSED:fadds(1.000000 , 0x1.000004p-3) = 0x1.2p+0
+zero:PASSED:fadds(1.000000 , 0x1.000006p-3) = 0x1.2p+0
+zero:PASSED:fadds(1.000000 , 0x1.000008p-3) = 0x1.2p+0
+zero:PASSED:fadds(1.000000 , 0x1.00000ap-3) = 0x1.2p+0
+zero:PASSED:fadds(1.000000 , 0x1.00000cp-3) = 0x1.2p+0
+zero:PASSED:fadds(1.000000 , 0x1.00000ep-3) = 0x1.2p+0
+zero:PASSED:fadds(1.000000 , 0x1.00001p-3 ) = 0x1.200002p+0
+zero:PASSED:fadds(1.000000 , 0x1.000012p-3) = 0x1.200002p+0
+zero:PASSED:fadds(1.000000 , 0x1.000014p-3) = 0x1.200002p+0
+zero:PASSED:fadds(1.000000 , 0x1.000016p-3) = 0x1.200002p+0
+zero:PASSED:fadds(1.000000 , 0x1.000018p-3) = 0x1.200002p+0
+zero:PASSED:fadds(1.000000 , 0x1.00001ap-3) = 0x1.200002p+0
+zero:PASSED:fadds(1.000000 , 0x1.00001cp-3) = 0x1.200002p+0
+zero:PASSED:fadds(1.000000 , 0x1.00001ep-3) = 0x1.200002p+0
++inf:PASSED:fadds(-1.000000 , -0x1p-3 ) = -0x1.2p+0
++inf:PASSED:fadds(-1.000000 , -0x1.000002p-3) = -0x1.2p+0
++inf:PASSED:fadds(-1.000000 , -0x1.000004p-3) = -0x1.2p+0
++inf:PASSED:fadds(-1.000000 , -0x1.000006p-3) = -0x1.2p+0
++inf:PASSED:fadds(-1.000000 , -0x1.000008p-3) = -0x1.2p+0
++inf:PASSED:fadds(-1.000000 , -0x1.00000ap-3) = -0x1.2p+0
++inf:PASSED:fadds(-1.000000 , -0x1.00000cp-3) = -0x1.2p+0
++inf:PASSED:fadds(-1.000000 , -0x1.00000ep-3) = -0x1.2p+0
++inf:PASSED:fadds(-1.000000 , -0x1.00001p-3) = -0x1.200002p+0
++inf:PASSED:fadds(-1.000000 , -0x1.000012p-3) = -0x1.200002p+0
++inf:PASSED:fadds(-1.000000 , -0x1.000014p-3) = -0x1.200002p+0
++inf:PASSED:fadds(-1.000000 , -0x1.000016p-3) = -0x1.200002p+0
++inf:PASSED:fadds(-1.000000 , -0x1.000018p-3) = -0x1.200002p+0
++inf:PASSED:fadds(-1.000000 , -0x1.00001ap-3) = -0x1.200002p+0
++inf:PASSED:fadds(-1.000000 , -0x1.00001cp-3) = -0x1.200002p+0
++inf:PASSED:fadds(-1.000000 , -0x1.00001ep-3) = -0x1.200002p+0
++inf:PASSED:fadds(1.000000 , 0x1p-3 ) = 0x1.2p+0
++inf:PASSED:fadds(1.000000 , 0x1.000002p-3) = 0x1.200002p+0
++inf:PASSED:fadds(1.000000 , 0x1.000004p-3) = 0x1.200002p+0
++inf:PASSED:fadds(1.000000 , 0x1.000006p-3) = 0x1.200002p+0
++inf:PASSED:fadds(1.000000 , 0x1.000008p-3) = 0x1.200002p+0
++inf:PASSED:fadds(1.000000 , 0x1.00000ap-3) = 0x1.200002p+0
++inf:PASSED:fadds(1.000000 , 0x1.00000cp-3) = 0x1.200002p+0
++inf:PASSED:fadds(1.000000 , 0x1.00000ep-3) = 0x1.200002p+0
++inf:PASSED:fadds(1.000000 , 0x1.00001p-3 ) = 0x1.200002p+0
++inf:PASSED:fadds(1.000000 , 0x1.000012p-3) = 0x1.200004p+0
++inf:PASSED:fadds(1.000000 , 0x1.000014p-3) = 0x1.200004p+0
++inf:PASSED:fadds(1.000000 , 0x1.000016p-3) = 0x1.200004p+0
++inf:PASSED:fadds(1.000000 , 0x1.000018p-3) = 0x1.200004p+0
++inf:PASSED:fadds(1.000000 , 0x1.00001ap-3) = 0x1.200004p+0
++inf:PASSED:fadds(1.000000 , 0x1.00001cp-3) = 0x1.200004p+0
++inf:PASSED:fadds(1.000000 , 0x1.00001ep-3) = 0x1.200004p+0
+-inf:PASSED:fadds(-1.000000 , -0x1p-3 ) = -0x1.2p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.000002p-3) = -0x1.200002p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.000004p-3) = -0x1.200002p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.000006p-3) = -0x1.200002p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.000008p-3) = -0x1.200002p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.00000ap-3) = -0x1.200002p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.00000cp-3) = -0x1.200002p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.00000ep-3) = -0x1.200002p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.00001p-3) = -0x1.200002p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.000012p-3) = -0x1.200004p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.000014p-3) = -0x1.200004p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.000016p-3) = -0x1.200004p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.000018p-3) = -0x1.200004p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.00001ap-3) = -0x1.200004p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.00001cp-3) = -0x1.200004p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.00001ep-3) = -0x1.200004p+0
+-inf:PASSED:fadds(1.000000 , 0x1p-3 ) = 0x1.2p+0
+-inf:PASSED:fadds(1.000000 , 0x1.000002p-3) = 0x1.2p+0
+-inf:PASSED:fadds(1.000000 , 0x1.000004p-3) = 0x1.2p+0
+-inf:PASSED:fadds(1.000000 , 0x1.000006p-3) = 0x1.2p+0
+-inf:PASSED:fadds(1.000000 , 0x1.000008p-3) = 0x1.2p+0
+-inf:PASSED:fadds(1.000000 , 0x1.00000ap-3) = 0x1.2p+0
+-inf:PASSED:fadds(1.000000 , 0x1.00000cp-3) = 0x1.2p+0
+-inf:PASSED:fadds(1.000000 , 0x1.00000ep-3) = 0x1.2p+0
+-inf:PASSED:fadds(1.000000 , 0x1.00001p-3 ) = 0x1.200002p+0
+-inf:PASSED:fadds(1.000000 , 0x1.000012p-3) = 0x1.200002p+0
+-inf:PASSED:fadds(1.000000 , 0x1.000014p-3) = 0x1.200002p+0
+-inf:PASSED:fadds(1.000000 , 0x1.000016p-3) = 0x1.200002p+0
+-inf:PASSED:fadds(1.000000 , 0x1.000018p-3) = 0x1.200002p+0
+-inf:PASSED:fadds(1.000000 , 0x1.00001ap-3) = 0x1.200002p+0
+-inf:PASSED:fadds(1.000000 , 0x1.00001cp-3) = 0x1.200002p+0
+-inf:PASSED:fadds(1.000000 , 0x1.00001ep-3) = 0x1.200002p+0
+near:PASSED:fsubs(-1.125000 , -0x1p-3 ) = -0x1.000004p+0
+near:PASSED:fsubs(-1.125000 , -0x1.000002p-3) = -0x1.000004p+0
+near:PASSED:fsubs(-1.125000 , -0x1.000004p-3) = -0x1.000004p+0
+near:PASSED:fsubs(-1.125000 , -0x1.000006p-3) = -0x1.000004p+0
+near:PASSED:fsubs(-1.125000 , -0x1.000008p-3) = -0x1.000004p+0
+near:PASSED:fsubs(-1.125000 , -0x1.00000ap-3) = -0x1.000002p+0
+near:PASSED:fsubs(-1.125000 , -0x1.00000cp-3) = -0x1.000002p+0
+near:PASSED:fsubs(-1.125000 , -0x1.00000ep-3) = -0x1.000002p+0
+near:PASSED:fsubs(-1.125000 , -0x1.00001p-3) = -0x1.000002p+0
+near:PASSED:fsubs(-1.125000 , -0x1.000012p-3) = -0x1.000002p+0
+near:PASSED:fsubs(-1.125000 , -0x1.000014p-3) = -0x1.000002p+0
+near:PASSED:fsubs(-1.125000 , -0x1.000016p-3) = -0x1.000002p+0
+near:PASSED:fsubs(-1.125000 , -0x1.000018p-3) = -0x1p+0
+near:PASSED:fsubs(-1.125000 , -0x1.00001ap-3) = -0x1p+0
+near:PASSED:fsubs(-1.125000 , -0x1.00001cp-3) = -0x1p+0
+near:PASSED:fsubs(-1.125000 , -0x1.00001ep-3) = -0x1p+0
+near:PASSED:fsubs(1.125000 , 0x1p-3 ) = 0x1.000004p+0
+near:PASSED:fsubs(1.125000 , 0x1.000002p-3) = 0x1.000004p+0
+near:PASSED:fsubs(1.125000 , 0x1.000004p-3) = 0x1.000004p+0
+near:PASSED:fsubs(1.125000 , 0x1.000006p-3) = 0x1.000004p+0
+near:PASSED:fsubs(1.125000 , 0x1.000008p-3) = 0x1.000004p+0
+near:PASSED:fsubs(1.125000 , 0x1.00000ap-3) = 0x1.000002p+0
+near:PASSED:fsubs(1.125000 , 0x1.00000cp-3) = 0x1.000002p+0
+near:PASSED:fsubs(1.125000 , 0x1.00000ep-3) = 0x1.000002p+0
+near:PASSED:fsubs(1.125000 , 0x1.00001p-3 ) = 0x1.000002p+0
+near:PASSED:fsubs(1.125000 , 0x1.000012p-3) = 0x1.000002p+0
+near:PASSED:fsubs(1.125000 , 0x1.000014p-3) = 0x1.000002p+0
+near:PASSED:fsubs(1.125000 , 0x1.000016p-3) = 0x1.000002p+0
+near:PASSED:fsubs(1.125000 , 0x1.000018p-3) = 0x1p+0
+near:PASSED:fsubs(1.125000 , 0x1.00001ap-3) = 0x1p+0
+near:PASSED:fsubs(1.125000 , 0x1.00001cp-3) = 0x1p+0
+near:PASSED:fsubs(1.125000 , 0x1.00001ep-3) = 0x1p+0
+zero:PASSED:fsubs(-1.125000 , -0x1p-3 ) = -0x1.000004p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.000002p-3) = -0x1.000002p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.000004p-3) = -0x1.000002p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.000006p-3) = -0x1.000002p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.000008p-3) = -0x1.000002p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.00000ap-3) = -0x1.000002p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.00000cp-3) = -0x1.000002p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.00000ep-3) = -0x1.000002p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.00001p-3) = -0x1.000002p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.000012p-3) = -0x1p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.000014p-3) = -0x1p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.000016p-3) = -0x1p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.000018p-3) = -0x1p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.00001ap-3) = -0x1p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.00001cp-3) = -0x1p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.00001ep-3) = -0x1p+0
+zero:PASSED:fsubs(1.125000 , 0x1p-3 ) = 0x1.000004p+0
+zero:PASSED:fsubs(1.125000 , 0x1.000002p-3) = 0x1.000002p+0
+zero:PASSED:fsubs(1.125000 , 0x1.000004p-3) = 0x1.000002p+0
+zero:PASSED:fsubs(1.125000 , 0x1.000006p-3) = 0x1.000002p+0
+zero:PASSED:fsubs(1.125000 , 0x1.000008p-3) = 0x1.000002p+0
+zero:PASSED:fsubs(1.125000 , 0x1.00000ap-3) = 0x1.000002p+0
+zero:PASSED:fsubs(1.125000 , 0x1.00000cp-3) = 0x1.000002p+0
+zero:PASSED:fsubs(1.125000 , 0x1.00000ep-3) = 0x1.000002p+0
+zero:PASSED:fsubs(1.125000 , 0x1.00001p-3 ) = 0x1.000002p+0
+zero:PASSED:fsubs(1.125000 , 0x1.000012p-3) = 0x1p+0
+zero:PASSED:fsubs(1.125000 , 0x1.000014p-3) = 0x1p+0
+zero:PASSED:fsubs(1.125000 , 0x1.000016p-3) = 0x1p+0
+zero:PASSED:fsubs(1.125000 , 0x1.000018p-3) = 0x1p+0
+zero:PASSED:fsubs(1.125000 , 0x1.00001ap-3) = 0x1p+0
+zero:PASSED:fsubs(1.125000 , 0x1.00001cp-3) = 0x1p+0
+zero:PASSED:fsubs(1.125000 , 0x1.00001ep-3) = 0x1p+0
++inf:PASSED:fsubs(-1.125000 , -0x1p-3 ) = -0x1.000004p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.000002p-3) = -0x1.000002p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.000004p-3) = -0x1.000002p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.000006p-3) = -0x1.000002p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.000008p-3) = -0x1.000002p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.00000ap-3) = -0x1.000002p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.00000cp-3) = -0x1.000002p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.00000ep-3) = -0x1.000002p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.00001p-3) = -0x1.000002p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.000012p-3) = -0x1p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.000014p-3) = -0x1p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.000016p-3) = -0x1p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.000018p-3) = -0x1p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.00001ap-3) = -0x1p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.00001cp-3) = -0x1p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.00001ep-3) = -0x1p+0
++inf:PASSED:fsubs(1.125000 , 0x1p-3 ) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000002p-3) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000004p-3) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000006p-3) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000008p-3) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.00000ap-3) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.00000cp-3) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.00000ep-3) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.00001p-3 ) = 0x1.000002p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000012p-3) = 0x1.000002p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000014p-3) = 0x1.000002p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000016p-3) = 0x1.000002p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000018p-3) = 0x1.000002p+0
++inf:PASSED:fsubs(1.125000 , 0x1.00001ap-3) = 0x1.000002p+0
++inf:PASSED:fsubs(1.125000 , 0x1.00001cp-3) = 0x1.000002p+0
++inf:PASSED:fsubs(1.125000 , 0x1.00001ep-3) = 0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1p-3 ) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000002p-3) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000004p-3) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000006p-3) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000008p-3) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.00000ap-3) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.00000cp-3) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.00000ep-3) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.00001p-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000012p-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000014p-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000016p-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000018p-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.00001ap-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.00001cp-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.00001ep-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(1.125000 , 0x1p-3 ) = 0x1.000004p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.000002p-3) = 0x1.000002p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.000004p-3) = 0x1.000002p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.000006p-3) = 0x1.000002p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.000008p-3) = 0x1.000002p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.00000ap-3) = 0x1.000002p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.00000cp-3) = 0x1.000002p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.00000ep-3) = 0x1.000002p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.00001p-3 ) = 0x1.000002p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.000012p-3) = 0x1p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.000014p-3) = 0x1p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.000016p-3) = 0x1p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.000018p-3) = 0x1p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.00001ap-3) = 0x1p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.00001cp-3) = 0x1p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.00001ep-3) = 0x1p+0
+near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.2p+0
+near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200002p+0
+near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200004p+0
+near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200006p+0
+near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200008p+0
+near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000cp+0
+near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000ep+0
+near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001p+0
+near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200012p+0
+near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200014p+0
+near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200016p+0
+near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200018p+0
+near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001cp+0
+near:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20001ep+0
+near:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20002p+0
+near:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.200022p+0
+near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.2p+0
+near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200002p+0
+near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200004p+0
+near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200006p+0
+near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200008p+0
+near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000cp+0
+near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000ep+0
+near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001p+0
+near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200012p+0
+near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200014p+0
+near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200016p+0
+near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200018p+0
+near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001cp+0
+near:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20001ep+0
+near:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20002p+0
+near:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.200022p+0
+zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.2p+0
+zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200002p+0
+zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200004p+0
+zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200006p+0
+zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200008p+0
+zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000ap+0
+zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000cp+0
+zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000ep+0
+zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200012p+0
+zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200014p+0
+zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200016p+0
+zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200018p+0
+zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001ap+0
+zero:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20001cp+0
+zero:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20001ep+0
+zero:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20002p+0
+zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.2p+0
+zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200002p+0
+zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200004p+0
+zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200006p+0
+zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200008p+0
+zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000ap+0
+zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000cp+0
+zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000ep+0
+zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200012p+0
+zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200014p+0
+zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200016p+0
+zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200018p+0
+zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001ap+0
+zero:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20001cp+0
+zero:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20001ep+0
+zero:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20002p+0
++inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.2p+0
++inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200002p+0
++inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200004p+0
++inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200006p+0
++inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200008p+0
++inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000ap+0
++inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000cp+0
++inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000ep+0
++inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200012p+0
++inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200014p+0
++inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200016p+0
++inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200018p+0
++inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001ap+0
++inf:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20001cp+0
++inf:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20001ep+0
++inf:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20002p+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.2p+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200004p+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200006p+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200008p+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20000ap+0
++inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000cp+0
++inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000ep+0
++inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001p+0
++inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200012p+0
++inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200016p+0
++inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200018p+0
++inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001ap+0
++inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001cp+0
++inf:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20001ep+0
++inf:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20002p+0
++inf:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.200022p+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.2p+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200004p+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200006p+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200008p+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20000ap+0
+-inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000cp+0
+-inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000ep+0
+-inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001p+0
+-inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200012p+0
+-inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200016p+0
+-inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200018p+0
+-inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001ap+0
+-inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001cp+0
+-inf:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20001ep+0
+-inf:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20002p+0
+-inf:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.200022p+0
+-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.2p+0
+-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200002p+0
+-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200004p+0
+-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200006p+0
+-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200008p+0
+-inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000ap+0
+-inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000cp+0
+-inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000ep+0
+-inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200012p+0
+-inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200014p+0
+-inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200016p+0
+-inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200018p+0
+-inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001ap+0
+-inf:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20001cp+0
+-inf:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20001ep+0
+-inf:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20002p+0
+near:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
+near:PASSED:fdivs(-100.000000 , 0x1.c8p+5 ) = -0x1.c11f7p+0
+near:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
+near:PASSED:fdivs(-100.000000 , 0x1.ap+5 ) = -0x1.ec4ec4p+0
+near:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
+near:PASSED:fdivs(-100.000000 , 0x1.b8p+5 ) = -0x1.d1745ep+0
+near:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+near:PASSED:fdivs(-100.000000 , 0x1.98p+5 ) = -0x1.f5f5f6p+0
+near:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+near:PASSED:fdivs(-100.000000 , 0x1.cp+5 ) = -0x1.c92492p+0
+near:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+near:PASSED:fdivs(-100.000000 , 0x1.bp+5 ) = -0x1.da12f6p+0
+near:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-148
+near:PASSED:fdivs(-100.000000 , 0x1.d8p+5 ) = -0x1.b1e5f8p+0
+near:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-148
+near:PASSED:fdivs(-101.000000 , 0x1.ap+5 ) = -0x1.f13b14p+0
+near:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+near:PASSED:fdivs(100.000000 , 0x1.c8p+5 ) = 0x1.c11f7p+0
+near:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+near:PASSED:fdivs(100.000000 , 0x1.ap+5 ) = 0x1.ec4ec4p+0
+near:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+near:PASSED:fdivs(100.000000 , 0x1.b8p+5 ) = 0x1.d1745ep+0
+near:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+near:PASSED:fdivs(100.000000 , 0x1.98p+5 ) = 0x1.f5f5f6p+0
+near:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+near:PASSED:fdivs(100.000000 , 0x1.cp+5 ) = 0x1.c92492p+0
+near:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+near:PASSED:fdivs(100.000000 , 0x1.bp+5 ) = 0x1.da12f6p+0
+near:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-148
+near:PASSED:fdivs(100.000000 , 0x1.d8p+5 ) = 0x1.b1e5f8p+0
+near:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-148
+near:PASSED:fdivs(101.000000 , 0x1.ap+5 ) = 0x1.f13b14p+0
+zero:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
+zero:PASSED:fdivs(-100.000000 , 0x1.c8p+5 ) = -0x1.c11f7p+0
+zero:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
+zero:PASSED:fdivs(-100.000000 , 0x1.ap+5 ) = -0x1.ec4ec4p+0
+zero:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
+zero:PASSED:fdivs(-100.000000 , 0x1.b8p+5 ) = -0x1.d1745cp+0
+zero:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
+zero:PASSED:fdivs(-100.000000 , 0x1.98p+5 ) = -0x1.f5f5f4p+0
+zero:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+zero:PASSED:fdivs(-100.000000 , 0x1.cp+5 ) = -0x1.c92492p+0
+zero:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+zero:PASSED:fdivs(-100.000000 , 0x1.bp+5 ) = -0x1.da12f6p+0
+zero:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+zero:PASSED:fdivs(-100.000000 , 0x1.d8p+5 ) = -0x1.b1e5f6p+0
+zero:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+zero:PASSED:fdivs(-101.000000 , 0x1.ap+5 ) = -0x1.f13b12p+0
+zero:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+zero:PASSED:fdivs(100.000000 , 0x1.c8p+5 ) = 0x1.c11f7p+0
+zero:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+zero:PASSED:fdivs(100.000000 , 0x1.ap+5 ) = 0x1.ec4ec4p+0
+zero:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+zero:PASSED:fdivs(100.000000 , 0x1.b8p+5 ) = 0x1.d1745cp+0
+zero:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+zero:PASSED:fdivs(100.000000 , 0x1.98p+5 ) = 0x1.f5f5f4p+0
+zero:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+zero:PASSED:fdivs(100.000000 , 0x1.cp+5 ) = 0x1.c92492p+0
+zero:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+zero:PASSED:fdivs(100.000000 , 0x1.bp+5 ) = 0x1.da12f6p+0
+zero:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+zero:PASSED:fdivs(100.000000 , 0x1.d8p+5 ) = 0x1.b1e5f6p+0
+zero:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+zero:PASSED:fdivs(101.000000 , 0x1.ap+5 ) = 0x1.f13b12p+0
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
++inf:PASSED:fdivs(-100.000000 , 0x1.c8p+5 ) = -0x1.c11f7p+0
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
++inf:PASSED:fdivs(-100.000000 , 0x1.ap+5 ) = -0x1.ec4ec4p+0
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
++inf:PASSED:fdivs(-100.000000 , 0x1.b8p+5 ) = -0x1.d1745cp+0
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
++inf:PASSED:fdivs(-100.000000 , 0x1.98p+5 ) = -0x1.f5f5f4p+0
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
++inf:PASSED:fdivs(-100.000000 , 0x1.cp+5 ) = -0x1.c92492p+0
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
++inf:PASSED:fdivs(-100.000000 , 0x1.bp+5 ) = -0x1.da12f6p+0
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
++inf:PASSED:fdivs(-100.000000 , 0x1.d8p+5 ) = -0x1.b1e5f6p+0
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
++inf:PASSED:fdivs(-101.000000 , 0x1.ap+5 ) = -0x1.f13b12p+0
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
++inf:PASSED:fdivs(100.000000 , 0x1.c8p+5 ) = 0x1.c11f72p+0
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
++inf:PASSED:fdivs(100.000000 , 0x1.ap+5 ) = 0x1.ec4ec6p+0
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
++inf:PASSED:fdivs(100.000000 , 0x1.b8p+5 ) = 0x1.d1745ep+0
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
++inf:PASSED:fdivs(100.000000 , 0x1.98p+5 ) = 0x1.f5f5f6p+0
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
++inf:PASSED:fdivs(100.000000 , 0x1.cp+5 ) = 0x1.c92494p+0
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-148
++inf:PASSED:fdivs(100.000000 , 0x1.bp+5 ) = 0x1.da12f8p+0
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-148
++inf:PASSED:fdivs(100.000000 , 0x1.d8p+5 ) = 0x1.b1e5f8p+0
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-148
++inf:PASSED:fdivs(101.000000 , 0x1.ap+5 ) = 0x1.f13b14p+0
+-inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
+-inf:PASSED:fdivs(-100.000000 , 0x1.c8p+5 ) = -0x1.c11f72p+0
+-inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+-inf:PASSED:fdivs(-100.000000 , 0x1.ap+5 ) = -0x1.ec4ec6p+0
+-inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+-inf:PASSED:fdivs(-100.000000 , 0x1.b8p+5 ) = -0x1.d1745ep+0
+-inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+-inf:PASSED:fdivs(-100.000000 , 0x1.98p+5 ) = -0x1.f5f5f6p+0
+-inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+-inf:PASSED:fdivs(-100.000000 , 0x1.cp+5 ) = -0x1.c92494p+0
+-inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-148
+-inf:PASSED:fdivs(-100.000000 , 0x1.bp+5 ) = -0x1.da12f8p+0
+-inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-148
+-inf:PASSED:fdivs(-100.000000 , 0x1.d8p+5 ) = -0x1.b1e5f8p+0
+-inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-148
+-inf:PASSED:fdivs(-101.000000 , 0x1.ap+5 ) = -0x1.f13b14p+0
+-inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+-inf:PASSED:fdivs(100.000000 , 0x1.c8p+5 ) = 0x1.c11f7p+0
+-inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+-inf:PASSED:fdivs(100.000000 , 0x1.ap+5 ) = 0x1.ec4ec4p+0
+-inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+-inf:PASSED:fdivs(100.000000 , 0x1.b8p+5 ) = 0x1.d1745cp+0
+-inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+-inf:PASSED:fdivs(100.000000 , 0x1.98p+5 ) = 0x1.f5f5f4p+0
+-inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+-inf:PASSED:fdivs(100.000000 , 0x1.cp+5 ) = 0x1.c92492p+0
+-inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+-inf:PASSED:fdivs(100.000000 , 0x1.bp+5 ) = 0x1.da12f6p+0
+-inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+-inf:PASSED:fdivs(100.000000 , 0x1.d8p+5 ) = 0x1.b1e5f6p+0
+-inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+-inf:PASSED:fdivs(101.000000 , 0x1.ap+5 ) = 0x1.f13b12p+0
+near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.ap+0
+near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00004p+0
+near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00006p+0
+near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00008p+0
+near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ap+0
+near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000cp+0
+near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ep+0
+near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001p+0
+near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00014p+0
+near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00016p+0
+near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00018p+0
+near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ap+0
+near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001cp+0
+near:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ep+0
+near:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0002p+0
+near:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00022p+0
+near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.ap+0
+near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00004p+0
+near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00006p+0
+near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00008p+0
+near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ap+0
+near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000cp+0
+near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ep+0
+near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001p+0
+near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00014p+0
+near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00016p+0
+near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00018p+0
+near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ap+0
+near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001cp+0
+near:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ep+0
+near:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0002p+0
+near:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00022p+0
+zero:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.ap+0
+zero:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00002p+0
+zero:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00004p+0
+zero:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00006p+0
+zero:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ap+0
+zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000cp+0
+zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ep+0
+zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001p+0
+zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00012p+0
+zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00014p+0
+zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00016p+0
+zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00018p+0
+zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001cp+0
+zero:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ep+0
+zero:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0002p+0
+zero:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00022p+0
+zero:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.ap+0
+zero:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00002p+0
+zero:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00004p+0
+zero:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00006p+0
+zero:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ap+0
+zero:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000cp+0
+zero:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ep+0
+zero:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001p+0
+zero:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00012p+0
+zero:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00014p+0
+zero:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00016p+0
+zero:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00018p+0
+zero:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001cp+0
+zero:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ep+0
+zero:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0002p+0
+zero:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00022p+0
++inf:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.ap+0
++inf:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00002p+0
++inf:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00004p+0
++inf:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00006p+0
++inf:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ap+0
++inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000cp+0
++inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ep+0
++inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001p+0
++inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00012p+0
++inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00014p+0
++inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00016p+0
++inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00018p+0
++inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001cp+0
++inf:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ep+0
++inf:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0002p+0
++inf:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00022p+0
++inf:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00002p+0
++inf:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00004p+0
++inf:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00006p+0
++inf:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00008p+0
++inf:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ap+0
++inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ep+0
++inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001p+0
++inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00012p+0
++inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00014p+0
++inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00016p+0
++inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00018p+0
++inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ap+0
++inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001cp+0
++inf:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0002p+0
++inf:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00022p+0
++inf:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00024p+0
+-inf:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00002p+0
+-inf:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00004p+0
+-inf:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00006p+0
+-inf:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00008p+0
+-inf:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ap+0
+-inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ep+0
+-inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001p+0
+-inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00012p+0
+-inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00014p+0
+-inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00016p+0
+-inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00018p+0
+-inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ap+0
+-inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001cp+0
+-inf:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0002p+0
+-inf:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00022p+0
+-inf:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00024p+0
+-inf:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.ap+0
+-inf:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00002p+0
+-inf:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00004p+0
+-inf:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00006p+0
+-inf:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ap+0
+-inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000cp+0
+-inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ep+0
+-inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001p+0
+-inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00012p+0
+-inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00014p+0
+-inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00016p+0
+-inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00018p+0
+-inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001cp+0
+-inf:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ep+0
+-inf:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0002p+0
+-inf:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00022p+0
+near:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.ap+0
+near:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00004p+0
+near:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00006p+0
+near:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00008p+0
+near:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ap+0
+near:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000cp+0
+near:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ep+0
+near:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001p+0
+near:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00014p+0
+near:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00016p+0
+near:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00018p+0
+near:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001ap+0
+near:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001cp+0
+near:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001ep+0
+near:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0002p+0
+near:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00022p+0
+near:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.ap+0
+near:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00004p+0
+near:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00006p+0
+near:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00008p+0
+near:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ap+0
+near:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000cp+0
+near:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ep+0
+near:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001p+0
+near:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00014p+0
+near:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00016p+0
+near:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00018p+0
+near:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001ap+0
+near:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001cp+0
+near:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001ep+0
+near:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0002p+0
+near:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00022p+0
+zero:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.ap+0
+zero:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00002p+0
+zero:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00004p+0
+zero:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00006p+0
+zero:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ap+0
+zero:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000cp+0
+zero:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ep+0
+zero:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001p+0
+zero:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00012p+0
+zero:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00014p+0
+zero:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00016p+0
+zero:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00018p+0
+zero:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001cp+0
+zero:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001ep+0
+zero:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0002p+0
+zero:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00022p+0
+zero:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.ap+0
+zero:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00002p+0
+zero:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00004p+0
+zero:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00006p+0
+zero:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ap+0
+zero:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000cp+0
+zero:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ep+0
+zero:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001p+0
+zero:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00012p+0
+zero:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00014p+0
+zero:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00016p+0
+zero:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00018p+0
+zero:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001cp+0
+zero:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001ep+0
+zero:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0002p+0
+zero:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00022p+0
++inf:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.ap+0
++inf:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00002p+0
++inf:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00004p+0
++inf:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00006p+0
++inf:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ap+0
++inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000cp+0
++inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ep+0
++inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001p+0
++inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00012p+0
++inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00014p+0
++inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00016p+0
++inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00018p+0
++inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001cp+0
++inf:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001ep+0
++inf:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0002p+0
++inf:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00022p+0
++inf:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00002p+0
++inf:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00004p+0
++inf:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00006p+0
++inf:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00008p+0
++inf:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ap+0
++inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ep+0
++inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001p+0
++inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00012p+0
++inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00014p+0
++inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00016p+0
++inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00018p+0
++inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001ap+0
++inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001cp+0
++inf:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0002p+0
++inf:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00022p+0
++inf:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00024p+0
+-inf:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00002p+0
+-inf:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00004p+0
+-inf:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00006p+0
+-inf:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00008p+0
+-inf:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ap+0
+-inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ep+0
+-inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001p+0
+-inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00012p+0
+-inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00014p+0
+-inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00016p+0
+-inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00018p+0
+-inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001ap+0
+-inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001cp+0
+-inf:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0002p+0
+-inf:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00022p+0
+-inf:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00024p+0
+-inf:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.ap+0
+-inf:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00002p+0
+-inf:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00004p+0
+-inf:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00006p+0
+-inf:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ap+0
+-inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000cp+0
+-inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ep+0
+-inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001p+0
+-inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00012p+0
+-inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00014p+0
+-inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00016p+0
+-inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00018p+0
+-inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001cp+0
+-inf:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001ep+0
+-inf:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0002p+0
+-inf:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00022p+0
+near:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.ap+0
+near:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00004p+0
+near:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00006p+0
+near:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00008p+0
+near:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ap+0
+near:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000cp+0
+near:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ep+0
+near:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001p+0
+near:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00014p+0
+near:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00016p+0
+near:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00018p+0
+near:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001ap+0
+near:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001cp+0
+near:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001ep+0
+near:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0002p+0
+near:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00022p+0
+near:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.ap+0
+near:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00004p+0
+near:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00006p+0
+near:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00008p+0
+near:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ap+0
+near:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000cp+0
+near:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ep+0
+near:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001p+0
+near:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00014p+0
+near:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00016p+0
+near:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00018p+0
+near:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001ap+0
+near:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001cp+0
+near:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001ep+0
+near:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0002p+0
+near:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00022p+0
+zero:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.ap+0
+zero:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00002p+0
+zero:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00004p+0
+zero:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00006p+0
+zero:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ap+0
+zero:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000cp+0
+zero:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ep+0
+zero:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001p+0
+zero:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00012p+0
+zero:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00014p+0
+zero:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00016p+0
+zero:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00018p+0
+zero:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001cp+0
+zero:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001ep+0
+zero:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0002p+0
+zero:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00022p+0
+zero:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.ap+0
+zero:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00002p+0
+zero:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00004p+0
+zero:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00006p+0
+zero:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ap+0
+zero:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000cp+0
+zero:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ep+0
+zero:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001p+0
+zero:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00012p+0
+zero:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00014p+0
+zero:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00016p+0
+zero:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00018p+0
+zero:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001cp+0
+zero:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001ep+0
+zero:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0002p+0
+zero:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00022p+0
++inf:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.ap+0
++inf:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00002p+0
++inf:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00004p+0
++inf:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00006p+0
++inf:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ap+0
++inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000cp+0
++inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ep+0
++inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001p+0
++inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00012p+0
++inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00014p+0
++inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00016p+0
++inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00018p+0
++inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001cp+0
++inf:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001ep+0
++inf:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0002p+0
++inf:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00022p+0
++inf:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00002p+0
++inf:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00004p+0
++inf:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00006p+0
++inf:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00008p+0
++inf:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ap+0
++inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ep+0
++inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001p+0
++inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00012p+0
++inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00014p+0
++inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00016p+0
++inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00018p+0
++inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001ap+0
++inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001cp+0
++inf:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0002p+0
++inf:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00022p+0
++inf:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00024p+0
+-inf:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00002p+0
+-inf:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00004p+0
+-inf:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00006p+0
+-inf:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00008p+0
+-inf:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ap+0
+-inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ep+0
+-inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001p+0
+-inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00012p+0
+-inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00014p+0
+-inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00016p+0
+-inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00018p+0
+-inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001ap+0
+-inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001cp+0
+-inf:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0002p+0
+-inf:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00022p+0
+-inf:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00024p+0
+-inf:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.ap+0
+-inf:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00002p+0
+-inf:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00004p+0
+-inf:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00006p+0
+-inf:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ap+0
+-inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000cp+0
+-inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ep+0
+-inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001p+0
+-inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00012p+0
+-inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00014p+0
+-inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00016p+0
+-inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00018p+0
+-inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001cp+0
+-inf:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001ep+0
+-inf:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0002p+0
+-inf:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00022p+0
+near:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.ap+0
+near:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00004p+0
+near:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00006p+0
+near:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00008p+0
+near:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ap+0
+near:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000cp+0
+near:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ep+0
+near:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001p+0
+near:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00014p+0
+near:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00016p+0
+near:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00018p+0
+near:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ap+0
+near:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001cp+0
+near:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ep+0
+near:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0002p+0
+near:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00022p+0
+near:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.ap+0
+near:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00004p+0
+near:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00006p+0
+near:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00008p+0
+near:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ap+0
+near:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000cp+0
+near:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ep+0
+near:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001p+0
+near:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00014p+0
+near:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00016p+0
+near:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00018p+0
+near:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ap+0
+near:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001cp+0
+near:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ep+0
+near:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0002p+0
+near:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00022p+0
+zero:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.ap+0
+zero:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00002p+0
+zero:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00004p+0
+zero:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00006p+0
+zero:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ap+0
+zero:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000cp+0
+zero:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ep+0
+zero:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001p+0
+zero:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00012p+0
+zero:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00014p+0
+zero:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00016p+0
+zero:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00018p+0
+zero:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001cp+0
+zero:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ep+0
+zero:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0002p+0
+zero:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00022p+0
+zero:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.ap+0
+zero:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00002p+0
+zero:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00004p+0
+zero:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00006p+0
+zero:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ap+0
+zero:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000cp+0
+zero:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ep+0
+zero:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001p+0
+zero:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00012p+0
+zero:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00014p+0
+zero:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00016p+0
+zero:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00018p+0
+zero:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001cp+0
+zero:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ep+0
+zero:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0002p+0
+zero:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00022p+0
++inf:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.ap+0
++inf:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00002p+0
++inf:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00004p+0
++inf:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00006p+0
++inf:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ap+0
++inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000cp+0
++inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ep+0
++inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001p+0
++inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00012p+0
++inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00014p+0
++inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00016p+0
++inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00018p+0
++inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001cp+0
++inf:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ep+0
++inf:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0002p+0
++inf:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00022p+0
++inf:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00002p+0
++inf:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00004p+0
++inf:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00006p+0
++inf:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00008p+0
++inf:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ap+0
++inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ep+0
++inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001p+0
++inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00012p+0
++inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00014p+0
++inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00016p+0
++inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00018p+0
++inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ap+0
++inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001cp+0
++inf:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0002p+0
++inf:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00022p+0
++inf:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00024p+0
+-inf:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00002p+0
+-inf:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00004p+0
+-inf:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00006p+0
+-inf:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00008p+0
+-inf:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ap+0
+-inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ep+0
+-inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001p+0
+-inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00012p+0
+-inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00014p+0
+-inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00016p+0
+-inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00018p+0
+-inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ap+0
+-inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001cp+0
+-inf:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0002p+0
+-inf:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00022p+0
+-inf:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00024p+0
+-inf:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.ap+0
+-inf:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00002p+0
+-inf:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00004p+0
+-inf:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00006p+0
+-inf:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ap+0
+-inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000cp+0
+-inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ep+0
+-inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001p+0
+-inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00012p+0
+-inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00014p+0
+-inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00016p+0
+-inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00018p+0
+-inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001cp+0
+-inf:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ep+0
+-inf:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0002p+0
+-inf:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00022p+0
+-------------------------- test rounding of double operators with guard bits --------------------------
+near:PASSED:fadd(-0x1p+0 , -0x1p-3 ) = -0x1.2p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.0000000000001p-3) = -0x1.2p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.0000000000002p-3) = -0x1.2p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.0000000000003p-3) = -0x1.2p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.0000000000004p-3) = -0x1.2p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.0000000000005p-3) = -0x1.2000000000001p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.0000000000006p-3) = -0x1.2000000000001p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.0000000000007p-3) = -0x1.2000000000001p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.0000000000008p-3) = -0x1.2000000000001p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.0000000000009p-3) = -0x1.2000000000001p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.000000000000ap-3) = -0x1.2000000000001p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.000000000000bp-3) = -0x1.2000000000001p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.000000000000cp-3) = -0x1.2000000000002p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.000000000000dp-3) = -0x1.2000000000002p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.000000000000ep-3) = -0x1.2000000000002p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.000000000000fp-3) = -0x1.2000000000002p+0
+near:PASSED:fadd(0x1p+0 , 0x1p-3 ) = 0x1.2p+0
+near:PASSED:fadd(0x1p+0 , 0x1.0000000000001p-3) = 0x1.2p+0
+near:PASSED:fadd(0x1p+0 , 0x1.0000000000002p-3) = 0x1.2p+0
+near:PASSED:fadd(0x1p+0 , 0x1.0000000000003p-3) = 0x1.2p+0
+near:PASSED:fadd(0x1p+0 , 0x1.0000000000004p-3) = 0x1.2p+0
+near:PASSED:fadd(0x1p+0 , 0x1.0000000000005p-3) = 0x1.2000000000001p+0
+near:PASSED:fadd(0x1p+0 , 0x1.0000000000006p-3) = 0x1.2000000000001p+0
+near:PASSED:fadd(0x1p+0 , 0x1.0000000000007p-3) = 0x1.2000000000001p+0
+near:PASSED:fadd(0x1p+0 , 0x1.0000000000008p-3) = 0x1.2000000000001p+0
+near:PASSED:fadd(0x1p+0 , 0x1.0000000000009p-3) = 0x1.2000000000001p+0
+near:PASSED:fadd(0x1p+0 , 0x1.000000000000ap-3) = 0x1.2000000000001p+0
+near:PASSED:fadd(0x1p+0 , 0x1.000000000000bp-3) = 0x1.2000000000001p+0
+near:PASSED:fadd(0x1p+0 , 0x1.000000000000cp-3) = 0x1.2000000000002p+0
+near:PASSED:fadd(0x1p+0 , 0x1.000000000000dp-3) = 0x1.2000000000002p+0
+near:PASSED:fadd(0x1p+0 , 0x1.000000000000ep-3) = 0x1.2000000000002p+0
+near:PASSED:fadd(0x1p+0 , 0x1.000000000000fp-3) = 0x1.2000000000002p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1p-3 ) = -0x1.2p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.0000000000001p-3) = -0x1.2p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.0000000000002p-3) = -0x1.2p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.0000000000003p-3) = -0x1.2p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.0000000000004p-3) = -0x1.2p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.0000000000005p-3) = -0x1.2p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.0000000000006p-3) = -0x1.2p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.0000000000007p-3) = -0x1.2p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.0000000000008p-3) = -0x1.2000000000001p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.0000000000009p-3) = -0x1.2000000000001p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.000000000000ap-3) = -0x1.2000000000001p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.000000000000bp-3) = -0x1.2000000000001p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.000000000000cp-3) = -0x1.2000000000001p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.000000000000dp-3) = -0x1.2000000000001p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.000000000000ep-3) = -0x1.2000000000001p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.000000000000fp-3) = -0x1.2000000000001p+0
+zero:PASSED:fadd(0x1p+0 , 0x1p-3 ) = 0x1.2p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.0000000000001p-3) = 0x1.2p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.0000000000002p-3) = 0x1.2p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.0000000000003p-3) = 0x1.2p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.0000000000004p-3) = 0x1.2p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.0000000000005p-3) = 0x1.2p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.0000000000006p-3) = 0x1.2p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.0000000000007p-3) = 0x1.2p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.0000000000008p-3) = 0x1.2000000000001p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.0000000000009p-3) = 0x1.2000000000001p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.000000000000ap-3) = 0x1.2000000000001p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.000000000000bp-3) = 0x1.2000000000001p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.000000000000cp-3) = 0x1.2000000000001p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.000000000000dp-3) = 0x1.2000000000001p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.000000000000ep-3) = 0x1.2000000000001p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.000000000000fp-3) = 0x1.2000000000001p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1p-3 ) = -0x1.2p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000001p-3) = -0x1.2p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000002p-3) = -0x1.2p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000003p-3) = -0x1.2p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000004p-3) = -0x1.2p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000005p-3) = -0x1.2p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000006p-3) = -0x1.2p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000007p-3) = -0x1.2p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000008p-3) = -0x1.2000000000001p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000009p-3) = -0x1.2000000000001p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000ap-3) = -0x1.2000000000001p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000bp-3) = -0x1.2000000000001p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000cp-3) = -0x1.2000000000001p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000dp-3) = -0x1.2000000000001p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000ep-3) = -0x1.2000000000001p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000fp-3) = -0x1.2000000000001p+0
++inf:PASSED:fadd(0x1p+0 , 0x1p-3 ) = 0x1.2p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.0000000000001p-3) = 0x1.2000000000001p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.0000000000002p-3) = 0x1.2000000000001p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.0000000000003p-3) = 0x1.2000000000001p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.0000000000004p-3) = 0x1.2000000000001p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.0000000000005p-3) = 0x1.2000000000001p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.0000000000006p-3) = 0x1.2000000000001p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.0000000000007p-3) = 0x1.2000000000001p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.0000000000008p-3) = 0x1.2000000000001p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.0000000000009p-3) = 0x1.2000000000002p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.000000000000ap-3) = 0x1.2000000000002p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.000000000000bp-3) = 0x1.2000000000002p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.000000000000cp-3) = 0x1.2000000000002p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.000000000000dp-3) = 0x1.2000000000002p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.000000000000ep-3) = 0x1.2000000000002p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.000000000000fp-3) = 0x1.2000000000002p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1p-3 ) = -0x1.2p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000001p-3) = -0x1.2000000000001p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000002p-3) = -0x1.2000000000001p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000003p-3) = -0x1.2000000000001p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000004p-3) = -0x1.2000000000001p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000005p-3) = -0x1.2000000000001p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000006p-3) = -0x1.2000000000001p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000007p-3) = -0x1.2000000000001p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000008p-3) = -0x1.2000000000001p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000009p-3) = -0x1.2000000000002p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000ap-3) = -0x1.2000000000002p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000bp-3) = -0x1.2000000000002p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000cp-3) = -0x1.2000000000002p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000dp-3) = -0x1.2000000000002p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000ep-3) = -0x1.2000000000002p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000fp-3) = -0x1.2000000000002p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1p-3 ) = 0x1.2p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.0000000000001p-3) = 0x1.2p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.0000000000002p-3) = 0x1.2p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.0000000000003p-3) = 0x1.2p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.0000000000004p-3) = 0x1.2p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.0000000000005p-3) = 0x1.2p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.0000000000006p-3) = 0x1.2p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.0000000000007p-3) = 0x1.2p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.0000000000008p-3) = 0x1.2000000000001p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.0000000000009p-3) = 0x1.2000000000001p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.000000000000ap-3) = 0x1.2000000000001p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.000000000000bp-3) = 0x1.2000000000001p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.000000000000cp-3) = 0x1.2000000000001p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.000000000000dp-3) = 0x1.2000000000001p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.000000000000ep-3) = 0x1.2000000000001p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.000000000000fp-3) = 0x1.2000000000001p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1p-3 ) = -0x1.0000000000002p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000001p-3) = -0x1.0000000000002p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000002p-3) = -0x1.0000000000002p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000003p-3) = -0x1.0000000000002p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000004p-3) = -0x1.0000000000002p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000005p-3) = -0x1.0000000000001p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000006p-3) = -0x1.0000000000001p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000007p-3) = -0x1.0000000000001p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000008p-3) = -0x1.0000000000001p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000009p-3) = -0x1.0000000000001p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000ap-3) = -0x1.0000000000001p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000bp-3) = -0x1.0000000000001p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000cp-3) = -0x1p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000dp-3) = -0x1p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000ep-3) = -0x1p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000fp-3) = -0x1p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1p-3 ) = 0x1.0000000000002p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000001p-3) = 0x1.0000000000002p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000002p-3) = 0x1.0000000000002p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000003p-3) = 0x1.0000000000002p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000004p-3) = 0x1.0000000000002p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000005p-3) = 0x1.0000000000001p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000006p-3) = 0x1.0000000000001p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000007p-3) = 0x1.0000000000001p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000008p-3) = 0x1.0000000000001p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000009p-3) = 0x1.0000000000001p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000ap-3) = 0x1.0000000000001p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000bp-3) = 0x1.0000000000001p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000cp-3) = 0x1p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000dp-3) = 0x1p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000ep-3) = 0x1p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000fp-3) = 0x1p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1p-3 ) = -0x1.0000000000002p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000001p-3) = -0x1.0000000000001p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000002p-3) = -0x1.0000000000001p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000003p-3) = -0x1.0000000000001p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000004p-3) = -0x1.0000000000001p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000005p-3) = -0x1.0000000000001p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000006p-3) = -0x1.0000000000001p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000007p-3) = -0x1.0000000000001p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000008p-3) = -0x1.0000000000001p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000009p-3) = -0x1p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000ap-3) = -0x1p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000bp-3) = -0x1p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000cp-3) = -0x1p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000dp-3) = -0x1p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000ep-3) = -0x1p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000fp-3) = -0x1p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1p-3 ) = 0x1.0000000000002p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000001p-3) = 0x1.0000000000001p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000002p-3) = 0x1.0000000000001p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000003p-3) = 0x1.0000000000001p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000004p-3) = 0x1.0000000000001p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000005p-3) = 0x1.0000000000001p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000006p-3) = 0x1.0000000000001p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000007p-3) = 0x1.0000000000001p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000008p-3) = 0x1.0000000000001p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000009p-3) = 0x1p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000ap-3) = 0x1p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000bp-3) = 0x1p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000cp-3) = 0x1p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000dp-3) = 0x1p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000ep-3) = 0x1p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000fp-3) = 0x1p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1p-3 ) = -0x1.0000000000002p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000001p-3) = -0x1.0000000000001p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000002p-3) = -0x1.0000000000001p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000003p-3) = -0x1.0000000000001p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000004p-3) = -0x1.0000000000001p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000005p-3) = -0x1.0000000000001p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000006p-3) = -0x1.0000000000001p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000007p-3) = -0x1.0000000000001p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000008p-3) = -0x1.0000000000001p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000009p-3) = -0x1p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000ap-3) = -0x1p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000bp-3) = -0x1p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000cp-3) = -0x1p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000dp-3) = -0x1p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000ep-3) = -0x1p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000fp-3) = -0x1p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1p-3 ) = 0x1.0000000000002p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000001p-3) = 0x1.0000000000002p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000002p-3) = 0x1.0000000000002p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000003p-3) = 0x1.0000000000002p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000004p-3) = 0x1.0000000000002p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000005p-3) = 0x1.0000000000002p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000006p-3) = 0x1.0000000000002p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000007p-3) = 0x1.0000000000002p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000008p-3) = 0x1.0000000000001p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000009p-3) = 0x1.0000000000001p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000ap-3) = 0x1.0000000000001p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000bp-3) = 0x1.0000000000001p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000cp-3) = 0x1.0000000000001p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000dp-3) = 0x1.0000000000001p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000ep-3) = 0x1.0000000000001p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000fp-3) = 0x1.0000000000001p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1p-3 ) = -0x1.0000000000002p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000001p-3) = -0x1.0000000000002p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000002p-3) = -0x1.0000000000002p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000003p-3) = -0x1.0000000000002p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000004p-3) = -0x1.0000000000002p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000005p-3) = -0x1.0000000000002p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000006p-3) = -0x1.0000000000002p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000007p-3) = -0x1.0000000000002p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000008p-3) = -0x1.0000000000001p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000009p-3) = -0x1.0000000000001p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000ap-3) = -0x1.0000000000001p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000bp-3) = -0x1.0000000000001p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000cp-3) = -0x1.0000000000001p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000dp-3) = -0x1.0000000000001p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000ep-3) = -0x1.0000000000001p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000fp-3) = -0x1.0000000000001p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1p-3 ) = 0x1.0000000000002p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000001p-3) = 0x1.0000000000001p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000002p-3) = 0x1.0000000000001p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000003p-3) = 0x1.0000000000001p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000004p-3) = 0x1.0000000000001p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000005p-3) = 0x1.0000000000001p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000006p-3) = 0x1.0000000000001p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000007p-3) = 0x1.0000000000001p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000008p-3) = 0x1.0000000000001p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000009p-3) = 0x1p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000ap-3) = 0x1p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000bp-3) = 0x1p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000cp-3) = 0x1p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000dp-3) = 0x1p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000ep-3) = 0x1p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000fp-3) = 0x1p+0
+near:PASSED:fmul(-0x1p+0 , 0x1.2p+0 ) = -0x1.2p+0
+near:PASSED:fmul(-0x1.0000000000001p+0, 0x1.2p+0 ) = -0x1.2000000000001p+0
+near:PASSED:fmul(-0x1.0000000000002p+0, 0x1.2p+0 ) = -0x1.2000000000002p+0
+near:PASSED:fmul(-0x1.0000000000003p+0, 0x1.2p+0 ) = -0x1.2000000000003p+0
+near:PASSED:fmul(-0x1.0000000000004p+0, 0x1.2p+0 ) = -0x1.2000000000004p+0
+near:PASSED:fmul(-0x1.0000000000005p+0, 0x1.2p+0 ) = -0x1.2000000000006p+0
+near:PASSED:fmul(-0x1.0000000000006p+0, 0x1.2p+0 ) = -0x1.2000000000007p+0
+near:PASSED:fmul(-0x1.0000000000007p+0, 0x1.2p+0 ) = -0x1.2000000000008p+0
+near:PASSED:fmul(-0x1.0000000000008p+0, 0x1.2p+0 ) = -0x1.2000000000009p+0
+near:PASSED:fmul(-0x1.0000000000009p+0, 0x1.2p+0 ) = -0x1.200000000000ap+0
+near:PASSED:fmul(-0x1.000000000000ap+0, 0x1.2p+0 ) = -0x1.200000000000bp+0
+near:PASSED:fmul(-0x1.000000000000bp+0, 0x1.2p+0 ) = -0x1.200000000000cp+0
+near:PASSED:fmul(-0x1.000000000000cp+0, 0x1.2p+0 ) = -0x1.200000000000ep+0
+near:PASSED:fmul(-0x1.000000000000dp+0, 0x1.2p+0 ) = -0x1.200000000000fp+0
+near:PASSED:fmul(-0x1.000000000000ep+0, 0x1.2p+0 ) = -0x1.200000000001p+0
+near:PASSED:fmul(-0x1.000000000000fp+0, 0x1.2p+0 ) = -0x1.2000000000011p+0
+near:PASSED:fmul(0x1p+0 , 0x1.2p+0 ) = 0x1.2p+0
+near:PASSED:fmul(0x1.0000000000001p+0, 0x1.2p+0 ) = 0x1.2000000000001p+0
+near:PASSED:fmul(0x1.0000000000002p+0, 0x1.2p+0 ) = 0x1.2000000000002p+0
+near:PASSED:fmul(0x1.0000000000003p+0, 0x1.2p+0 ) = 0x1.2000000000003p+0
+near:PASSED:fmul(0x1.0000000000004p+0, 0x1.2p+0 ) = 0x1.2000000000004p+0
+near:PASSED:fmul(0x1.0000000000005p+0, 0x1.2p+0 ) = 0x1.2000000000006p+0
+near:PASSED:fmul(0x1.0000000000006p+0, 0x1.2p+0 ) = 0x1.2000000000007p+0
+near:PASSED:fmul(0x1.0000000000007p+0, 0x1.2p+0 ) = 0x1.2000000000008p+0
+near:PASSED:fmul(0x1.0000000000008p+0, 0x1.2p+0 ) = 0x1.2000000000009p+0
+near:PASSED:fmul(0x1.0000000000009p+0, 0x1.2p+0 ) = 0x1.200000000000ap+0
+near:PASSED:fmul(0x1.000000000000ap+0, 0x1.2p+0 ) = 0x1.200000000000bp+0
+near:PASSED:fmul(0x1.000000000000bp+0, 0x1.2p+0 ) = 0x1.200000000000cp+0
+near:PASSED:fmul(0x1.000000000000cp+0, 0x1.2p+0 ) = 0x1.200000000000ep+0
+near:PASSED:fmul(0x1.000000000000dp+0, 0x1.2p+0 ) = 0x1.200000000000fp+0
+near:PASSED:fmul(0x1.000000000000ep+0, 0x1.2p+0 ) = 0x1.200000000001p+0
+near:PASSED:fmul(0x1.000000000000fp+0, 0x1.2p+0 ) = 0x1.2000000000011p+0
+zero:PASSED:fmul(-0x1p+0 , 0x1.2p+0 ) = -0x1.2p+0
+zero:PASSED:fmul(-0x1.0000000000001p+0, 0x1.2p+0 ) = -0x1.2000000000001p+0
+zero:PASSED:fmul(-0x1.0000000000002p+0, 0x1.2p+0 ) = -0x1.2000000000002p+0
+zero:PASSED:fmul(-0x1.0000000000003p+0, 0x1.2p+0 ) = -0x1.2000000000003p+0
+zero:PASSED:fmul(-0x1.0000000000004p+0, 0x1.2p+0 ) = -0x1.2000000000004p+0
+zero:PASSED:fmul(-0x1.0000000000005p+0, 0x1.2p+0 ) = -0x1.2000000000005p+0
+zero:PASSED:fmul(-0x1.0000000000006p+0, 0x1.2p+0 ) = -0x1.2000000000006p+0
+zero:PASSED:fmul(-0x1.0000000000007p+0, 0x1.2p+0 ) = -0x1.2000000000007p+0
+zero:PASSED:fmul(-0x1.0000000000008p+0, 0x1.2p+0 ) = -0x1.2000000000009p+0
+zero:PASSED:fmul(-0x1.0000000000009p+0, 0x1.2p+0 ) = -0x1.200000000000ap+0
+zero:PASSED:fmul(-0x1.000000000000ap+0, 0x1.2p+0 ) = -0x1.200000000000bp+0
+zero:PASSED:fmul(-0x1.000000000000bp+0, 0x1.2p+0 ) = -0x1.200000000000cp+0
+zero:PASSED:fmul(-0x1.000000000000cp+0, 0x1.2p+0 ) = -0x1.200000000000dp+0
+zero:PASSED:fmul(-0x1.000000000000dp+0, 0x1.2p+0 ) = -0x1.200000000000ep+0
+zero:PASSED:fmul(-0x1.000000000000ep+0, 0x1.2p+0 ) = -0x1.200000000000fp+0
+zero:PASSED:fmul(-0x1.000000000000fp+0, 0x1.2p+0 ) = -0x1.200000000001p+0
+zero:PASSED:fmul(0x1p+0 , 0x1.2p+0 ) = 0x1.2p+0
+zero:PASSED:fmul(0x1.0000000000001p+0, 0x1.2p+0 ) = 0x1.2000000000001p+0
+zero:PASSED:fmul(0x1.0000000000002p+0, 0x1.2p+0 ) = 0x1.2000000000002p+0
+zero:PASSED:fmul(0x1.0000000000003p+0, 0x1.2p+0 ) = 0x1.2000000000003p+0
+zero:PASSED:fmul(0x1.0000000000004p+0, 0x1.2p+0 ) = 0x1.2000000000004p+0
+zero:PASSED:fmul(0x1.0000000000005p+0, 0x1.2p+0 ) = 0x1.2000000000005p+0
+zero:PASSED:fmul(0x1.0000000000006p+0, 0x1.2p+0 ) = 0x1.2000000000006p+0
+zero:PASSED:fmul(0x1.0000000000007p+0, 0x1.2p+0 ) = 0x1.2000000000007p+0
+zero:PASSED:fmul(0x1.0000000000008p+0, 0x1.2p+0 ) = 0x1.2000000000009p+0
+zero:PASSED:fmul(0x1.0000000000009p+0, 0x1.2p+0 ) = 0x1.200000000000ap+0
+zero:PASSED:fmul(0x1.000000000000ap+0, 0x1.2p+0 ) = 0x1.200000000000bp+0
+zero:PASSED:fmul(0x1.000000000000bp+0, 0x1.2p+0 ) = 0x1.200000000000cp+0
+zero:PASSED:fmul(0x1.000000000000cp+0, 0x1.2p+0 ) = 0x1.200000000000dp+0
+zero:PASSED:fmul(0x1.000000000000dp+0, 0x1.2p+0 ) = 0x1.200000000000ep+0
+zero:PASSED:fmul(0x1.000000000000ep+0, 0x1.2p+0 ) = 0x1.200000000000fp+0
+zero:PASSED:fmul(0x1.000000000000fp+0, 0x1.2p+0 ) = 0x1.200000000001p+0
++inf:PASSED:fmul(-0x1p+0 , 0x1.2p+0 ) = -0x1.2p+0
++inf:PASSED:fmul(-0x1.0000000000001p+0, 0x1.2p+0 ) = -0x1.2000000000001p+0
++inf:PASSED:fmul(-0x1.0000000000002p+0, 0x1.2p+0 ) = -0x1.2000000000002p+0
++inf:PASSED:fmul(-0x1.0000000000003p+0, 0x1.2p+0 ) = -0x1.2000000000003p+0
++inf:PASSED:fmul(-0x1.0000000000004p+0, 0x1.2p+0 ) = -0x1.2000000000004p+0
++inf:PASSED:fmul(-0x1.0000000000005p+0, 0x1.2p+0 ) = -0x1.2000000000005p+0
++inf:PASSED:fmul(-0x1.0000000000006p+0, 0x1.2p+0 ) = -0x1.2000000000006p+0
++inf:PASSED:fmul(-0x1.0000000000007p+0, 0x1.2p+0 ) = -0x1.2000000000007p+0
++inf:PASSED:fmul(-0x1.0000000000008p+0, 0x1.2p+0 ) = -0x1.2000000000009p+0
++inf:PASSED:fmul(-0x1.0000000000009p+0, 0x1.2p+0 ) = -0x1.200000000000ap+0
++inf:PASSED:fmul(-0x1.000000000000ap+0, 0x1.2p+0 ) = -0x1.200000000000bp+0
++inf:PASSED:fmul(-0x1.000000000000bp+0, 0x1.2p+0 ) = -0x1.200000000000cp+0
++inf:PASSED:fmul(-0x1.000000000000cp+0, 0x1.2p+0 ) = -0x1.200000000000dp+0
++inf:PASSED:fmul(-0x1.000000000000dp+0, 0x1.2p+0 ) = -0x1.200000000000ep+0
++inf:PASSED:fmul(-0x1.000000000000ep+0, 0x1.2p+0 ) = -0x1.200000000000fp+0
++inf:PASSED:fmul(-0x1.000000000000fp+0, 0x1.2p+0 ) = -0x1.200000000001p+0
++inf:PASSED:fmul(0x1p+0 , 0x1.2p+0 ) = 0x1.2p+0
++inf:PASSED:fmul(0x1.0000000000001p+0, 0x1.2p+0 ) = 0x1.2000000000002p+0
++inf:PASSED:fmul(0x1.0000000000002p+0, 0x1.2p+0 ) = 0x1.2000000000003p+0
++inf:PASSED:fmul(0x1.0000000000003p+0, 0x1.2p+0 ) = 0x1.2000000000004p+0
++inf:PASSED:fmul(0x1.0000000000004p+0, 0x1.2p+0 ) = 0x1.2000000000005p+0
++inf:PASSED:fmul(0x1.0000000000005p+0, 0x1.2p+0 ) = 0x1.2000000000006p+0
++inf:PASSED:fmul(0x1.0000000000006p+0, 0x1.2p+0 ) = 0x1.2000000000007p+0
++inf:PASSED:fmul(0x1.0000000000007p+0, 0x1.2p+0 ) = 0x1.2000000000008p+0
++inf:PASSED:fmul(0x1.0000000000008p+0, 0x1.2p+0 ) = 0x1.2000000000009p+0
++inf:PASSED:fmul(0x1.0000000000009p+0, 0x1.2p+0 ) = 0x1.200000000000bp+0
++inf:PASSED:fmul(0x1.000000000000ap+0, 0x1.2p+0 ) = 0x1.200000000000cp+0
++inf:PASSED:fmul(0x1.000000000000bp+0, 0x1.2p+0 ) = 0x1.200000000000dp+0
++inf:PASSED:fmul(0x1.000000000000cp+0, 0x1.2p+0 ) = 0x1.200000000000ep+0
++inf:PASSED:fmul(0x1.000000000000dp+0, 0x1.2p+0 ) = 0x1.200000000000fp+0
++inf:PASSED:fmul(0x1.000000000000ep+0, 0x1.2p+0 ) = 0x1.200000000001p+0
++inf:PASSED:fmul(0x1.000000000000fp+0, 0x1.2p+0 ) = 0x1.2000000000011p+0
+-inf:PASSED:fmul(-0x1p+0 , 0x1.2p+0 ) = -0x1.2p+0
+-inf:PASSED:fmul(-0x1.0000000000001p+0, 0x1.2p+0 ) = -0x1.2000000000002p+0
+-inf:PASSED:fmul(-0x1.0000000000002p+0, 0x1.2p+0 ) = -0x1.2000000000003p+0
+-inf:PASSED:fmul(-0x1.0000000000003p+0, 0x1.2p+0 ) = -0x1.2000000000004p+0
+-inf:PASSED:fmul(-0x1.0000000000004p+0, 0x1.2p+0 ) = -0x1.2000000000005p+0
+-inf:PASSED:fmul(-0x1.0000000000005p+0, 0x1.2p+0 ) = -0x1.2000000000006p+0
+-inf:PASSED:fmul(-0x1.0000000000006p+0, 0x1.2p+0 ) = -0x1.2000000000007p+0
+-inf:PASSED:fmul(-0x1.0000000000007p+0, 0x1.2p+0 ) = -0x1.2000000000008p+0
+-inf:PASSED:fmul(-0x1.0000000000008p+0, 0x1.2p+0 ) = -0x1.2000000000009p+0
+-inf:PASSED:fmul(-0x1.0000000000009p+0, 0x1.2p+0 ) = -0x1.200000000000bp+0
+-inf:PASSED:fmul(-0x1.000000000000ap+0, 0x1.2p+0 ) = -0x1.200000000000cp+0
+-inf:PASSED:fmul(-0x1.000000000000bp+0, 0x1.2p+0 ) = -0x1.200000000000dp+0
+-inf:PASSED:fmul(-0x1.000000000000cp+0, 0x1.2p+0 ) = -0x1.200000000000ep+0
+-inf:PASSED:fmul(-0x1.000000000000dp+0, 0x1.2p+0 ) = -0x1.200000000000fp+0
+-inf:PASSED:fmul(-0x1.000000000000ep+0, 0x1.2p+0 ) = -0x1.200000000001p+0
+-inf:PASSED:fmul(-0x1.000000000000fp+0, 0x1.2p+0 ) = -0x1.2000000000011p+0
+-inf:PASSED:fmul(0x1p+0 , 0x1.2p+0 ) = 0x1.2p+0
+-inf:PASSED:fmul(0x1.0000000000001p+0, 0x1.2p+0 ) = 0x1.2000000000001p+0
+-inf:PASSED:fmul(0x1.0000000000002p+0, 0x1.2p+0 ) = 0x1.2000000000002p+0
+-inf:PASSED:fmul(0x1.0000000000003p+0, 0x1.2p+0 ) = 0x1.2000000000003p+0
+-inf:PASSED:fmul(0x1.0000000000004p+0, 0x1.2p+0 ) = 0x1.2000000000004p+0
+-inf:PASSED:fmul(0x1.0000000000005p+0, 0x1.2p+0 ) = 0x1.2000000000005p+0
+-inf:PASSED:fmul(0x1.0000000000006p+0, 0x1.2p+0 ) = 0x1.2000000000006p+0
+-inf:PASSED:fmul(0x1.0000000000007p+0, 0x1.2p+0 ) = 0x1.2000000000007p+0
+-inf:PASSED:fmul(0x1.0000000000008p+0, 0x1.2p+0 ) = 0x1.2000000000009p+0
+-inf:PASSED:fmul(0x1.0000000000009p+0, 0x1.2p+0 ) = 0x1.200000000000ap+0
+-inf:PASSED:fmul(0x1.000000000000ap+0, 0x1.2p+0 ) = 0x1.200000000000bp+0
+-inf:PASSED:fmul(0x1.000000000000bp+0, 0x1.2p+0 ) = 0x1.200000000000cp+0
+-inf:PASSED:fmul(0x1.000000000000cp+0, 0x1.2p+0 ) = 0x1.200000000000dp+0
+-inf:PASSED:fmul(0x1.000000000000dp+0, 0x1.2p+0 ) = 0x1.200000000000ep+0
+-inf:PASSED:fmul(0x1.000000000000ep+0, 0x1.2p+0 ) = 0x1.200000000000fp+0
+-inf:PASSED:fmul(0x1.000000000000fp+0, 0x1.2p+0 ) = 0x1.200000000001p+0
+-62/62
+near:PASSED:fdiv(-0x1.fp+5 , 0x1.fp+5 ) = -0x1p+0
+-64/62
+near:PASSED:fdiv(-0x1p+6 , 0x1.fp+5 ) = -0x1.0842108421084p+0
+-66/62
+near:PASSED:fdiv(-0x1.08p+6 , 0x1.fp+5 ) = -0x1.1084210842108p+0
+-100/62
+near:PASSED:fdiv(-0x1.9p+6 , 0x1.fp+5 ) = -0x1.9ce739ce739cep+0
+near:PASSED:fdiv(0x0.0000000000001p-1022, -0x1p+1 ) = -0x0p+0
+-102/62
+near:PASSED:fdiv(-0x1.98p+6 , 0x1.fp+5 ) = -0x1.a5294a5294a53p+0
+-106/62
+near:PASSED:fdiv(-0x1.a8p+6 , 0x1.fp+5 ) = -0x1.b5ad6b5ad6b5bp+0
+-108/62
+near:PASSED:fdiv(-0x1.bp+6 , 0x1.fp+5 ) = -0x1.bdef7bdef7bdfp+0
+-108/108
+near:PASSED:fdiv(-0x1.bp+6 , 0x1.bp+6 ) = -0x1p+0
+-112/62
+near:PASSED:fdiv(-0x1.cp+6 , 0x1.fp+5 ) = -0x1.ce739ce739ce7p+0
+-114/62
+near:PASSED:fdiv(-0x1.c8p+6 , 0x1.fp+5 ) = -0x1.d6b5ad6b5ad6bp+0
+-116/62
+near:PASSED:fdiv(-0x1.dp+6 , 0x1.fp+5 ) = -0x1.def7bdef7bdefp+0
+near:PASSED:fdiv(0x0.0000000000003p-1022, -0x1p+1 ) = -0x0.0000000000002p-1022
+-118/62
+near:PASSED:fdiv(-0x1.d8p+6 , 0x1.fp+5 ) = -0x1.e739ce739ce74p+0
+-90/62
+near:PASSED:fdiv(-0x1.68p+6 , 0x1.fp+5 ) = -0x1.739ce739ce73ap+0
+-92/62
+near:PASSED:fdiv(-0x1.7p+6 , 0x1.fp+5 ) = -0x1.7bdef7bdef7bep+0
+62/62
+near:PASSED:fdiv(0x1.fp+5 , 0x1.fp+5 ) = 0x1p+0
+64/62
+near:PASSED:fdiv(0x1p+6 , 0x1.fp+5 ) = 0x1.0842108421084p+0
+66/62
+near:PASSED:fdiv(0x1.08p+6 , 0x1.fp+5 ) = 0x1.1084210842108p+0
+100/62
+near:PASSED:fdiv(0x1.9p+6 , 0x1.fp+5 ) = 0x1.9ce739ce739cep+0
+near:PASSED:fdiv(0x0.0000000000001p-1022, 0x1p+1 ) = 0x0p+0
+102/62
+near:PASSED:fdiv(0x1.98p+6 , 0x1.fp+5 ) = 0x1.a5294a5294a53p+0
+106/62
+near:PASSED:fdiv(0x1.a8p+6 , 0x1.fp+5 ) = 0x1.b5ad6b5ad6b5bp+0
+108/62
+near:PASSED:fdiv(0x1.bp+6 , 0x1.fp+5 ) = 0x1.bdef7bdef7bdfp+0
+108/108
+near:PASSED:fdiv(0x1.bp+6 , 0x1.bp+6 ) = 0x1p+0
+112/62
+near:PASSED:fdiv(0x1.cp+6 , 0x1.fp+5 ) = 0x1.ce739ce739ce7p+0
+114/62
+near:PASSED:fdiv(0x1.c8p+6 , 0x1.fp+5 ) = 0x1.d6b5ad6b5ad6bp+0
+116/62
+near:PASSED:fdiv(0x1.dp+6 , 0x1.fp+5 ) = 0x1.def7bdef7bdefp+0
+near:PASSED:fdiv(0x0.0000000000003p-1022, 0x1p+1 ) = 0x0.0000000000002p-1022
+118/62
+near:PASSED:fdiv(0x1.d8p+6 , 0x1.fp+5 ) = 0x1.e739ce739ce74p+0
+90/62
+near:PASSED:fdiv(0x1.68p+6 , 0x1.fp+5 ) = 0x1.739ce739ce73ap+0
+92/62
+near:PASSED:fdiv(0x1.7p+6 , 0x1.fp+5 ) = 0x1.7bdef7bdef7bep+0
+-62/62
+zero:PASSED:fdiv(-0x1.fp+5 , 0x1.fp+5 ) = -0x1p+0
+-64/62
+zero:PASSED:fdiv(-0x1p+6 , 0x1.fp+5 ) = -0x1.0842108421084p+0
+-66/62
+zero:PASSED:fdiv(-0x1.08p+6 , 0x1.fp+5 ) = -0x1.1084210842108p+0
+-100/62
+zero:PASSED:fdiv(-0x1.9p+6 , 0x1.fp+5 ) = -0x1.9ce739ce739cep+0
+zero:PASSED:fdiv(0x0.0000000000001p-1022, -0x1p+1 ) = -0x0p+0
+-102/62
+zero:PASSED:fdiv(-0x1.98p+6 , 0x1.fp+5 ) = -0x1.a5294a5294a52p+0
+-106/62
+zero:PASSED:fdiv(-0x1.a8p+6 , 0x1.fp+5 ) = -0x1.b5ad6b5ad6b5ap+0
+-108/62
+zero:PASSED:fdiv(-0x1.bp+6 , 0x1.fp+5 ) = -0x1.bdef7bdef7bdep+0
+-108/108
+zero:PASSED:fdiv(-0x1.bp+6 , 0x1.bp+6 ) = -0x1p+0
+-112/62
+zero:PASSED:fdiv(-0x1.cp+6 , 0x1.fp+5 ) = -0x1.ce739ce739ce7p+0
+-114/62
+zero:PASSED:fdiv(-0x1.c8p+6 , 0x1.fp+5 ) = -0x1.d6b5ad6b5ad6bp+0
+-116/62
+zero:PASSED:fdiv(-0x1.dp+6 , 0x1.fp+5 ) = -0x1.def7bdef7bdefp+0
+zero:PASSED:fdiv(0x0.0000000000003p-1022, -0x1p+1 ) = -0x0.0000000000001p-1022
+-118/62
+zero:PASSED:fdiv(-0x1.d8p+6 , 0x1.fp+5 ) = -0x1.e739ce739ce73p+0
+-90/62
+zero:PASSED:fdiv(-0x1.68p+6 , 0x1.fp+5 ) = -0x1.739ce739ce739p+0
+-92/62
+zero:PASSED:fdiv(-0x1.7p+6 , 0x1.fp+5 ) = -0x1.7bdef7bdef7bdp+0
+62/62
+zero:PASSED:fdiv(0x1.fp+5 , 0x1.fp+5 ) = 0x1p+0
+64/62
+zero:PASSED:fdiv(0x1p+6 , 0x1.fp+5 ) = 0x1.0842108421084p+0
+66/62
+zero:PASSED:fdiv(0x1.08p+6 , 0x1.fp+5 ) = 0x1.1084210842108p+0
+100/62
+zero:PASSED:fdiv(0x1.9p+6 , 0x1.fp+5 ) = 0x1.9ce739ce739cep+0
+zero:PASSED:fdiv(0x0.0000000000001p-1022, 0x1p+1 ) = 0x0p+0
+102/62
+zero:PASSED:fdiv(0x1.98p+6 , 0x1.fp+5 ) = 0x1.a5294a5294a52p+0
+106/62
+zero:PASSED:fdiv(0x1.a8p+6 , 0x1.fp+5 ) = 0x1.b5ad6b5ad6b5ap+0
+108/62
+zero:PASSED:fdiv(0x1.bp+6 , 0x1.fp+5 ) = 0x1.bdef7bdef7bdep+0
+108/108
+zero:PASSED:fdiv(0x1.bp+6 , 0x1.bp+6 ) = 0x1p+0
+112/62
+zero:PASSED:fdiv(0x1.cp+6 , 0x1.fp+5 ) = 0x1.ce739ce739ce7p+0
+114/62
+zero:PASSED:fdiv(0x1.c8p+6 , 0x1.fp+5 ) = 0x1.d6b5ad6b5ad6bp+0
+116/62
+zero:PASSED:fdiv(0x1.dp+6 , 0x1.fp+5 ) = 0x1.def7bdef7bdefp+0
+zero:PASSED:fdiv(0x0.0000000000003p-1022, 0x1p+1 ) = 0x0.0000000000001p-1022
+118/62
+zero:PASSED:fdiv(0x1.d8p+6 , 0x1.fp+5 ) = 0x1.e739ce739ce73p+0
+90/62
+zero:PASSED:fdiv(0x1.68p+6 , 0x1.fp+5 ) = 0x1.739ce739ce739p+0
+92/62
+zero:PASSED:fdiv(0x1.7p+6 , 0x1.fp+5 ) = 0x1.7bdef7bdef7bdp+0
+-62/62
++inf:PASSED:fdiv(-0x1.fp+5 , 0x1.fp+5 ) = -0x1p+0
+-64/62
++inf:PASSED:fdiv(-0x1p+6 , 0x1.fp+5 ) = -0x1.0842108421084p+0
+-66/62
++inf:PASSED:fdiv(-0x1.08p+6 , 0x1.fp+5 ) = -0x1.1084210842108p+0
+-100/62
++inf:PASSED:fdiv(-0x1.9p+6 , 0x1.fp+5 ) = -0x1.9ce739ce739cep+0
++inf:PASSED:fdiv(0x0.0000000000001p-1022, -0x1p+1 ) = -0x0p+0
+-102/62
++inf:PASSED:fdiv(-0x1.98p+6 , 0x1.fp+5 ) = -0x1.a5294a5294a52p+0
+-106/62
++inf:PASSED:fdiv(-0x1.a8p+6 , 0x1.fp+5 ) = -0x1.b5ad6b5ad6b5ap+0
+-108/62
++inf:PASSED:fdiv(-0x1.bp+6 , 0x1.fp+5 ) = -0x1.bdef7bdef7bdep+0
+-108/108
++inf:PASSED:fdiv(-0x1.bp+6 , 0x1.bp+6 ) = -0x1p+0
+-112/62
++inf:PASSED:fdiv(-0x1.cp+6 , 0x1.fp+5 ) = -0x1.ce739ce739ce7p+0
+-114/62
++inf:PASSED:fdiv(-0x1.c8p+6 , 0x1.fp+5 ) = -0x1.d6b5ad6b5ad6bp+0
+-116/62
++inf:PASSED:fdiv(-0x1.dp+6 , 0x1.fp+5 ) = -0x1.def7bdef7bdefp+0
++inf:PASSED:fdiv(0x0.0000000000003p-1022, -0x1p+1 ) = -0x0.0000000000001p-1022
+-118/62
++inf:PASSED:fdiv(-0x1.d8p+6 , 0x1.fp+5 ) = -0x1.e739ce739ce73p+0
+-90/62
++inf:PASSED:fdiv(-0x1.68p+6 , 0x1.fp+5 ) = -0x1.739ce739ce739p+0
+-92/62
++inf:PASSED:fdiv(-0x1.7p+6 , 0x1.fp+5 ) = -0x1.7bdef7bdef7bdp+0
+62/62
++inf:PASSED:fdiv(0x1.fp+5 , 0x1.fp+5 ) = 0x1p+0
+64/62
++inf:PASSED:fdiv(0x1p+6 , 0x1.fp+5 ) = 0x1.0842108421085p+0
+66/62
++inf:PASSED:fdiv(0x1.08p+6 , 0x1.fp+5 ) = 0x1.1084210842109p+0
+100/62
++inf:PASSED:fdiv(0x1.9p+6 , 0x1.fp+5 ) = 0x1.9ce739ce739cfp+0
++inf:PASSED:fdiv(0x0.0000000000001p-1022, 0x1p+1 ) = 0x0.0000000000001p-1022
+102/62
++inf:PASSED:fdiv(0x1.98p+6 , 0x1.fp+5 ) = 0x1.a5294a5294a53p+0
+106/62
++inf:PASSED:fdiv(0x1.a8p+6 , 0x1.fp+5 ) = 0x1.b5ad6b5ad6b5bp+0
+108/62
++inf:PASSED:fdiv(0x1.bp+6 , 0x1.fp+5 ) = 0x1.bdef7bdef7bdfp+0
+108/108
++inf:PASSED:fdiv(0x1.bp+6 , 0x1.bp+6 ) = 0x1p+0
+112/62
++inf:PASSED:fdiv(0x1.cp+6 , 0x1.fp+5 ) = 0x1.ce739ce739ce8p+0
+114/62
++inf:PASSED:fdiv(0x1.c8p+6 , 0x1.fp+5 ) = 0x1.d6b5ad6b5ad6cp+0
+116/62
++inf:PASSED:fdiv(0x1.dp+6 , 0x1.fp+5 ) = 0x1.def7bdef7bdfp+0
++inf:PASSED:fdiv(0x0.0000000000003p-1022, 0x1p+1 ) = 0x0.0000000000002p-1022
+118/62
++inf:PASSED:fdiv(0x1.d8p+6 , 0x1.fp+5 ) = 0x1.e739ce739ce74p+0
+90/62
++inf:PASSED:fdiv(0x1.68p+6 , 0x1.fp+5 ) = 0x1.739ce739ce73ap+0
+92/62
++inf:PASSED:fdiv(0x1.7p+6 , 0x1.fp+5 ) = 0x1.7bdef7bdef7bep+0
+-62/62
+-inf:PASSED:fdiv(-0x1.fp+5 , 0x1.fp+5 ) = -0x1p+0
+-64/62
+-inf:PASSED:fdiv(-0x1p+6 , 0x1.fp+5 ) = -0x1.0842108421085p+0
+-66/62
+-inf:PASSED:fdiv(-0x1.08p+6 , 0x1.fp+5 ) = -0x1.1084210842109p+0
+-100/62
+-inf:PASSED:fdiv(-0x1.9p+6 , 0x1.fp+5 ) = -0x1.9ce739ce739cfp+0
+-inf:PASSED:fdiv(0x0.0000000000001p-1022, -0x1p+1 ) = -0x0.0000000000001p-1022
+-102/62
+-inf:PASSED:fdiv(-0x1.98p+6 , 0x1.fp+5 ) = -0x1.a5294a5294a53p+0
+-106/62
+-inf:PASSED:fdiv(-0x1.a8p+6 , 0x1.fp+5 ) = -0x1.b5ad6b5ad6b5bp+0
+-108/62
+-inf:PASSED:fdiv(-0x1.bp+6 , 0x1.fp+5 ) = -0x1.bdef7bdef7bdfp+0
+-108/108
+-inf:PASSED:fdiv(-0x1.bp+6 , 0x1.bp+6 ) = -0x1p+0
+-112/62
+-inf:PASSED:fdiv(-0x1.cp+6 , 0x1.fp+5 ) = -0x1.ce739ce739ce8p+0
+-114/62
+-inf:PASSED:fdiv(-0x1.c8p+6 , 0x1.fp+5 ) = -0x1.d6b5ad6b5ad6cp+0
+-116/62
+-inf:PASSED:fdiv(-0x1.dp+6 , 0x1.fp+5 ) = -0x1.def7bdef7bdfp+0
+-inf:PASSED:fdiv(0x0.0000000000003p-1022, -0x1p+1 ) = -0x0.0000000000002p-1022
+-118/62
+-inf:PASSED:fdiv(-0x1.d8p+6 , 0x1.fp+5 ) = -0x1.e739ce739ce74p+0
+-90/62
+-inf:PASSED:fdiv(-0x1.68p+6 , 0x1.fp+5 ) = -0x1.739ce739ce73ap+0
+-92/62
+-inf:PASSED:fdiv(-0x1.7p+6 , 0x1.fp+5 ) = -0x1.7bdef7bdef7bep+0
+62/62
+-inf:PASSED:fdiv(0x1.fp+5 , 0x1.fp+5 ) = 0x1p+0
+64/62
+-inf:PASSED:fdiv(0x1p+6 , 0x1.fp+5 ) = 0x1.0842108421084p+0
+66/62
+-inf:PASSED:fdiv(0x1.08p+6 , 0x1.fp+5 ) = 0x1.1084210842108p+0
+100/62
+-inf:PASSED:fdiv(0x1.9p+6 , 0x1.fp+5 ) = 0x1.9ce739ce739cep+0
+-inf:PASSED:fdiv(0x0.0000000000001p-1022, 0x1p+1 ) = 0x0p+0
+102/62
+-inf:PASSED:fdiv(0x1.98p+6 , 0x1.fp+5 ) = 0x1.a5294a5294a52p+0
+106/62
+-inf:PASSED:fdiv(0x1.a8p+6 , 0x1.fp+5 ) = 0x1.b5ad6b5ad6b5ap+0
+108/62
+-inf:PASSED:fdiv(0x1.bp+6 , 0x1.fp+5 ) = 0x1.bdef7bdef7bdep+0
+108/108
+-inf:PASSED:fdiv(0x1.bp+6 , 0x1.bp+6 ) = 0x1p+0
+112/62
+-inf:PASSED:fdiv(0x1.cp+6 , 0x1.fp+5 ) = 0x1.ce739ce739ce7p+0
+114/62
+-inf:PASSED:fdiv(0x1.c8p+6 , 0x1.fp+5 ) = 0x1.d6b5ad6b5ad6bp+0
+116/62
+-inf:PASSED:fdiv(0x1.dp+6 , 0x1.fp+5 ) = 0x1.def7bdef7bdefp+0
+-inf:PASSED:fdiv(0x0.0000000000003p-1022, 0x1p+1 ) = 0x0.0000000000001p-1022
+118/62
+-inf:PASSED:fdiv(0x1.d8p+6 , 0x1.fp+5 ) = 0x1.e739ce739ce73p+0
+90/62
+-inf:PASSED:fdiv(0x1.68p+6 , 0x1.fp+5 ) = 0x1.739ce739ce739p+0
+92/62
+-inf:PASSED:fdiv(0x1.7p+6 , 0x1.fp+5 ) = 0x1.7bdef7bdef7bdp+0
+near:PASSED:fmadd(-0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.ap+0
+near:PASSED:fmadd(-0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000002p+0
+near:PASSED:fmadd(-0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000003p+0
+near:PASSED:fmadd(-0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000004p+0
+near:PASSED:fmadd(-0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000005p+0
+near:PASSED:fmadd(-0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000006p+0
+near:PASSED:fmadd(-0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000007p+0
+near:PASSED:fmadd(-0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000008p+0
+near:PASSED:fmadd(-0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+near:PASSED:fmadd(-0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+near:PASSED:fmadd(-0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+near:PASSED:fmadd(-0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000dp+0
+near:PASSED:fmadd(-0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+near:PASSED:fmadd(-0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000fp+0
+near:PASSED:fmadd(-0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000001p+0
+near:PASSED:fmadd(-0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000011p+0
+near:PASSED:fmadd(0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.ap+0
+near:PASSED:fmadd(0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000002p+0
+near:PASSED:fmadd(0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000003p+0
+near:PASSED:fmadd(0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000004p+0
+near:PASSED:fmadd(0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000005p+0
+near:PASSED:fmadd(0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000006p+0
+near:PASSED:fmadd(0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000007p+0
+near:PASSED:fmadd(0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000008p+0
+near:PASSED:fmadd(0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+near:PASSED:fmadd(0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+near:PASSED:fmadd(0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+near:PASSED:fmadd(0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000dp+0
+near:PASSED:fmadd(0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+near:PASSED:fmadd(0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000fp+0
+near:PASSED:fmadd(0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000001p+0
+near:PASSED:fmadd(0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000011p+0
+zero:PASSED:fmadd(-0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.ap+0
+zero:PASSED:fmadd(-0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000001p+0
+zero:PASSED:fmadd(-0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000002p+0
+zero:PASSED:fmadd(-0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000003p+0
+zero:PASSED:fmadd(-0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000005p+0
+zero:PASSED:fmadd(-0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000006p+0
+zero:PASSED:fmadd(-0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000007p+0
+zero:PASSED:fmadd(-0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000008p+0
+zero:PASSED:fmadd(-0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000009p+0
+zero:PASSED:fmadd(-0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+zero:PASSED:fmadd(-0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+zero:PASSED:fmadd(-0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+zero:PASSED:fmadd(-0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+zero:PASSED:fmadd(-0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000fp+0
+zero:PASSED:fmadd(-0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000001p+0
+zero:PASSED:fmadd(-0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000011p+0
+zero:PASSED:fmadd(0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.ap+0
+zero:PASSED:fmadd(0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000001p+0
+zero:PASSED:fmadd(0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000002p+0
+zero:PASSED:fmadd(0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000003p+0
+zero:PASSED:fmadd(0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000005p+0
+zero:PASSED:fmadd(0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000006p+0
+zero:PASSED:fmadd(0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000007p+0
+zero:PASSED:fmadd(0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000008p+0
+zero:PASSED:fmadd(0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000009p+0
+zero:PASSED:fmadd(0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+zero:PASSED:fmadd(0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+zero:PASSED:fmadd(0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+zero:PASSED:fmadd(0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+zero:PASSED:fmadd(0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000fp+0
+zero:PASSED:fmadd(0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000001p+0
+zero:PASSED:fmadd(0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000011p+0
++inf:PASSED:fmadd(-0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.ap+0
++inf:PASSED:fmadd(-0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000001p+0
++inf:PASSED:fmadd(-0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000002p+0
++inf:PASSED:fmadd(-0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000003p+0
++inf:PASSED:fmadd(-0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000005p+0
++inf:PASSED:fmadd(-0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000006p+0
++inf:PASSED:fmadd(-0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000007p+0
++inf:PASSED:fmadd(-0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000008p+0
++inf:PASSED:fmadd(-0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000009p+0
++inf:PASSED:fmadd(-0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ap+0
++inf:PASSED:fmadd(-0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000bp+0
++inf:PASSED:fmadd(-0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000cp+0
++inf:PASSED:fmadd(-0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ep+0
++inf:PASSED:fmadd(-0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000fp+0
++inf:PASSED:fmadd(-0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000001p+0
++inf:PASSED:fmadd(-0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000011p+0
++inf:PASSED:fmadd(0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000001p+0
++inf:PASSED:fmadd(0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000002p+0
++inf:PASSED:fmadd(0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000003p+0
++inf:PASSED:fmadd(0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000004p+0
++inf:PASSED:fmadd(0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000005p+0
++inf:PASSED:fmadd(0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000007p+0
++inf:PASSED:fmadd(0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000008p+0
++inf:PASSED:fmadd(0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000009p+0
++inf:PASSED:fmadd(0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ap+0
++inf:PASSED:fmadd(0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000bp+0
++inf:PASSED:fmadd(0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000cp+0
++inf:PASSED:fmadd(0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000dp+0
++inf:PASSED:fmadd(0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ep+0
++inf:PASSED:fmadd(0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000001p+0
++inf:PASSED:fmadd(0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000011p+0
++inf:PASSED:fmadd(0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000012p+0
+-inf:PASSED:fmadd(-0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000001p+0
+-inf:PASSED:fmadd(-0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000002p+0
+-inf:PASSED:fmadd(-0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000003p+0
+-inf:PASSED:fmadd(-0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000004p+0
+-inf:PASSED:fmadd(-0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000005p+0
+-inf:PASSED:fmadd(-0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000007p+0
+-inf:PASSED:fmadd(-0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000008p+0
+-inf:PASSED:fmadd(-0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000009p+0
+-inf:PASSED:fmadd(-0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+-inf:PASSED:fmadd(-0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+-inf:PASSED:fmadd(-0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+-inf:PASSED:fmadd(-0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000dp+0
+-inf:PASSED:fmadd(-0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+-inf:PASSED:fmadd(-0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000001p+0
+-inf:PASSED:fmadd(-0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000011p+0
+-inf:PASSED:fmadd(-0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000012p+0
+-inf:PASSED:fmadd(0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.ap+0
+-inf:PASSED:fmadd(0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000001p+0
+-inf:PASSED:fmadd(0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000002p+0
+-inf:PASSED:fmadd(0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000003p+0
+-inf:PASSED:fmadd(0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000005p+0
+-inf:PASSED:fmadd(0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000006p+0
+-inf:PASSED:fmadd(0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000007p+0
+-inf:PASSED:fmadd(0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000008p+0
+-inf:PASSED:fmadd(0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000009p+0
+-inf:PASSED:fmadd(0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+-inf:PASSED:fmadd(0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+-inf:PASSED:fmadd(0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+-inf:PASSED:fmadd(0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+-inf:PASSED:fmadd(0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000fp+0
+-inf:PASSED:fmadd(0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000001p+0
+-inf:PASSED:fmadd(0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000011p+0
+near:PASSED:fmsub(-0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.ap+0
+near:PASSED:fmsub(-0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000002p+0
+near:PASSED:fmsub(-0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000003p+0
+near:PASSED:fmsub(-0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000004p+0
+near:PASSED:fmsub(-0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000005p+0
+near:PASSED:fmsub(-0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000006p+0
+near:PASSED:fmsub(-0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000007p+0
+near:PASSED:fmsub(-0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000008p+0
+near:PASSED:fmsub(-0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+near:PASSED:fmsub(-0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+near:PASSED:fmsub(-0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+near:PASSED:fmsub(-0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000dp+0
+near:PASSED:fmsub(-0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+near:PASSED:fmsub(-0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000fp+0
+near:PASSED:fmsub(-0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000001p+0
+near:PASSED:fmsub(-0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000011p+0
+near:PASSED:fmsub(0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.ap+0
+near:PASSED:fmsub(0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000002p+0
+near:PASSED:fmsub(0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000003p+0
+near:PASSED:fmsub(0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000004p+0
+near:PASSED:fmsub(0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000005p+0
+near:PASSED:fmsub(0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000006p+0
+near:PASSED:fmsub(0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000007p+0
+near:PASSED:fmsub(0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000008p+0
+near:PASSED:fmsub(0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+near:PASSED:fmsub(0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+near:PASSED:fmsub(0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+near:PASSED:fmsub(0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000dp+0
+near:PASSED:fmsub(0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+near:PASSED:fmsub(0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000fp+0
+near:PASSED:fmsub(0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000001p+0
+near:PASSED:fmsub(0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000011p+0
+zero:PASSED:fmsub(-0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.ap+0
+zero:PASSED:fmsub(-0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000001p+0
+zero:PASSED:fmsub(-0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000002p+0
+zero:PASSED:fmsub(-0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000003p+0
+zero:PASSED:fmsub(-0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000005p+0
+zero:PASSED:fmsub(-0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000006p+0
+zero:PASSED:fmsub(-0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000007p+0
+zero:PASSED:fmsub(-0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000008p+0
+zero:PASSED:fmsub(-0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000009p+0
+zero:PASSED:fmsub(-0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+zero:PASSED:fmsub(-0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+zero:PASSED:fmsub(-0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+zero:PASSED:fmsub(-0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+zero:PASSED:fmsub(-0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000fp+0
+zero:PASSED:fmsub(-0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000001p+0
+zero:PASSED:fmsub(-0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000011p+0
+zero:PASSED:fmsub(0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.ap+0
+zero:PASSED:fmsub(0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000001p+0
+zero:PASSED:fmsub(0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000002p+0
+zero:PASSED:fmsub(0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000003p+0
+zero:PASSED:fmsub(0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000005p+0
+zero:PASSED:fmsub(0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000006p+0
+zero:PASSED:fmsub(0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000007p+0
+zero:PASSED:fmsub(0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000008p+0
+zero:PASSED:fmsub(0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000009p+0
+zero:PASSED:fmsub(0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+zero:PASSED:fmsub(0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+zero:PASSED:fmsub(0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+zero:PASSED:fmsub(0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+zero:PASSED:fmsub(0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000fp+0
+zero:PASSED:fmsub(0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000001p+0
+zero:PASSED:fmsub(0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000011p+0
++inf:PASSED:fmsub(-0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.ap+0
++inf:PASSED:fmsub(-0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000001p+0
++inf:PASSED:fmsub(-0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000002p+0
++inf:PASSED:fmsub(-0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000003p+0
++inf:PASSED:fmsub(-0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000005p+0
++inf:PASSED:fmsub(-0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000006p+0
++inf:PASSED:fmsub(-0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000007p+0
++inf:PASSED:fmsub(-0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000008p+0
++inf:PASSED:fmsub(-0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000009p+0
++inf:PASSED:fmsub(-0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ap+0
++inf:PASSED:fmsub(-0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000bp+0
++inf:PASSED:fmsub(-0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000cp+0
++inf:PASSED:fmsub(-0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ep+0
++inf:PASSED:fmsub(-0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000fp+0
++inf:PASSED:fmsub(-0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000001p+0
++inf:PASSED:fmsub(-0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000011p+0
++inf:PASSED:fmsub(0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000001p+0
++inf:PASSED:fmsub(0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000002p+0
++inf:PASSED:fmsub(0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000003p+0
++inf:PASSED:fmsub(0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000004p+0
++inf:PASSED:fmsub(0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000005p+0
++inf:PASSED:fmsub(0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000007p+0
++inf:PASSED:fmsub(0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000008p+0
++inf:PASSED:fmsub(0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000009p+0
++inf:PASSED:fmsub(0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ap+0
++inf:PASSED:fmsub(0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000bp+0
++inf:PASSED:fmsub(0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000cp+0
++inf:PASSED:fmsub(0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000dp+0
++inf:PASSED:fmsub(0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ep+0
++inf:PASSED:fmsub(0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000001p+0
++inf:PASSED:fmsub(0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000011p+0
++inf:PASSED:fmsub(0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000012p+0
+-inf:PASSED:fmsub(-0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000001p+0
+-inf:PASSED:fmsub(-0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000002p+0
+-inf:PASSED:fmsub(-0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000003p+0
+-inf:PASSED:fmsub(-0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000004p+0
+-inf:PASSED:fmsub(-0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000005p+0
+-inf:PASSED:fmsub(-0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000007p+0
+-inf:PASSED:fmsub(-0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000008p+0
+-inf:PASSED:fmsub(-0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000009p+0
+-inf:PASSED:fmsub(-0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+-inf:PASSED:fmsub(-0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+-inf:PASSED:fmsub(-0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+-inf:PASSED:fmsub(-0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000dp+0
+-inf:PASSED:fmsub(-0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+-inf:PASSED:fmsub(-0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000001p+0
+-inf:PASSED:fmsub(-0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000011p+0
+-inf:PASSED:fmsub(-0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000012p+0
+-inf:PASSED:fmsub(0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.ap+0
+-inf:PASSED:fmsub(0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000001p+0
+-inf:PASSED:fmsub(0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000002p+0
+-inf:PASSED:fmsub(0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000003p+0
+-inf:PASSED:fmsub(0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000005p+0
+-inf:PASSED:fmsub(0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000006p+0
+-inf:PASSED:fmsub(0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000007p+0
+-inf:PASSED:fmsub(0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000008p+0
+-inf:PASSED:fmsub(0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000009p+0
+-inf:PASSED:fmsub(0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+-inf:PASSED:fmsub(0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+-inf:PASSED:fmsub(0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+-inf:PASSED:fmsub(0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+-inf:PASSED:fmsub(0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000fp+0
+-inf:PASSED:fmsub(0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000001p+0
+-inf:PASSED:fmsub(0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000011p+0
+near:PASSED:fnmadd(-0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.ap+0
+near:PASSED:fnmadd(-0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000002p+0
+near:PASSED:fnmadd(-0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000003p+0
+near:PASSED:fnmadd(-0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000004p+0
+near:PASSED:fnmadd(-0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000005p+0
+near:PASSED:fnmadd(-0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000006p+0
+near:PASSED:fnmadd(-0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000007p+0
+near:PASSED:fnmadd(-0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000008p+0
+near:PASSED:fnmadd(-0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+near:PASSED:fnmadd(-0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+near:PASSED:fnmadd(-0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+near:PASSED:fnmadd(-0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000dp+0
+near:PASSED:fnmadd(-0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+near:PASSED:fnmadd(-0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000fp+0
+near:PASSED:fnmadd(-0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000001p+0
+near:PASSED:fnmadd(-0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000011p+0
+near:PASSED:fnmadd(0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.ap+0
+near:PASSED:fnmadd(0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000002p+0
+near:PASSED:fnmadd(0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000003p+0
+near:PASSED:fnmadd(0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000004p+0
+near:PASSED:fnmadd(0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000005p+0
+near:PASSED:fnmadd(0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000006p+0
+near:PASSED:fnmadd(0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000007p+0
+near:PASSED:fnmadd(0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000008p+0
+near:PASSED:fnmadd(0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+near:PASSED:fnmadd(0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+near:PASSED:fnmadd(0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+near:PASSED:fnmadd(0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000dp+0
+near:PASSED:fnmadd(0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+near:PASSED:fnmadd(0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000fp+0
+near:PASSED:fnmadd(0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000001p+0
+near:PASSED:fnmadd(0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000011p+0
+zero:PASSED:fnmadd(-0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.ap+0
+zero:PASSED:fnmadd(-0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000001p+0
+zero:PASSED:fnmadd(-0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000002p+0
+zero:PASSED:fnmadd(-0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000003p+0
+zero:PASSED:fnmadd(-0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000005p+0
+zero:PASSED:fnmadd(-0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000006p+0
+zero:PASSED:fnmadd(-0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000007p+0
+zero:PASSED:fnmadd(-0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000008p+0
+zero:PASSED:fnmadd(-0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000009p+0
+zero:PASSED:fnmadd(-0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+zero:PASSED:fnmadd(-0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+zero:PASSED:fnmadd(-0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+zero:PASSED:fnmadd(-0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+zero:PASSED:fnmadd(-0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000fp+0
+zero:PASSED:fnmadd(-0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000001p+0
+zero:PASSED:fnmadd(-0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000011p+0
+zero:PASSED:fnmadd(0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.ap+0
+zero:PASSED:fnmadd(0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000001p+0
+zero:PASSED:fnmadd(0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000002p+0
+zero:PASSED:fnmadd(0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000003p+0
+zero:PASSED:fnmadd(0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000005p+0
+zero:PASSED:fnmadd(0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000006p+0
+zero:PASSED:fnmadd(0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000007p+0
+zero:PASSED:fnmadd(0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000008p+0
+zero:PASSED:fnmadd(0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000009p+0
+zero:PASSED:fnmadd(0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+zero:PASSED:fnmadd(0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+zero:PASSED:fnmadd(0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+zero:PASSED:fnmadd(0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+zero:PASSED:fnmadd(0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000fp+0
+zero:PASSED:fnmadd(0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000001p+0
+zero:PASSED:fnmadd(0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000011p+0
++inf:PASSED:fnmadd(-0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.ap+0
++inf:PASSED:fnmadd(-0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000001p+0
++inf:PASSED:fnmadd(-0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000002p+0
++inf:PASSED:fnmadd(-0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000003p+0
++inf:PASSED:fnmadd(-0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000005p+0
++inf:PASSED:fnmadd(-0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000006p+0
++inf:PASSED:fnmadd(-0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000007p+0
++inf:PASSED:fnmadd(-0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000008p+0
++inf:PASSED:fnmadd(-0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000009p+0
++inf:PASSED:fnmadd(-0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ap+0
++inf:PASSED:fnmadd(-0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000bp+0
++inf:PASSED:fnmadd(-0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000cp+0
++inf:PASSED:fnmadd(-0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ep+0
++inf:PASSED:fnmadd(-0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000fp+0
++inf:PASSED:fnmadd(-0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000001p+0
++inf:PASSED:fnmadd(-0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000011p+0
++inf:PASSED:fnmadd(0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000001p+0
++inf:PASSED:fnmadd(0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000002p+0
++inf:PASSED:fnmadd(0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000003p+0
++inf:PASSED:fnmadd(0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000004p+0
++inf:PASSED:fnmadd(0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000005p+0
++inf:PASSED:fnmadd(0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000007p+0
++inf:PASSED:fnmadd(0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000008p+0
++inf:PASSED:fnmadd(0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000009p+0
++inf:PASSED:fnmadd(0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ap+0
++inf:PASSED:fnmadd(0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000bp+0
++inf:PASSED:fnmadd(0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000cp+0
++inf:PASSED:fnmadd(0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000dp+0
++inf:PASSED:fnmadd(0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ep+0
++inf:PASSED:fnmadd(0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000001p+0
++inf:PASSED:fnmadd(0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000011p+0
++inf:PASSED:fnmadd(0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000012p+0
+-inf:PASSED:fnmadd(-0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000001p+0
+-inf:PASSED:fnmadd(-0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000002p+0
+-inf:PASSED:fnmadd(-0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000003p+0
+-inf:PASSED:fnmadd(-0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000004p+0
+-inf:PASSED:fnmadd(-0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000005p+0
+-inf:PASSED:fnmadd(-0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000007p+0
+-inf:PASSED:fnmadd(-0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000008p+0
+-inf:PASSED:fnmadd(-0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000009p+0
+-inf:PASSED:fnmadd(-0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+-inf:PASSED:fnmadd(-0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+-inf:PASSED:fnmadd(-0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+-inf:PASSED:fnmadd(-0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000dp+0
+-inf:PASSED:fnmadd(-0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+-inf:PASSED:fnmadd(-0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000001p+0
+-inf:PASSED:fnmadd(-0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000011p+0
+-inf:PASSED:fnmadd(-0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000012p+0
+-inf:PASSED:fnmadd(0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.ap+0
+-inf:PASSED:fnmadd(0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000001p+0
+-inf:PASSED:fnmadd(0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000002p+0
+-inf:PASSED:fnmadd(0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000003p+0
+-inf:PASSED:fnmadd(0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000005p+0
+-inf:PASSED:fnmadd(0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000006p+0
+-inf:PASSED:fnmadd(0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000007p+0
+-inf:PASSED:fnmadd(0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000008p+0
+-inf:PASSED:fnmadd(0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000009p+0
+-inf:PASSED:fnmadd(0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+-inf:PASSED:fnmadd(0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+-inf:PASSED:fnmadd(0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+-inf:PASSED:fnmadd(0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+-inf:PASSED:fnmadd(0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000fp+0
+-inf:PASSED:fnmadd(0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000001p+0
+-inf:PASSED:fnmadd(0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000011p+0
+near:PASSED:fnmsub(-0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.ap+0
+near:PASSED:fnmsub(-0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000002p+0
+near:PASSED:fnmsub(-0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000003p+0
+near:PASSED:fnmsub(-0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000004p+0
+near:PASSED:fnmsub(-0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000005p+0
+near:PASSED:fnmsub(-0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000006p+0
+near:PASSED:fnmsub(-0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000007p+0
+near:PASSED:fnmsub(-0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000008p+0
+near:PASSED:fnmsub(-0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+near:PASSED:fnmsub(-0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+near:PASSED:fnmsub(-0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+near:PASSED:fnmsub(-0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000dp+0
+near:PASSED:fnmsub(-0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+near:PASSED:fnmsub(-0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000fp+0
+near:PASSED:fnmsub(-0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000001p+0
+near:PASSED:fnmsub(-0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000011p+0
+near:PASSED:fnmsub(0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.ap+0
+near:PASSED:fnmsub(0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000002p+0
+near:PASSED:fnmsub(0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000003p+0
+near:PASSED:fnmsub(0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000004p+0
+near:PASSED:fnmsub(0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000005p+0
+near:PASSED:fnmsub(0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000006p+0
+near:PASSED:fnmsub(0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000007p+0
+near:PASSED:fnmsub(0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000008p+0
+near:PASSED:fnmsub(0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+near:PASSED:fnmsub(0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+near:PASSED:fnmsub(0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+near:PASSED:fnmsub(0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000dp+0
+near:PASSED:fnmsub(0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+near:PASSED:fnmsub(0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000fp+0
+near:PASSED:fnmsub(0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000001p+0
+near:PASSED:fnmsub(0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000011p+0
+zero:PASSED:fnmsub(-0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.ap+0
+zero:PASSED:fnmsub(-0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000001p+0
+zero:PASSED:fnmsub(-0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000002p+0
+zero:PASSED:fnmsub(-0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000003p+0
+zero:PASSED:fnmsub(-0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000005p+0
+zero:PASSED:fnmsub(-0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000006p+0
+zero:PASSED:fnmsub(-0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000007p+0
+zero:PASSED:fnmsub(-0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000008p+0
+zero:PASSED:fnmsub(-0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000009p+0
+zero:PASSED:fnmsub(-0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+zero:PASSED:fnmsub(-0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+zero:PASSED:fnmsub(-0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+zero:PASSED:fnmsub(-0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+zero:PASSED:fnmsub(-0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000fp+0
+zero:PASSED:fnmsub(-0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000001p+0
+zero:PASSED:fnmsub(-0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000011p+0
+zero:PASSED:fnmsub(0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.ap+0
+zero:PASSED:fnmsub(0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000001p+0
+zero:PASSED:fnmsub(0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000002p+0
+zero:PASSED:fnmsub(0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000003p+0
+zero:PASSED:fnmsub(0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000005p+0
+zero:PASSED:fnmsub(0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000006p+0
+zero:PASSED:fnmsub(0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000007p+0
+zero:PASSED:fnmsub(0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000008p+0
+zero:PASSED:fnmsub(0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000009p+0
+zero:PASSED:fnmsub(0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+zero:PASSED:fnmsub(0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+zero:PASSED:fnmsub(0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+zero:PASSED:fnmsub(0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+zero:PASSED:fnmsub(0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000fp+0
+zero:PASSED:fnmsub(0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000001p+0
+zero:PASSED:fnmsub(0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000011p+0
++inf:PASSED:fnmsub(-0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.ap+0
++inf:PASSED:fnmsub(-0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000001p+0
++inf:PASSED:fnmsub(-0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000002p+0
++inf:PASSED:fnmsub(-0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000003p+0
++inf:PASSED:fnmsub(-0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000005p+0
++inf:PASSED:fnmsub(-0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000006p+0
++inf:PASSED:fnmsub(-0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000007p+0
++inf:PASSED:fnmsub(-0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000008p+0
++inf:PASSED:fnmsub(-0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000009p+0
++inf:PASSED:fnmsub(-0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ap+0
++inf:PASSED:fnmsub(-0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000bp+0
++inf:PASSED:fnmsub(-0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000cp+0
++inf:PASSED:fnmsub(-0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ep+0
++inf:PASSED:fnmsub(-0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000fp+0
++inf:PASSED:fnmsub(-0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000001p+0
++inf:PASSED:fnmsub(-0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000011p+0
++inf:PASSED:fnmsub(0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000001p+0
++inf:PASSED:fnmsub(0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000002p+0
++inf:PASSED:fnmsub(0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000003p+0
++inf:PASSED:fnmsub(0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000004p+0
++inf:PASSED:fnmsub(0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000005p+0
++inf:PASSED:fnmsub(0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000007p+0
++inf:PASSED:fnmsub(0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000008p+0
++inf:PASSED:fnmsub(0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000009p+0
++inf:PASSED:fnmsub(0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ap+0
++inf:PASSED:fnmsub(0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000bp+0
++inf:PASSED:fnmsub(0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000cp+0
++inf:PASSED:fnmsub(0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000dp+0
++inf:PASSED:fnmsub(0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ep+0
++inf:PASSED:fnmsub(0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000001p+0
++inf:PASSED:fnmsub(0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000011p+0
++inf:PASSED:fnmsub(0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000012p+0
+-inf:PASSED:fnmsub(-0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000001p+0
+-inf:PASSED:fnmsub(-0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000002p+0
+-inf:PASSED:fnmsub(-0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000003p+0
+-inf:PASSED:fnmsub(-0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000004p+0
+-inf:PASSED:fnmsub(-0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000005p+0
+-inf:PASSED:fnmsub(-0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000007p+0
+-inf:PASSED:fnmsub(-0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000008p+0
+-inf:PASSED:fnmsub(-0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000009p+0
+-inf:PASSED:fnmsub(-0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+-inf:PASSED:fnmsub(-0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+-inf:PASSED:fnmsub(-0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+-inf:PASSED:fnmsub(-0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000dp+0
+-inf:PASSED:fnmsub(-0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+-inf:PASSED:fnmsub(-0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000001p+0
+-inf:PASSED:fnmsub(-0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000011p+0
+-inf:PASSED:fnmsub(-0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000012p+0
+-inf:PASSED:fnmsub(0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.ap+0
+-inf:PASSED:fnmsub(0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000001p+0
+-inf:PASSED:fnmsub(0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000002p+0
+-inf:PASSED:fnmsub(0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000003p+0
+-inf:PASSED:fnmsub(0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000005p+0
+-inf:PASSED:fnmsub(0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000006p+0
+-inf:PASSED:fnmsub(0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000007p+0
+-inf:PASSED:fnmsub(0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000008p+0
+-inf:PASSED:fnmsub(0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000009p+0
+-inf:PASSED:fnmsub(0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+-inf:PASSED:fnmsub(0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+-inf:PASSED:fnmsub(0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+-inf:PASSED:fnmsub(0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+-inf:PASSED:fnmsub(0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000fp+0
+-inf:PASSED:fnmsub(0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000001p+0
+-inf:PASSED:fnmsub(0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000011p+0
+near:PASSED:fsqrt(0x1.a44p-1 ) = 0x1.cfdcaf353049ep-1
+near:PASSED:fsqrt(0x1.a822p+0 ) = 0x1.498302b49cd6dp+0
+near:PASSED:fsqrt(0x1.05a2p+0 ) = 0x1.02cd13b44f3bfp+0
+near:PASSED:fsqrt(0x1.9504p-1 ) = 0x1.c76073cec0937p-1
+near:PASSED:fsqrt(0x1.dca2p+0 ) = 0x1.5d4f8d4e4c2b2p+0
+near:PASSED:fsqrt(0x1.02c8p+0 ) = 0x1.016309cde7483p+0
+near:PASSED:fsqrt(0x1.b9p-1 ) = 0x1.db2cfe686fe7cp-1
+near:PASSED:fsqrt(0x1.1d02p+0 ) = 0x1.0e1d62e78ed9ep+0
+near:PASSED:fsqrt(0x1.c39p-1 ) = 0x1.e0d526020fb6cp-1
+near:PASSED:fsqrt(0x1.9p-1 ) = 0x1.c48c6001f0acp-1
+near:PASSED:fsqrt(0x1.4852p+0 ) = 0x1.21e9ed813e2e3p+0
+near:PASSED:fsqrt(0x1.e984p-1 ) = 0x1.f4a1b09bbf0b1p-1
+near:PASSED:fsqrt(0x1.9a1p-1 ) = 0x1.ca34879b907afp-1
+near:PASSED:fsqrt(0x1.76b2p+0 ) = 0x1.35b6781aed828p+0
+zero:PASSED:fsqrt(0x1.a44p-1 ) = 0x1.cfdcaf353049ep-1
+zero:PASSED:fsqrt(0x1.a822p+0 ) = 0x1.498302b49cd6dp+0
+zero:PASSED:fsqrt(0x1.05a2p+0 ) = 0x1.02cd13b44f3bfp+0
+zero:PASSED:fsqrt(0x1.9504p-1 ) = 0x1.c76073cec0937p-1
+zero:PASSED:fsqrt(0x1.dca2p+0 ) = 0x1.5d4f8d4e4c2b2p+0
+zero:PASSED:fsqrt(0x1.02c8p+0 ) = 0x1.016309cde7483p+0
+zero:PASSED:fsqrt(0x1.b9p-1 ) = 0x1.db2cfe686fe7cp-1
+zero:PASSED:fsqrt(0x1.1d02p+0 ) = 0x1.0e1d62e78ed9dp+0
+zero:PASSED:fsqrt(0x1.c39p-1 ) = 0x1.e0d526020fb6bp-1
+zero:PASSED:fsqrt(0x1.9p-1 ) = 0x1.c48c6001f0abfp-1
+zero:PASSED:fsqrt(0x1.4852p+0 ) = 0x1.21e9ed813e2e2p+0
+zero:PASSED:fsqrt(0x1.e984p-1 ) = 0x1.f4a1b09bbf0bp-1
+zero:PASSED:fsqrt(0x1.9a1p-1 ) = 0x1.ca34879b907aep-1
+zero:PASSED:fsqrt(0x1.76b2p+0 ) = 0x1.35b6781aed827p+0
++inf:PASSED:fsqrt(0x1.a44p-1 ) = 0x1.cfdcaf353049fp-1
++inf:PASSED:fsqrt(0x1.a822p+0 ) = 0x1.498302b49cd6ep+0
++inf:PASSED:fsqrt(0x1.05a2p+0 ) = 0x1.02cd13b44f3cp+0
++inf:PASSED:fsqrt(0x1.9504p-1 ) = 0x1.c76073cec0938p-1
++inf:PASSED:fsqrt(0x1.dca2p+0 ) = 0x1.5d4f8d4e4c2b3p+0
++inf:PASSED:fsqrt(0x1.02c8p+0 ) = 0x1.016309cde7484p+0
++inf:PASSED:fsqrt(0x1.b9p-1 ) = 0x1.db2cfe686fe7dp-1
++inf:PASSED:fsqrt(0x1.1d02p+0 ) = 0x1.0e1d62e78ed9ep+0
++inf:PASSED:fsqrt(0x1.c39p-1 ) = 0x1.e0d526020fb6cp-1
++inf:PASSED:fsqrt(0x1.9p-1 ) = 0x1.c48c6001f0acp-1
++inf:PASSED:fsqrt(0x1.4852p+0 ) = 0x1.21e9ed813e2e3p+0
++inf:PASSED:fsqrt(0x1.e984p-1 ) = 0x1.f4a1b09bbf0b1p-1
++inf:PASSED:fsqrt(0x1.9a1p-1 ) = 0x1.ca34879b907afp-1
++inf:PASSED:fsqrt(0x1.76b2p+0 ) = 0x1.35b6781aed828p+0
+-inf:PASSED:fsqrt(0x1.a44p-1 ) = 0x1.cfdcaf353049ep-1
+-inf:PASSED:fsqrt(0x1.a822p+0 ) = 0x1.498302b49cd6dp+0
+-inf:PASSED:fsqrt(0x1.05a2p+0 ) = 0x1.02cd13b44f3bfp+0
+-inf:PASSED:fsqrt(0x1.9504p-1 ) = 0x1.c76073cec0937p-1
+-inf:PASSED:fsqrt(0x1.dca2p+0 ) = 0x1.5d4f8d4e4c2b2p+0
+-inf:PASSED:fsqrt(0x1.02c8p+0 ) = 0x1.016309cde7483p+0
+-inf:PASSED:fsqrt(0x1.b9p-1 ) = 0x1.db2cfe686fe7cp-1
+-inf:PASSED:fsqrt(0x1.1d02p+0 ) = 0x1.0e1d62e78ed9dp+0
+-inf:PASSED:fsqrt(0x1.c39p-1 ) = 0x1.e0d526020fb6bp-1
+-inf:PASSED:fsqrt(0x1.9p-1 ) = 0x1.c48c6001f0abfp-1
+-inf:PASSED:fsqrt(0x1.4852p+0 ) = 0x1.21e9ed813e2e2p+0
+-inf:PASSED:fsqrt(0x1.e984p-1 ) = 0x1.f4a1b09bbf0bp-1
+-inf:PASSED:fsqrt(0x1.9a1p-1 ) = 0x1.ca34879b907aep-1
+-inf:PASSED:fsqrt(0x1.76b2p+0 ) = 0x1.35b6781aed827p+0
--- /dev/null
+prog: round
jm-fp.stderr.exp jm-fp.stdout.exp jm-fp.vgtest \
jm-vmx.stderr.exp jm-vmx.stdout.exp jm-vmx.vgtest \
lsw.stderr.exp lsw.stdout.exp lsw.vgtest \
+ round.stderr.exp round.stdout.exp round.vgtest \
twi_tdi.stderr.exp twi_tdi.stdout.exp twi_tdi.vgtest
check_PROGRAMS = \
- jm-insns lsw twi_tdi
+ jm-insns lsw round twi_tdi
AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -g -I$(top_srcdir)/include \
@FLAG_M64@
--- /dev/null
+
+/* Copyright (C) 2006 Dave Nomura
+ dcnltc@us.ibm.com
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307, USA.
+
+ The GNU General Public License is contained in the file COPYING.
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <limits.h>
+
+typedef enum { FALSE=0, TRUE } bool_t;
+
+typedef enum {
+ FADDS, FSUBS, FMULS, FDIVS,
+ FMADDS, FMSUBS, FNMADDS, FNMSUBS,
+ FADD, FSUB, FMUL, FDIV, FMADD,
+ FMSUB, FNMADD, FNMSUB, FSQRT
+} flt_op_t;
+
+typedef enum {
+ TO_NEAREST=0, TO_ZERO, TO_PLUS_INFINITY, TO_MINUS_INFINITY } round_mode_t;
+char *round_mode_name[] = { "near", "zero", "+inf", "-inf" };
+
+const char *flt_op_names[] = {
+ "fadds", "fsubs", "fmuls", "fdivs",
+ "fmadds", "fmsubs", "fnmadds", "fnmsubs",
+ "fadd", "fsub", "fmul", "fdiv", "fmadd", "fmsub", "fnmadd",
+ "fnmsub", "fsqrt"
+};
+
+typedef unsigned int fpscr_t;
+
+typedef union {
+ float flt;
+ struct {
+ unsigned int sign:1;
+ unsigned int exp:8;
+ unsigned int frac:23;
+ } layout;
+} flt_overlay;
+
+typedef union {
+ double dbl;
+ struct {
+ unsigned int sign:1;
+ unsigned int exp:11;
+ unsigned int frac_hi:20;
+ unsigned int frac_lo:32;
+ } layout;
+ struct {
+ unsigned int hi;
+ unsigned int lo;
+ } dbl_pair;
+} dbl_overlay;
+
+void assert_fail(const char *msg,
+ const char* expr, const char* file, int line, const char*fn);
+
+#define STRING(__str) #__str
+#define assert(msg, expr) \
+ ((void) ((expr) ? 0 : \
+ (assert_fail (msg, STRING(expr), \
+ __FILE__, __LINE__, \
+ __PRETTY_FUNCTION__), 0)))
+float denorm_small;
+double dbl_denorm_small;
+float norm_small;
+bool_t debug = FALSE;
+bool_t long_is_64_bits = sizeof(long) == 8;
+
+void assert_fail (msg, expr, file, line, fn)
+const char* msg;
+const char* expr;
+const char* file;
+int line;
+const char*fn;
+{
+ printf( "\n%s: %s:%d (%s): Assertion `%s' failed.\n",
+ msg, file, line, fn, expr );
+ exit( 1 );
+}
+void set_rounding_mode(round_mode_t mode)
+{
+ switch(mode) {
+ case TO_NEAREST:
+ asm volatile("mtfsfi 7, 0");
+ break;
+ case TO_ZERO:
+ asm volatile("mtfsfi 7, 1");
+ break;
+ case TO_PLUS_INFINITY:
+ asm volatile("mtfsfi 7, 2");
+ break;
+ case TO_MINUS_INFINITY:
+ asm volatile("mtfsfi 7, 3");
+ break;
+ }
+}
+
+void print_double(char *msg, double dbl)
+{
+ dbl_overlay D;
+ D.dbl = dbl;
+
+ printf("%15s : dbl %-20a = %c(%4d, %05x%08x)\n",
+ msg, D.dbl, (D.layout.sign == 0 ? '+' : '-'),
+ D.layout.exp, D.layout.frac_hi, D.layout.frac_lo);
+}
+
+void print_single(char *msg, float *flt)
+{
+ flt_overlay F;
+ F.flt = *flt;
+
+ /* NOTE: for the purposes of comparing the fraction of a single with
+ ** a double left shift the .frac so that hex digits are grouped
+ ** from left to right. this is necessary because the size of a
+ ** single mantissa (23) bits is not a multiple of 4
+ */
+ printf("%15s : flt %-20a = %c(%4d, %06x)\n",
+ msg, F.flt, (F.layout.sign == 0 ? '+' : '-'), F.layout.exp, F.layout.frac << 1);
+}
+
+int check_dbl_to_flt_round(round_mode_t mode, double dbl, float *expected)
+{
+ int status = 0;
+ flt_overlay R, E;
+ char *result;
+ char *eq_ne;
+
+ set_rounding_mode(mode);
+
+ E.flt = *expected;
+ R.flt = (float)dbl;
+
+ if ((R.layout.sign != E.layout.sign) ||
+ (R.layout.exp != E.layout.exp) ||
+ (R.layout.frac != E.layout.frac)) {
+ result = "FAILED";
+ eq_ne = "!=";
+ status = 1;
+ } else {
+ result = "PASSED";
+ eq_ne = "==";
+ status = 0;
+ }
+ printf("%s:%s:(double)(%-20a) = %20a",
+ round_mode_name[mode], result, R.flt, dbl);
+ if (status) {
+ print_single("\n\texpected", &E.flt);
+ print_single("\n\trounded ", &R.flt);
+ }
+ putchar('\n');
+ return status;
+}
+
+int test_dbl_to_float_convert(char *msg, float *base)
+{
+ int status = 0;
+ double half = (double)denorm_small/2;
+ double qtr = half/2;
+ double D_hi = (double)*base + half + qtr;
+ double D_lo = (double)*base + half - qtr;
+ float F_lo = *base;
+ float F_hi = F_lo + denorm_small;
+
+
+ /*
+ ** .....+-----+-----+-----+-----+---....
+ ** ^F_lo ^ ^ ^
+ ** D_lo
+ ** D_hi
+ ** F_hi
+ ** F_lo and F_hi are two consecutive single float model numbers
+ ** denorm_small distance apart. D_lo and D_hi are two numbers
+ ** within that range that are not representable as single floats
+ ** and will be rounded to either F_lo or F_hi.
+ */
+ printf("-------------------------- %s --------------------------\n", msg);
+ if (debug) {
+ print_double("D_lo", D_lo);
+ print_double("D_hi", D_hi);
+ print_single("F_lo", &F_lo);
+ print_single("F_hi", &F_hi);
+ }
+
+ /* round to nearest */
+ status |= check_dbl_to_flt_round(TO_NEAREST, D_hi, &F_hi);
+ status |= check_dbl_to_flt_round(TO_NEAREST, D_lo, &F_lo);
+
+ /* round to zero */
+ status |= check_dbl_to_flt_round(TO_ZERO, D_hi, (D_hi > 0 ? &F_lo : &F_hi));
+ status |= check_dbl_to_flt_round(TO_ZERO, D_lo, (D_hi > 0 ? &F_lo : &F_hi));
+
+ /* round to +inf */
+ status |= check_dbl_to_flt_round(TO_PLUS_INFINITY, D_hi, &F_hi);
+ status |= check_dbl_to_flt_round(TO_PLUS_INFINITY, D_lo, &F_hi);
+
+ /* round to -inf */
+ status |= check_dbl_to_flt_round(TO_MINUS_INFINITY, D_hi, &F_lo);
+ status |= check_dbl_to_flt_round(TO_MINUS_INFINITY, D_lo, &F_lo);
+ return status;
+}
+
+void
+init()
+{
+ flt_overlay F;
+ dbl_overlay D;
+
+ /* small is the smallest denormalized single float number */
+ F.layout.sign = 0;
+ F.layout.exp = 0;
+ F.layout.frac = 1;
+ denorm_small = F.flt; /* == 2^(-149) */
+ if (debug) {
+ print_double("float small", F.flt);
+ }
+
+ D.layout.sign = 0;
+ D.layout.exp = 0;
+ D.layout.frac_hi = 0;
+ D.layout.frac_lo = 1;
+ dbl_denorm_small = D.dbl; /* == 2^(-1022) */
+ if (debug) {
+ print_double("double small", D.dbl);
+ }
+
+ /* n_small is the smallest normalized single precision float */
+ F.layout.exp = 1;
+ norm_small = F.flt;
+}
+
+int check_int_to_flt_round(round_mode_t mode, long L, float *expected)
+{
+ int status = 0;
+ int I = L;
+ char *int_name = "int";
+ flt_overlay R, E;
+ char *result;
+ int iter;
+
+ set_rounding_mode(mode);
+ E.flt = *expected;
+
+ for (iter = 0; iter < 2; iter++) {
+ int stat = 0;
+ R.flt = (iter == 0 ? (float)I : (float)L);
+
+ if ((R.layout.sign != E.layout.sign) ||
+ (R.layout.exp != E.layout.exp) ||
+ (R.layout.frac != E.layout.frac)) {
+ result = "FAILED";
+ stat = 1;
+ } else {
+ result = "PASSED";
+ stat = 0;
+ }
+ printf("%s:%s:(float)(%4s)%9d = %11.1f",
+ round_mode_name[mode], result, int_name, I, R.flt);
+ if (stat) {
+ print_single("\n\texpected: %.1f ", &E.flt);
+ print_single("\n\trounded ", &R.flt);
+ }
+ putchar('\n');
+ status |= stat;
+
+ if (!long_is_64_bits) break;
+ int_name = "long";
+ }
+ return status;
+}
+
+int check_long_to_dbl_round(round_mode_t mode, long L, double *expected)
+{
+ int status = 0;
+ dbl_overlay R, E;
+ char *result;
+
+ set_rounding_mode(mode);
+ E.dbl = *expected;
+
+ R.dbl = (double)L;
+
+ if ((R.layout.sign != E.layout.sign) ||
+ (R.layout.exp != E.layout.exp) ||
+ (R.layout.frac_lo != E.layout.frac_lo) ||
+ (R.layout.frac_hi != E.layout.frac_hi)) {
+ result = "FAILED";
+ status = 1;
+ } else {
+ result = "PASSED";
+ status = 0;
+ }
+ printf("%s:%s:(double)(%18ld) = %20.1f",
+ round_mode_name[mode], result, L, R.dbl);
+ if (status) {
+ printf("\n\texpected %.1f : ", E.dbl);
+ }
+ putchar('\n');
+ return status;
+}
+
+int test_int_to_float_convert(char *msg)
+{
+ int status = 0;
+ int int24_hi = 0x03ff0fff;
+ int int24_lo = 0x03ff0ffd;
+ float pos_flt_lo = 67047420.0;
+ float pos_flt_hi = 67047424.0;
+ float neg_flt_lo = -67047420.0;
+ float neg_flt_hi = -67047424.0;
+
+ printf("-------------------------- %s --------------------------\n", msg);
+ status |= check_int_to_flt_round(TO_NEAREST, int24_lo, &pos_flt_lo);
+ status |= check_int_to_flt_round(TO_NEAREST, int24_hi, &pos_flt_hi);
+ status |= check_int_to_flt_round(TO_ZERO, int24_lo, &pos_flt_lo);
+ status |= check_int_to_flt_round(TO_ZERO, int24_hi, &pos_flt_lo);
+ status |= check_int_to_flt_round(TO_PLUS_INFINITY, int24_lo, &pos_flt_hi);
+ status |= check_int_to_flt_round(TO_PLUS_INFINITY, int24_hi, &pos_flt_hi);
+ status |= check_int_to_flt_round(TO_MINUS_INFINITY, int24_lo, &pos_flt_lo);
+ status |= check_int_to_flt_round(TO_MINUS_INFINITY, int24_hi, &pos_flt_lo);
+
+ status |= check_int_to_flt_round(TO_NEAREST, -int24_lo, &neg_flt_lo);
+ status |= check_int_to_flt_round(TO_NEAREST, -int24_hi, &neg_flt_hi);
+ status |= check_int_to_flt_round(TO_ZERO, -int24_lo, &neg_flt_lo);
+ status |= check_int_to_flt_round(TO_ZERO, -int24_hi, &neg_flt_lo);
+ status |= check_int_to_flt_round(TO_PLUS_INFINITY, -int24_lo, &neg_flt_lo);
+ status |= check_int_to_flt_round(TO_PLUS_INFINITY, -int24_hi, &neg_flt_lo);
+ status |= check_int_to_flt_round(TO_MINUS_INFINITY, -int24_lo, &neg_flt_hi);
+ status |= check_int_to_flt_round(TO_MINUS_INFINITY, -int24_hi, &neg_flt_hi);
+ return status;
+}
+
+#ifdef __powerpc64__
+int test_long_to_double_convert(char *msg)
+{
+ int status = 0;
+ long long55_hi = 0x07ff0ffffffffff;
+ long long55_lo = 0x07ff0fffffffffd;
+ double pos_dbl_lo = 36012304344547324.0;
+ double pos_dbl_hi = 36012304344547328.0;
+ double neg_dbl_lo = -36012304344547324.0;
+ double neg_dbl_hi = -36012304344547328.0;
+
+ printf("-------------------------- %s --------------------------\n", msg);
+ status |= check_long_to_dbl_round(TO_NEAREST, long55_lo, &pos_dbl_lo);
+ status |= check_long_to_dbl_round(TO_NEAREST, long55_hi, &pos_dbl_hi);
+ status |= check_long_to_dbl_round(TO_ZERO, long55_lo, &pos_dbl_lo);
+ status |= check_long_to_dbl_round(TO_ZERO, long55_hi, &pos_dbl_lo);
+ status |= check_long_to_dbl_round(TO_PLUS_INFINITY, long55_lo, &pos_dbl_hi);
+ status |= check_long_to_dbl_round(TO_PLUS_INFINITY, long55_hi, &pos_dbl_hi);
+ status |= check_long_to_dbl_round(TO_MINUS_INFINITY, long55_lo, &pos_dbl_lo);
+ status |= check_long_to_dbl_round(TO_MINUS_INFINITY, long55_hi, &pos_dbl_lo);
+
+ status |= check_long_to_dbl_round(TO_NEAREST, -long55_lo, &neg_dbl_lo);
+ status |= check_long_to_dbl_round(TO_NEAREST, -long55_hi, &neg_dbl_hi);
+ status |= check_long_to_dbl_round(TO_ZERO, -long55_lo, &neg_dbl_lo);
+ status |= check_long_to_dbl_round(TO_ZERO, -long55_hi, &neg_dbl_lo);
+ status |= check_long_to_dbl_round(TO_PLUS_INFINITY, -long55_lo, &neg_dbl_lo);
+ status |= check_long_to_dbl_round(TO_PLUS_INFINITY, -long55_hi, &neg_dbl_lo);
+ status |= check_long_to_dbl_round(TO_MINUS_INFINITY, -long55_lo, &neg_dbl_hi);
+ status |= check_long_to_dbl_round(TO_MINUS_INFINITY, -long55_hi, &neg_dbl_hi);
+ return status;
+}
+#endif
+
+int check_single_arithmetic_op(flt_op_t op)
+{
+ char *result;
+ int status = 0;
+ dbl_overlay R, E;
+ double qtr, half, fA, fB, fD;
+ round_mode_t mode;
+ int q, s;
+ bool_t two_args = TRUE;
+ float whole = denorm_small;
+
+#define BINOP(op) \
+ __asm__ volatile( \
+ op" %0, %1, %2\n\t" \
+ : "=f"(fD) : "f"(fA) , "f"(fB));
+#define UNOP(op) \
+ __asm__ volatile( \
+ op" %0, %1\n\t" \
+ : "=f"(fD) : "f"(fA));
+
+ half = (double)whole/2;
+ qtr = half/2;
+
+ if (debug) {
+ print_double("qtr", qtr);
+ print_double("whole", whole);
+ print_double("2*whole", 2*whole);
+ }
+
+ for (mode = TO_NEAREST; mode <= TO_MINUS_INFINITY; mode++)
+ for (s = -1; s < 2; s += 2)
+ for (q = 1; q < 4; q += 2) {
+ double expected;
+ double lo = s*whole;
+ double hi = s*2*whole;
+
+ switch(op) {
+ case FADDS:
+ fA = s*whole;
+ fB = s*q*qtr;
+ break;
+ case FSUBS:
+ fA = s*2*whole;
+ fB = s*(q == 1 ? 3 : 1)*qtr;
+ break;
+ case FMULS:
+ fA = 0.5;
+ fB = s*(4+q)*half;
+ break;
+ case FDIVS:
+ fA = s*(4+q)*half;
+ fB = 2.0;
+ break;
+ default:
+ assert("check_single_arithmetic_op: unexpected op",
+ FALSE);
+ break;
+ }
+
+ switch(mode) {
+ case TO_NEAREST:
+ expected = (q == 1 ? lo : hi);
+ break;
+ case TO_ZERO:
+ expected = lo;
+ break;
+ case TO_PLUS_INFINITY:
+ expected = (s == 1 ? hi : lo);
+ break;
+ case TO_MINUS_INFINITY:
+ expected = (s == 1 ? lo : hi);
+ break;
+ }
+
+ set_rounding_mode(mode);
+
+ /*
+ ** do the double precision dual operation just for comparison
+ ** when debugging
+ */
+ switch(op) {
+ case FADDS:
+ BINOP("fadds");
+ R.dbl = fD;
+ BINOP("fadd");
+ break;
+ case FSUBS:
+ BINOP("fsubs");
+ R.dbl = fD;
+ BINOP("fsub");
+ break;
+ case FMULS:
+ BINOP("fmuls");
+ R.dbl = fD;
+ BINOP("fmul");
+ break;
+ case FDIVS:
+ BINOP("fdivs");
+ R.dbl = fD;
+ BINOP("fdiv");
+ break;
+ default:
+ assert("check_single_arithmetic_op: unexpected op",
+ FALSE);
+ break;
+ }
+#undef UNOP
+#undef BINOP
+
+ E.dbl = expected;
+
+ if ((R.layout.sign != E.layout.sign) ||
+ (R.layout.exp != E.layout.exp) ||
+ (R.layout.frac_lo != E.layout.frac_lo) ||
+ (R.layout.frac_hi != E.layout.frac_hi)) {
+ result = "FAILED";
+ status = 1;
+ } else {
+ result = "PASSED";
+ status = 0;
+ }
+
+ printf("%s:%s:%s(%-13a",
+ round_mode_name[mode], result, flt_op_names[op], fA);
+ if (two_args) printf(", %-13a", fB);
+ printf(") = %-13a", R.dbl);
+ if (status) printf("\n\texpected %a", E.dbl);
+ putchar('\n');
+
+ if (debug) {
+ print_double("hi", hi);
+ print_double("lo", lo);
+ print_double("expected", expected);
+ print_double("got", R.dbl);
+ print_double("double result", fD);
+ }
+ }
+
+ return status;
+}
+
+int check_single_guarded_arithmetic_op(flt_op_t op)
+{
+ typedef struct {
+ int num, den, frac;
+ } fdivs_t;
+
+ char *result;
+ int status = 0;
+ flt_overlay A, B, Z;
+ dbl_overlay Res, Exp;
+ double fA, fB, fC, fD;
+ round_mode_t mode;
+ int g, s;
+ int arg_count;
+
+ fdivs_t divs_guard_cases[16] = {
+ { 105, 56, 0x700000 }, /* : 0 */
+ { 100, 57, 0x608FB8 }, /* : 1 */
+ { 000, 00, 0x000000 }, /* : X */
+ { 100, 52, 0x762762 }, /* : 3 */
+ { 000, 00, 0x000000 }, /* : X */
+ { 100, 55, 0x68BA2E }, /* : 5 */
+ { 000, 00, 0x000000 }, /* : X */
+ { 100, 51, 0x7AFAFA }, /* : 7 */
+ { 000, 00, 0x000000 }, /* : X */
+ { 100, 56, 0x649249 }, /* : 9 */
+ { 000, 00, 0x000000 }, /* : X */
+ { 100, 54, 0x6D097B }, /* : B */
+ { 000, 00, 0x000000 }, /* : X */
+ { 100, 59, 0x58F2FB }, /* : D */
+ { 000, 00, 0x000000 }, /* : X */
+ { 101, 52, 0x789D89 } /* : F */
+ };
+
+ /* 0x1.00000 00000000p-3 */
+ /* set up the invariant fields of B, the arg to cause rounding */
+ B.flt = 0.0;
+ B.layout.exp = 124; /* -3 */
+
+ /* set up args so result is always Z = 1.200000000000<g>p+0 */
+ Z.flt = 1.0;
+ Z.layout.sign = 0;
+
+#define TERNOP(op) \
+ arg_count = 3; \
+ __asm__ volatile( \
+ op" %0, %1, %2, %3\n\t" \
+ : "=f"(fD) : "f"(fA) , "f"(fB), "f"(fC));
+#define BINOP(op) \
+ arg_count = 2; \
+ __asm__ volatile( \
+ op" %0, %1, %2\n\t" \
+ : "=f"(fD) : "f"(fA) , "f"(fB));
+#define UNOP(op) \
+ arg_count = 1; \
+ __asm__ volatile( \
+ op" %0, %1\n\t" \
+ : "=f"(fD) : "f"(fA));
+
+ for (mode = TO_NEAREST; mode <= TO_MINUS_INFINITY; mode++)
+ for (s = -1; s < 2; s += 2)
+ for (g = 0; g < 16; g += 1) {
+ double lo, hi, expected;
+ int LSB;
+ int guard = 0;
+ int z_sign = s;
+
+ /*
+ ** one argument will have exponent = 0 as will the result (by
+ ** design) so choose the other argument with exponent -3 to
+ ** force a 3 bit shift for scaling leaving us with 3 guard bits
+ ** and the LSB bit at the bottom of the manitssa.
+ */
+ switch(op) {
+ case FADDS:
+ /* 1p+0 + 1.00000<g>p-3 */
+ B.layout.frac = g;
+
+ fB = s*B.flt;
+ fA = s*1.0;
+
+ /* set up Z to be truncated result */
+
+ /* mask off LSB from resulting guard bits */
+ guard = g & 7;
+
+ Z.layout.frac = 0x100000 | (g >> 3);
+ break;
+ case FSUBS:
+ /* 1.200002p+0 - 1.000000000000<g>p-3 */
+ A.flt = 1.125;
+ /* add enough to avoid scaling of the result */
+ A.layout.frac |= 0x2;
+ fA = s*A.flt;
+
+ B.layout.frac = g;
+ fB = s*B.flt;
+
+ /* set up Z to be truncated result */
+ guard = (0x10-g);
+ Z.layout.frac = guard>>3;
+
+ /* mask off LSB from resulting guard bits */
+ guard &= 7;
+ break;
+ case FMULS:
+ /* 1 + g*2^-23 */
+ A.flt = 1.0;
+ A.layout.frac = g;
+ fA = s*A.flt;
+ fB = 1.125;
+
+ /* set up Z to be truncated result */
+ Z.flt = 1.0;
+ Z.layout.frac = 0x100000;
+ Z.layout.frac |= g + (g>>3);
+ guard = g & 7;
+ break;
+ case FDIVS:
+ /* g >> 3 == LSB, g & 7 == guard bits */
+ guard = g & 7;
+ if ((guard & 1) == 0) {
+ /* special case: guard bit X = 0 */
+ A.flt = denorm_small;
+ A.layout.frac = g;
+ fA = A.flt;
+ fB = s*8.0;
+ Z.flt = 0.0;
+ Z.layout.frac |= (g >> 3);
+ } else {
+ fA = s*divs_guard_cases[g].num;
+ fB = divs_guard_cases[g].den;
+
+ Z.flt = 1.0;
+ Z.layout.frac = divs_guard_cases[g].frac;
+ }
+ break;
+ case FMADDS:
+ case FMSUBS:
+ case FNMADDS:
+ case FNMSUBS:
+ /* 1 + g*2^-23 */
+ A.flt = 1.0;
+ A.layout.frac = g;
+ fA = s*A.flt;
+ fB = 1.125;
+
+ /* 1.000001p-1 */
+ A.flt = 0.5;
+ A.layout.frac = 1;
+ fC = (op == FMADDS || op == FNMADDS ? s : -s)*A.flt;
+
+ /* set up Z to be truncated result */
+ z_sign = (op == FNMADDS || op == FNMSUBS ? -s : s);
+ guard = ((g & 7) + 0x4) & 7;
+ Z.flt = 1.0;
+ Z.layout.frac = 0x500000;
+ Z.layout.frac |= g + (g>>3) + ((g & 7)>> 2 ? 1 : 0);
+ break;
+ default:
+ assert("check_single_arithmetic_op: unexpected op",
+ FALSE);
+ break;
+ }
+
+ /* get LSB for tie breaking */
+ LSB = Z.layout.frac & 1;
+
+ /* set up hi and lo */
+ lo = z_sign*Z.flt;
+ Z.layout.frac += 1;
+ hi = z_sign*Z.flt;
+
+ switch(mode) {
+ case TO_NEAREST:
+ /* look at 3 guard bits to determine expected rounding */
+ switch(guard) {
+ case 0:
+ case 1: case 2: case 3:
+ expected = lo;
+ break;
+ case 4: /* tie: round to even */
+ if (debug) printf("tie: LSB = %d\n", LSB);
+ expected = (LSB == 0 ? lo : hi);
+ break;
+ case 5: case 6: case 7:
+ expected = hi;
+ break;
+ default:
+ assert("check_single_guarded_arithmetic_op: unexpected guard",
+ FALSE);
+ }
+ break;
+ case TO_ZERO:
+ expected = lo;
+ break;
+ case TO_PLUS_INFINITY:
+ if (guard == 0) {
+ /* no rounding */
+ expected = lo;
+ } else {
+ expected = (s == 1 ? hi : lo);
+ }
+ break;
+ case TO_MINUS_INFINITY:
+ if (guard == 0) {
+ /* no rounding */
+ expected = lo;
+ } else {
+ expected = (s == 1 ? lo : hi);
+ }
+ break;
+ }
+
+ set_rounding_mode(mode);
+
+ /*
+ ** do the double precision dual operation just for comparison
+ ** when debugging
+ */
+ switch(op) {
+ case FADDS:
+ BINOP("fadds");
+ Res.dbl = fD;
+ break;
+ case FSUBS:
+ BINOP("fsubs");
+ Res.dbl = fD;
+ break;
+ case FMULS:
+ BINOP("fmuls");
+ Res.dbl = fD;
+ break;
+ case FDIVS:
+ BINOP("fdivs");
+ Res.dbl = fD;
+ break;
+ case FMADDS:
+ TERNOP("fmadds");
+ Res.dbl = fD;
+ break;
+ case FMSUBS:
+ TERNOP("fmsubs");
+ Res.dbl = fD;
+ break;
+ case FNMADDS:
+ TERNOP("fnmadds");
+ Res.dbl = fD;
+ break;
+ case FNMSUBS:
+ TERNOP("fnmsubs");
+ Res.dbl = fD;
+ break;
+ default:
+ assert("check_single_guarded_arithmetic_op: unexpected op",
+ FALSE);
+ break;
+ }
+#undef UNOP
+#undef BINOP
+#undef TERNOP
+
+ Exp.dbl = expected;
+
+ if ((Res.layout.sign != Exp.layout.sign) ||
+ (Res.layout.exp != Exp.layout.exp) ||
+ (Res.layout.frac_lo != Exp.layout.frac_lo) ||
+ (Res.layout.frac_hi != Exp.layout.frac_hi)) {
+ result = "FAILED";
+ status = 1;
+ } else {
+ result = "PASSED";
+ status = 0;
+ }
+
+ printf("%s:%s:%s(%-13f",
+ round_mode_name[mode], result, flt_op_names[op], fA);
+ if (arg_count > 1) printf(", %-13a", fB);
+ if (arg_count > 2) printf(", %-13a", fC);
+ printf(") = %-13a", Res.dbl);
+ if (status) printf("\n\texpected %a", Exp.dbl);
+ putchar('\n');
+
+ if (debug) {
+ print_double("hi", hi);
+ print_double("lo", lo);
+ print_double("expected", expected);
+ print_double("got", Res.dbl);
+ }
+ }
+
+ return status;
+}
+
+int check_double_guarded_arithmetic_op(flt_op_t op)
+{
+ typedef struct {
+ int num, den, hi, lo;
+ } fdiv_t;
+ typedef struct {
+ double arg;
+ int exp, hi, lo;
+ } fsqrt_t;
+
+ char *result;
+ int status = 0;
+ dbl_overlay A, B, Z;
+ dbl_overlay Res, Exp;
+ double fA, fB, fC, fD;
+ round_mode_t mode;
+ int g, s;
+ int arg_count;
+ fdiv_t div_guard_cases[16] = {
+ { 62, 62, 0x00000, 0x00000000 }, /* 0 */
+ { 64, 62, 0x08421, 0x08421084 }, /* 1 */
+ { 66, 62, 0x10842, 0x10842108 }, /* 2 */
+ { 100, 62, 0x9ce73, 0x9ce739ce }, /* 3 */
+ { 100, 62, 0x9ce73, 0x9ce739ce }, /* X */
+ { 102, 62, 0xa5294, 0xa5294a52 }, /* 5 */
+ { 106, 62, 0xb5ad6, 0xb5ad6b5a }, /* 6 */
+ { 108, 62, 0xbdef7, 0xbdef7bde }, /* 7 */
+ { 108, 108, 0x00000, 0x00000000 }, /* 8 */
+ { 112, 62, 0xce739, 0xce739ce7 }, /* 9 */
+ { 114, 62, 0xd6b5a, 0xd6b5ad6b }, /* A */
+ { 116, 62, 0xdef7b, 0xdef7bdef }, /* B */
+ { 84, 62, 0x5ad6b, 0x5ad6b5ad }, /* X */
+ { 118, 62, 0xe739c, 0xe739ce73 }, /* D */
+ { 90, 62, 0x739ce, 0x739ce739 }, /* E */
+ { 92, 62, 0x7bdef, 0x7bdef7bd } /* F */
+ };
+
+
+ fsqrt_t sqrt_guard_cases[16] = {
+ { 0x1.08800p0, 0, 0x04371, 0xd9ab72fb}, /* :0 B8.8440 */
+ { 0x.D2200p0, -1, 0xcfdca, 0xf353049e}, /* :1 A4.6910 */
+ { 0x1.A8220p0, 0, 0x49830, 0x2b49cd6d}, /* :2 E9.D411 */
+ { 0x1.05A20p0, 0, 0x02cd1, 0x3b44f3bf}, /* :3 B7.82D1 */
+ { 0x.CA820p0, -1, 0xc7607, 0x3cec0937}, /* :4 A1.6541 */
+ { 0x1.DCA20p0, 0, 0x5d4f8, 0xd4e4c2b2}, /* :5 F7.EE51 */
+ { 0x1.02C80p0, 0, 0x01630, 0x9cde7483}, /* :6 B6.8164 */
+ { 0x.DC800p0, -1, 0xdb2cf, 0xe686fe7c}, /* :7 A8.6E40 */
+ { 0x.CF920p0, -1, 0xcd089, 0xb6860626}, /* :8 A3.67C9 */
+ { 0x1.1D020p0, 0, 0x0e1d6, 0x2e78ed9d}, /* :9 BF.8E81 */
+ { 0x.E1C80p0, -1, 0xe0d52, 0x6020fb6b}, /* :A AA.70E4 */
+ { 0x.C8000p0, -1, 0xc48c6, 0x001f0abf}, /* :B A0.6400 */
+ { 0x1.48520p0, 0, 0x21e9e, 0xd813e2e2}, /* :C CD.A429 */
+ { 0x.F4C20p0, -1, 0xf4a1b, 0x09bbf0b0}, /* :D B1.7A61 */
+ { 0x.CD080p0, -1, 0xca348, 0x79b907ae}, /* :E A2.6684 */
+ { 0x1.76B20p0, 0, 0x35b67, 0x81aed827} /* :F DB.BB59 */
+ };
+
+ /* 0x1.00000 00000000p-3 */
+ /* set up the invariant fields of B, the arg to cause rounding */
+ B.dbl = 0.0;
+ B.layout.exp = 1020;
+
+ /* set up args so result is always Z = 1.200000000000<g>p+0 */
+ Z.dbl = 1.0;
+ Z.layout.sign = 0;
+
+#define TERNOP(op) \
+ arg_count = 3; \
+ __asm__ volatile( \
+ op" %0, %1, %2, %3\n\t" \
+ : "=f"(fD) : "f"(fA) , "f"(fB), "f"(fC));
+#define BINOP(op) \
+ arg_count = 2; \
+ __asm__ volatile( \
+ op" %0, %1, %2\n\t" \
+ : "=f"(fD) : "f"(fA) , "f"(fB));
+#define UNOP(op) \
+ arg_count = 1; \
+ __asm__ volatile( \
+ op" %0, %1\n\t" \
+ : "=f"(fD) : "f"(fA));
+
+ for (mode = TO_NEAREST; mode <= TO_MINUS_INFINITY; mode++)
+ for (s = (op != FSQRT ? -1 : 1); s < 2; s += 2)
+ for (g = 0; g < 16; g += 1) {
+ double lo, hi, expected;
+ int LSB;
+ int guard;
+ int z_sign = s;
+
+ /*
+ ** one argument will have exponent = 0 as will the result (by
+ ** design) so choose the other argument with exponent -3 to
+ ** force a 3 bit shift for scaling leaving us with 3 guard bits
+ ** and the LSB bit at the bottom of the manitssa.
+ */
+ switch(op) {
+ case FADD:
+ /* 1p+0 + 1.000000000000<g>p-3 */
+ B.layout.frac_lo = g;
+
+ fB = s*B.dbl;
+ fA = s*1.0;
+
+ /* set up Z to be truncated result */
+
+ /* mask off LSB from resulting guard bits */
+ guard = g & 7;
+
+ Z.layout.frac_hi = 0x20000;
+ Z.layout.frac_lo = g >> 3;
+
+ break;
+ case FSUB:
+ /* 1.2000000000002p+0 - 1.000000000000<g>p-3 */
+ A.dbl = 1.125;
+ /* add enough to avoid scaling of the result */
+ A.layout.frac_lo = 0x2;
+ fA = s*A.dbl;
+
+ B.layout.frac_lo = g;
+ fB = s*B.dbl;
+
+ /* set up Z to be truncated result */
+ guard = (0x10-g);
+ Z.layout.frac_hi = 0x0;
+ Z.layout.frac_lo = guard>>3;
+
+ /* mask off LSB from resulting guard bits */
+ guard &= 7;
+ break;
+ case FMUL:
+ /* 1 + g*2^-52 */
+ A.dbl = 1.0;
+ A.layout.frac_lo = g;
+ fA = s*A.dbl;
+ fB = 1.125;
+
+ /* set up Z to be truncated result */
+ Z.dbl = 1.0;
+ Z.layout.frac_hi = 0x20000;
+ Z.layout.frac_lo = g + (g>>3);
+ guard = g & 7;
+ break;
+ case FMADD:
+ case FMSUB:
+ case FNMADD:
+ case FNMSUB:
+ /* 1 + g*2^-52 */
+ A.dbl = 1.0;
+ A.layout.frac_lo = g;
+ fA = s*A.dbl;
+ fB = 1.125;
+
+ /* 1.0000000000001p-1 */
+ A.dbl = 0.5;
+ A.layout.frac_lo = 1;
+ fC = (op == FMADD || op == FNMADD ? s : -s)*A.dbl;
+
+ /* set up Z to be truncated result */
+ z_sign = (op == FNMADD || op == FNMSUB ? -s : s);
+ guard = ((g & 7) + 0x4) & 7;
+ Z.dbl = 1.0;
+ Z.layout.frac_hi = 0xa0000;
+ Z.layout.frac_lo = g + (g>>3) + ((g & 7)>> 2 ? 1 : 0);
+ break;
+ case FDIV:
+ /* g >> 3 == LSB, g & 7 == guard bits */
+ guard = g & 7;
+ if (guard == 0x4) {
+ /* special case guard bits == 4, inexact tie */
+ fB = s*2.0;
+ Z.dbl = 0.0;
+ if (g >> 3) {
+ fA = dbl_denorm_small + 2*dbl_denorm_small;
+ Z.layout.frac_lo = 0x1;
+ } else {
+ fA = dbl_denorm_small;
+ }
+ } else {
+ fA = s*div_guard_cases[g].num;
+ fB = div_guard_cases[g].den;
+
+ printf("%d/%d\n",
+ s*div_guard_cases[g].num,
+ div_guard_cases[g].den);
+ Z.dbl = 1.0;
+ Z.layout.frac_hi = div_guard_cases[g].hi;
+ Z.layout.frac_lo = div_guard_cases[g].lo;
+ }
+ break;
+ case FSQRT:
+ fA = s*sqrt_guard_cases[g].arg;
+ Z.dbl = 1.0;
+ Z.layout.exp = sqrt_guard_cases[g].exp + 1023;
+ Z.layout.frac_hi = sqrt_guard_cases[g].hi;
+ Z.layout.frac_lo = sqrt_guard_cases[g].lo;
+ guard = g >> 1;
+ if (g & 1) guard |= 1;
+ /* don't have test cases for when X bit = 0 */
+ if (guard == 0 || guard == 4) continue;
+ break;
+ default:
+ assert("check_double_guarded_arithmetic_op: unexpected op",
+ FALSE);
+ break;
+ }
+
+ /* get LSB for tie breaking */
+ LSB = Z.layout.frac_lo & 1;
+
+ /* set up hi and lo */
+ lo = z_sign*Z.dbl;
+ Z.layout.frac_lo += 1;
+ hi = z_sign*Z.dbl;
+
+ switch(mode) {
+ case TO_NEAREST:
+ /* look at 3 guard bits to determine expected rounding */
+ switch(guard) {
+ case 0:
+ case 1: case 2: case 3:
+ expected = lo;
+ break;
+ case 4: /* tie: round to even */
+ if (debug) printf("tie: LSB = %d\n", LSB);
+ expected = (LSB == 0 ? lo : hi);
+ break;
+ case 5: case 6: case 7:
+ expected = hi;
+ break;
+ default:
+ assert("check_double_guarded_arithmetic_op: unexpected guard",
+ FALSE);
+ }
+ break;
+ case TO_ZERO:
+ expected = lo;
+ break;
+ case TO_PLUS_INFINITY:
+ if (guard == 0) {
+ /* no rounding */
+ expected = lo;
+ } else {
+ expected = (s == 1 ? hi : lo);
+ }
+ break;
+ case TO_MINUS_INFINITY:
+ if (guard == 0) {
+ /* no rounding */
+ expected = lo;
+ } else {
+ expected = (s == 1 ? lo : hi);
+ }
+ break;
+ }
+
+ set_rounding_mode(mode);
+
+ /*
+ ** do the double precision dual operation just for comparison
+ ** when debugging
+ */
+ switch(op) {
+ case FADD:
+ BINOP("fadd");
+ Res.dbl = fD;
+ break;
+ case FSUB:
+ BINOP("fsub");
+ Res.dbl = fD;
+ break;
+ case FMUL:
+ BINOP("fmul");
+ Res.dbl = fD;
+ break;
+ case FMADD:
+ TERNOP("fmadd");
+ Res.dbl = fD;
+ break;
+ case FMSUB:
+ TERNOP("fmsub");
+ Res.dbl = fD;
+ break;
+ case FNMADD:
+ TERNOP("fnmadd");
+ Res.dbl = fD;
+ break;
+ case FNMSUB:
+ TERNOP("fnmsub");
+ Res.dbl = fD;
+ break;
+ case FDIV:
+ BINOP("fdiv");
+ Res.dbl = fD;
+ break;
+ case FSQRT:
+ UNOP("fsqrt");
+ Res.dbl = fD;
+ break;
+ default:
+ assert("check_double_guarded_arithmetic_op: unexpected op",
+ FALSE);
+ break;
+ }
+#undef UNOP
+#undef BINOP
+#undef TERNOP
+
+ Exp.dbl = expected;
+
+ if ((Res.layout.sign != Exp.layout.sign) ||
+ (Res.layout.exp != Exp.layout.exp) ||
+ (Res.layout.frac_lo != Exp.layout.frac_lo) ||
+ (Res.layout.frac_hi != Exp.layout.frac_hi)) {
+ result = "FAILED";
+ status = 1;
+ } else {
+ result = "PASSED";
+ status = 0;
+ }
+
+ printf("%s:%s:%s(%-13a",
+ round_mode_name[mode], result, flt_op_names[op], fA);
+ if (arg_count > 1) printf(", %-13a", fB);
+ if (arg_count > 2) printf(", %-13a", fC);
+ printf(") = %-13a", Res.dbl);
+ if (status) printf("\n\texpected %a", Exp.dbl);
+ putchar('\n');
+
+ if (debug) {
+ print_double("hi", hi);
+ print_double("lo", lo);
+ print_double("expected", expected);
+ print_double("got", Res.dbl);
+ }
+ }
+
+ return status;
+}
+
+int test_float_arithmetic_ops()
+{
+ int status = 0;
+ flt_op_t op;
+
+ /*
+ ** choose FP operands whose result should be rounded to either
+ ** lo or hi.
+ */
+
+ printf("-------------------------- %s --------------------------\n",
+ "test rounding of float operators without guard bits");
+ for (op = FADDS; op <= FDIVS; op++) {
+ status |= check_single_arithmetic_op(op);
+ }
+
+ printf("-------------------------- %s --------------------------\n",
+ "test rounding of float operators with guard bits");
+ for (op = FADDS; op <= FNMSUBS; op++) {
+ status |= check_single_guarded_arithmetic_op(op);
+ }
+
+ printf("-------------------------- %s --------------------------\n",
+ "test rounding of double operators with guard bits");
+ for (op = FADD; op <= FSQRT; op++) {
+ status |= check_double_guarded_arithmetic_op(op);
+ }
+ return status;
+}
+
+
+int
+main()
+{
+ int status = 0;
+
+ init();
+
+ status |= test_dbl_to_float_convert("test denormalized convert", &denorm_small);
+ status |= test_dbl_to_float_convert("test normalized convert", &norm_small);
+ status |= test_int_to_float_convert("test (float)int convert");
+ status |= test_int_to_float_convert("test (float)int convert");
+
+#ifdef __powerpc64__
+ status |= test_long_to_double_convert("test (double)long convert");
+#endif
+ status |= test_float_arithmetic_ops();
+ return status;
+}
--- /dev/null
+-------------------------- test denormalized convert --------------------------
+near:PASSED:(double)(0x1p-148 ) = 0x1.cp-149
+near:PASSED:(double)(0x1p-149 ) = 0x1.4p-149
+zero:PASSED:(double)(0x1p-149 ) = 0x1.cp-149
+zero:PASSED:(double)(0x1p-149 ) = 0x1.4p-149
++inf:PASSED:(double)(0x1p-148 ) = 0x1.cp-149
++inf:PASSED:(double)(0x1p-148 ) = 0x1.4p-149
+-inf:PASSED:(double)(0x1p-149 ) = 0x1.cp-149
+-inf:PASSED:(double)(0x1p-149 ) = 0x1.4p-149
+-------------------------- test normalized convert --------------------------
+near:PASSED:(double)(0x1.000004p-126 ) = 0x1.0000038p-126
+near:PASSED:(double)(0x1.000002p-126 ) = 0x1.0000028p-126
+zero:PASSED:(double)(0x1.000002p-126 ) = 0x1.0000038p-126
+zero:PASSED:(double)(0x1.000002p-126 ) = 0x1.0000028p-126
++inf:PASSED:(double)(0x1.000004p-126 ) = 0x1.0000038p-126
++inf:PASSED:(double)(0x1.000004p-126 ) = 0x1.0000028p-126
+-inf:PASSED:(double)(0x1.000002p-126 ) = 0x1.0000038p-126
+-inf:PASSED:(double)(0x1.000002p-126 ) = 0x1.0000028p-126
+-------------------------- test (float)int convert --------------------------
+near:PASSED:(float)( int) 67047421 = 67047420.0
+near:PASSED:(float)(long) 67047421 = 67047420.0
+near:PASSED:(float)( int) 67047423 = 67047424.0
+near:PASSED:(float)(long) 67047423 = 67047424.0
+zero:PASSED:(float)( int) 67047421 = 67047420.0
+zero:PASSED:(float)(long) 67047421 = 67047420.0
+zero:PASSED:(float)( int) 67047423 = 67047420.0
+zero:PASSED:(float)(long) 67047423 = 67047420.0
++inf:PASSED:(float)( int) 67047421 = 67047424.0
++inf:PASSED:(float)(long) 67047421 = 67047424.0
++inf:PASSED:(float)( int) 67047423 = 67047424.0
++inf:PASSED:(float)(long) 67047423 = 67047424.0
+-inf:PASSED:(float)( int) 67047421 = 67047420.0
+-inf:PASSED:(float)(long) 67047421 = 67047420.0
+-inf:PASSED:(float)( int) 67047423 = 67047420.0
+-inf:PASSED:(float)(long) 67047423 = 67047420.0
+near:PASSED:(float)( int)-67047421 = -67047420.0
+near:PASSED:(float)(long)-67047421 = -67047420.0
+near:PASSED:(float)( int)-67047423 = -67047424.0
+near:PASSED:(float)(long)-67047423 = -67047424.0
+zero:PASSED:(float)( int)-67047421 = -67047420.0
+zero:PASSED:(float)(long)-67047421 = -67047420.0
+zero:PASSED:(float)( int)-67047423 = -67047420.0
+zero:PASSED:(float)(long)-67047423 = -67047420.0
++inf:PASSED:(float)( int)-67047421 = -67047420.0
++inf:PASSED:(float)(long)-67047421 = -67047420.0
++inf:PASSED:(float)( int)-67047423 = -67047420.0
++inf:PASSED:(float)(long)-67047423 = -67047420.0
+-inf:PASSED:(float)( int)-67047421 = -67047424.0
+-inf:PASSED:(float)(long)-67047421 = -67047424.0
+-inf:PASSED:(float)( int)-67047423 = -67047424.0
+-inf:PASSED:(float)(long)-67047423 = -67047424.0
+-------------------------- test (float)int convert --------------------------
+near:PASSED:(float)( int) 67047421 = 67047420.0
+near:PASSED:(float)(long) 67047421 = 67047420.0
+near:PASSED:(float)( int) 67047423 = 67047424.0
+near:PASSED:(float)(long) 67047423 = 67047424.0
+zero:PASSED:(float)( int) 67047421 = 67047420.0
+zero:PASSED:(float)(long) 67047421 = 67047420.0
+zero:PASSED:(float)( int) 67047423 = 67047420.0
+zero:PASSED:(float)(long) 67047423 = 67047420.0
++inf:PASSED:(float)( int) 67047421 = 67047424.0
++inf:PASSED:(float)(long) 67047421 = 67047424.0
++inf:PASSED:(float)( int) 67047423 = 67047424.0
++inf:PASSED:(float)(long) 67047423 = 67047424.0
+-inf:PASSED:(float)( int) 67047421 = 67047420.0
+-inf:PASSED:(float)(long) 67047421 = 67047420.0
+-inf:PASSED:(float)( int) 67047423 = 67047420.0
+-inf:PASSED:(float)(long) 67047423 = 67047420.0
+near:PASSED:(float)( int)-67047421 = -67047420.0
+near:PASSED:(float)(long)-67047421 = -67047420.0
+near:PASSED:(float)( int)-67047423 = -67047424.0
+near:PASSED:(float)(long)-67047423 = -67047424.0
+zero:PASSED:(float)( int)-67047421 = -67047420.0
+zero:PASSED:(float)(long)-67047421 = -67047420.0
+zero:PASSED:(float)( int)-67047423 = -67047420.0
+zero:PASSED:(float)(long)-67047423 = -67047420.0
++inf:PASSED:(float)( int)-67047421 = -67047420.0
++inf:PASSED:(float)(long)-67047421 = -67047420.0
++inf:PASSED:(float)( int)-67047423 = -67047420.0
++inf:PASSED:(float)(long)-67047423 = -67047420.0
+-inf:PASSED:(float)( int)-67047421 = -67047424.0
+-inf:PASSED:(float)(long)-67047421 = -67047424.0
+-inf:PASSED:(float)( int)-67047423 = -67047424.0
+-inf:PASSED:(float)(long)-67047423 = -67047424.0
+-------------------------- test (double)long convert --------------------------
+near:PASSED:(double)( 36012304344547325) = 36012304344547324.0
+near:PASSED:(double)( 36012304344547327) = 36012304344547328.0
+zero:PASSED:(double)( 36012304344547325) = 36012304344547324.0
+zero:PASSED:(double)( 36012304344547327) = 36012304344547324.0
++inf:PASSED:(double)( 36012304344547325) = 36012304344547328.0
++inf:PASSED:(double)( 36012304344547327) = 36012304344547328.0
+-inf:PASSED:(double)( 36012304344547325) = 36012304344547324.0
+-inf:PASSED:(double)( 36012304344547327) = 36012304344547324.0
+near:PASSED:(double)(-36012304344547325) = -36012304344547324.0
+near:PASSED:(double)(-36012304344547327) = -36012304344547328.0
+zero:PASSED:(double)(-36012304344547325) = -36012304344547324.0
+zero:PASSED:(double)(-36012304344547327) = -36012304344547324.0
++inf:PASSED:(double)(-36012304344547325) = -36012304344547324.0
++inf:PASSED:(double)(-36012304344547327) = -36012304344547324.0
+-inf:PASSED:(double)(-36012304344547325) = -36012304344547328.0
+-inf:PASSED:(double)(-36012304344547327) = -36012304344547328.0
+-------------------------- test rounding of float operators without guard bits --------------------------
+near:PASSED:fadds(-0x1p-149 , -0x1p-151 ) = -0x1p-149
+near:PASSED:fadds(-0x1p-149 , -0x1.8p-150 ) = -0x1p-148
+near:PASSED:fadds(0x1p-149 , 0x1p-151 ) = 0x1p-149
+near:PASSED:fadds(0x1p-149 , 0x1.8p-150 ) = 0x1p-148
+zero:PASSED:fadds(-0x1p-149 , -0x1p-151 ) = -0x1p-149
+zero:PASSED:fadds(-0x1p-149 , -0x1.8p-150 ) = -0x1p-149
+zero:PASSED:fadds(0x1p-149 , 0x1p-151 ) = 0x1p-149
+zero:PASSED:fadds(0x1p-149 , 0x1.8p-150 ) = 0x1p-149
++inf:PASSED:fadds(-0x1p-149 , -0x1p-151 ) = -0x1p-149
++inf:PASSED:fadds(-0x1p-149 , -0x1.8p-150 ) = -0x1p-149
++inf:PASSED:fadds(0x1p-149 , 0x1p-151 ) = 0x1p-148
++inf:PASSED:fadds(0x1p-149 , 0x1.8p-150 ) = 0x1p-148
+-inf:PASSED:fadds(-0x1p-149 , -0x1p-151 ) = -0x1p-148
+-inf:PASSED:fadds(-0x1p-149 , -0x1.8p-150 ) = -0x1p-148
+-inf:PASSED:fadds(0x1p-149 , 0x1p-151 ) = 0x1p-149
+-inf:PASSED:fadds(0x1p-149 , 0x1.8p-150 ) = 0x1p-149
+near:PASSED:fsubs(-0x1p-148 , -0x1.8p-150 ) = -0x1p-149
+near:PASSED:fsubs(-0x1p-148 , -0x1p-151 ) = -0x1p-148
+near:PASSED:fsubs(0x1p-148 , 0x1.8p-150 ) = 0x1p-149
+near:PASSED:fsubs(0x1p-148 , 0x1p-151 ) = 0x1p-148
+zero:PASSED:fsubs(-0x1p-148 , -0x1.8p-150 ) = -0x1p-149
+zero:PASSED:fsubs(-0x1p-148 , -0x1p-151 ) = -0x1p-149
+zero:PASSED:fsubs(0x1p-148 , 0x1.8p-150 ) = 0x1p-149
+zero:PASSED:fsubs(0x1p-148 , 0x1p-151 ) = 0x1p-149
++inf:PASSED:fsubs(-0x1p-148 , -0x1.8p-150 ) = -0x1p-149
++inf:PASSED:fsubs(-0x1p-148 , -0x1p-151 ) = -0x1p-149
++inf:PASSED:fsubs(0x1p-148 , 0x1.8p-150 ) = 0x1p-148
++inf:PASSED:fsubs(0x1p-148 , 0x1p-151 ) = 0x1p-148
+-inf:PASSED:fsubs(-0x1p-148 , -0x1.8p-150 ) = -0x1p-148
+-inf:PASSED:fsubs(-0x1p-148 , -0x1p-151 ) = -0x1p-148
+-inf:PASSED:fsubs(0x1p-148 , 0x1.8p-150 ) = 0x1p-149
+-inf:PASSED:fsubs(0x1p-148 , 0x1p-151 ) = 0x1p-149
+near:PASSED:fmuls(0x1p-1 , -0x1.4p-148 ) = -0x1p-149
+near:PASSED:fmuls(0x1p-1 , -0x1.cp-148 ) = -0x1p-148
+near:PASSED:fmuls(0x1p-1 , 0x1.4p-148 ) = 0x1p-149
+near:PASSED:fmuls(0x1p-1 , 0x1.cp-148 ) = 0x1p-148
+zero:PASSED:fmuls(0x1p-1 , -0x1.4p-148 ) = -0x1p-149
+zero:PASSED:fmuls(0x1p-1 , -0x1.cp-148 ) = -0x1p-149
+zero:PASSED:fmuls(0x1p-1 , 0x1.4p-148 ) = 0x1p-149
+zero:PASSED:fmuls(0x1p-1 , 0x1.cp-148 ) = 0x1p-149
++inf:PASSED:fmuls(0x1p-1 , -0x1.4p-148 ) = -0x1p-149
++inf:PASSED:fmuls(0x1p-1 , -0x1.cp-148 ) = -0x1p-149
++inf:PASSED:fmuls(0x1p-1 , 0x1.4p-148 ) = 0x1p-148
++inf:PASSED:fmuls(0x1p-1 , 0x1.cp-148 ) = 0x1p-148
+-inf:PASSED:fmuls(0x1p-1 , -0x1.4p-148 ) = -0x1p-148
+-inf:PASSED:fmuls(0x1p-1 , -0x1.cp-148 ) = -0x1p-148
+-inf:PASSED:fmuls(0x1p-1 , 0x1.4p-148 ) = 0x1p-149
+-inf:PASSED:fmuls(0x1p-1 , 0x1.cp-148 ) = 0x1p-149
+near:PASSED:fdivs(-0x1.4p-148 , 0x1p+1 ) = -0x1p-149
+near:PASSED:fdivs(-0x1.cp-148 , 0x1p+1 ) = -0x1p-148
+near:PASSED:fdivs(0x1.4p-148 , 0x1p+1 ) = 0x1p-149
+near:PASSED:fdivs(0x1.cp-148 , 0x1p+1 ) = 0x1p-148
+zero:PASSED:fdivs(-0x1.4p-148 , 0x1p+1 ) = -0x1p-149
+zero:PASSED:fdivs(-0x1.cp-148 , 0x1p+1 ) = -0x1p-149
+zero:PASSED:fdivs(0x1.4p-148 , 0x1p+1 ) = 0x1p-149
+zero:PASSED:fdivs(0x1.cp-148 , 0x1p+1 ) = 0x1p-149
++inf:PASSED:fdivs(-0x1.4p-148 , 0x1p+1 ) = -0x1p-149
++inf:PASSED:fdivs(-0x1.cp-148 , 0x1p+1 ) = -0x1p-149
++inf:PASSED:fdivs(0x1.4p-148 , 0x1p+1 ) = 0x1p-148
++inf:PASSED:fdivs(0x1.cp-148 , 0x1p+1 ) = 0x1p-148
+-inf:PASSED:fdivs(-0x1.4p-148 , 0x1p+1 ) = -0x1p-148
+-inf:PASSED:fdivs(-0x1.cp-148 , 0x1p+1 ) = -0x1p-148
+-inf:PASSED:fdivs(0x1.4p-148 , 0x1p+1 ) = 0x1p-149
+-inf:PASSED:fdivs(0x1.cp-148 , 0x1p+1 ) = 0x1p-149
+-------------------------- test rounding of float operators with guard bits --------------------------
+near:PASSED:fadds(-1.000000 , -0x1p-3 ) = -0x1.2p+0
+near:PASSED:fadds(-1.000000 , -0x1.000002p-3) = -0x1.2p+0
+near:PASSED:fadds(-1.000000 , -0x1.000004p-3) = -0x1.2p+0
+near:PASSED:fadds(-1.000000 , -0x1.000006p-3) = -0x1.2p+0
+near:PASSED:fadds(-1.000000 , -0x1.000008p-3) = -0x1.2p+0
+near:PASSED:fadds(-1.000000 , -0x1.00000ap-3) = -0x1.200002p+0
+near:PASSED:fadds(-1.000000 , -0x1.00000cp-3) = -0x1.200002p+0
+near:PASSED:fadds(-1.000000 , -0x1.00000ep-3) = -0x1.200002p+0
+near:PASSED:fadds(-1.000000 , -0x1.00001p-3) = -0x1.200002p+0
+near:PASSED:fadds(-1.000000 , -0x1.000012p-3) = -0x1.200002p+0
+near:PASSED:fadds(-1.000000 , -0x1.000014p-3) = -0x1.200002p+0
+near:PASSED:fadds(-1.000000 , -0x1.000016p-3) = -0x1.200002p+0
+near:PASSED:fadds(-1.000000 , -0x1.000018p-3) = -0x1.200004p+0
+near:PASSED:fadds(-1.000000 , -0x1.00001ap-3) = -0x1.200004p+0
+near:PASSED:fadds(-1.000000 , -0x1.00001cp-3) = -0x1.200004p+0
+near:PASSED:fadds(-1.000000 , -0x1.00001ep-3) = -0x1.200004p+0
+near:PASSED:fadds(1.000000 , 0x1p-3 ) = 0x1.2p+0
+near:PASSED:fadds(1.000000 , 0x1.000002p-3) = 0x1.2p+0
+near:PASSED:fadds(1.000000 , 0x1.000004p-3) = 0x1.2p+0
+near:PASSED:fadds(1.000000 , 0x1.000006p-3) = 0x1.2p+0
+near:PASSED:fadds(1.000000 , 0x1.000008p-3) = 0x1.2p+0
+near:PASSED:fadds(1.000000 , 0x1.00000ap-3) = 0x1.200002p+0
+near:PASSED:fadds(1.000000 , 0x1.00000cp-3) = 0x1.200002p+0
+near:PASSED:fadds(1.000000 , 0x1.00000ep-3) = 0x1.200002p+0
+near:PASSED:fadds(1.000000 , 0x1.00001p-3 ) = 0x1.200002p+0
+near:PASSED:fadds(1.000000 , 0x1.000012p-3) = 0x1.200002p+0
+near:PASSED:fadds(1.000000 , 0x1.000014p-3) = 0x1.200002p+0
+near:PASSED:fadds(1.000000 , 0x1.000016p-3) = 0x1.200002p+0
+near:PASSED:fadds(1.000000 , 0x1.000018p-3) = 0x1.200004p+0
+near:PASSED:fadds(1.000000 , 0x1.00001ap-3) = 0x1.200004p+0
+near:PASSED:fadds(1.000000 , 0x1.00001cp-3) = 0x1.200004p+0
+near:PASSED:fadds(1.000000 , 0x1.00001ep-3) = 0x1.200004p+0
+zero:PASSED:fadds(-1.000000 , -0x1p-3 ) = -0x1.2p+0
+zero:PASSED:fadds(-1.000000 , -0x1.000002p-3) = -0x1.2p+0
+zero:PASSED:fadds(-1.000000 , -0x1.000004p-3) = -0x1.2p+0
+zero:PASSED:fadds(-1.000000 , -0x1.000006p-3) = -0x1.2p+0
+zero:PASSED:fadds(-1.000000 , -0x1.000008p-3) = -0x1.2p+0
+zero:PASSED:fadds(-1.000000 , -0x1.00000ap-3) = -0x1.2p+0
+zero:PASSED:fadds(-1.000000 , -0x1.00000cp-3) = -0x1.2p+0
+zero:PASSED:fadds(-1.000000 , -0x1.00000ep-3) = -0x1.2p+0
+zero:PASSED:fadds(-1.000000 , -0x1.00001p-3) = -0x1.200002p+0
+zero:PASSED:fadds(-1.000000 , -0x1.000012p-3) = -0x1.200002p+0
+zero:PASSED:fadds(-1.000000 , -0x1.000014p-3) = -0x1.200002p+0
+zero:PASSED:fadds(-1.000000 , -0x1.000016p-3) = -0x1.200002p+0
+zero:PASSED:fadds(-1.000000 , -0x1.000018p-3) = -0x1.200002p+0
+zero:PASSED:fadds(-1.000000 , -0x1.00001ap-3) = -0x1.200002p+0
+zero:PASSED:fadds(-1.000000 , -0x1.00001cp-3) = -0x1.200002p+0
+zero:PASSED:fadds(-1.000000 , -0x1.00001ep-3) = -0x1.200002p+0
+zero:PASSED:fadds(1.000000 , 0x1p-3 ) = 0x1.2p+0
+zero:PASSED:fadds(1.000000 , 0x1.000002p-3) = 0x1.2p+0
+zero:PASSED:fadds(1.000000 , 0x1.000004p-3) = 0x1.2p+0
+zero:PASSED:fadds(1.000000 , 0x1.000006p-3) = 0x1.2p+0
+zero:PASSED:fadds(1.000000 , 0x1.000008p-3) = 0x1.2p+0
+zero:PASSED:fadds(1.000000 , 0x1.00000ap-3) = 0x1.2p+0
+zero:PASSED:fadds(1.000000 , 0x1.00000cp-3) = 0x1.2p+0
+zero:PASSED:fadds(1.000000 , 0x1.00000ep-3) = 0x1.2p+0
+zero:PASSED:fadds(1.000000 , 0x1.00001p-3 ) = 0x1.200002p+0
+zero:PASSED:fadds(1.000000 , 0x1.000012p-3) = 0x1.200002p+0
+zero:PASSED:fadds(1.000000 , 0x1.000014p-3) = 0x1.200002p+0
+zero:PASSED:fadds(1.000000 , 0x1.000016p-3) = 0x1.200002p+0
+zero:PASSED:fadds(1.000000 , 0x1.000018p-3) = 0x1.200002p+0
+zero:PASSED:fadds(1.000000 , 0x1.00001ap-3) = 0x1.200002p+0
+zero:PASSED:fadds(1.000000 , 0x1.00001cp-3) = 0x1.200002p+0
+zero:PASSED:fadds(1.000000 , 0x1.00001ep-3) = 0x1.200002p+0
++inf:PASSED:fadds(-1.000000 , -0x1p-3 ) = -0x1.2p+0
++inf:PASSED:fadds(-1.000000 , -0x1.000002p-3) = -0x1.2p+0
++inf:PASSED:fadds(-1.000000 , -0x1.000004p-3) = -0x1.2p+0
++inf:PASSED:fadds(-1.000000 , -0x1.000006p-3) = -0x1.2p+0
++inf:PASSED:fadds(-1.000000 , -0x1.000008p-3) = -0x1.2p+0
++inf:PASSED:fadds(-1.000000 , -0x1.00000ap-3) = -0x1.2p+0
++inf:PASSED:fadds(-1.000000 , -0x1.00000cp-3) = -0x1.2p+0
++inf:PASSED:fadds(-1.000000 , -0x1.00000ep-3) = -0x1.2p+0
++inf:PASSED:fadds(-1.000000 , -0x1.00001p-3) = -0x1.200002p+0
++inf:PASSED:fadds(-1.000000 , -0x1.000012p-3) = -0x1.200002p+0
++inf:PASSED:fadds(-1.000000 , -0x1.000014p-3) = -0x1.200002p+0
++inf:PASSED:fadds(-1.000000 , -0x1.000016p-3) = -0x1.200002p+0
++inf:PASSED:fadds(-1.000000 , -0x1.000018p-3) = -0x1.200002p+0
++inf:PASSED:fadds(-1.000000 , -0x1.00001ap-3) = -0x1.200002p+0
++inf:PASSED:fadds(-1.000000 , -0x1.00001cp-3) = -0x1.200002p+0
++inf:PASSED:fadds(-1.000000 , -0x1.00001ep-3) = -0x1.200002p+0
++inf:PASSED:fadds(1.000000 , 0x1p-3 ) = 0x1.2p+0
++inf:PASSED:fadds(1.000000 , 0x1.000002p-3) = 0x1.200002p+0
++inf:PASSED:fadds(1.000000 , 0x1.000004p-3) = 0x1.200002p+0
++inf:PASSED:fadds(1.000000 , 0x1.000006p-3) = 0x1.200002p+0
++inf:PASSED:fadds(1.000000 , 0x1.000008p-3) = 0x1.200002p+0
++inf:PASSED:fadds(1.000000 , 0x1.00000ap-3) = 0x1.200002p+0
++inf:PASSED:fadds(1.000000 , 0x1.00000cp-3) = 0x1.200002p+0
++inf:PASSED:fadds(1.000000 , 0x1.00000ep-3) = 0x1.200002p+0
++inf:PASSED:fadds(1.000000 , 0x1.00001p-3 ) = 0x1.200002p+0
++inf:PASSED:fadds(1.000000 , 0x1.000012p-3) = 0x1.200004p+0
++inf:PASSED:fadds(1.000000 , 0x1.000014p-3) = 0x1.200004p+0
++inf:PASSED:fadds(1.000000 , 0x1.000016p-3) = 0x1.200004p+0
++inf:PASSED:fadds(1.000000 , 0x1.000018p-3) = 0x1.200004p+0
++inf:PASSED:fadds(1.000000 , 0x1.00001ap-3) = 0x1.200004p+0
++inf:PASSED:fadds(1.000000 , 0x1.00001cp-3) = 0x1.200004p+0
++inf:PASSED:fadds(1.000000 , 0x1.00001ep-3) = 0x1.200004p+0
+-inf:PASSED:fadds(-1.000000 , -0x1p-3 ) = -0x1.2p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.000002p-3) = -0x1.200002p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.000004p-3) = -0x1.200002p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.000006p-3) = -0x1.200002p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.000008p-3) = -0x1.200002p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.00000ap-3) = -0x1.200002p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.00000cp-3) = -0x1.200002p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.00000ep-3) = -0x1.200002p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.00001p-3) = -0x1.200002p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.000012p-3) = -0x1.200004p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.000014p-3) = -0x1.200004p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.000016p-3) = -0x1.200004p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.000018p-3) = -0x1.200004p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.00001ap-3) = -0x1.200004p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.00001cp-3) = -0x1.200004p+0
+-inf:PASSED:fadds(-1.000000 , -0x1.00001ep-3) = -0x1.200004p+0
+-inf:PASSED:fadds(1.000000 , 0x1p-3 ) = 0x1.2p+0
+-inf:PASSED:fadds(1.000000 , 0x1.000002p-3) = 0x1.2p+0
+-inf:PASSED:fadds(1.000000 , 0x1.000004p-3) = 0x1.2p+0
+-inf:PASSED:fadds(1.000000 , 0x1.000006p-3) = 0x1.2p+0
+-inf:PASSED:fadds(1.000000 , 0x1.000008p-3) = 0x1.2p+0
+-inf:PASSED:fadds(1.000000 , 0x1.00000ap-3) = 0x1.2p+0
+-inf:PASSED:fadds(1.000000 , 0x1.00000cp-3) = 0x1.2p+0
+-inf:PASSED:fadds(1.000000 , 0x1.00000ep-3) = 0x1.2p+0
+-inf:PASSED:fadds(1.000000 , 0x1.00001p-3 ) = 0x1.200002p+0
+-inf:PASSED:fadds(1.000000 , 0x1.000012p-3) = 0x1.200002p+0
+-inf:PASSED:fadds(1.000000 , 0x1.000014p-3) = 0x1.200002p+0
+-inf:PASSED:fadds(1.000000 , 0x1.000016p-3) = 0x1.200002p+0
+-inf:PASSED:fadds(1.000000 , 0x1.000018p-3) = 0x1.200002p+0
+-inf:PASSED:fadds(1.000000 , 0x1.00001ap-3) = 0x1.200002p+0
+-inf:PASSED:fadds(1.000000 , 0x1.00001cp-3) = 0x1.200002p+0
+-inf:PASSED:fadds(1.000000 , 0x1.00001ep-3) = 0x1.200002p+0
+near:PASSED:fsubs(-1.125000 , -0x1p-3 ) = -0x1.000004p+0
+near:PASSED:fsubs(-1.125000 , -0x1.000002p-3) = -0x1.000004p+0
+near:PASSED:fsubs(-1.125000 , -0x1.000004p-3) = -0x1.000004p+0
+near:PASSED:fsubs(-1.125000 , -0x1.000006p-3) = -0x1.000004p+0
+near:PASSED:fsubs(-1.125000 , -0x1.000008p-3) = -0x1.000004p+0
+near:PASSED:fsubs(-1.125000 , -0x1.00000ap-3) = -0x1.000002p+0
+near:PASSED:fsubs(-1.125000 , -0x1.00000cp-3) = -0x1.000002p+0
+near:PASSED:fsubs(-1.125000 , -0x1.00000ep-3) = -0x1.000002p+0
+near:PASSED:fsubs(-1.125000 , -0x1.00001p-3) = -0x1.000002p+0
+near:PASSED:fsubs(-1.125000 , -0x1.000012p-3) = -0x1.000002p+0
+near:PASSED:fsubs(-1.125000 , -0x1.000014p-3) = -0x1.000002p+0
+near:PASSED:fsubs(-1.125000 , -0x1.000016p-3) = -0x1.000002p+0
+near:PASSED:fsubs(-1.125000 , -0x1.000018p-3) = -0x1p+0
+near:PASSED:fsubs(-1.125000 , -0x1.00001ap-3) = -0x1p+0
+near:PASSED:fsubs(-1.125000 , -0x1.00001cp-3) = -0x1p+0
+near:PASSED:fsubs(-1.125000 , -0x1.00001ep-3) = -0x1p+0
+near:PASSED:fsubs(1.125000 , 0x1p-3 ) = 0x1.000004p+0
+near:PASSED:fsubs(1.125000 , 0x1.000002p-3) = 0x1.000004p+0
+near:PASSED:fsubs(1.125000 , 0x1.000004p-3) = 0x1.000004p+0
+near:PASSED:fsubs(1.125000 , 0x1.000006p-3) = 0x1.000004p+0
+near:PASSED:fsubs(1.125000 , 0x1.000008p-3) = 0x1.000004p+0
+near:PASSED:fsubs(1.125000 , 0x1.00000ap-3) = 0x1.000002p+0
+near:PASSED:fsubs(1.125000 , 0x1.00000cp-3) = 0x1.000002p+0
+near:PASSED:fsubs(1.125000 , 0x1.00000ep-3) = 0x1.000002p+0
+near:PASSED:fsubs(1.125000 , 0x1.00001p-3 ) = 0x1.000002p+0
+near:PASSED:fsubs(1.125000 , 0x1.000012p-3) = 0x1.000002p+0
+near:PASSED:fsubs(1.125000 , 0x1.000014p-3) = 0x1.000002p+0
+near:PASSED:fsubs(1.125000 , 0x1.000016p-3) = 0x1.000002p+0
+near:PASSED:fsubs(1.125000 , 0x1.000018p-3) = 0x1p+0
+near:PASSED:fsubs(1.125000 , 0x1.00001ap-3) = 0x1p+0
+near:PASSED:fsubs(1.125000 , 0x1.00001cp-3) = 0x1p+0
+near:PASSED:fsubs(1.125000 , 0x1.00001ep-3) = 0x1p+0
+zero:PASSED:fsubs(-1.125000 , -0x1p-3 ) = -0x1.000004p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.000002p-3) = -0x1.000002p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.000004p-3) = -0x1.000002p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.000006p-3) = -0x1.000002p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.000008p-3) = -0x1.000002p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.00000ap-3) = -0x1.000002p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.00000cp-3) = -0x1.000002p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.00000ep-3) = -0x1.000002p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.00001p-3) = -0x1.000002p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.000012p-3) = -0x1p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.000014p-3) = -0x1p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.000016p-3) = -0x1p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.000018p-3) = -0x1p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.00001ap-3) = -0x1p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.00001cp-3) = -0x1p+0
+zero:PASSED:fsubs(-1.125000 , -0x1.00001ep-3) = -0x1p+0
+zero:PASSED:fsubs(1.125000 , 0x1p-3 ) = 0x1.000004p+0
+zero:PASSED:fsubs(1.125000 , 0x1.000002p-3) = 0x1.000002p+0
+zero:PASSED:fsubs(1.125000 , 0x1.000004p-3) = 0x1.000002p+0
+zero:PASSED:fsubs(1.125000 , 0x1.000006p-3) = 0x1.000002p+0
+zero:PASSED:fsubs(1.125000 , 0x1.000008p-3) = 0x1.000002p+0
+zero:PASSED:fsubs(1.125000 , 0x1.00000ap-3) = 0x1.000002p+0
+zero:PASSED:fsubs(1.125000 , 0x1.00000cp-3) = 0x1.000002p+0
+zero:PASSED:fsubs(1.125000 , 0x1.00000ep-3) = 0x1.000002p+0
+zero:PASSED:fsubs(1.125000 , 0x1.00001p-3 ) = 0x1.000002p+0
+zero:PASSED:fsubs(1.125000 , 0x1.000012p-3) = 0x1p+0
+zero:PASSED:fsubs(1.125000 , 0x1.000014p-3) = 0x1p+0
+zero:PASSED:fsubs(1.125000 , 0x1.000016p-3) = 0x1p+0
+zero:PASSED:fsubs(1.125000 , 0x1.000018p-3) = 0x1p+0
+zero:PASSED:fsubs(1.125000 , 0x1.00001ap-3) = 0x1p+0
+zero:PASSED:fsubs(1.125000 , 0x1.00001cp-3) = 0x1p+0
+zero:PASSED:fsubs(1.125000 , 0x1.00001ep-3) = 0x1p+0
++inf:PASSED:fsubs(-1.125000 , -0x1p-3 ) = -0x1.000004p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.000002p-3) = -0x1.000002p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.000004p-3) = -0x1.000002p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.000006p-3) = -0x1.000002p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.000008p-3) = -0x1.000002p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.00000ap-3) = -0x1.000002p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.00000cp-3) = -0x1.000002p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.00000ep-3) = -0x1.000002p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.00001p-3) = -0x1.000002p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.000012p-3) = -0x1p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.000014p-3) = -0x1p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.000016p-3) = -0x1p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.000018p-3) = -0x1p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.00001ap-3) = -0x1p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.00001cp-3) = -0x1p+0
++inf:PASSED:fsubs(-1.125000 , -0x1.00001ep-3) = -0x1p+0
++inf:PASSED:fsubs(1.125000 , 0x1p-3 ) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000002p-3) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000004p-3) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000006p-3) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000008p-3) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.00000ap-3) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.00000cp-3) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.00000ep-3) = 0x1.000004p+0
++inf:PASSED:fsubs(1.125000 , 0x1.00001p-3 ) = 0x1.000002p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000012p-3) = 0x1.000002p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000014p-3) = 0x1.000002p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000016p-3) = 0x1.000002p+0
++inf:PASSED:fsubs(1.125000 , 0x1.000018p-3) = 0x1.000002p+0
++inf:PASSED:fsubs(1.125000 , 0x1.00001ap-3) = 0x1.000002p+0
++inf:PASSED:fsubs(1.125000 , 0x1.00001cp-3) = 0x1.000002p+0
++inf:PASSED:fsubs(1.125000 , 0x1.00001ep-3) = 0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1p-3 ) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000002p-3) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000004p-3) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000006p-3) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000008p-3) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.00000ap-3) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.00000cp-3) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.00000ep-3) = -0x1.000004p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.00001p-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000012p-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000014p-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000016p-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.000018p-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.00001ap-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.00001cp-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(-1.125000 , -0x1.00001ep-3) = -0x1.000002p+0
+-inf:PASSED:fsubs(1.125000 , 0x1p-3 ) = 0x1.000004p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.000002p-3) = 0x1.000002p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.000004p-3) = 0x1.000002p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.000006p-3) = 0x1.000002p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.000008p-3) = 0x1.000002p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.00000ap-3) = 0x1.000002p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.00000cp-3) = 0x1.000002p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.00000ep-3) = 0x1.000002p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.00001p-3 ) = 0x1.000002p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.000012p-3) = 0x1p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.000014p-3) = 0x1p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.000016p-3) = 0x1p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.000018p-3) = 0x1p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.00001ap-3) = 0x1p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.00001cp-3) = 0x1p+0
+-inf:PASSED:fsubs(1.125000 , 0x1.00001ep-3) = 0x1p+0
+near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.2p+0
+near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200002p+0
+near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200004p+0
+near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200006p+0
+near:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200008p+0
+near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000cp+0
+near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000ep+0
+near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001p+0
+near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200012p+0
+near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200014p+0
+near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200016p+0
+near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200018p+0
+near:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001cp+0
+near:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20001ep+0
+near:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20002p+0
+near:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.200022p+0
+near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.2p+0
+near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200002p+0
+near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200004p+0
+near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200006p+0
+near:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200008p+0
+near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000cp+0
+near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000ep+0
+near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001p+0
+near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200012p+0
+near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200014p+0
+near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200016p+0
+near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200018p+0
+near:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001cp+0
+near:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20001ep+0
+near:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20002p+0
+near:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.200022p+0
+zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.2p+0
+zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200002p+0
+zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200004p+0
+zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200006p+0
+zero:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200008p+0
+zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000ap+0
+zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000cp+0
+zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000ep+0
+zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200012p+0
+zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200014p+0
+zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200016p+0
+zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200018p+0
+zero:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001ap+0
+zero:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20001cp+0
+zero:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20001ep+0
+zero:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20002p+0
+zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.2p+0
+zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200002p+0
+zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200004p+0
+zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200006p+0
+zero:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200008p+0
+zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000ap+0
+zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000cp+0
+zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000ep+0
+zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200012p+0
+zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200014p+0
+zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200016p+0
+zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200018p+0
+zero:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001ap+0
+zero:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20001cp+0
+zero:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20001ep+0
+zero:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20002p+0
++inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.2p+0
++inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200002p+0
++inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200004p+0
++inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200006p+0
++inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200008p+0
++inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000ap+0
++inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000cp+0
++inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000ep+0
++inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200012p+0
++inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200014p+0
++inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200016p+0
++inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200018p+0
++inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001ap+0
++inf:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20001cp+0
++inf:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20001ep+0
++inf:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20002p+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.2p+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200004p+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200006p+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200008p+0
++inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.20000ap+0
++inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000cp+0
++inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000ep+0
++inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001p+0
++inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200012p+0
++inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200016p+0
++inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200018p+0
++inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001ap+0
++inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001cp+0
++inf:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20001ep+0
++inf:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20002p+0
++inf:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.200022p+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.2p+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200004p+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200006p+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.200008p+0
+-inf:PASSED:fmuls(-1.000000 , 0x1.2p+0 ) = -0x1.20000ap+0
+-inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000cp+0
+-inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20000ep+0
+-inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001p+0
+-inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200012p+0
+-inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200016p+0
+-inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.200018p+0
+-inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001ap+0
+-inf:PASSED:fmuls(-1.000001 , 0x1.2p+0 ) = -0x1.20001cp+0
+-inf:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20001ep+0
+-inf:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.20002p+0
+-inf:PASSED:fmuls(-1.000002 , 0x1.2p+0 ) = -0x1.200022p+0
+-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.2p+0
+-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200002p+0
+-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200004p+0
+-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200006p+0
+-inf:PASSED:fmuls(1.000000 , 0x1.2p+0 ) = 0x1.200008p+0
+-inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000ap+0
+-inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000cp+0
+-inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20000ep+0
+-inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200012p+0
+-inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200014p+0
+-inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200016p+0
+-inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.200018p+0
+-inf:PASSED:fmuls(1.000001 , 0x1.2p+0 ) = 0x1.20001ap+0
+-inf:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20001cp+0
+-inf:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20001ep+0
+-inf:PASSED:fmuls(1.000002 , 0x1.2p+0 ) = 0x1.20002p+0
+near:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
+near:PASSED:fdivs(-100.000000 , 0x1.c8p+5 ) = -0x1.c11f7p+0
+near:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
+near:PASSED:fdivs(-100.000000 , 0x1.ap+5 ) = -0x1.ec4ec4p+0
+near:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
+near:PASSED:fdivs(-100.000000 , 0x1.b8p+5 ) = -0x1.d1745ep+0
+near:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+near:PASSED:fdivs(-100.000000 , 0x1.98p+5 ) = -0x1.f5f5f6p+0
+near:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+near:PASSED:fdivs(-100.000000 , 0x1.cp+5 ) = -0x1.c92492p+0
+near:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+near:PASSED:fdivs(-100.000000 , 0x1.bp+5 ) = -0x1.da12f6p+0
+near:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-148
+near:PASSED:fdivs(-100.000000 , 0x1.d8p+5 ) = -0x1.b1e5f8p+0
+near:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-148
+near:PASSED:fdivs(-101.000000 , 0x1.ap+5 ) = -0x1.f13b14p+0
+near:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+near:PASSED:fdivs(100.000000 , 0x1.c8p+5 ) = 0x1.c11f7p+0
+near:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+near:PASSED:fdivs(100.000000 , 0x1.ap+5 ) = 0x1.ec4ec4p+0
+near:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+near:PASSED:fdivs(100.000000 , 0x1.b8p+5 ) = 0x1.d1745ep+0
+near:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+near:PASSED:fdivs(100.000000 , 0x1.98p+5 ) = 0x1.f5f5f6p+0
+near:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+near:PASSED:fdivs(100.000000 , 0x1.cp+5 ) = 0x1.c92492p+0
+near:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+near:PASSED:fdivs(100.000000 , 0x1.bp+5 ) = 0x1.da12f6p+0
+near:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-148
+near:PASSED:fdivs(100.000000 , 0x1.d8p+5 ) = 0x1.b1e5f8p+0
+near:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-148
+near:PASSED:fdivs(101.000000 , 0x1.ap+5 ) = 0x1.f13b14p+0
+zero:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
+zero:PASSED:fdivs(-100.000000 , 0x1.c8p+5 ) = -0x1.c11f7p+0
+zero:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
+zero:PASSED:fdivs(-100.000000 , 0x1.ap+5 ) = -0x1.ec4ec4p+0
+zero:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
+zero:PASSED:fdivs(-100.000000 , 0x1.b8p+5 ) = -0x1.d1745cp+0
+zero:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
+zero:PASSED:fdivs(-100.000000 , 0x1.98p+5 ) = -0x1.f5f5f4p+0
+zero:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+zero:PASSED:fdivs(-100.000000 , 0x1.cp+5 ) = -0x1.c92492p+0
+zero:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+zero:PASSED:fdivs(-100.000000 , 0x1.bp+5 ) = -0x1.da12f6p+0
+zero:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+zero:PASSED:fdivs(-100.000000 , 0x1.d8p+5 ) = -0x1.b1e5f6p+0
+zero:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+zero:PASSED:fdivs(-101.000000 , 0x1.ap+5 ) = -0x1.f13b12p+0
+zero:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+zero:PASSED:fdivs(100.000000 , 0x1.c8p+5 ) = 0x1.c11f7p+0
+zero:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+zero:PASSED:fdivs(100.000000 , 0x1.ap+5 ) = 0x1.ec4ec4p+0
+zero:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+zero:PASSED:fdivs(100.000000 , 0x1.b8p+5 ) = 0x1.d1745cp+0
+zero:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+zero:PASSED:fdivs(100.000000 , 0x1.98p+5 ) = 0x1.f5f5f4p+0
+zero:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+zero:PASSED:fdivs(100.000000 , 0x1.cp+5 ) = 0x1.c92492p+0
+zero:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+zero:PASSED:fdivs(100.000000 , 0x1.bp+5 ) = 0x1.da12f6p+0
+zero:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+zero:PASSED:fdivs(100.000000 , 0x1.d8p+5 ) = 0x1.b1e5f6p+0
+zero:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+zero:PASSED:fdivs(101.000000 , 0x1.ap+5 ) = 0x1.f13b12p+0
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
++inf:PASSED:fdivs(-100.000000 , 0x1.c8p+5 ) = -0x1.c11f7p+0
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
++inf:PASSED:fdivs(-100.000000 , 0x1.ap+5 ) = -0x1.ec4ec4p+0
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
++inf:PASSED:fdivs(-100.000000 , 0x1.b8p+5 ) = -0x1.d1745cp+0
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
++inf:PASSED:fdivs(-100.000000 , 0x1.98p+5 ) = -0x1.f5f5f4p+0
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
++inf:PASSED:fdivs(-100.000000 , 0x1.cp+5 ) = -0x1.c92492p+0
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
++inf:PASSED:fdivs(-100.000000 , 0x1.bp+5 ) = -0x1.da12f6p+0
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
++inf:PASSED:fdivs(-100.000000 , 0x1.d8p+5 ) = -0x1.b1e5f6p+0
++inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
++inf:PASSED:fdivs(-101.000000 , 0x1.ap+5 ) = -0x1.f13b12p+0
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
++inf:PASSED:fdivs(100.000000 , 0x1.c8p+5 ) = 0x1.c11f72p+0
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
++inf:PASSED:fdivs(100.000000 , 0x1.ap+5 ) = 0x1.ec4ec6p+0
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
++inf:PASSED:fdivs(100.000000 , 0x1.b8p+5 ) = 0x1.d1745ep+0
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
++inf:PASSED:fdivs(100.000000 , 0x1.98p+5 ) = 0x1.f5f5f6p+0
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
++inf:PASSED:fdivs(100.000000 , 0x1.cp+5 ) = 0x1.c92494p+0
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-148
++inf:PASSED:fdivs(100.000000 , 0x1.bp+5 ) = 0x1.da12f8p+0
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-148
++inf:PASSED:fdivs(100.000000 , 0x1.d8p+5 ) = 0x1.b1e5f8p+0
++inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-148
++inf:PASSED:fdivs(101.000000 , 0x1.ap+5 ) = 0x1.f13b14p+0
+-inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x0p+0
+-inf:PASSED:fdivs(-100.000000 , 0x1.c8p+5 ) = -0x1.c11f72p+0
+-inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+-inf:PASSED:fdivs(-100.000000 , 0x1.ap+5 ) = -0x1.ec4ec6p+0
+-inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+-inf:PASSED:fdivs(-100.000000 , 0x1.b8p+5 ) = -0x1.d1745ep+0
+-inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+-inf:PASSED:fdivs(-100.000000 , 0x1.98p+5 ) = -0x1.f5f5f6p+0
+-inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-149
+-inf:PASSED:fdivs(-100.000000 , 0x1.cp+5 ) = -0x1.c92494p+0
+-inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-148
+-inf:PASSED:fdivs(-100.000000 , 0x1.bp+5 ) = -0x1.da12f8p+0
+-inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-148
+-inf:PASSED:fdivs(-100.000000 , 0x1.d8p+5 ) = -0x1.b1e5f8p+0
+-inf:PASSED:fdivs(0.000000 , -0x1p+3 ) = -0x1p-148
+-inf:PASSED:fdivs(-101.000000 , 0x1.ap+5 ) = -0x1.f13b14p+0
+-inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+-inf:PASSED:fdivs(100.000000 , 0x1.c8p+5 ) = 0x1.c11f7p+0
+-inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+-inf:PASSED:fdivs(100.000000 , 0x1.ap+5 ) = 0x1.ec4ec4p+0
+-inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+-inf:PASSED:fdivs(100.000000 , 0x1.b8p+5 ) = 0x1.d1745cp+0
+-inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x0p+0
+-inf:PASSED:fdivs(100.000000 , 0x1.98p+5 ) = 0x1.f5f5f4p+0
+-inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+-inf:PASSED:fdivs(100.000000 , 0x1.cp+5 ) = 0x1.c92492p+0
+-inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+-inf:PASSED:fdivs(100.000000 , 0x1.bp+5 ) = 0x1.da12f6p+0
+-inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+-inf:PASSED:fdivs(100.000000 , 0x1.d8p+5 ) = 0x1.b1e5f6p+0
+-inf:PASSED:fdivs(0.000000 , 0x1p+3 ) = 0x1p-149
+-inf:PASSED:fdivs(101.000000 , 0x1.ap+5 ) = 0x1.f13b12p+0
+near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.ap+0
+near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00004p+0
+near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00006p+0
+near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00008p+0
+near:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ap+0
+near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000cp+0
+near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ep+0
+near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001p+0
+near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00014p+0
+near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00016p+0
+near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00018p+0
+near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ap+0
+near:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001cp+0
+near:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ep+0
+near:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0002p+0
+near:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00022p+0
+near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.ap+0
+near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00004p+0
+near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00006p+0
+near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00008p+0
+near:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ap+0
+near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000cp+0
+near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ep+0
+near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001p+0
+near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00014p+0
+near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00016p+0
+near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00018p+0
+near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ap+0
+near:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001cp+0
+near:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ep+0
+near:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0002p+0
+near:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00022p+0
+zero:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.ap+0
+zero:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00002p+0
+zero:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00004p+0
+zero:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00006p+0
+zero:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ap+0
+zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000cp+0
+zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ep+0
+zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001p+0
+zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00012p+0
+zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00014p+0
+zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00016p+0
+zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00018p+0
+zero:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001cp+0
+zero:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ep+0
+zero:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0002p+0
+zero:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00022p+0
+zero:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.ap+0
+zero:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00002p+0
+zero:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00004p+0
+zero:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00006p+0
+zero:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ap+0
+zero:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000cp+0
+zero:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ep+0
+zero:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001p+0
+zero:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00012p+0
+zero:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00014p+0
+zero:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00016p+0
+zero:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00018p+0
+zero:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001cp+0
+zero:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ep+0
+zero:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0002p+0
+zero:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00022p+0
++inf:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.ap+0
++inf:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00002p+0
++inf:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00004p+0
++inf:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00006p+0
++inf:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ap+0
++inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000cp+0
++inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ep+0
++inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001p+0
++inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00012p+0
++inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00014p+0
++inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00016p+0
++inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00018p+0
++inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001cp+0
++inf:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ep+0
++inf:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0002p+0
++inf:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00022p+0
++inf:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00002p+0
++inf:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00004p+0
++inf:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00006p+0
++inf:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00008p+0
++inf:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ap+0
++inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ep+0
++inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001p+0
++inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00012p+0
++inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00014p+0
++inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00016p+0
++inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00018p+0
++inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ap+0
++inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001cp+0
++inf:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0002p+0
++inf:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00022p+0
++inf:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00024p+0
+-inf:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00002p+0
+-inf:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00004p+0
+-inf:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00006p+0
+-inf:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00008p+0
+-inf:PASSED:fmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ap+0
+-inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ep+0
+-inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001p+0
+-inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00012p+0
+-inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00014p+0
+-inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00016p+0
+-inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00018p+0
+-inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ap+0
+-inf:PASSED:fmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001cp+0
+-inf:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0002p+0
+-inf:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00022p+0
+-inf:PASSED:fmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00024p+0
+-inf:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.ap+0
+-inf:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00002p+0
+-inf:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00004p+0
+-inf:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00006p+0
+-inf:PASSED:fmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ap+0
+-inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000cp+0
+-inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ep+0
+-inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001p+0
+-inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00012p+0
+-inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00014p+0
+-inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00016p+0
+-inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00018p+0
+-inf:PASSED:fmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001cp+0
+-inf:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ep+0
+-inf:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0002p+0
+-inf:PASSED:fmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00022p+0
+near:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.ap+0
+near:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00004p+0
+near:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00006p+0
+near:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00008p+0
+near:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ap+0
+near:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000cp+0
+near:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ep+0
+near:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001p+0
+near:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00014p+0
+near:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00016p+0
+near:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00018p+0
+near:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001ap+0
+near:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001cp+0
+near:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001ep+0
+near:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0002p+0
+near:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00022p+0
+near:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.ap+0
+near:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00004p+0
+near:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00006p+0
+near:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00008p+0
+near:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ap+0
+near:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000cp+0
+near:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ep+0
+near:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001p+0
+near:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00014p+0
+near:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00016p+0
+near:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00018p+0
+near:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001ap+0
+near:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001cp+0
+near:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001ep+0
+near:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0002p+0
+near:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00022p+0
+zero:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.ap+0
+zero:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00002p+0
+zero:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00004p+0
+zero:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00006p+0
+zero:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ap+0
+zero:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000cp+0
+zero:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ep+0
+zero:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001p+0
+zero:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00012p+0
+zero:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00014p+0
+zero:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00016p+0
+zero:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00018p+0
+zero:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001cp+0
+zero:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001ep+0
+zero:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0002p+0
+zero:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00022p+0
+zero:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.ap+0
+zero:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00002p+0
+zero:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00004p+0
+zero:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00006p+0
+zero:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ap+0
+zero:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000cp+0
+zero:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ep+0
+zero:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001p+0
+zero:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00012p+0
+zero:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00014p+0
+zero:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00016p+0
+zero:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00018p+0
+zero:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001cp+0
+zero:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001ep+0
+zero:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0002p+0
+zero:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00022p+0
++inf:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.ap+0
++inf:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00002p+0
++inf:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00004p+0
++inf:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00006p+0
++inf:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ap+0
++inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000cp+0
++inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ep+0
++inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001p+0
++inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00012p+0
++inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00014p+0
++inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00016p+0
++inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00018p+0
++inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001cp+0
++inf:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001ep+0
++inf:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0002p+0
++inf:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00022p+0
++inf:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00002p+0
++inf:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00004p+0
++inf:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00006p+0
++inf:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00008p+0
++inf:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ap+0
++inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ep+0
++inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001p+0
++inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00012p+0
++inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00014p+0
++inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00016p+0
++inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00018p+0
++inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001ap+0
++inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001cp+0
++inf:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0002p+0
++inf:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00022p+0
++inf:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00024p+0
+-inf:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00002p+0
+-inf:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00004p+0
+-inf:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00006p+0
+-inf:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00008p+0
+-inf:PASSED:fmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ap+0
+-inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ep+0
+-inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001p+0
+-inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00012p+0
+-inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00014p+0
+-inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00016p+0
+-inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00018p+0
+-inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001ap+0
+-inf:PASSED:fmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001cp+0
+-inf:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0002p+0
+-inf:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00022p+0
+-inf:PASSED:fmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00024p+0
+-inf:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.ap+0
+-inf:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00002p+0
+-inf:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00004p+0
+-inf:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00006p+0
+-inf:PASSED:fmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ap+0
+-inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000cp+0
+-inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ep+0
+-inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001p+0
+-inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00012p+0
+-inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00014p+0
+-inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00016p+0
+-inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00018p+0
+-inf:PASSED:fmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001cp+0
+-inf:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001ep+0
+-inf:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0002p+0
+-inf:PASSED:fmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00022p+0
+near:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.ap+0
+near:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00004p+0
+near:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00006p+0
+near:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00008p+0
+near:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ap+0
+near:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000cp+0
+near:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ep+0
+near:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001p+0
+near:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00014p+0
+near:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00016p+0
+near:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00018p+0
+near:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001ap+0
+near:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001cp+0
+near:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001ep+0
+near:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0002p+0
+near:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00022p+0
+near:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.ap+0
+near:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00004p+0
+near:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00006p+0
+near:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00008p+0
+near:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ap+0
+near:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000cp+0
+near:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ep+0
+near:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001p+0
+near:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00014p+0
+near:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00016p+0
+near:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00018p+0
+near:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001ap+0
+near:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001cp+0
+near:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001ep+0
+near:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0002p+0
+near:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00022p+0
+zero:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.ap+0
+zero:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00002p+0
+zero:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00004p+0
+zero:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00006p+0
+zero:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ap+0
+zero:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000cp+0
+zero:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ep+0
+zero:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001p+0
+zero:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00012p+0
+zero:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00014p+0
+zero:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00016p+0
+zero:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00018p+0
+zero:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001cp+0
+zero:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001ep+0
+zero:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0002p+0
+zero:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00022p+0
+zero:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.ap+0
+zero:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00002p+0
+zero:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00004p+0
+zero:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00006p+0
+zero:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ap+0
+zero:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000cp+0
+zero:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ep+0
+zero:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001p+0
+zero:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00012p+0
+zero:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00014p+0
+zero:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00016p+0
+zero:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00018p+0
+zero:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001cp+0
+zero:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001ep+0
+zero:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0002p+0
+zero:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00022p+0
++inf:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.ap+0
++inf:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00002p+0
++inf:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00004p+0
++inf:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00006p+0
++inf:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ap+0
++inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000cp+0
++inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ep+0
++inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001p+0
++inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00012p+0
++inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00014p+0
++inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00016p+0
++inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00018p+0
++inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001cp+0
++inf:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001ep+0
++inf:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0002p+0
++inf:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00022p+0
++inf:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00002p+0
++inf:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00004p+0
++inf:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00006p+0
++inf:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00008p+0
++inf:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ap+0
++inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ep+0
++inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001p+0
++inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00012p+0
++inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00014p+0
++inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00016p+0
++inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00018p+0
++inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001ap+0
++inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001cp+0
++inf:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0002p+0
++inf:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00022p+0
++inf:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00024p+0
+-inf:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00002p+0
+-inf:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00004p+0
+-inf:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00006p+0
+-inf:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00008p+0
+-inf:PASSED:fnmadds(-1.000000 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ap+0
+-inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0000ep+0
+-inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001p+0
+-inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00012p+0
+-inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00014p+0
+-inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00016p+0
+-inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00018p+0
+-inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001ap+0
+-inf:PASSED:fnmadds(-1.000001 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0001cp+0
+-inf:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a0002p+0
+-inf:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00022p+0
+-inf:PASSED:fnmadds(-1.000002 , 0x1.2p+0 , -0x1.000002p-1) = 0x1.a00024p+0
+-inf:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.ap+0
+-inf:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00002p+0
+-inf:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00004p+0
+-inf:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00006p+0
+-inf:PASSED:fnmadds(1.000000 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ap+0
+-inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000cp+0
+-inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0000ep+0
+-inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001p+0
+-inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00012p+0
+-inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00014p+0
+-inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00016p+0
+-inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00018p+0
+-inf:PASSED:fnmadds(1.000001 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001cp+0
+-inf:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0001ep+0
+-inf:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a0002p+0
+-inf:PASSED:fnmadds(1.000002 , 0x1.2p+0 , 0x1.000002p-1) = -0x1.a00022p+0
+near:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.ap+0
+near:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00004p+0
+near:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00006p+0
+near:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00008p+0
+near:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ap+0
+near:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000cp+0
+near:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ep+0
+near:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001p+0
+near:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00014p+0
+near:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00016p+0
+near:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00018p+0
+near:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ap+0
+near:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001cp+0
+near:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ep+0
+near:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0002p+0
+near:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00022p+0
+near:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.ap+0
+near:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00004p+0
+near:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00006p+0
+near:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00008p+0
+near:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ap+0
+near:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000cp+0
+near:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ep+0
+near:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001p+0
+near:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00014p+0
+near:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00016p+0
+near:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00018p+0
+near:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ap+0
+near:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001cp+0
+near:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ep+0
+near:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0002p+0
+near:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00022p+0
+zero:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.ap+0
+zero:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00002p+0
+zero:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00004p+0
+zero:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00006p+0
+zero:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ap+0
+zero:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000cp+0
+zero:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ep+0
+zero:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001p+0
+zero:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00012p+0
+zero:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00014p+0
+zero:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00016p+0
+zero:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00018p+0
+zero:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001cp+0
+zero:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ep+0
+zero:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0002p+0
+zero:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00022p+0
+zero:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.ap+0
+zero:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00002p+0
+zero:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00004p+0
+zero:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00006p+0
+zero:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ap+0
+zero:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000cp+0
+zero:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ep+0
+zero:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001p+0
+zero:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00012p+0
+zero:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00014p+0
+zero:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00016p+0
+zero:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00018p+0
+zero:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001cp+0
+zero:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ep+0
+zero:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0002p+0
+zero:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00022p+0
++inf:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.ap+0
++inf:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00002p+0
++inf:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00004p+0
++inf:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00006p+0
++inf:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ap+0
++inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000cp+0
++inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ep+0
++inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001p+0
++inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00012p+0
++inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00014p+0
++inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00016p+0
++inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00018p+0
++inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001cp+0
++inf:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ep+0
++inf:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0002p+0
++inf:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00022p+0
++inf:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00002p+0
++inf:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00004p+0
++inf:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00006p+0
++inf:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00008p+0
++inf:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ap+0
++inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ep+0
++inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001p+0
++inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00012p+0
++inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00014p+0
++inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00016p+0
++inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00018p+0
++inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ap+0
++inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001cp+0
++inf:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0002p+0
++inf:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00022p+0
++inf:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00024p+0
+-inf:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00002p+0
+-inf:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00004p+0
+-inf:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00006p+0
+-inf:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00008p+0
+-inf:PASSED:fnmsubs(-1.000000 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ap+0
+-inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0000ep+0
+-inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001p+0
+-inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00012p+0
+-inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00014p+0
+-inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00016p+0
+-inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00018p+0
+-inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001ap+0
+-inf:PASSED:fnmsubs(-1.000001 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0001cp+0
+-inf:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a0002p+0
+-inf:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00022p+0
+-inf:PASSED:fnmsubs(-1.000002 , 0x1.2p+0 , 0x1.000002p-1) = 0x1.a00024p+0
+-inf:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.ap+0
+-inf:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00002p+0
+-inf:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00004p+0
+-inf:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00006p+0
+-inf:PASSED:fnmsubs(1.000000 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ap+0
+-inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000cp+0
+-inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0000ep+0
+-inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001p+0
+-inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00012p+0
+-inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00014p+0
+-inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00016p+0
+-inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00018p+0
+-inf:PASSED:fnmsubs(1.000001 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001cp+0
+-inf:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0001ep+0
+-inf:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a0002p+0
+-inf:PASSED:fnmsubs(1.000002 , 0x1.2p+0 , -0x1.000002p-1) = -0x1.a00022p+0
+-------------------------- test rounding of double operators with guard bits --------------------------
+near:PASSED:fadd(-0x1p+0 , -0x1p-3 ) = -0x1.2p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.0000000000001p-3) = -0x1.2p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.0000000000002p-3) = -0x1.2p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.0000000000003p-3) = -0x1.2p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.0000000000004p-3) = -0x1.2p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.0000000000005p-3) = -0x1.2000000000001p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.0000000000006p-3) = -0x1.2000000000001p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.0000000000007p-3) = -0x1.2000000000001p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.0000000000008p-3) = -0x1.2000000000001p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.0000000000009p-3) = -0x1.2000000000001p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.000000000000ap-3) = -0x1.2000000000001p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.000000000000bp-3) = -0x1.2000000000001p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.000000000000cp-3) = -0x1.2000000000002p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.000000000000dp-3) = -0x1.2000000000002p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.000000000000ep-3) = -0x1.2000000000002p+0
+near:PASSED:fadd(-0x1p+0 , -0x1.000000000000fp-3) = -0x1.2000000000002p+0
+near:PASSED:fadd(0x1p+0 , 0x1p-3 ) = 0x1.2p+0
+near:PASSED:fadd(0x1p+0 , 0x1.0000000000001p-3) = 0x1.2p+0
+near:PASSED:fadd(0x1p+0 , 0x1.0000000000002p-3) = 0x1.2p+0
+near:PASSED:fadd(0x1p+0 , 0x1.0000000000003p-3) = 0x1.2p+0
+near:PASSED:fadd(0x1p+0 , 0x1.0000000000004p-3) = 0x1.2p+0
+near:PASSED:fadd(0x1p+0 , 0x1.0000000000005p-3) = 0x1.2000000000001p+0
+near:PASSED:fadd(0x1p+0 , 0x1.0000000000006p-3) = 0x1.2000000000001p+0
+near:PASSED:fadd(0x1p+0 , 0x1.0000000000007p-3) = 0x1.2000000000001p+0
+near:PASSED:fadd(0x1p+0 , 0x1.0000000000008p-3) = 0x1.2000000000001p+0
+near:PASSED:fadd(0x1p+0 , 0x1.0000000000009p-3) = 0x1.2000000000001p+0
+near:PASSED:fadd(0x1p+0 , 0x1.000000000000ap-3) = 0x1.2000000000001p+0
+near:PASSED:fadd(0x1p+0 , 0x1.000000000000bp-3) = 0x1.2000000000001p+0
+near:PASSED:fadd(0x1p+0 , 0x1.000000000000cp-3) = 0x1.2000000000002p+0
+near:PASSED:fadd(0x1p+0 , 0x1.000000000000dp-3) = 0x1.2000000000002p+0
+near:PASSED:fadd(0x1p+0 , 0x1.000000000000ep-3) = 0x1.2000000000002p+0
+near:PASSED:fadd(0x1p+0 , 0x1.000000000000fp-3) = 0x1.2000000000002p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1p-3 ) = -0x1.2p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.0000000000001p-3) = -0x1.2p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.0000000000002p-3) = -0x1.2p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.0000000000003p-3) = -0x1.2p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.0000000000004p-3) = -0x1.2p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.0000000000005p-3) = -0x1.2p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.0000000000006p-3) = -0x1.2p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.0000000000007p-3) = -0x1.2p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.0000000000008p-3) = -0x1.2000000000001p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.0000000000009p-3) = -0x1.2000000000001p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.000000000000ap-3) = -0x1.2000000000001p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.000000000000bp-3) = -0x1.2000000000001p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.000000000000cp-3) = -0x1.2000000000001p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.000000000000dp-3) = -0x1.2000000000001p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.000000000000ep-3) = -0x1.2000000000001p+0
+zero:PASSED:fadd(-0x1p+0 , -0x1.000000000000fp-3) = -0x1.2000000000001p+0
+zero:PASSED:fadd(0x1p+0 , 0x1p-3 ) = 0x1.2p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.0000000000001p-3) = 0x1.2p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.0000000000002p-3) = 0x1.2p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.0000000000003p-3) = 0x1.2p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.0000000000004p-3) = 0x1.2p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.0000000000005p-3) = 0x1.2p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.0000000000006p-3) = 0x1.2p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.0000000000007p-3) = 0x1.2p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.0000000000008p-3) = 0x1.2000000000001p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.0000000000009p-3) = 0x1.2000000000001p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.000000000000ap-3) = 0x1.2000000000001p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.000000000000bp-3) = 0x1.2000000000001p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.000000000000cp-3) = 0x1.2000000000001p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.000000000000dp-3) = 0x1.2000000000001p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.000000000000ep-3) = 0x1.2000000000001p+0
+zero:PASSED:fadd(0x1p+0 , 0x1.000000000000fp-3) = 0x1.2000000000001p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1p-3 ) = -0x1.2p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000001p-3) = -0x1.2p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000002p-3) = -0x1.2p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000003p-3) = -0x1.2p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000004p-3) = -0x1.2p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000005p-3) = -0x1.2p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000006p-3) = -0x1.2p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000007p-3) = -0x1.2p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000008p-3) = -0x1.2000000000001p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000009p-3) = -0x1.2000000000001p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000ap-3) = -0x1.2000000000001p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000bp-3) = -0x1.2000000000001p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000cp-3) = -0x1.2000000000001p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000dp-3) = -0x1.2000000000001p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000ep-3) = -0x1.2000000000001p+0
++inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000fp-3) = -0x1.2000000000001p+0
++inf:PASSED:fadd(0x1p+0 , 0x1p-3 ) = 0x1.2p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.0000000000001p-3) = 0x1.2000000000001p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.0000000000002p-3) = 0x1.2000000000001p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.0000000000003p-3) = 0x1.2000000000001p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.0000000000004p-3) = 0x1.2000000000001p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.0000000000005p-3) = 0x1.2000000000001p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.0000000000006p-3) = 0x1.2000000000001p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.0000000000007p-3) = 0x1.2000000000001p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.0000000000008p-3) = 0x1.2000000000001p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.0000000000009p-3) = 0x1.2000000000002p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.000000000000ap-3) = 0x1.2000000000002p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.000000000000bp-3) = 0x1.2000000000002p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.000000000000cp-3) = 0x1.2000000000002p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.000000000000dp-3) = 0x1.2000000000002p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.000000000000ep-3) = 0x1.2000000000002p+0
++inf:PASSED:fadd(0x1p+0 , 0x1.000000000000fp-3) = 0x1.2000000000002p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1p-3 ) = -0x1.2p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000001p-3) = -0x1.2000000000001p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000002p-3) = -0x1.2000000000001p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000003p-3) = -0x1.2000000000001p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000004p-3) = -0x1.2000000000001p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000005p-3) = -0x1.2000000000001p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000006p-3) = -0x1.2000000000001p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000007p-3) = -0x1.2000000000001p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000008p-3) = -0x1.2000000000001p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.0000000000009p-3) = -0x1.2000000000002p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000ap-3) = -0x1.2000000000002p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000bp-3) = -0x1.2000000000002p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000cp-3) = -0x1.2000000000002p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000dp-3) = -0x1.2000000000002p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000ep-3) = -0x1.2000000000002p+0
+-inf:PASSED:fadd(-0x1p+0 , -0x1.000000000000fp-3) = -0x1.2000000000002p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1p-3 ) = 0x1.2p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.0000000000001p-3) = 0x1.2p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.0000000000002p-3) = 0x1.2p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.0000000000003p-3) = 0x1.2p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.0000000000004p-3) = 0x1.2p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.0000000000005p-3) = 0x1.2p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.0000000000006p-3) = 0x1.2p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.0000000000007p-3) = 0x1.2p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.0000000000008p-3) = 0x1.2000000000001p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.0000000000009p-3) = 0x1.2000000000001p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.000000000000ap-3) = 0x1.2000000000001p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.000000000000bp-3) = 0x1.2000000000001p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.000000000000cp-3) = 0x1.2000000000001p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.000000000000dp-3) = 0x1.2000000000001p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.000000000000ep-3) = 0x1.2000000000001p+0
+-inf:PASSED:fadd(0x1p+0 , 0x1.000000000000fp-3) = 0x1.2000000000001p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1p-3 ) = -0x1.0000000000002p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000001p-3) = -0x1.0000000000002p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000002p-3) = -0x1.0000000000002p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000003p-3) = -0x1.0000000000002p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000004p-3) = -0x1.0000000000002p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000005p-3) = -0x1.0000000000001p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000006p-3) = -0x1.0000000000001p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000007p-3) = -0x1.0000000000001p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000008p-3) = -0x1.0000000000001p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000009p-3) = -0x1.0000000000001p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000ap-3) = -0x1.0000000000001p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000bp-3) = -0x1.0000000000001p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000cp-3) = -0x1p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000dp-3) = -0x1p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000ep-3) = -0x1p+0
+near:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000fp-3) = -0x1p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1p-3 ) = 0x1.0000000000002p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000001p-3) = 0x1.0000000000002p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000002p-3) = 0x1.0000000000002p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000003p-3) = 0x1.0000000000002p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000004p-3) = 0x1.0000000000002p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000005p-3) = 0x1.0000000000001p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000006p-3) = 0x1.0000000000001p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000007p-3) = 0x1.0000000000001p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000008p-3) = 0x1.0000000000001p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000009p-3) = 0x1.0000000000001p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000ap-3) = 0x1.0000000000001p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000bp-3) = 0x1.0000000000001p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000cp-3) = 0x1p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000dp-3) = 0x1p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000ep-3) = 0x1p+0
+near:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000fp-3) = 0x1p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1p-3 ) = -0x1.0000000000002p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000001p-3) = -0x1.0000000000001p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000002p-3) = -0x1.0000000000001p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000003p-3) = -0x1.0000000000001p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000004p-3) = -0x1.0000000000001p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000005p-3) = -0x1.0000000000001p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000006p-3) = -0x1.0000000000001p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000007p-3) = -0x1.0000000000001p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000008p-3) = -0x1.0000000000001p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000009p-3) = -0x1p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000ap-3) = -0x1p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000bp-3) = -0x1p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000cp-3) = -0x1p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000dp-3) = -0x1p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000ep-3) = -0x1p+0
+zero:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000fp-3) = -0x1p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1p-3 ) = 0x1.0000000000002p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000001p-3) = 0x1.0000000000001p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000002p-3) = 0x1.0000000000001p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000003p-3) = 0x1.0000000000001p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000004p-3) = 0x1.0000000000001p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000005p-3) = 0x1.0000000000001p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000006p-3) = 0x1.0000000000001p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000007p-3) = 0x1.0000000000001p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000008p-3) = 0x1.0000000000001p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000009p-3) = 0x1p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000ap-3) = 0x1p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000bp-3) = 0x1p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000cp-3) = 0x1p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000dp-3) = 0x1p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000ep-3) = 0x1p+0
+zero:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000fp-3) = 0x1p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1p-3 ) = -0x1.0000000000002p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000001p-3) = -0x1.0000000000001p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000002p-3) = -0x1.0000000000001p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000003p-3) = -0x1.0000000000001p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000004p-3) = -0x1.0000000000001p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000005p-3) = -0x1.0000000000001p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000006p-3) = -0x1.0000000000001p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000007p-3) = -0x1.0000000000001p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000008p-3) = -0x1.0000000000001p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000009p-3) = -0x1p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000ap-3) = -0x1p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000bp-3) = -0x1p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000cp-3) = -0x1p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000dp-3) = -0x1p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000ep-3) = -0x1p+0
++inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000fp-3) = -0x1p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1p-3 ) = 0x1.0000000000002p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000001p-3) = 0x1.0000000000002p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000002p-3) = 0x1.0000000000002p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000003p-3) = 0x1.0000000000002p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000004p-3) = 0x1.0000000000002p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000005p-3) = 0x1.0000000000002p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000006p-3) = 0x1.0000000000002p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000007p-3) = 0x1.0000000000002p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000008p-3) = 0x1.0000000000001p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000009p-3) = 0x1.0000000000001p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000ap-3) = 0x1.0000000000001p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000bp-3) = 0x1.0000000000001p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000cp-3) = 0x1.0000000000001p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000dp-3) = 0x1.0000000000001p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000ep-3) = 0x1.0000000000001p+0
++inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000fp-3) = 0x1.0000000000001p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1p-3 ) = -0x1.0000000000002p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000001p-3) = -0x1.0000000000002p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000002p-3) = -0x1.0000000000002p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000003p-3) = -0x1.0000000000002p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000004p-3) = -0x1.0000000000002p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000005p-3) = -0x1.0000000000002p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000006p-3) = -0x1.0000000000002p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000007p-3) = -0x1.0000000000002p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000008p-3) = -0x1.0000000000001p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.0000000000009p-3) = -0x1.0000000000001p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000ap-3) = -0x1.0000000000001p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000bp-3) = -0x1.0000000000001p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000cp-3) = -0x1.0000000000001p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000dp-3) = -0x1.0000000000001p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000ep-3) = -0x1.0000000000001p+0
+-inf:PASSED:fsub(-0x1.2000000000002p+0, -0x1.000000000000fp-3) = -0x1.0000000000001p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1p-3 ) = 0x1.0000000000002p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000001p-3) = 0x1.0000000000001p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000002p-3) = 0x1.0000000000001p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000003p-3) = 0x1.0000000000001p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000004p-3) = 0x1.0000000000001p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000005p-3) = 0x1.0000000000001p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000006p-3) = 0x1.0000000000001p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000007p-3) = 0x1.0000000000001p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000008p-3) = 0x1.0000000000001p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.0000000000009p-3) = 0x1p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000ap-3) = 0x1p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000bp-3) = 0x1p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000cp-3) = 0x1p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000dp-3) = 0x1p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000ep-3) = 0x1p+0
+-inf:PASSED:fsub(0x1.2000000000002p+0, 0x1.000000000000fp-3) = 0x1p+0
+near:PASSED:fmul(-0x1p+0 , 0x1.2p+0 ) = -0x1.2p+0
+near:PASSED:fmul(-0x1.0000000000001p+0, 0x1.2p+0 ) = -0x1.2000000000001p+0
+near:PASSED:fmul(-0x1.0000000000002p+0, 0x1.2p+0 ) = -0x1.2000000000002p+0
+near:PASSED:fmul(-0x1.0000000000003p+0, 0x1.2p+0 ) = -0x1.2000000000003p+0
+near:PASSED:fmul(-0x1.0000000000004p+0, 0x1.2p+0 ) = -0x1.2000000000004p+0
+near:PASSED:fmul(-0x1.0000000000005p+0, 0x1.2p+0 ) = -0x1.2000000000006p+0
+near:PASSED:fmul(-0x1.0000000000006p+0, 0x1.2p+0 ) = -0x1.2000000000007p+0
+near:PASSED:fmul(-0x1.0000000000007p+0, 0x1.2p+0 ) = -0x1.2000000000008p+0
+near:PASSED:fmul(-0x1.0000000000008p+0, 0x1.2p+0 ) = -0x1.2000000000009p+0
+near:PASSED:fmul(-0x1.0000000000009p+0, 0x1.2p+0 ) = -0x1.200000000000ap+0
+near:PASSED:fmul(-0x1.000000000000ap+0, 0x1.2p+0 ) = -0x1.200000000000bp+0
+near:PASSED:fmul(-0x1.000000000000bp+0, 0x1.2p+0 ) = -0x1.200000000000cp+0
+near:PASSED:fmul(-0x1.000000000000cp+0, 0x1.2p+0 ) = -0x1.200000000000ep+0
+near:PASSED:fmul(-0x1.000000000000dp+0, 0x1.2p+0 ) = -0x1.200000000000fp+0
+near:PASSED:fmul(-0x1.000000000000ep+0, 0x1.2p+0 ) = -0x1.200000000001p+0
+near:PASSED:fmul(-0x1.000000000000fp+0, 0x1.2p+0 ) = -0x1.2000000000011p+0
+near:PASSED:fmul(0x1p+0 , 0x1.2p+0 ) = 0x1.2p+0
+near:PASSED:fmul(0x1.0000000000001p+0, 0x1.2p+0 ) = 0x1.2000000000001p+0
+near:PASSED:fmul(0x1.0000000000002p+0, 0x1.2p+0 ) = 0x1.2000000000002p+0
+near:PASSED:fmul(0x1.0000000000003p+0, 0x1.2p+0 ) = 0x1.2000000000003p+0
+near:PASSED:fmul(0x1.0000000000004p+0, 0x1.2p+0 ) = 0x1.2000000000004p+0
+near:PASSED:fmul(0x1.0000000000005p+0, 0x1.2p+0 ) = 0x1.2000000000006p+0
+near:PASSED:fmul(0x1.0000000000006p+0, 0x1.2p+0 ) = 0x1.2000000000007p+0
+near:PASSED:fmul(0x1.0000000000007p+0, 0x1.2p+0 ) = 0x1.2000000000008p+0
+near:PASSED:fmul(0x1.0000000000008p+0, 0x1.2p+0 ) = 0x1.2000000000009p+0
+near:PASSED:fmul(0x1.0000000000009p+0, 0x1.2p+0 ) = 0x1.200000000000ap+0
+near:PASSED:fmul(0x1.000000000000ap+0, 0x1.2p+0 ) = 0x1.200000000000bp+0
+near:PASSED:fmul(0x1.000000000000bp+0, 0x1.2p+0 ) = 0x1.200000000000cp+0
+near:PASSED:fmul(0x1.000000000000cp+0, 0x1.2p+0 ) = 0x1.200000000000ep+0
+near:PASSED:fmul(0x1.000000000000dp+0, 0x1.2p+0 ) = 0x1.200000000000fp+0
+near:PASSED:fmul(0x1.000000000000ep+0, 0x1.2p+0 ) = 0x1.200000000001p+0
+near:PASSED:fmul(0x1.000000000000fp+0, 0x1.2p+0 ) = 0x1.2000000000011p+0
+zero:PASSED:fmul(-0x1p+0 , 0x1.2p+0 ) = -0x1.2p+0
+zero:PASSED:fmul(-0x1.0000000000001p+0, 0x1.2p+0 ) = -0x1.2000000000001p+0
+zero:PASSED:fmul(-0x1.0000000000002p+0, 0x1.2p+0 ) = -0x1.2000000000002p+0
+zero:PASSED:fmul(-0x1.0000000000003p+0, 0x1.2p+0 ) = -0x1.2000000000003p+0
+zero:PASSED:fmul(-0x1.0000000000004p+0, 0x1.2p+0 ) = -0x1.2000000000004p+0
+zero:PASSED:fmul(-0x1.0000000000005p+0, 0x1.2p+0 ) = -0x1.2000000000005p+0
+zero:PASSED:fmul(-0x1.0000000000006p+0, 0x1.2p+0 ) = -0x1.2000000000006p+0
+zero:PASSED:fmul(-0x1.0000000000007p+0, 0x1.2p+0 ) = -0x1.2000000000007p+0
+zero:PASSED:fmul(-0x1.0000000000008p+0, 0x1.2p+0 ) = -0x1.2000000000009p+0
+zero:PASSED:fmul(-0x1.0000000000009p+0, 0x1.2p+0 ) = -0x1.200000000000ap+0
+zero:PASSED:fmul(-0x1.000000000000ap+0, 0x1.2p+0 ) = -0x1.200000000000bp+0
+zero:PASSED:fmul(-0x1.000000000000bp+0, 0x1.2p+0 ) = -0x1.200000000000cp+0
+zero:PASSED:fmul(-0x1.000000000000cp+0, 0x1.2p+0 ) = -0x1.200000000000dp+0
+zero:PASSED:fmul(-0x1.000000000000dp+0, 0x1.2p+0 ) = -0x1.200000000000ep+0
+zero:PASSED:fmul(-0x1.000000000000ep+0, 0x1.2p+0 ) = -0x1.200000000000fp+0
+zero:PASSED:fmul(-0x1.000000000000fp+0, 0x1.2p+0 ) = -0x1.200000000001p+0
+zero:PASSED:fmul(0x1p+0 , 0x1.2p+0 ) = 0x1.2p+0
+zero:PASSED:fmul(0x1.0000000000001p+0, 0x1.2p+0 ) = 0x1.2000000000001p+0
+zero:PASSED:fmul(0x1.0000000000002p+0, 0x1.2p+0 ) = 0x1.2000000000002p+0
+zero:PASSED:fmul(0x1.0000000000003p+0, 0x1.2p+0 ) = 0x1.2000000000003p+0
+zero:PASSED:fmul(0x1.0000000000004p+0, 0x1.2p+0 ) = 0x1.2000000000004p+0
+zero:PASSED:fmul(0x1.0000000000005p+0, 0x1.2p+0 ) = 0x1.2000000000005p+0
+zero:PASSED:fmul(0x1.0000000000006p+0, 0x1.2p+0 ) = 0x1.2000000000006p+0
+zero:PASSED:fmul(0x1.0000000000007p+0, 0x1.2p+0 ) = 0x1.2000000000007p+0
+zero:PASSED:fmul(0x1.0000000000008p+0, 0x1.2p+0 ) = 0x1.2000000000009p+0
+zero:PASSED:fmul(0x1.0000000000009p+0, 0x1.2p+0 ) = 0x1.200000000000ap+0
+zero:PASSED:fmul(0x1.000000000000ap+0, 0x1.2p+0 ) = 0x1.200000000000bp+0
+zero:PASSED:fmul(0x1.000000000000bp+0, 0x1.2p+0 ) = 0x1.200000000000cp+0
+zero:PASSED:fmul(0x1.000000000000cp+0, 0x1.2p+0 ) = 0x1.200000000000dp+0
+zero:PASSED:fmul(0x1.000000000000dp+0, 0x1.2p+0 ) = 0x1.200000000000ep+0
+zero:PASSED:fmul(0x1.000000000000ep+0, 0x1.2p+0 ) = 0x1.200000000000fp+0
+zero:PASSED:fmul(0x1.000000000000fp+0, 0x1.2p+0 ) = 0x1.200000000001p+0
++inf:PASSED:fmul(-0x1p+0 , 0x1.2p+0 ) = -0x1.2p+0
++inf:PASSED:fmul(-0x1.0000000000001p+0, 0x1.2p+0 ) = -0x1.2000000000001p+0
++inf:PASSED:fmul(-0x1.0000000000002p+0, 0x1.2p+0 ) = -0x1.2000000000002p+0
++inf:PASSED:fmul(-0x1.0000000000003p+0, 0x1.2p+0 ) = -0x1.2000000000003p+0
++inf:PASSED:fmul(-0x1.0000000000004p+0, 0x1.2p+0 ) = -0x1.2000000000004p+0
++inf:PASSED:fmul(-0x1.0000000000005p+0, 0x1.2p+0 ) = -0x1.2000000000005p+0
++inf:PASSED:fmul(-0x1.0000000000006p+0, 0x1.2p+0 ) = -0x1.2000000000006p+0
++inf:PASSED:fmul(-0x1.0000000000007p+0, 0x1.2p+0 ) = -0x1.2000000000007p+0
++inf:PASSED:fmul(-0x1.0000000000008p+0, 0x1.2p+0 ) = -0x1.2000000000009p+0
++inf:PASSED:fmul(-0x1.0000000000009p+0, 0x1.2p+0 ) = -0x1.200000000000ap+0
++inf:PASSED:fmul(-0x1.000000000000ap+0, 0x1.2p+0 ) = -0x1.200000000000bp+0
++inf:PASSED:fmul(-0x1.000000000000bp+0, 0x1.2p+0 ) = -0x1.200000000000cp+0
++inf:PASSED:fmul(-0x1.000000000000cp+0, 0x1.2p+0 ) = -0x1.200000000000dp+0
++inf:PASSED:fmul(-0x1.000000000000dp+0, 0x1.2p+0 ) = -0x1.200000000000ep+0
++inf:PASSED:fmul(-0x1.000000000000ep+0, 0x1.2p+0 ) = -0x1.200000000000fp+0
++inf:PASSED:fmul(-0x1.000000000000fp+0, 0x1.2p+0 ) = -0x1.200000000001p+0
++inf:PASSED:fmul(0x1p+0 , 0x1.2p+0 ) = 0x1.2p+0
++inf:PASSED:fmul(0x1.0000000000001p+0, 0x1.2p+0 ) = 0x1.2000000000002p+0
++inf:PASSED:fmul(0x1.0000000000002p+0, 0x1.2p+0 ) = 0x1.2000000000003p+0
++inf:PASSED:fmul(0x1.0000000000003p+0, 0x1.2p+0 ) = 0x1.2000000000004p+0
++inf:PASSED:fmul(0x1.0000000000004p+0, 0x1.2p+0 ) = 0x1.2000000000005p+0
++inf:PASSED:fmul(0x1.0000000000005p+0, 0x1.2p+0 ) = 0x1.2000000000006p+0
++inf:PASSED:fmul(0x1.0000000000006p+0, 0x1.2p+0 ) = 0x1.2000000000007p+0
++inf:PASSED:fmul(0x1.0000000000007p+0, 0x1.2p+0 ) = 0x1.2000000000008p+0
++inf:PASSED:fmul(0x1.0000000000008p+0, 0x1.2p+0 ) = 0x1.2000000000009p+0
++inf:PASSED:fmul(0x1.0000000000009p+0, 0x1.2p+0 ) = 0x1.200000000000bp+0
++inf:PASSED:fmul(0x1.000000000000ap+0, 0x1.2p+0 ) = 0x1.200000000000cp+0
++inf:PASSED:fmul(0x1.000000000000bp+0, 0x1.2p+0 ) = 0x1.200000000000dp+0
++inf:PASSED:fmul(0x1.000000000000cp+0, 0x1.2p+0 ) = 0x1.200000000000ep+0
++inf:PASSED:fmul(0x1.000000000000dp+0, 0x1.2p+0 ) = 0x1.200000000000fp+0
++inf:PASSED:fmul(0x1.000000000000ep+0, 0x1.2p+0 ) = 0x1.200000000001p+0
++inf:PASSED:fmul(0x1.000000000000fp+0, 0x1.2p+0 ) = 0x1.2000000000011p+0
+-inf:PASSED:fmul(-0x1p+0 , 0x1.2p+0 ) = -0x1.2p+0
+-inf:PASSED:fmul(-0x1.0000000000001p+0, 0x1.2p+0 ) = -0x1.2000000000002p+0
+-inf:PASSED:fmul(-0x1.0000000000002p+0, 0x1.2p+0 ) = -0x1.2000000000003p+0
+-inf:PASSED:fmul(-0x1.0000000000003p+0, 0x1.2p+0 ) = -0x1.2000000000004p+0
+-inf:PASSED:fmul(-0x1.0000000000004p+0, 0x1.2p+0 ) = -0x1.2000000000005p+0
+-inf:PASSED:fmul(-0x1.0000000000005p+0, 0x1.2p+0 ) = -0x1.2000000000006p+0
+-inf:PASSED:fmul(-0x1.0000000000006p+0, 0x1.2p+0 ) = -0x1.2000000000007p+0
+-inf:PASSED:fmul(-0x1.0000000000007p+0, 0x1.2p+0 ) = -0x1.2000000000008p+0
+-inf:PASSED:fmul(-0x1.0000000000008p+0, 0x1.2p+0 ) = -0x1.2000000000009p+0
+-inf:PASSED:fmul(-0x1.0000000000009p+0, 0x1.2p+0 ) = -0x1.200000000000bp+0
+-inf:PASSED:fmul(-0x1.000000000000ap+0, 0x1.2p+0 ) = -0x1.200000000000cp+0
+-inf:PASSED:fmul(-0x1.000000000000bp+0, 0x1.2p+0 ) = -0x1.200000000000dp+0
+-inf:PASSED:fmul(-0x1.000000000000cp+0, 0x1.2p+0 ) = -0x1.200000000000ep+0
+-inf:PASSED:fmul(-0x1.000000000000dp+0, 0x1.2p+0 ) = -0x1.200000000000fp+0
+-inf:PASSED:fmul(-0x1.000000000000ep+0, 0x1.2p+0 ) = -0x1.200000000001p+0
+-inf:PASSED:fmul(-0x1.000000000000fp+0, 0x1.2p+0 ) = -0x1.2000000000011p+0
+-inf:PASSED:fmul(0x1p+0 , 0x1.2p+0 ) = 0x1.2p+0
+-inf:PASSED:fmul(0x1.0000000000001p+0, 0x1.2p+0 ) = 0x1.2000000000001p+0
+-inf:PASSED:fmul(0x1.0000000000002p+0, 0x1.2p+0 ) = 0x1.2000000000002p+0
+-inf:PASSED:fmul(0x1.0000000000003p+0, 0x1.2p+0 ) = 0x1.2000000000003p+0
+-inf:PASSED:fmul(0x1.0000000000004p+0, 0x1.2p+0 ) = 0x1.2000000000004p+0
+-inf:PASSED:fmul(0x1.0000000000005p+0, 0x1.2p+0 ) = 0x1.2000000000005p+0
+-inf:PASSED:fmul(0x1.0000000000006p+0, 0x1.2p+0 ) = 0x1.2000000000006p+0
+-inf:PASSED:fmul(0x1.0000000000007p+0, 0x1.2p+0 ) = 0x1.2000000000007p+0
+-inf:PASSED:fmul(0x1.0000000000008p+0, 0x1.2p+0 ) = 0x1.2000000000009p+0
+-inf:PASSED:fmul(0x1.0000000000009p+0, 0x1.2p+0 ) = 0x1.200000000000ap+0
+-inf:PASSED:fmul(0x1.000000000000ap+0, 0x1.2p+0 ) = 0x1.200000000000bp+0
+-inf:PASSED:fmul(0x1.000000000000bp+0, 0x1.2p+0 ) = 0x1.200000000000cp+0
+-inf:PASSED:fmul(0x1.000000000000cp+0, 0x1.2p+0 ) = 0x1.200000000000dp+0
+-inf:PASSED:fmul(0x1.000000000000dp+0, 0x1.2p+0 ) = 0x1.200000000000ep+0
+-inf:PASSED:fmul(0x1.000000000000ep+0, 0x1.2p+0 ) = 0x1.200000000000fp+0
+-inf:PASSED:fmul(0x1.000000000000fp+0, 0x1.2p+0 ) = 0x1.200000000001p+0
+-62/62
+near:PASSED:fdiv(-0x1.fp+5 , 0x1.fp+5 ) = -0x1p+0
+-64/62
+near:PASSED:fdiv(-0x1p+6 , 0x1.fp+5 ) = -0x1.0842108421084p+0
+-66/62
+near:PASSED:fdiv(-0x1.08p+6 , 0x1.fp+5 ) = -0x1.1084210842108p+0
+-100/62
+near:PASSED:fdiv(-0x1.9p+6 , 0x1.fp+5 ) = -0x1.9ce739ce739cep+0
+near:PASSED:fdiv(0x0.0000000000001p-1022, -0x1p+1 ) = -0x0p+0
+-102/62
+near:PASSED:fdiv(-0x1.98p+6 , 0x1.fp+5 ) = -0x1.a5294a5294a53p+0
+-106/62
+near:PASSED:fdiv(-0x1.a8p+6 , 0x1.fp+5 ) = -0x1.b5ad6b5ad6b5bp+0
+-108/62
+near:PASSED:fdiv(-0x1.bp+6 , 0x1.fp+5 ) = -0x1.bdef7bdef7bdfp+0
+-108/108
+near:PASSED:fdiv(-0x1.bp+6 , 0x1.bp+6 ) = -0x1p+0
+-112/62
+near:PASSED:fdiv(-0x1.cp+6 , 0x1.fp+5 ) = -0x1.ce739ce739ce7p+0
+-114/62
+near:PASSED:fdiv(-0x1.c8p+6 , 0x1.fp+5 ) = -0x1.d6b5ad6b5ad6bp+0
+-116/62
+near:PASSED:fdiv(-0x1.dp+6 , 0x1.fp+5 ) = -0x1.def7bdef7bdefp+0
+near:PASSED:fdiv(0x0.0000000000003p-1022, -0x1p+1 ) = -0x0.0000000000002p-1022
+-118/62
+near:PASSED:fdiv(-0x1.d8p+6 , 0x1.fp+5 ) = -0x1.e739ce739ce74p+0
+-90/62
+near:PASSED:fdiv(-0x1.68p+6 , 0x1.fp+5 ) = -0x1.739ce739ce73ap+0
+-92/62
+near:PASSED:fdiv(-0x1.7p+6 , 0x1.fp+5 ) = -0x1.7bdef7bdef7bep+0
+62/62
+near:PASSED:fdiv(0x1.fp+5 , 0x1.fp+5 ) = 0x1p+0
+64/62
+near:PASSED:fdiv(0x1p+6 , 0x1.fp+5 ) = 0x1.0842108421084p+0
+66/62
+near:PASSED:fdiv(0x1.08p+6 , 0x1.fp+5 ) = 0x1.1084210842108p+0
+100/62
+near:PASSED:fdiv(0x1.9p+6 , 0x1.fp+5 ) = 0x1.9ce739ce739cep+0
+near:PASSED:fdiv(0x0.0000000000001p-1022, 0x1p+1 ) = 0x0p+0
+102/62
+near:PASSED:fdiv(0x1.98p+6 , 0x1.fp+5 ) = 0x1.a5294a5294a53p+0
+106/62
+near:PASSED:fdiv(0x1.a8p+6 , 0x1.fp+5 ) = 0x1.b5ad6b5ad6b5bp+0
+108/62
+near:PASSED:fdiv(0x1.bp+6 , 0x1.fp+5 ) = 0x1.bdef7bdef7bdfp+0
+108/108
+near:PASSED:fdiv(0x1.bp+6 , 0x1.bp+6 ) = 0x1p+0
+112/62
+near:PASSED:fdiv(0x1.cp+6 , 0x1.fp+5 ) = 0x1.ce739ce739ce7p+0
+114/62
+near:PASSED:fdiv(0x1.c8p+6 , 0x1.fp+5 ) = 0x1.d6b5ad6b5ad6bp+0
+116/62
+near:PASSED:fdiv(0x1.dp+6 , 0x1.fp+5 ) = 0x1.def7bdef7bdefp+0
+near:PASSED:fdiv(0x0.0000000000003p-1022, 0x1p+1 ) = 0x0.0000000000002p-1022
+118/62
+near:PASSED:fdiv(0x1.d8p+6 , 0x1.fp+5 ) = 0x1.e739ce739ce74p+0
+90/62
+near:PASSED:fdiv(0x1.68p+6 , 0x1.fp+5 ) = 0x1.739ce739ce73ap+0
+92/62
+near:PASSED:fdiv(0x1.7p+6 , 0x1.fp+5 ) = 0x1.7bdef7bdef7bep+0
+-62/62
+zero:PASSED:fdiv(-0x1.fp+5 , 0x1.fp+5 ) = -0x1p+0
+-64/62
+zero:PASSED:fdiv(-0x1p+6 , 0x1.fp+5 ) = -0x1.0842108421084p+0
+-66/62
+zero:PASSED:fdiv(-0x1.08p+6 , 0x1.fp+5 ) = -0x1.1084210842108p+0
+-100/62
+zero:PASSED:fdiv(-0x1.9p+6 , 0x1.fp+5 ) = -0x1.9ce739ce739cep+0
+zero:PASSED:fdiv(0x0.0000000000001p-1022, -0x1p+1 ) = -0x0p+0
+-102/62
+zero:PASSED:fdiv(-0x1.98p+6 , 0x1.fp+5 ) = -0x1.a5294a5294a52p+0
+-106/62
+zero:PASSED:fdiv(-0x1.a8p+6 , 0x1.fp+5 ) = -0x1.b5ad6b5ad6b5ap+0
+-108/62
+zero:PASSED:fdiv(-0x1.bp+6 , 0x1.fp+5 ) = -0x1.bdef7bdef7bdep+0
+-108/108
+zero:PASSED:fdiv(-0x1.bp+6 , 0x1.bp+6 ) = -0x1p+0
+-112/62
+zero:PASSED:fdiv(-0x1.cp+6 , 0x1.fp+5 ) = -0x1.ce739ce739ce7p+0
+-114/62
+zero:PASSED:fdiv(-0x1.c8p+6 , 0x1.fp+5 ) = -0x1.d6b5ad6b5ad6bp+0
+-116/62
+zero:PASSED:fdiv(-0x1.dp+6 , 0x1.fp+5 ) = -0x1.def7bdef7bdefp+0
+zero:PASSED:fdiv(0x0.0000000000003p-1022, -0x1p+1 ) = -0x0.0000000000001p-1022
+-118/62
+zero:PASSED:fdiv(-0x1.d8p+6 , 0x1.fp+5 ) = -0x1.e739ce739ce73p+0
+-90/62
+zero:PASSED:fdiv(-0x1.68p+6 , 0x1.fp+5 ) = -0x1.739ce739ce739p+0
+-92/62
+zero:PASSED:fdiv(-0x1.7p+6 , 0x1.fp+5 ) = -0x1.7bdef7bdef7bdp+0
+62/62
+zero:PASSED:fdiv(0x1.fp+5 , 0x1.fp+5 ) = 0x1p+0
+64/62
+zero:PASSED:fdiv(0x1p+6 , 0x1.fp+5 ) = 0x1.0842108421084p+0
+66/62
+zero:PASSED:fdiv(0x1.08p+6 , 0x1.fp+5 ) = 0x1.1084210842108p+0
+100/62
+zero:PASSED:fdiv(0x1.9p+6 , 0x1.fp+5 ) = 0x1.9ce739ce739cep+0
+zero:PASSED:fdiv(0x0.0000000000001p-1022, 0x1p+1 ) = 0x0p+0
+102/62
+zero:PASSED:fdiv(0x1.98p+6 , 0x1.fp+5 ) = 0x1.a5294a5294a52p+0
+106/62
+zero:PASSED:fdiv(0x1.a8p+6 , 0x1.fp+5 ) = 0x1.b5ad6b5ad6b5ap+0
+108/62
+zero:PASSED:fdiv(0x1.bp+6 , 0x1.fp+5 ) = 0x1.bdef7bdef7bdep+0
+108/108
+zero:PASSED:fdiv(0x1.bp+6 , 0x1.bp+6 ) = 0x1p+0
+112/62
+zero:PASSED:fdiv(0x1.cp+6 , 0x1.fp+5 ) = 0x1.ce739ce739ce7p+0
+114/62
+zero:PASSED:fdiv(0x1.c8p+6 , 0x1.fp+5 ) = 0x1.d6b5ad6b5ad6bp+0
+116/62
+zero:PASSED:fdiv(0x1.dp+6 , 0x1.fp+5 ) = 0x1.def7bdef7bdefp+0
+zero:PASSED:fdiv(0x0.0000000000003p-1022, 0x1p+1 ) = 0x0.0000000000001p-1022
+118/62
+zero:PASSED:fdiv(0x1.d8p+6 , 0x1.fp+5 ) = 0x1.e739ce739ce73p+0
+90/62
+zero:PASSED:fdiv(0x1.68p+6 , 0x1.fp+5 ) = 0x1.739ce739ce739p+0
+92/62
+zero:PASSED:fdiv(0x1.7p+6 , 0x1.fp+5 ) = 0x1.7bdef7bdef7bdp+0
+-62/62
++inf:PASSED:fdiv(-0x1.fp+5 , 0x1.fp+5 ) = -0x1p+0
+-64/62
++inf:PASSED:fdiv(-0x1p+6 , 0x1.fp+5 ) = -0x1.0842108421084p+0
+-66/62
++inf:PASSED:fdiv(-0x1.08p+6 , 0x1.fp+5 ) = -0x1.1084210842108p+0
+-100/62
++inf:PASSED:fdiv(-0x1.9p+6 , 0x1.fp+5 ) = -0x1.9ce739ce739cep+0
++inf:PASSED:fdiv(0x0.0000000000001p-1022, -0x1p+1 ) = -0x0p+0
+-102/62
++inf:PASSED:fdiv(-0x1.98p+6 , 0x1.fp+5 ) = -0x1.a5294a5294a52p+0
+-106/62
++inf:PASSED:fdiv(-0x1.a8p+6 , 0x1.fp+5 ) = -0x1.b5ad6b5ad6b5ap+0
+-108/62
++inf:PASSED:fdiv(-0x1.bp+6 , 0x1.fp+5 ) = -0x1.bdef7bdef7bdep+0
+-108/108
++inf:PASSED:fdiv(-0x1.bp+6 , 0x1.bp+6 ) = -0x1p+0
+-112/62
++inf:PASSED:fdiv(-0x1.cp+6 , 0x1.fp+5 ) = -0x1.ce739ce739ce7p+0
+-114/62
++inf:PASSED:fdiv(-0x1.c8p+6 , 0x1.fp+5 ) = -0x1.d6b5ad6b5ad6bp+0
+-116/62
++inf:PASSED:fdiv(-0x1.dp+6 , 0x1.fp+5 ) = -0x1.def7bdef7bdefp+0
++inf:PASSED:fdiv(0x0.0000000000003p-1022, -0x1p+1 ) = -0x0.0000000000001p-1022
+-118/62
++inf:PASSED:fdiv(-0x1.d8p+6 , 0x1.fp+5 ) = -0x1.e739ce739ce73p+0
+-90/62
++inf:PASSED:fdiv(-0x1.68p+6 , 0x1.fp+5 ) = -0x1.739ce739ce739p+0
+-92/62
++inf:PASSED:fdiv(-0x1.7p+6 , 0x1.fp+5 ) = -0x1.7bdef7bdef7bdp+0
+62/62
++inf:PASSED:fdiv(0x1.fp+5 , 0x1.fp+5 ) = 0x1p+0
+64/62
++inf:PASSED:fdiv(0x1p+6 , 0x1.fp+5 ) = 0x1.0842108421085p+0
+66/62
++inf:PASSED:fdiv(0x1.08p+6 , 0x1.fp+5 ) = 0x1.1084210842109p+0
+100/62
++inf:PASSED:fdiv(0x1.9p+6 , 0x1.fp+5 ) = 0x1.9ce739ce739cfp+0
++inf:PASSED:fdiv(0x0.0000000000001p-1022, 0x1p+1 ) = 0x0.0000000000001p-1022
+102/62
++inf:PASSED:fdiv(0x1.98p+6 , 0x1.fp+5 ) = 0x1.a5294a5294a53p+0
+106/62
++inf:PASSED:fdiv(0x1.a8p+6 , 0x1.fp+5 ) = 0x1.b5ad6b5ad6b5bp+0
+108/62
++inf:PASSED:fdiv(0x1.bp+6 , 0x1.fp+5 ) = 0x1.bdef7bdef7bdfp+0
+108/108
++inf:PASSED:fdiv(0x1.bp+6 , 0x1.bp+6 ) = 0x1p+0
+112/62
++inf:PASSED:fdiv(0x1.cp+6 , 0x1.fp+5 ) = 0x1.ce739ce739ce8p+0
+114/62
++inf:PASSED:fdiv(0x1.c8p+6 , 0x1.fp+5 ) = 0x1.d6b5ad6b5ad6cp+0
+116/62
++inf:PASSED:fdiv(0x1.dp+6 , 0x1.fp+5 ) = 0x1.def7bdef7bdfp+0
++inf:PASSED:fdiv(0x0.0000000000003p-1022, 0x1p+1 ) = 0x0.0000000000002p-1022
+118/62
++inf:PASSED:fdiv(0x1.d8p+6 , 0x1.fp+5 ) = 0x1.e739ce739ce74p+0
+90/62
++inf:PASSED:fdiv(0x1.68p+6 , 0x1.fp+5 ) = 0x1.739ce739ce73ap+0
+92/62
++inf:PASSED:fdiv(0x1.7p+6 , 0x1.fp+5 ) = 0x1.7bdef7bdef7bep+0
+-62/62
+-inf:PASSED:fdiv(-0x1.fp+5 , 0x1.fp+5 ) = -0x1p+0
+-64/62
+-inf:PASSED:fdiv(-0x1p+6 , 0x1.fp+5 ) = -0x1.0842108421085p+0
+-66/62
+-inf:PASSED:fdiv(-0x1.08p+6 , 0x1.fp+5 ) = -0x1.1084210842109p+0
+-100/62
+-inf:PASSED:fdiv(-0x1.9p+6 , 0x1.fp+5 ) = -0x1.9ce739ce739cfp+0
+-inf:PASSED:fdiv(0x0.0000000000001p-1022, -0x1p+1 ) = -0x0.0000000000001p-1022
+-102/62
+-inf:PASSED:fdiv(-0x1.98p+6 , 0x1.fp+5 ) = -0x1.a5294a5294a53p+0
+-106/62
+-inf:PASSED:fdiv(-0x1.a8p+6 , 0x1.fp+5 ) = -0x1.b5ad6b5ad6b5bp+0
+-108/62
+-inf:PASSED:fdiv(-0x1.bp+6 , 0x1.fp+5 ) = -0x1.bdef7bdef7bdfp+0
+-108/108
+-inf:PASSED:fdiv(-0x1.bp+6 , 0x1.bp+6 ) = -0x1p+0
+-112/62
+-inf:PASSED:fdiv(-0x1.cp+6 , 0x1.fp+5 ) = -0x1.ce739ce739ce8p+0
+-114/62
+-inf:PASSED:fdiv(-0x1.c8p+6 , 0x1.fp+5 ) = -0x1.d6b5ad6b5ad6cp+0
+-116/62
+-inf:PASSED:fdiv(-0x1.dp+6 , 0x1.fp+5 ) = -0x1.def7bdef7bdfp+0
+-inf:PASSED:fdiv(0x0.0000000000003p-1022, -0x1p+1 ) = -0x0.0000000000002p-1022
+-118/62
+-inf:PASSED:fdiv(-0x1.d8p+6 , 0x1.fp+5 ) = -0x1.e739ce739ce74p+0
+-90/62
+-inf:PASSED:fdiv(-0x1.68p+6 , 0x1.fp+5 ) = -0x1.739ce739ce73ap+0
+-92/62
+-inf:PASSED:fdiv(-0x1.7p+6 , 0x1.fp+5 ) = -0x1.7bdef7bdef7bep+0
+62/62
+-inf:PASSED:fdiv(0x1.fp+5 , 0x1.fp+5 ) = 0x1p+0
+64/62
+-inf:PASSED:fdiv(0x1p+6 , 0x1.fp+5 ) = 0x1.0842108421084p+0
+66/62
+-inf:PASSED:fdiv(0x1.08p+6 , 0x1.fp+5 ) = 0x1.1084210842108p+0
+100/62
+-inf:PASSED:fdiv(0x1.9p+6 , 0x1.fp+5 ) = 0x1.9ce739ce739cep+0
+-inf:PASSED:fdiv(0x0.0000000000001p-1022, 0x1p+1 ) = 0x0p+0
+102/62
+-inf:PASSED:fdiv(0x1.98p+6 , 0x1.fp+5 ) = 0x1.a5294a5294a52p+0
+106/62
+-inf:PASSED:fdiv(0x1.a8p+6 , 0x1.fp+5 ) = 0x1.b5ad6b5ad6b5ap+0
+108/62
+-inf:PASSED:fdiv(0x1.bp+6 , 0x1.fp+5 ) = 0x1.bdef7bdef7bdep+0
+108/108
+-inf:PASSED:fdiv(0x1.bp+6 , 0x1.bp+6 ) = 0x1p+0
+112/62
+-inf:PASSED:fdiv(0x1.cp+6 , 0x1.fp+5 ) = 0x1.ce739ce739ce7p+0
+114/62
+-inf:PASSED:fdiv(0x1.c8p+6 , 0x1.fp+5 ) = 0x1.d6b5ad6b5ad6bp+0
+116/62
+-inf:PASSED:fdiv(0x1.dp+6 , 0x1.fp+5 ) = 0x1.def7bdef7bdefp+0
+-inf:PASSED:fdiv(0x0.0000000000003p-1022, 0x1p+1 ) = 0x0.0000000000001p-1022
+118/62
+-inf:PASSED:fdiv(0x1.d8p+6 , 0x1.fp+5 ) = 0x1.e739ce739ce73p+0
+90/62
+-inf:PASSED:fdiv(0x1.68p+6 , 0x1.fp+5 ) = 0x1.739ce739ce739p+0
+92/62
+-inf:PASSED:fdiv(0x1.7p+6 , 0x1.fp+5 ) = 0x1.7bdef7bdef7bdp+0
+near:PASSED:fmadd(-0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.ap+0
+near:PASSED:fmadd(-0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000002p+0
+near:PASSED:fmadd(-0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000003p+0
+near:PASSED:fmadd(-0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000004p+0
+near:PASSED:fmadd(-0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000005p+0
+near:PASSED:fmadd(-0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000006p+0
+near:PASSED:fmadd(-0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000007p+0
+near:PASSED:fmadd(-0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000008p+0
+near:PASSED:fmadd(-0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+near:PASSED:fmadd(-0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+near:PASSED:fmadd(-0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+near:PASSED:fmadd(-0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000dp+0
+near:PASSED:fmadd(-0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+near:PASSED:fmadd(-0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000fp+0
+near:PASSED:fmadd(-0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000001p+0
+near:PASSED:fmadd(-0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000011p+0
+near:PASSED:fmadd(0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.ap+0
+near:PASSED:fmadd(0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000002p+0
+near:PASSED:fmadd(0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000003p+0
+near:PASSED:fmadd(0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000004p+0
+near:PASSED:fmadd(0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000005p+0
+near:PASSED:fmadd(0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000006p+0
+near:PASSED:fmadd(0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000007p+0
+near:PASSED:fmadd(0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000008p+0
+near:PASSED:fmadd(0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+near:PASSED:fmadd(0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+near:PASSED:fmadd(0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+near:PASSED:fmadd(0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000dp+0
+near:PASSED:fmadd(0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+near:PASSED:fmadd(0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000fp+0
+near:PASSED:fmadd(0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000001p+0
+near:PASSED:fmadd(0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000011p+0
+zero:PASSED:fmadd(-0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.ap+0
+zero:PASSED:fmadd(-0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000001p+0
+zero:PASSED:fmadd(-0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000002p+0
+zero:PASSED:fmadd(-0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000003p+0
+zero:PASSED:fmadd(-0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000005p+0
+zero:PASSED:fmadd(-0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000006p+0
+zero:PASSED:fmadd(-0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000007p+0
+zero:PASSED:fmadd(-0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000008p+0
+zero:PASSED:fmadd(-0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000009p+0
+zero:PASSED:fmadd(-0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+zero:PASSED:fmadd(-0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+zero:PASSED:fmadd(-0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+zero:PASSED:fmadd(-0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+zero:PASSED:fmadd(-0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000fp+0
+zero:PASSED:fmadd(-0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000001p+0
+zero:PASSED:fmadd(-0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000011p+0
+zero:PASSED:fmadd(0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.ap+0
+zero:PASSED:fmadd(0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000001p+0
+zero:PASSED:fmadd(0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000002p+0
+zero:PASSED:fmadd(0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000003p+0
+zero:PASSED:fmadd(0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000005p+0
+zero:PASSED:fmadd(0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000006p+0
+zero:PASSED:fmadd(0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000007p+0
+zero:PASSED:fmadd(0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000008p+0
+zero:PASSED:fmadd(0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000009p+0
+zero:PASSED:fmadd(0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+zero:PASSED:fmadd(0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+zero:PASSED:fmadd(0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+zero:PASSED:fmadd(0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+zero:PASSED:fmadd(0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000fp+0
+zero:PASSED:fmadd(0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000001p+0
+zero:PASSED:fmadd(0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000011p+0
++inf:PASSED:fmadd(-0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.ap+0
++inf:PASSED:fmadd(-0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000001p+0
++inf:PASSED:fmadd(-0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000002p+0
++inf:PASSED:fmadd(-0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000003p+0
++inf:PASSED:fmadd(-0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000005p+0
++inf:PASSED:fmadd(-0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000006p+0
++inf:PASSED:fmadd(-0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000007p+0
++inf:PASSED:fmadd(-0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000008p+0
++inf:PASSED:fmadd(-0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000009p+0
++inf:PASSED:fmadd(-0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ap+0
++inf:PASSED:fmadd(-0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000bp+0
++inf:PASSED:fmadd(-0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000cp+0
++inf:PASSED:fmadd(-0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ep+0
++inf:PASSED:fmadd(-0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000fp+0
++inf:PASSED:fmadd(-0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000001p+0
++inf:PASSED:fmadd(-0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000011p+0
++inf:PASSED:fmadd(0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000001p+0
++inf:PASSED:fmadd(0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000002p+0
++inf:PASSED:fmadd(0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000003p+0
++inf:PASSED:fmadd(0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000004p+0
++inf:PASSED:fmadd(0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000005p+0
++inf:PASSED:fmadd(0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000007p+0
++inf:PASSED:fmadd(0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000008p+0
++inf:PASSED:fmadd(0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000009p+0
++inf:PASSED:fmadd(0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ap+0
++inf:PASSED:fmadd(0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000bp+0
++inf:PASSED:fmadd(0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000cp+0
++inf:PASSED:fmadd(0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000dp+0
++inf:PASSED:fmadd(0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ep+0
++inf:PASSED:fmadd(0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000001p+0
++inf:PASSED:fmadd(0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000011p+0
++inf:PASSED:fmadd(0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000012p+0
+-inf:PASSED:fmadd(-0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000001p+0
+-inf:PASSED:fmadd(-0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000002p+0
+-inf:PASSED:fmadd(-0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000003p+0
+-inf:PASSED:fmadd(-0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000004p+0
+-inf:PASSED:fmadd(-0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000005p+0
+-inf:PASSED:fmadd(-0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000007p+0
+-inf:PASSED:fmadd(-0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000008p+0
+-inf:PASSED:fmadd(-0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000009p+0
+-inf:PASSED:fmadd(-0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+-inf:PASSED:fmadd(-0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+-inf:PASSED:fmadd(-0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+-inf:PASSED:fmadd(-0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000dp+0
+-inf:PASSED:fmadd(-0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+-inf:PASSED:fmadd(-0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000001p+0
+-inf:PASSED:fmadd(-0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000011p+0
+-inf:PASSED:fmadd(-0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000012p+0
+-inf:PASSED:fmadd(0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.ap+0
+-inf:PASSED:fmadd(0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000001p+0
+-inf:PASSED:fmadd(0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000002p+0
+-inf:PASSED:fmadd(0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000003p+0
+-inf:PASSED:fmadd(0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000005p+0
+-inf:PASSED:fmadd(0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000006p+0
+-inf:PASSED:fmadd(0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000007p+0
+-inf:PASSED:fmadd(0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000008p+0
+-inf:PASSED:fmadd(0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000009p+0
+-inf:PASSED:fmadd(0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+-inf:PASSED:fmadd(0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+-inf:PASSED:fmadd(0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+-inf:PASSED:fmadd(0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+-inf:PASSED:fmadd(0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000fp+0
+-inf:PASSED:fmadd(0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000001p+0
+-inf:PASSED:fmadd(0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000011p+0
+near:PASSED:fmsub(-0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.ap+0
+near:PASSED:fmsub(-0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000002p+0
+near:PASSED:fmsub(-0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000003p+0
+near:PASSED:fmsub(-0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000004p+0
+near:PASSED:fmsub(-0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000005p+0
+near:PASSED:fmsub(-0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000006p+0
+near:PASSED:fmsub(-0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000007p+0
+near:PASSED:fmsub(-0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000008p+0
+near:PASSED:fmsub(-0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+near:PASSED:fmsub(-0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+near:PASSED:fmsub(-0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+near:PASSED:fmsub(-0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000dp+0
+near:PASSED:fmsub(-0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+near:PASSED:fmsub(-0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000fp+0
+near:PASSED:fmsub(-0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000001p+0
+near:PASSED:fmsub(-0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000011p+0
+near:PASSED:fmsub(0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.ap+0
+near:PASSED:fmsub(0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000002p+0
+near:PASSED:fmsub(0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000003p+0
+near:PASSED:fmsub(0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000004p+0
+near:PASSED:fmsub(0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000005p+0
+near:PASSED:fmsub(0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000006p+0
+near:PASSED:fmsub(0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000007p+0
+near:PASSED:fmsub(0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000008p+0
+near:PASSED:fmsub(0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+near:PASSED:fmsub(0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+near:PASSED:fmsub(0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+near:PASSED:fmsub(0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000dp+0
+near:PASSED:fmsub(0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+near:PASSED:fmsub(0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000fp+0
+near:PASSED:fmsub(0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000001p+0
+near:PASSED:fmsub(0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000011p+0
+zero:PASSED:fmsub(-0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.ap+0
+zero:PASSED:fmsub(-0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000001p+0
+zero:PASSED:fmsub(-0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000002p+0
+zero:PASSED:fmsub(-0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000003p+0
+zero:PASSED:fmsub(-0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000005p+0
+zero:PASSED:fmsub(-0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000006p+0
+zero:PASSED:fmsub(-0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000007p+0
+zero:PASSED:fmsub(-0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000008p+0
+zero:PASSED:fmsub(-0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000009p+0
+zero:PASSED:fmsub(-0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+zero:PASSED:fmsub(-0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+zero:PASSED:fmsub(-0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+zero:PASSED:fmsub(-0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+zero:PASSED:fmsub(-0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000fp+0
+zero:PASSED:fmsub(-0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000001p+0
+zero:PASSED:fmsub(-0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000011p+0
+zero:PASSED:fmsub(0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.ap+0
+zero:PASSED:fmsub(0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000001p+0
+zero:PASSED:fmsub(0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000002p+0
+zero:PASSED:fmsub(0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000003p+0
+zero:PASSED:fmsub(0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000005p+0
+zero:PASSED:fmsub(0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000006p+0
+zero:PASSED:fmsub(0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000007p+0
+zero:PASSED:fmsub(0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000008p+0
+zero:PASSED:fmsub(0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000009p+0
+zero:PASSED:fmsub(0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+zero:PASSED:fmsub(0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+zero:PASSED:fmsub(0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+zero:PASSED:fmsub(0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+zero:PASSED:fmsub(0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000fp+0
+zero:PASSED:fmsub(0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000001p+0
+zero:PASSED:fmsub(0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000011p+0
++inf:PASSED:fmsub(-0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.ap+0
++inf:PASSED:fmsub(-0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000001p+0
++inf:PASSED:fmsub(-0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000002p+0
++inf:PASSED:fmsub(-0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000003p+0
++inf:PASSED:fmsub(-0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000005p+0
++inf:PASSED:fmsub(-0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000006p+0
++inf:PASSED:fmsub(-0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000007p+0
++inf:PASSED:fmsub(-0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000008p+0
++inf:PASSED:fmsub(-0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000009p+0
++inf:PASSED:fmsub(-0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ap+0
++inf:PASSED:fmsub(-0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000bp+0
++inf:PASSED:fmsub(-0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000cp+0
++inf:PASSED:fmsub(-0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ep+0
++inf:PASSED:fmsub(-0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000fp+0
++inf:PASSED:fmsub(-0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000001p+0
++inf:PASSED:fmsub(-0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000011p+0
++inf:PASSED:fmsub(0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000001p+0
++inf:PASSED:fmsub(0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000002p+0
++inf:PASSED:fmsub(0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000003p+0
++inf:PASSED:fmsub(0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000004p+0
++inf:PASSED:fmsub(0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000005p+0
++inf:PASSED:fmsub(0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000007p+0
++inf:PASSED:fmsub(0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000008p+0
++inf:PASSED:fmsub(0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000009p+0
++inf:PASSED:fmsub(0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ap+0
++inf:PASSED:fmsub(0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000bp+0
++inf:PASSED:fmsub(0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000cp+0
++inf:PASSED:fmsub(0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000dp+0
++inf:PASSED:fmsub(0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ep+0
++inf:PASSED:fmsub(0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000001p+0
++inf:PASSED:fmsub(0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000011p+0
++inf:PASSED:fmsub(0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000012p+0
+-inf:PASSED:fmsub(-0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000001p+0
+-inf:PASSED:fmsub(-0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000002p+0
+-inf:PASSED:fmsub(-0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000003p+0
+-inf:PASSED:fmsub(-0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000004p+0
+-inf:PASSED:fmsub(-0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000005p+0
+-inf:PASSED:fmsub(-0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000007p+0
+-inf:PASSED:fmsub(-0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000008p+0
+-inf:PASSED:fmsub(-0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000009p+0
+-inf:PASSED:fmsub(-0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+-inf:PASSED:fmsub(-0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+-inf:PASSED:fmsub(-0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+-inf:PASSED:fmsub(-0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000dp+0
+-inf:PASSED:fmsub(-0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+-inf:PASSED:fmsub(-0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000001p+0
+-inf:PASSED:fmsub(-0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000011p+0
+-inf:PASSED:fmsub(-0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000012p+0
+-inf:PASSED:fmsub(0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.ap+0
+-inf:PASSED:fmsub(0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000001p+0
+-inf:PASSED:fmsub(0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000002p+0
+-inf:PASSED:fmsub(0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000003p+0
+-inf:PASSED:fmsub(0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000005p+0
+-inf:PASSED:fmsub(0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000006p+0
+-inf:PASSED:fmsub(0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000007p+0
+-inf:PASSED:fmsub(0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000008p+0
+-inf:PASSED:fmsub(0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000009p+0
+-inf:PASSED:fmsub(0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+-inf:PASSED:fmsub(0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+-inf:PASSED:fmsub(0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+-inf:PASSED:fmsub(0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+-inf:PASSED:fmsub(0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000fp+0
+-inf:PASSED:fmsub(0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000001p+0
+-inf:PASSED:fmsub(0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000011p+0
+near:PASSED:fnmadd(-0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.ap+0
+near:PASSED:fnmadd(-0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000002p+0
+near:PASSED:fnmadd(-0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000003p+0
+near:PASSED:fnmadd(-0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000004p+0
+near:PASSED:fnmadd(-0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000005p+0
+near:PASSED:fnmadd(-0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000006p+0
+near:PASSED:fnmadd(-0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000007p+0
+near:PASSED:fnmadd(-0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000008p+0
+near:PASSED:fnmadd(-0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+near:PASSED:fnmadd(-0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+near:PASSED:fnmadd(-0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+near:PASSED:fnmadd(-0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000dp+0
+near:PASSED:fnmadd(-0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+near:PASSED:fnmadd(-0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000fp+0
+near:PASSED:fnmadd(-0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000001p+0
+near:PASSED:fnmadd(-0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000011p+0
+near:PASSED:fnmadd(0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.ap+0
+near:PASSED:fnmadd(0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000002p+0
+near:PASSED:fnmadd(0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000003p+0
+near:PASSED:fnmadd(0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000004p+0
+near:PASSED:fnmadd(0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000005p+0
+near:PASSED:fnmadd(0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000006p+0
+near:PASSED:fnmadd(0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000007p+0
+near:PASSED:fnmadd(0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000008p+0
+near:PASSED:fnmadd(0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+near:PASSED:fnmadd(0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+near:PASSED:fnmadd(0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+near:PASSED:fnmadd(0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000dp+0
+near:PASSED:fnmadd(0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+near:PASSED:fnmadd(0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000fp+0
+near:PASSED:fnmadd(0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000001p+0
+near:PASSED:fnmadd(0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000011p+0
+zero:PASSED:fnmadd(-0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.ap+0
+zero:PASSED:fnmadd(-0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000001p+0
+zero:PASSED:fnmadd(-0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000002p+0
+zero:PASSED:fnmadd(-0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000003p+0
+zero:PASSED:fnmadd(-0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000005p+0
+zero:PASSED:fnmadd(-0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000006p+0
+zero:PASSED:fnmadd(-0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000007p+0
+zero:PASSED:fnmadd(-0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000008p+0
+zero:PASSED:fnmadd(-0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000009p+0
+zero:PASSED:fnmadd(-0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+zero:PASSED:fnmadd(-0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+zero:PASSED:fnmadd(-0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+zero:PASSED:fnmadd(-0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+zero:PASSED:fnmadd(-0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000fp+0
+zero:PASSED:fnmadd(-0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000001p+0
+zero:PASSED:fnmadd(-0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000011p+0
+zero:PASSED:fnmadd(0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.ap+0
+zero:PASSED:fnmadd(0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000001p+0
+zero:PASSED:fnmadd(0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000002p+0
+zero:PASSED:fnmadd(0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000003p+0
+zero:PASSED:fnmadd(0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000005p+0
+zero:PASSED:fnmadd(0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000006p+0
+zero:PASSED:fnmadd(0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000007p+0
+zero:PASSED:fnmadd(0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000008p+0
+zero:PASSED:fnmadd(0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000009p+0
+zero:PASSED:fnmadd(0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+zero:PASSED:fnmadd(0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+zero:PASSED:fnmadd(0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+zero:PASSED:fnmadd(0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+zero:PASSED:fnmadd(0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000fp+0
+zero:PASSED:fnmadd(0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000001p+0
+zero:PASSED:fnmadd(0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000011p+0
++inf:PASSED:fnmadd(-0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.ap+0
++inf:PASSED:fnmadd(-0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000001p+0
++inf:PASSED:fnmadd(-0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000002p+0
++inf:PASSED:fnmadd(-0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000003p+0
++inf:PASSED:fnmadd(-0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000005p+0
++inf:PASSED:fnmadd(-0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000006p+0
++inf:PASSED:fnmadd(-0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000007p+0
++inf:PASSED:fnmadd(-0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000008p+0
++inf:PASSED:fnmadd(-0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000009p+0
++inf:PASSED:fnmadd(-0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ap+0
++inf:PASSED:fnmadd(-0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000bp+0
++inf:PASSED:fnmadd(-0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000cp+0
++inf:PASSED:fnmadd(-0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ep+0
++inf:PASSED:fnmadd(-0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000fp+0
++inf:PASSED:fnmadd(-0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000001p+0
++inf:PASSED:fnmadd(-0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000011p+0
++inf:PASSED:fnmadd(0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000001p+0
++inf:PASSED:fnmadd(0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000002p+0
++inf:PASSED:fnmadd(0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000003p+0
++inf:PASSED:fnmadd(0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000004p+0
++inf:PASSED:fnmadd(0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000005p+0
++inf:PASSED:fnmadd(0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000007p+0
++inf:PASSED:fnmadd(0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000008p+0
++inf:PASSED:fnmadd(0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000009p+0
++inf:PASSED:fnmadd(0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ap+0
++inf:PASSED:fnmadd(0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000bp+0
++inf:PASSED:fnmadd(0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000cp+0
++inf:PASSED:fnmadd(0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000dp+0
++inf:PASSED:fnmadd(0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ep+0
++inf:PASSED:fnmadd(0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000001p+0
++inf:PASSED:fnmadd(0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000011p+0
++inf:PASSED:fnmadd(0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000012p+0
+-inf:PASSED:fnmadd(-0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000001p+0
+-inf:PASSED:fnmadd(-0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000002p+0
+-inf:PASSED:fnmadd(-0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000003p+0
+-inf:PASSED:fnmadd(-0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000004p+0
+-inf:PASSED:fnmadd(-0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000005p+0
+-inf:PASSED:fnmadd(-0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000007p+0
+-inf:PASSED:fnmadd(-0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000008p+0
+-inf:PASSED:fnmadd(-0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000009p+0
+-inf:PASSED:fnmadd(-0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+-inf:PASSED:fnmadd(-0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+-inf:PASSED:fnmadd(-0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+-inf:PASSED:fnmadd(-0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000dp+0
+-inf:PASSED:fnmadd(-0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+-inf:PASSED:fnmadd(-0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a00000000001p+0
+-inf:PASSED:fnmadd(-0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000011p+0
+-inf:PASSED:fnmadd(-0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = 0x1.a000000000012p+0
+-inf:PASSED:fnmadd(0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.ap+0
+-inf:PASSED:fnmadd(0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000001p+0
+-inf:PASSED:fnmadd(0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000002p+0
+-inf:PASSED:fnmadd(0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000003p+0
+-inf:PASSED:fnmadd(0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000005p+0
+-inf:PASSED:fnmadd(0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000006p+0
+-inf:PASSED:fnmadd(0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000007p+0
+-inf:PASSED:fnmadd(0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000008p+0
+-inf:PASSED:fnmadd(0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000009p+0
+-inf:PASSED:fnmadd(0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+-inf:PASSED:fnmadd(0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+-inf:PASSED:fnmadd(0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+-inf:PASSED:fnmadd(0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+-inf:PASSED:fnmadd(0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000000fp+0
+-inf:PASSED:fnmadd(0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a00000000001p+0
+-inf:PASSED:fnmadd(0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = -0x1.a000000000011p+0
+near:PASSED:fnmsub(-0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.ap+0
+near:PASSED:fnmsub(-0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000002p+0
+near:PASSED:fnmsub(-0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000003p+0
+near:PASSED:fnmsub(-0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000004p+0
+near:PASSED:fnmsub(-0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000005p+0
+near:PASSED:fnmsub(-0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000006p+0
+near:PASSED:fnmsub(-0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000007p+0
+near:PASSED:fnmsub(-0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000008p+0
+near:PASSED:fnmsub(-0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+near:PASSED:fnmsub(-0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+near:PASSED:fnmsub(-0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+near:PASSED:fnmsub(-0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000dp+0
+near:PASSED:fnmsub(-0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+near:PASSED:fnmsub(-0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000fp+0
+near:PASSED:fnmsub(-0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000001p+0
+near:PASSED:fnmsub(-0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000011p+0
+near:PASSED:fnmsub(0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.ap+0
+near:PASSED:fnmsub(0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000002p+0
+near:PASSED:fnmsub(0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000003p+0
+near:PASSED:fnmsub(0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000004p+0
+near:PASSED:fnmsub(0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000005p+0
+near:PASSED:fnmsub(0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000006p+0
+near:PASSED:fnmsub(0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000007p+0
+near:PASSED:fnmsub(0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000008p+0
+near:PASSED:fnmsub(0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+near:PASSED:fnmsub(0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+near:PASSED:fnmsub(0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+near:PASSED:fnmsub(0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000dp+0
+near:PASSED:fnmsub(0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+near:PASSED:fnmsub(0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000fp+0
+near:PASSED:fnmsub(0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000001p+0
+near:PASSED:fnmsub(0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000011p+0
+zero:PASSED:fnmsub(-0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.ap+0
+zero:PASSED:fnmsub(-0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000001p+0
+zero:PASSED:fnmsub(-0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000002p+0
+zero:PASSED:fnmsub(-0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000003p+0
+zero:PASSED:fnmsub(-0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000005p+0
+zero:PASSED:fnmsub(-0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000006p+0
+zero:PASSED:fnmsub(-0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000007p+0
+zero:PASSED:fnmsub(-0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000008p+0
+zero:PASSED:fnmsub(-0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000009p+0
+zero:PASSED:fnmsub(-0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+zero:PASSED:fnmsub(-0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+zero:PASSED:fnmsub(-0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+zero:PASSED:fnmsub(-0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+zero:PASSED:fnmsub(-0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000fp+0
+zero:PASSED:fnmsub(-0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000001p+0
+zero:PASSED:fnmsub(-0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000011p+0
+zero:PASSED:fnmsub(0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.ap+0
+zero:PASSED:fnmsub(0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000001p+0
+zero:PASSED:fnmsub(0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000002p+0
+zero:PASSED:fnmsub(0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000003p+0
+zero:PASSED:fnmsub(0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000005p+0
+zero:PASSED:fnmsub(0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000006p+0
+zero:PASSED:fnmsub(0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000007p+0
+zero:PASSED:fnmsub(0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000008p+0
+zero:PASSED:fnmsub(0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000009p+0
+zero:PASSED:fnmsub(0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+zero:PASSED:fnmsub(0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+zero:PASSED:fnmsub(0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+zero:PASSED:fnmsub(0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+zero:PASSED:fnmsub(0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000fp+0
+zero:PASSED:fnmsub(0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000001p+0
+zero:PASSED:fnmsub(0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000011p+0
++inf:PASSED:fnmsub(-0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.ap+0
++inf:PASSED:fnmsub(-0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000001p+0
++inf:PASSED:fnmsub(-0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000002p+0
++inf:PASSED:fnmsub(-0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000003p+0
++inf:PASSED:fnmsub(-0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000005p+0
++inf:PASSED:fnmsub(-0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000006p+0
++inf:PASSED:fnmsub(-0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000007p+0
++inf:PASSED:fnmsub(-0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000008p+0
++inf:PASSED:fnmsub(-0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000009p+0
++inf:PASSED:fnmsub(-0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ap+0
++inf:PASSED:fnmsub(-0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000bp+0
++inf:PASSED:fnmsub(-0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000cp+0
++inf:PASSED:fnmsub(-0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ep+0
++inf:PASSED:fnmsub(-0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000fp+0
++inf:PASSED:fnmsub(-0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000001p+0
++inf:PASSED:fnmsub(-0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000011p+0
++inf:PASSED:fnmsub(0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000001p+0
++inf:PASSED:fnmsub(0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000002p+0
++inf:PASSED:fnmsub(0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000003p+0
++inf:PASSED:fnmsub(0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000004p+0
++inf:PASSED:fnmsub(0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000005p+0
++inf:PASSED:fnmsub(0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000007p+0
++inf:PASSED:fnmsub(0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000008p+0
++inf:PASSED:fnmsub(0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000009p+0
++inf:PASSED:fnmsub(0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ap+0
++inf:PASSED:fnmsub(0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000bp+0
++inf:PASSED:fnmsub(0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000cp+0
++inf:PASSED:fnmsub(0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000dp+0
++inf:PASSED:fnmsub(0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ep+0
++inf:PASSED:fnmsub(0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000001p+0
++inf:PASSED:fnmsub(0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000011p+0
++inf:PASSED:fnmsub(0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000012p+0
+-inf:PASSED:fnmsub(-0x1p+0 , 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000001p+0
+-inf:PASSED:fnmsub(-0x1.0000000000001p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000002p+0
+-inf:PASSED:fnmsub(-0x1.0000000000002p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000003p+0
+-inf:PASSED:fnmsub(-0x1.0000000000003p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000004p+0
+-inf:PASSED:fnmsub(-0x1.0000000000004p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000005p+0
+-inf:PASSED:fnmsub(-0x1.0000000000005p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000007p+0
+-inf:PASSED:fnmsub(-0x1.0000000000006p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000008p+0
+-inf:PASSED:fnmsub(-0x1.0000000000007p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000009p+0
+-inf:PASSED:fnmsub(-0x1.0000000000008p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ap+0
+-inf:PASSED:fnmsub(-0x1.0000000000009p+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000bp+0
+-inf:PASSED:fnmsub(-0x1.000000000000ap+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000cp+0
+-inf:PASSED:fnmsub(-0x1.000000000000bp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000dp+0
+-inf:PASSED:fnmsub(-0x1.000000000000cp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000000ep+0
+-inf:PASSED:fnmsub(-0x1.000000000000dp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a00000000001p+0
+-inf:PASSED:fnmsub(-0x1.000000000000ep+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000011p+0
+-inf:PASSED:fnmsub(-0x1.000000000000fp+0, 0x1.2p+0 , 0x1.0000000000001p-1) = 0x1.a000000000012p+0
+-inf:PASSED:fnmsub(0x1p+0 , 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.ap+0
+-inf:PASSED:fnmsub(0x1.0000000000001p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000001p+0
+-inf:PASSED:fnmsub(0x1.0000000000002p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000002p+0
+-inf:PASSED:fnmsub(0x1.0000000000003p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000003p+0
+-inf:PASSED:fnmsub(0x1.0000000000004p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000005p+0
+-inf:PASSED:fnmsub(0x1.0000000000005p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000006p+0
+-inf:PASSED:fnmsub(0x1.0000000000006p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000007p+0
+-inf:PASSED:fnmsub(0x1.0000000000007p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000008p+0
+-inf:PASSED:fnmsub(0x1.0000000000008p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000009p+0
+-inf:PASSED:fnmsub(0x1.0000000000009p+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ap+0
+-inf:PASSED:fnmsub(0x1.000000000000ap+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000bp+0
+-inf:PASSED:fnmsub(0x1.000000000000bp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000cp+0
+-inf:PASSED:fnmsub(0x1.000000000000cp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000ep+0
+-inf:PASSED:fnmsub(0x1.000000000000dp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000000fp+0
+-inf:PASSED:fnmsub(0x1.000000000000ep+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a00000000001p+0
+-inf:PASSED:fnmsub(0x1.000000000000fp+0, 0x1.2p+0 , -0x1.0000000000001p-1) = -0x1.a000000000011p+0
+near:PASSED:fsqrt(0x1.a44p-1 ) = 0x1.cfdcaf353049ep-1
+near:PASSED:fsqrt(0x1.a822p+0 ) = 0x1.498302b49cd6dp+0
+near:PASSED:fsqrt(0x1.05a2p+0 ) = 0x1.02cd13b44f3bfp+0
+near:PASSED:fsqrt(0x1.9504p-1 ) = 0x1.c76073cec0937p-1
+near:PASSED:fsqrt(0x1.dca2p+0 ) = 0x1.5d4f8d4e4c2b2p+0
+near:PASSED:fsqrt(0x1.02c8p+0 ) = 0x1.016309cde7483p+0
+near:PASSED:fsqrt(0x1.b9p-1 ) = 0x1.db2cfe686fe7cp-1
+near:PASSED:fsqrt(0x1.1d02p+0 ) = 0x1.0e1d62e78ed9ep+0
+near:PASSED:fsqrt(0x1.c39p-1 ) = 0x1.e0d526020fb6cp-1
+near:PASSED:fsqrt(0x1.9p-1 ) = 0x1.c48c6001f0acp-1
+near:PASSED:fsqrt(0x1.4852p+0 ) = 0x1.21e9ed813e2e3p+0
+near:PASSED:fsqrt(0x1.e984p-1 ) = 0x1.f4a1b09bbf0b1p-1
+near:PASSED:fsqrt(0x1.9a1p-1 ) = 0x1.ca34879b907afp-1
+near:PASSED:fsqrt(0x1.76b2p+0 ) = 0x1.35b6781aed828p+0
+zero:PASSED:fsqrt(0x1.a44p-1 ) = 0x1.cfdcaf353049ep-1
+zero:PASSED:fsqrt(0x1.a822p+0 ) = 0x1.498302b49cd6dp+0
+zero:PASSED:fsqrt(0x1.05a2p+0 ) = 0x1.02cd13b44f3bfp+0
+zero:PASSED:fsqrt(0x1.9504p-1 ) = 0x1.c76073cec0937p-1
+zero:PASSED:fsqrt(0x1.dca2p+0 ) = 0x1.5d4f8d4e4c2b2p+0
+zero:PASSED:fsqrt(0x1.02c8p+0 ) = 0x1.016309cde7483p+0
+zero:PASSED:fsqrt(0x1.b9p-1 ) = 0x1.db2cfe686fe7cp-1
+zero:PASSED:fsqrt(0x1.1d02p+0 ) = 0x1.0e1d62e78ed9dp+0
+zero:PASSED:fsqrt(0x1.c39p-1 ) = 0x1.e0d526020fb6bp-1
+zero:PASSED:fsqrt(0x1.9p-1 ) = 0x1.c48c6001f0abfp-1
+zero:PASSED:fsqrt(0x1.4852p+0 ) = 0x1.21e9ed813e2e2p+0
+zero:PASSED:fsqrt(0x1.e984p-1 ) = 0x1.f4a1b09bbf0bp-1
+zero:PASSED:fsqrt(0x1.9a1p-1 ) = 0x1.ca34879b907aep-1
+zero:PASSED:fsqrt(0x1.76b2p+0 ) = 0x1.35b6781aed827p+0
++inf:PASSED:fsqrt(0x1.a44p-1 ) = 0x1.cfdcaf353049fp-1
++inf:PASSED:fsqrt(0x1.a822p+0 ) = 0x1.498302b49cd6ep+0
++inf:PASSED:fsqrt(0x1.05a2p+0 ) = 0x1.02cd13b44f3cp+0
++inf:PASSED:fsqrt(0x1.9504p-1 ) = 0x1.c76073cec0938p-1
++inf:PASSED:fsqrt(0x1.dca2p+0 ) = 0x1.5d4f8d4e4c2b3p+0
++inf:PASSED:fsqrt(0x1.02c8p+0 ) = 0x1.016309cde7484p+0
++inf:PASSED:fsqrt(0x1.b9p-1 ) = 0x1.db2cfe686fe7dp-1
++inf:PASSED:fsqrt(0x1.1d02p+0 ) = 0x1.0e1d62e78ed9ep+0
++inf:PASSED:fsqrt(0x1.c39p-1 ) = 0x1.e0d526020fb6cp-1
++inf:PASSED:fsqrt(0x1.9p-1 ) = 0x1.c48c6001f0acp-1
++inf:PASSED:fsqrt(0x1.4852p+0 ) = 0x1.21e9ed813e2e3p+0
++inf:PASSED:fsqrt(0x1.e984p-1 ) = 0x1.f4a1b09bbf0b1p-1
++inf:PASSED:fsqrt(0x1.9a1p-1 ) = 0x1.ca34879b907afp-1
++inf:PASSED:fsqrt(0x1.76b2p+0 ) = 0x1.35b6781aed828p+0
+-inf:PASSED:fsqrt(0x1.a44p-1 ) = 0x1.cfdcaf353049ep-1
+-inf:PASSED:fsqrt(0x1.a822p+0 ) = 0x1.498302b49cd6dp+0
+-inf:PASSED:fsqrt(0x1.05a2p+0 ) = 0x1.02cd13b44f3bfp+0
+-inf:PASSED:fsqrt(0x1.9504p-1 ) = 0x1.c76073cec0937p-1
+-inf:PASSED:fsqrt(0x1.dca2p+0 ) = 0x1.5d4f8d4e4c2b2p+0
+-inf:PASSED:fsqrt(0x1.02c8p+0 ) = 0x1.016309cde7483p+0
+-inf:PASSED:fsqrt(0x1.b9p-1 ) = 0x1.db2cfe686fe7cp-1
+-inf:PASSED:fsqrt(0x1.1d02p+0 ) = 0x1.0e1d62e78ed9dp+0
+-inf:PASSED:fsqrt(0x1.c39p-1 ) = 0x1.e0d526020fb6bp-1
+-inf:PASSED:fsqrt(0x1.9p-1 ) = 0x1.c48c6001f0abfp-1
+-inf:PASSED:fsqrt(0x1.4852p+0 ) = 0x1.21e9ed813e2e2p+0
+-inf:PASSED:fsqrt(0x1.e984p-1 ) = 0x1.f4a1b09bbf0bp-1
+-inf:PASSED:fsqrt(0x1.9a1p-1 ) = 0x1.ca34879b907aep-1
+-inf:PASSED:fsqrt(0x1.76b2p+0 ) = 0x1.35b6781aed827p+0
--- /dev/null
+prog: round