1 /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
2 /* { dg-require-effective-target powerpc_p9vector_ok } */
3 /* { dg-options "-mpower9-vector -O2 -mabi=ieeelongdouble -Wno-psabi" } */
4
5 /* Make sure the old 'q' builtin functions work correctly when the long double
6 default has been changed to be IEEE 128-bit floating point. */
7
8 _Float128
9 do_fabs_f (_Float128 a)
10 {
11 return __builtin_fabsq (a);
12 }
13
14 _Float128
15 do_copysign_f (_Float128 a, _Float128 b)
16 {
17 return __builtin_copysignq (a, b);
18 }
19
20 _Float128
21 do_inf_f (void)
22 {
23 return __builtin_infq ();
24 }
25
26 _Float128
27 do_nan_f (void)
28 {
29 return __builtin_nanq ("");
30 }
31
32 _Float128
33 do_nans_f (void)
34 {
35 return __builtin_nansq ("");
36 }
37
38 _Float128
39 do_huge_val_f (void)
40 {
41 return __builtin_huge_valq ();
42 }
43
44 long double
45 do_fabs_ld (long double a)
46 {
47 return __builtin_fabsq (a);
48 }
49
50 long double
51 do_copysign_ld (long double a, long double b)
52 {
53 return __builtin_copysignq (a, b);
54 }
55
56 long double
57 do_inf_ld (void)
58 {
59 return __builtin_infq ();
60 }
61
62 long double
63 do_nan_ld (void)
64 {
65 return __builtin_nanq ("");
66 }
67
68 long double
69 do_nans_ld (void)
70 {
71 return __builtin_nansq ("");
72 }
73
74 long double
75 do_huge_val_ld (void)
76 {
77 return __builtin_huge_valq ();
78 }
79
80 /* { dg-final { scan-assembler {\mxsabsqp\M} } } */
81 /* { dg-final { scan-assembler {\mxscpsgnqp\M} } } */
82 /* { dg-final { scan-assembler-not {\mbl\M} } } */