We implemented FAMINMAX ACLE support but failed to define the associated feature macro.
Tested on aarch64-linux-gnu & pushed to trunk. OK for GCC 15 too? Sorry for the late patch. I only noticed this macro was missing while writing up the GCC 15 changes. It would be good to get it in for 15.1 since the proposed changes.html entry specifically refers to it. Richard gcc/ * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define __ARM_FEATURE_FAMINMAX. gcc/testsuite/ * gcc.target/aarch64/pragma_cpp_predefs_4.c: Test __ARM_FEATURE_FAMINMAX. --- gcc/config/aarch64/aarch64-c.cc | 1 + .../gcc.target/aarch64/pragma_cpp_predefs_4.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/gcc/config/aarch64/aarch64-c.cc b/gcc/config/aarch64/aarch64-c.cc index d1e2ab9831d..98337b7f693 100644 --- a/gcc/config/aarch64/aarch64-c.cc +++ b/gcc/config/aarch64/aarch64-c.cc @@ -293,6 +293,7 @@ aarch64_update_cpp_builtins (cpp_reader *pfile) aarch64_def_or_undef (TARGET_SME2, "__ARM_FEATURE_SME2", pfile); aarch64_def_or_undef (AARCH64_HAVE_ISA (SME2p1), "__ARM_FEATURE_SME2p1", pfile); + aarch64_def_or_undef (TARGET_FAMINMAX, "__ARM_FEATURE_FAMINMAX", pfile); /* Not for ACLE, but required to keep "float.h" correct if we switch target between implementations that do or do not support ARMv8.2-A diff --git a/gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_4.c b/gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_4.c index dcac6d5eb65..3799fb46df1 100644 --- a/gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_4.c +++ b/gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_4.c @@ -315,3 +315,18 @@ #ifndef __ARM_FEATURE_FP8DOT2 #error Foo #endif + +#pragma GCC target "arch=armv9.4-a" +#ifdef __ARM_FEATURE_FAMINMAX +#error Foo +#endif + +#pragma GCC target "arch=armv9.5-a" +#ifndef __ARM_FEATURE_FAMINMAX +#error Foo +#endif + +#pragma GCC target "arch=armv8-a+faminmax" +#ifndef __ARM_FEATURE_FAMINMAX +#error Foo +#endif -- 2.43.0