+2015-05-07 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/66002
+ * passes.def: Schedule another pass_merge_phi after ifcombine, right
+ before phiopt.
+
2015-05-07 Marek Polacek <polacek@redhat.com>
Martin Uecker <uecker@eecs.berkeley.edu>
NEXT_PASS (pass_cselim);
NEXT_PASS (pass_copy_prop);
NEXT_PASS (pass_tree_ifcombine);
+ NEXT_PASS (pass_merge_phi);
NEXT_PASS (pass_phiopt);
NEXT_PASS (pass_tail_recursion);
NEXT_PASS (pass_ch);
+2015-05-07 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/66002
+ * gcc.dg/vect/vect-125.c: New testcase.
+
2015-05-07 Marek Polacek <polacek@redhat.com>
Martin Uecker <uecker@eecs.berkeley.edu>
--- /dev/null
+/* { dg-do compile } */
+/* { dg-require-effective-target vect_int } */
+/* { dg-require-effective-target vect_int_mult } */
+/* { dg-require-effective-target vect_pack_trunc } */
+/* { dg-require-effective-target vect_unpack } */
+
+void train(short *t, short *w, int n, int err)
+{
+ n=(n+7)&-8;
+ for (int i=0; i<n; ++i)
+ {
+ int wt=w[i]+((t[i]*err*2>>16)+1>>1);
+ if (wt<-32768) wt=-32768;
+ if (wt>32767) wt=32767;
+ w[i]=wt;
+ }
+}
+
+/* { dg-final { scan-tree-dump "vectorized 1 loops" "vect" { xfail vect_no_int_max } } } */
+/* { dg-final { cleanup-tree-dump "vect" } } */