Optional Problem Statement -------------------------- 1. The code given below is different from the other examples, because the dependence distance here is non-uniform. GCC still vectorizes this code by versioning. Analyze the vectorization dump to understand versioning. 2. In the generated dump, observe how the strided read in S1 is vectorized. Test case --------- int a[245]; int main () { int i; for (i=0; i<100; i++) { a[i] = a[i*2]; /* S1 */ } return 0; }