+2015-11-12 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/68306
+ * tree-vect-data-refs.c (verify_data_ref_alignment): Remove
+ relevant and vectorizable checks here.
+ (vect_verify_datarefs_alignment): Add relevant check here.
+
2015-11-12 Nathan Sidwell <nathan@codesourcery.com>
gcc/
+2015-11-12 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/68306
+ * gcc.dg/pr68306.c: New testcase.
+
2015-11-12 Ville Voutilainen <ville.voutilainen@gmail.com>
Implement D0013R2, logical type traits.
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O3" } */
+
+enum powerpc_pmc_type { PPC_PMC_IBM };
+struct {
+ unsigned num_pmcs;
+ enum powerpc_pmc_type pmc_type;
+} a;
+enum powerpc_pmc_type b;
+void fn1() { a.num_pmcs = a.pmc_type = b; }
gimple *stmt = DR_STMT (dr);
stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
- if (!STMT_VINFO_RELEVANT_P (stmt_info))
- return true;
-
- /* For interleaving, only the alignment of the first access matters.
- Skip statements marked as not vectorizable. */
- if ((STMT_VINFO_GROUPED_ACCESS (stmt_info)
- && GROUP_FIRST_ELEMENT (stmt_info) != stmt)
- || !STMT_VINFO_VECTORIZABLE (stmt_info))
+ /* For interleaving, only the alignment of the first access matters. */
+ if (STMT_VINFO_GROUPED_ACCESS (stmt_info)
+ && GROUP_FIRST_ELEMENT (stmt_info) != stmt)
return true;
/* Strided accesses perform only component accesses, alignment is
unsigned int i;
FOR_EACH_VEC_ELT (datarefs, i, dr)
- if (! verify_data_ref_alignment (dr))
- return false;
+ {
+ gimple *stmt = DR_STMT (dr);
+ stmt_vec_info stmt_info = vinfo_for_stmt (stmt);
+
+ if (!STMT_VINFO_RELEVANT_P (stmt_info))
+ continue;
+ if (! verify_data_ref_alignment (dr))
+ return false;
+ }
return true;
}