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
      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  }