Bootstrapped and tested on x86_64-unknown-linux-gnu, applied.

Richard.

>From f7b8dc6184448bc7fb7f8faa27281f2ac64b75a9 Mon Sep 17 00:00:00 2001
From: Richard Guenther <rguent...@suse.de>
Date: Mon, 28 May 2018 09:48:28 +0200
Subject: [PATCH] fix-pr85933

2018-05-28  Richard Biener  <rguent...@suse.de>

        PR tree-optimization/85933
        * tree-vect-data-refs.c (vect_record_base_alignments): Only
        look at stmts marked as vectorizable.

diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c
index 331423af821..f46eb467da6 100644
--- a/gcc/tree-vect-data-refs.c
+++ b/gcc/tree-vect-data-refs.c
@@ -829,7 +829,10 @@ vect_record_base_alignments (vec_info *vinfo)
   data_reference *dr;
   unsigned int i;
   FOR_EACH_VEC_ELT (vinfo->datarefs, i, dr)
-    if (!DR_IS_CONDITIONAL_IN_STMT (dr))
+    {
+      gimple *stmt = DR_STMT (dr);
+    if (!DR_IS_CONDITIONAL_IN_STMT (dr)
+       && STMT_VINFO_VECTORIZABLE (vinfo_for_stmt (stmt)))
       {
        gimple *stmt = DR_STMT (dr);
        vect_record_base_alignment (vinfo, stmt, &DR_INNERMOST (dr));
@@ -843,6 +846,7 @@ vect_record_base_alignments (vec_info *vinfo)
              (vinfo, stmt, &STMT_VINFO_DR_WRT_VEC_LOOP (stmt_info));
          }
       }
+    }
 }
 
 /* Return the target alignment for the vectorized form of DR.  */

Reply via email to