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

Reply via email to