[LLVMdev] Implementing the ARM NEON Intrinsics for PowerPC

Stanislav Manilov stanislav.manilov at gmail.com
Wed Oct 2 06:37:50 PDT 2013


Thank you all for the help.

Here is my plan of action:

   1. Read up on NEON and AltiVec
   2. Write ((small) parts of) arm_neon.h using AltiVec intrinsics
   3. Write a function pass to convert simple (vector arithmetic) NEON C
   code to PowerPC AltiVec assembly code and submit for review.
   4. Add NEON intrinsics that map to multiple AltiVec instructions
   5. Add patterns involving surrounding instructions in order to support
   single complex AltiVec instructions
   6. (not necessarily after 4 and 5, but maybe during): Try producing C
   code with AltiVec intrinsics as output, when given C code with NEON
   intrinsics.

Things to be aware of:

   1. Endian-ness
   2. Importance of tests and documentation

I will update you once I have some progress.

Cheers,
 - Stan


On 2 October 2013 13:45, Renato Golin <renato.golin at linaro.org> wrote:

> On 2 October 2013 13:36, Hal Finkel <hfinkel at anl.gov> wrote:
>
>> You can certainly do this in terms of an LLVM transformation, but I think
>> that creating some kind of header file would be, at least, where I'd start
>> prototyping this.
>>
>
> Yes, this is a good approach to understanding the problem. But I wouldn't
> use this as a final solution, as it scales quadratically with the number of
> supported SIMD architectures, including all variations (like NEON v7, v8
> and CPU dependent choices).
>
> cheers,
> --renato
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131002/9c7aa89e/attachment.html>


More information about the llvm-dev mailing list