blob: 7664e033dd0dfdb415db85dadfb6b3463fecc01f [file] [log] [blame]
/* Skip this on aix, since it takes soft-float and long-double-128
incompatible and warns it. */
/* { dg-skip-if "aix long-double-128 soft-float" { powerpc*-*-aix* } } */
/* { dg-options "-mlong-double-128 -msoft-float" } */
/* Verify there is no ICE. */
#include <stddef.h>
#include <stdlib.h>
#include <math.h>
#define PACK __builtin_pack_ibm128
#define UNPACK __builtin_unpack_ibm128
#define LDOUBLE __ibm128
extern LDOUBLE bar (LDOUBLE);
int
main (void)
{
double high = pow (2.0, 60);
double low = 2.0;
LDOUBLE a = ((LDOUBLE) high) + ((LDOUBLE) low);
double x0 = UNPACK (a, 0);
double x1 = UNPACK (a, 1);
LDOUBLE b = PACK (x0, x1);
LDOUBLE c = bar (b);
return c > a;
}