https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101002
--- Comment #5 from Peter Bergner <bergner at gcc dot gnu.org> --- (In reply to Peter Bergner from comment #4) > gcc.target/powerpc/pr85657-3.c > gcc.target/powerpc/signbit-1.c > pr85657-3.c:38:20: error: unknown type name ‘__ibm128’; did you mean > ‘__int128’? > > These die because we don't create the type __ibm128 when using > -mlong-double-64, which seems strange since we do create the __float128 type > used in the test cases. > > Mike, I assume the __ibm128 type should always be created? The creation of the __ibm128 type is guarded by: if (TARGET_LONG_DOUBLE_128 && (!TARGET_IEEEQUAD || TARGET_FLOAT128_TYPE)) Since the __ibm128 type is independent of what long double defaults to, I assume the fix is to just remove the TARGET_LONG_DOUBLE_128 test giving us: if (!TARGET_IEEEQUAD || TARGET_FLOAT128_TYPE) Or are there some (bad) inherent assumptions in the backend that IBM double double support needing a 128-bit long double? The creation of the __ieee128 type is only guarded by: if (TARGET_FLOAT128_TYPE)