static bool fold_const_call_ssss (real_value *result, built_in_function fn, const real_value *arg0, const real_value *arg1, const real_value *arg2, const real_format *format) { switch (fn) { CASE_FLT_FN (BUILT_IN_FMA): return do_mpfr_arg3 (result, mpfr_fma, arg0, arg1, arg2, format); default: return false; } }
tree fold_fma (location_t, tree type, tree arg0, tree arg1, tree arg2) { REAL_VALUE_TYPE result; if (real_cst_p (arg0) && real_cst_p (arg1) && real_cst_p (arg2) && do_mpfr_arg3 (&result, mpfr_fma, TREE_REAL_CST_PTR (arg0), TREE_REAL_CST_PTR (arg1), TREE_REAL_CST_PTR (arg2), REAL_MODE_FORMAT (TYPE_MODE (type)))) return build_real (type, result); return NULL_TREE; }
static bool fold_const_call_ssss (real_value *result, combined_fn fn, const real_value *arg0, const real_value *arg1, const real_value *arg2, const real_format *format) { switch (fn) { CASE_CFN_FMA: return do_mpfr_arg3 (result, mpfr_fma, arg0, arg1, arg2, format); default: return false; } }