http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42802
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED Target Milestone|--- |4.6.0 --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> 2011-12-26 19:47:12 UTC --- vmovsd .LC0(%rip), %xmm2 vfmaddsd %xmm0, %xmm2, %xmm1, %xmm3 vfnmaddsd %xmm0, %xmm2, %xmm1, %xmm0 vmulsd %xmm0, %xmm3, %xmm0 Fixed by: r166304 | rguenth | 2010-11-04 03:56:22 -0700 (Thu, 04 Nov 2010) | 38 lines 2010-11-04 Richard Guenther <rguent...@suse.de> Richard Henderson <r...@redhat.com> * tree.def (FMA_EXPR): New tree code. * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code. * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS. * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types. * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR. * gimple-pretty-print.c (dump_ternary_rhs): Likewise. * tree-ssa-math-opts.c (convert_mult_to_fma): New function. (execute_optimize_widening_mul): Call it. Reorganize to allow dead stmt removal. Move TODO flags ... (pass_optimize_widening_mul): ... here. * flag-types.h (enum fp_contract_mode): New enum. ....