From: Richard Biener Date: Tue, 11 Jul 2023 08:40:19 +0000 (+0200) Subject: tree-optimization/110614 - SLP splat and re-align (optimized) X-Git-Tag: basepoints/gcc-15~7709 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4736ddd11874fe215662ac18877ce8eded1f5976;p=thirdparty%2Fgcc.git tree-optimization/110614 - SLP splat and re-align (optimized) The following properly guards the re-align (optimized) paths used on old power CPUs for the added case of SLP splats from non-grouped loads. Testcases are existing in dg-torture. PR tree-optimization/110614 * tree-vect-data-refs.cc (vect_supportable_dr_alignment): SLP splats are not suitable for re-align ops. --- diff --git a/gcc/tree-vect-data-refs.cc b/gcc/tree-vect-data-refs.cc index ab2af103cb4a..9edc8989de95 100644 --- a/gcc/tree-vect-data-refs.cc +++ b/gcc/tree-vect-data-refs.cc @@ -6829,10 +6829,11 @@ vect_supportable_dr_alignment (vec_info *vinfo, dr_vec_info *dr_info, same alignment, instead it depends on the SLP group size. */ if (loop_vinfo && STMT_SLP_TYPE (stmt_info) - && !multiple_p (LOOP_VINFO_VECT_FACTOR (loop_vinfo) - * (DR_GROUP_SIZE - (DR_GROUP_FIRST_ELEMENT (stmt_info))), - TYPE_VECTOR_SUBPARTS (vectype))) + && (!STMT_VINFO_GROUPED_ACCESS (stmt_info) + || !multiple_p (LOOP_VINFO_VECT_FACTOR (loop_vinfo) + * (DR_GROUP_SIZE + (DR_GROUP_FIRST_ELEMENT (stmt_info))), + TYPE_VECTOR_SUBPARTS (vectype)))) ; else if (!loop_vinfo || (nested_in_vect_loop