+ The vectorizer now supports vectorizing loops which contain any number of early breaks.
+ This means loops such as:
+ + int z[100], y[100], x[100];
+ int foo (int n)
+ {
+ int res = 0;
+ for (int i = 0; i < n; i++)
+ {
+ y[i] = x[i] * 2;
+ res += x[i] + y[i];
+
+ if (x[i] > 5)
+ break;
+
+ if (z[i] > 5)
+ break;
+
+ }
+ return res;
+ }
+

+ can now be vectorized on a number of targets. In this first version any
+ input data sources must either have a statically known size at compile time
+ or the vectorizer must be able to determine based on auxillary information
+ that the accesses are aligned.
+