On Tue, May 27, 2025 at 6:02 PM Robin Dapp <[email protected]> wrote:
>
> This removes the non-SLP paths that were made unreachable in the
> previous patch.
This short series is OK. Please squash the two commits before pushing.
Thanks,
Richard.
> gcc/ChangeLog:
>
> * tree-vect-stmts.cc (vectorizable_load): Remove non-SLP paths.
> ---
> gcc/tree-vect-stmts.cc | 49 ++++++++++++++++--------------------------
> 1 file changed, 18 insertions(+), 31 deletions(-)
>
> diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc
> index 07e309d02e5..3710694ac75 100644
> --- a/gcc/tree-vect-stmts.cc
> +++ b/gcc/tree-vect-stmts.cc
> @@ -10689,8 +10689,7 @@ vectorizable_load (vec_info *vinfo,
> first_dr_info = dr_info;
> }
>
> - if (1 && grouped_load
> - && memory_access_type == VMAT_STRIDED_SLP)
> + if (grouped_load && memory_access_type == VMAT_STRIDED_SLP)
> {
> group_size = DR_GROUP_SIZE (first_stmt_info);
> ref_type = get_group_alias_ptr_type (first_stmt_info);
> @@ -10830,22 +10829,20 @@ vectorizable_load (vec_info *vinfo,
> ltype = build_aligned_type (ltype, align * BITS_PER_UNIT);
> }
>
> - if (1)
> + /* For SLP permutation support we need to load the whole group,
> + not only the number of vector stmts the permutation result
> + fits in. */
> + if (slp_perm)
> {
> - /* For SLP permutation support we need to load the whole group,
> - not only the number of vector stmts the permutation result
> - fits in. */
> - if (slp_perm)
> - {
> - /* We don't yet generate SLP_TREE_LOAD_PERMUTATIONs for
> - variable VF. */
> - unsigned int const_vf = vf.to_constant ();
> - ncopies = CEIL (group_size * const_vf, const_nunits);
> - dr_chain.create (ncopies);
> - }
> - else
> - ncopies = SLP_TREE_NUMBER_OF_VEC_STMTS (slp_node);
> + /* We don't yet generate SLP_TREE_LOAD_PERMUTATIONs for
> + variable VF. */
> + unsigned int const_vf = vf.to_constant ();
> + ncopies = CEIL (group_size * const_vf, const_nunits);
> + dr_chain.create (ncopies);
> }
> + else
> + ncopies = SLP_TREE_NUMBER_OF_VEC_STMTS (slp_node);
> +
> unsigned int group_el = 0;
> unsigned HOST_WIDE_INT
> elsz = tree_to_uhwi (TYPE_SIZE_UNIT (TREE_TYPE (vectype)));
> @@ -10883,14 +10880,13 @@ vectorizable_load (vec_info *vinfo,
> CONSTRUCTOR_APPEND_ELT (v, NULL_TREE, new_temp);
>
> group_el += lnel;
> - if (0
> - || group_el == group_size)
> + if (group_el == group_size)
> {
> n_groups++;
> /* When doing SLP make sure to not load elements from
> the next vector iteration, those will not be accessed
> so just use the last element again. See PR107451. */
> - if (0 || known_lt (n_groups, vf))
> + if (known_lt (n_groups, vf))
> {
> tree newoff = copy_ssa_name (running_off);
> gimple *incr
> @@ -10938,19 +10934,10 @@ vectorizable_load (vec_info *vinfo,
>
> if (!costing_p)
> {
> - if (1)
> - {
> - if (slp_perm)
> - dr_chain.quick_push (gimple_assign_lhs (new_stmt));
> - else
> - slp_node->push_vec_def (new_stmt);
> - }
> + if (slp_perm)
> + dr_chain.quick_push (gimple_assign_lhs (new_stmt));
> else
> - {
> - if (j == 0)
> - *vec_stmt = new_stmt;
> - STMT_VINFO_VEC_STMTS (stmt_info).safe_push (new_stmt);
> - }
> + slp_node->push_vec_def (new_stmt);
> }
> }
> if (slp_perm)
> --
> 2.49.0
>