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.target/] [mips/] [mips-3d-4.c] - Blame information for rev 455

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

Line No. Rev Author Line
1 149 jeremybenn
/* { dg-do run { target mipsisa64*-*-* } } */
2
/* { dg-mips-options "-mips64 -O2 -mips3d -mhard-float -mgp64" } */
3
 
4
/* Test MIPS-3D branch-if-any-four builtin functions */
5
#include <stdlib.h>
6
#include <stdio.h>
7
 
8
typedef float v2sf __attribute__ ((vector_size(8)));
9
 
10
int test0 (v2sf a, v2sf b, v2sf c, v2sf d);
11
int test1 (v2sf a, v2sf b, v2sf c, v2sf d);
12
int test2 (v2sf a, v2sf b, v2sf c, v2sf d);
13
int test3 (v2sf a, v2sf b, v2sf c, v2sf d);
14
int test4 (v2sf a, v2sf b, v2sf c, v2sf d);
15
int test5 (v2sf a, v2sf b, v2sf c, v2sf d);
16
int test6 (v2sf a, v2sf b, v2sf c, v2sf d);
17
int test7 (v2sf a, v2sf b, v2sf c, v2sf d);
18
int test8 (v2sf a, v2sf b, v2sf c, v2sf d);
19
int test9 (v2sf a, v2sf b, v2sf c, v2sf d);
20
int test10 (v2sf a, v2sf b, v2sf c, v2sf d);
21
int test11 (v2sf a, v2sf b, v2sf c, v2sf d);
22
int test12 (v2sf a, v2sf b, v2sf c, v2sf d);
23
int test13 (v2sf a, v2sf b, v2sf c, v2sf d);
24
int test14 (v2sf a, v2sf b, v2sf c, v2sf d);
25
int test15 (v2sf a, v2sf b, v2sf c, v2sf d);
26
int test16 (v2sf a, v2sf b, v2sf c, v2sf d);
27
int test17 (v2sf a, v2sf b, v2sf c, v2sf d);
28
int test18 (v2sf a, v2sf b, v2sf c, v2sf d);
29
int test19 (v2sf a, v2sf b, v2sf c, v2sf d);
30
int test20 (v2sf a, v2sf b, v2sf c, v2sf d);
31
int test21 (v2sf a, v2sf b, v2sf c, v2sf d);
32
int test22 (v2sf a, v2sf b, v2sf c, v2sf d);
33
int test23 (v2sf a, v2sf b, v2sf c, v2sf d);
34
int test24 (v2sf a, v2sf b, v2sf c, v2sf d);
35
int test25 (v2sf a, v2sf b, v2sf c, v2sf d);
36
int test26 (v2sf a, v2sf b, v2sf c, v2sf d);
37
int test27 (v2sf a, v2sf b, v2sf c, v2sf d);
38
int test28 (v2sf a, v2sf b, v2sf c, v2sf d);
39
int test29 (v2sf a, v2sf b, v2sf c, v2sf d);
40
int test30 (v2sf a, v2sf b, v2sf c, v2sf d);
41
int test31 (v2sf a, v2sf b, v2sf c, v2sf d);
42
 
43
float qnan = 1.0f/0.0f - 1.0f/0.0f;
44
 
