/* A negate on the multiplication leads to FNMA. */
if (use_code == NEGATE_EXPR)
{
+ ssa_op_iter iter;
+ tree use;
+
result = gimple_assign_lhs (use_stmt);
/* Make sure the negate statement becomes dead with this
&use_p, &neguse_stmt))
return false;
+ /* Make sure the multiplication isn't also used on that stmt. */
+ FOR_EACH_SSA_TREE_OPERAND (use, neguse_stmt, iter, SSA_OP_USE)
+ if (use == mul_result)
+ return false;
+
/* Re-validate. */
use_stmt = neguse_stmt;
if (gimple_bb (use_stmt) != gimple_bb (mul_stmt))
default:;
}
}
- else if (is_gimple_call (stmt))
+ else if (is_gimple_call (stmt)
+ && gimple_call_lhs (stmt))
{
tree fndecl = gimple_call_fndecl (stmt);
if (fndecl