https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70130
--- Comment #13 from Richard Biener <rguenth at gcc dot gnu.org> --- Does the following fix it? I'm not entirely happy with it because of the comment. Index: gcc/tree-vect-stmts.c =================================================================== --- gcc/tree-vect-stmts.c (revision 234894) +++ gcc/tree-vect-stmts.c (working copy) @@ -6876,6 +6875,12 @@ vectorizable_load (gimple *stmt, gimple_ gcc_assert (!load_lanes_p || alignment_support_scheme == dr_aligned || alignment_support_scheme == dr_unaligned_supported); + /* If vectors are not adjacent we can't do dr_explicit_realign_optimized. + ??? This fails to account for the cost of this but it's messy to + compute all this from within vect_supportable_dr_alignment. */ + if (group_gap_adj != 0 + && alignment_support_scheme == dr_explicit_realign_optimized) + alignment_support_scheme = dr_explicit_realign; /* In case the vectorization factor (VF) is bigger than the number of elements that we can fit in a vectype (nunits), we have to generate