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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [testsuite/] [gcc.c-torture/] [execute/] [20020506-1.c] - Blame information for rev 154

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 149 jeremybenn
/* Copyright (C) 2002  Free Software Foundation.
2
 
3
   Test that (A & C1) op C2 optimizations behave correctly where C1 is
4
   a constant power of 2, op is == or !=, and C2 is C1 or zero.
5
 
6
   Written by Roger Sayle, 5th May 2002.  */
7
 
8
#include <limits.h>
9
 
10
extern void abort (void);
11
 
12
void test1 (signed char c, int set);
13
void test2 (unsigned char c, int set);
14
void test3 (short s, int set);
15
void test4 (unsigned short s, int set);
16
void test5 (int i, int set);
17
void test6 (unsigned int i, int set);
18
void test7 (long long l, int set);
19
void test8 (unsigned long long l, int set);
20
 
21
#ifndef LONG_LONG_MAX
22
#define LONG_LONG_MAX __LONG_LONG_MAX__
23
#endif
24
#ifndef LONG_LONG_MIN
25
#define LONG_LONG_MIN (-LONG_LONG_MAX-1)
26
#endif
27
#ifndef ULONG_LONG_MAX
28
#define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1)
29
#endif
30
 
31
 
32
void
33
test1 (signed char c, int set)
34
{
35
  if ((c & (SCHAR_MAX+1)) == 0)
36
    {
37
      if (set) abort ();
38
    }
39
  else
40
    if (!set) abort ();
41
 
42
  if ((c & (SCHAR_MAX+1)) != 0)
43
    {
44
      if (!set) abort ();
45
    }
46
  else
47
    if (set) abort ();
48
 
49
  if ((c & (SCHAR_MAX+1)) == (SCHAR_MAX+1))
50
    {
51
      if (!set) abort ();
52
    }
53
  else
54
    if (set) abort ();
55
 
56
  if ((c & (SCHAR_MAX+1)) != (SCHAR_MAX+1))
57
    {
58
      if (set) abort ();
59
    }
60
  else
61
    if (!set) abort ();
62
}
63
 
64
void
65
test2 (unsigned char c, int set)
66
{
67
  if ((c & (SCHAR_MAX+1)) == 0)
68
    {
69
      if (set) abort ();
70
    }
71
  else
72
    if (!set) abort ();
73
 
74
  if ((c & (SCHAR_MAX+1)) != 0)
75
    {
76
      if (!set) abort ();
77
    }
78
  else
79
    if (set) abort ();
80
 
81
  if ((c & (SCHAR_MAX+1)) == (SCHAR_MAX+1))
82
    {
83
      if (!set) abort ();
84
    }
85
  else
86
    if (set) abort ();
87
 
88
  if ((c & (SCHAR_MAX+1)) != (SCHAR_MAX+1))
89
    {
90
      if (set) abort ();
91
    }
92
  else
93
    if (!set) abort ();
94
}
95
 
96
void
97
test3 (short s, int set)
98
{
99
  if ((s & (SHRT_MAX+1)) == 0)
100
    {
101
      if (set) abort ();
102
    }
103
  else
104
    if (!set) abort ();
105
 
106
  if ((s & (SHRT_MAX+1)) != 0)
107
    {
108
      if (!set) abort ();
109
    }
110
  else
111
    if (set) abort ();
112
 
113
  if ((s & (SHRT_MAX+1)) == (SHRT_MAX+1))
114
    {
115
      if (!set) abort ();
116
    }
117
  else
118
    if (set) abort ();
119
 
120
  if ((s & (SHRT_MAX+1)) != (SHRT_MAX+1))
121
    {
122
      if (set) abort ();
123
    }
124
  else
125
    if (!set) abort ();
126
}
127
 
128
void
129
test4 (unsigned short s, int set)
130
{
131
  if ((s & (SHRT_MAX+1)) == 0)
132
    {
133
      if (set) abort ();
134
    }
135
  else
136
    if (!set) abort ();
137
 
138
  if ((s & (SHRT_MAX+1)) != 0)
139
    {
140
      if (!set) abort ();
141
    }
142
  else
143
    if (set) abort ();
144
 
145
  if ((s & (SHRT_MAX+1)) == (SHRT_MAX+1))
146
    {
147
      if (!set) abort ();
148
    }
149
  else
150
    if (set) abort ();
151
 
152
  if ((s & (SHRT_MAX+1)) != (SHRT_MAX+1))
153
    {
154
      if (set) abort ();
155
    }
156
  else
157
    if (!set) abort ();
158
}
159
 
