1 /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
2 /* { dg-require-effective-target powerpc_p9vector_ok } */
3 /* { dg-options "-mpower9-vector -O2 -mabi=ibmlongdouble -Wno-psabi" } */
4 
5 /* Make sure the old 'q' builtin functions work correctly when the long double
6    default uses the IBM double-double format.  */
7 
8 _Float128
do_fabs(_Float128 a)9 do_fabs (_Float128 a)
10 {
11   return __builtin_fabsq (a);
12 }
13 
14 _Float128
do_copysign(_Float128 a,_Float128 b)15 do_copysign (_Float128 a, _Float128 b)
16 {
17   return __builtin_copysignq (a, b);
18 }
19 
20 _Float128
do_inf(void)21 do_inf (void)
22 {
23   return __builtin_infq ();
24 }
25 
26 _Float128
do_nan(void)27 do_nan (void)
28 {
29   return __builtin_nanq ("");
30 }
31 
32 _Float128
do_nans(void)33 do_nans (void)
34 {
35   return __builtin_nansq ("");
36 }
37 
38 _Float128
do_huge_val(void)39 do_huge_val (void)
40 {
41   return __builtin_huge_valq ();
42 }
43 
44 /* { dg-final { scan-assembler     {\mxsabsqp\M}   } } */
45 /* { dg-final { scan-assembler     {\mxscpsgnqp\M} } } */
46 /* { dg-final { scan-assembler-not {\mbl\M} }      } */
47