[AArch64][SME] Add outer product instructions
authorCullen Rhodes <cullen.rhodes@arm.com>
Thu, 15 Jul 2021 08:41:08 +0000 (08:41 +0000)
committerCullen Rhodes <cullen.rhodes@arm.com>
Thu, 15 Jul 2021 09:51:06 +0000 (09:51 +0000)
commitdfa76933c29626d08a3538fcc66f120a5bc563b7
tree156fd5c08f50e78b8f7bad7852a0f7acf34b218b
parent0ed1747a92d0f4294bc1ab22627b4c9bab42e27a
[AArch64][SME] Add outer product instructions

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

Reviewed By: david-arm

Differential Revision: https://reviews.llvm.org/D105571
36 files changed:
llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td
llvm/lib/Target/AArch64/SMEInstrFormats.td
llvm/test/MC/AArch64/SME/bfmopa-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/bfmopa.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/bfmops-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/bfmops.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/fmopa-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/fmopa-fp64.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/fmopa.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/fmops-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/fmops-fp64.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/fmops.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/smopa-32.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/smopa-64.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/smopa-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/smops-32.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/smops-64.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/smops-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/sumopa-32.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/sumopa-64.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/sumopa-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/sumops-32.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/sumops-64.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/sumops-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/umopa-32.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/umopa-64.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/umopa-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/umops-32.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/umops-64.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/umops-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/usmopa-32.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/usmopa-64.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/usmopa-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/usmops-32.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/usmops-64.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME/usmops-diagnostics.s [new file with mode: 0644]