fma
double fma(double, double, double);
#define fma(x, y, z) __tg_impl_simple(x, y, z, fma, fmaf, fmal, x, y, z)
PROTO_NORMAL(fma);
DEF_STD(fma);
LDBL_MAYBE_UNUSED_CLONE(fma);
test(fma, -DBL_MIN, DBL_MIN, 0.0, -0.0,
test(fma, DBL_MAX, DBL_MAX, -INFINITY, -INFINITY, ALL_STD_EXCEPT, 0);
test(fma, DBL_MAX, -DBL_MAX, INFINITY, INFINITY, ALL_STD_EXCEPT, 0);
test(fma, DBL_MIN, DBL_MIN, NAN, NAN, ALL_STD_EXCEPT, 0);
test(fma, DBL_MAX, DBL_MAX, NAN, NAN, ALL_STD_EXCEPT, 0);
test(fma, one, one, 0x1.0p-200, 1.0 + DBL_EPSILON,
test(fma, -one, one, -0x1.0p-200, -(1.0 + DBL_EPSILON),
test(fma, one, one, -0x1.0p-200, 1.0 - DBL_EPSILON / 2,
test(fma, -one, one, 0x1.0p-200, -1.0 + DBL_EPSILON / 2,
test(fma, 0x1.0p-100, 0x1.0p-100, 1.0, 1.0 + DBL_EPSILON,
test(fma, -0x1.0p-100, 0x1.0p-100, -1.0, -(1.0 + DBL_EPSILON),
test(fma, -0x1.0p-100, -0x1.0p-100, -1.0,
test(fma, 0x1.0p-100, -0x1.0p-100, 1.0, 1.0 - DBL_EPSILON / 2,
testrnd(fma, -0x1.c139d7b84f1a3p-51, -0x1.600e7a2a16484p32,
testrnd(fma, 0x1.98210ac83fe2bp53, 0x1.9556ac1475f0fp-24,
testrnd(fma, 0x1.31ad012ede8aap+100, 0x1.2fbf79c839067p-42,
testrnd(fma, 0x1.bbffeea6fc7d6p-30, 0x1.1d164c6cbf078p-74,
test(fma, 0x1.8000000000001p0, 0x1.8000000000001p0,
test(fma, 0x1.8000000000001p0, 0x1.8000000000001p0,
test(fma, 0x1.8000000000001p0, 0x1.8000000000001p0,
test(fma, (double)(x), (double)(y), (double)(z), \