On Thu Oct 8, 2026 at 10:41 PM CDT, Andrea Pinski wrote: > On Thu, Oct 8, 2026 at 8:36 PM Trevor Gross <[email protected]> wrote: >> >> Hello everyone, >> >> (Coordination, not GCC-specific) >> >> We've been working for a while to make binary16 floats (_Float16) at >> least somewhat usable on most architectures. The last snag is baseline >> 32-bit x86: the ABI specifies that _Float16 is returned in xmm0, but >> that is not available if building without SSE. > > I am not sure why this is a problem at all. When do you need to use > _Float16 without sse? > Or better this is an optional part of C23/C++23 in the first place so > it should not make a difference either way. > If this is for some other language besides C/C++, then why is this not > an optional part of the language like it is for C/C++?
I expected this to be the first reply :) Indeed many C implementations will probably not care to implement _Float16 everywhere, if at all. As I think you mentioned in the followup, I'm mostly working on this for rust support (thought depending on the solution, other LLVM-based languages might get some benefit). We're not planning for it to be optional because we are able to support f16 on every target with the sole exception of i586-*, and special casing would be a user annoyance (though minor). So tradeoff between my headache now figuring out something reasonable, vs. kicking the can to all future users to config it out. Regrettably I think the first is worth it. Why is anybody building for pentium still? I have no idea, but a number of distros use it as their baseline. GCC is probably comfortable saying they don't want to support _Float16 in this case, but that's why I'm approaching this from a coordination perspective rather than as a feature request. - Trevor > Thanks, > Andrea
