tree-optimization/117720 - check alignment for VMAT_STRIDED_SLP

While vectorizable_store was already checking alignment requirement
of the stores and fall back to elementwise accesses if not honored
the vectorizable_load path wasn't doing this.  After the previous
change to disregard alignment checking for VMAT_STRIDED_SLP in
get_group_load_store_type this now tripped on power.

	PR tree-optimization/117720
	* tree-vect-stmts.cc (vectorizable_load): For VMAT_STRIDED_SLP
	verify the choosen load type is OK with regard to alignment.
This commit is contained in:
Richard Biener 2024-11-21 09:14:53 +01:00 committed by Richard Biener
parent ab8d3606bb
commit 7e9b0d90d3

View File

@ -10650,9 +10650,19 @@ vectorizable_load (vec_info *vinfo,
of it. */
if (n == const_nunits)
{
nloads = 1;
lnel = const_nunits;
ltype = vectype;
int mis_align = dr_misalignment (first_dr_info, vectype);
dr_alignment_support dr_align
= vect_supportable_dr_alignment (vinfo, dr_info, vectype,
mis_align);
if (dr_align == dr_aligned
|| dr_align == dr_unaligned_supported)
{
nloads = 1;
lnel = const_nunits;
ltype = vectype;
alignment_support_scheme = dr_align;
misalignment = mis_align;
}
}
/* Else use the biggest vector we can load the group without
accessing excess elements. */