https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69295

--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
On i686-linux, it is clearly a matter of excess precision that sometimes
substantially changes the result.  With -mfpmath=sse -msse2 or -ffloat-store it
passes.
The abs errors for various tests that fail are (first NNN in test(dataNNN,
tolerNNN), then max_abs_frac, then tolerNNN), the patch I've used was:
@@ -11554,7 +11554,7 @@ const double toler245 = 2.50000000000000

 template<typename Tp, unsigned int Num>
   void
-  test(const testcase_hyperg<Tp> (&data)[Num], Tp toler)
+  test(const testcase_hyperg<Tp> (&data)[Num], Tp toler, int nnn)
   {
     bool test __attribute__((unused)) = true;
     const Tp eps = std::numeric_limits<Tp>::epsilon();
@@ -11576,256 +11576,258 @@ template<typename Tp, unsigned int Num>
              max_abs_frac = std::abs(frac);
          }
       }
-    VERIFY(max_abs_frac < toler);
+    if (max_abs_frac >= toler)
+      __builtin_printf ("%d %a %a\n", nnn, max_abs_frac, toler);
+//    VERIFY(max_abs_frac < toler);
   }

plus adjusting all the test(dataNNN, tolerNNN); calls to test(dataNNN,
tolerNNN, NNN);

167 0x1.8ab4f2f1f35bcp-40 0x1.19799812dea15p-42
171 0x1.890df8f35d42ep-38 0x1.19799812dea15p-42
172 0x1.1acd4227e561bp-34 0x1.19799812dea15p-42
173 0x1.6f73999c8e5adp-40 0x1.19799812dea15p-42
197 0x1.8ab4f2f1f35bcp-40 0x1.19799812dea15p-42
201 0x1.d4e2f28348906p-39 0x1.19799812dea15p-42
202 0x1.afc3fee12aee8p-36 0x1.19799812dea15p-42
203 0x1.9f229da628598p-39 0x1.19799812dea15p-42
204 0x1.949b76928c351p-40 0x1.19799812dea15p-42
206 0x1.24585756ecfbap-33 0x1.19799812dea15p-42
207 0x1.662797d1185e5p-31 0x1.19799812dea15p-42
208 0x1.27de1e24e6ac3p-27 0x1.19799812dea15p-42
209 0x1.a0ac9ec2d7f45p-34 0x1.19799812dea15p-42
231 0x1.890df8f35d42ep-38 0x1.19799812dea15p-42
232 0x1.1acd4227e561bp-34 0x1.19799812dea15p-42
233 0x1.6f73999c8e5adp-40 0x1.19799812dea15p-42
236 0x1.24585756ecfbap-33 0x1.19799812dea15p-42
237 0x1.662797d1185e5p-31 0x1.19799812dea15p-42
238 0x1.27de1e24e6ac3p-27 0x1.19799812dea15p-42
239 0x1.a0ac9ec2d7f45p-34 0x1.19799812dea15p-42
241 0x1.67ee0388ff7a7p-27 0x1.19799812dea15p-42
242 0x1.7aa254470eb52p-26 0x1.19799812dea15p-42
243 0x1.fb4f73983f28cp-19 0x1.19799812dea15p-42
244 0x1.3b46fd92feda9p-22 0x1.19799812dea15p-42
245 0x1.58d8d7350d864p-21 0x1.19799812dea15p-42

What are the problematic tests on powerpc* (that one is not excess precision
target though)?  Would it be acceptable to just increase the tolerNNN values
mentioned above (plus whatever powerpc needs)?

Reply via email to