This is an archive of the discontinued LLVM Phabricator instance.

[SME2][AArch64] Add multi-multi multiply-add long long intrinsics
ClosedPublic

Authored by kmclaughlin on Feb 3 2023, 8:58 AM.

Details

Summary

Adds intrinsics for the following SME2 instructions (2 & 4 vectors):

  • smlall
  • smlsll
  • umlall
  • umlsll
  • usmlall
NOTE: These intrinsics are still in development and are subject to future changes.

Diff Detail

Event Timeline

kmclaughlin created this revision.Feb 3 2023, 8:58 AM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 3 2023, 8:58 AM
kmclaughlin requested review of this revision.Feb 3 2023, 8:58 AM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 3 2023, 8:58 AM
david-arm added inline comments.Feb 9 2023, 5:25 AM
llvm/lib/Target/AArch64/SMEInstrFormats.td
2818

Again, same suggestion as here https://reviews.llvm.org/D143276#inline-1386660, but feel free to ignore this if it doesn't make it any better!

kmclaughlin added inline comments.Feb 15 2023, 9:41 AM
llvm/lib/Target/AArch64/SMEInstrFormats.td
2818

I think in this case it will not reduce much because the VG2 & VG4 instructions have to use separate classes (sme2_mla_ll_array_vg2_multi and sme2_mla_ll_array_vg4_multi)?

david-arm accepted this revision.Feb 16 2023, 5:16 AM

LGTM!

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

Fair point, silly me!

This revision is now accepted and ready to land.Feb 16 2023, 5:16 AM