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.c] - Blame information for rev 725

Go to most recent revision | Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

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