[AArch64]SME2 Multi-single vector SVE Destructive 2 and 4 Registers
authorCaroline Concatto <caroline.concatto@arm.com>
Mon, 17 Oct 2022 10:46:32 +0000 (11:46 +0100)
committerCaroline Concatto <caroline.concatto@arm.com>
Thu, 20 Oct 2022 17:54:41 +0000 (18:54 +0100)
commit4c4909703d74883e5cc49edcbd22b783135d2897
tree6381664775d7e3c7cd94c82f12e5726e784edf64
parente00dc16dbe35dc2ce9c9c915b3a0d9fc699a8e24
[AArch64]SME2 Multi-single vector SVE Destructive 2 and 4 Registers

This patch adds the assembly/disassembly for the following instructions:
  ADD (to vector): Add replicated single vector to multi-vector with multi-vector result.
  SQDMULH (multiple and single vector): Multi-vector signed saturating doubling multiply high by vector.
for 2 and 4 ZA SVE registers.

The reference can be found here:

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

It also adds more size for the multiple register tuple:
  ZZ_b_mul_r,  ZZ_h_mul_r,
  ZZZZ_b_mul_r,  ZZZZ_h_mul_r,
for 8 bits and 16 bits with 2 and 4 ZA registers.

Depends on: D135468

Differential Revision: https://reviews.llvm.org/D135563
llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h
llvm/lib/Target/AArch64/AArch64RegisterInfo.td
llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td
llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
llvm/lib/Target/AArch64/SMEInstrFormats.td
llvm/test/MC/AArch64/SME2/add-diagnostics.s
llvm/test/MC/AArch64/SME2/add.s
llvm/test/MC/AArch64/SME2/sqdmulh-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME2/sqdmulh.s [new file with mode: 0644]
llvm/utils/TableGen/AsmMatcherEmitter.cpp