1 /* { dg-do compile { target { powerpc*-*-linux* } } } */
2 /* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
3 /* { dg-skip-if "" { powerpc*-*-*spe* } { "*" } { "" } } */
4 /* { dg-require-effective-target powerpc_vsx_ok } */
5 /* { dg-options "-mcpu=power7 -O2" } */
6 /* { dg-final { scan-assembler-times "ddedpdq " 4 } } */
7 /* { dg-final { scan-assembler-times "denbcdq " 2 } } */
8 /* { dg-final { scan-assembler-times "dxexq " 1 } } */
9 /* { dg-final { scan-assembler-times "diexq " 1 } } */
10 /* { dg-final { scan-assembler-times "dscliq " 2 } } */
11 /* { dg-final { scan-assembler-times "dscriq " 2 } } */
12 /* { dg-final { scan-assembler-not "bl __builtin" } } */
13 /* { dg-final { scan-assembler-not "dctqpq" } } */
14 /* { dg-final { scan-assembler-not "drdpq" } } */
15 /* { dg-final { scan-assembler-not "stfd" } } */
16 /* { dg-final { scan-assembler-not "lfd" } } */
17
18 _Decimal128
do_dedpdq_0(_Decimal128 a)19 do_dedpdq_0 (_Decimal128 a)
20 {
21 return __builtin_ddedpdq (0, a);
22 }
23
24 _Decimal128
do_dedpdq_1(_Decimal128 a)25 do_dedpdq_1 (_Decimal128 a)
26 {
27 return __builtin_ddedpdq (1, a);
28 }
29
30 _Decimal128
do_dedpdq_2(_Decimal128 a)31 do_dedpdq_2 (_Decimal128 a)
32 {
33 return __builtin_ddedpdq (2, a);
34 }
35
36 _Decimal128
do_dedpdq_3(_Decimal128 a)37 do_dedpdq_3 (_Decimal128 a)
38 {
39 return __builtin_ddedpdq (3, a);
40 }
41
42 _Decimal128
do_enbcdq_0(_Decimal128 a)43 do_enbcdq_0 (_Decimal128 a)
44 {
45 return __builtin_denbcdq (0, a);
46 }
47
48 _Decimal128
do_enbcdq_1(_Decimal128 a)49 do_enbcdq_1 (_Decimal128 a)
50 {
51 return __builtin_denbcdq (1, a);
52 }
53
54 _Decimal128
do_xexq(_Decimal128 a)55 do_xexq (_Decimal128 a)
56 {
57 return __builtin_dxexq (a);
58 }
59
60 _Decimal128
do_iexq(_Decimal128 a,_Decimal128 b)61 do_iexq (_Decimal128 a, _Decimal128 b)
62 {
63 return __builtin_diexq (a, b);
64 }
65
66 _Decimal128
do_scliq_1(_Decimal128 a)67 do_scliq_1 (_Decimal128 a)
68 {
69 return __builtin_dscliq (a, 1);
70 }
71
72 _Decimal128
do_scliq_10(_Decimal128 a)73 do_scliq_10 (_Decimal128 a)
74 {
75 return __builtin_dscliq (a, 10);
76 }
77
78 _Decimal128
do_scriq_1(_Decimal128 a)79 do_scriq_1 (_Decimal128 a)
80 {
81 return __builtin_dscriq (a, 1);
82 }
83
84 _Decimal128
do_scriq_10(_Decimal128 a)85 do_scriq_10 (_Decimal128 a)
86 {
87 return __builtin_dscriq (a, 10);
88 }
89