blob: 15a746bcf63ea9220c8f280a727fc70403c9a3c2 [file] [log] [blame]
/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
/* { dg-require-effective-target powerpc_p9vector_ok } */
/* { dg-options "-mpower9-vector -O2 -mabi=ieeelongdouble -Wno-psabi" } */
/* Make sure the old 'q' builtin functions work correctly when the long double
default has been changed to be IEEE 128-bit floating point. */
_Float128
do_fabs_f (_Float128 a)
{
return __builtin_fabsq (a);
}
_Float128
do_copysign_f (_Float128 a, _Float128 b)
{
return __builtin_copysignq (a, b);
}
_Float128
do_inf_f (void)
{
return __builtin_infq ();
}
_Float128
do_nan_f (void)
{
return __builtin_nanq ("");
}
_Float128
do_nans_f (void)
{
return __builtin_nansq ("");
}
_Float128
do_huge_val_f (void)
{
return __builtin_huge_valq ();
}
long double
do_fabs_ld (long double a)
{
return __builtin_fabsq (a);
}
long double
do_copysign_ld (long double a, long double b)
{
return __builtin_copysignq (a, b);
}
long double
do_inf_ld (void)
{
return __builtin_infq ();
}
long double
do_nan_ld (void)
{
return __builtin_nanq ("");
}
long double
do_nans_ld (void)
{
return __builtin_nansq ("");
}
long double
do_huge_val_ld (void)
{
return __builtin_huge_valq ();
}
/* { dg-final { scan-assembler {\mxsabsqp\M} } } */
/* { dg-final { scan-assembler {\mxscpsgnqp\M} } } */
/* { dg-final { scan-assembler-not {\mbl\M} } } */