OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [c-c++-common/] [dfp/] [convert-int-fold.c] - Blame information for rev 686

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 686 jeremybenn
/* { dg-options "-O2" } */
2
 
3
/* N1150 5.1 Conversion between decimal floating integer.
4
   C99 6.3.1.4(1a) New.
5
   These should all be folded at compile time.  */
6
 
7
#include "dfp-dbg.h"
8
 
9
#ifdef __cplusplus
10
#define BOOL bool
11
#else
12
#define BOOL _Bool
13
#endif
14
 
15
extern void link_error (void);
16
 
17
int
18
main ()
19
{
20
  _Decimal32 d32;
21
  _Decimal64 d64;
22
  _Decimal128 d128;
23
  unsigned int ui;
24
  unsigned long ul;
25
  unsigned long long ull;
26
  int si;
27
  long sl;
28
  long long sll;
29
  BOOL b;
30
 
31
  /* C99 Section 6.7.2 Type specifiers.  Type _Bool is
32
     mentioned in this section.  Conversions between
33
     BOOL and DFP types.  */
34
 
35
  /* Decimal float to unsigned integer.  */
36
  d32 = 456.789df;
37
  d64 = 23.456789dd;
38
  d128 = 1234.5678dl;
39
 
40
  ui = d32;
41
  if (ui != 456U)
42
    link_error ();
43
  ul = d32;
44
  if (ul != 456UL)
45
    link_error ();
46
  ull = d32;
47
  if (ull != 456ULL)
48
    link_error ();
49
 
50
  ui = d64;
51
  if (ui != 23U)
52
    link_error ();
53
  ul = d64;
54
  if (ul != 23UL)
55
    link_error ();
56
  ull = d64;
57
  if (ull != 23ULL)
58
    link_error ();
59
 
60
  ui = d128;
61
  if (ui != 1234U)
62
    link_error ();
63
  ul = d128;
64
  if (ul != 1234UL)
65
    link_error ();
66
  ull = d128;
67
  if (ull != 1234ULL)
68
    link_error ();
69
 
70
  /* Decimal float to signed integer.  */
71
 
72
  /* Decimal float to BOOL.  */
73
  d32 = 1.23df;
74
  d64 = -3.4dd;
75
  d128 = 0.00003dl;
76
 
77
  b = d32;
78
  if (!b)
79
    link_error ();
80
  b = d64;
81
  if (!b)
82
    link_error ();
83
  b = d128;
84
  if (!b)
85
    link_error ();
86
 
87
  /* Unsigned integer to decimal float.  */
88
  ui = 987U;
89
  ul = 345678UL;
90
  ull = 1234567ULL;
91
 
92
  d32 = ui;
93
  if (d32 != 987.0df)
94
    link_error ();
95
  d32 = ul;
96
  if (d32 != 345678.0df)
97
    link_error ();
98
  d32 = ull;
99
  if (d32 != 1234567.df)
100
    link_error ();
101
 
102
  d64 = ui;
103
  if (d64 != 987.0dd)
104
    link_error ();
105
  d64 = ul;
106
  if (d64 != 345678.0dd)
107
    link_error ();
108
  d64 = ull;
109
  if (d64 != 1234567.dd)
110
    link_error ();
111
 
112
  d128 = ui;
113
  if (d128 != 987.0dl)
114
    link_error ();
115
  d128 = ul;
116
  if (d128 != 345678.0dl)
117
    link_error ();
118
  d128 = ull;
119
  if (d128 != 1234567.dl)
120
    link_error ();
121
 
122
  /* Signed integer to decimal float.  */
123
  si = -987;
124
  sl = -345678;
125
  sll = -1234567;
126
 
127
  d32 = si;
128
  if (d32 != -987.0df)
129
    link_error ();
130
  d32 = sl;
131
  if (d32 != -345678.0df)
132
    link_error ();
133
  d32 = sll;
134
  if (d32 != -1234567.df)
135
    link_error ();
136
 
137
  d64 = si;
138
  if (d64 != -987.0dd)
139
    link_error ();
140
  d64 = sl;
141
  if (d64 != -345678.0dd)
142
    link_error ();
143
  d64 = sll;
144
  if (d64 != -1234567.dd)
145
    link_error ();
146
 
147
  d128 = si;
148
  if (d128 != -987.0dl)
149
    link_error ();
150
  d128 = sl;
151
  if (d128 != -345678.0dl)
152
    link_error ();
153
  d128 = sll;
154
  if (d128 != -1234567.dl)
155
    link_error ();
156
 
157
  /* BOOL to decimal float.  */
158
  d32 = 0.0DF;
159
  d64 = 0.0DD;
160
  d128 = 0.0DL;
161
 
162
  b = d32;
163
  if (b)
164
    link_error ();
165
  b = d64;
166
  if (b)
167
    link_error ();
168
  b = d128;
169
  if (b)
170
    link_error ();
171
 
172
  return 0;
173
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.