I fixed consecutive memory access detection in Loop Vectorizer.
It did not handle correctly cases without GEP.
I started from this loop that wasn't vectorized.
for (int i=0; i<len; i++)
*to++ = *from++;
Probably this loop should be resolved with memcpy, but it is another pass. Current loop vectorizer does not recognize consecutive memory access, because the generated code performs load/store without GEP. I use SCEV to detect consecutive access.
Also you didn't resolve the merge conflict properly. isConsecutivePtr was just forwarding to getPtrStride in the earlier version as it should but now the entire original body has snuck back in.