[llvm-dev] generate vectorized code
Mehdi Amini via llvm-dev
llvm-dev at lists.llvm.org
Fri Mar 18 13:53:38 PDT 2016
> 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.
--
Mehdi
>
> sum them, and store the result to the pointer.
>
>
>>
>> In other words I left the code as is.
>>
>> However if I use a .c code and run it through clang, I don't see any vector instructions. I'm puzzled. What am I doing wrong? There seems to be a step missing, the one that will generate vectorized IR, but I can't seem to find how to do it.
>
> Try: clang -O3 -emit-llvm -S test.c
>
> --
> Mehdi
>
>
>>
>> Any help on this is really appreciated.
>>
>> --
>> Rail Shafigulin
>> Software Engineer
>> Esencia Technologies
>
>
>
>
> --
> Rail Shafigulin
> Software Engineer
> Esencia Technologies
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160318/b0529f1a/attachment.html>
More information about the llvm-dev
mailing list