[PATCH] Fix big-endian NEON intrinsics
James Molloy
james.molloy at arm.com
Wed Jun 25 06:49:32 PDT 2014
Hi Tim,
> These are fairly horrific. They're basically being used as global
> variables, not as actual state of an Intrinsic.
Agreed. I've attached a new patch that threads NamePrefix as an argument. For CallPrefix I didn't want to thread it through all possible call paths, so I created an inner helper class to contain it. This class is stateful, but it is at least immutable state.
What do you think?
James
> -----Original Message-----
> From: Tim Northover [mailto:t.p.northover at gmail.com]
> Sent: 24 June 2014 12:18
> To: James Molloy
> Cc: Clang Commits; llvm-commits
> Subject: Re: [PATCH] Fix big-endian NEON intrinsics
>
> 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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-ARM-BE-Generate-correct-NEON-intrinsics-for-big-endi.patch
Type: application/octet-stream
Size: 25130 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140625/35e3c3c3/attachment.obj>
More information about the cfe-commits
mailing list