[PATCH] D63567: [ARM] Mve vector shuffles

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 19 12:12:43 PDT 2019


dmgreen created this revision.
dmgreen added reviewers: t.p.northover, samparker, SjoerdMeijer, simon_tatham.
Herald added subscribers: hiraditya, kristof.beyls, javed.absar.
Herald added a project: LLVM.

This patch tries to add the necessary shuffle vector and buildvector support for ARM MVE. It essentially adds support for VDUP, VREVs and some VMOVs, which are often required by other code (like the upcoming DIV patch).

This mostly uses the same code as for Neon that already generated NEONvdup/NEONvduplane/NEONvrev's. These have been renamed to ARMvdup/etc and moved to ARMInstrInfo as they are common to both architectures. Most of the selection code seems to be applicable to both, but NEON does have some more instructions making some parts specific.

Most code originally by David Sherwood. I've put the patterns near the instructions they effect, but not in them. This is still working from the un-renamed instructions (they don't have MVE_ on the front of all of them yet), but the code is the same.


https://reviews.llvm.org/D63567

Files:
  llvm/lib/Target/ARM/ARMISelLowering.cpp
  llvm/lib/Target/ARM/ARMInstrInfo.td
  llvm/lib/Target/ARM/ARMInstrMVE.td
  llvm/lib/Target/ARM/ARMInstrNEON.td
  llvm/test/CodeGen/Thumb2/mve-shuffle.ll
  llvm/test/CodeGen/Thumb2/mve-vdup.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D63567.205651.patch
Type: text/x-patch
Size: 80820 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190619/4bed7846/attachment.bin>


More information about the llvm-commits mailing list