The macro __ARM_FEATURE_BF16 is referenced a couple of times in the ACLE specification, but there is no specification of exactly when this macro should be defined by the compiler. That leaves implementers to infer this. Given the text, a possible inference (though probably wrong) is that the compiler supplies the header arm_bf16.h.
There is a similar issue for __ARM_FEATURE_BF16_SCALAR_ARITHMETIC, which is referenced, but not defined (unlike the vector variant).
The macro __ARM_FEATURE_BF16 is referenced a couple of times in the ACLE specification, but there is no specification of exactly when this macro should be defined by the compiler. That leaves implementers to infer this. Given the text, a possible inference (though probably wrong) is that the compiler supplies the header arm_bf16.h.
There is a similar issue for __ARM_FEATURE_BF16_SCALAR_ARITHMETIC, which is referenced, but not defined (unlike the vector variant).