https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106117
--- Comment #2 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- "none" was something I mentioned as a possible future argument when originally posting -fexcess-precision <https://gcc.gnu.org/legacy-ml/gcc-patches/2008-11/msg00105.html>. I still think it's the appropriate name for that case. (Doing +-*/ operations on float and then immediately converting back to _Float16 has exactly the same semantics as direct _Float16 arithmetic; float has sufficient precision that no double rounding issues arise; that doesn't apply to fma, however. The effect of excess precision is that e.g. in "a + b + c", the value of a + b with the range and precision of float is what gets added to c; there's no intermediate truncation of a + b to _Float16. But (_Float16)(a + b) + c would have such a truncation, because casts and conversion as if by assignment remove excess range and precision.)