https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82626
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The footnote says: The types float_t and double_t are intended to be the implementation’s most efficient types at least as wide as float and double, respectively. For FLT_EVAL_METHOD equal 0, 1, or 2, the type float_t is the narrowest type used by the implementation to evaluate floating expressions. While defining float_t to float and double_t to long double for -msse -mfpmath=sse is a reasoanble choice, you need to have some choice also for other reasons why __FLT_EVAL_METHOD__ is -1 (e.g. mixed sse+387). glibc just provides both float_t and double_t being long double for all the __FLT_EVAL_METHOD__ -1 cases.