[llvm-dev] [InstCombine] rL292492 affected LoopVectorizer and caused 17.30%/11.37% perf regressions on Cortex-A53/Cortex-A15 LNT machines

Matthew Simpson via llvm-dev llvm-dev at lists.llvm.org
Tue Jan 24 13:45:46 PST 2017

On Tue, Jan 24, 2017 at 4:20 PM, Sanjay Patel via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> 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"!

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.

-- Matt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170124/df2ee44d/attachment.html>

More information about the llvm-dev mailing list