[PATCH] D20789: Consecutive memory access in Loop Vectorizer - fixed and simplified

silviu.baranga@arm.com via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 16 12:41:27 PDT 2016

sbaranga added a comment.

In http://reviews.llvm.org/D20789#460069, @delena wrote:

> I ran ARM/gather-cost.ll with debugger. It receives stride 3 for one of the memory accesses. I assume (I don't know ARM arch), that vectorization is possible with stride=3 under no-wrap flag for GEP's AddRec.

Yes, we do have instructions on ARM that can handle strides {2,3,4}. The fix should be changing the stride to something that would require a gather operation (let's say 5).

> When we run isConsecutivePtr(.., Assume=true), we receive the same result (0), but the no-wrap flag for this pointer is being changed.

Interesting, if Assume=true it should return 3? Do you why this is happening? Just from looking at the original code, is Assume=true it should return Stride not 0.



More information about the llvm-commits mailing list