https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127601
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Ah, so we use VMAT_STRIDED_SLP and
/* If the gap splits the vector in half and the target
can do half-vector operations avoid the epilogue peeling
by simply loading half of the vector only. Usually
the construction with an upper zero half will be elided. */
dr_alignment_support alss;
int misalign = dr_misalignment (first_dr_info, vectype, off);
tree half_vtype;
poly_uint64 remain;
unsigned HOST_WIDE_INT tem, num;
if (overrun_p
&& !masked_p
&& *memory_access_type != VMAT_LOAD_STORE_LANES
...
avoids peeling for gaps. But VMAT_STRIDED_SLP does not implement this,
it's only implemented with VMAT_CONTIGUOUS and VMAT_CONTIGUOUS_REVERSE.