This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SME2] Add LLVM IR intrinsics for multi-single dots
ClosedPublic

Authored by david-arm on Jan 24 2023, 7:36 AM.

Details

Summary

Adds intrinsics for the following SME2 instructions:

  • sdot (multi-single, 2 and 4 vectors, 32-bit and 64-bit ZA)
  • udot (multi-single, 2 and 4 vectors, 32-bit and 64-bit ZA)
  • usdot (multi-single, 2 and 4 vectors)
  • sudot (multi-single, 2 and 4 vectors)
  • fdot (multi-single, 2 and 4 vectors)
  • bfdot (multi-single, 2 and 4 vectors)
NOTE: These intrinsics are still in development and are subject to future changes.

Diff Detail

Event Timeline

david-arm created this revision.Jan 24 2023, 7:36 AM
Herald added a project: Restricted Project. · View Herald TranscriptJan 24 2023, 7:36 AM
david-arm requested review of this revision.Jan 24 2023, 7:36 AM
Herald added a project: Restricted Project. · View Herald TranscriptJan 24 2023, 7:36 AM
david-arm updated this revision to Diff 492059.Jan 25 2023, 4:13 AM
  • Added %unused parameters to all tests to show that for these instructions the register list can start at any number.
Matt added a subscriber: Matt.Jan 25 2023, 8:57 AM
kmclaughlin added inline comments.Jan 25 2023, 9:32 AM
llvm/test/CodeGen/AArch64/sme2-intrinsics-fp-dots.ll
9

Is the %unused argument needed for these tests, since they don't require the multi-vector lists to start at multiples of 2 or 4?

david-arm added inline comments.Jan 26 2023, 12:47 AM
llvm/test/CodeGen/AArch64/sme2-intrinsics-fp-dots.ll
9

A very apposite question! So I did this deliberately because follow-on patches such as D142478 will add the other multi-multi and multi-indexed variants of the dot instructions where the register does have to be a multiple. I wanted to be consistent by adding the %unused parameter for all variants, and I also thought it helps to highlight the difference between them.

This revision is now accepted and ready to land.Jan 31 2023, 5:17 AM
This revision was landed with ongoing or failed builds.Jan 31 2023, 7:40 AM
This revision was automatically updated to reflect the committed changes.
Amir added a subscriber: Amir.Jan 31 2023, 6:30 PM
This comment was removed by Amir.