new file mode 100644
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+
+void f(long*);
+int ff[2];
+void f2(long, long, unsigned long);
+void k(unsigned long x, unsigned long y)
+{
+ long t = x >> ff[0];
+ long t1 = ff[1];
+ unsigned long t2 = y >> ff[0];
+ f2(t1, t+t2, t2);
+}
@@ -3634,6 +3634,10 @@ vect_analyze_slp (vec_info *vinfo, unsigned max_tree_size)
for (unsigned i = 0; i < bb_vinfo->roots.length (); ++i)
{
vect_location = bb_vinfo->roots[i].roots[0]->stmt;
+ /* Apply patterns. */
+ for (unsigned j = 0; j < bb_vinfo->roots[i].stmts.length (); ++j)
+ bb_vinfo->roots[i].stmts[j]
+ = vect_stmt_to_vectorize (bb_vinfo->roots[i].stmts[j]);
if (vect_build_slp_instance (bb_vinfo, bb_vinfo->roots[i].kind,
bb_vinfo->roots[i].stmts,
bb_vinfo->roots[i].roots,