| /* { 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} } } */ |