45
int main ()
46
{
47
  v2sf a, b, c, d;
48
  int i, j;
49
 
50
  /* c.eq.ps */
51
  a = (v2sf) {11, 22};
52
  b = (v2sf) {33, 44};
53
  c = (v2sf) {55, 66};
54
  d = (v2sf) {77, 88};
55
  i = 0;
56
  j = 0;
57
  if (__builtin_mips_any_c_eq_4s(a, b, c, d) != i)
58
    abort ();
59
  if (__builtin_mips_all_c_eq_4s(a, b, c, d) != j)
60
    abort ();
61
 
62
  /* c.eq.ps */
63
  a = (v2sf) {11, 22};
64
  b = (v2sf) {11, 44};
65
  c = (v2sf) {55, 66};
66
  d = (v2sf) {77, 88};
67
  i = 1;
68
  j = 0;
69
  if (__builtin_mips_any_c_eq_4s(a, b, c, d) != i)
70
    abort ();
71
  if (__builtin_mips_all_c_eq_4s(a, b, c, d) != j)
72
    abort ();
73
 
74
  /* c.eq.ps */
75
  a = (v2sf) {11, 22};
76
  b = (v2sf) {33, 22};
77
  c = (v2sf) {55, 66};
78
  d = (v2sf) {77, 88};
79
  i = 1;
80
  j = 0;
81
  if (__builtin_mips_any_c_eq_4s(a, b, c, d) != i)
82
    abort ();
83
  if (__builtin_mips_all_c_eq_4s(a, b, c, d) != j)
84
    abort ();
85
 
86
  /* c.eq.ps */
87
  a = (v2sf) {11, 22};
88
  b = (v2sf) {33, 44};
89
  c = (v2sf) {55, 66};
90
  d = (v2sf) {55, 88};
91
  i = 1;
92
  j = 0;
93
  if (__builtin_mips_any_c_eq_4s(a, b, c, d) != i)
94
    abort ();
95
  if (__builtin_mips_all_c_eq_4s(a, b, c, d) != j)
96
    abort ();
97
 
98
  /* c.eq.ps */
99
  a = (v2sf) {11, 22};
100
  b = (v2sf) {33, 44};
101
  c = (v2sf) {55, 66};
102
  d = (v2sf) {77, 66};
103
  i = 1;
104
  j = 0;
105
  if (__builtin_mips_any_c_eq_4s(a, b, c, d) != i)
106
    abort ();
107
  if (__builtin_mips_all_c_eq_4s(a, b, c, d) != j)
108
    abort ();
109
 
110
  /* c.eq.ps */
111
  a = (v2sf) {11, 22};
112
  b = (v2sf) {11, 22};
113
  c = (v2sf) {55, 66};
114
  d = (v2sf) {55, 66};
115
  i = 1;
116
  j = 1;
117
  if (__builtin_mips_any_c_eq_4s(a, b, c, d) != i)
118
    abort ();
119
  if (__builtin_mips_all_c_eq_4s(a, b, c, d) != j)
120
    abort ();
121
 
122
  /* Test all comparisons */
123
  a = (v2sf) {11, 33};
124
  b = (v2sf) {33, 11};
125
  c = (v2sf) {55, 66};
126
  d = (v2sf) {55, 88};
127
 
128
  i = test0 (a, b, c, d);
129
  if (i != 0)
130
    abort ();
131
  i = test1 (a, b, c, d);
132
  if (i != 0)
133
    abort ();
134
  i = test2 (a, b, c, d);
135
  if (i != 0)
136
    abort ();
137
  i = test3 (a, b, c, d);
138
  if (i != 0)
139
    abort ();
140
  i = test4 (a, b, c, d);
141
  if (i != 1)
142
    abort ();
143
  i = test5 (a, b, c, d);
144
  if (i != 0)
145
    abort ();
146
  i = test6 (a, b, c, d);
147
  if (i != 1)
148
    abort ();
149
  i = test7 (a, b, c, d);
150
  if (i != 0)
151
    abort ();
152
  i = test8 (a, b, c, d);
153
  if (i != 1)
154
    abort ();
155
  i = test9 (a, b, c, d);
156
  if (i != 0)
157
    abort ();
158
  i = test10 (a, b, c, d);
159
  if (i != 1)
160
    abort ();
161
  i = test11 (a, b, c, d);
162
  if (i != 0)
163
    abort ();
164
  i = test12 (a, b, c, d);
165
  if (i != 1)
166
    abort ();
167
  i = test13 (a, b, c, d);
168
  if (i != 0)
169
    abort ();
170
  i = test14 (a, b, c, d);
171
  if (i != 1)
172
    abort ();
173
  i = test15 (a, b, c, d);
174
  if (i != 0)
175
    abort ();
176
  i = test16 (a, b, c, d);
177
  if (i != 0)
178
    abort ();
179
  i = test17 (a, b, c, d);
180
  if (i != 0)
181
    abort ();
182
  i = test18 (a, b, c, d);
183
  if (i != 0)
184
    abort ();
185
  i = test19 (a, b, c, d);
186
  if (i != 0)
187
    abort ();
188
  i = test20 (a, b, c, d);
189
  if (i != 1)
190
    abort ();
191
  i = test21 (a, b, c, d);
192
  if (i != 0)
193
    abort ();
194
  i = test22 (a, b, c, d);
195
  if (i != 1)
196
    abort ();
197
  i = test23 (a, b, c, d);
198
  if (i != 0)
199
    abort ();
200
  i = test24 (a, b, c, d);
201
  if (i != 1)
202
    abort ();
203
  i = test25 (a, b, c, d);
204
  if (i != 0)
205
    abort ();
206
  i = test26 (a, b, c, d);
207
  if (i != 1)
208
    abort ();
209
  i = test27 (a, b, c, d);
210
  if (i != 0)
211
    abort ();
212
  i = test28 (a, b, c, d);
213
  if (i != 1)
214
    abort ();
215
  i = test29 (a, b, c, d);
216
  if (i != 0)
217
    abort ();
218
  i = test30 (a, b, c, d);
219
  if (i != 1)
220
    abort ();
221
  i = test31 (a, b, c, d);
222
  if (i != 0)
223
    abort ();
224
 
225
  /* Reversed arguments */
226
  i = test0 (b, a, d, c);
227
  if (i != 0)
228
    abort ();
229
  i = test1 (b, a, d, c);
230
  if (i != 0)
231
    abort ();
232
  i = test2 (b, a, d, c);
233
  if (i != 0)
234
    abort ();
235
  i = test3 (b, a, d, c);
236
  if (i != 0)
237
    abort ();
238
  i = test4 (b, a, d, c);
239
  if (i != 1)
240
    abort ();
241
  i = test5 (b, a, d, c);
242
  if (i != 0)
243
    abort ();
244
  i = test6 (b, a, d, c);
245
  if (i != 1)
246
    abort ();
247
  i = test7 (b, a, d, c);
248
  if (i != 0)
249
    abort ();
250
  i = test8 (b, a, d, c);
251
  if (i != 1)
252
    abort ();
253
  i = test9 (b, a, d, c);
254
  if (i != 0)
255
    abort ();
256
  i = test10 (b, a, d, c);
257
  if (i != 1)
258
    abort ();
259
  i = test11 (b, a, d, c);
260
  if (i != 0)
261
    abort ();
262
  i = test12 (b, a, d, c);
263
  if (i != 1)
264
    abort ();
265
  i = test13 (b, a, d, c);
266
  if (i != 0)
267
    abort ();
268
  i = test14 (b, a, d, c);
269
  if (i != 1)
270
    abort ();
271
  i = test15 (b, a, d, c);
272
  if (i != 0)
273
    abort ();
274
  i = test16 (b, a, d, c);
275
  if (i != 0)
276
    abort ();
277
  i = test17 (b, a, d, c);
278
  if (i != 0)
279
    abort ();
280
  i = test18 (b, a, d, c);
281
  if (i != 0)
282
    abort ();
283
  i = test19 (b, a, d, c);
284
  if (i != 0)
285
    abort ();
286
  i = test20 (b, a, d, c);
287
  if (i != 1)
288
    abort ();
289
  i = test21 (b, a, d, c);
290
  if (i != 0)
291
    abort ();
292
  i = test22 (b, a, d, c);
293
  if (i != 1)
294
    abort ();
295
  i = test23 (b, a, d, c);
296
  if (i != 0)
297
    abort ();
298
  i = test24 (b, a, d, c);
299
  if (i != 1)
300
    abort ();
301
  i = test25 (b, a, d, c);
302
  if (i != 0)
303
    abort ();
304
  i = test26 (b, a, d, c);
305
  if (i != 1)
306
    abort ();
307
  i = test27 (b, a, d, c);
308
  if (i != 0)
309
    abort ();
310
  i = test28 (b, a, d, c);
311
  if (i != 1)
312
    abort ();
313
  i = test29 (b, a, d, c);
314
  if (i != 0)
315
    abort ();
316
  i = test30 (b, a, d, c);
317
  if (i != 1)
318
    abort ();
319
  i = test31 (b, a, d, c);
320
  if (i != 0)
321
    abort ();
322
 
323
#ifndef __FAST_MATH__
324
  /* Test all comparisons */
325
  a = (v2sf) {qnan, qnan};
326
  b = (v2sf) {33, 11};
327
  c = (v2sf) {qnan, qnan};
328
  d = (v2sf) {55, 88};
329
 
330
  i = test0 (a, b, c, d);
331
  if (i != 0)
332
    abort ();
333
  i = test1 (a, b, c, d);
334
  if (i != 0)
335
    abort ();
336
  i = test2 (a, b, c, d);
337
  if (i != 1)
338
    abort ();
339
  i = test3 (a, b, c, d);
340
  if (i != 1)
341
    abort ();
342
  i = test4 (a, b, c, d);
343
  if (i != 0)
344
    abort ();
345
  i = test5 (a, b, c, d);
346
  if (i != 0)
347
    abort ();
348
  i = test6 (a, b, c, d);
349
  if (i != 1)
350
    abort ();
351
  i = test7 (a, b, c, d);
352
  if (i != 1)
353
    abort ();
354
  i = test8 (a, b, c, d);
355
  if (i != 0)
356
    abort ();
357
  i = test9 (a, b, c, d);
358
  if (i != 0)
359
    abort ();
360
  i = test10 (a, b, c, d);
361
  if (i != 1)
362
    abort ();
363
  i = test11 (a, b, c, d);
364
  if (i != 1)
365
    abort ();
366
  i = test12 (a, b, c, d);
367
  if (i != 0)
368
    abort ();
369
  i = test13 (a, b, c, d);
370
  if (i != 0)
371
    abort ();
372
  i = test14 (a, b, c, d);
373
  if (i != 1)
374
    abort ();
375
  i = test15 (a, b, c, d);
376
  if (i != 1)
377
    abort ();
378
  i = test16 (a, b, c, d);
379
  if (i != 0)
380
    abort ();
381
  i = test17 (a, b, c, d);
382
  if (i != 0)
383
    abort ();
384
  i = test18 (a, b, c, d);
385
  if (i != 1)
386
    abort ();
387
  i = test19 (a, b, c, d);
388
  if (i != 1)
389
    abort ();
390
  i = test20 (a, b, c, d);
391
  if (i != 0)
392
    abort ();
393
  i = test21 (a, b, c, d);
394
  if (i != 0)
395
    abort ();
396
  i = test22 (a, b, c, d);
397
  if (i != 1)
398
    abort ();
399
  i = test23 (a, b, c, d);
400
  if (i != 1)
401
    abort ();
402
  i = test24 (a, b, c, d);
403
  if (i != 0)
404
    abort ();
405
  i = test25 (a, b, c, d);
406
  if (i != 0)
407
    abort ();
408
  i = test26 (a, b, c, d);
409
  if (i != 1)
410
    abort ();
411
  i = test27 (a, b, c, d);
412
  if (i != 1)
413
    abort ();
414
  i = test28 (a, b, c, d);
415
  if (i != 0)
416
    abort ();
417
  i = test29 (a, b, c, d);
418
  if (i != 0)
419
    abort ();
420
  i = test30 (a, b, c, d);
421
  if (i != 1)
422
    abort ();
423
  i = test31 (a, b, c, d);
424
  if (i != 1)
425
    abort ();
426
#endif
427
 
428
  printf ("Test Passes\n");
429
  exit (0);
430
}
431
 
