Yes, this should get vectorized. The problem is in data dependencies analysis. We fail to prove that s_5->a[i_16] and s_5->a[i_16] access the same memory location. I think, it happens since when we compare the bases of the data references (s_5->a and s_5->a) in base_object_differ_p(), we do that by comparing the trees (which are pointers) and not their content.
I'll look into this and, I hope, I will submit a fix for that soon (I guess using operand_equal_p instead). Thanks, Ira