On 08/01/2024 17:21, Matthieu Longo wrote:
Hi,
Arm GCC backend does not define __ARM_FEATURE_BF16 when +bf16 is
specified (via -march option, or target pragma) whereas it is supposed
to be tested before including arm_bf16.h (as specified in ACLE document:
https://arm-software.github.io/acle/main/acle.html#arm_bf16h).
gcc/ChangeLog:
* config/arm/arm-c.cc (arm_cpu_builtins): define
__ARM_FEATURE_BF16
* config/arm/arm.h: define TARGET_BF16
Ok for master ?
Matthieu
index
2e181bf7f36bab1209d5358e65d9513541683632..21ca22ac71119eda4ff01709aa95002ca13b1813
100644
--- a/gcc/config/arm/arm-c.cc
+++ b/gcc/config/arm/arm-c.cc
@@ -425,12 +425,14 @@ arm_cpu_builtins (struct cpp_reader* pfile)
arm_arch_cde_coproc);
def_or_undef_macro (pfile, "__ARM_FEATURE_MATMUL_INT8", TARGET_I8MM);
+
+ def_or_undef_macro (pfile, "__ARM_FEATURE_BF16", TARGET_BF16);
+ def_or_undef_macro (pfile, "__ARM_BF16_FORMAT_ALTERNATIVE",
+ TARGET_BF16_FP);
def_or_undef_macro (pfile, "__ARM_FEATURE_BF16_SCALAR_ARITHMETIC",
TARGET_BF16_FP);
def_or_undef_macro (pfile, "__ARM_FEATURE_BF16_VECTOR_ARITHMETIC",
TARGET_BF16_SIMD);
- def_or_undef_macro (pfile, "__ARM_BF16_FORMAT_ALTERNATIVE",
- TARGET_BF16_FP || TARGET_BF16_SIMD);
Why is the definition of __ARM_BF16_FORMAT_ALTERNATIVE changed? And why
is there explanation of that change? It doesn't seem directly related
to $subject.
R.
}
void