/* Test accuracy of long double division (glibc bug 15396). */ /* { dg-do run { target powerpc*-*-linux* powerpc*-*-darwin* powerpc*-*-aix* rs6000-*-* } } */ /* { dg-options "-mlong-double-128" } */ extern void exit (int); extern void abort (void); volatile long double a = 0x1p-1024L; volatile long double b = 0x3p-53L; volatile long double r; volatile long double expected = 0x1.55555555555555555555555555p-973L; int main (void) { r = a / b; /* Allow error up to 2ulp. */ if (__builtin_fabsl (r - expected) > 0x1p-1073L) abort (); exit (0); }