This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Armv8.6-A Mat Mul SVE Assembly
ClosedPublic

Authored by LukeGeeson on Apr 10 2020, 6:41 AM.

Details

Summary

This patch upstreams support for the Armv8.6-a Matrix Multiplication
Extension. A summary of the features can be found here:

https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/arm-architecture-developments-armv8-6-a

This patch includes:

  • Assembly support for AArch64 Scalable Vector Instructions (in line with the Scalable Vector Extension - SVE)

This is part of a patch series, starting with BFloat16 support and
the other components in the armv8.6a extension (in previous patches
linked in phabricator)

Based on work by:

  • Luke Geeson
  • Oliver Stannard
  • Luke Cheeseman

Diff Detail

Event Timeline

LukeGeeson created this revision.Apr 10 2020, 6:41 AM

@LukeGeeson thanks for the patch! Just a few comments but nothing major

llvm/lib/Target/AArch64/SVEInstrFormats.td
7644

nit: add a line after comment for consistency

llvm/test/MC/AArch64/SVE/matrix-multiply-fp-diagnostics.s
69

s/ammount/amount

llvm/test/MC/AArch64/SVE/matrix-multiply-fp64.s
75

So it looks like there's three aliases defined:

  1. Vector list first operand no immediate
  2. Vector register first operand no immediate
  3. Vector register first operand with immediate

These tests only cover the second, please could you add tests for the other two

157–186

Should there be tests for uzp1 and uzp2 as well?

llvm/test/MC/AArch64/SVE/matrix-multiply-int8-diagnostics.s
16

incompatible with predicated movprfx (and below)

llvm/test/MC/AArch64/SVE/matrix-multiply-int8.s
108

Missing a movprfx test for indexed form of sudot

LukeGeeson marked 6 inline comments as done.
  • fixed typos
  • added movprf compatibility test for indexed variant of sudot
  • added uzp1, uzp2 tests
  • added tests for ld1ro* vector list variants (no immediate), register variant (with immediate)
This revision is now accepted and ready to land.Apr 20 2020, 8:29 AM
This revision was automatically updated to reflect the committed changes.