Index: lib/Frontend/InitPreprocessor.cpp =================================================================== --- lib/Frontend/InitPreprocessor.cpp +++ lib/Frontend/InitPreprocessor.cpp @@ -1113,10 +1113,18 @@ Builder.defineMacro("__x86_64__"); break; case llvm::Triple::ppc64: + if (AuxTI.getLongDoubleWidth() == 128) { + Builder.defineMacro("__LONG_DOUBLE_128__"); + Builder.defineMacro("__LONGDOUBLE128"); + } Builder.defineMacro("__powerpc64__"); Builder.defineMacro("_CALL_ELF", "1"); break; case llvm::Triple::ppc64le: + if (AuxTI.getLongDoubleWidth() == 128) { + Builder.defineMacro("__LONG_DOUBLE_128__"); + Builder.defineMacro("__LONGDOUBLE128"); + } Builder.defineMacro("__powerpc64__"); Builder.defineMacro("_CALL_ELF", "2"); break;