[Bug target/47312] [4.6 Regression] ICE: in expand_ternary_op, at optabs.c:656 with -flto -mno-sse -mxop and __builtin_fmaf()

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Feb 2 15:31:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47312

--- Comment #3 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-02-02 15:30:51 UTC ---
(In reply to comment #2)
> One possibility would be to only fold __builtin_fma* into FMA_EXPR after IPA
> passes.

Expanding FMA_EXPR as __builtin_fma (thus, a libcall) as fallback sounds
safe.  We probably have similar issues for other builtins (consider
the generic vector lowering code for example).

Thus, in expr.c only dispatch to expand_ternary_op if there is an optab
available, else emit a libcall.

"Folding" back to __builtin_fma* sounds ugly.



More information about the Gcc-bugs mailing list