[all-commits] [llvm/llvm-project] 832cd7: [AArch64] Armv8.6-a Matrix Mult Assembly + Intrinsics

Luke Geeson via All-commits all-commits at lists.llvm.org
Fri Apr 24 07:54:38 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 832cd749131b1fa59d12486325f19e16eb392a42
      https://github.com/llvm/llvm-project/commit/832cd749131b1fa59d12486325f19e16eb392a42
  Author: Luke Geeson <luke.geeson at arm.com>
  Date:   2020-04-24 (Fri, 24 Apr 2020)

  Changed paths:
    M clang/include/clang/Basic/arm_neon.td
    M clang/lib/Basic/Targets/AArch64.cpp
    M clang/lib/Basic/Targets/AArch64.h
    M clang/lib/CodeGen/CGBuiltin.cpp
    A clang/test/CodeGen/aarch64-matmul.cpp
    A clang/test/CodeGen/aarch64-v8.6a-neon-intrinsics.c
    M llvm/include/llvm/IR/IntrinsicsAArch64.td
    M llvm/lib/Target/AArch64/AArch64.td
    M llvm/lib/Target/AArch64/AArch64InstrFormats.td
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/AArch64Subtarget.h
    A llvm/test/CodeGen/AArch64/aarch64-matmul.ll
    A llvm/test/MC/AArch64/armv8.6a-simd-matmul-error.s
    A llvm/test/MC/AArch64/armv8.6a-simd-matmul.s
    A llvm/test/MC/Disassembler/AArch64/armv8.6a-simd-matmul.txt

  Log Message:
  -----------
  [AArch64] Armv8.6-a Matrix Mult Assembly + Intrinsics

This patch upstreams support for the Armv8.6-a Matrix Multiplication
Extension. A summary of the features can be found here:

https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/arm-architecture-developments-armv8-6-a

This patch includes:

- Assembly support for AArch64 only (no SVE or Neon)
- Intrinsics Support for AArch64 Armv8.6a Matrix Multiplication Instructions (No bfloat16 matrix multiplication)

No IR types or C Types are needed for this extension.

This is part of a patch series, starting with BFloat16 support and
the other components in the armv8.6a extension (in previous patches
linked in phabricator)

Based on work by:
- Luke Geeson
- Oliver Stannard
- Luke Cheeseman

Reviewers: ostannard, t.p.northover, rengolin, kmclaughlin

Reviewed By: kmclaughlin

Subscribers: kmclaughlin, kristof.beyls, hiraditya, danielkiss,
cfe-commits

Tags: #clang

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


  Commit: 7da19051253219d4bee2c50fe13f250201f1f7ec
      https://github.com/llvm/llvm-project/commit/7da19051253219d4bee2c50fe13f250201f1f7ec
  Author: Luke Geeson <luke.geeson at arm.com>
  Date:   2020-04-24 (Fri, 24 Apr 2020)

  Changed paths:
    M clang/lib/Basic/Targets/ARM.cpp
    M clang/lib/Basic/Targets/ARM.h
    M clang/lib/CodeGen/CGBuiltin.cpp
    A clang/test/CodeGen/arm-v8.6a-neon-intrinsics.c
    M llvm/include/llvm/IR/IntrinsicsARM.td
    M llvm/lib/Target/ARM/ARM.td
    M llvm/lib/Target/ARM/ARMInstrNEON.td
    M llvm/lib/Target/ARM/ARMPredicates.td
    M llvm/lib/Target/ARM/ARMSubtarget.h
    A llvm/test/CodeGen/ARM/arm-matmul.ll

  Log Message:
  -----------
  [AArch32] Armv8.6-a Matrix Mult Assembly + Intrinsics

This patch upstreams support for the Armv8.6-a Matrix Multiplication
Extension. A summary of the features can be found here:

https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/arm-architecture-developments-armv8-6-a

This patch includes:

- Assembly support for AArch32
- Intrinsics Support for AArch32 Neon Intrinsics for Matrix
  Multiplication

Note: these extensions are optional in the 8.6a architecture and so have
to be enabled by default

No additional IR types or C Types are needed for this extension.

This is part of a patch series, starting with BFloat16 support and
the other components in the armv8.6a extension (in previous patches
linked in phabricator)

Based on work by:
- Luke Geeson
- Oliver Stannard
- Luke Cheeseman

Reviewers: t.p.northover, miyuki

Reviewed By: miyuki

Subscribers: miyuki, ostannard, kristof.beyls, hiraditya, danielkiss,
cfe-commits

