[PATCH] [AArch64 - BE] BUILD_VECTOR lane order is reversed in big-endian mode

Asiri Rathnayake asiri.rathnayake at arm.com
Thu Aug 28 03:51:40 PDT 2014


Hi t.p.northover,

Hi Tim,

This is a revamp of [1].

That patch was rejected mainly because it lacked enough testing. I've added tests to cover all ModImmTypes and addressed the other minor points you mentioned there.

Notes:-
  - The need to use rev64 instructions with big-endian vectors is documented at [2]
  - Most ModImmTypes have a symmetric counter-part, and the lane reversal causes them to be encoded in that opposite pattern. A few ModImmTypes (7,8, 11, 12) do not have that property and gets pushed into memory. But this is irrelevant as far as correctness is concerned.

Thanks.

- Asiri

[1] http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20140714/226398.html
[2] http://llvm.org/docs/BigEndianNEON.html

http://reviews.llvm.org/D5097

Files:
  lib/Target/AArch64/AArch64ISelLowering.cpp
  test/CodeGen/AArch64/aarch64-big-endian-movi.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D5097.13026.patch
Type: text/x-patch
Size: 15569 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140828/e40b9b1f/attachment.bin>


More information about the llvm-commits mailing list