This is an archive of the discontinued LLVM Phabricator instance.

[ARM] Identity shuffles are legal
ClosedPublic

Authored by dmgreen on Sep 30 2019, 1:25 PM.

Details

Summary

Identity shuffles, of the form (0, 1, 2, 3, ...) are perfectly legal under MVE (they essentially just become bitcasts). We were not catching that in the existing set of what we considered legal though. On NEON, they would be covered by vext's, but that is not generally available in MVE.

This uses ShuffleVectorInst::isIdentityMask which is a little odd to use here but does what we want and prevents us from just rewriting what is the same function.

Diff Detail

Repository
rL LLVM

Event Timeline

dmgreen created this revision.Sep 30 2019, 1:25 PM
Herald added a project: Restricted Project. · View Herald TranscriptSep 30 2019, 1:25 PM
This revision is now accepted and ready to land.Oct 1 2019, 5:23 AM
This revision was automatically updated to reflect the committed changes.