[all-commits] [llvm/llvm-project] 340cf2: [AArch64]SME2 Multi-vector - Index/Single/Multi Ar...

CarolineConcatto via All-commits all-commits at lists.llvm.org
Fri Oct 28 09:40:16 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 340cf2118a4971c7af388a052f389b9d0cd5c635
      https://github.com/llvm/llvm-project/commit/340cf2118a4971c7af388a052f389b9d0cd5c635
  Author: Caroline Concatto <caroline.concatto at arm.com>
  Date:   2022-10-28 (Fri, 28 Oct 2022)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64InstrFormats.td
    M llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td
    M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
    M llvm/lib/Target/AArch64/SMEInstrFormats.td
    A llvm/test/MC/AArch64/SME2/smlall-diagnostics.s
    A llvm/test/MC/AArch64/SME2/smlall.s
    A llvm/test/MC/AArch64/SME2/smlsll-diagnostics.s
    A llvm/test/MC/AArch64/SME2/smlsll.s
    M llvm/test/MC/AArch64/SME2/sqdmulh-diagnostics.s
    A llvm/test/MC/AArch64/SME2/sumlall-diagnostics.s
    A llvm/test/MC/AArch64/SME2/sumlall.s
    A llvm/test/MC/AArch64/SME2/umlall-diagnostics.s
    A llvm/test/MC/AArch64/SME2/umlall.s
    A llvm/test/MC/AArch64/SME2/umlsll-diagnostics.s
    A llvm/test/MC/AArch64/SME2/umlsll.s
    A llvm/test/MC/AArch64/SME2/usmlall-diagnostics.s
    A llvm/test/MC/AArch64/SME2/usmlall.s

  Log Message:
  -----------
  [AArch64]SME2 Multi-vector - Index/Single/Multi Array Vectors LONG INT MLA sources

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

 SMLALL: (multiple and indexed vector): Multi-vector signed integer multiply-add long long by indexed element.
         (multiple and single vector): Multi-vector signed integer multiply-add long long by vector.
         (multiple vectors): Multi-vector signed integer multiply-add long long.

 SMLSLL: (multiple and indexed vector): Multi-vector signed integer multiply-subtract long long by indexed element.
         (multiple and single vector): Multi-vector signed integer multiply-subtract long long by vector.
         (multiple vectors): Multi-vector signed integer multiply-subtract long long.

 SUMLALL: (multiple and indexed vector): Multi-vector signed by unsigned integer multiply-add long long by indexed element.
          (multiple and single vector): Multi-vector signed by unsigned integer multiply-add long long by vector.

 UMLALL: (multiple and indexed vector): Multi-vector unsigned integer multiply-add long long by indexed element.
         (multiple and single vector): Multi-vector unsigned integer multiply-add long long by vector.
         (multiple vectors): Multi-vector unsigned integer multiply-add long long.

 UMLSLL: (multiple and indexed vector): Multi-vector unsigned integer multiply-subtract long long by indexed element.
         (multiple and single vector): Multi-vector unsigned integer multiply-subtract long long by vector.
         (multiple vectors): Multi-vector unsigned integer multiply-subtract long long.

 USMLALL: (multiple and indexed vector): Multi-vector unsigned by signed integer multiply-add long long by indexed element.
          (multiple and single vector): Multi-vector unsigned by signed integer multiply-add long long by vector.
          (multiple vectors): Multi-vector unsigned by signed integer multiply-add long long.

    The reference can be found here:

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

          It also adds a new immediate:
              uimm2s4range for off2
              uimm1s4range for o1
            to represent the vector select offset.
         The new operands have the range between the first and the last vector position.

Depends on : D135785

Differential Revision: https://reviews.llvm.org/D136075




More information about the All-commits mailing list