]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/testsuite/c-c++-common/dfp/convert-bfp-11.c
Get rid of dg-skip-if etc. default args
[thirdparty/gcc.git] / gcc / testsuite / c-c++-common / dfp / convert-bfp-11.c
CommitLineData
4f4b0ab8 1/* { dg-skip-if "" { ! "powerpc*-*-linux*" } } */
f3d110ef
JJ
2
3/* Test decimal float conversions to and from IBM 128-bit long double.
4 Checks are skipped at runtime if long double is not 128 bits.
5 Don't force 128-bit long doubles because runtime support depends
6 on glibc. */
7
8#include "convert.h"
9
10volatile _Decimal32 sd;
11volatile _Decimal64 dd;
12volatile _Decimal128 td;
13volatile float sf;
14volatile double df;
15volatile long double tf;
16
17/* A value slightly less than DEC32_MAX can be converted in both directions. */
18CONVERT_VALID (101, sd, tf, 9.999998e96df, 9.999998e96L, 1.e+81L)
19CONVERT_VALID (102, tf, sd, 9.999998e96L, 9.999998e96df, 0.df)
20
21/* A value slightly less than DBL_MAX can be converted in both directions. */
22CONVERT_VALID (201, tf, dd, 1.79768e+308l, 1.79768e+308dd, 0.dd)
23CONVERT_VALID (202, dd, tf, 1.79768e+308dd, 1.79768e+308l, 2.e292l)
24CONVERT_VALID (203, tf, td, 1.79768e+308l, 1.79768e+308dl, 1.e292dl)
25CONVERT_VALID (204, td, tf, 1.79768e+308dl, 1.79768e+308l, 2.e292l)
26
27/* Check values that are too large for the result type. */
28CONVERT_TO_PINF (301, dd, tf, 1.8e+308dd, l)
29CONVERT_TO_PINF (302, dd, tf, 9.9e+384dd, l)
30CONVERT_TO_PINF (303, td, tf, 1.8e+308dl, l)
31CONVERT_TO_PINF (304, td, tf, 9.9e+384dl, l)
32
33CONVERT_TO_PINF (311, tf, sd, 1.0e+97L, d32)
34CONVERT_TO_PINF (312, tf, sd, 1.6e+308L, d32)
35
36int
37main ()
38{
39 if (sizeof (long double) != 16)
40 return 0;
41
42 convert_101 ();
43 convert_102 ();
44
45 convert_201 ();
46 convert_202 ();
47 convert_203 ();
48 convert_204 ();
49
50 convert_301 ();
51 convert_302 ();
52 convert_303 ();
53 convert_304 ();
54 convert_311 ();
55 convert_312 ();
56
1d5ba98c 57 FINISH
f3d110ef 58}