<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 24, 2017 at 4:20 PM, Sanjay Patel 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><br></div>I started looking at the log files that you attached, and I'm confused. The code that is supposedly causing the perf regression is created by the loop vectorizer, right? Except the bad code is not in the "vector.body", so is there something peculiar about this benchmark that the hot loop is not the vector loop? But there's another mystery: there are no vector ops in the "vector.body"!</blockquote></div><br>I haven't been following this conversation very closely, but the vectorizer can choose to just unroll the loop rather than vectorize it, so you can see a "vector.body" block with no vector instructions. I took a brief look at the dumped IR. The code inserted by the vectorizer into the "other" loop is part of the minimum iterations run-time check. This was probably created and put there by a SCEV expander.</div><div class="gmail_extra"><br></div><div class="gmail_extra">-- Matt</div></div>