Tags: #clang

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


  Commit: e7146838800136d6cd5c7e79ed025c530f9b7951
      https://github.com/llvm/llvm-project/commit/e7146838800136d6cd5c7e79ed025c530f9b7951
  Author: Luke Geeson <luke.geeson at arm.com>
  Date:   2020-04-24 (Fri, 24 Apr 2020)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64InstrFormats.td
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
    M llvm/lib/Target/AArch64/SVEInstrFormats.td
    A llvm/test/MC/AArch64/SVE/matrix-multiply-fp-diagnostics.s
    A llvm/test/MC/AArch64/SVE/matrix-multiply-fp32.s
    A llvm/test/MC/AArch64/SVE/matrix-multiply-fp64.s
    A llvm/test/MC/AArch64/SVE/matrix-multiply-int8-diagnostics.s
    A llvm/test/MC/AArch64/SVE/matrix-multiply-int8.s

  Log Message:
  -----------
  [AArch64] Armv8.6-A Mat Mul SVE Assembly

This patch upstreams support for the Armv8.6-a Matrix Multiplication
Extension. A summary of the features can be found here:

https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/arm-architecture-developments-armv8-6-a

This patch includes:

- Assembly support for AArch64 Scalable Vector Instructions (in line
  with the Scalable Vector Extension - SVE)

This is part of a patch series, starting with BFloat16 support and
the other components in the armv8.6a extension (in previous patches
linked in phabricator)

Based on work by:
- Luke Geeson
- Oliver Stannard
- Luke Cheeseman

Reviewers: t.p.northover, rengolin, c-rhodes

Reviewed By: c-rhodes

Subscribers: c-rhodes, ostannard, tschuett, kristof.beyls, hiraditya,
danielkiss, llvm-commits

Tags: #llvm

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


  Commit: 659ca502453cb6f544f358bdf2a95df89cf7840b
      https://github.com/llvm/llvm-project/commit/659ca502453cb6f544f358bdf2a95df89cf7840b
  Author: Luke Geeson <luke.geeson at arm.com>
  Date:   2020-04-24 (Fri, 24 Apr 2020)

  Changed paths:
    M llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
    A llvm/test/MC/ARM/armv8.6a-matmul-error.s
    A llvm/test/MC/ARM/armv8.6a-matmul.s
    A llvm/test/MC/Disassembler/ARM/armv8.6a-matmul-arm.txt
    A llvm/test/MC/Disassembler/ARM/armv8.6a-matmul-thumb.txt

  Log Message:
  -----------
  [AArch32] Armv8.6a Matrix Mul Assembly Parsing Support

This patch upstreams support for the Armv8.6-a Matrix Multiplication
Extension. A summary of the features can be found here:

https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/arm-architecture-developments-armv8-6-a

This patch includes:

- Assembly support for AArch32 and Assembly Parsing

D77872 has already added the MC representations of the instructions so that
they can be used in code gen; this patch fills in the details needed to
make assembly parsing work, and adds tests for asm and disasm

This is part of a patch series, starting with BFloat16 support and
the other components in the armv8.6a extension (in previous patches
linked in phabricator)

Based on work by:
- Luke Geeson
- Oliver Stannard
- Luke Cheeseman

Reviewers: t.p.northover, simon_tatham

Reviewed By: simon_tatham

Subscribers: simon_tatham, ostannard, kristof.beyls, hiraditya,
danielkiss, llvm-commits

Tags: #llvm

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


  Commit: 740a1dd050eea93a875ec86780ad6ed4b0310113
      https://github.com/llvm/llvm-project/commit/740a1dd050eea93a875ec86780ad6ed4b0310113
  Author: Luke Geeson <luke.geeson at arm.com>
  Date:   2020-04-24 (Fri, 24 Apr 2020)

  Changed paths:
    M clang/lib/Driver/ToolChains/Arch/AArch64.cpp
    M clang/test/Driver/aarch64-cpus.c
    A clang/test/Driver/arm-matrix-multiply.c
    M llvm/include/llvm/Support/AArch64TargetParser.def
    M llvm/include/llvm/Support/AArch64TargetParser.h
    M llvm/include/llvm/Support/ARMTargetParser.def
    M llvm/include/llvm/Support/ARMTargetParser.h
    M llvm/unittests/Support/TargetParserTest.cpp

  Log Message:
  -----------
  [ARM] Armv8.6-a Matrix Mul cmd line support

This patch upstreams support for the Armv8.6-a Matrix Multiplication
Extension. A summary of the features can be found here:

https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/arm-architecture-developments-armv8-6-a

This patch includes:

- Command line options to enable these features with +i8mm, +f32mm, or f64mm

Note: +f32mm and +f64mm are optional and so are not enabled by default

This is part of a patch series, starting with BFloat16 support and
the other components in the armv8.6a extension (in previous patches
linked in phabricator)

Based on work by:
- Luke Geeson
- Oliver Stannard
- Luke Cheeseman

Reviewers: t.p.northover, DavidSpickett

Reviewed By: DavidSpickett

Subscribers: DavidSpickett, ostannard, kristof.beyls, danielkiss,
cfe-commits

Tags: #clang

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


Compare: https://github.com/llvm/llvm-project/compare/dc9cff15a2a5...740a1dd050ee


More information about the All-commits mailing list