This is an archive of the discontinued LLVM Phabricator instance.

[ARM] Don't split trunc stores that can be better handled as VMOVN
ClosedPublic

Authored by dmgreen on Mar 20 2020, 9:29 AM.

Details

Summary

We deliberately split stores of the form store(truncate(larger-than-legal-type)) into two stores, allowing each store to perform part of the truncate for free.

There are times however where it makes more sense to use VMOVN to de-interlace the results back into a single vector, and store that in one go. This adds a check for that situation, not splitting the store if it looks like a VMOVN can be more useful.

Diff Detail

Event Timeline

dmgreen created this revision.Mar 20 2020, 9:29 AM
simon_tatham accepted this revision.Mar 23 2020, 2:38 AM
This revision is now accepted and ready to land.Mar 23 2020, 2:38 AM
This revision was automatically updated to reflect the committed changes.
Herald added a project: Restricted Project. · View Herald TranscriptMar 24 2020, 3:12 AM