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 Changes in V4 are: aarch64: Add support for moving fpm system register - updated commit message - fixed length in .md - fixed tests to only exercise register moves for specific sizes aarch64: Add fpm register helper functions. - updated error message in arm_private_fp8.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 | 121 ++++++++++++++++++ 14 files changed, 329 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 -- 2.43.0