tree-optimization/117605 - SLP with large negative single-element interleaving

We fail to demote this to VMAT_ELEMENTWISE and thus run into the three
vector permutation limit (and would not consider to use strided loads
or gathers).

This resolves another bunch of SVE regressions with --param
vect-force-slp=1

	PR tree-optimization/117605
	* tree-vect-stmts.cc (get_group_load_store_type): Also
	apply group size limit for single-element interleaving
	to VMAT_CONTIGUOUS_REVERSE.
This commit is contained in:
Richard Biener 2024-11-15 09:22:37 +01:00 committed by Richard Biener
parent 935aaface9
commit 4621b684ae

View file

@ -2086,8 +2086,9 @@ get_group_load_store_type (vec_info *vinfo, stmt_vec_info stmt_info,
at least create very sub-optimal code in that case (and
blow up memory, see PR65518). */
if (loop_vinfo
&& *memory_access_type == VMAT_CONTIGUOUS
&& single_element_p
&& (*memory_access_type == VMAT_CONTIGUOUS
|| *memory_access_type == VMAT_CONTIGUOUS_REVERSE)
&& maybe_gt (group_size, TYPE_VECTOR_SUBPARTS (vectype)))
{
if (SLP_TREE_LANES (slp_node) == 1)