Bootstrapped & regtested on i686-pc-linux-gnu. Committed, as reviewed by Richard Biener: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57027 and also arguably obvious.
2013-05-03 Joern Rennecke <joern.renne...@embecosm.com>
PR tree-optimization/57027 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking for fnms opportunity, check we got the prerequisite kind of tree / gimple before using accessor functions. Index: tree-ssa-math-opts.c =================================================================== --- tree-ssa-math-opts.c (revision 198552) +++ tree-ssa-math-opts.c (working copy) @@ -2581,11 +2581,15 @@ convert_mult_to_fma (gimple mul_stmt, tr && optab_handler (fnma_optab, TYPE_MODE (type)) != CODE_FOR_nothing) { tree rhs2 = gimple_assign_rhs2 (use_stmt); - gimple stmt2 = SSA_NAME_DEF_STMT (rhs2); - if (has_single_use (rhs2) - && gimple_assign_rhs_code (stmt2) == MULT_EXPR) - return false; + if (TREE_CODE (rhs2) == SSA_NAME) + { + gimple stmt2 = SSA_NAME_DEF_STMT (rhs2); + if (has_single_use (rhs2) + && is_gimple_assign (stmt2) + && gimple_assign_rhs_code (stmt2) == MULT_EXPR) + return false; + } } /* We can't handle a * b + a * b. */