This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][SME] Add SME outer product intrinsics
ClosedPublic

Authored by david-arm on Jun 16 2022, 5:49 AM.

Details

Summary

This patch adds the following intrinsics to support the SME ACLE:

  • @llvm.aarch64.sme.mopa: Non-widening outer product + accumulate
  • @llvm.aarch64.sme.mops: Non-widening outer product + subtract
  • @llvm.aarch64.sme.mopa.wide: Widening outer product + accumulate
  • @llvm.aarch64.sme.mops.wide: Widening outer product + subtract
  • @llvm.aarch64.sme.smopa.wide: Widening signed sum of outer product + accumulate
  • @llvm.aarch64.sme.smops.wide: Widening signed sum of outer product + subtract
  • @llvm.aarch64.sme.umopa.wide: Widening unsigned sum of outer product + accumulate
  • @llvm.aarch64.sme.umops.wide: Widening unsigned sum of outer product + subtract
  • @llvm.aarch64.sme.sumopa.wide: Widening signed by unsigned sum of outer product + accumulate
  • @llvm.aarch64.sme.sumops.wide: Widening signed by unsigned sum of outer product + subtract
  • @llvm.aarch64.sme.usmopa.wide: Widening unsigned by signed sum of outer product + accumulate
  • @llvm.aarch64.sme.usmops.wide: Widening unsigned by signed sum of outer product + subtract

Diff Detail

Event Timeline

david-arm created this revision.Jun 16 2022, 5:49 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 16 2022, 5:49 AM
david-arm requested review of this revision.Jun 16 2022, 5:49 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 16 2022, 5:49 AM
Matt added a subscriber: Matt.Jun 16 2022, 4:44 PM
aemerson accepted this revision.Jun 27 2022, 10:17 AM

LGTM.

llvm/lib/Target/AArch64/AArch64SchedTSV110.td
29

Is this needed in this patch?

This revision is now accepted and ready to land.Jun 27 2022, 10:17 AM
david-arm marked an inline comment as done.Jun 28 2022, 1:05 AM
david-arm added inline comments.
llvm/lib/Target/AArch64/AArch64SchedTSV110.td
29

Sadly it is. It's some weird quirk due to the change in the instruction definitions - suddenly when compiling this file we get errors and the solution is to mark SME as unsupported.

This revision was landed with ongoing or failed builds.Jun 28 2022, 1:41 AM
This revision was automatically updated to reflect the committed changes.
david-arm marked an inline comment as done.