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.