1 /* Test accuracy of long double division (glibc bug 15396).  */
2 /* { dg-do run { target powerpc*-*-linux* powerpc*-*-darwin* powerpc*-*-aix* rs6000-*-* } } */
3 /* { dg-options "-mlong-double-128" } */
4 
5 extern void exit (int);
6 extern void abort (void);
7 
8 volatile long double a = 0x1p-1024L;
9 volatile long double b = 0x3p-53L;
10 volatile long double r;
11 volatile long double expected = 0x1.55555555555555555555555555p-973L;
12 
13 int
main(void)14 main (void)
15 {
16   r = a / b;
17   /* Allow error up to 2ulp.  */
18   if (__builtin_fabsl (r - expected) > 0x1p-1073L)
19     abort ();
20   exit (0);
21 }
22