[ARM] MVE big endian loads/stores
commit26973b679992e502c68b570eef47ccf2d3ce57b2
authorDavid Green <david.green@arm.com>
Thu, 8 Aug 2019 15:15:19 +0000 (8 15:15 +0000)
committerDavid Green <david.green@arm.com>
Thu, 8 Aug 2019 15:15:19 +0000 (8 15:15 +0000)
tree2f3c7ee0d18c6ac4790229fde73672e29abf8bf4
parent7521b3e1388c505b6f603b8d2c3de79b56360ab6
[ARM] MVE big endian loads/stores

This adds some missing patterns for big endian loads/stores, allowing unaligned
loads/stores to also be selected with an extra VREV, which produces better code
than aligning through a stack. Also moves VLDR_P0 to not be LE only, and
adjusts some of the tests to show all that working.

Differential Revision: https://reviews.llvm.org/D65583

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@368304 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/ARM/ARMInstrMVE.td
test/CodeGen/Thumb2/mve-be.ll
test/CodeGen/Thumb2/mve-loadstore.ll
test/CodeGen/Thumb2/mve-pred-spill.ll
test/CodeGen/Thumb2/mve-widen-narrow.ll