[PATCH] D20789: Consecutive memory access in Loop Vectorizer - fixed and simplified
    Ayal Zaks via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Sun Jun  5 16:56:41 PDT 2016
    
    
  
Ayal added a comment.
(1) Indeed *p++ should be treated just as consecutively as p[i++] by all means.
(2) Could we simply use getPtrStride(), like so:
  int Stride = getPtrStride(PSE, Ptr, TheLoop, Strides);
  if (Stride == 1 || Stride == -1)
    return Stride;
  return 0;
making it work with specialization for unit-stride (vectorizing the load in version-mem-access.ll)?
(3) If you test for
  *to++ == *from--
you'll also catch reverse consecutive, and won't compete with -loop-idiom's folding to memcpy; albeit cost will be higher.
Repository:
  rL LLVM
http://reviews.llvm.org/D20789
    
    
More information about the llvm-commits
mailing list