[PATCH] Fix big-endian NEON intrinsics

James Molloy james.molloy at arm.com
Fri Jun 20 07:49:01 PDT 2014


Hi Tim,

 

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.

 

Cheers,

 

James

 

From: James Molloy [mailto:james.molloy at arm.com] 
Sent: 18 June 2014 08:26
To: Clang Commits; llvm-commits; Tim Northover
Subject: FW: [PATCH] Fix big-endian NEON intrinsics

 

Forwarding to cfe-commits as I accidentally added the wrong mail list.

 

From: James Molloy [mailto:james.molloy at arm.com] 
Sent: 17 June 2014 16:25
To: Tim Northover; llvm-commits
Subject: [PATCH] Fix big-endian NEON intrinsics

 

Hi Tim,

 

This is the final big-endian patch in my queue. With it, we pass the emperor
testcases that I've run.

 

The NEON intrinsics in arm_neon.h are designed to work on vectors "as-if"
loaded by (V)LDR. We load vectors "as-if" (V)LD1, so the intrinsics are
currently incorrect.

 

This patch adds big-endian versions of the intrinsics that does the "obvious
but dumb" thing of reversing all vector inputs and all vector outputs. This
will produce extra REVs, but we trust the optimizer to remove them.

 

Could you please review? There's a documentation patch for BigEndianNeon.rst
on the way too.

 

Cheers,

 

James
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140620/adb16094/attachment.html>
-------------- 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: 13286 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140620/adb16094/attachment.obj>


More information about the llvm-commits mailing list