[LLVMdev] Vectors in structures

Renato Golin rengolin at systemcall.org
Mon Sep 27 15:23:48 PDT 2010

On 27 September 2010 23:03, Bob Wilson <bob.wilson at apple.com> wrote:
> Can you clarify ARM's position on those structure types?  It sounds like you are advocating that we get rid of them.  The only reason we've been using them in llvm-gcc and clang is for compatibility for ARM's specifications and with ARM's RVCT compiler.  If ARM does not care about those things, I'd love to remove the struct wrappers from llvm.

As Al said earlier, you definitely don't need the structures for
compatibility with armcc.

As far as the LLVM back-end is concerned, with or without structures,
the instruction selection works a treat and generates correct NEON
instructions. If the final object has the correct instructions and
follows ARM ABIs, there is no point in keeping IR compatibility.

I also noticed that Clang's arm_neon.h is completely different from
armcc's, another non-compatible choice that has no impact in the final
object code generated.

As far as I can see, there is no gain in adding the wrapping
structures to the vector types.

I'll add the intrinsic to the VCEQ.P8 locally and test. If that works,
I'll be sending patches to NEON.td for all ambiguities I find...



Reclaim your digital rights, eliminate DRM, learn more at

More information about the llvm-dev mailing list