There's a logic error for vect_remove_slp_scalar_calls where it
simply ignores pattern stmts but it should instead look at the
original stmt.
* tree-vect-slp.cc (vect_remove_slp_scalar_calls): Look
at the original stmt.
{
if (!stmt_info)
continue;
+ if (!PURE_SLP_STMT (stmt_info))
+ continue;
+ stmt_info = vect_orig_stmt (stmt_info);
gcall *stmt = dyn_cast <gcall *> (stmt_info->stmt);
if (!stmt || gimple_bb (stmt) == NULL)
continue;
- if (is_pattern_stmt_p (stmt_info)
- || !PURE_SLP_STMT (stmt_info))
- continue;
lhs = gimple_call_lhs (stmt);
if (lhs)
new_stmt = gimple_build_assign (lhs, build_zero_cst (TREE_TYPE (lhs)));