RFC: Enable vectorization of call instructions in the loop vectorizer

Renato Golin renato.golin at linaro.org
Tue Dec 17 14:06:32 PST 2013

On 17 December 2013 19:10, Philip Reames <listmail at philipreames.com> wrote:

>  Specifically with regards to metadata, why is the metadata on the call
> site not the function declaration?  I would expect that a call to "cos"
> would always vectorize to the same "cos4".  Is supporting different
> vectorizations at different points of the program a key goal?

Yes. Sometimes...

See the test in the patch for an idea of two different functions, maybe
both available, maybe not.

Also, some variants could be more efficient in some cases, while some in
others. This may sound vague, but OpenCL has such a large number of
functions that I'd be surprised if there were only simple cases... James
can give more concrete examples on where this is important.

In a strictly libc case, you may create several variants of memcpy based on
the arguments (restrict or volatile, address space boundaries, etc), and
apply the fastest you can on each case.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131217/d6749c56/attachment.html>

More information about the llvm-commits mailing list