https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121525

--- Comment #6 from Michael Meissner <meissner at gcc dot gnu.org> ---
My current proposed patches for __bf16 and _Float16 pass/return both 16-bit
floating point values in memory format and do not convert them by default to
the 32/64 scalar format.  This is similar to how the x86_64 passes 16-bit
floating point.  The current ISO C also specifies that _Float16 is not required
to be converted to double.

For reference, Power10 (aka ISA 3.1) also has support for converting a partial
vector of 32-bit floats to __bf16 (i.e. the alternative 16-bit Google brain
floating point format) and vice versa.  My patches include support for both 

The patches currently posted do issue a warning that the calling sequence may
be changing, but we have decided not to do the conversion on call and return. 
My next set of patches eliminates this warning since we will only pass and
return 16-bit floating point in native memory format.  Future patches will
eliminate this warning.

Reply via email to