* [Bug tree-optimization/42802] FMAs not exploited
[not found] <bug-42802-4@http.gcc.gnu.org/bugzilla/>
@ 2011-12-26 21:55 ` pinskia at gcc dot gnu.org
0 siblings, 0 replies; only message in thread
From: pinskia at gcc dot gnu.org @ 2011-12-26 21:55 UTC (permalink / raw)
To: gcc-bugs
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 <rguenther@suse.de>
Richard Henderson <rth@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.
....
^ permalink raw reply [flat|nested] only message in thread