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

Reply via email to