On Thu, Oct 8, 2026 at 9:13 PM Trevor Gross <[email protected]> wrote: > > 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.
If you want to make this a rust only feature then you don't need any coordination at all. Name the routines from the rust front-end themselves and implement it in the rust support library. Problem solved. > > - Trevor > > > Thanks, > > Andrea
