On Sat, Aug 19, 2023 at 11:58:31AM +0200, Jakub Jelinek via Gcc wrote: > well. So, if aarch64-darwin wants 64-bit long double, the question is if > it should have __float128 support and q suffix support at all. If it > should, then it needs to initialize float128t_type_node to a distinct type > if NULL like i386, ia64 and rs6000 backends do (i.e. for C++).
Oh, and as the comment say, one needs to decide how to mangle the types. long_double_type_node, even when distinct from double_type_node, will mangle unless overridden as e (double d), and float128_type_node as DF128_. __float128 should mangle per Itanium ABI mangling as g (unless overridden) but backend needs to do that. Also, one needs to decide what _Float16 and __bf16 mangles as, whether the Itanium ABI DF16_ and DF16b or something different (aarch64-linux mangles the latter as u6__bf16 instead). See what clang does as well... Jakub