https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92875
--- Comment #5 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- Most architectures use FLT_EVAL_METHOD == 0. It's specific to x87 (and older m68k) that FLT_EVAL_METHOD == 2 because x87 doesn't support direct arithmetic on float or double. Lack of direct float and double arithmetic requires FLT_EVAL_METHOD == 2 and FLT_EVAL_METHOD == 2 requires interpreting floating constants to the range and precision of long double, whatever their semantic type.