1/* { dg-do run { target { { powerpc*-*-darwin* powerpc*-*-aix* rs6000-*-* } || { powerpc*-*-linux* && lp64 } } } } */
2/* { dg-options "-mlong-double-128" } */
3
4/* Check that long double values are rounded correctly when being converted
5   to 32-bit integers.  All these values are of the form +/- 2 +/- 2^-60.  */
6
7extern void abort(void);
8extern void exit(int);
9
10int main(void)
11{
12  long double l1 = 1.9999999999999999991326382620115964527941L;
13  long double l2 = 2.0000000000000000008673617379884035472059L;
14  long double l3 = -2.0000000000000000008673617379884035472059L;
15  long double l4 = -1.9999999999999999991326382620115964527941L;
16
17  if ((int) l1 != 1)
18    abort ();
19  if ((int) l2 != 2)
20    abort ();
21  if ((int) l3 != -2)
22    abort ();
23  if ((int) l4 != -1)
24    abort ();
25  exit (0);
26}
27