https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99708
--- Comment #26 from Jakub Jelinek <jakub at gcc dot gnu.org> --- (In reply to Segher Boessenkool from comment #25) > It is defined to __ieee128 whenever that exists, and not defined otherwise? > Yes, the logic and control flow are byzantine. No, far from it. E.g. on linux -mlong-double-128 -mabi=ieeelongdouble -mno-float128 means that __ieee128 works, long double works too and are the same, but __float128 doesn't. Even worse (and the reason why I've moved it to a different function) is that one can do #pragma GCC target ("no-float128") or #pragma GCC target ("float128") in the middle of the source.