160
void
161
test5 (int i, int set)
162
{
163
  if ((i & (INT_MAX+1U)) == 0)
164
    {
165
      if (set) abort ();
166
    }
167
  else
168
    if (!set) abort ();
169
 
170
  if ((i & (INT_MAX+1U)) != 0)
171
    {
172
      if (!set) abort ();
173
    }
174
  else
175
    if (set) abort ();
176
 
177
  if ((i & (INT_MAX+1U)) == (INT_MAX+1U))
178
    {
179
      if (!set) abort ();
180
    }
181
  else
182
    if (set) abort ();
183
 
184
  if ((i & (INT_MAX+1U)) != (INT_MAX+1U))
185
    {
186
      if (set) abort ();
187
    }
188
  else
189
    if (!set) abort ();
190
}
191
 
192
void
193
test6 (unsigned int i, int set)
194
{
195
  if ((i & (INT_MAX+1U)) == 0)
196
    {
197
      if (set) abort ();
198
    }
199
  else
200
    if (!set) abort ();
201
 
202
  if ((i & (INT_MAX+1U)) != 0)
203
    {
204
      if (!set) abort ();
205
    }
206
  else
207
    if (set) abort ();
208
 
209
  if ((i & (INT_MAX+1U)) == (INT_MAX+1U))
210
    {
211
      if (!set) abort ();
212
    }
213
  else
214
    if (set) abort ();
215
 
216
  if ((i & (INT_MAX+1U)) != (INT_MAX+1U))
217
    {
218
      if (set) abort ();
219
    }
220
  else
221
    if (!set) abort ();
222
}
223
 
224
void
225
test7 (long long l, int set)
226
{
227
  if ((l & (LONG_LONG_MAX+1ULL)) == 0)
228
    {
229
      if (set) abort ();
230
    }
231
  else
232
    if (!set) abort ();
233
 
234
  if ((l & (LONG_LONG_MAX+1ULL)) != 0)
235
    {
236
      if (!set) abort ();
237
    }
238
  else
239
    if (set) abort ();
240
 
241
  if ((l & (LONG_LONG_MAX+1ULL)) == (LONG_LONG_MAX+1ULL))
242
    {
243
      if (!set) abort ();
244
    }
245
  else
246
    if (set) abort ();
247
 
248
  if ((l & (LONG_LONG_MAX+1ULL)) != (LONG_LONG_MAX+1ULL))
249
    {
250
      if (set) abort ();
251
    }
252
  else
253
    if (!set) abort ();
254
}
255
 
256
void
257
test8 (unsigned long long l, int set)
258
{
259
  if ((l & (LONG_LONG_MAX+1ULL)) == 0)
260
    {
261
      if (set) abort ();
262
    }
263
  else
264
    if (!set) abort ();
265
 
266
  if ((l & (LONG_LONG_MAX+1ULL)) != 0)
267
    {
268
      if (!set) abort ();
269
    }
270
  else
271
    if (set) abort ();
272
 
273
  if ((l & (LONG_LONG_MAX+1ULL)) == (LONG_LONG_MAX+1ULL))
274
    {
275
      if (!set) abort ();
276
    }
277
  else
278
    if (set) abort ();
279
 
280
  if ((l & (LONG_LONG_MAX+1ULL)) != (LONG_LONG_MAX+1ULL))
281
    {
282
      if (set) abort ();
283
    }
284
  else
285
    if (!set) abort ();
286
}
287
 
288
int
289
main ()
290
{
291
  test1 (0, 0);
292
  test1 (SCHAR_MAX, 0);
293
  test1 (SCHAR_MIN, 1);
294
  test1 (UCHAR_MAX, 1);
295
 
296
  test2 (0, 0);
297
  test2 (SCHAR_MAX, 0);
298
  test2 (SCHAR_MIN, 1);
299
  test2 (UCHAR_MAX, 1);
300
 
301
  test3 (0, 0);
302
  test3 (SHRT_MAX, 0);
303
  test3 (SHRT_MIN, 1);
304
  test3 (USHRT_MAX, 1);
305
 
306
  test4 (0, 0);
307
  test4 (SHRT_MAX, 0);
308
  test4 (SHRT_MIN, 1);
309
  test4 (USHRT_MAX, 1);
310
 
311
  test5 (0, 0);
312
  test5 (INT_MAX, 0);
313
  test5 (INT_MIN, 1);
314
  test5 (UINT_MAX, 1);
315
 
316
  test6 (0, 0);
317
  test6 (INT_MAX, 0);
318
  test6 (INT_MIN, 1);
319
  test6 (UINT_MAX, 1);
320
 
321
  test7 (0, 0);
322
  test7 (LONG_LONG_MAX, 0);
323
  test7 (LONG_LONG_MIN, 1);
324
  test7 (ULONG_LONG_MAX, 1);
325
 
326
  test8 (0, 0);
327
  test8 (LONG_LONG_MAX, 0);
328
  test8 (LONG_LONG_MIN, 1);
329
  test8 (ULONG_LONG_MAX, 1);
330
 
331
  return 0;
332
}
333
 

powered by: WebSVN 2.1.0

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