mbox series

[v3,0/3] aarch64: Add initial support for +fp8 arch extensions

Message ID 20240726163254.1174686-1-claudio.bantaloukas@arm.com
Headers show
Series aarch64: Add initial support for +fp8 arch extensions | expand

Message

Claudio Bantaloukas July 26, 2024, 4:32 p.m. UTC
This series introduces initial flags and functionality for the fp8 feature.

Specifically, the following are added:
- functions that enable constructing valid fpm register values.
- support for the '+fp8' -march modifier.
- support for reading and writing the new system register FPMR (Floating Point Mode
  Register) which configures the new FP8 features

Tested against aarch64-unknown-linux-gnu.

V1 of this patch series had "aarch64: Add march flags for +fp8 arch extensions" as
cover letter title. Since then, changes in V2 are:

aarch64: Add march flags for +fp8 arch extensions
- Removed __ARM_FEATURE_FP8 define: will be added once the relevant features are in.
- Some unnecessary whitespace changes were removed.
- Helper function names now begin with __arm.

aarch64: Add support for moving fpm system register
- Removed a misleading comment.
- Removed unnecessary modifier in .md

aarch64: Add fpm register helper functions.
- Helper functions and fpm_t types are available unconditionally when including arm_acle.h

Changes in V3 are:

aarch64: Add march flags for +fp8 arch extensions
- removed unnecessary check-function-bodies check

aarch64: Add support for moving fpm system register
- added check-function-bodies check

aarch64: Add fpm register helper functions.
- moved fp8 types and helper functions into a new private header file arm_private_fp8.h
- arm_neon.h and arm_sve.h now include the new header
- added tests that check the helpers are available when including arm_neon.h
  arm_sve.h or arm_sme.h 

Is this ok for master? I do not have merge permissions. Can someone merge this for me please?

Thanks,
Claudio Bantaloukas


Claudio Bantaloukas (3):
  aarch64: Add march flags for +fp8 arch extensions
  aarch64: Add support for moving fpm system register
  aarch64: Add fpm register helper functions.

 gcc/config.gcc                                |   2 +-
 .../aarch64/aarch64-option-extensions.def     |   2 +
 gcc/config/aarch64/aarch64.cc                 |   8 ++
 gcc/config/aarch64/aarch64.h                  |  17 ++-
 gcc/config/aarch64/aarch64.md                 |  30 +++--
 gcc/config/aarch64/arm_neon.h                 |   1 +
 gcc/config/aarch64/arm_private_fp8.h          |  80 +++++++++++
 gcc/config/aarch64/arm_sve.h                  |   1 +
 gcc/config/aarch64/constraints.md             |   3 +
 gcc/doc/invoke.texi                           |   2 +
 .../aarch64/acle/fp8-helpers-neon.c           |  53 ++++++++
 .../gcc.target/aarch64/acle/fp8-helpers-sme.c |  12 ++
 .../gcc.target/aarch64/acle/fp8-helpers-sve.c |  12 ++
 gcc/testsuite/gcc.target/aarch64/acle/fp8.c   | 124 ++++++++++++++++++
 14 files changed, 332 insertions(+), 15 deletions(-)
 create mode 100644 gcc/config/aarch64/arm_private_fp8.h
 create mode 100644 gcc/testsuite/gcc.target/aarch64/acle/fp8-helpers-neon.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/acle/fp8-helpers-sme.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/acle/fp8-helpers-sve.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/acle/fp8.c