+2010-04-26 Ira Rosen <irar@il.ibm.com>
+
+ * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
+ determine if the statement is vectorizable, and a macro to
+ access it.
+ * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
+ Skip statements that can't be vectorized. If the analysis
+ fails, mark the statement as unvectorizable if vectorizing
+ basic block.
+ (vect_compute_data_refs_alignment): Likewise.
+ (vect_verify_datarefs_alignment): Skip statements marked as
+ unvectorizable. Add print.
+ (vect_analyze_group_access): Skip statements that can't be
+ vectorized. If the analysis fails, mark the statement as
+ unvectorizable if vectorizing basic block.
+ (vect_analyze_data_ref_accesses, vect_analyze_data_refs):
+ Likewise.
+ * tree-vect-stmts.c (vectorizable_store): Fix the number of
+ generated stmts for SLP.
+ (new_stmt_vec_info): Initialize the new field.
+ * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
+ statements marked as unvectorizable.
+
2010-04-25 Joseph Myers <joseph@codesourcery.com>
* c-common.c (flag_isoc1x): New.
+2010-04-26 Ira Rosen <irar@il.ibm.com>
+
+ * gcc.dg/vect/bb-slp-23.c: New test.
+
2010-04-25 Joseph Myers <joseph@codesourcery.com>
* gcc.dg/c90-float-1.c: Also test that C1X macros are not defined.
print_gimple_stmt (vect_dump, stmt, 0, TDF_SLIM);
}
+ /* Fail to vectorize statements marked as unvectorizable. */
+ if (!STMT_VINFO_VECTORIZABLE (vinfo_for_stmt (stmt)))
+ {
+ if (vect_print_dump_info (REPORT_SLP))
+ {
+ fprintf (vect_dump,
+ "Build SLP failed: unvectorizable statement ");
+ print_gimple_stmt (vect_dump, stmt, 0, TDF_SLIM);
+ }
+
+ return false;
+ }
+
lhs = gimple_get_lhs (stmt);
if (lhs == NULL_TREE)
{