[Bug target/59385] gcc 4.9 fails to use fma with __attribute__((target("fma")))
tmsriram at google dot com
gcc-bugzilla@gcc.gnu.org
Fri Dec 6 22:58:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59385
--- Comment #4 from Sriraman Tallam <tmsriram at google dot com> ---
The "widening_mult" has the answer. This pass converts this gimple sequence
double _31;
double _33;
double _36;
double _37;
_31 = *a_4;
_33 = *b_6;
_34 = _33 * _31;
_36 = *c_8;
_37 = _34 + _36;
into:
_31 = *a_4;
_33 = *b_6;
_36 = *c_8;
_37 = _33 * _31 + _36; (fma gets recognized from this pattern in rtl expand)
for the compiler where the vfmadd132sd insn is generated.
This conversion fails to happen in gcc-4.9. The problem should mostly be in
this function convert_mult_to_widen in treessa-math-opts.c. I have not looked
closely at this function yet.
More information about the Gcc-bugs
mailing list