[AArch64] SME2 Single-multi vector ternary int/FP 2 and 4 registers
authorCaroline Concatto <caroline.concatto@arm.com>
Mon, 3 Oct 2022 13:11:01 +0000 (14:11 +0100)
committerCaroline Concatto <caroline.concatto@arm.com>
Wed, 19 Oct 2022 16:49:48 +0000 (17:49 +0100)
commit2ecbe8c38c99174e91f3f4627c01ea215af527ed
tree739693038af1d67131d4396e516237cc167e1144
parent137459aff6ec2c5f57f978c8feb689fcc8010b62
[AArch64] SME2 Single-multi vector ternary int/FP 2 and 4 registers

This patch adds the assembly/disassembly for the following instructions:

For INT:
    ADD(array results, multiple and single vector): Add replicated single
        vector to multi-vector with ZA array vector results.
    SUB(array results, multiple and single vector): Subtract replicated single
        vector from multi-vector with ZA array vector results.
For FP:
    FMLA (multiple and single vector): Multi-vector floating-point fused
          multiply-add by vector.
    FMLS (multiple and single vector): Multi-vector floating-point
          multiply-subtract long by vector.
The reference can be found here:

https://developer.arm.com/documentation/ddi0602/2022-09

The Matriz Operand has 2 new sizes 32(.s) and 64(.d) bits
(MatrixOp32 and MatrixOp64)

Depends on: D135448

Depends on:  D135952

Differential Revision: https://reviews.llvm.org/D135455
22 files changed:
llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
llvm/lib/Target/AArch64/AArch64RegisterInfo.td
llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td
llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp
llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp
llvm/lib/Target/AArch64/SMEInstrFormats.td
llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-inline-asm.ll
llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-unwind-inline-asm.ll
llvm/test/CodeGen/AArch64/GlobalISel/regbank-inlineasm.mir
llvm/test/CodeGen/AArch64/stp-opt-with-renaming-reserved-regs.mir
llvm/test/CodeGen/AArch64/stp-opt-with-renaming.mir
llvm/test/MC/AArch64/SME2/add-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME2/add.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME2/directive-arch.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME2/fmla-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME2/fmla.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME2/fmls-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME2/fmls.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME2/sub-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME2/sub.s [new file with mode: 0644]