diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index f1aa1c326d798842550d78f7b26eb663322b3ab2..870fce269e66e25d95e27ae34e0301d8e3049c74 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,11 @@
+2019-01-09  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/88204
+	* testsuite/26_numerics/complex/operators/more_constexpr.cc: Do not
+	test std::complex<long double> if long double format is IBM128.
+	* testsuite/26_numerics/complex/requirements/more_constexpr.cc:
+	Likewise.
+
 2019-01-08  Jonathan Wakely  <jwakely@redhat.com>
 
 	* testsuite/libstdc++-prettyprinters/compat.cc: Test printer support
diff --git a/libstdc++-v3/testsuite/26_numerics/complex/operators/more_constexpr.cc b/libstdc++-v3/testsuite/26_numerics/complex/operators/more_constexpr.cc
index 725e789d33422fe447f429da6cfe466d1b3f7e30..3def7db25510dece8b3babd1d07ade49ed3bf135 100644
--- a/libstdc++-v3/testsuite/26_numerics/complex/operators/more_constexpr.cc
+++ b/libstdc++-v3/testsuite/26_numerics/complex/operators/more_constexpr.cc
@@ -56,7 +56,9 @@ int main()
 {
   __gnu_test::test_operators<float>();
   __gnu_test::test_operators<double>();
+#ifndef __LONG_DOUBLE_IBM128__ // IBM128 format is not constexpr foldable
   __gnu_test::test_operators<long double>();
+#endif
 
   return 0;
 }
diff --git a/libstdc++-v3/testsuite/26_numerics/complex/requirements/more_constexpr.cc b/libstdc++-v3/testsuite/26_numerics/complex/requirements/more_constexpr.cc
index 4b17d421023f3f6a76d2dca2acc6081b75571362..670378dc0c301702929009df9fbc0c5e1cfac6e2 100644
--- a/libstdc++-v3/testsuite/26_numerics/complex/requirements/more_constexpr.cc
+++ b/libstdc++-v3/testsuite/26_numerics/complex/requirements/more_constexpr.cc
@@ -23,7 +23,6 @@
 
 namespace __gnu_test
 {
-
   // Test constexpr real(val) imag(val).
   template<typename _Tp, const int _Val = 42>
     inline void
@@ -160,9 +159,11 @@ int main()
   __gnu_test::test_operator_members<double, float>();
   __gnu_test::test_operator_members<double, double>();
   __gnu_test::test_operator_members<double, long double>();
+#ifndef __LONG_DOUBLE_IBM128__ // IBM128 format is not constexpr foldable
   __gnu_test::test_operator_members<long double, float>();
   __gnu_test::test_operator_members<long double, double>();
   __gnu_test::test_operator_members<long double, long double>();
+#endif
 
 #if defined(_GLIBCXX_USE_FLOAT128)
   // Test primary template.