https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106117
--- Comment #7 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- FLT_EVAL_METHOD of 0 gives _Float16 excess precision ("evaluate all operations and constants, whose semantic type comprises a set of values that is a strict subset of the values of float, to the range and precision of float; evaluate all other operations and constants to the range and precision of the semantic type"). See the -fpermitted-flt-eval-methods= option that's used to control whether FLT_EVAL_METHOD may be defined to a value such as 16 that's not part of C11.