432
int test0 (v2sf a, v2sf b, v2sf c, v2sf d)
433
{
434
  return __builtin_mips_any_c_f_4s (a, b, c, d);
435
}
436
 
437
int test1 (v2sf a, v2sf b, v2sf c, v2sf d)
438
{
439
  return __builtin_mips_all_c_f_4s (a, b, c, d);
440
}
441
 
442
int test2 (v2sf a, v2sf b, v2sf c, v2sf d)
443
{
444
  return __builtin_mips_any_c_un_4s (a, b, c, d);
445
}
446
 
447
int test3 (v2sf a, v2sf b, v2sf c, v2sf d)
448
{
449
  return __builtin_mips_all_c_un_4s (a, b, c, d);
450
}
451
 
452
int test4 (v2sf a, v2sf b, v2sf c, v2sf d)
453
{
454
  return __builtin_mips_any_c_eq_4s (a, b, c, d);
455
}
456
 
457
int test5 (v2sf a, v2sf b, v2sf c, v2sf d)
458
{
459
  return __builtin_mips_all_c_eq_4s (a, b, c, d);
460
}
461
 
462
int test6 (v2sf a, v2sf b, v2sf c, v2sf d)
463
{
464
  return __builtin_mips_any_c_ueq_4s (a, b, c, d);
465
}
466
 
