This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SME] Add outer product instructions
ClosedPublic

Authored by c-rhodes on Jul 7 2021, 11:30 AM.

Details

Summary

This patch adds support for the following outer product instructions:

  • BFMOPA, BFMOPS, FMOPA, FMOPS, SMOPA, SMOPS, SUMOPA, SUMOPS, UMOPA, UMOPS, USMOPA, USMOPS.

Depends on D105570.

The reference can be found here:
https://developer.arm.com/documentation/ddi0602/2021-06

Diff Detail

Event Timeline

c-rhodes created this revision.Jul 7 2021, 11:30 AM
c-rhodes requested review of this revision.Jul 7 2021, 11:30 AM
Herald added a project: Restricted Project. · View Herald TranscriptJul 7 2021, 11:30 AM
Matt added a subscriber: Matt.Jul 7 2021, 3:02 PM
kmclaughlin added inline comments.Jul 8 2021, 10:00 AM
llvm/test/MC/AArch64/SME/bfmopa-diagnostics.s
18

Should there also be tests included here (and in the diagnostic tests for other instructions in this patch) for predicates with an incorrect suffix, i.e. /z?

llvm/test/MC/AArch64/SME/fmopa-diagnostics.s
4

For some other tests (such as smopa-diagnostics.s) you've added details of the valid tiles for each variant in the comments and I think that would be useful here too, i.e.

// Invalid tile
//
// .s => za0-za3, .d => za0-za7
c-rhodes updated this revision to Diff 357461.Jul 9 2021, 2:56 AM

Address @kmclaughlin's comments.

c-rhodes marked 2 inline comments as done.Jul 9 2021, 2:57 AM

Hey @c-rhodes,
Should we add Depends in the commit message, because it uses:
MatrixTileOperand
created in D105570

llvm/lib/Target/AArch64/SMEInstrFormats.td
43

nit:align

82

nit: align

david-arm added inline comments.Jul 9 2021, 8:29 AM
llvm/test/MC/AArch64/SME/bfmopa-diagnostics.s
7

Is it worth having a diagnostic case where the register suffix isn't right, i.e.

bfmopa za4.s, p0/m, p0/m, z0.h, z0.d

?

llvm/test/MC/AArch64/SME/fmopa-diagnostics.s
16

Again, might be useful to test an incorrect size suffix for the one of the registers?

c-rhodes updated this revision to Diff 358234.Jul 13 2021, 4:59 AM
c-rhodes edited the summary of this revision. (Show Details)
  • Address comments.
  • Update sed line in tests to fix Windows precommit.
c-rhodes marked 4 inline comments as done.Jul 13 2021, 5:00 AM

Hey @c-rhodes,
Should we add Depends in the commit message, because it uses:
MatrixTileOperand
created in D105570

Sure, I've updated the commit message.

david-arm accepted this revision.Jul 14 2021, 1:44 AM

LGTM! Thanks for making the changes @c-rhodes. :)

This revision is now accepted and ready to land.Jul 14 2021, 1:44 AM
This revision was landed with ongoing or failed builds.Jul 15 2021, 2:51 AM
This revision was automatically updated to reflect the committed changes.