[LLVMdev] Implementing the ARM NEON Intrinsics for PowerPC

Steven Newbury steve at snewbury.org.uk
Wed Oct 2 02:12:36 PDT 2013


How does this make any sense?  NEON intrinsics are there to support code
generation targeting the ARM NEON SIMD unit on the ARM architecture.
Power/PowerPC as it's own AltiVec/VSX SIMD units, which in turn has it's
own intrinsics.

If you want write code that explicitly targets CPU execution units it's
necessarily tied to that specific CPU architecture.  If you just want to
test code for written for a different CPU on a development box your best
bet is to use a VM like QEMU with CPU emulation.

If you want to write code that will take advantage of whatever SIMD
hardware is available you might want to try abstracting your
implementation and use one of the many libraries which provide a higher
level API to SIMD optimized functionality.

On Wed, 2013-10-02 at 09:54 +0100, Stanislav Manilov wrote:
> Hello Hal,
> 
> I am not very familiar with the DSP capabilities of PowerPC, but I imagine
> there will be instructions for simple vector operations like vector
> addition, multiplication, etc. so for these I imagine the implementation
> would consist of just outputting the correct instruction. However, for NEON
> instructions like the reciprocal step (see
> http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489c/CIHDIACI.html)
> it
> is unlikely that there is a corresponding PowerPC vector instruction, so
> these will need to be emulated, yes.
> 
>  - Stan
> 
> 
> On 2 October 2013 04:14, Hal Finkel <hfinkel at anl.gov> wrote:
> 
> > Stan,
> >
> > Do you mean that you want to emulate the ARM NEON intrinsics on PowerPC?
> >
> >  -Hal
> >
> > ----- Original Message -----
> > >
> > >
> > > Hello LLVM Devs,
> > >
> > >
> > > Thanks for helping me previously to cross-compile for ARM, I managed
> > > to get a working toolchain and am currently having fun compiling
> > > different toy problems and running them on a pandaboard.
> > >
> > > As part of my research I am trying to implement the ARM NEON
> > > Intrinsics in the PowerPC LLVM backend. I am still at the beginning
> > > of my efforts and am not yet familiar with either the ARM or the
> > > PowerPC backends. After I started investigating the code and found
> > > out that in total it is more than 100 kloc for the two backends I
> > > thought it is a good idea to ask you for some hints of where I
> > > should start from.
> > >
> > > I have written a small unrelated experimental backend for LLVM
> > > before, so I have some experience with the topic.
> > >
> > >
> > > Thanks,
> > > - Stan
> > > _______________________________________________
> > > LLVM Developers mailing list
> > > LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> > > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> > >
> >
> > --
> > Hal Finkel
> > Assistant Computational Scientist
> > Leadership Computing Facility
> > Argonne National Laboratory
> >
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev






More information about the llvm-dev mailing list