http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51340
--- Comment #3 from Kazumoto Kojima <kkojima at gcc dot gnu.org> 2011-12-28
22:31:27 UTC ---
(In reply to comment #2)
> Uhm, yes...
> The title should have been "Enable -mfused-madd by -ffast-math"
Do you mean something like this?
--- ORIG/trunk/gcc/config/sh/sh.c 2011-12-03 10:03:41.000000000 +0900
+++ trunk/gcc/config/sh/sh.c 2011-12-27 08:33:23.000000000 +0900
@@ -838,6 +838,11 @@ sh_option_override (void)
align_functions = min_align;
}
+ /* Default to use fmac insn when -ffast-math. See PR target/29100. */
+ if (global_options_set.x_TARGET_FMAC == 0
+ && fast_math_flags_set_p (&global_options)
+ TARGET_FMAC = 1;
+
if (sh_fixed_range_str)
sh_fix_range (sh_fixed_range_str);
> I don't know the exact semantics for the new patterns. All I know is that
> rounding is supposed to be done only once after the two operations. This is
> the case for the SH fmac insn. Not sure whether this is enough though.
It seems that we can use the fma pattern, though it would be an another issue.