This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SVE] Asm: Enable instructions to be prefixed.
ClosedPublic

Authored by sdesmalen on Jul 20 2018, 2:36 AM.

Details

Summary

This patch enables instructions that are destructive on their
destination- and first source operand, to be prefixed with a
MOVPRFX instruction.

This patch also adds a variety of tests:

  • positive tests for all instructions and forms that accept a movprfx for either or both predicated and unpredicated forms.
  • negative tests for all instructions and forms that do not accept an unpredicated or predicated movprfx.
  • negative tests for the diagnostics that get emitted when a MOVPRFX instruction is used incorrectly.

This is patch [2/2] in a series to add MOVPRFX instructions:

Diff Detail

Repository
rL LLVM

Event Timeline

sdesmalen created this revision.Jul 20 2018, 2:36 AM

It is probably worth noting that the positive and negative tests to explicitly test that instructions (and/or specific forms of those instructions) are or are not movprfx-able, are auto-generated using a separate tool (so my apologies for the large diff :)). The movprfx-diagnostics.s is worth pointing out as testing the specific rules of the MOVPRFX instruction.

  • Updated to reflect changes in D49592 to use TSFlags instead of separate table for annotating instructions as destructive operations.
  • Added negative tests for new SVE instructions that were added since uploading the previous patch.
SjoerdMeijer accepted this revision.Jul 30 2018, 6:43 AM

Looks reasonable to me.

This revision is now accepted and ready to land.Jul 30 2018, 6:43 AM
This revision was automatically updated to reflect the committed changes.