From: Julian Seward Date: Sun, 16 Apr 2006 00:13:22 +0000 (+0000) Subject: Regression test cases for FP rounding modes on ppc32 and ppc64. X-Git-Tag: svn/VALGRIND_3_2_0~106 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=99fc96946921992fc15caf20d24171cb98428182;p=thirdparty%2Fvalgrind.git Regression test cases for FP rounding modes on ppc32 and ppc64. (Dave Nomura). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5853 --- diff --git a/none/tests/ppc32/Makefile.am b/none/tests/ppc32/Makefile.am index e04c7f0c5e..3fcfdb24cb 100644 --- a/none/tests/ppc32/Makefile.am +++ b/none/tests/ppc32/Makefile.am @@ -7,6 +7,7 @@ EXTRA_DIST = $(noinst_SCRIPTS) \ 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 \ @@ -14,7 +15,7 @@ EXTRA_DIST = $(noinst_SCRIPTS) \ 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@ diff --git a/none/tests/ppc32/round.c b/none/tests/ppc32/round.c new file mode 100644 index 0000000000..fa4847de01 --- /dev/null +++ b/none/tests/ppc32/round.c @@ -0,0 +1,1208 @@ + +/* 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 +#include +#include + +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.200000000000p+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.00000p-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.000000000000p-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.200000000000p+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.000000000000p-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.000000000000p-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; +} diff --git a/none/tests/ppc32/round.stderr.exp b/none/tests/ppc32/round.stderr.exp new file mode 100644 index 0000000000..139597f9cb --- /dev/null +++ b/none/tests/ppc32/round.stderr.exp @@ -0,0 +1,2 @@ + + diff --git a/none/tests/ppc32/round.stdout.exp b/none/tests/ppc32/round.stdout.exp new file mode 100644 index 0000000000..7e88dd7c78 --- /dev/null +++ b/none/tests/ppc32/round.stdout.exp @@ -0,0 +1,2335 @@ +-------------------------- 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 diff --git a/none/tests/ppc32/round.vgtest b/none/tests/ppc32/round.vgtest new file mode 100644 index 0000000000..96e1fe3a40 --- /dev/null +++ b/none/tests/ppc32/round.vgtest @@ -0,0 +1 @@ +prog: round diff --git a/none/tests/ppc64/Makefile.am b/none/tests/ppc64/Makefile.am index 61cb411569..3a6974cc78 100644 --- a/none/tests/ppc64/Makefile.am +++ b/none/tests/ppc64/Makefile.am @@ -6,10 +6,11 @@ EXTRA_DIST = $(noinst_SCRIPTS) \ 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@ diff --git a/none/tests/ppc64/round.c b/none/tests/ppc64/round.c new file mode 100644 index 0000000000..fa4847de01 --- /dev/null +++ b/none/tests/ppc64/round.c @@ -0,0 +1,1208 @@ + +/* 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 +#include +#include + +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.200000000000p+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.00000p-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.000000000000p-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.200000000000p+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.000000000000p-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.000000000000p-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; +} diff --git a/none/tests/ppc64/round.stderr.exp b/none/tests/ppc64/round.stderr.exp new file mode 100644 index 0000000000..139597f9cb --- /dev/null +++ b/none/tests/ppc64/round.stderr.exp @@ -0,0 +1,2 @@ + + diff --git a/none/tests/ppc64/round.stdout.exp b/none/tests/ppc64/round.stdout.exp new file mode 100644 index 0000000000..a0f9b3bf5e --- /dev/null +++ b/none/tests/ppc64/round.stdout.exp @@ -0,0 +1,2384 @@ +-------------------------- 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 diff --git a/none/tests/ppc64/round.vgtest b/none/tests/ppc64/round.vgtest new file mode 100644 index 0000000000..96e1fe3a40 --- /dev/null +++ b/none/tests/ppc64/round.vgtest @@ -0,0 +1 @@ +prog: round