[ARM] Widening loads and narrowing stores
authorDavid Green <david.green@arm.com>
Fri, 28 Jun 2019 09:47:55 +0000 (09:47 +0000)
committerDavid Green <david.green@arm.com>
Fri, 28 Jun 2019 09:47:55 +0000 (09:47 +0000)
commiteb7080ac6e5e811102b28252554a824aeee17737
tree3f34c36ed2c6e8ebd5e876379e8c2f435ebbfbfd
parent29ff1b4f4653f2c77501ca4e1014c710e602aa08
[ARM] Widening loads and narrowing stores

MVE has instructions to widen as it loads, and narrow as it stores. This adds
the required patterns and legalisation to make them work including specifying
that they are legal, patterns to select them and test changes.

Patch by David Sherwood.

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

llvm-svn: 364636
llvm/lib/Target/ARM/ARMISelLowering.cpp
llvm/lib/Target/ARM/ARMISelLowering.h
llvm/lib/Target/ARM/ARMInstrMVE.td
llvm/test/CodeGen/Thumb2/mve-ldst-offset.ll
llvm/test/CodeGen/Thumb2/mve-ldst-postinc.ll
llvm/test/CodeGen/Thumb2/mve-ldst-preinc.ll
llvm/test/CodeGen/Thumb2/mve-shuffle.ll
llvm/test/CodeGen/Thumb2/mve-widen-narrow.ll [new file with mode: 0644]