f51d696cee60edc8244c871ea75a8a7da61fbfcc
[gcc.git] / gcc / testsuite / gcc.dg / dfp / convert-bfp-7.c
1 /* { dg-options "-w" } */
2
3 /* This test assumes IEEE float and double. */
4
5 #define __STDC_WANT_DEC_FP__
6 #include <float.h>
7
8 #include "convert.h"
9
10 volatile _Decimal32 sd;
11 volatile _Decimal64 dd;
12 volatile _Decimal128 td;
13 volatile float sf;
14 volatile double df;
15
16 /* Check values that are too large for the result type. */
17 CONVERT_TO_PINF (301, sd, sf, 4.e+38df, f)
18 CONVERT_TO_PINF (303, dd, sf, 4.e+38dd, f)
19 CONVERT_TO_PINF (302, sd, sf, 9.9e+384df, f)
20 CONVERT_TO_PINF (304, dd, sf, 9.9e+384dd, f)
21 CONVERT_TO_PINF (305, td, sf, 4.e+38dl, f)
22 CONVERT_TO_PINF (306, td, sf, 1.e+39dl, f)
23 CONVERT_TO_MINF (311, sd, sf, -4.e+38df, f)
24 CONVERT_TO_MINF (312, dd, sf, -4.e+38dd, f)
25 CONVERT_TO_MINF (313, sd, sf, -9.9e+384df, f)
26 CONVERT_TO_MINF (314, dd, sf, -9.9e+384dd, f)
27 CONVERT_TO_MINF (315, td, sf, -4.e+38dl, f)
28 CONVERT_TO_MINF (316, td, sf, -1.e+39dl, f)
29
30 CONVERT_TO_PINF (321, dd, df, 1.8e+308dd,)
31 CONVERT_TO_PINF (322, dd, df, 9.9e+384dd,)
32 CONVERT_TO_PINF (323, td, df, 1.8e+308dl,)
33 CONVERT_TO_PINF (324, td, df, 9.9e+384dl,)
34 CONVERT_TO_PINF (325, dd, df, 1.e309dd,)
35 CONVERT_TO_PINF (326, td, df, 1.e309dl,)
36 CONVERT_TO_MINF (331, dd, df, -1.8e+308dd,)
37 CONVERT_TO_MINF (332, dd, df, -9.9e+384dd,)
38 CONVERT_TO_MINF (333, td, df, -1.8e+308dl,)
39 CONVERT_TO_MINF (334, td, df, -9.9e+384dl,)
40 CONVERT_TO_MINF (335, dd, df, -1.e309dd,)
41 CONVERT_TO_MINF (336, td, df, -1.e309dl,)
42
43 CONVERT_TO_PINF (341, df, sd, 1.0e+97, d32)
44 CONVERT_TO_PINF (342, df, sd, 1.6e+308, d32)
45 CONVERT_TO_MINF (351, df, sd, -1.0e+97, d32)
46 CONVERT_TO_MINF (352, df, sd, -1.6e+308, d32)
47
48 int
49 main ()
50 {
51 convert_301 ();
52 convert_302 ();
53 convert_303 ();
54 convert_304 ();
55 convert_305 ();
56 convert_306 ();
57 convert_311 ();
58 convert_312 ();
59 convert_313 ();
60 convert_314 ();
61 convert_315 ();
62 convert_316 ();
63
64 convert_321 ();
65 convert_322 ();
66 convert_323 ();
67 convert_324 ();
68 convert_325 ();
69 convert_326 ();
70 convert_331 ();
71 convert_332 ();
72 convert_333 ();
73 convert_334 ();
74 convert_335 ();
75 convert_336 ();
76
77 convert_341 ();
78 convert_342 ();
79 convert_351 ();
80 convert_352 ();
81
82 FINISH
83 }