diff --git a/flang/lib/Evaluate/intrinsics-library.cpp b/flang/lib/Evaluate/intrinsics-library.cpp
--- a/flang/lib/Evaluate/intrinsics-library.cpp
+++ b/flang/lib/Evaluate/intrinsics-library.cpp
@@ -325,6 +325,8 @@
   static_assert(map.Verify(), "map must be sorted");
 };
 
+#if !defined(__PPC__) || defined(__LONG_DOUBLE_IEEE128__)
+// TODO: use HostTypeExists instead?
 template <>
 struct HostRuntimeLibrary<long double, LibraryVersion::LibmExtensions> {
   using F = FuncPointer<long double, long double>;
@@ -340,6 +342,7 @@
   static constexpr HostRuntimeMap map{table};
   static_assert(map.Verify(), "map must be sorted");
 };
+#endif // !defined(__PPC__) || defined(__LONG_DOUBLE_IEEE128__)
 #endif
 
 /// Define pgmath description