[PATCH] Fix big-endian NEON intrinsics

Tim Northover t.p.northover at gmail.com
Tue Jun 24 04:17:40 PDT 2014


Hi James,

On 20 June 2014 15:49, James Molloy <james.molloy at arm.com> wrote:
> Slightly updated patch after having thrown a lot more testing at it:
>
>   * Needed to check for void types and one-element-vectors when doing
> argument/return reversal.
>   * vreinterpret and vcreate shouldn’t be reversed.

Sorry this took so long. Basically, I think the fundamentals are
unreviewable without a sensibly specified ACLE (and *definitely* not
obviously the right thing to do). I'm happy to believe you that it
implements the semantics ARM wants for big-endian SIMD until that
document is released, though; I have no vested interest in that
platform.

So all I can really comment on is the implementation. There was only
really one thing which I didn't like there:

+  /// A prefix to apply to the mangled name when emitting this function.
+  std::string NamePrefix;
+  /// A prefix to apply to the mangled name when emitting a call to another
+  /// function.
+  std::string CallPrefix;

These are fairly horrific. They're basically being used as global
variables, not as actual state of an Intrinsic.

Cheers.

Tim.




More information about the llvm-commits mailing list