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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gcc-4.5.1/] [gcc/] [testsuite/] [gcc.target/] [powerpc/] [ppc-spe.c] - Blame information for rev 859

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

Line No. Rev Author Line
1 322 jeremybenn
/* { dg-do compile } */
2
/* { dg-options "-mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single -O0" } */
3
/* { dg-skip-if "not an SPE target" { ! powerpc_spe_nocache } { "*" } { "" } } */
4
 
5
/* (Test with -O0 so we don't optimize any of them away).  */
6
 
7
#include <spe.h>
8
 
9
/* Test PowerPC SPE extensions.  */
10
 
11
#define vector __attribute__((vector_size(8)))
12
 
13
vector int a, b, c, *ap;
14
vector float f, g, h;
15
unsigned int *uip;
16
unsigned short *usp;
17
int i, j, *ip;
18
uint64_t ull;
19
int64_t sll;
20
unsigned ui;
21
float fl;
22
uint16_t u16;
23
int16_t s16;
24
 
25
/* These are the only documented/supported accesor functions for the
26
   SPE builtins.  */
27
void
28
test_api ()
29
{
30
  c = __ev_addw (a, b);
31
  c = __ev_addiw (a, 8);
32
  c = __ev_subfw (a, b);
33
  c = __ev_subifw (8, a);
34
  c = __ev_abs (a);
35
  c = __ev_neg (a);
36
  c = __ev_extsb (a);
37
  c = __ev_extsh (a);
38
  c = __ev_and (a, b);
39
  c = __ev_or (a, b);
40
  c = __ev_xor (a, b);
41
  c = __ev_nand (a, b);
42
  c = __ev_nor (a, b);
43
  c = __ev_eqv (a, b);
44
  c = __ev_andc (a, b);
45
  c = __ev_orc (a, b);
46
  c = __ev_rlw (a, b);
47
  c = __ev_rlwi (a, 8);
48
  c = __ev_slw (a, b);
49
  c = __ev_slwi (a, 8);
50
  c = __ev_srws (a, b);
51
  c = __ev_srwu (a, b);
52
  c = __ev_srwis (a, 8);
53
  c = __ev_srwiu (a, 8);
54
  c = __ev_cntlzw (a);
55
  c = __ev_cntlsw (a);
56
  c = __ev_rndw (a);
57
  c = __ev_mergehi (a, b);
58
  c = __ev_mergelo (a, b);
59
  c = __ev_mergelohi (a, b);
60
  c = __ev_mergehilo (a, b);
61
  c = __ev_splati (5);
62
  c = __ev_splatfi (6);
63
  c = __ev_divws (a, b);
64
  c = __ev_divwu (a, b);
65
  c = __ev_mra (a);
66
  i = __brinc (5, 6);
67
 
68
  /* Loads.  */
69
  c = __ev_lddx (ap, i);
70
  c = __ev_ldwx (ap, i);
71
  c = __ev_ldhx (ap, i);
72
 
73
  c = __ev_lwhex (uip, i);
74
  c = __ev_lwhoux (uip, i);
75
  c = __ev_lwhosx (uip, i);
76
  c = __ev_lwwsplatx (uip, i);
77
  c = __ev_lwhsplatx (uip, i);
78
 
79
  c = __ev_lhhesplatx (usp, i);
80
  c = __ev_lhhousplatx (usp, i);
81
  c = __ev_lhhossplatx (usp, i);
82
 
83
  c = __ev_ldd (ap, 5);
84
  c = __ev_ldw (ap, 6);
85
  c = __ev_ldh (ap, 7);
86
  c = __ev_lwhe (uip, 6);
87
  c = __ev_lwhou (uip, 6);
88
  c = __ev_lwhos (uip, 7);
89
  c = __ev_lwwsplat (uip, 7);
90
  c = __ev_lwhsplat (uip, 7);
91
  c = __ev_lhhesplat (usp, 7);
92
  c = __ev_lhhousplat (usp, 7);
93
  c = __ev_lhhossplat (usp, 7);
94
 
95
  /* Stores.  */
96
  __ev_stddx (a, ap, 9);
97
  __ev_stdwx (a, ap, 9);
98
  __ev_stdhx (a, ap, 9);
99
  __ev_stwwex (a, uip, 9);
100
  __ev_stwwox (a, uip, 9);
101
  __ev_stwhex (a, uip, 9);
102
  __ev_stwhox (a, uip, 9);
103
  __ev_stdd (a, ap, 9);
104
  __ev_stdw (a, ap, 9);
105
  __ev_stdh (a, ap, 9);
106
  __ev_stwwe (a, uip, 9);
107
  __ev_stwwo (a, uip, 9);
108
  __ev_stwhe (a, uip, 9);
109
  __ev_stwho (a, uip, 9);
110
 
111
  /* Fixed point complex.  */
112
  c = __ev_mhossf (a, b);
113
  c = __ev_mhosmf (a, b);
114
  c = __ev_mhosmi (a, b);
115
  c = __ev_mhoumi (a, b);
116
  c = __ev_mhessf (a, b);
117
  c = __ev_mhesmf (a, b);
118
  c = __ev_mhesmi (a, b);
119
  c = __ev_mheumi (a, b);
120
  c = __ev_mhossfa (a, b);
121
  c = __ev_mhosmfa (a, b);
122
  c = __ev_mhosmia (a, b);
123
  c = __ev_mhoumia (a, b);
124
  c = __ev_mhessfa (a, b);
125
  c = __ev_mhesmfa (a, b);
126
  c = __ev_mhesmia (a, b);
127
  c = __ev_mheumia (a, b);
128
 
129
  c = __ev_mhoumf (a, b);
130
  c = __ev_mheumf (a, b);
131
  c = __ev_mhoumfa (a, b);
132
  c = __ev_mheumfa (a, b);
133
 
134
  c = __ev_mhossfaaw (a, b);
135
  c = __ev_mhossiaaw (a, b);
136
  c = __ev_mhosmfaaw (a, b);
137
  c = __ev_mhosmiaaw (a, b);
138
  c = __ev_mhousiaaw (a, b);
139
  c = __ev_mhoumiaaw (a, b);
140
  c = __ev_mhessfaaw (a, b);
141
  c = __ev_mhessiaaw (a, b);
142
  c = __ev_mhesmfaaw (a, b);
143
  c = __ev_mhesmiaaw (a, b);
144
  c = __ev_mheusiaaw (a, b);
145
  c = __ev_mheumiaaw (a, b);
146
 
147
  c = __ev_mhousfaaw (a, b);
148
  c = __ev_mhoumfaaw (a, b);
149
  c = __ev_mheusfaaw (a, b);
150
  c = __ev_mheumfaaw (a, b);
151
 
152
  c = __ev_mhossfanw (a, b);
153
  c = __ev_mhossianw (a, b);
154
  c = __ev_mhosmfanw (a, b);
155
  c = __ev_mhosmianw (a, b);
156
  c = __ev_mhousianw (a, b);
157
  c = __ev_mhoumianw (a, b);
158
  c = __ev_mhessfanw (a, b);
159
  c = __ev_mhessianw (a, b);
160
  c = __ev_mhesmfanw (a, b);
161
  c = __ev_mhesmianw (a, b);
162
  c = __ev_mheusianw (a, b);
163
  c = __ev_mheumianw (a, b);
164
 
165
  c = __ev_mhousfanw (a, b);
166
  c = __ev_mhoumfanw (a, b);
167
  c = __ev_mheusfanw (a, b);
168
  c = __ev_mheumfanw (a, b);
169
 
170
  c = __ev_mhogsmfaa (a, b);
171
  c = __ev_mhogsmiaa (a, b);
172
  c = __ev_mhogumiaa (a, b);
173
  c = __ev_mhegsmfaa (a, b);
174
  c = __ev_mhegsmiaa (a, b);
175
  c = __ev_mhegumiaa (a, b);
176
 
177
  c = __ev_mhogumfaa (a, b);
178
  c = __ev_mhegumfaa (a, b);
179
 
180
  c = __ev_mhogsmfan (a, b);
181
  c = __ev_mhogsmian (a, b);
182
  c = __ev_mhogumian (a, b);
183
  c = __ev_mhegsmfan (a, b);
184
  c = __ev_mhegsmian (a, b);
185
  c = __ev_mhegumian (a, b);
186
 
187
  c = __ev_mhogumfan (a, b);
188
  c = __ev_mhegumfan (a, b);
189
 
190
  c = __ev_mwhssf (a, b);
191
  c = __ev_mwhsmf (a, b);
192
  c = __ev_mwhsmi (a, b);
193
  c = __ev_mwhumi (a, b);
194
  c = __ev_mwhssfa (a, b);
195
  c = __ev_mwhsmfa (a, b);
196
  c = __ev_mwhsmia (a, b);
197
  c = __ev_mwhumia (a, b);
198
 
199
  c = __ev_mwhumf (a, b);
200
  c = __ev_mwhumfa (a, b);
201
 
202
  c = __ev_mwlumi (a, b);
203
  c = __ev_mwlumia (a, b);
204
  c = __ev_mwlumiaaw (a, b);
205
 
206
  c = __ev_mwlssiaaw (a, b);
207
  c = __ev_mwlsmiaaw (a, b);
208
  c = __ev_mwlusiaaw (a, b);
209
  c = __ev_mwlusiaaw (a, b);
210
 
211
  c = __ev_mwlssianw (a, b);
212
  c = __ev_mwlsmianw (a, b);
213
  c = __ev_mwlusianw (a, b);
214
  c = __ev_mwlumianw (a, b);
215
 
216
  c = __ev_mwssf (a, b);
217
  c = __ev_mwsmf (a, b);
218
  c = __ev_mwsmi (a, b);
219
  c = __ev_mwumi (a, b);
220
  c = __ev_mwssfa (a, b);
221
  c = __ev_mwsmfa (a, b);
222
  c = __ev_mwsmia (a, b);
223
  c = __ev_mwumia (a, b);
224
  c = __ev_mwumf (a, b);
225
  c = __ev_mwumfa (a, b);
226
  c = __ev_mwssfaa (a, b);
227
  c = __ev_mwsmfaa (a, b);
228
  c = __ev_mwsmiaa (a, b);
229
  c = __ev_mwumiaa (a, b);
230
  c = __ev_mwumfaa (a, b);
231
  c = __ev_mwssfan (a, b);
232
  c = __ev_mwsmfan (a, b);
233
  c = __ev_mwsmian (a, b);
234
  c = __ev_mwumian (a, b);
235
  c = __ev_mwumfan (a, b);
236
  c = __ev_addssiaaw (a);
237
  c = __ev_addsmiaaw (a);
238
  c = __ev_addusiaaw (a);
239
  c = __ev_addumiaaw (a);
240
  c = __ev_addusfaaw (a);
241
  c = __ev_addumfaaw (a);
242
  c = __ev_addsmfaaw (a);
243
  c = __ev_addssfaaw (a);
244
  c = __ev_subfssiaaw (a);
245
  c = __ev_subfsmiaaw (a);
246
  c = __ev_subfusiaaw (a);
247
  c = __ev_subfumiaaw (a);
248
  c = __ev_subfusfaaw (a);
249
  c = __ev_subfumfaaw (a);
250
  c = __ev_subfsmfaaw (a);
251
  c = __ev_subfssfaaw (a);
252
 
253
  /* Floating point SIMD instructions.  */
254
  c = __ev_fsabs (a);
255
  c = __ev_fsnabs (a);
256
  c = __ev_fsneg (a);
257
  c = __ev_fsadd (a, b);
258
  c = __ev_fssub (a, b);
259
  c = __ev_fsmul (a, b);
260
  c = __ev_fsdiv (a, b);
261
  c = __ev_fscfui (a);
262
  c = __ev_fscfsi (a);
263
  c = __ev_fscfuf (a);
264
  c = __ev_fscfsf (a);
265
  c = __ev_fsctui (a);
266
  c = __ev_fsctsi (a);
267
  c = __ev_fsctuf (a);
268
  c = __ev_fsctsf (a);
269
  c = __ev_fsctuiz (a);
270
  c = __ev_fsctsiz (a);
271
 
272
  /* Non supported sythetic instructions made from two instructions.  */
273
 
274
  c = __ev_mwhssfaaw (a, b);
275
  c = __ev_mwhssiaaw (a, b);
276
  c = __ev_mwhsmfaaw (a, b);
277
  c = __ev_mwhsmiaaw (a, b);
278
  c = __ev_mwhusiaaw (a, b);
279
  c = __ev_mwhumiaaw (a, b);
280
  c = __ev_mwhusfaaw (a, b);
281
  c = __ev_mwhumfaaw (a, b);
282
  c = __ev_mwhssfanw (a, b);
283
  c = __ev_mwhssianw (a, b);
284
  c = __ev_mwhsmfanw (a, b);
285
  c = __ev_mwhsmianw (a, b);
286
  c = __ev_mwhusianw (a, b);
287
  c = __ev_mwhumianw (a, b);
288
  c = __ev_mwhusfanw (a, b);
289
  c = __ev_mwhumfanw (a, b);
290
 
291
  c = __ev_mwhgssfaa (a, b);
292
  c = __ev_mwhgsmfaa (a, b);
293
  c = __ev_mwhgsmiaa (a, b);
294
  c = __ev_mwhgumiaa (a, b);
295
  c = __ev_mwhgssfan (a, b);
296
  c = __ev_mwhgsmfan (a, b);
297
  c = __ev_mwhgsmian (a, b);
298
  c = __ev_mwhgumian (a, b);
299
 
300
  /* Creating, insertion, and extraction.  */
301
 
302
  a = __ev_create_u64 ((uint64_t) 55);
303
  a = __ev_create_s64 ((int64_t) 66);
304
  a = __ev_create_fs (3.14F, 2.18F);
305
  a = __ev_create_u32 ((uint32_t) 5, (uint32_t) i);
306
  a = __ev_create_s32 ((int32_t) 5, (int32_t) 6);
307
  a = __ev_create_u16 ((uint16_t) 6, (uint16_t) 6, (uint16_t) 7, (uint16_t) 1);
308
  a = __ev_create_s16 ((int16_t) 6, (int16_t) 6, (int16_t) 7, (int16_t) 9);
309
  a = __ev_create_sfix32_fs (3.0F, 2.0F);
310
  a = __ev_create_ufix32_fs (3.0F, 2.0F);
311
  a = __ev_create_ufix32_u32 (3U, 5U);
312
  a = __ev_create_sfix32_s32 (6, 9);
313
  ull = __ev_convert_u64 (a);
314
  sll = __ev_convert_s64 (a);
315
  i = __ev_get_upper_u32 (a);
316
  ui = __ev_get_lower_u32 (a);
317
  i = __ev_get_upper_s32 (a);
318
  i = __ev_get_lower_s32 (a);
319
  fl = __ev_get_upper_fs (a);
320
  fl = __ev_get_lower_fs (a);
321
  u16 = __ev_get_u16 (a, 5U);
322
  s16 = __ev_get_s16 (a, 5U);
323
  ui = __ev_get_upper_ufix32_u32 (a);
324
  ui = __ev_get_lower_ufix32_u32 (a);
325
  i = __ev_get_upper_sfix32_s32 (a);
326
  i = __ev_get_lower_sfix32_s32 (a);
327
  fl = __ev_get_upper_sfix32_fs (a);
328
  fl = __ev_get_lower_sfix32_fs (a);
329
  fl = __ev_get_upper_ufix32_fs (a);
330
  fl = __ev_get_lower_ufix32_fs (a);
331
  a = __ev_set_upper_u32 (a, 5U);
332
  a = __ev_set_lower_u32 (a, 5U);
333
  a = __ev_set_upper_s32 (a, 5U);
334
  a = __ev_set_lower_s32 (a, 6U);
335
  a = __ev_set_upper_fs (a, 6U);
336
  a = __ev_set_lower_fs (a, fl);
337
  a = __ev_set_upper_ufix32_u32 (a, 5U);
338
  a = __ev_set_lower_ufix32_u32 (a, 5U);
339
  a = __ev_set_upper_sfix32_s32 (a, 5);
340
  a = __ev_set_lower_sfix32_s32 (a, 5);
341
  a =  __ev_set_upper_sfix32_fs (a, fl);
342
  a = __ev_set_lower_sfix32_fs (a, fl);
343
  a = __ev_set_upper_ufix32_fs (a, fl);
344
  a = __ev_set_lower_ufix32_fs (a, fl);
345
  a = __ev_set_acc_u64 ((uint64_t) 640);
346
  a = __ev_set_acc_s64 ((int64_t) 460);
347
  a = __ev_set_acc_vec64 (b);
348
  a = __ev_set_u32 (a, 5, 6);
349
  a = __ev_set_s32 (a, 5, 6);
350
  a = __ev_set_fs (a, fl, 5);
351
  a = __ev_set_u16 (a, 5U, 3);
352
  a = __ev_set_s16 (a, 5, 6);
353
  a = __ev_set_ufix32_u32 (a, 5U, 6U);
354
  a = __ev_set_sfix32_s32 (a, 3, 6);
355
  a = __ev_set_ufix32_fs (a, fl, 5);
356
  a = __ev_set_sfix32_fs (a, fl, 5);
357
  ui = __ev_get_u32 (a, 1);
358
  i = __ev_get_s32 (a, 0);
359
  fl = __ev_get_fs (a, 1);
360
  u16 = __ev_get_u16 (a, 2);
361
  s16 = __ev_get_s16 (a, 2);
362
  ui = __ev_get_ufix32_u32 (a, 1);
363
  i = __ev_get_sfix32_s32 (a, 0);
364
  fl = __ev_get_ufix32_fs (a, 1);
365
  fl = __ev_get_sfix32_fs (a, 0);
366
 
367
  /* Predicates.  */
368
  i = __ev_any_gts (a, b);
369
  i = __ev_all_gts (a, b);
370
  i = __ev_upper_gts (a, b);
371
  i = __ev_lower_gts (a, b);
372
  a = __ev_select_gts (a, b, c, c);
373
 
374
  i = __ev_any_gtu (a, b);
375
  i = __ev_all_gtu (a, b);
376
  i = __ev_upper_gtu (a, b);
377
  i = __ev_lower_gtu (a, b);
378
  a = __ev_select_gtu (a, b, c, c);
379
 
380
  i = __ev_any_lts (a, b);
381
  i = __ev_all_lts (a, b);
382
  i = __ev_upper_lts (a, b);
383
  i = __ev_lower_lts (a, b);
384
  a = __ev_select_lts (a, b, c, c);
385
 
386
  i = __ev_any_ltu (a, b);
387
  i = __ev_all_ltu (a, b);
388
  i = __ev_upper_ltu (a, b);
389
  i = __ev_lower_ltu (a, b);
390
  a = __ev_select_ltu (a, b, c, c);
391
 
392
  i = __ev_any_eq (a, b);
393
  i = __ev_all_eq (a, b);
394
  i = __ev_upper_eq (a, b);
395
  i = __ev_lower_eq (a, b);
396
  a = __ev_select_eq (a, b, c, c);
397
 
398
  i = __ev_any_fs_gt (a, b);
399
  i = __ev_all_fs_gt (a, b);
400
  i = __ev_upper_fs_gt (a, b);
401
  i = __ev_lower_fs_gt (a, b);
402
  a = __ev_select_fs_gt (a, b, c, c);
403
 
404
  i = __ev_any_fs_lt (a, b);
405
  i = __ev_all_fs_lt (a, b);
406
  i = __ev_upper_fs_lt (a, b);
407
  i = __ev_lower_fs_lt (a, b);
408
  a = __ev_select_fs_lt (a, b, c, b);
409
 
410
  i = __ev_any_fs_eq (a, b);
411
  i = __ev_all_fs_eq (a, b);
412
  i = __ev_upper_fs_eq (a, b);
413
  i = __ev_lower_fs_eq (a, b);
414
  a = __ev_select_fs_eq (a, b, c, c);
415
 
416
  i = __ev_any_fs_tst_gt (a, b);
417
  i = __ev_all_fs_tst_gt (a, b);
418
  i = __ev_upper_fs_tst_gt (a, b);
419
  i = __ev_lower_fs_tst_gt (a, b);
420
  a = __ev_select_fs_tst_gt (a, b, c, c);
421
 
422
  i = __ev_any_fs_tst_lt (a, b);
423
  i = __ev_all_fs_tst_lt (a, b);
424
  i = __ev_upper_fs_tst_lt (a, b);
425
  i = __ev_lower_fs_tst_lt (a, b);
426
  a = __ev_select_fs_tst_lt (a, b, c, c);
427
 
428
  i = __ev_any_fs_tst_eq (a, b);
429
  i = __ev_all_fs_tst_eq (a, b);
430
  i = __ev_upper_fs_tst_eq (a, b);
431
  i = __ev_lower_fs_tst_eq (a, b);
432
  a = __ev_select_fs_tst_eq (a, b, c, c);
433
}
434
 