467
int test7 (v2sf a, v2sf b, v2sf c, v2sf d)
468
{
469
  return __builtin_mips_all_c_ueq_4s (a, b, c, d);
470
}
471
 
472
int test8 (v2sf a, v2sf b, v2sf c, v2sf d)
473
{
474
  return __builtin_mips_any_c_olt_4s (a, b, c, d);
475
}
476
 
477
int test9 (v2sf a, v2sf b, v2sf c, v2sf d)
478
{
479
  return __builtin_mips_all_c_olt_4s (a, b, c, d);
480
}
481
 
482
int test10 (v2sf a, v2sf b, v2sf c, v2sf d)
483
{
484
  return __builtin_mips_any_c_ult_4s (a, b, c, d);
485
}
486
 
487
int test11 (v2sf a, v2sf b, v2sf c, v2sf d)
488
{
489
  return __builtin_mips_all_c_ult_4s (a, b, c, d);
490
}
491
 
492
int test12 (v2sf a, v2sf b, v2sf c, v2sf d)
493
{
494
  return __builtin_mips_any_c_ole_4s (a, b, c, d);
495
}
496
 
497
int test13 (v2sf a, v2sf b, v2sf c, v2sf d)
498
{
499
  return __builtin_mips_all_c_ole_4s (a, b, c, d);
500
}
501
 
