1 /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
2 /* { dg-require-effective-target powerpc_vsx_ok } */
3 /* { dg-options "-mvsx -O2 -mabi=ieeelongdouble -Wno-psabi" } */
4 /* { dg-additional-options "-mdejagnu-cpu=power9" { target { ! has_arch_pwr9 } } } */
6 /* Make sure the old 'q' builtin functions work correctly when the long double
7 default has been changed to be IEEE 128-bit floating point. */
10 do_fabs_f (_Float128 a
)
12 return __builtin_fabsq (a
);
16 do_copysign_f (_Float128 a
, _Float128 b
)
18 return __builtin_copysignq (a
, b
);
24 return __builtin_infq ();
30 return __builtin_nanq ("");
36 return __builtin_nansq ("");
42 return __builtin_huge_valq ();
46 do_fabs_ld (long double a
)
48 return __builtin_fabsq (a
);
52 do_copysign_ld (long double a
, long double b
)
54 return __builtin_copysignq (a
, b
);
60 return __builtin_infq ();
66 return __builtin_nanq ("");
72 return __builtin_nansq ("");
78 return __builtin_huge_valq ();
81 /* { dg-final { scan-assembler {\mxsabsqp\M} } } */
82 /* { dg-final { scan-assembler {\mxscpsgnqp\M} } } */
83 /* { dg-final { scan-assembler-not {\mbl\M} } } */