This is an archive of the discontinued LLVM Phabricator instance.

[ARM] MVE VMOV immediate handling
ClosedPublic

Authored by dmgreen on Jun 27 2019, 9:00 AM.

Details

Summary

This adds some handling for VMOVimm, using the same method that NEON uses. We create VMOVIMM / VMVNIMM / VMOVFPIMM nodes based on the immediate, and select them on the now renamed ARMvmovImm / etc. There is also an extra 64bit immediate mode that I have not yet added here.

Most of the test changes are just showing the inefficiencies in buildvector that we plan to fix.

Code by David Sherwood

Diff Detail

Event Timeline

dmgreen created this revision.Jun 27 2019, 9:00 AM
SjoerdMeijer accepted this revision.Jul 1 2019, 3:00 AM

Looks reasonable to me, some nits inline.

llvm/lib/Target/ARM/ARMISelLowering.cpp
6035

nit: Mve -> MVE?

llvm/lib/Target/ARM/ARMISelLowering.h
836

nit: don't know, perhaps Mve -> MVE for consistency.

llvm/test/CodeGen/Thumb2/mve-vmovimm.ll
5

is it useful to test this with -mattr=-mve too?

This revision is now accepted and ready to land.Jul 1 2019, 3:00 AM
This revision was automatically updated to reflect the committed changes.