435
int
436
main (void)
437
{
438
  /* Generic binary operations.  */
439
  c = __builtin_spe_evaddw (a, b);
440
  c = __builtin_spe_evand (a, b);
441
  c = __builtin_spe_evandc (a, b);
442
  c = __builtin_spe_evdivws (a, b);
443
  c = __builtin_spe_evdivwu (a, b);
444
  c = __builtin_spe_eveqv (a, b);
445
  h = __builtin_spe_evfsadd (f, g);
446
  h = __builtin_spe_evfsdiv (f, g);
447
  h = __builtin_spe_evfsmul (f, g);
448
  h = __builtin_spe_evfssub (f, g);
449
  c = __builtin_spe_evlddx (ap, j);
450
  c = __builtin_spe_evldhx (ap, j);
451
  c = __builtin_spe_evldwx (ap, j);
452
  c = __builtin_spe_evlhhesplatx (usp, j);
453
  c = __builtin_spe_evlhhossplatx (usp, j);
454
  c = __builtin_spe_evlhhousplatx (usp, j);
455
  c = __builtin_spe_evlwhex (uip, j);
456
  c = __builtin_spe_evlwhosx (uip, j);
457
  c = __builtin_spe_evlwhoux (uip, j);
458
  c = __builtin_spe_evlwhsplatx (uip, j);
459
  c = __builtin_spe_evlwwsplatx (uip, j);
460
  c = __builtin_spe_evmergehi (a, b);
461
  c = __builtin_spe_evmergehilo (a, b);
462
  c = __builtin_spe_evmergelo (a, b);
463
  c = __builtin_spe_evmergelohi (a, b);
464
  c = __builtin_spe_evmhegsmfaa (a, b);
465
  c = __builtin_spe_evmhegsmfan (a, b);
466
  c = __builtin_spe_evmhegsmiaa (a, b);
467
  c = __builtin_spe_evmhegsmian (a, b);
468
  c = __builtin_spe_evmhegumiaa (a, b);
469
  c = __builtin_spe_evmhegumian (a, b);
470
  c = __builtin_spe_evmhesmf (a, b);
471
  c = __builtin_spe_evmhesmfa (a, b);
472
  c = __builtin_spe_evmhesmfaaw (a, b);
473
  c = __builtin_spe_evmhesmfanw (a, b);
474
  c = __builtin_spe_evmhesmi (a, b);
475
  c = __builtin_spe_evmhesmia (a, b);
476
  c = __builtin_spe_evmhesmiaaw (a, b);
477
  c = __builtin_spe_evmhesmianw (a, b);
478
  c = __builtin_spe_evmhessf (a, b);
479
  c = __builtin_spe_evmhessfa (a, b);
480
  c = __builtin_spe_evmhessfaaw (a, b);
481
  c = __builtin_spe_evmhessfanw (a, b);
482
  c = __builtin_spe_evmhessiaaw (a, b);
483
  c = __builtin_spe_evmhessianw (a, b);
484
  c = __builtin_spe_evmheumi (a, b);
485
  c = __builtin_spe_evmheumia (a, b);
486
  c = __builtin_spe_evmheumiaaw (a, b);
487
  c = __builtin_spe_evmheumianw (a, b);
488
  c = __builtin_spe_evmheusiaaw (a, b);
489
  c = __builtin_spe_evmheusianw (a, b);
490
  c = __builtin_spe_evmhogsmfaa (a, b);
491
  c = __builtin_spe_evmhogsmfan (a, b);
492
  c = __builtin_spe_evmhogsmiaa (a, b);
493
  c = __builtin_spe_evmhogsmian (a, b);
494
  c = __builtin_spe_evmhogumiaa (a, b);
495
  c = __builtin_spe_evmhogumian (a, b);
496
  c = __builtin_spe_evmhosmf (a, b);
497
  c = __builtin_spe_evmhosmfa (a, b);
498
  c = __builtin_spe_evmhosmfaaw (a, b);
499
  c = __builtin_spe_evmhosmfanw (a, b);
500
  c = __builtin_spe_evmhosmi (a, b);
501
  c = __builtin_spe_evmhosmia (a, b);
502
  c = __builtin_spe_evmhosmiaaw (a, b);
503
  c = __builtin_spe_evmhosmianw (a, b);
504
  c = __builtin_spe_evmhossf (a, b);
505
  c = __builtin_spe_evmhossfa (a, b);
506
  c = __builtin_spe_evmhossfaaw (a, b);
507
  c = __builtin_spe_evmhossfanw (a, b);
508
  c = __builtin_spe_evmhossiaaw (a, b);
509
  c = __builtin_spe_evmhossianw (a, b);
510
  c = __builtin_spe_evmhoumi (a, b);
511
  c = __builtin_spe_evmhoumia (a, b);
512
  c = __builtin_spe_evmhoumiaaw (a, b);
513
  c = __builtin_spe_evmhoumianw (a, b);
514
  c = __builtin_spe_evmhousiaaw (a, b);
515
  c = __builtin_spe_evmhousianw (a, b);
516
  c = __builtin_spe_evmwhsmf (a, b);
517
  c = __builtin_spe_evmwhsmfa (a, b);
518
  c = __builtin_spe_evmwhsmi (a, b);
519
  c = __builtin_spe_evmwhsmia (a, b);
520
  c = __builtin_spe_evmwhssf (a, b);
521
  c = __builtin_spe_evmwhssfa (a, b);
522
  c = __builtin_spe_evmwhumi (a, b);
523
  c = __builtin_spe_evmwhumia (a, b);
524
  c = __builtin_spe_evmwlsmiaaw (a, b);
525
  c = __builtin_spe_evmwlsmianw (a, b);
526
  c = __builtin_spe_evmwlssiaaw (a, b);
527
  c = __builtin_spe_evmwlssianw (a, b);
528
  c = __builtin_spe_evmwlumi (a, b);
529
  c = __builtin_spe_evmwlumia (a, b);
530
  c = __builtin_spe_evmwlumiaaw (a, b);
531
  c = __builtin_spe_evmwlumianw (a, b);
532
  c = __builtin_spe_evmwlusiaaw (a, b);
533
  c = __builtin_spe_evmwlusianw (a, b);
534
  c = __builtin_spe_evmwsmf (a, b);
535
  c = __builtin_spe_evmwsmfa (a, b);
536
  c = __builtin_spe_evmwsmfaa (a, b);
537
  c = __builtin_spe_evmwsmfan (a, b);
538
  c = __builtin_spe_evmwsmi (a, b);
539
  c = __builtin_spe_evmwsmia (a, b);
540
  c = __builtin_spe_evmwsmiaa (a, b);
541
  c = __builtin_spe_evmwsmian (a, b);
542
  c = __builtin_spe_evmwssf (a, b);
543
  c = __builtin_spe_evmwssfa (a, b);
544
  c = __builtin_spe_evmwssfaa (a, b);
545
  c = __builtin_spe_evmwssfan (a, b);
546
  c = __builtin_spe_evmwumi (a, b);
547
  c = __builtin_spe_evmwumia (a, b);
548
  c = __builtin_spe_evmwumiaa (a, b);
549
  c = __builtin_spe_evmwumian (a, b);
550
  c = __builtin_spe_evnand (a, b);
551
  c = __builtin_spe_evnor (a, b);
552
  c = __builtin_spe_evor (a, b);
553
  c = __builtin_spe_evorc (a, b);
554
  c = __builtin_spe_evrlw (a, b);
555
  c = __builtin_spe_evslw (a, b);
556
  c = __builtin_spe_evsrws (a, b);
557
  c = __builtin_spe_evsrwu (a, b);
558
  c = __builtin_spe_evsubfw (a, b);
559
  c = __builtin_spe_evxor (a, b);
560
 
561
  c = __builtin_spe_evmwhssfaa (a, b);
562
  c = __builtin_spe_evmwhssmaa (a, b);
563
  c = __builtin_spe_evmwhsmfaa (a, b);
564
  c = __builtin_spe_evmwhsmiaa (a, b);
565
  c = __builtin_spe_evmwhusiaa (a, b);
566
  c = __builtin_spe_evmwhumiaa (a, b);
567
  c = __builtin_spe_evmwhssfan (a, b);
568
  c = __builtin_spe_evmwhssian (a, b);
569
  c = __builtin_spe_evmwhsmfan (a, b);
570
  c = __builtin_spe_evmwhsmian (a, b);
571
  c = __builtin_spe_evmwhusian (a, b);
572
  c = __builtin_spe_evmwhumian (a, b);
573
  c = __builtin_spe_evmwhgssfaa (a, b);
574
  c = __builtin_spe_evmwhgsmfaa (a, b);
575
  c = __builtin_spe_evmwhgsmiaa (a, b);
576
  c = __builtin_spe_evmwhgumiaa (a, b);
577
  c = __builtin_spe_evmwhgssfan (a, b);
578
  c = __builtin_spe_evmwhgsmfan (a, b);
579
  c = __builtin_spe_evmwhgsmian (a, b);
580
  c = __builtin_spe_evmwhgumian (a, b);
581
  i = __builtin_spe_brinc (i, j);
582
 
583
  /* Generic unary operations.  */
584
  a = __builtin_spe_evabs (b);
585
  a = __builtin_spe_evaddsmiaaw (b);
586
  a = __builtin_spe_evaddssiaaw (b);
587
  a = __builtin_spe_evaddumiaaw (b);
588
  a = __builtin_spe_evaddusiaaw (b);
589
  a = __builtin_spe_evcntlsw (b);
590
  a = __builtin_spe_evcntlzw (b);
591
  a = __builtin_spe_evextsb (b);
592
  a = __builtin_spe_evextsh (b);
593
  f = __builtin_spe_evfsabs (g);
594
  f = __builtin_spe_evfscfsf (g);
595
  a = __builtin_spe_evfscfsi (g);
596
  f = __builtin_spe_evfscfuf (g);
597
  f = __builtin_spe_evfscfui (a);
598
  f = __builtin_spe_evfsctsf (g);
599
  a = __builtin_spe_evfsctsi (g);
600
  a = __builtin_spe_evfsctsiz (g);
601
  f = __builtin_spe_evfsctuf (g);
602
  a = __builtin_spe_evfsctui (g);
603
  a = __builtin_spe_evfsctuiz (g);
604
  f = __builtin_spe_evfsnabs (g);
605
  f = __builtin_spe_evfsneg (g);
606
  a = __builtin_spe_evmra (b);
607
  a = __builtin_spe_evneg (b);
608
  a = __builtin_spe_evrndw (b);
609
  a = __builtin_spe_evsubfsmiaaw (b);
610
  a = __builtin_spe_evsubfssiaaw (b);
611
  a = __builtin_spe_evsubfumiaaw (b);
612
  a = __builtin_spe_evsubfusiaaw (b);
613
 
614
  /* Unary operations of the form: X = foo (5_bit_signed_immediate).  */
615
  a = __builtin_spe_evsplatfi (5);
616
  a = __builtin_spe_evsplati (5);
617
 
618
  /* Binary operations of the form: X = foo(Y, 5_bit_immediate).  */
619
  a = __builtin_spe_evaddiw (b, 13);
620
  a = __builtin_spe_evldd (ap, 13);
621
  a = __builtin_spe_evldh (ap, 13);
622
  a = __builtin_spe_evldw (ap, 13);
623
  a = __builtin_spe_evlhhesplat (usp, 13);
624
  a = __builtin_spe_evlhhossplat (usp, 13);
625
  a = __builtin_spe_evlhhousplat (usp, 13);
626
  a = __builtin_spe_evlwhe (uip, 13);
627
  a = __builtin_spe_evlwhos (uip, 13);
628
  a = __builtin_spe_evlwhou (uip, 13);
629
  a = __builtin_spe_evlwhsplat (uip, 13);
630
  a = __builtin_spe_evlwwsplat (uip, 13);
631
 
632
  a = __builtin_spe_evrlwi (b, 13);
633
  a = __builtin_spe_evslwi (b, 13);
634
  a = __builtin_spe_evsrwis (b, 13);
635
  a = __builtin_spe_evsrwiu (b, 13);
636
  a = __builtin_spe_evsubifw (b, 13);
637
 
638
  /* Store indexed builtins.  */
639
  __builtin_spe_evstddx (b, ap, j);
640
  __builtin_spe_evstdhx (b, ap, j);
641
  __builtin_spe_evstdwx (b, ap, j);
642
  __builtin_spe_evstwhex (b, uip, j);
643
  __builtin_spe_evstwhox (b, uip, j);
644
  __builtin_spe_evstwwex (b, uip, j);
645
  __builtin_spe_evstwwox (b, uip, j);
646
 
647
  /* Store indexed immediate builtins.  */
648
  __builtin_spe_evstdd (b, ap, 5);
649
  __builtin_spe_evstdh (b, ap, 5);
650
  __builtin_spe_evstdw (b, ap, 5);
651
  __builtin_spe_evstwhe (b, uip, 5);
652
  __builtin_spe_evstwho (b, uip, 5);
653
  __builtin_spe_evstwwe (b, uip, 5);
654
  __builtin_spe_evstwwo (b, uip, 5);
655
 
656
  /* SPEFSCR builtins.  */
657
  i = __builtin_spe_mfspefscr ();
658
  __builtin_spe_mtspefscr (j);
659
 
660
  test_api ();
661
 
662
  return 0;
663
}

powered by: WebSVN 2.1.0

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