<div dir="ltr"><div><div>Does the fact that loop vectorizer supports arbitrary constant step size suggest that this is by design?<br><a href="https://reviews.llvm.org/rL227557">https://reviews.llvm.org/rL227557</a><br><br></div>Apparently an older version of LLVM, canonicalized induction variables as described above.<br><a href="http://llvm.org/releases/2.6/docs/Passes.html#indvars">http://llvm.org/releases/2.6/docs/Passes.html#indvars</a><br><br></div><div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 24, 2016 at 9:48 PM, Yaoqing Gao via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I just subscribed this group.  This is my first time to post a question (not sure if this is a right place for discussion) after I have a brief look at LLVM OPT (dev trunk).   I would expect loop simplification and induction variable canonicalization pass (IndVarSimplify pass) should be able to convert the following loops into a simple canonical form, i.e., there is a canonical induction variable which starts at zero and steps by one,  getCanonicalInductionVariable(<wbr>) returns  the first PHI node in the loop header block.   <br><br>int test1 (int x[], int k, int s) {<br>  int sum = 0;<br>  for (int i = 0; i < k; i+=s) {<br>    sum += x[i];<br>  }<br>  return sum;<br>}<br><br>int test2(int x[], int k, int s) {<br>  int sum = 0;<br>  for (int i = k; i > 0; i--) {<br>    sum += x[i];<br>  }<br>  return sum;<br>}<br><br>Anyone can help explain why the current LLVM cannot canonicalize induction variables for the above loops (by design or a limitation to be fixed in the future)?  Thanks.<span class="HOEnZb"><font color="#888888"><br clear="all"><br>-- <br><div data-smartmail="gmail_signature">Best regards,<br><br>Yaoqing Gao</div>
</font></span></div>
<br>______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div>