[cfe-dev] [llvm-dev] generate vectorized code

Rail Shafigulin via cfe-dev cfe-dev at lists.llvm.org
Fri Mar 18 14:03:00 PDT 2016

On Fri, Mar 18, 2016 at 1:53 PM, Mehdi Amini <mehdi.amini at apple.com> wrote:

> On Mar 18, 2016, at 1:47 PM, Rail Shafigulin <rail at esenciatech.com> wrote:
> Yes this IR does not build or shuffle any vector. Try to write a function
>> that takes 8 ints and a pointer to a <4xi32>, builds two vectors with the 8
>> ints,
> This might sound like a dumb question, but how does one build a vector of
> ints out of regular ints in IR?
> See: http://llvm.org/docs/LangRef.html#vector-operations
> In short, the IR has "insertelement", which maps to "INSERT_VECTOR_ELT" in
> SDAG and "extractelement", which maps to "EXTRACT_VECTOR_ELT" in SDAG.
> I usually find good example by grepping in the lit tests. Another way is
> to write the function in clang, and run it with -O3 -emit-llvm -S to get a
> good starting point.
I tried using clang test.c -O3 -emit-llvm -S, but the only I didn't see any
of the insertvectorelt or extractvectorelt. I'm wondering how does one
trigger vector operations?

Below is the test.c file. It seemed to me like a good candidate for
vectorization, however nothing happened. I would really appreciate  if you
could point me in the right
direction with respect to vector generation.

Any help is appreciated.

> --
> Mehdi

Rail Shafigulin
Software Engineer
Esencia Technologies
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20160318/c938590e/attachment.html>

More information about the cfe-dev mailing list