[ARM] MVE big endian loads/stores
commitce7ee22c5452663461ac9daae0e7c777011107dd
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
parentf5c4755db315030175f86face6ed6fdf565d9ac4
[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