+2016-01-11 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/69173
+ * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
+ fixup the cycle if all stmts are in a pattern.
+
2016-01-11 Uros Bizjak <ubizjak@gmail.com>
PR middle-end/68999
+2016-01-11 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/69173
+ * gcc.dg/torture/pr69173.c: New testcase.
+
2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR rtl-optimization/68796
FOR_EACH_VEC_ELT (LOOP_VINFO_REDUCTION_CHAINS (loop_vinfo), i, first)
if (STMT_VINFO_IN_PATTERN_P (vinfo_for_stmt (first)))
{
- vect_fixup_reduc_chain (first);
- LOOP_VINFO_REDUCTION_CHAINS (loop_vinfo)[i]
- = STMT_VINFO_RELATED_STMT (vinfo_for_stmt (first));
+ gimple *next = GROUP_NEXT_ELEMENT (vinfo_for_stmt (first));
+ while (next)
+ {
+ if (! STMT_VINFO_IN_PATTERN_P (vinfo_for_stmt (next)))
+ break;
+ next = GROUP_NEXT_ELEMENT (vinfo_for_stmt (next));
+ }
+ /* If not all stmt in the chain are patterns try to handle
+ the chain without patterns. */
+ if (! next)
+ {
+ vect_fixup_reduc_chain (first);
+ LOOP_VINFO_REDUCTION_CHAINS (loop_vinfo)[i]
+ = STMT_VINFO_RELATED_STMT (vinfo_for_stmt (first));
+ }
}
}