[AArch64]SME2 Single and Multi vector Shift and Multiply instructions
authorCaroline Concatto <caroline.concatto@arm.com>
Tue, 8 Nov 2022 12:02:04 +0000 (12:02 +0000)
committerCaroline Concatto <caroline.concatto@arm.com>
Tue, 8 Nov 2022 12:32:48 +0000 (12:32 +0000)
commitd917276cd8e8311df2c11a9263f4dfb760be769f
tree4a8d00f1e66b67991afc2a189828ef652b6b67a2
parent2525fddae8eda0a2520ae22fd8b36e1fc1c8ecc1
[AArch64]SME2 Single and Multi vector  Shift and Multiply instructions

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

  SQRSHR (four registers): Multi-vector signed saturating rounding shift right narrow by immediate.
         (two registers): Multi-vector signed saturating rounding shift right narrow by immediate.
  SQRSHRN: Multi-vector signed saturating rounding shift right narrow by immediate and interleave.
  SQRSHRU (four registers): Multi-vector signed saturating rounding shift right unsigned narrow by immediate.
          (two registers): Multi-vector signed saturating rounding shift right unsigned narrow by immediate.
  SQRSHRUN: Multi-vector signed saturating rounding shift right unsigned narrow by immediate and interleave.
  UQRSHR (four registers): Multi-vector unsigned saturating rounding shift right narrow by immediate
         (two registers): Multi-vector unsigned saturating rounding shift right narrow by immediate.
  UQRSHRN: Multi-vector unsigned saturating rounding shift right narrow by immediate and interleave.

The reference can be found here:

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

Reviewed By: paulwalker-arm

Differential Revision: https://reviews.llvm.org/D136150
14 files changed:
llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td
llvm/lib/Target/AArch64/SMEInstrFormats.td
llvm/test/MC/AArch64/SME2/sqrshr-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME2/sqrshr.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME2/sqrshrn-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME2/sqrshrn.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME2/sqrshru-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME2/sqrshru.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME2/sqrshrun-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME2/sqrshrun.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME2/uqrshr-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME2/uqrshr.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME2/uqrshrn-diagnostics.s [new file with mode: 0644]
llvm/test/MC/AArch64/SME2/uqrshrn.s [new file with mode: 0644]