From: Richard Biener Date: Tue, 2 Jul 2024 07:33:29 +0000 (+0200) Subject: tree-optimization/115741 - ICE with VMAT_CONTIGUOUS_REVERSE and gap X-Git-Tag: basepoints/gcc-16~7770 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9bd51351c175d345b8a9b3c19ba49ba358940272;p=thirdparty%2Fgcc.git tree-optimization/115741 - ICE with VMAT_CONTIGUOUS_REVERSE and gap When we determine overrun we have to consider VMAT_CONTIGUOUS_REVERSE the same as VMAT_CONTIGUOUS. PR tree-optimization/115741 * tree-vect-stmts.cc (get_group_load_store_type): Also handle VMAT_CONTIGUOUS_REVERSE when determining overrun. --- diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc index aab3aa59962..20b84515446 100644 --- a/gcc/tree-vect-stmts.cc +++ b/gcc/tree-vect-stmts.cc @@ -2099,7 +2099,8 @@ get_group_load_store_type (vec_info *vinfo, stmt_vec_info stmt_info, If there is a combination of the access not covering the full vector and a gap recorded then we may need to peel twice. */ if (loop_vinfo - && *memory_access_type == VMAT_CONTIGUOUS + && (*memory_access_type == VMAT_CONTIGUOUS + || *memory_access_type == VMAT_CONTIGUOUS_REVERSE) && SLP_TREE_LOAD_PERMUTATION (slp_node).exists () && !multiple_p (group_size * LOOP_VINFO_VECT_FACTOR (loop_vinfo), nunits))