https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106652
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Created attachment 53507 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53507&action=edit gcc13-pr106652-bf16.patch And if the answer to 1) is that it is ok for std::bfloat16_t to be __bf16 with u6__bf16 mangling, incremental patch for that. This one doesn't work though, because apparently on none of the 3 targets that do support __bf16 we actually support conversions between __bf16 and other floating point types (most importantly float), nor arithmetic operations (that is quite fatal). So, the important question is if we are ok to add arithmetic operation support to __bf16 and ditto conversions (where arithmetic operations presumably would be implemented by cast to float, arithmetic on float and conversion back?), or if that should be done only on some separate type, whether it is _BFloat16 or __bfloat16_t or whatever else.