===================================================================
@@ -5836,9 +5836,12 @@ vectorizable_reduction (gimple *stmt, gi
reduc_index = i;
continue;
}
- else
+ else if (tem)
{
- if (!vectype_in)
+ /* To properly compute ncopies we are interested in the widest
+ input type in case we're looking at a widening accumulation. */
+ if (!vectype_in
+ || TYPE_VECTOR_SUBPARTS (vectype_in) > TYPE_VECTOR_SUBPARTS (tem))
vectype_in = tem;
}
===================================================================
@@ -0,0 +1,22 @@
+/* { dg-do compile } */
+/* { dg-additional-options "-ftree-vectorize" } */
+
+void
+zz (int x9, short int gt)
+{
+ if (0)
+ {
+ while (gt < 1)
+ {
+ int pz;
+
+k6:
+ for (pz = 0; pz < 3; ++pz)
+ x9 += gt;
+ ++gt;
+ }
+ }
+
+ if (x9 != 0)
+ goto k6;
+}