FloatParts128 *: parts128_##NAME, \
FloatParts256 *: parts256_##NAME)
-static FloatParts64 *parts64_muladd_scalbn(FloatParts64 *a, FloatParts64 *b,
- FloatParts64 *c, int scale,
- int flags, float_status *s);
-static FloatParts128 *parts128_muladd_scalbn(FloatParts128 *a, FloatParts128 *b,
- FloatParts128 *c, int scale,
- int flags, float_status *s);
-
-#define parts_muladd_scalbn(A, B, C, Z, Y, S) \
- PARTS_GENERIC_64_128(muladd_scalbn, A)(A, B, C, Z, Y, S)
-
static FloatParts64 *parts64_div(FloatParts64 *a, FloatParts64 *b,
float_status *s);
static FloatParts128 *parts128_div(FloatParts128 *a, FloatParts128 *b,
float16_unpack_canonical(&pa, a, status);
float16_unpack_canonical(&pb, b, status);
float16_unpack_canonical(&pc, c, status);
- pr = parts_muladd_scalbn(&pa, &pb, &pc, scale, flags, status);
+ pr = parts64_muladd_scalbn(&pa, &pb, &pc, scale, flags, status);
/* Round before applying negate result. */
parts64_uncanon(pr, status, &float16_params, false);
float32_unpack_canonical(&pa, a, status);
float32_unpack_canonical(&pb, b, status);
float32_unpack_canonical(&pc, c, status);
- pr = parts_muladd_scalbn(&pa, &pb, &pc, scale, flags, status);
+ pr = parts64_muladd_scalbn(&pa, &pb, &pc, scale, flags, status);
/* Round before applying negate result. */
parts64_uncanon(pr, status, &float32_params, false);
float64_unpack_canonical(&pa, a, status);
float64_unpack_canonical(&pb, b, status);
float64_unpack_canonical(&pc, c, status);
- pr = parts_muladd_scalbn(&pa, &pb, &pc, scale, flags, status);
+ pr = parts64_muladd_scalbn(&pa, &pb, &pc, scale, flags, status);
/* Round before applying negate result. */
parts64_uncanon(pr, status, &float64_params, false);
float64_unpack_canonical(&pa, a, status);
float64_unpack_canonical(&pb, b, status);
float64_unpack_canonical(&pc, c, status);
- pr = parts_muladd_scalbn(&pa, &pb, &pc, 0, flags, status);
+ pr = parts64_muladd_scalbn(&pa, &pb, &pc, 0, flags, status);
/* Round before applying negate result. */
parts64_uncanon(pr, status, &float32_params, false);
bfloat16_unpack_canonical(&pa, a, status);
bfloat16_unpack_canonical(&pb, b, status);
bfloat16_unpack_canonical(&pc, c, status);
- pr = parts_muladd_scalbn(&pa, &pb, &pc, 0, flags, status);
+ pr = parts64_muladd_scalbn(&pa, &pb, &pc, 0, flags, status);
/* Round before applying negate result. */
parts64_uncanon(pr, status, &bfloat16_params, false);
float128_unpack_canonical(&pa, a, status);
float128_unpack_canonical(&pb, b, status);
float128_unpack_canonical(&pc, c, status);
- pr = parts_muladd_scalbn(&pa, &pb, &pc, 0, flags, status);
+ pr = parts128_muladd_scalbn(&pa, &pb, &pc, 0, flags, status);
/* Round before applying negate result. */
parts128_uncanon(pr, status, &float128_params, false);
for (i = 0 ; i < 15 ; i++) {
float64_unpack_canonical(&tp, float32_exp2_coefficients[i], status);
- rp = *parts_muladd_scalbn(&tp, &xnp, &rp, 0, 0, status);
+ rp = *parts64_muladd_scalbn(&tp, &xnp, &rp, 0, 0, status);
xnp = *parts64_mul(&xnp, &xp, status);
}
/* Compute precise remainder */
r_precise_buf = *b;
- r_precise = parts_muladd_scalbn(&r_precise_buf, n, a, 0,
- float_muladd_negate_product, status);
+ r_precise = parts64_muladd_scalbn(&r_precise_buf, n, a, 0,
+ float_muladd_negate_product, status);
/* Round remainder to the target format */
*r = *r_precise;