* tree-vect-stmts.cc (vectorizable_load): One more tricky !SLP path removal. --- gcc/tree-vect-stmts.cc | 40 +--------------------------------------- 1 file changed, 1 insertion(+), 39 deletions(-)
diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc index c5fe7879d5a..eca7e70adf4 100644 --- a/gcc/tree-vect-stmts.cc +++ b/gcc/tree-vect-stmts.cc @@ -12007,9 +12007,6 @@ vectorizable_load (vec_info *vinfo, stmt_info, bump); } - if (!slp_perm) - continue; - if (slp_perm) { unsigned n_perms; @@ -12031,43 +12028,8 @@ vectorizable_load (vec_info *vinfo, nullptr, true); gcc_assert (ok); } + dr_chain.release (); } - else - { - if (grouped_load) - { - gcc_assert (memory_access_type == VMAT_CONTIGUOUS_PERMUTE); - /* We assume that the cost of a single load-lanes instruction - is equivalent to the cost of DR_GROUP_SIZE separate loads. - If a grouped access is instead being provided by a - load-and-permute operation, include the cost of the - permutes. */ - if (costing_p && first_stmt_info == stmt_info) - { - /* Uses an even and odd extract operations or shuffle - operations for each needed permute. */ - int group_size = DR_GROUP_SIZE (first_stmt_info); - int nstmts = ceil_log2 (group_size) * group_size; - inside_cost += record_stmt_cost (cost_vec, nstmts, vec_perm, - slp_node, 0, vect_body); - - if (dump_enabled_p ()) - dump_printf_loc (MSG_NOTE, vect_location, - "vect_model_load_cost: " - "strided group_size = %d .\n", - group_size); - } - else if (!costing_p) - { - vect_transform_grouped_load (vinfo, stmt_info, dr_chain, - group_size, gsi); - *vec_stmt = STMT_VINFO_VEC_STMTS (stmt_info)[0]; - } - } - else if (!costing_p) - STMT_VINFO_VEC_STMTS (stmt_info).safe_push (new_stmt); - } - dr_chain.release (); } if (costing_p) -- 2.43.0