Recent clang provides __bf16 on aarch64 but it is broken.
If built with -O0, the conversion is wrong:
$ printf '\x3F\x80' | od --end=big -An -tfB | tr -d ' '
1.875
If built with -O1 or higher, compilation fails:
fatal error: error in backend: Cannot select: 0xb400007a58d29780: f32 =
fp_extend 0xb400007a58d31720
0xb400007a58d31720: bf16,ch = CopyFromReg 0xb400007b78c53720,
Register:bf16 %13
0xb400007a58d29470: bf16 = Register %13
In function: print_bfloat
The latter issue does not cause the existing configure test to fail
because the promotion is optimized out.
* configure.ac: Ensure 16 bit float promotion code does not get
optimized out, and produces an expected result.