libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / testsuite / gcc.dg / torture / convert-dfp-2.c
blob3e4ecb57ba647c8408868b369b62d3ce893ed1d3
1 /* { dg-do run } */
2 /* { dg-require-effective-target float16_runtime } */
3 /* { dg-require-effective-target dfprt } */
4 /* { dg-options "-save-temps" } */
5 /* { dg-add-options float16 } */
7 /* Test conversions from DFP to smaller types. */
9 _Decimal32 var32;
10 _Decimal64 var64;
11 _Decimal128 var128;
12 _Float16 var16;
14 void __attribute__ ((__noinline__)) foo32 (_Decimal32 param32)
16 var16 = param32;
19 void __attribute__ ((__noinline__)) foo64 (_Decimal64 param64)
21 var16 = param64;
22 var32 = param64;
25 void __attribute__ ((__noinline__)) foo128 (_Decimal128 param128)
27 var16 = param128;
28 var32 = param128;
29 var64 = param128;
32 int main ()
34 foo32 (var32);
35 foo64 (var64);
36 foo128 (var128);
37 return 0;
40 /* { dg-final { scan-assembler-times {\t__bid_truncsdhf} 2 { target { dfp_bid } } } } */
41 /* { dg-final { scan-assembler-times {\t__bid_truncddhf} 2 { target { dfp_bid } } } } */
42 /* { dg-final { scan-assembler-times {\t__bid_truncddsd2} 2 { target { dfp_bid } } } } */
43 /* { dg-final { scan-assembler-times {\t__bid_trunctdhf} 2 { target { dfp_bid } } } } */
44 /* { dg-final { scan-assembler-times {\t__bid_trunctdsd2} 2 { target { dfp_bid } } } } */
45 /* { dg-final { scan-assembler-times {\t__bid_trunctddd2} 2 { target { dfp_bid } } } } */