mbox series

[0/3] aarch64: Add fp8, fp8dot2, fp8dot4, and fp8fma acle

Message ID 20241106100358.3622028-1-saurabh.jha@arm.com
Headers show
Series aarch64: Add fp8, fp8dot2, fp8dot4, and fp8fma acle | expand

Message

Saurabh Jha Nov. 6, 2024, 10:03 a.m. UTC
From: Saurabh Jha <saurabh.jha@arm.com>

This patch series has three patches for adding support for fp8, fp8dot2,
and fp8dot4 acle AdvSIMD intrinsics.

The specific things I need thoughts are on are written in each commit
message after the "---" which will be omitted when commiting.

Regression tested on aarch64-unknown-linux-gnu and found no regressions.

This series is built on top of the first commit of another patch series
and should only be commited after the other patch series is commited:
https://gcc.gnu.org/pipermail/gcc-patches/2024-November/667692.html

Thanks,
Saurabh

Saurabh Jha (3):
  aarch64: Add support for fp8 convert and scale
  aarch64: Add support for fp8dot2 and fp8dot4
  aarch64: Add support for fp8fma instructions

 gcc/config/aarch64/aarch64-builtins.cc        | 276 ++++++++++++++++--
 gcc/config/aarch64/aarch64-c.cc               |   8 +
 .../aarch64/aarch64-option-extensions.def     |   6 +
 .../aarch64/aarch64-simd-pragma-builtins.def  | 106 ++++++-
 gcc/config/aarch64/aarch64-simd.md            | 159 +++++++++-
 gcc/config/aarch64/aarch64.h                  |   9 +
 gcc/config/aarch64/iterators.md               | 135 +++++++++
 gcc/doc/invoke.texi                           |   6 +
 gcc/testsuite/gcc.target/aarch64/acle/fp8.c   |  10 -
 .../gcc.target/aarch64/simd/fma_fpm.c         | 221 ++++++++++++++
 .../gcc.target/aarch64/simd/scale_fpm.c       |  60 ++++
 .../gcc.target/aarch64/simd/vcvt_fpm.c        | 197 +++++++++++++
 .../gcc.target/aarch64/simd/vdot2_fpmdot.c    |  77 +++++
 .../gcc.target/aarch64/simd/vdot4_fpmdot.c    |  77 +++++
 14 files changed, 1317 insertions(+), 30 deletions(-)
 create mode 100644 gcc/testsuite/gcc.target/aarch64/simd/fma_fpm.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/simd/scale_fpm.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vcvt_fpm.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vdot2_fpmdot.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/simd/vdot4_fpmdot.c