This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Teach perfect shuffles tables about D-lane movs
ClosedPublic

Authored by dmgreen on May 12 2022, 10:28 AM.

Details

Summary

Similar to D123386, this adds D-Movs to the AArch64 perfect shuffle tables, slightly lowering the costs a little more. This is a rough improvement in general, especially if you ignore mov v0.16b, v2.16b type moves that are often artefacts of the calling convention.

The D register movs are encoded as (0x4 | LaneIdx), and to generate a D register move we are required to bitcast into a higher type, but it is otherwise very similar to the S-lane mov's already supported.

Diff Detail

Event Timeline

dmgreen created this revision.May 12 2022, 10:28 AM
Herald added a project: Restricted Project. · View Herald TranscriptMay 12 2022, 10:28 AM
dmgreen requested review of this revision.May 12 2022, 10:28 AM
Herald added a project: Restricted Project. · View Herald TranscriptMay 12 2022, 10:28 AM
SjoerdMeijer accepted this revision.May 13 2022, 12:49 AM

Not that easy to spot that this is an improvement from these test changes, but I think I see a few, and the idea makes sense, so LGTM.

This revision is now accepted and ready to land.May 13 2022, 12:49 AM
This revision was landed with ongoing or failed builds.May 17 2022, 10:16 AM
This revision was automatically updated to reflect the committed changes.
Herald added a project: Restricted Project. · View Herald TranscriptMay 17 2022, 10:16 AM
Herald added a subscriber: cfe-commits. · View Herald Transcript