Solution -------- 1) For a machine having 128 bit of vector registers, the vectorization factor (VF) is the ratio of 128 by the size of data type in bits. Here data type for which vector operation is performed will decide the denominator. If the same machine have 'int' of size 32 bit, VF will be 4. So, VF is dependent on the data type. 2) Considering VF=4 i.e. size of vector register is 128 bits and size of 'int' is 32 bits. a) For all -ve value of 'X', statement S1 has a loop-carried anti dependence over itself which doesn't prohibits the vectorization. Therefore vectorization is always possible for X<0. For X=0, S1 has loop-independent anti dependence over itself. Hence vectorization is possible. For 0=4, S1 has loop-carried flow dependence but also the distance between the two dependent iteration is greater than VF. Hence vectorization is still possible in presence flow dependence as the vectorized program will honour the dependences. b) As mentioned in solution to above section, for 0: ........ # ivtmp.17_38 = PHI ........ ivtmp.17_39 = ivtmp.17_38 + 1; if (ivtmp.17_39 < 62) goto ; else goto ; : .......... # ivtmp.4_17 = PHI .......... ivtmp.4_22 = ivtmp.4_17 - 1; if (ivtmp.4_22 != 0) goto ; else goto ;