[PATCH] D24557: [Loop Vectorizer] Simplified GEP cloning. NFC.

Matthew Simpson via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 15 11:23:25 PDT 2016


mssimpso added a comment.

In https://reviews.llvm.org/D24557#543837, @mkuper wrote:

> (a) LVL::isUniform() and LAI::isUniform() are basically equivalent to isLoopInvariant(). They imply the value is equal on all lanes.
>  (b) LVL::isUniformAfterVectorization() refers to what @anemet is talking about - it's a property of how the value is used, specifically that we only use the lane 0 value.


Yes, this makes sense to me. Thanks, Michael. Another nuance is that isLoopInvariant here means that the value is the same on every iteration. This is different from Loop::isLoopInvariant, which implies an instruction is not contained in the loop body.

> Does this make sense?


Makes sense to me as well.

In https://reviews.llvm.org/D24557#543857, @anemet wrote:

> Sounds like the assert should state that one of the operands needs to be a loop-variant uniform while the others all loop-invariant.  Agreed?


The "loop-variant uniform" part sounds strange to me, since IV's don't have to be uniform. Don't we mean: one operand "is an induction variable or consecutive pointer" and all other operands are loop-invariant?


Repository:
  rL LLVM

https://reviews.llvm.org/D24557





More information about the llvm-commits mailing list