502
int test14 (v2sf a, v2sf b, v2sf c, v2sf d)
503
{
504
  return __builtin_mips_any_c_ule_4s (a, b, c, d);
505
}
506
 
507
int test15 (v2sf a, v2sf b, v2sf c, v2sf d)
508
{
509
  return __builtin_mips_all_c_ule_4s (a, b, c, d);
510
}
511
 
512
int test16 (v2sf a, v2sf b, v2sf c, v2sf d)
513
{
514
  return __builtin_mips_any_c_sf_4s (a, b, c, d);
515
}
516
 
517
int test17 (v2sf a, v2sf b, v2sf c, v2sf d)
518
{
519
  return __builtin_mips_all_c_sf_4s (a, b, c, d);
520
}
521
 
522
int test18 (v2sf a, v2sf b, v2sf c, v2sf d)
523
{
524
  return __builtin_mips_any_c_ngle_4s (a, b, c, d);
525
}
526
 
527
int test19 (v2sf a, v2sf b, v2sf c, v2sf d)
528
{
529
  return __builtin_mips_all_c_ngle_4s (a, b, c, d);
530
}
531
 
532
int test20 (v2sf a, v2sf b, v2sf c, v2sf d)
533
{
534
  return __builtin_mips_any_c_seq_4s (a, b, c, d);
535
}
536
 
537
int test21 (v2sf a, v2sf b, v2sf c, v2sf d)
538
{
539
  return __builtin_mips_all_c_seq_4s (a, b, c, d);
540
}
541
 
542
int test22 (v2sf a, v2sf b, v2sf c, v2sf d)
543
{
544
  return __builtin_mips_any_c_ngl_4s (a, b, c, d);
545
}
546
 
547
int test23 (v2sf a, v2sf b, v2sf c, v2sf d)
548
{
549
  return __builtin_mips_all_c_ngl_4s (a, b, c, d);
550
}
551
 
552
int test24 (v2sf a, v2sf b, v2sf c, v2sf d)
553
{
554
  return __builtin_mips_any_c_lt_4s (a, b, c, d);
555
}
556
 
557
int test25 (v2sf a, v2sf b, v2sf c, v2sf d)
558
{
559
  return __builtin_mips_all_c_lt_4s (a, b, c, d);
560
}
561
 
562
int test26 (v2sf a, v2sf b, v2sf c, v2sf d)
563
{
564
  return __builtin_mips_any_c_nge_4s (a, b, c, d);
565
}
566
 
567
int test27 (v2sf a, v2sf b, v2sf c, v2sf d)
568
{
569
  return __builtin_mips_all_c_nge_4s (a, b, c, d);
570
}
571
 
572
int test28 (v2sf a, v2sf b, v2sf c, v2sf d)
573
{
574
  return __builtin_mips_any_c_le_4s (a, b, c, d);
575
}
576
 
577
int test29 (v2sf a, v2sf b, v2sf c, v2sf d)
578
{
579
  return __builtin_mips_all_c_le_4s (a, b, c, d);
580
}
581
 
582
int test30 (v2sf a, v2sf b, v2sf c, v2sf d)
583
{
584
  return __builtin_mips_any_c_ngt_4s (a, b, c, d);
585
}
586
 
587
int test31 (v2sf a, v2sf b, v2sf c, v2sf d)
588
{
589
  return __builtin_mips_all_c_ngt_4s (a, b, c, d);
590
}

powered by: WebSVN 2.1.0

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