We now never have hybrid SLP (if we have, we fail immediately). * tree-vect-data-refs.cc (vect_get_data_access_cost): Use ncopies == 1. * tree-vect-slp.cc (vect_remove_slp_scalar_calls): Remove hybrid/loop SLP skip. * tree-vect-stmts.cc (vectorizable_store): Remove pure SLP assert. --- gcc/tree-vect-data-refs.cc | 11 ++--------- gcc/tree-vect-slp.cc | 2 -- gcc/tree-vect-stmts.cc | 4 ---- 3 files changed, 2 insertions(+), 15 deletions(-)
diff --git a/gcc/tree-vect-data-refs.cc b/gcc/tree-vect-data-refs.cc index b34d0179408..2e47e76f748 100644 --- a/gcc/tree-vect-data-refs.cc +++ b/gcc/tree-vect-data-refs.cc @@ -1856,21 +1856,14 @@ vect_get_data_access_cost (vec_info *vinfo, dr_vec_info *dr_info, stmt_vector_for_cost *prologue_cost_vec) { stmt_vec_info stmt_info = dr_info->stmt; - loop_vec_info loop_vinfo = dyn_cast <loop_vec_info> (vinfo); - int ncopies; - - if (PURE_SLP_STMT (stmt_info)) - ncopies = 1; - else - ncopies = vect_get_num_copies (loop_vinfo, STMT_VINFO_VECTYPE (stmt_info)); if (DR_IS_READ (dr_info->dr)) - vect_get_load_cost (vinfo, stmt_info, NULL, ncopies, + vect_get_load_cost (vinfo, stmt_info, NULL, 1, alignment_support_scheme, misalignment, true, inside_cost, outside_cost, prologue_cost_vec, body_cost_vec, false); else - vect_get_store_cost (vinfo,stmt_info, NULL, ncopies, + vect_get_store_cost (vinfo,stmt_info, NULL, 1, alignment_support_scheme, misalignment, inside_cost, body_cost_vec); diff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc index d1d36833217..530932037a1 100644 --- a/gcc/tree-vect-slp.cc +++ b/gcc/tree-vect-slp.cc @@ -11563,8 +11563,6 @@ vect_remove_slp_scalar_calls (vec_info *vinfo, { 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) diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc index 5b363bb6a4d..ee6db260bfc 100644 --- a/gcc/tree-vect-stmts.cc +++ b/gcc/tree-vect-stmts.cc @@ -7781,10 +7781,6 @@ vectorizable_store (vec_info *vinfo, return false; } - /* Cannot have hybrid store SLP -- that would mean storing to the - same location twice. */ - gcc_assert (PURE_SLP_STMT (stmt_info)); - tree vectype = SLP_TREE_VECTYPE (stmt_info), rhs_vectype = NULL_TREE; poly_uint64 nunits = TYPE_VECTOR_SUBPARTS (vectype); -- 2.43.0