PR tree-optimization/53185
* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Disable
peeling when we see strided loads.
testsuite/
* gcc.dg/vect/pr53185.c: New test.
From-SVN: r187340
+2012-05-09 Michael Matz <matz@suse.de>
+
+ PR tree-optimization/53185
+ * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Disable
+ peeling when we see strided loads.
+
2012-05-09 Matthias Klose <doko@ubuntu.com>
* gcc-ar.c (main): Don't check for execute bits for the plugin.
+2012-05-09 Michael Matz <matz@suse.de>
+
+ PR tree-optimization/53185
+ * gcc.dg/vect/pr53185.c: New test.
+
2012-05-09 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/53249
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O3 -ftree-vectorize" } */
+unsigned short a, e;
+int *b, *d;
+int c;
+extern int fn2();
+void fn1 () {
+ void *f;
+ for (;;) {
+ fn2 ();
+ b = f;
+ e = 0;
+ for (; e < a; ++e)
+ b[e] = d[e * c];
+ }
+}
&& GROUP_FIRST_ELEMENT (stmt_info) != stmt)
continue;
+ /* FORNOW: Any strided load prevents peeling. The induction
+ variable analysis will fail when the prologue loop is generated,
+ and so we can't generate the new base for the pointer. */
+ if (STMT_VINFO_STRIDE_LOAD_P (stmt_info))
+ {
+ if (vect_print_dump_info (REPORT_DETAILS))
+ fprintf (vect_dump, "strided load prevents peeling");
+ do_peeling = false;
+ break;
+ }
+
/* For invariant accesses there is nothing to enhance. */
if (integer_zerop (DR_STEP (dr)))
continue;