1
2 /* HOW TO COMPILE:
3
4 gcc -O -g -Wall -maltivec -mabi=altivec -DALTIVEC -DGCC_COMPILER
5 testVMX.c -o testVMX
6
7 */
8
9 /*
10 * testVMX - A test program to check the correctness of VMX instructions
11 *
12 * Copyright (C) 2004 CEPBA-IBM Research Institute
13 *
14 * Authors: Jose Maria Cela, Raul de la Cruz,
15 * Rogeli Grima, Xavier Saez <blade_support@ciri.upc.es>
16 *
17 * Web page: http://www.ciri.upc.es/cela_pblade/
18 *
19 * This file is part of testVMX.
20 *
21 * testVMX is free software; you can redistribute it and/or modify
22 * it under the terms of the GNU General Public License as published by
23 * the Free Software Foundation; either version 2 of the License, or
24 * (at your option) any later version.
25 *
26 * testVMX is distributed in the hope that it will be useful,
27 * but WITHOUT ANY WARRANTY; without even the implied warranty of
28 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29 * GNU General Public License for more details.
30 *
31 * You should have received a copy of the GNU General Public License
32 * along with testVMX; if not, write to the Free Software
33 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
34 */
35
36 /*
37 * Version 0.2.2 2004/09/02
38 * Removed some not useful flags for compilation and changed the GPL license
39 * header updating the contact email and adding the web page URL
40 *
41 * Version 0.2.1 2004/07/07
42 * Some flags added in Makefile for XLC compilation (-qalias, -qinline)
43 *
44 * Version 0.2 2004/07/02
45 * Makefile and testVMX.c patched to compile with SLES 9 (Linux - GCC 3.3.3),
46 * IBM XLC Enterprise Edition and MacOS X 10.3 (Darwin - GCC 3.3)
47 *
48 * Version 0.1 2004/03/05
49 * First public version release
50 */
51
52
53 #include <stdio.h>
54 #include <stdlib.h>
55 #include <math.h>
56 #include <limits.h>
57 #include <string.h>
58
59 /* Calloc for align data to 16 bytes boundaries */
60
61 /* ----------- BEGIN #include "memoryVector.h" ----------- */
62
63 /*
64 * testVMX - A test program to check the correctness of VMX instructions
65 *
66 * Copyright (C) 2004 CEPBA-IBM Research Institute
67 *
68 * Authors: Jose Maria Cela, Raul de la Cruz,
69 * Rogeli Grima, Xavier Saez <blade_support@ciri.upc.es>
70 *
71 * Web page: http://www.ciri.upc.es/cela_pblade/
72 *
73 * This file is part of testVMX.
74 *
75 * testVMX is free software; you can redistribute it and/or modify
76 * it under the terms of the GNU General Public License as published by
77 * the Free Software Foundation; either version 2 of the License, or
78 * (at your option) any later version.
79 *
80 * testVMX is distributed in the hope that it will be useful,
81 * but WITHOUT ANY WARRANTY; without even the implied warranty of
82 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
83 * GNU General Public License for more details.
84 *
85 * You should have received a copy of the GNU General Public License
86 * along with testVMX; if not, write to the Free Software
87 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
88 */
89
90 #ifndef MEMORY_VECTOR_H
91 # define MEMORY_VECTOR_H
92
93 # include <stdlib.h>
94
95 void *calloc_vec( size_t nmemb, size_t size );
96 void free_vec( void *ptr );
97
98 #endif
99
100 /* ----------- END #include "memoryVector.h" ----------- */
101
102 /* ----------- BEGIN #include "memoryVector.c" ----------- */
103
104 /*
105 * testVMX - A test program to check the correctness of VMX instructions
106 *
107 * Copyright (C) 2004 CEPBA-IBM Research Institute
108 *
109 * Authors: Jose Maria Cela, Raul de la Cruz,
110 * Rogeli Grima, Xavier Saez <blade_support@ciri.upc.es>
111 *
112 * Web page: http://www.ciri.upc.es/cela_pblade/
113 *
114 * This file is part of testVMX.
115 *
116 * testVMX is free software; you can redistribute it and/or modify
117 * it under the terms of the GNU General Public License as published by
118 * the Free Software Foundation; either version 2 of the License, or
119 * (at your option) any later version.
120 *
121 * testVMX is distributed in the hope that it will be useful,
122 * but WITHOUT ANY WARRANTY; without even the implied warranty of
123 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
124 * GNU General Public License for more details.
125 *
126 * You should have received a copy of the GNU General Public License
127 * along with testVMX; if not, write to the Free Software
128 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
129 */
130
131 #include <stdio.h>
132 #include <string.h>
133 /* #include "memoryVector.h"*/
134
135 typedef struct
136 {
137 char *realAdd;
138 char *returnAdd;
139 } Tmemtab;
140
141
142 static Tmemtab *memTab = NULL;
143 static size_t nadd = 0;
144 static size_t MAX_N_ADD = 100;
145
146
calloc_vec(size_t nmemb,size_t size)147 void *calloc_vec( size_t nmemb, size_t size )
148 {
149 /* ---------------------------------------------------------- Local Variables */
150 char *realadd;
151 char *retadd;
152 size_t nbytes, cc, rr;
153
154 /* -------------------------------------------------------------------- BEGIN */
155 if (memTab == (Tmemtab*)NULL)
156 {
157 memTab = (Tmemtab *) malloc( MAX_N_ADD*sizeof(Tmemtab) );
158 if (memTab == (Tmemtab*)NULL)
159 {
160 fprintf(stderr, "\n------------ FATAL ERRROR ------------------\n");
161 fprintf(stderr, "Memory table out of memory\n");
162 return NULL;
163 }
164 }
165
166 /* 16 extra bytes are allocated for adjust alignement */
167 nbytes = (size*nmemb)+16;
168
169 /* Alloc a block of 'nbytes' */
170 realadd = (char *) malloc( nbytes );
171 if (realadd == (char *)NULL)
172 {
173 fprintf(stderr, "\n------------ FATAL ERRROR ------------------\n");
174 fprintf(stderr, "Out of memory\n");
175 return NULL;
176 }
177
178 memset( realadd, 0, nbytes );
179
180 cc = ((size_t)realadd)/16;
181 rr = ((size_t)realadd)%16;
182 if (rr == 0)
183 retadd = realadd;
184 else
185 retadd = (char *)((cc+1)*16);
186
187 if (nadd == MAX_N_ADD)
188 {
189 MAX_N_ADD += 100;
190 memTab = (Tmemtab*) realloc( memTab, MAX_N_ADD*sizeof(Tmemtab) );
191 if (memTab == (Tmemtab*)NULL)
192 {
193 free( realadd );
194 fprintf(stderr, "\n------------ FATAL ERRROR ------------------\n");
195 fprintf(stderr, "Memory table out of memory\n");
196 return NULL;
197 }
198 }
199
200 memTab[nadd].realAdd = realadd;
201 memTab[nadd].returnAdd = retadd;;
202 nadd++;
203
204 return (void*)retadd;
205 /* ---------------------------------------------------------------------- END */
206 }
207
208
free_vec(void * ptr)209 void free_vec( void *ptr )
210 {
211 /* ---------------------------------------------------------- Local Variables */
212 int ii, pos;
213
214 /* -------------------------------------------------------------------- BEGIN */
215 pos = -1;
216 for (ii= 0; ii< nadd; ii++)
217 if (memTab[ii].returnAdd == ptr)
218 {
219 pos = ii;
220 break;
221 }
222
223 if (pos == -1)
224 {
225 fprintf(stderr, "\n------------ WARNING ------------------------\n");
226 fprintf(stderr, "Pointer not found in memory table\n\n");
227 }
228 else
229 {
230 free( memTab[ii].realAdd );
231
232 for (ii= pos+1; ii< nadd; ii++)
233 memTab[ii-1] = memTab[ii];
234 nadd--;
235
236 if (nadd == 0)
237 {
238 free( memTab );
239 memTab = NULL;
240 MAX_N_ADD = 100;
241 }
242 }
243 /* ---------------------------------------------------------------------- END */
244 }
245
246
247 /* ----------- END #include "memoryVector.c" ----------- */
248
249
250 #ifdef ALTIVEC
251 # ifdef GCC_COMPILER
252 # include <altivec.h>
253 # endif
254
255
256
257 //#define TEST_FLOATS
258
259
260
261 /* Redefinition for undefined NAN and xlC compiling C++ code */
262 # if !defined(NAN) || ( defined(__IBMCPP__) && defined(XLC_COMPILER) )
263 # undef NAN
264 # define NAN 0x7FC00000
265 /* # define NAN 0xFFFA5A5A
266 * # define NAN 0x80000000
267 * # define NAN 0x00008000
268 */
269 # endif
270
271
272 int part1( );
273 int part2( );
274 int part3( );
275 int part4( );
276 int part5( );
277
278
279 typedef union
280 {
281 vector signed char v;
282 signed char e[16];
283 } TvecChar;
284
285 typedef union
286 {
287 vector unsigned char v;
288 unsigned char e[16];
289 } TvecUChar;
290
291 typedef union
292 {
293 vector bool char v;
294 unsigned char e[16];
295 } TvecBChar;
296
297 typedef union
298 {
299 vector signed short v;
300 signed short e[8];
301 } TvecShort;
302
303 typedef union
304 {
305 vector unsigned short v;
306 unsigned short e[8];
307 } TvecUShort;
308
309 typedef union
310 {
311 vector bool short v;
312 unsigned short e[8];
313 } TvecBShort;
314
315 typedef union
316 {
317 vector signed int v;
318 signed int e[4];
319 } TvecInt;
320
321 typedef union
322 {
323 vector unsigned int v;
324 unsigned int e[4];
325 } TvecUInt;
326
327 typedef union
328 {
329 vector bool int v;
330 unsigned int e[4];
331 } TvecBInt;
332
333 #if defined TEST_FLOATS
334 typedef union
335 {
336 vector float v;
337 float e[4];
338 signed int i[4];
339 } TvecFloat;
340 #endif
341
342 /* Scalar bool types declaration */
343 typedef unsigned char TboolChar;
344 typedef unsigned short TboolShort;
345 typedef unsigned int TboolInt;
346
347 #endif
348
349
350
351
352
353
354 /**********************************************************************
355 Main()
356 **********************************************************************/
357
358
359
main()360 int main()
361 {
362 TvecChar Caux1, Caux2, Caux3;//, Caux4;
363 TvecUChar UCaux1, UCaux2, UCaux3;//, UCaux4;
364 TvecBChar BCaux1;//, BCaux2, BCaux3, BCaux4;
365 TvecShort Saux1, Saux2, Saux3;//, Saux4;
366 TvecUShort USaux1, USaux2, USaux3;//, USaux4;
367 TvecBShort BSaux1;//, BSaux2, BSaux3, BSaux4;
368 TvecInt Iaux1, Iaux2, Iaux3;//, Iaux4;
369 TvecUInt UIaux1, UIaux2, UIaux3;//, UIaux4;
370 TvecBInt BIaux1;//, BIaux2, BIaux3, BIaux4;
371 #if defined TEST_FLOATS
372 TvecFloat Faux1, Faux2, Faux3;//, Faux4;
373 #endif
374
375 int i, err, j;//, b, bAux;
376 #if defined TEST_FLOATS
377 int b;
378 signed int Ivec1, Ivec2, Ivec3;
379 #endif
380
381 // unsigned char *UCvec1;
382 // signed short *Svec1;
383 // unsigned short *USvec1;
384 // unsigned int *UIvec1;
385 #if defined TEST_FLOATS
386 // float *Fvec1;
387 #endif
388
389 /* For saturated rutines */
390 // long long int LLaux;
391
392 signed char Caux;
393 unsigned char UCaux;
394 signed short Saux;
395 unsigned short USaux;
396 signed int Iaux;//, I1, I2;
397 unsigned int UIaux;//, UI1, UI2;
398 #if defined TEST_FLOATS
399 float Faux;
400 #endif
401
402 /* Scalar bool types definition */
403 TboolChar BCaux;
404 TboolShort BSaux;
405 TboolInt BIaux;
406
407 /*
408 union
409 {
410 float f;
411 signed int si;
412 unsigned int ui;
413 signed short ss[2];
414 unsigned short us[2];
415 signed char sc[4];
416 unsigned char uc[4];
417 } INTunion1, INTunion2;
418
419 union
420 {
421 signed short ss;
422 unsigned short us;
423 signed char sc[2];
424 unsigned char uc[2];
425 } SHOunion1, SHOunion2;
426 */
427
428 #if defined (GCC_COMPILER)
429 vector signed char Ccons1 = (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
430 vector signed char Ccons2 = (vector signed char){1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
431 vector signed char Ccons3 = (vector signed char){-128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127};
432 vector unsigned char UCcons1 = (vector unsigned char){248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7};
433 vector unsigned char UCcons2 = (vector unsigned char){2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2};
434 vector unsigned char UCcons3 = (vector unsigned char){1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8};
435 vector signed short Scons1 = (vector signed short){-4, -3, -2, -1, 0, 1, 2, 3};
436 vector signed short Scons2 = (vector signed short){-32768, 10000, 1, 1, 1, 1, -10000, -10000};
437 vector signed short Scons3 = (vector signed short){-32768, 32767, -32768, 32767, -32768, 32767, -32768, 32767};
438 vector unsigned short UScons1 = (vector unsigned short){65532, 65533, 65534, 65535, 0, 1, 2, 3};
439 vector unsigned short UScons2 = (vector unsigned short){1, 1, 1, 1, 1, 1, 1, 1};
440 vector unsigned short UScons3 = (vector unsigned short){1, 2, 3, 4, 1, 2, 3, 4};
441 vector signed int Icons1 = (vector signed int){-4, -1, 1, 4};
442 vector signed int Icons2 = (vector signed int){1, 1, 1, 1};
443 vector signed int Icons3 = (vector signed int){0x80000000, 0x7FFFFFFF, 0x80000000, 0x7FFFFFFF};
444 vector unsigned int UIcons1 = (vector unsigned int){0xFFFFFFFE, 0xFFFFFFFF, 0, 1};
445 vector unsigned int UIcons2 = (vector unsigned int){1, 1, 1, 1};
446 vector unsigned int UIcons3 = (vector unsigned int){1, 2, 1, 2};
447
448 #if defined TEST_FLOATS
449 vector float Fcons1 = (vector float){-1.5, 1.0, 0.5, -3.999};
450 vector float Fcons2 = (vector float){1.0, 1.0, 1.0, 1.0};
451 vector float Fcons3 = (vector float){100000000000.0, 1.0, -1.0, -1234567890.0};
452 #endif
453
454 #elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
455 vector signed char Ccons1 = (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
456 vector signed char Ccons2 = (vector signed char)(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
457 vector signed char Ccons3 = (vector signed char)(-128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127);
458 vector unsigned char UCcons1 = (vector unsigned char)(248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7);
459 vector unsigned char UCcons2 = (vector unsigned char)(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2);
460 vector unsigned char UCcons3 = (vector unsigned char)(1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8);
461 vector signed short Scons1 = (vector signed short)(-4, -3, -2, -1, 0, 1, 2, 3);
462 vector signed short Scons2 = (vector signed short)(-32768, 10000, 1, 1, 1, 1, -10000, -10000);
463 vector signed short Scons3 = (vector signed short)(-32768, 32767, -32768, 32767, -32768, 32767, -32768, 32767);
464 vector unsigned short UScons1 = (vector unsigned short)(65532, 65533, 65534, 65535, 0, 1, 2, 3);
465 vector unsigned short UScons2 = (vector unsigned short)(1, 1, 1, 1, 1, 1, 1, 1);
466 vector unsigned short UScons3 = (vector unsigned short)(1, 2, 3, 4, 1, 2, 3, 4);
467 vector signed int Icons1 = (vector signed int)(-4, -1, 1, 4);
468 vector signed int Icons2 = (vector signed int)(1, 1, 1, 1);
469 vector signed int Icons3 = (vector signed int)(0x80000000, 0x7FFFFFFF, 0x80000000, 0x7FFFFFFF);
470 vector unsigned int UIcons1 = (vector unsigned int)(0xFFFFFFFE, 0xFFFFFFFF, 0, 1);
471 vector unsigned int UIcons2 = (vector unsigned int)(1, 1, 1, 1);
472 vector unsigned int UIcons3 = (vector unsigned int)(1, 2, 1, 2);
473
474 #if defined TEST_FLOATS
475 vector float Fcons1 = (vector float)(-1.5, 1.0, 0.5, -3.999);
476 vector float Fcons2 = (vector float)(1.0, 1.0, 1.0, 1.0);
477 vector float Fcons3 = (vector float)(100000000000.0, 1.0, -1.0, -1234567890.0);
478 #endif
479
480 #endif
481
482
483 /* Function vec_abs */
484 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
485 err = 0;
486 Caux1.v = vec_abs( Ccons1 );
487 Caux2.v = Ccons1;
488 for( i=0; i< 16; i++ )
489 if (Caux1.e[i] != abs( Caux2.e[i] ))
490 err++;
491 if (err)
492 printf("Function vec_abs [type char] ===> Error\n");
493 else
494 printf("Function vec_abs [type char] ===> OK\n");
495
496 err = 0;
497 Saux1.v = vec_abs( Scons1 );
498 Saux2.v = Scons1;
499 for( i=0; i< 8; i++ )
500 if (Saux1.e[i] != abs( Saux2.e[i] ))
501 err++;
502 if (err)
503 printf("Function vec_abs [type short] ===> Error\n");
504 else
505 printf("Function vec_abs [type short] ===> OK\n");
506
507 err = 0;
508 Iaux1.v = vec_abs( Icons1 );
509 Iaux2.v = Icons1;
510 for( i=0; i< 4; i++ )
511 if (Iaux1.e[i] != abs( Iaux2.e[i] ))
512 err++;
513 if (err)
514 printf("Function vec_abs [type integer] ===> Error\n");
515 else
516 printf("Function vec_abs [type integer] ===> OK\n");
517
518 #if defined TEST_FLOATS
519 err = 0;
520 Faux1.v = vec_abs( Fcons1 );
521 Faux2.v = Fcons1;
522 for( i=0; i< 4; i++ )
523 if (Faux1.e[i] != fabs( Faux2.e[i] ))
524 err++;
525 if (err)
526 printf("Function vec_abs [type float] ===> Error\n");
527 else
528 printf("Function vec_abs [type float] ===> OK\n");
529 #endif
530
531 /* Function vec_abss */
532 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
533 err = 0;
534 Caux1.v = vec_abss( Ccons1 );
535 Caux2.v = Ccons1;
536 for( i=0; i< 16; i++ )
537 if (Caux1.e[i] != abs( Caux2.e[i] ))
538 err++;
539 if (err)
540 printf("Function vec_abss [type char] ===> Error\n");
541 else
542 printf("Function vec_abss [type char] ===> OK\n");
543
544 err = 0;
545 Saux1.v = vec_abss( Scons1 );
546 Saux2.v = Scons1;
547 for( i=0; i< 8; i++ )
548 if (Saux1.e[i] != abs( Saux2.e[i] ))
549 err++;
550 if (err)
551 printf("Function vec_abss [type short] ===> Error\n");
552 else
553 printf("Function vec_abss [type short] ===> OK\n");
554
555 err = 0;
556 Iaux1.v = vec_abss( Icons1 );
557 Iaux2.v = Icons1;
558 for( i=0; i< 4; i++ )
559 if (Iaux1.e[i] != abs( Iaux2.e[i] ))
560 err++;
561 if (err)
562 printf("Function vec_abss [type integer] ===> Error\n");
563 else
564 printf("Function vec_abss [type integer] ===> OK\n");
565
566 /* Function vec_add */
567 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
568 err = 0;
569 Caux1.v = vec_add( Ccons1, Ccons2 );
570 Caux2.v = Ccons1;
571 Caux3.v = Ccons2;
572 for( i=0; i< 16; i++ )
573 {
574 Caux = Caux2.e[i]+Caux3.e[i];
575 if (Caux1.e[i] != Caux)
576 err++;
577 }
578 if (err)
579 printf("Function vec_add [type char] ===> Error\n");
580 else
581 printf("Function vec_add [type char] ===> OK\n");
582
583 err = 0;
584 UCaux1.v = vec_add( UCcons1, UCcons2 );
585 UCaux2.v = UCcons1;
586 UCaux3.v = UCcons2;
587 for( i=0; i< 16; i++ )
588 {
589 UCaux = UCaux2.e[i]+UCaux3.e[i];
590 if (UCaux1.e[i] != UCaux)
591 err++;
592 }
593 if (err)
594 printf("Function vec_add [type unsigned char] ===> Error\n");
595 else
596 printf("Function vec_add [type unsigned char] ===> OK\n");
597
598 err = 0;
599 Saux1.v = vec_add( Scons1, Scons2 );
600 Saux2.v = Scons1;
601 Saux3.v = Scons2;
602 for( i=0; i< 8; i++ )
603 {
604 Saux = Saux2.e[i]+Saux3.e[i];
605 if (Saux1.e[i] != Saux)
606 err++;
607 }
608 if (err)
609 printf("Function vec_add [type short] ===> Error\n");
610 else
611 printf("Function vec_add [type short] ===> OK\n");
612
613 err = 0;
614 USaux1.v = vec_add( UScons1, UScons2 );
615 USaux2.v = UScons1;
616 USaux3.v = UScons2;
617 for( i=0; i< 8; i++ )
618 {
619 USaux = USaux2.e[i]+USaux3.e[i];
620 if (USaux1.e[i] != USaux)
621 err++;
622 }
623 if (err)
624 printf("Function vec_add [type unsigned short] ===> Error\n");
625 else
626 printf("Function vec_add [type unsigned short] ===> OK\n");
627
628 err = 0;
629 Iaux1.v = vec_add( Icons1, Icons2 );
630 Iaux2.v = Icons1;
631 Iaux3.v = Icons2;
632 for( i=0; i< 4; i++ )
633 {
634 Iaux = Iaux2.e[i]+Iaux3.e[i];
635 if (Iaux1.e[i] != Iaux)
636 err++;
637 }
638 if (err)
639 printf("Function vec_add [type integer] ===> Error\n");
640 else
641 printf("Function vec_add [type integer] ===> OK\n");
642
643 err = 0;
644 UIaux1.v = vec_add( UIcons1, UIcons3 );
645 UIaux2.v = UIcons1;
646 UIaux3.v = UIcons3;
647 for( i=0; i< 4; i++ )
648 {
649 UIaux = UIaux2.e[i]+UIaux3.e[i];
650 if (UIaux1.e[i] != UIaux)
651 err++;
652 }
653 if (err)
654 printf("Function vec_add [type unsigned int] ===> Error\n");
655 else
656 printf("Function vec_add [type unsigned int] ===> OK\n");
657
658 #if defined TEST_FLOATS
659 err = 0;
660 Faux1.v = vec_add( Fcons1, Fcons2 );
661 Faux2.v = Fcons1;
662 Faux3.v = Fcons2;
663 for( i=0; i< 4; i++ )
664 {
665 Faux = Faux2.e[i]+Faux3.e[i];
666 if (Faux1.e[i] != Faux)
667 err++;
668 }
669 if (err)
670 printf("Function vec_add [type float] ===> Error\n");
671 else
672 printf("Function vec_add [type float] ===> OK\n");
673 #endif
674
675
676 /* Function vec_addc */
677 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
678 err = 0;
679 UIaux1.v = vec_addc( UIcons1, UIcons3 );
680 UIaux2.v = UIcons1;
681 UIaux3.v = UIcons3;
682 for( i=0; i< 4; i++ )
683 {
684 UIaux = (unsigned int)(UIaux2.e[i]+UIaux3.e[i]);
685 if ((UIaux< UIaux2.e[i]) || (UIaux< UIaux3.e[i]))
686 UIaux=1;
687 else
688 UIaux=0;
689 if (UIaux1.e[i] != UIaux)
690 err++;
691 }
692 if (err)
693 printf("Function vec_addc [type unsigned int] ===> Error\n");
694 else
695 printf("Function vec_addc [type unsigned int] ===> OK\n");
696
697 /* Function vec_adds */
698 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
699 err = 0;
700 Caux1.v = vec_adds( Ccons1, Ccons3 );
701 Caux2.v = Ccons1;
702 Caux3.v = Ccons3;
703 for( i=0; i< 16; i++ )
704 {
705 Caux = Caux2.e[i]+Caux3.e[i];
706 if ((Caux2.e[i]>0)&&(Caux3.e[i]>0))
707 {
708 if (Caux< 0)
709 Caux=0x7F;
710 }
711 else if ((Caux2.e[i]<0)&&(Caux3.e[i]<0))
712 {
713 if (Caux> 0)
714 Caux=0x80;
715 }
716 if (Caux1.e[i] != Caux)
717 err++;
718 }
719 if (err)
720 printf("Function vec_adds [type char] ===> Error\n");
721 else
722 printf("Function vec_adds [type char] ===> OK\n");
723
724 err = 0;
725 UCaux1.v = vec_adds( UCcons1, UCcons3 );
726 UCaux2.v = UCcons1;
727 UCaux3.v = UCcons3;
728 for( i=0; i< 16; i++ )
729 {
730 UCaux = (unsigned char)(UCaux2.e[i]+UCaux3.e[i]);
731 if ((UCaux< UCaux2.e[i]) || (UCaux< UCaux3.e[i]))
732 UCaux=0xFF;
733 if (UCaux1.e[i] != UCaux)
734 err++;
735 }
736 if (err)
737 printf("Function vec_adds [type unsigned char] ===> Error\n");
738 else
739 printf("Function vec_adds [type unsigned char] ===> OK\n");
740
741 err = 0;
742 Saux1.v = vec_adds( Scons1, Scons3 );
743 Saux2.v = Scons1;
744 Saux3.v = Scons3;
745 for( i=0; i< 8; i++ )
746 {
747 Saux = Saux2.e[i]+Saux3.e[i];
748 if ((Saux2.e[i]>0)&&(Saux3.e[i]>0))
749 {
750 if (Saux< 0)
751 Saux=0x7FFF;
752 }
753 else if ((Saux2.e[i]<0)&&(Saux3.e[i]<0))
754 {
755 if (Saux> 0)
756 Saux=0x8000;
757 }
758 if (Saux1.e[i] != Saux)
759 err++;
760 }
761 if (err)
762 printf("Function vec_adds [type short] ===> Error\n");
763 else
764 printf("Function vec_adds [type short] ===> OK\n");
765
766 err = 0;
767 USaux1.v = vec_adds( UScons1, UScons3 );
768 USaux2.v = UScons1;
769 USaux3.v = UScons3;
770 for( i=0; i< 8; i++ )
771 {
772 USaux = (unsigned short)(USaux2.e[i]+USaux3.e[i]);
773 if ((USaux< USaux2.e[i]) || (USaux< USaux3.e[i]))
774 USaux=0xFFFF;
775 if (USaux1.e[i] != USaux)
776 err++;
777 }
778 if (err)
779 printf("Function vec_adds [type unsigned short] ===> Error\n");
780 else
781 printf("Function vec_adds [type unsigned short] ===> OK\n");
782
783
784 err = 0;
785 Iaux1.v = vec_adds( Icons1, Icons3 );
786 Iaux2.v = Icons1;
787 Iaux3.v = Icons3;
788 for( i=0; i< 4; i++ )
789 {
790 Iaux = Iaux2.e[i]+Iaux3.e[i];
791 if ((Iaux2.e[i]>0)&&(Iaux3.e[i]>0))
792 {
793 if (Iaux< 0)
794 Iaux=0x7FFFFFFF;
795 }
796 else if ((Iaux2.e[i]<0)&&(Iaux3.e[i]<0))
797 {
798 if (Iaux> 0)
799 Iaux=0x80000000;
800 }
801 if (Iaux1.e[i] != Iaux)
802 err++;
803 }
804 if (err)
805 printf("Function vec_adds [type integer] ===> Error\n");
806 else
807 printf("Function vec_adds [type integer] ===> OK\n");
808
809 err = 0;
810 UIaux1.v = vec_adds( UIcons1, UIcons3 );
811 UIaux2.v = UIcons1;
812 UIaux3.v = UIcons3;
813 for( i=0; i< 4; i++ )
814 {
815 UIaux = (unsigned int)(UIaux2.e[i]+UIaux3.e[i]);
816 if ((UIaux< UIaux2.e[i]) || (UIaux< UIaux3.e[i]))
817 UIaux=0xFFFFFFFF;
818 if (UIaux1.e[i] != UIaux)
819 err++;
820 }
821 if (err)
822 printf("Function vec_adds [type unsigned int] ===> Error\n");
823 else
824 printf("Function vec_adds [type unsigned int] ===> OK\n");
825
826 /* Function vec_and */
827 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
828 err = 0;
829 Caux1.v = vec_and( Ccons1, Ccons2 );
830 Caux2.v = Ccons1;
831 Caux3.v = Ccons2;
832 for( i=0; i< 16; i++ )
833 if (Caux1.e[i] != (Caux2.e[i] & Caux3.e[i]))
834 err++;
835 if (err)
836 printf("Function vec_and [type char] ===> Error\n");
837 else
838 printf("Function vec_and [type char] ===> OK\n");
839
840 err = 0;
841 UCaux1.v = vec_and( UCcons1, UCcons2 );
842 UCaux2.v = UCcons1;
843 UCaux3.v = UCcons2;
844 for( i=0; i< 16; i++ )
845 if (UCaux1.e[i] != (UCaux2.e[i] & UCaux3.e[i]))
846 err++;
847 if (err)
848 printf("Function vec_and [type unsigned char] ===> Error\n");
849 else
850 printf("Function vec_and [type unsigned char] ===> OK\n");
851
852 err = 0;
853 Saux1.v = vec_and( Scons1, Scons2 );
854 Saux2.v = Scons1;
855 Saux3.v = Scons2;
856 for( i=0; i< 8; i++ )
857 if (Saux1.e[i] != (Saux2.e[i] & Saux3.e[i]))
858 err++;
859 if (err)
860 printf("Function vec_and [type short] ===> Error\n");
861 else
862 printf("Function vec_and [type short] ===> OK\n");
863
864 err = 0;
865 USaux1.v = vec_and( UScons1, UScons2 );
866 USaux2.v = UScons1;
867 USaux3.v = UScons2;
868 for( i=0; i< 8; i++ )
869 if (USaux1.e[i] != (USaux2.e[i] & USaux3.e[i]))
870 err++;
871 if (err)
872 printf("Function vec_and [type unsigned short] ===> Error\n");
873 else
874 printf("Function vec_and [type unsigned short] ===> OK\n");
875
876 err = 0;
877 Iaux1.v = vec_and( Icons1, Icons2 );
878 Iaux2.v = Icons1;
879 Iaux3.v = Icons2;
880 for( i=0; i< 4; i++ )
881 if (Iaux1.e[i] != (Iaux2.e[i] & Iaux3.e[i]))
882 err++;
883 if (err)
884 printf("Function vec_and [type integer] ===> Error\n");
885 else
886 printf("Function vec_and [type integer] ===> OK\n");
887
888 err = 0;
889 UIaux1.v = vec_and( UIcons1, UIcons2 );
890 UIaux2.v = UIcons1;
891 UIaux3.v = UIcons2;
892 for( i=0; i< 4; i++ )
893 if (UIaux1.e[i] != (UIaux2.e[i] & UIaux3.e[i]))
894 err++;
895 if (err)
896 printf("Function vec_and [type unsigned int] ===> Error\n");
897 else
898 printf("Function vec_and [type unsigned int] ===> OK\n");
899
900 #if defined TEST_FLOATS
901 err = 0;
902 Faux1.v = vec_and( Fcons1, Fcons2 );
903 Faux2.v = Fcons1;
904 Faux3.v = Fcons2;
905 for( i=0; i< 4; i++ )
906 {
907 Ivec1 = Faux1.i[i];
908 Ivec2 = Faux2.i[i];
909 Ivec3 = Faux3.i[i];
910 if ((Ivec1) != ((Ivec2) & (Ivec3)))
911 err++;
912 }
913 if (err)
914 printf("Function vec_and [type float] ===> Error\n");
915 else
916 printf("Function vec_and [type float] ===> OK\n");
917 #endif
918
919 /* Function vec_andc */
920 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
921 err = 0;
922 Caux1.v = vec_andc( Ccons1, Ccons2 );
923 Caux2.v = Ccons1;
924 Caux3.v = Ccons2;
925 for( i=0; i< 16; i++ )
926 if (Caux1.e[i] != (Caux2.e[i] & ~Caux3.e[i]))
927 err++;
928 if (err)
929 printf("Function vec_andc [type char] ===> Error\n");
930 else
931 printf("Function vec_andc [type char] ===> OK\n");
932
933 err = 0;
934 UCaux1.v = vec_andc( UCcons1, UCcons2 );
935 UCaux2.v = UCcons1;
936 UCaux3.v = UCcons2;
937 for( i=0; i< 16; i++ )
938 if (UCaux1.e[i] != (UCaux2.e[i] & ~UCaux3.e[i]))
939 err++;
940 if (err)
941 printf("Function vec_andc [type unsigned char] ===> Error\n");
942 else
943 printf("Function vec_andc [type unsigned char] ===> OK\n");
944
945 err = 0;
946 Saux1.v = vec_andc( Scons1, Scons2 );
947 Saux2.v = Scons1;
948 Saux3.v = Scons2;
949 for( i=0; i< 8; i++ )
950 if (Saux1.e[i] != (Saux2.e[i] & ~Saux3.e[i]))
951 err++;
952 if (err)
953 printf("Function vec_andc [type short] ===> Error\n");
954 else
955 printf("Function vec_andc [type short] ===> OK\n");
956
957 err = 0;
958 USaux1.v = vec_andc( UScons1, UScons2 );
959 USaux2.v = UScons1;
960 USaux3.v = UScons2;
961 for( i=0; i< 8; i++ )
962 if (USaux1.e[i] != (USaux2.e[i] & ~USaux3.e[i]))
963 err++;
964 if (err)
965 printf("Function vec_andc [type unsigned short] ===> Error\n");
966 else
967 printf("Function vec_andc [type unsigned short] ===> OK\n");
968
969 err = 0;
970 Iaux1.v = vec_andc( Icons1, Icons2 );
971 Iaux2.v = Icons1;
972 Iaux3.v = Icons2;
973 for( i=0; i< 4; i++ )
974 if (Iaux1.e[i] != (Iaux2.e[i] & ~Iaux3.e[i]))
975 err++;
976 if (err)
977 printf("Function vec_andc [type integer] ===> Error\n");
978 else
979 printf("Function vec_andc [type integer] ===> OK\n");
980
981 err = 0;
982 UIaux1.v = vec_andc( UIcons1, UIcons2 );
983 UIaux2.v = UIcons1;
984 UIaux3.v = UIcons2;
985 for( i=0; i< 4; i++ )
986 if (UIaux1.e[i] != (UIaux2.e[i] & ~UIaux3.e[i]))
987 err++;
988 if (err)
989 printf("Function vec_andc [type unsigned int] ===> Error\n");
990 else
991 printf("Function vec_andc [type unsigned int] ===> OK\n");
992
993 #if defined TEST_FLOATS
994 err = 0;
995 Faux1.v = vec_andc( Fcons1, Fcons2 );
996 Faux2.v = Fcons1;
997 Faux3.v = Fcons2;
998 for( i=0; i< 4; i++ )
999 {
1000 Ivec1 = Faux1.i[i];
1001 Ivec2 = Faux2.i[i];
1002 Ivec3 = Faux3.i[i];
1003 if ((Ivec1) != ((Ivec2) & ~(Ivec3)))
1004 err++;
1005 }
1006 if (err)
1007 printf("Function vec_andc [type float] ===> Error\n");
1008 else
1009 printf("Function vec_andc [type float] ===> OK\n");
1010 #endif
1011
1012 /* Function vec_avg */
1013 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
1014 err = 0;
1015 Caux1.v = vec_avg( Ccons1, Ccons2 );
1016 Caux2.v = Ccons1;
1017 Caux3.v = Ccons2;
1018 for( i=0; i< 16; i++ )
1019 {
1020 j = (Caux2.e[i]+Caux3.e[i]+1) >> 1;
1021 if (Caux1.e[i] != j)
1022 err++;
1023 }
1024 if (err)
1025 printf("Function vec_avg [type char] ===> Error\n");
1026 else
1027 printf("Function vec_avg [type char] ===> OK\n");
1028
1029 err = 0;
1030 UCaux1.v = vec_avg( UCcons1, UCcons2 );
1031 UCaux2.v = UCcons1;
1032 UCaux3.v = UCcons2;
1033 for( i=0; i< 16; i++ )
1034 {
1035 j = (UCaux2.e[i]+UCaux3.e[i]+1) >> 1;
1036 if (UCaux1.e[i] != j)
1037 err++;
1038 }
1039 if (err)
1040 printf("Function vec_avg [type unsigned char] ===> Error\n");
1041 else
1042 printf("Function vec_avg [type unsigned char] ===> OK\n");
1043
1044 err = 0;
1045 Saux1.v = vec_avg( Scons1, Scons2 );
1046 Saux2.v = Scons1;
1047 Saux3.v = Scons2;
1048 for( i=0; i< 8; i++ )
1049 {
1050 j = (Saux2.e[i]+Saux3.e[i]+1) >> 1;
1051 if (Saux1.e[i] != j)
1052 err++;
1053 }
1054 if (err)
1055 printf("Function vec_avg [type short] ===> Error\n");
1056 else
1057 printf("Function vec_avg [type short] ===> OK\n");
1058
1059 err = 0;
1060 USaux1.v = vec_avg( UScons1, UScons2 );
1061 USaux2.v = UScons1;
1062 USaux3.v = UScons2;
1063 for( i=0; i< 8; i++ )
1064 {
1065 j = (USaux2.e[i]+USaux3.e[i]+1) >> 1;
1066 if (USaux1.e[i] != j)
1067 err++;
1068 }
1069 if (err)
1070 printf("Function vec_avg [type unsigned short] ===> Error\n");
1071 else
1072 printf("Function vec_avg [type unsigned short] ===> OK\n");
1073
1074 err = 0;
1075 Iaux1.v = vec_avg( Icons1, Icons2 );
1076 Iaux2.v = Icons1;
1077 Iaux3.v = Icons2;
1078 for( i=0; i< 4; i++ )
1079 {
1080 Iaux = Iaux2.e[i]%2;
1081 if (Iaux2.e[i]<0)
1082 Iaux = -Iaux;
1083
1084 if (Iaux3.e[i]<0)
1085 Iaux = (Iaux - Iaux3.e[i]%2 + 1)>>1;
1086 else
1087 Iaux = (Iaux + Iaux3.e[i]%2 + 1)>>1;
1088 Iaux = (Iaux2.e[i] >> 1) + (Iaux3.e[i] >> 1) + Iaux;
1089 if (Iaux1.e[i] != Iaux)
1090 err++;
1091 }
1092 if (err)
1093 printf("Function vec_avg [type integer] ===> Error\n");
1094 else
1095 printf("Function vec_avg [type integer] ===> OK\n");
1096
1097 err = 0;
1098 UIaux1.v = vec_avg( UIcons1, UIcons2 );
1099 UIaux2.v = UIcons1;
1100 UIaux3.v = UIcons2;
1101 for( i=0; i< 4; i++ )
1102 {
1103 UIaux = (UIaux2.e[i] >> 1) + (UIaux3.e[i] >> 1) +
1104 ((UIaux2.e[i]%2 + UIaux3.e[i]%2 + 1 )>>1);
1105 if (UIaux1.e[i] != UIaux)
1106 err++;
1107 }
1108 if (err)
1109 printf("Function vec_avg [type unsigned int] ===> Error\n");
1110 else
1111 printf("Function vec_avg [type unsigned int] ===> OK\n");
1112
1113 #if defined TEST_FLOATS
1114 /* Function vec_ceil */
1115 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
1116 err = 0;
1117 Faux1.v = vec_ceil( Fcons1 );
1118 Faux2.v = Fcons1;
1119 for( i=0; i< 4; i++ )
1120 if (Faux1.e[i] != ceil(Faux2.e[i]))
1121 err++;
1122 if (err)
1123 printf("Function vec_ceil [type float] ===> Error\n");
1124 else
1125 printf("Function vec_ceil [type float] ===> OK\n");
1126 #endif
1127
1128 #if defined TEST_FLOATS
1129 /* Function vec_cmpb */
1130 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
1131 err = 0;
1132 Iaux1.v = vec_cmpb( Fcons1, Fcons2 );
1133 Faux2.v = Fcons1;
1134 Faux3.v = Fcons2;
1135 for( i=0; i< 4; i++ )
1136 {
1137 j = 0;
1138 if (Faux2.e[i]>Faux3.e[i])
1139 j+=(1 << 31);
1140 if (Faux2.e[i]<-Faux3.e[i])
1141 j+=(1 << 30);
1142 if (Iaux1.e[i] != j)
1143 err++;
1144 }
1145
1146 if (err)
1147 printf("Function vec_cmpb [type float] ===> Error\n");
1148 else
1149 printf("Function vec_cmpb [type float] ===> OK\n");
1150 #endif
1151
1152 /* Function vec_cmpeq */
1153 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
1154 err = 0;
1155 BCaux1.v = vec_cmpeq( Ccons1, Ccons2 );
1156 Caux2.v = Ccons1;
1157 Caux3.v = Ccons2;
1158 for( i=0; i< 16; i++ )
1159 {
1160 if (Caux2.e[i] == Caux3.e[i])
1161 BCaux = 0xFF;
1162 else
1163 BCaux = 0;
1164 if (BCaux1.e[i] != BCaux)
1165 err++;
1166 }
1167 if (err)
1168 printf("Function vec_cmpeq [type char] ===> Error\n");
1169 else
1170 printf("Function vec_cmpeq [type char] ===> OK\n");
1171
1172 err = 0;
1173 BCaux1.v = vec_cmpeq( UCcons1, UCcons2 );
1174 UCaux2.v = UCcons1;
1175 UCaux3.v = UCcons2;
1176 for( i=0; i< 16; i++ )
1177 {
1178 if (UCaux2.e[i] == UCaux3.e[i])
1179 BCaux = 0xFF;
1180 else
1181 BCaux = 0;
1182 if (BCaux1.e[i] != BCaux)
1183 err++;
1184 }
1185 if (err)
1186 printf("Function vec_cmpeq [type unsigned char] ===> Error\n");
1187 else
1188 printf("Function vec_cmpeq [type unsigned char] ===> OK\n");
1189
1190 err = 0;
1191 BSaux1.v = vec_cmpeq( Scons1, Scons2 );
1192 Saux2.v = Scons1;
1193 Saux3.v = Scons2;
1194 for( i=0; i< 8; i++ )
1195 {
1196 if (Saux2.e[i] == Saux3.e[i])
1197 BSaux = 0xFFFF;
1198 else
1199 BSaux = 0;
1200 if (BSaux1.e[i] != BSaux)
1201 err++;
1202 }
1203 if (err)
1204 printf("Function vec_cmpeq [type short] ===> Error\n");
1205 else
1206 printf("Function vec_cmpeq [type short] ===> OK\n");
1207
1208 err = 0;
1209 BSaux1.v = vec_cmpeq( UScons1, UScons2 );
1210 USaux2.v = UScons1;
1211 USaux3.v = UScons2;
1212 for( i=0; i< 8; i++ )
1213 {
1214 if (USaux2.e[i] == USaux3.e[i])
1215 BSaux = 0xFFFF;
1216 else
1217 BSaux = 0;
1218 if (BSaux1.e[i] != BSaux)
1219 err++;
1220 }
1221 if (err)
1222 printf("Function vec_cmpeq [type unsigned short] ===> Error\n");
1223 else
1224 printf("Function vec_cmpeq [type unsigned short] ===> OK\n");
1225
1226 err = 0;
1227 BIaux1.v = vec_cmpeq( Icons1, Icons2 );
1228 Iaux2.v = Icons1;
1229 Iaux3.v = Icons2;
1230 for( i=0; i< 4; i++ )
1231 {
1232 if (Iaux2.e[i] == Iaux3.e[i])
1233 BIaux = 0xFFFFFFFF;
1234 else
1235 BIaux = 0;
1236 if (BIaux1.e[i] != BIaux)
1237 err++;
1238 }
1239 if (err)
1240 printf("Function vec_cmpeq [type integer] ===> Error\n");
1241 else
1242 printf("Function vec_cmpeq [type integer] ===> OK\n");
1243
1244 err = 0;
1245 BIaux1.v = vec_cmpeq( UIcons1, UIcons2 );
1246 UIaux2.v = UIcons1;
1247 UIaux3.v = UIcons2;
1248 for( i=0; i< 4; i++ )
1249 {
1250 if (UIaux2.e[i] == UIaux3.e[i])
1251 BIaux = 0xFFFFFFFF;
1252 else
1253 BIaux = 0;
1254 if (BIaux1.e[i] != BIaux)
1255 err++;
1256 }
1257 if (err)
1258 printf("Function vec_cmpeq [type unsigned int] ===> Error\n");
1259 else
1260 printf("Function vec_cmpeq [type unsigned int] ===> OK\n");
1261
1262 #if defined TEST_FLOATS
1263 err = 0;
1264 BIaux1.v = vec_cmpeq( Fcons1, Fcons2 );
1265 Faux2.v = Fcons1;
1266 Faux3.v = Fcons2;
1267 for( i=0; i< 4; i++ )
1268 {
1269 if (Faux2.e[i] == Faux3.e[i])
1270 BIaux = 0xFFFFFFFF;
1271 else
1272 BIaux = 0;
1273 if (BIaux1.e[i] != BIaux)
1274 err++;
1275 }
1276 if (err)
1277 printf("Function vec_cmpeq [type float] ===> Error\n");
1278 else
1279 printf("Function vec_cmpeq [type float] ===> OK\n");
1280 #endif
1281
1282 #if defined TEST_FLOATS
1283 /* Function vec_cmpge */
1284 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
1285 err = 0;
1286 BIaux1.v = vec_cmpge( Fcons1, Fcons2 );
1287 Faux2.v = Fcons1;
1288 Faux3.v = Fcons2;
1289 for( i=0; i< 4; i++ )
1290 {
1291 if (Faux2.e[i] >= Faux3.e[i])
1292 BIaux = 0xFFFFFFFF;
1293 else
1294 BIaux = 0;
1295 if (BIaux1.e[i] != BIaux)
1296 err++;
1297 }
1298 if (err)
1299 printf("Function vec_cmpge [type float] ===> Error\n");
1300 else
1301 printf("Function vec_cmpge [type float] ===> OK\n");
1302 #endif
1303
1304 /* Function vec_cmpgt */
1305 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
1306 err = 0;
1307 BCaux1.v = vec_cmpgt( Ccons1, Ccons2 );
1308 Caux2.v = Ccons1;
1309 Caux3.v = Ccons2;
1310 for( i=0; i< 16; i++ )
1311 {
1312 if (Caux2.e[i] > Caux3.e[i])
1313 BCaux = 0xFF;
1314 else
1315 BCaux = 0;
1316 if (BCaux1.e[i] != BCaux)
1317 err++;
1318 }
1319 if (err)
1320 printf("Function vec_cmpgt [type char] ===> Error\n");
1321 else
1322 printf("Function vec_cmpgt [type char] ===> OK\n");
1323
1324 err = 0;
1325 BCaux1.v = vec_cmpgt( UCcons1, UCcons2 );
1326 UCaux2.v = UCcons1;
1327 UCaux3.v = UCcons2;
1328 for( i=0; i< 16; i++ )
1329 {
1330 if (UCaux2.e[i] > UCaux3.e[i])
1331 BCaux = 0xFF;
1332 else
1333 BCaux = 0;
1334 if (BCaux1.e[i] != BCaux)
1335 err++;
1336 }
1337 if (err)
1338 printf("Function vec_cmpgt [type unsigned char] ===> Error\n");
1339 else
1340 printf("Function vec_cmpgt [type unsigned char] ===> OK\n");
1341
1342 err = 0;
1343 BSaux1.v = vec_cmpgt( Scons1, Scons2 );
1344 Saux2.v = Scons1;
1345 Saux3.v = Scons2;
1346 for( i=0; i< 8; i++ )
1347 {
1348 if (Saux2.e[i] > Saux3.e[i])
1349 BSaux = 0xFFFF;
1350 else
1351 BSaux = 0;
1352 if (BSaux1.e[i] != BSaux)
1353 err++;
1354 }
1355 if (err)
1356 printf("Function vec_cmpgt [type short] ===> Error\n");
1357 else
1358 printf("Function vec_cmpgt [type short] ===> OK\n");
1359
1360 err = 0;
1361 BSaux1.v = vec_cmpgt( UScons1, UScons2 );
1362 USaux2.v = UScons1;
1363 USaux3.v = UScons2;
1364 for( i=0; i< 8; i++ )
1365 {
1366 if (USaux2.e[i] > USaux3.e[i])
1367 BSaux = 0xFFFF;
1368 else
1369 BSaux = 0;
1370 if (BSaux1.e[i] != BSaux)
1371 err++;
1372 }
1373 if (err)
1374 printf("Function vec_cmpgt [type unsigned short] ===> Error\n");
1375 else
1376 printf("Function vec_cmpgt [type unsigned short] ===> OK\n");
1377
1378 err = 0;
1379 BIaux1.v = vec_cmpgt( Icons1, Icons2 );
1380 Iaux2.v = Icons1;
1381 Iaux3.v = Icons2;
1382 for( i=0; i< 4; i++ )
1383 {
1384 if (Iaux2.e[i] > Iaux3.e[i])
1385 BIaux = 0xFFFFFFFF;
1386 else
1387 BIaux = 0;
1388 if (BIaux1.e[i] != BIaux)
1389 err++;
1390 }
1391 if (err)
1392 printf("Function vec_cmpgt [type integer] ===> Error\n");
1393 else
1394 printf("Function vec_cmpgt [type integer] ===> OK\n");
1395
1396 err = 0;
1397 BIaux1.v = vec_cmpgt( UIcons1, UIcons2 );
1398 UIaux2.v = UIcons1;
1399 UIaux3.v = UIcons2;
1400 for( i=0; i< 4; i++ )
1401 {
1402 if (UIaux2.e[i] > UIaux3.e[i])
1403 BIaux=0xFFFFFFFF;
1404 else
1405 BIaux = 0;
1406 if (BIaux1.e[i] != BIaux)
1407 err++;
1408 }
1409 if (err)
1410 printf("Function vec_cmpgt [type unsigned int] ===> Error\n");
1411 else
1412 printf("Function vec_cmpgt [type unsigned int] ===> OK\n");
1413
1414 #if defined TEST_FLOATS
1415 err = 0;
1416 BIaux1.v = vec_cmpgt( Fcons1, Fcons2 );
1417 Faux2.v = Fcons1;
1418 Faux3.v = Fcons2;
1419 for( i=0; i< 4; i++ )
1420 {
1421 if (Faux2.e[i] > Faux3.e[i])
1422 BIaux = 0xFFFFFFFF;
1423 else
1424 BIaux = 0;
1425 if (BIaux1.e[i] != BIaux)
1426 err++;
1427 }
1428 if (err)
1429 printf("Function vec_cmpgt [type float] ===> Error\n");
1430 else
1431 printf("Function vec_cmpgt [type float] ===> OK\n");
1432 #endif
1433
1434 #if defined TEST_FLOATS
1435 /* Function vec_cmple */
1436 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
1437 err = 0;
1438 BIaux1.v = vec_cmple( Fcons1, Fcons2 );
1439 Faux2.v = Fcons1;
1440 Faux3.v = Fcons2;
1441 for( i=0; i< 4; i++ )
1442 {
1443 if (Faux2.e[i] <= Faux3.e[i])
1444 BIaux = 0xFFFFFFFF;
1445 else
1446 BIaux = 0;
1447 if (BIaux1.e[i] != BIaux)
1448 err++;
1449 }
1450 if (err)
1451 printf("Function vec_cmple [type float] ===> Error\n");
1452 else
1453 printf("Function vec_cmple [type float] ===> OK\n");
1454 #endif
1455
1456 /* Function vec_cmplt */
1457 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
1458 err = 0;
1459 BCaux1.v = vec_cmplt( Ccons1, Ccons2 );
1460 Caux2.v = Ccons1;
1461 Caux3.v = Ccons2;
1462 for( i=0; i< 16; i++ )
1463 {
1464 if (Caux2.e[i] < Caux3.e[i])
1465 BCaux = 0xFF;
1466 else
1467 BCaux = 0;
1468 if (BCaux1.e[i] != BCaux)
1469 err++;
1470 }
1471 if (err)
1472 printf("Function vec_cmplt [type char] ===> Error\n");
1473 else
1474 printf("Function vec_cmplt [type char] ===> OK\n");
1475
1476 err = 0;
1477 BCaux1.v = vec_cmplt( UCcons1, UCcons2 );
1478 UCaux2.v = UCcons1;
1479 UCaux3.v = UCcons2;
1480 for( i=0; i< 16; i++ )
1481 {
1482 if (UCaux2.e[i] < UCaux3.e[i])
1483 BCaux = 0xFF;
1484 else
1485 BCaux = 0;
1486 if (BCaux1.e[i] != BCaux)
1487 err++;
1488 }
1489 if (err)
1490 printf("Function vec_cmplt [type unsigned char] ===> Error\n");
1491 else
1492 printf("Function vec_cmplt [type unsigned char] ===> OK\n");
1493
1494 err = 0;
1495 BSaux1.v = vec_cmplt( Scons1, Scons2 );
1496 Saux2.v = Scons1;
1497 Saux3.v = Scons2;
1498 for( i=0; i< 8; i++ )
1499 {
1500 if (Saux2.e[i] < Saux3.e[i])
1501 BSaux = 0xFFFF;
1502 else
1503 BSaux = 0;
1504 if (BSaux1.e[i] != BSaux)
1505 err++;
1506 }
1507 if (err)
1508 printf("Function vec_cmplt [type short] ===> Error\n");
1509 else
1510 printf("Function vec_cmplt [type short] ===> OK\n");
1511
1512 err = 0;
1513 BSaux1.v = vec_cmplt( UScons1, UScons2 );
1514 USaux2.v = UScons1;
1515 USaux3.v = UScons2;
1516 for( i=0; i< 8; i++ )
1517 {
1518 if (USaux2.e[i] < USaux3.e[i])
1519 BSaux = 0xFFFF;
1520 else
1521 BSaux = 0;
1522 if (BSaux1.e[i] != BSaux)
1523 err++;
1524 }
1525 if (err)
1526 printf("Function vec_cmplt [type unsigned short] ===> Error\n");
1527 else
1528 printf("Function vec_cmplt [type unsigned short] ===> OK\n");
1529
1530 err = 0;
1531 BIaux1.v = vec_cmplt( Icons1, Icons2 );
1532 Iaux2.v = Icons1;
1533 Iaux3.v = Icons2;
1534 for( i=0; i< 4; i++ )
1535 {
1536 if (Iaux2.e[i] < Iaux3.e[i])
1537 BIaux = 0xFFFFFFFF;
1538 else
1539 BIaux = 0;
1540 if (BIaux1.e[i] != BIaux)
1541 err++;
1542 }
1543 if (err)
1544 printf("Function vec_cmplt [type integer] ===> Error\n");
1545 else
1546 printf("Function vec_cmplt [type integer] ===> OK\n");
1547
1548 err = 0;
1549 BIaux1.v = vec_cmplt( UIcons1, UIcons2 );
1550 UIaux2.v = UIcons1;
1551 UIaux3.v = UIcons2;
1552 for( i=0; i< 4; i++ )
1553 {
1554 if (UIaux2.e[i] < UIaux3.e[i])
1555 BIaux=0xFFFFFFFF;
1556 else
1557 BIaux = 0;
1558 if (BIaux1.e[i] != BIaux)
1559 err++;
1560 }
1561 if (err)
1562 printf("Function vec_cmplt [type unsigned int] ===> Error\n");
1563 else
1564 printf("Function vec_cmplt [type unsigned int] ===> OK\n");
1565
1566 #if defined TEST_FLOATS
1567 err = 0;
1568 BIaux1.v = vec_cmplt( Fcons1, Fcons2 );
1569 Faux2.v = Fcons1;
1570 Faux3.v = Fcons2;
1571 for( i=0; i< 4; i++ )
1572 {
1573 if (Faux2.e[i] < Faux3.e[i])
1574 BIaux = 0xFFFFFFFF;
1575 else
1576 BIaux = 0;
1577 if (BIaux1.e[i] != BIaux)
1578 err++;
1579 }
1580 if (err)
1581 printf("Function vec_cmplt [type float] ===> Error\n");
1582 else
1583 printf("Function vec_cmplt [type float] ===> OK\n");
1584 #endif
1585
1586 #if defined TEST_FLOATS
1587 /* Function vec_ctf */
1588 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
1589 err = 0;
1590 b = 2;
1591 Faux1.v = vec_ctf( Icons1, 2 );
1592 Iaux1.v = Icons1;
1593 for( i=0; i< 4; i++ )
1594 if (Faux1.e[i] != (((float)Iaux1.e[i])/(1<<b)))
1595 err++;
1596 if (err)
1597 printf("Function vec_ctf [type integer] ===> Error\n");
1598 else
1599 printf("Function vec_ctf [type integer] ===> OK\n");
1600
1601 err = 0;
1602 b = 2;
1603 Faux1.v = vec_ctf( UIcons1, 2 );
1604 UIaux1.v = UIcons1;
1605 for( i=0; i< 4; i++ )
1606 if (Faux1.e[i] != (((float)UIaux1.e[i])/(1<<b)))
1607 err++;
1608 if (err)
1609 printf("Function vec_ctf [type unsigned int] ===> Error\n");
1610 else
1611 printf("Function vec_ctf [type unsigned int] ===> OK\n");
1612 #endif
1613
1614 #if defined TEST_FLOATS
1615 /* Function vec_cts */
1616 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
1617 err = 0;
1618 b = 2;
1619 Iaux1.v = vec_cts( Fcons3, 2 );
1620 Faux1.v = Fcons3;
1621 for( i=0; i< 4; i++ )
1622 if (Iaux1.e[i] != (int)(Faux1.e[i]*(1<<b)))
1623 err++;
1624 if (err)
1625 printf("Function vec_cts [type float] ===> Error\n");
1626 else
1627 printf("Function vec_cts [type float] ===> OK\n");
1628 #endif
1629
1630 #if defined TEST_FLOATS
1631 /* Function vec_ctu */
1632 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
1633 err = 0;
1634 b = 2;
1635 UIaux1.v = vec_ctu( Fcons3, 2 );
1636 Faux1.v = Fcons3;
1637 for( i=0; i< 4; i++ )
1638 {
1639 double d = Faux1.e[i]*(1<<b);
1640 if (d > 0xffffffff)
1641 d = 0xffffffff;
1642 if (d < 0)
1643 d = 0;
1644 if (UIaux1.e[i] != (unsigned int)(d))
1645 err++;
1646 }
1647 if (err)
1648 printf("Function vec_ctu [type float] ===> Error\n");
1649 else
1650 printf("Function vec_ctu [type float] ===> OK\n");
1651 #endif
1652
1653 part1();
1654
1655 part2();
1656
1657 part3();
1658
1659 part4();
1660
1661 part5();
1662
1663 return 0;
1664 }
1665
1666
1667
1668
part1()1669 int part1()
1670 {
1671 TvecChar Caux1;//, Caux2, Caux3, Caux4;
1672 TvecUChar UCaux1;//, UCaux2, UCaux3, UCaux4;
1673 TvecShort Saux1;//, Saux2, Saux3, Saux4;
1674 TvecUShort USaux1;//, USaux2, USaux3, USaux4;
1675 TvecInt Iaux1;//, Iaux2, Iaux3, Iaux4;
1676 TvecUInt UIaux1;//, UIaux2, UIaux3, UIaux4;
1677 #if defined TEST_FLOATS
1678 TvecFloat Faux1, Faux2;//, Faux3, Faux4;
1679 #endif
1680
1681 int i, err, j;//, b, bAux;
1682 // signed int Ivec1, Ivec2, Ivec3;
1683 // signed short *Svec1;
1684 // unsigned int *UIvec1;
1685 // unsigned short *USvec1;
1686 // unsigned char *UCvec1;
1687 #if defined TEST_FLOATS
1688 // float *Fvec1;
1689 #endif
1690
1691 /* For saturated rutines */
1692 // long long int LLaux;
1693
1694 #if defined TEST_FLOATS
1695 float Faux;
1696 #endif
1697 signed int Iaux;//, I1, I2;
1698 // unsigned int UIaux, UI1, UI2;
1699 // signed short Saux;
1700 // unsigned short USaux;
1701 // signed char Caux;
1702 // unsigned char UCaux;
1703
1704 /*
1705 union
1706 {
1707 float f;
1708 signed int si;
1709 unsigned int ui;
1710 signed short ss[2];
1711 unsigned short us[2];
1712 signed char sc[4];
1713 unsigned char uc[4];
1714 } INTunion1, INTunion2;
1715
1716 union
1717 {
1718 signed short ss;
1719 unsigned short us;
1720 signed char sc[2];
1721 unsigned char uc[2];
1722 } SHOunion1, SHOunion2;
1723 */
1724
1725 #if defined (GCC_COMPILER)
1726 vector signed char Ccons1 = (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
1727 // vector signed char Ccons2 = (vector signed char){1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
1728 // vector signed char Ccons3 = (vector signed char){-128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127};
1729 vector unsigned char UCcons1 = (vector unsigned char){248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7};
1730 // vector unsigned char UCcons2 = (vector unsigned char){2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2};
1731 // vector unsigned char UCcons3 = (vector unsigned char){1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8};
1732 vector signed short Scons1 = (vector signed short){-4, -3, -2, -1, 0, 1, 2, 3};
1733 // vector signed short Scons2 = (vector signed short){-32768, 10000, 1, 1, 1, 1, -10000, -10000};
1734 // vector signed short Scons3 = (vector signed short){-32768, 32767, -32768, 32767, -32768, 32767, -32768, 32767};
1735 // vector unsigned short UScons1 = (vector unsigned short){65532, 65533, 65534, 65535, 0, 1, 2, 3};
1736 // vector unsigned short UScons2 = (vector unsigned short){1, 1, 1, 1, 1, 1, 1, 1};
1737 vector unsigned short UScons3 = (vector unsigned short){1, 2, 3, 4, 1, 2, 3, 4};
1738 vector signed int Icons1 = (vector signed int){-4, -1, 1, 4};
1739 // vector signed int Icons2 = (vector signed int){1, 1, 1, 1};
1740 // vector signed int Icons3 = (vector signed int){0x80000000, 0x7FFFFFFF, 0x80000000, 0x7FFFFFFF};
1741 vector unsigned int UIcons1 = (vector unsigned int){0xFFFFFFFE, 0xFFFFFFFF, 0, 1};
1742 // vector unsigned int UIcons2 = (vector unsigned int){1, 1, 1, 1};
1743 // vector unsigned int UIcons3 = (vector unsigned int){1, 2, 1, 2};
1744
1745 #if defined TEST_FLOATS
1746 vector float Fcons1 = (vector float){-1.5, 1.0, 0.5, -3.999};
1747 // vector float Fcons2 = (vector float){1.0, 1.0, 1.0, 1.0};
1748 vector float Fcons3 = (vector float){100000000000.0, 1.0, -1.0, -1234567890.0};
1749 #endif
1750
1751 #elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
1752 vector signed char Ccons1 = (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
1753 vector signed char Ccons2 = (vector signed char)(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
1754 vector signed char Ccons3 = (vector signed char)(-128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127);
1755 vector unsigned char UCcons1 = (vector unsigned char)(248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7);
1756 vector unsigned char UCcons2 = (vector unsigned char)(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2);
1757 vector unsigned char UCcons3 = (vector unsigned char)(1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8);
1758 vector signed short Scons1 = (vector signed short)(-4, -3, -2, -1, 0, 1, 2, 3);
1759 vector signed short Scons2 = (vector signed short)(-32768, 10000, 1, 1, 1, 1, -10000, -10000);
1760 vector signed short Scons3 = (vector signed short)(-32768, 32767, -32768, 32767, -32768, 32767, -32768, 32767);
1761 vector unsigned short UScons1 = (vector unsigned short)(65532, 65533, 65534, 65535, 0, 1, 2, 3);
1762 vector unsigned short UScons2 = (vector unsigned short)(1, 1, 1, 1, 1, 1, 1, 1);
1763 vector unsigned short UScons3 = (vector unsigned short)(1, 2, 3, 4, 1, 2, 3, 4);
1764 vector signed int Icons1 = (vector signed int)(-4, -1, 1, 4);
1765 vector signed int Icons2 = (vector signed int)(1, 1, 1, 1);
1766 vector signed int Icons3 = (vector signed int)(0x80000000, 0x7FFFFFFF, 0x80000000, 0x7FFFFFFF);
1767 vector unsigned int UIcons1 = (vector unsigned int)(0xFFFFFFFE, 0xFFFFFFFF, 0, 1);
1768 vector unsigned int UIcons2 = (vector unsigned int)(1, 1, 1, 1);
1769 vector unsigned int UIcons3 = (vector unsigned int)(1, 2, 1, 2);
1770
1771 #if defined TEST_FLOATS
1772 vector float Fcons1 = (vector float)(-1.5, 1.0, 0.5, -3.999);
1773 vector float Fcons2 = (vector float)(1.0, 1.0, 1.0, 1.0);
1774 vector float Fcons3 = (vector float)(100000000000.0, 1.0, -1.0, -1234567890.0);
1775 #endif
1776
1777 #endif
1778
1779
1780 /* Variables to be allocated with calloc_vec (16 bytes aligned) */
1781 unsigned char *UCmem = (unsigned char*)calloc_vec( 1, sizeof(vector unsigned char) );
1782 signed char *Cmem = (signed char*)calloc_vec( 1, sizeof(vector signed char) );
1783 unsigned short *USmem = (unsigned short*)calloc_vec( 1, sizeof(vector unsigned short) );
1784 signed short *Smem = (signed short*)calloc_vec( 1, sizeof(vector signed short) );
1785 unsigned int *UImem = (unsigned int*)calloc_vec( 1, sizeof(vector unsigned int) );
1786 signed int *Imem = (signed int*)calloc_vec( 1, sizeof(vector signed int) );
1787 #if defined TEST_FLOATS
1788 float *Fmem = (float*)calloc_vec( 1, sizeof(vector float) );
1789 #endif
1790
1791 /* Function vec_dss */
1792 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
1793 printf("Function vec_dss [Vector data Stream Stop] not checked\n");
1794
1795 /* Function vec_dssall */
1796 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
1797 printf("Function vec_dssall [Vector Stream Stop all] not checked\n");
1798
1799 /* Function vec_dst */
1800 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
1801 printf("Function vec_dst [Vector Data Stream Touch] not checked\n");
1802
1803 /* Function vec_dstst */
1804 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
1805 printf("Function vec_dstst [Vector Data Stream Touch for Store] not checked\n");
1806
1807 /* Function vec_dststt */
1808 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
1809 printf("Function vec_dststt [Vector Data Stream Touch for Store Transient] not checked\n");
1810
1811 /* Function vec_dstt */
1812 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
1813 printf("Function vec_dstt [Vector Data Stream Touch Transient] not checked\n");
1814
1815 #if defined TEST_FLOATS
1816 /* Function vec_expte */
1817 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
1818 err = 0;
1819 Faux1.v = vec_expte( Fcons1 );
1820 Faux2.v = Fcons1;
1821 for( i=0; i< 4; i++ )
1822 {
1823 Faux = pow(2,Faux2.e[i]);
1824 /*
1825 Ivec1 = (signed int*)(&Faux1.e[i]);
1826 Ivec2 = (signed int*)(&Faux);
1827 *Ivec1 = (*Ivec1) & 0xFFF00000;
1828 *Ivec2 = (*Ivec2) & 0xFFF00000;
1829 if (Faux1.e[i] != Faux)
1830 err++;
1831 */
1832 Faux = (Faux - Faux1.e[i])/Faux;
1833 if (Faux>0.1)
1834 err++;
1835 }
1836 if (err)
1837 printf("Function vec_expte [type float] ===> Error\n");
1838 else
1839 printf("Function vec_expte [type float] ===> OK\n");
1840 #endif
1841
1842 #if defined TEST_FLOATS
1843 /* Function vec_floor */
1844 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
1845 err = 0;
1846 Faux1.v = vec_floor( Fcons1 );
1847 Faux2.v = Fcons1;
1848 for( i=0; i< 4; i++ )
1849 if (Faux1.e[i] != floor(Faux2.e[i]))
1850 err++;
1851 if (err)
1852 printf("Function vec_floor [type float] ===> Error\n");
1853 else
1854 printf("Function vec_floor [type float] ===> OK\n");
1855 #endif
1856
1857 /* Function vec_ld */
1858 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
1859 err = 0;
1860 memcpy( UCmem, &UCcons1, sizeof(vector unsigned char) );
1861 UCaux1.v = vec_ld( 0, UCmem );
1862 Iaux = 1;
1863 for ( i=0; i< 16; i++ )
1864 {
1865 Iaux = Iaux && (UCaux1.e[i]==UCmem[i]);
1866 }
1867 if (Iaux!=1) err++;
1868
1869 if (err)
1870 printf("Function vec_ld [type unsigned char] ===> Error\n");
1871 else
1872 printf("Function vec_ld [type unsigned char] ===> OK\n");
1873
1874 err = 0;
1875 memcpy( Cmem, &Ccons1, sizeof(vector signed char) );
1876 Caux1.v = vec_ld( 0, Cmem );
1877 Iaux = 1;
1878 for ( i=0; i< 16; i++ )
1879 {
1880 Iaux = Iaux && (Caux1.e[i]==Cmem[i]);
1881 }
1882 if (Iaux!=1) err++;
1883
1884 if (err)
1885 printf("Function vec_ld [type char] ===> Error\n");
1886 else
1887 printf("Function vec_ld [type char] ===> OK\n");
1888
1889 err = 0;
1890 memcpy( USmem, &UScons3, sizeof(vector unsigned short) );
1891 USaux1.v = vec_ld( 0, USmem );
1892 Iaux = 1;
1893 for ( i=0; i< 8; i++ )
1894 {
1895 Iaux = Iaux && (USaux1.e[i]==USmem[i]);
1896 }
1897 if (Iaux!=1) err++;
1898
1899 if (err)
1900 printf("Function vec_ld [type unsigned short] ===> Error\n");
1901 else
1902 printf("Function vec_ld [type unsigned short] ===> OK\n");
1903
1904 err = 0;
1905 memcpy( Smem, &Scons1, sizeof(vector signed short) );
1906 Saux1.v = vec_ld( 0, Smem );
1907 Iaux = 1;
1908 for ( i=0; i< 8; i++ )
1909 {
1910 Iaux = Iaux && (Saux1.e[i]==Smem[i]);
1911 }
1912 if (Iaux!=1) err++;
1913
1914 if (err)
1915 printf("Function vec_ld [type short] ===> Error\n");
1916 else
1917 printf("Function vec_ld [type short] ===> OK\n");
1918
1919 err = 0;
1920 memcpy( UImem, &UIcons1, sizeof(vector unsigned int) );
1921 UIaux1.v = vec_ld( 0, UImem );
1922 Iaux = 1;
1923 for ( i=0; i< 4; i++ )
1924 {
1925 Iaux = Iaux && (UIaux1.e[i]==UImem[i]);
1926 }
1927 if (Iaux!=1) err++;
1928
1929 if (err)
1930 printf("Function vec_ld [type unsigned int] ===> Error\n");
1931 else
1932 printf("Function vec_ld [type unsigned int] ===> OK\n");
1933
1934 err = 0;
1935 memcpy( Imem, &Icons1, sizeof(vector signed int) );
1936 Iaux1.v = vec_ld( 0, Imem );
1937 Iaux = 1;
1938 for ( i=0; i< 4; i++ )
1939 {
1940 Iaux = Iaux && (Iaux1.e[i]==Imem[i]);
1941 }
1942 if (Iaux!=1) err++;
1943
1944 if (err)
1945 printf("Function vec_ld [type int] ===> Error\n");
1946 else
1947 printf("Function vec_ld [type int] ===> OK\n");
1948
1949 #if defined TEST_FLOATS
1950 err = 0;
1951 memcpy( Fmem, &Fcons1, sizeof(vector float) );
1952 Faux1.v = vec_ld( 0, Fmem );
1953 Iaux = 1;
1954 for ( i=0; i< 4; i++ )
1955 {
1956 Iaux = Iaux && (Faux1.e[i]==Fmem[i]);
1957 }
1958 if (Iaux!=1) err++;
1959
1960 if (err)
1961 printf("Function vec_ld [type float] ===> Error\n");
1962 else
1963 printf("Function vec_ld [type float] ===> OK\n");
1964 #endif
1965
1966 /* Function vec_lde */
1967 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
1968
1969 err = 0;
1970 for (i= 0; i< 16; i++)
1971 UCmem[i] = (unsigned char)i;
1972 j = 1;
1973 i = j*sizeof(unsigned char);
1974 UCaux1.v = vec_lde( i, UCmem );
1975
1976 if (UCaux1.e[j] != UCmem[j]) err++;
1977
1978 if (err)
1979 printf("Function vec_lde [type unsigned char] ===> Error\n");
1980 else
1981 printf("Function vec_lde [type unsigned char] ===> OK\n");
1982
1983 err = 0;
1984 for (i= 0; i< 16; i++)
1985 Cmem[i] = (char)(-i);
1986 j = 1;
1987 i = j*sizeof(char);
1988 Caux1.v = vec_lde( i, Cmem );
1989
1990 if (Caux1.e[j] != Cmem[j]) err++;
1991
1992 if (err)
1993 printf("Function vec_lde [type char] ===> Error\n");
1994 else
1995 printf("Function vec_lde [type char] ===> OK\n");
1996
1997 err = 0;
1998 for (i= 0; i< 8; i++)
1999 USmem[i] = (unsigned short)(i);
2000 j = 1;
2001 i = j*sizeof(unsigned short);
2002 USaux1.v = vec_lde( i, USmem );
2003
2004 if (USaux1.e[j] != USmem[j]) err++;
2005
2006 if (err)
2007 printf("Function vec_lde [type unsigned short] ===> Error\n");
2008 else
2009 printf("Function vec_lde [type unsigned short] ===> OK\n");
2010
2011 err = 0;
2012 for (i= 0; i< 8; i++)
2013 Smem[i] = (short)(-i);
2014 j = 1;
2015 i = j*sizeof(short);
2016 Saux1.v = vec_lde( i, Smem );
2017
2018 if (Saux1.e[j] != Smem[j]) err++;
2019
2020 if (err)
2021 printf("Function vec_lde [type short] ===> Error\n");
2022 else
2023 printf("Function vec_lde [type short] ===> OK\n");
2024
2025 err = 0;
2026 for (i= 0; i< 4; i++)
2027 UImem[i] = (unsigned int)(i);
2028 j = 1;
2029 i = j*sizeof(unsigned int);
2030 UIaux1.v = vec_lde( i, UImem );
2031
2032 if (UIaux1.e[j] != UImem[j]) err++;
2033
2034 if (err)
2035 printf("Function vec_lde [type unsigned int] ===> Error\n");
2036 else
2037 printf("Function vec_lde [type unsigned int] ===> OK\n");
2038
2039 err = 0;
2040 for (i= 0; i< 4; i++)
2041 Imem[i] = (int)(-i);
2042 j = 1;
2043 i = j*sizeof(int);
2044 Iaux1.v = vec_lde( i, Imem );
2045
2046 if (Iaux1.e[j] != Imem[j]) err++;
2047
2048 if (err)
2049 printf("Function vec_lde [type int] ===> Error\n");
2050 else
2051 printf("Function vec_lde [type int] ===> OK\n");
2052
2053 #if defined TEST_FLOATS
2054 err = 0;
2055 for (i= 0; i< 4; i++)
2056 Fmem[i] = ((float)(-i)) - 0.5;
2057 j = 1;
2058 i = j*sizeof(float);
2059 Faux1.v = vec_lde( i, Fmem );
2060
2061 if (Faux1.e[j] != Fmem[j]) err++;
2062
2063 if (err)
2064 printf("Function vec_lde [type float] ===> Error\n");
2065 else
2066 printf("Function vec_lde [type float] ===> OK\n");
2067 #endif
2068
2069 #if 0
2070 /* Function vec_ldl */
2071 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
2072 err = 0;
2073 memcpy( UCmem, &UCcons1, sizeof(vector unsigned char) );
2074 UCaux1.v = vec_ldl( 0, UCmem );
2075 Iaux = 1;
2076 for ( i=0; i< 16; i++ )
2077 {
2078 Iaux = Iaux && (UCaux1.e[i]==UCmem[i]);
2079 }
2080 if (Iaux!=1) err++;
2081
2082 if (err)
2083 printf("Function vec_ldl [type unsigned char] ===> Error\n");
2084 else
2085 printf("Function vec_ldl [type unsigned char] ===> OK\n");
2086
2087 err = 0;
2088 memcpy( Cmem, &Ccons1, sizeof(vector signed char) );
2089 Caux1.v = vec_ldl( 0, Cmem );
2090 Iaux = 1;
2091 for ( i=0; i< 16; i++ )
2092 {
2093 Iaux = Iaux && (Caux1.e[i]==Cmem[i]);
2094 }
2095 if (Iaux!=1) err++;
2096
2097 if (err)
2098 printf("Function vec_ldl [type char] ===> Error\n");
2099 else
2100 printf("Function vec_ldl [type char] ===> OK\n");
2101
2102 err = 0;
2103 memcpy( USmem, &UScons3, sizeof(vector unsigned short) );
2104 USaux1.v = vec_ldl( 0, USmem );
2105 Iaux = 1;
2106 for ( i=0; i< 8; i++ )
2107 {
2108 Iaux = Iaux && (USaux1.e[i]==USmem[i]);
2109 }
2110 if (Iaux!=1) err++;
2111
2112 if (err)
2113 printf("Function vec_ldl [type unsigned short] ===> Error\n");
2114 else
2115 printf("Function vec_ldl [type unsigned short] ===> OK\n");
2116
2117 err = 0;
2118 memcpy( Smem, &Scons1, sizeof(vector signed short) );
2119 Saux1.v = vec_ldl( 0, Smem );
2120 Iaux = 1;
2121 for ( i=0; i< 8; i++ )
2122 {
2123 Iaux = Iaux && (Saux1.e[i]==Smem[i]);
2124 }
2125 if (Iaux!=1) err++;
2126
2127 if (err)
2128 printf("Function vec_ldl [type short] ===> Error\n");
2129 else
2130 printf("Function vec_ldl [type short] ===> OK\n");
2131
2132 err = 0;
2133 memcpy( UImem, &UIcons1, sizeof(vector unsigned int) );
2134 UIaux1.v = vec_ldl( 0, UImem );
2135 Iaux = 1;
2136 for ( i=0; i< 4; i++ )
2137 {
2138 Iaux = Iaux && (UIaux1.e[i]==UImem[i]);
2139 }
2140 if (Iaux!=1) err++;
2141
2142 if (err)
2143 printf("Function vec_ldl [type unsigned int] ===> Error\n");
2144 else
2145 printf("Function vec_ldl [type unsigned int] ===> OK\n");
2146
2147 err = 0;
2148 memcpy( Imem, &Icons1, sizeof(vector signed int) );
2149 Iaux1.v = vec_ldl( 0, Imem );
2150 Iaux = 1;
2151 for ( i=0; i< 4; i++ )
2152 {
2153 Iaux = Iaux && (Iaux1.e[i]==Imem[i]);
2154 }
2155 if (Iaux!=1) err++;
2156
2157 if (err)
2158 printf("Function vec_ldl [type int] ===> Error\n");
2159 else
2160 printf("Function vec_ldl [type int] ===> OK\n");
2161
2162 #if defined TEST_FLOATS
2163 err = 0;
2164 memcpy( Fmem, &Fcons1, sizeof(vector float) );
2165 Faux1.v = vec_ldl( 0, Fmem );
2166 Iaux = 1;
2167 for ( i=0; i< 4; i++ )
2168 {
2169 Iaux = Iaux && (Faux1.e[i]==Fmem[i]);
2170 }
2171 if (Iaux!=1) err++;
2172
2173 if (err)
2174 printf("Function vec_ldl [type float] ===> Error\n");
2175 else
2176 printf("Function vec_ldl [type float] ===> OK\n");
2177 #endif
2178 #endif // #if 0
2179
2180 /* Free dynamic vector variables */
2181 free_vec( UCmem );
2182 free_vec( Cmem );
2183 free_vec( USmem );
2184 free_vec( Smem );
2185 free_vec( UImem );
2186 free_vec( Imem );
2187 #if defined TEST_FLOATS
2188 free_vec( Fmem );
2189 #endif
2190
2191 #if defined TEST_FLOATS
2192 /* Function vec_loge */
2193 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
2194 err = 0;
2195 Faux1.v = vec_loge( Fcons3 );
2196 Faux2.v = Fcons3;
2197 for( i=0; i< 4; i++ )
2198 {
2199 Faux = log2(Faux2.e[i]);
2200 if (Faux!=0.0)
2201 Faux = (Faux - Faux1.e[i])/Faux;
2202 else
2203 Faux = Faux - Faux1.e[i];
2204 if (Faux>0.1)
2205 err++;
2206 }
2207 if (err)
2208 printf("Function vec_loge [type float] ===> Error\n");
2209 else
2210 printf("Function vec_loge [type float] ===> OK\n");
2211 #endif
2212
2213 return 0;
2214 }
2215
2216
2217
2218
part2()2219 int part2()
2220 {
2221 TvecChar Caux1, Caux2, Caux3;//, Caux4;
2222 TvecUChar UCaux1, UCaux2, UCaux3;//, UCaux4;
2223 TvecShort Saux1, Saux2, Saux3, Saux4;
2224 TvecUShort USaux1, USaux2, USaux3, USaux4;
2225 TvecInt Iaux1, Iaux2, Iaux3;//, Iaux4;
2226 TvecUInt UIaux1, UIaux2, UIaux3;//, UIaux4;
2227 #if defined TEST_FLOATS
2228 TvecFloat Faux1, Faux2, Faux3, Faux4;
2229 #endif
2230
2231 int i, err, j, b, bAux;
2232 #if defined TEST_FLOATS
2233 signed int Ivec1, Ivec2, Ivec3;
2234 #endif
2235 // signed short *Svec1;
2236 // unsigned int *UIvec1;
2237 // unsigned short *USvec1;
2238 // unsigned char *UCvec1;
2239 #if defined TEST_FLOATS
2240 // float *Fvec1;
2241 #endif
2242
2243 /* For saturated rutines */
2244 // long long int LLaux;
2245
2246 #if defined TEST_FLOATS
2247 float Faux;
2248 #endif
2249 signed int Iaux, I1, I2;
2250 unsigned int UIaux, UI1, UI2;
2251 signed short Saux;
2252 unsigned short USaux;
2253 signed char Caux;
2254 unsigned char UCaux;
2255
2256 union
2257 {
2258 float f;
2259 signed int si;
2260 unsigned int ui;
2261 signed short ss[2];
2262 unsigned short us[2];
2263 signed char sc[4];
2264 unsigned char uc[4];
2265 } INTunion1;//, INTunion2;
2266
2267 /*
2268 union
2269 {
2270 signed short ss;
2271 unsigned short us;
2272 signed char sc[2];
2273 unsigned char uc[2];
2274 } SHOunion1, SHOunion2;
2275 */
2276
2277 #if defined (GCC_COMPILER)
2278 vector signed char Ccons1 = (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
2279 vector signed char Ccons2 = (vector signed char){1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
2280 // vector signed char Ccons3 = (vector signed char){-128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127};
2281 vector unsigned char UCcons1 = (vector unsigned char){248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7};
2282 vector unsigned char UCcons2 = (vector unsigned char){2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2};
2283 // vector unsigned char UCcons3 = (vector unsigned char){1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8};
2284 vector signed short Scons1 = (vector signed short){256, 320, 340, -1, 0, 1, 2, 3};
2285 vector signed short Scons2 = (vector signed short){256, 320, 340, 1, 1, 1, -10000, -10000};
2286 vector signed short Scons3 = (vector signed short){256, 320, 340, 32767, -32768, 32767, -32768, 32767};
2287 vector unsigned short UScons1 = (vector unsigned short){65532, 65533, 65534, 65535, 0, 1, 2, 3};
2288 vector unsigned short UScons2 = (vector unsigned short){1, 1, 1, 1, 1, 1, 1, 1};
2289 vector unsigned short UScons3 = (vector unsigned short){1, 2, 3, 4, 1, 2, 3, 4};
2290 vector signed int Icons1 = (vector signed int){-4, -1, 1, 4};
2291 vector signed int Icons2 = (vector signed int){1, 1, 1, 1};
2292 vector signed int Icons3 = (vector signed int){0x80000000, 0x7FFFFFFF, 0x80000000, 0x7FFFFFFF};
2293 vector unsigned int UIcons1 = (vector unsigned int){0xFFFFFFFE, 0xFFFFFFFF, 0, 1};
2294 vector unsigned int UIcons2 = (vector unsigned int){1, 1, 1, 1};
2295 vector unsigned int UIcons3 = (vector unsigned int){1, 2, 1, 2};
2296
2297 #if defined TEST_FLOATS
2298 vector float Fcons1 = (vector float){-1.5, 1.0, 0.5, -3.999};
2299 vector float Fcons2 = (vector float){1.0, 1.0, 1.0, 1.0};
2300 vector float Fcons3 = (vector float){100000000000.0, 1.0, -1.0, -1234567890.0};
2301 #endif
2302
2303 #elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
2304 vector signed char Ccons1 = (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
2305 vector signed char Ccons2 = (vector signed char)(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
2306 vector signed char Ccons3 = (vector signed char)(-128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127);
2307 vector unsigned char UCcons1 = (vector unsigned char)(248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7);
2308 vector unsigned char UCcons2 = (vector unsigned char)(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2);
2309 // vector unsigned char UCcons3 = (vector unsigned char)(1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8);
2310 vector signed short Scons1 = (vector signed short)(-4, -3, -2, -1, 0, 1, 2, 3);
2311 vector signed short Scons2 = (vector signed short)(-32768, 10000, 1, 1, 1, 1, -10000, -10000);
2312 vector signed short Scons3 = (vector signed short)(-32768, 32767, -32768, 32767, -32768, 32767, -32768, 32767);
2313 vector unsigned short UScons1 = (vector unsigned short)(65532, 65533, 65534, 65535, 0, 1, 2, 3);
2314 vector unsigned short UScons2 = (vector unsigned short)(1, 1, 1, 1, 1, 1, 1, 1);
2315 vector unsigned short UScons3 = (vector unsigned short)(1, 2, 3, 4, 1, 2, 3, 4);
2316 vector signed int Icons1 = (vector signed int)(-4, -1, 1, 4);
2317 vector signed int Icons2 = (vector signed int)(1, 1, 1, 1);
2318 vector signed int Icons3 = (vector signed int)(0x80000000, 0x7FFFFFFF, 0x80000000, 0x7FFFFFFF);
2319 vector unsigned int UIcons1 = (vector unsigned int)(0xFFFFFFFE, 0xFFFFFFFF, 0, 1);
2320 vector unsigned int UIcons2 = (vector unsigned int)(1, 1, 1, 1);
2321 vector unsigned int UIcons3 = (vector unsigned int)(1, 2, 1, 2);
2322
2323 #if defined TEST_FLOATS
2324 vector float Fcons1 = (vector float)(-1.5, 1.0, 0.5, -3.999);
2325 vector float Fcons2 = (vector float)(1.0, 1.0, 1.0, 1.0);
2326 vector float Fcons3 = (vector float)(100000000000.0, 1.0, -1.0, -1234567890.0);
2327 #endif
2328
2329 #endif
2330
2331
2332 /* Function vec_lvsl */
2333 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
2334 err = 0;
2335 b = 3;
2336 UCaux1.v = vec_lvsl( b, &b);
2337 bAux = b + (size_t)(&b);
2338 b = bAux & 0xF;
2339 # if defined(GCC_COMPILER)
2340 UCaux2.v =(vector unsigned char){0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF};
2341 # elif defined(MAC_COMPILER) || defined (XLC_COMPILER)
2342 UCaux2.v =(vector unsigned char)(0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,0xB,0xC,0xD,0xE,0xF);
2343 # endif
2344 for( i=0; i< 16; i++ )
2345 {
2346 UCaux = UCaux2.e[i]+b;
2347 if (UCaux1.e[i] != UCaux)
2348 err++;
2349 }
2350 if (err)
2351 printf("Function vec_lvsl [type unsigned char] ===> Error\n");
2352 else
2353 printf("Function vec_lvsl [type unsigned char] ===> OK\n");
2354
2355 /* Function vec_lvsr */
2356 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
2357 err = 0;
2358 b = 3;
2359 UCaux1.v = vec_lvsr( b, &b);
2360 bAux = b + (size_t)(&b);
2361 b = bAux & 0xF;
2362 # if defined (GCC_COMPILER)
2363 UCaux2.v =(vector unsigned char){0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F};
2364 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
2365 UCaux2.v =(vector unsigned char)(0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F);
2366 # endif
2367 for( i=0; i< 16; i++ )
2368 {
2369 UCaux = UCaux2.e[i]-b;
2370 if (UCaux1.e[i] != UCaux)
2371 err++;
2372 }
2373 if (err)
2374 printf("Function vec_lvsr [type unsigned char] ===> Error\n");
2375 else
2376 printf("Function vec_lvsr [type unsigned char] ===> OK\n");
2377
2378 #if defined TEST_FLOATS
2379 /* Function vec_madd */
2380 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
2381 err = 0;
2382 Faux1.v = vec_madd( Fcons1, Fcons2, Fcons3 );
2383 Faux2.v = Fcons1;
2384 Faux3.v = Fcons2;
2385 Faux4.v = Fcons3;
2386 for( i=0; i< 4; i++ )
2387 if (Faux1.e[i] != (Faux2.e[i]*Faux3.e[i]+Faux4.e[i]))
2388 err++;
2389 if (err)
2390 printf("Function vec_madd [type float] ===> Error\n");
2391 else
2392 printf("Function vec_madd [type float] ===> OK\n");
2393 #endif
2394
2395 /* Function vec_madds */
2396 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
2397 err = 0;
2398 Saux1.v = vec_madds( Scons1, Scons3, Scons2 );
2399 Saux2.v = Scons1;
2400 Saux3.v = Scons3;
2401 Saux4.v = Scons2;
2402 for( i=0; i< 8; i++ )
2403 {
2404 INTunion1.si = Saux2.e[i]*Saux3.e[i];
2405 INTunion1.si = INTunion1.si >> 15;
2406 INTunion1.si = INTunion1.si + Saux4.e[i];
2407 if (INTunion1.si>32767)
2408 Saux=0x7FFF;
2409 else if (INTunion1.si<(-32768))
2410 Saux=0x8000;
2411 else
2412 Saux= INTunion1.ss[1];
2413 if (Saux1.e[i] != Saux)
2414 err++;
2415 }
2416 if (err)
2417 printf("Function vec_madds [type short] ===> Error\n");
2418 else
2419 printf("Function vec_madds [type short] ===> OK\n");
2420
2421 /* Function vec_max */
2422 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
2423 err = 0;
2424 Caux1.v = vec_max( Ccons1, Ccons2 );
2425 Caux2.v = Ccons1;
2426 Caux3.v = Ccons2;
2427 for( i=0; i< 16; i++ )
2428 {
2429 if (Caux2.e[i]>Caux3.e[i])
2430 Caux = Caux2.e[i];
2431 else
2432 Caux = Caux3.e[i];
2433 if (Caux1.e[i] != Caux)
2434 err++;
2435 }
2436 if (err)
2437 printf("Function vec_max [type char] ===> Error\n");
2438 else
2439 printf("Function vec_max [type char] ===> OK\n");
2440
2441 err = 0;
2442 UCaux1.v = vec_max( UCcons1, UCcons2 );
2443 UCaux2.v = UCcons1;
2444 UCaux3.v = UCcons2;
2445 for( i=0; i< 16; i++ )
2446 {
2447 if (UCaux2.e[i]>UCaux3.e[i])
2448 UCaux = UCaux2.e[i];
2449 else
2450 UCaux = UCaux3.e[i];
2451 if (UCaux1.e[i] != UCaux)
2452 err++;
2453 }
2454 if (err)
2455 printf("Function vec_max [type unsigned char] ===> Error\n");
2456 else
2457 printf("Function vec_max [type unsigned char] ===> OK\n");
2458
2459 err = 0;
2460 Saux1.v = vec_max( Scons1, Scons3 );
2461 Saux2.v = Scons1;
2462 Saux3.v = Scons3;
2463 for( i=0; i< 8; i++ )
2464 {
2465 if (Saux2.e[i]>Saux3.e[i])
2466 Saux = Saux2.e[i];
2467 else
2468 Saux = Saux3.e[i];
2469 if (Saux1.e[i] != Saux)
2470 err++;
2471 }
2472 if (err)
2473 printf("Function vec_max [type short] ===> Error\n");
2474 else
2475 printf("Function vec_max [type short] ===> OK\n");
2476
2477 err = 0;
2478 USaux1.v = vec_max( UScons1, UScons2 );
2479 USaux2.v = UScons1;
2480 USaux3.v = UScons2;
2481 for( i=0; i< 8; i++ )
2482 {
2483 if (USaux2.e[i]>USaux3.e[i])
2484 USaux = USaux2.e[i];
2485 else
2486 USaux = USaux3.e[i];
2487 if (USaux1.e[i] != USaux)
2488 err++;
2489 }
2490 if (err)
2491 printf("Function vec_max [type unsigned short] ===> Error\n");
2492 else
2493 printf("Function vec_max [type unsigned short] ===> OK\n");
2494
2495 err = 0;
2496 Iaux1.v = vec_max( Icons1, Icons2 );
2497 Iaux2.v = Icons1;
2498 Iaux3.v = Icons2;
2499 for( i=0; i< 4; i++ )
2500 {
2501 if (Iaux2.e[i]>Iaux3.e[i])
2502 Iaux = Iaux2.e[i];
2503 else
2504 Iaux = Iaux3.e[i];
2505 if (Iaux1.e[i] != Iaux)
2506 err++;
2507 }
2508 if (err)
2509 printf("Function vec_max [type integer] ===> Error\n");
2510 else
2511 printf("Function vec_max [type integer] ===> OK\n");
2512
2513 err = 0;
2514 UIaux1.v = vec_max( UIcons1, UIcons2 );
2515 UIaux2.v = UIcons1;
2516 UIaux3.v = UIcons2;
2517 for( i=0; i< 4; i++ )
2518 {
2519 if (UIaux2.e[i]>UIaux3.e[i])
2520 UIaux = UIaux2.e[i];
2521 else
2522 UIaux = UIaux3.e[i];
2523 if (UIaux1.e[i] != UIaux)
2524 err++;
2525 }
2526 if (err)
2527 printf("Function vec_max [type unsigned int] ===> Error\n");
2528 else
2529 printf("Function vec_max [type unsigned int] ===> OK\n");
2530
2531 #if defined TEST_FLOATS
2532 err = 0;
2533 Faux1.v = vec_max( Fcons1, Fcons2 );
2534 Faux2.v = Fcons1;
2535 Faux3.v = Fcons2;
2536 for( i=0; i< 4; i++ )
2537 {
2538 if (Faux2.e[i]>Faux3.e[i])
2539 Faux = Faux2.e[i];
2540 else
2541 Faux = Faux3.e[i];
2542 if (Faux1.e[i] != Faux)
2543 err++;
2544 }
2545 if (err)
2546 printf("Function vec_max [type float] ===> Error\n");
2547 else
2548 printf("Function vec_max [type float] ===> OK\n");
2549 #endif
2550
2551 /* Function vec_mergeh */
2552 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
2553 err = 0;
2554 Caux1.v = vec_mergeh( Ccons1, Ccons2 );
2555 Caux2.v = Ccons1;
2556 Caux3.v = Ccons2;
2557 for( i=0; i< 8; i++ )
2558 if ((Caux1.e[2*i] != Caux2.e[i])||(Caux1.e[2*i+1]!=Caux3.e[i]))
2559 err++;
2560 if (err)
2561 printf("Function vec_mergeh [type char] ===> Error\n");
2562 else
2563 printf("Function vec_mergeh [type char] ===> OK\n");
2564
2565 err = 0;
2566 UCaux1.v = vec_mergeh( UCcons1, UCcons2 );
2567 UCaux2.v = UCcons1;
2568 UCaux3.v = UCcons2;
2569 for( i=0; i< 8; i++ )
2570 if ((UCaux1.e[2*i] != UCaux2.e[i])||(UCaux1.e[2*i+1]!=UCaux3.e[i]))
2571 err++;
2572 if (err)
2573 printf("Function vec_mergeh [type unsigned char] ===> Error\n");
2574 else
2575 printf("Function vec_mergeh [type unsigned char] ===> OK\n");
2576
2577 err = 0;
2578 Saux1.v = vec_mergeh( Scons1, Scons2 );
2579 Saux2.v = Scons1;
2580 Saux3.v = Scons2;
2581 for( i=0; i< 4; i++ )
2582 if ((Saux1.e[2*i] != Saux2.e[i])||(Saux1.e[2*i+1]!=Saux3.e[i]))
2583 err++;
2584 if (err)
2585 printf("Function vec_mergeh [type short] ===> Error\n");
2586 else
2587 printf("Function vec_mergeh [type short] ===> OK\n");
2588
2589 err = 0;
2590 USaux1.v = vec_mergeh( UScons1, UScons2 );
2591 USaux2.v = UScons1;
2592 USaux3.v = UScons2;
2593 for( i=0; i< 4; i++ )
2594 if ((USaux1.e[2*i] != USaux2.e[i])||(USaux1.e[2*i+1]!=USaux3.e[i]))
2595 err++;
2596 if (err)
2597 printf("Function vec_mergeh [type unsigned short] ===> Error\n");
2598 else
2599 printf("Function vec_mergeh [type unsigned short] ===> OK\n");
2600
2601 err = 0;
2602 Iaux1.v = vec_mergeh( Icons1, Icons2 );
2603 Iaux2.v = Icons1;
2604 Iaux3.v = Icons2;
2605 for( i=0; i< 2; i++ )
2606 if ((Iaux1.e[2*i] != Iaux2.e[i])||(Iaux1.e[2*i+1]!=Iaux3.e[i]))
2607 err++;
2608 if (err)
2609 printf("Function vec_mergeh [type integer] ===> Error\n");
2610 else
2611 printf("Function vec_mergeh [type integer] ===> OK\n");
2612
2613 err = 0;
2614 UIaux1.v = vec_mergeh( UIcons1, UIcons2 );
2615 UIaux2.v = UIcons1;
2616 UIaux3.v = UIcons2;
2617 for( i=0; i< 2; i++ )
2618 if ((UIaux1.e[2*i] != UIaux2.e[i])||(UIaux1.e[2*i+1]!=UIaux3.e[i]))
2619 err++;
2620 if (err)
2621 printf("Function vec_mergeh [type unsigned int] ===> Error\n");
2622 else
2623 printf("Function vec_mergeh [type unsigned int] ===> OK\n");
2624
2625 #if defined TEST_FLOATS
2626 err = 0;
2627 Faux1.v = vec_mergeh( Fcons1, Fcons2 );
2628 Faux2.v = Fcons1;
2629 Faux3.v = Fcons2;
2630 for( i=0; i< 2; i++ )
2631 if ((Faux1.e[2*i] != Faux2.e[i])||(Faux1.e[2*i+1]!=Faux3.e[i]))
2632 err++;
2633 if (err)
2634 printf("Function vec_mergeh [type float] ===> Error\n");
2635 else
2636 printf("Function vec_mergeh [type float] ===> OK\n");
2637 #endif
2638
2639 /* Function vec_mergel */
2640 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
2641 err = 0;
2642 Caux1.v = vec_mergel( Ccons1, Ccons2 );
2643 Caux2.v = Ccons1;
2644 Caux3.v = Ccons2;
2645 for( i=0; i< 8; i++ )
2646 if ((Caux1.e[2*i] != Caux2.e[i+8])||(Caux1.e[2*i+1]!=Caux3.e[i+8]))
2647 err++;
2648 if (err)
2649 printf("Function vec_mergel [type char] ===> Error\n");
2650 else
2651 printf("Function vec_mergel [type char] ===> OK\n");
2652
2653 err = 0;
2654 UCaux1.v = vec_mergel( UCcons1, UCcons2 );
2655 UCaux2.v = UCcons1;
2656 UCaux3.v = UCcons2;
2657 for( i=0; i< 8; i++ )
2658 if ((UCaux1.e[2*i] != UCaux2.e[i+8])||(UCaux1.e[2*i+1]!=UCaux3.e[i+8]))
2659 err++;
2660 if (err)
2661 printf("Function vec_mergel [type unsigned char] ===> Error\n");
2662 else
2663 printf("Function vec_mergel [type unsigned char] ===> OK\n");
2664
2665 err = 0;
2666 Saux1.v = vec_mergel( Scons1, Scons2 );
2667 Saux2.v = Scons1;
2668 Saux3.v = Scons2;
2669 for( i=0; i< 4; i++ )
2670 if ((Saux1.e[2*i] != Saux2.e[i+4])||(Saux1.e[2*i+1]!=Saux3.e[i+4]))
2671 err++;
2672 if (err)
2673 printf("Function vec_mergel [type short] ===> Error\n");
2674 else
2675 printf("Function vec_mergel [type short] ===> OK\n");
2676
2677 err = 0;
2678 USaux1.v = vec_mergel( UScons1, UScons2 );
2679 USaux2.v = UScons1;
2680 USaux3.v = UScons2;
2681 for( i=0; i< 4; i++ )
2682 if ((USaux1.e[2*i] != USaux2.e[i+4])||(USaux1.e[2*i+1]!=USaux3.e[i+4]))
2683 err++;
2684 if (err)
2685 printf("Function vec_mergel [type unsigned short] ===> Error\n");
2686 else
2687 printf("Function vec_mergel [type unsigned short] ===> OK\n");
2688
2689 err = 0;
2690 Iaux1.v = vec_mergel( Icons1, Icons2 );
2691 Iaux2.v = Icons1;
2692 Iaux3.v = Icons2;
2693 for( i=0; i< 2; i++ )
2694 if ((Iaux1.e[2*i] != Iaux2.e[i+2])||(Iaux1.e[2*i+1]!=Iaux3.e[i+2]))
2695 err++;
2696 if (err)
2697 printf("Function vec_mergel [type integer] ===> Error\n");
2698 else
2699 printf("Function vec_mergel [type integer] ===> OK\n");
2700
2701 err = 0;
2702 UIaux1.v = vec_mergel( UIcons1, UIcons2 );
2703 UIaux2.v = UIcons1;
2704 UIaux3.v = UIcons2;
2705 for( i=0; i< 2; i++ )
2706 if ((UIaux1.e[2*i] != UIaux2.e[i+2])||(UIaux1.e[2*i+1]!=UIaux3.e[i+2]))
2707 err++;
2708 if (err)
2709 printf("Function vec_mergel [type unsigned int] ===> Error\n");
2710 else
2711 printf("Function vec_mergel [type unsigned int] ===> OK\n");
2712
2713 #if defined TEST_FLOATS
2714 err = 0;
2715 Faux1.v = vec_mergel( Fcons1, Fcons2 );
2716 Faux2.v = Fcons1;
2717 Faux3.v = Fcons2;
2718 for( i=0; i< 2; i++ )
2719 if ((Faux1.e[2*i] != Faux2.e[i+2])||(Faux1.e[2*i+1]!=Faux3.e[i+2]))
2720 err++;
2721 if (err)
2722 printf("Function vec_mergel [type float] ===> Error\n");
2723 else
2724 printf("Function vec_mergel [type float] ===> OK\n");
2725 #endif
2726
2727 /* Function vec_mfvscr */
2728 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
2729 printf("Function vec_mfvscr [Vector Move from Vector Status and Control Register] not checked\n");
2730
2731 /* Function vec_min */
2732 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
2733 #ifndef XLC_COMPILER
2734 err = 0;
2735 Caux1.v = vec_min( Ccons1, Ccons2 );
2736 Caux2.v = Ccons1;
2737 Caux3.v = Ccons2;
2738 for( i=0; i< 8; i++ )
2739 {
2740 if (Caux2.e[i]<Caux3.e[i])
2741 Caux = Caux2.e[i];
2742 else
2743 Caux = Caux3.e[i];
2744 if (Caux1.e[i] != Caux)
2745 err++;
2746 }
2747 if (err)
2748 printf("Function vec_min [type char] ===> Error\n");
2749 else
2750 printf("Function vec_min [type char] ===> OK\n");
2751 #endif
2752
2753 err = 0;
2754 UCaux1.v = vec_min( UCcons1, UCcons2 );
2755 UCaux2.v = UCcons1;
2756 UCaux3.v = UCcons2;
2757 for( i=0; i< 8; i++ )
2758 {
2759 if (UCaux2.e[i]<UCaux3.e[i])
2760 UCaux = UCaux2.e[i];
2761 else
2762 UCaux = UCaux3.e[i];
2763 if (UCaux1.e[i] != UCaux)
2764 err++;
2765 }
2766 if (err)
2767 printf("Function vec_min [type unsigned char] ===> Error\n");
2768 else
2769 printf("Function vec_min [type unsigned char] ===> OK\n");
2770
2771 #ifndef XLC_COMPILER
2772 err = 0;
2773 Saux1.v = vec_min( Scons1, Scons2 );
2774 Saux2.v = Scons1;
2775 Saux3.v = Scons2;
2776 for( i=0; i< 8; i++ )
2777 {
2778 if (Saux2.e[i]<Saux3.e[i])
2779 Saux = Saux2.e[i];
2780 else
2781 Saux = Saux3.e[i];
2782 if (Saux1.e[i] != Saux)
2783 err++;
2784 }
2785 if (err)
2786 printf("Function vec_min [type short] ===> Error\n");
2787 else
2788 printf("Function vec_min [type short] ===> OK\n");
2789
2790 err = 0;
2791 USaux1.v = vec_min( UScons1, UScons2 );
2792 USaux2.v = UScons1;
2793 USaux3.v = UScons2;
2794 for( i=0; i< 8; i++ )
2795 {
2796 if (USaux2.e[i]<USaux3.e[i])
2797 USaux = USaux2.e[i];
2798 else
2799 USaux = USaux3.e[i];
2800 if (USaux1.e[i] != USaux)
2801 err++;
2802 }
2803 if (err)
2804 printf("Function vec_min [type unsigned short] ===> Error\n");
2805 else
2806 printf("Function vec_min [type unsigned short] ===> OK\n");
2807
2808 err = 0;
2809 Iaux1.v = vec_min( Icons1, Icons2 );
2810 Iaux2.v = Icons1;
2811 Iaux3.v = Icons2;
2812 for( i=0; i< 4; i++ )
2813 {
2814 if (Iaux2.e[i]<Iaux3.e[i])
2815 Iaux = Iaux2.e[i];
2816 else
2817 Iaux = Iaux3.e[i];
2818 if (Iaux1.e[i] != Iaux)
2819 err++;
2820 }
2821 if (err)
2822 printf("Function vec_min [type integer] ===> Error\n");
2823 else
2824 printf("Function vec_min [type integer] ===> OK\n");
2825
2826 err = 0;
2827 UIaux1.v = vec_min( UIcons1, UIcons2 );
2828 UIaux2.v = UIcons1;
2829 UIaux3.v = UIcons2;
2830 for( i=0; i< 4; i++ )
2831 {
2832 if (UIaux2.e[i]<UIaux3.e[i])
2833 UIaux = UIaux2.e[i];
2834 else
2835 UIaux = UIaux3.e[i];
2836 if (UIaux1.e[i] != UIaux)
2837 err++;
2838 }
2839 if (err)
2840 printf("Function vec_min [type unsigned int] ===> Error\n");
2841 else
2842 printf("Function vec_min [type unsigned int] ===> OK\n");
2843
2844 #if defined TEST_FLOATS
2845 err = 0;
2846 Faux1.v = vec_min( Fcons1, Fcons2 );
2847 Faux2.v = Fcons1;
2848 Faux3.v = Fcons2;
2849 for( i=0; i< 4; i++ )
2850 {
2851 if (Faux2.e[i]<Faux3.e[i])
2852 Faux = Faux2.e[i];
2853 else
2854 Faux = Faux3.e[i];
2855 if (Faux1.e[i] != Faux)
2856 err++;
2857 }
2858 if (err)
2859 printf("Function vec_min [type float] ===> Error\n");
2860 else
2861 printf("Function vec_min [type float] ===> OK\n");
2862 #endif
2863
2864 #endif
2865
2866 /* Function vec_mladd */
2867 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
2868 #ifndef XLC_COMPILER
2869 err = 0;
2870 Saux1.v = vec_mladd( Scons1, Scons2, Scons3 );
2871 Saux2.v = Scons1;
2872 Saux3.v = Scons2;
2873 Saux4.v = Scons3;
2874 for( i=0; i< 8; i++ )
2875 {
2876 INTunion1.si = Saux2.e[i]*Saux3.e[i];
2877 INTunion1.si = INTunion1.si + Saux4.e[i];
2878 if (Saux1.e[i] != INTunion1.ss[1])
2879 err++;
2880 }
2881 if (err)
2882 printf("Function vec_mladd [type short] ===> Error\n");
2883 else
2884 printf("Function vec_mladd [type short] ===> OK\n");
2885 #endif
2886
2887 err = 0;
2888 USaux1.v = vec_mladd( UScons1, UScons2, UScons3 );
2889 USaux2.v = UScons1;
2890 USaux3.v = UScons2;
2891 USaux4.v = UScons3;
2892 for( i=0; i< 8; i++ )
2893 {
2894 INTunion1.ui = USaux2.e[i]*USaux3.e[i];
2895 INTunion1.ui = INTunion1.ui + USaux4.e[i];
2896 if (USaux1.e[i] != INTunion1.us[1])
2897 err++;
2898 }
2899 if (err)
2900 printf("Function vec_mladd [type unsigned short] ===> Error\n");
2901 else
2902 printf("Function vec_mladd [type unsigned short] ===> OK\n");
2903
2904 /* Function vec_mradds */
2905 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
2906 err = 0;
2907 Saux1.v = vec_mradds( Scons1, Scons2, Scons3 );
2908 Saux2.v = Scons1;
2909 Saux3.v = Scons2;
2910 Saux4.v = Scons3;
2911 for( i=0; i< 8; i++ )
2912 {
2913 INTunion1.si = Saux2.e[i]*Saux3.e[i]+0x4000;
2914 INTunion1.si = INTunion1.si >> 15;
2915 INTunion1.si = INTunion1.si + Saux4.e[i];
2916 if (INTunion1.si>32767)
2917 Saux = 0x7FFF;
2918 else if (INTunion1.si<(-32768))
2919 Saux = 0x8000;
2920 else
2921 Saux = INTunion1.ss[1];
2922 if (Saux1.e[i] != Saux)
2923 err++;
2924
2925 printf("vector: %d \n", Saux1.e[i]);
2926 printf("scalar: %d \n", Saux);
2927 }
2928
2929 if (err)
2930 printf("Function vec_mradds [type short] ===> Error\n");
2931 else
2932 printf("Function vec_mradds [type short] ===> OK\n");
2933
2934 /* Function vec_msum */
2935 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
2936 #ifndef XLC_COMPILER
2937 err = 0;
2938 Iaux1.v = vec_msum( Ccons1, UCcons2, Icons1 );
2939 Caux1.v = Ccons1;
2940 UCaux1.v = UCcons2;
2941 Iaux2.v = Icons1;
2942 for( i=0; i< 4; i++ )
2943 {
2944 Iaux = Iaux2.e[i];
2945 for (j=0; j< 4; j++)
2946 Iaux = Iaux + Caux1.e[4*i+j]*UCaux1.e[4*i+j];
2947 if (Iaux1.e[i] != Iaux)
2948 err++;
2949 }
2950 if (err)
2951 printf("Function vec_msum [type char] ===> Error\n");
2952 else
2953 printf("Function vec_msum [type char] ===> OK\n");
2954 #endif
2955
2956 err = 0;
2957 UIaux1.v = vec_msum( UCcons1, UCcons2, UIcons1 );
2958 UCaux1.v = UCcons1;
2959 UCaux2.v = UCcons2;
2960 UIaux2.v = UIcons1;
2961 for( i=0; i< 4; i++ )
2962 {
2963 UIaux = UIaux2.e[i];
2964 for (j=0; j< 4; j++)
2965 UIaux = UIaux + UCaux1.e[4*i+j]*UCaux2.e[4*i+j];
2966 if (UIaux1.e[i] != UIaux)
2967 err++;
2968 }
2969 if (err)
2970 printf("Function vec_msum [type unsigned char] ===> Error\n");
2971 else
2972 printf("Function vec_msum [type unsigned char] ===> OK\n");
2973
2974 #ifndef XLC_COMPILER
2975 err = 0;
2976 Iaux1.v = vec_msum( Scons1, Scons2, Icons1 );
2977 Saux1.v = Scons1;
2978 Saux2.v = Scons2;
2979 Iaux2.v = Icons1;
2980 for( i=0; i< 4; i++ )
2981 {
2982 Iaux = Iaux2.e[i];
2983 for (j=0; j< 2; j++)
2984 Iaux = Iaux + Saux1.e[2*i+j]*Saux2.e[2*i+j];
2985 if (Iaux1.e[i] != Iaux)
2986 err++;
2987 }
2988 if (err)
2989 printf("Function vec_msum [type short] ===> Error\n");
2990 else
2991 printf("Function vec_msum [type short] ===> OK\n");
2992
2993 err = 0;
2994 UIaux1.v = vec_msum( UScons1, UScons2, UIcons1 );
2995 USaux1.v = UScons1;
2996 USaux2.v = UScons2;
2997 UIaux2.v = UIcons1;
2998 for( i=0; i< 4; i++ )
2999 {
3000 UIaux = UIaux2.e[i];
3001 for (j=0; j< 2; j++)
3002 UIaux = UIaux + USaux1.e[2*i+j]*USaux2.e[2*i+j];
3003 if (UIaux1.e[i] != UIaux)
3004 err++;
3005 }
3006 if (err)
3007 printf("Function vec_msum [type unsigned short] ===> Error\n");
3008 else
3009 printf("Function vec_msum [type unsigned short] ===> OK\n");
3010 #endif
3011
3012 /* Function vec_msums */
3013 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
3014 err = 0;
3015 Iaux1.v = vec_msums( Scons2, Scons3, Icons3 );
3016 Saux1.v = Scons2;
3017 Saux2.v = Scons3;
3018 Iaux2.v = Icons3;
3019 for( i=0; i< 4; i++ )
3020 {
3021 I1 = Saux1.e[2*i]*Saux2.e[2*i];
3022 I2 = Saux1.e[2*i+1]*Saux2.e[2*i+1];
3023 Iaux = I1 + I2;
3024 if ((I1>0)&&(I2>0)&&(Iaux<0))
3025 Iaux=0x7FFFFFFF;
3026 else if ((I1<0)&&(I2<0)&&(Iaux>0))
3027 Iaux=0x80000000;
3028 I1 = Iaux2.e[i];
3029 I2 = Iaux;
3030 Iaux = I1 + I2;
3031 if ((I1>0)&&(I2>0)&&(Iaux<0))
3032 Iaux=0x7FFFFFFF;
3033 else if ((I1<0)&&(I2<0)&&(Iaux>0))
3034 Iaux=0x80000000;
3035 if (Iaux1.e[i] != Iaux)
3036 err++;
3037 }
3038 if (err)
3039 printf("Function vec_msums [type short] ===> Error\n");
3040 else
3041 printf("Function vec_msums [type short] ===> OK\n");
3042
3043 err = 0;
3044 UIaux1.v = vec_msums( UScons2, UScons3, UIcons3 );
3045 USaux1.v = UScons2;
3046 USaux2.v = UScons3;
3047 UIaux2.v = UIcons3;
3048 for( i=0; i< 4; i++ )
3049 {
3050 UI1 = USaux1.e[2*i]*USaux2.e[2*i];
3051 UI2 = USaux1.e[2*i+1]*USaux2.e[2*i+1];
3052 UIaux = UI1 + UI2;
3053 if ((UIaux<UI1)||(UIaux<UI2))
3054 UIaux=0xFFFFFFFF;
3055 UI1 = UIaux2.e[i];
3056 UI2 = UIaux;
3057 UIaux = UI1 + UI2;
3058 if ((UIaux<UI1)||(UIaux<UI2))
3059 UIaux=0xFFFFFFFF;
3060 if (UIaux1.e[i] != UIaux)
3061 err++;
3062 }
3063 if (err)
3064 printf("Function vec_msums [type unsigned short] ===> Error\n");
3065 else
3066 printf("Function vec_msums [type unsigned short] ===> OK\n");
3067
3068 /* Function vec_mtvscr */
3069 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
3070 printf("Function vec_mtvscr [Vector Move to Vector Status and Control Register] not checked\n");
3071
3072 /* Function vec_mule */
3073 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
3074 err = 0;
3075 Saux1.v = vec_mule( Ccons1, Ccons2 );
3076 Caux1.v = Ccons1;
3077 Caux2.v = Ccons2;
3078 for( i=0; i< 4; i++ )
3079 if (Saux1.e[i] != (Caux1.e[2*i]*Caux2.e[2*i]))
3080 err++;
3081 if (err)
3082 printf("Function vec_mule [type char] ===> Error\n");
3083 else
3084 printf("Function vec_mule [type char] ===> OK\n");
3085
3086 err = 0;
3087 USaux1.v = vec_mule( UCcons1, UCcons2 );
3088 UCaux1.v = UCcons1;
3089 UCaux2.v = UCcons2;
3090 for( i=0; i< 4; i++ )
3091 if (USaux1.e[i] != (UCaux1.e[2*i]*UCaux2.e[2*i]))
3092 err++;
3093 if (err)
3094 printf("Function vec_mule [type unsigned char] ===> Error\n");
3095 else
3096 printf("Function vec_mule [type unsigned char] ===> OK\n");
3097
3098 err = 0;
3099 Iaux1.v = vec_mule( Scons1, Scons2 );
3100 Saux1.v = Scons1;
3101 Saux2.v = Scons2;
3102 for( i=0; i< 4; i++ )
3103 if (Iaux1.e[i] != (Saux1.e[2*i]*Saux2.e[2*i]))
3104 err++;
3105 if (err)
3106 printf("Function vec_mule [type short] ===> Error\n");
3107 else
3108 printf("Function vec_mule [type short] ===> OK\n");
3109
3110 err = 0;
3111 UIaux1.v = vec_mule( UScons1, UScons2 );
3112 USaux1.v = UScons1;
3113 USaux2.v = UScons2;
3114 for( i=0; i< 4; i++ )
3115 if (UIaux1.e[i] != (USaux1.e[2*i] * USaux2.e[2*i]))
3116 err++;
3117 if (err)
3118 printf("Function vec_mule [type unsigned short] ===> Error\n");
3119 else
3120 printf("Function vec_mule [type unsigned short] ===> OK\n");
3121
3122 /* Function vec_mulo */
3123 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
3124 err = 0;
3125 Saux1.v = vec_mulo( Ccons1, Ccons2 );
3126 Caux1.v = Ccons1;
3127 Caux2.v = Ccons2;
3128 for( i=0; i< 4; i++ )
3129 if (Saux1.e[i] != (Caux1.e[2*i+1]*Caux2.e[2*i+1]))
3130 err++;
3131 if (err)
3132 printf("Function vec_mulo [type char] ===> Error\n");
3133 else
3134 printf("Function vec_mulo [type char] ===> OK\n");
3135
3136 err = 0;
3137 USaux1.v = vec_mulo( UCcons1, UCcons2 );
3138 UCaux1.v = UCcons1;
3139 UCaux2.v = UCcons2;
3140 for( i=0; i< 4; i++ )
3141 if (USaux1.e[i] != (UCaux1.e[2*i+1]*UCaux2.e[2*i+1]))
3142 err++;
3143 if (err)
3144 printf("Function vec_mulo [type unsigned char] ===> Error\n");
3145 else
3146 printf("Function vec_mulo [type unsigned char] ===> OK\n");
3147
3148 err = 0;
3149 Iaux1.v = vec_mulo( Scons1, Scons2 );
3150 Saux1.v = Scons1;
3151 Saux2.v = Scons2;
3152 for( i=0; i< 4; i++ )
3153 if (Iaux1.e[i] != (Saux1.e[2*i+1]*Saux2.e[2*i+1]))
3154 err++;
3155 if (err)
3156 printf("Function vec_mulo [type short] ===> Error\n");
3157 else
3158 printf("Function vec_mulo [type short] ===> OK\n");
3159
3160 err = 0;
3161 UIaux1.v = vec_mulo( UScons1, UScons2 );
3162 USaux1.v = UScons1;
3163 USaux2.v = UScons2;
3164 for( i=0; i< 4; i++ )
3165 if (UIaux1.e[i] != (USaux1.e[2*i+1]*USaux2.e[2*i+1]))
3166 err++;
3167 if (err)
3168 printf("Function vec_mulo [type unsigned short] ===> Error\n");
3169 else
3170 printf("Function vec_mulo [type unsigned short] ===> OK\n");
3171
3172 #if defined TEST_FLOATS
3173 /* Function vec_nmsub */
3174 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
3175 err = 0;
3176 Faux1.v = vec_nmsub( Fcons1, Fcons2, Fcons3 );
3177 Faux2.v = Fcons1;
3178 Faux3.v = Fcons2;
3179 Faux4.v = Fcons3;
3180 for( i=0; i< 4; i++ )
3181 {
3182 if (Faux1.e[i] != (-Faux2.e[i]*Faux3.e[i]+Faux4.e[i]))
3183 err++;
3184 }
3185 if (err)
3186 printf("Function vec_nmsub [type float] ===> Error\n");
3187 else
3188 printf("Function vec_nmsub [type float] ===> OK\n");
3189 #endif
3190
3191 /* Function vec_nor */
3192 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
3193 err = 0;
3194 Caux1.v = vec_nor( Ccons1, Ccons2 );
3195 Caux2.v = Ccons1;
3196 Caux3.v = Ccons2;
3197 for( i=0; i< 16; i++ )
3198 if (Caux1.e[i] != ~(Caux2.e[i] | Caux3.e[i]))
3199 err++;
3200 if (err)
3201 printf("Function vec_nor [type char] ===> Error\n");
3202 else
3203 printf("Function vec_nor [type char] ===> OK\n");
3204
3205 err = 0;
3206 UCaux1.v = vec_nor( UCcons1, UCcons2 );
3207 UCaux2.v = UCcons1;
3208 UCaux3.v = UCcons2;
3209 for( i=0; i< 16; i++ )
3210 {
3211 UCaux = UCaux2.e[i] | UCaux3.e[i];
3212 UCaux = ~UCaux;
3213 if (UCaux1.e[i] != UCaux )
3214 err++;
3215 }
3216 if (err)
3217 printf("Function vec_nor [type unsigened char] ===> Error\n");
3218 else
3219 printf("Function vec_nor [type unsigened char] ===> OK\n");
3220
3221 err = 0;
3222 Saux1.v = vec_nor( Scons1, Scons2 );
3223 Saux2.v = Scons1;
3224 Saux3.v = Scons2;
3225 for( i=0; i< 8; i++ )
3226 if (Saux1.e[i] != ~(Saux2.e[i] | Saux3.e[i]))
3227 err++;
3228 if (err)
3229 printf("Function vec_nor [type short] ===> Error\n");
3230 else
3231 printf("Function vec_nor [type short] ===> OK\n");
3232
3233 err = 0;
3234 USaux1.v = vec_nor( UScons1, UScons2 );
3235 USaux2.v = UScons1;
3236 USaux3.v = UScons2;
3237 for( i=0; i< 8; i++ )
3238 {
3239 USaux = USaux2.e[i] | USaux3.e[i];
3240 USaux = ~USaux;
3241 if (USaux1.e[i] != USaux )
3242 err++;
3243 }
3244 if (err)
3245 printf("Function vec_nor [type unsigned short] ===> Error\n");
3246 else
3247 printf("Function vec_nor [type unsigned short] ===> OK\n");
3248
3249 err = 0;
3250 Iaux1.v = vec_nor( Icons1, Icons2 );
3251 Iaux2.v = Icons1;
3252 Iaux3.v = Icons2;
3253 for( i=0; i< 4; i++ )
3254 if (Iaux1.e[i] != ~(Iaux2.e[i] | Iaux3.e[i]))
3255 err++;
3256 if (err)
3257 printf("Function vec_nor [type integer] ===> Error\n");
3258 else
3259 printf("Function vec_nor [type integer] ===> OK\n");
3260
3261 err = 0;
3262 UIaux1.v = vec_nor( UIcons1, UIcons2 );
3263 UIaux2.v = UIcons1;
3264 UIaux3.v = UIcons2;
3265 for( i=0; i< 4; i++ )
3266 if (UIaux1.e[i] != ~(UIaux2.e[i] | UIaux3.e[i]))
3267 err++;
3268 if (err)
3269 printf("Function vec_nor [type unsigened int] ===> Error\n");
3270 else
3271 printf("Function vec_nor [type unsigened int] ===> OK\n");
3272
3273 #if defined TEST_FLOATS
3274 err = 0;
3275 Faux1.v = vec_nor( Fcons1, Fcons2 );
3276 Faux2.v = Fcons1;
3277 Faux3.v = Fcons2;
3278 for( i=0; i< 4; i++ )
3279 {
3280 Ivec1 = Faux1.i[i];
3281 Ivec2 = Faux2.i[i];
3282 Ivec3 = Faux3.i[i];
3283 if ((Ivec1) != ~((Ivec2) | (Ivec3)))
3284 err++;
3285 }
3286 if (err)
3287 printf("Function vec_nor [type float] ===> Error\n");
3288 else
3289 printf("Function vec_nor [type float] ===> OK\n");
3290 #endif
3291
3292 /* Function vec_or */
3293 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
3294 err = 0;
3295 Caux1.v = vec_or( Ccons1, Ccons2 );
3296 Caux2.v = Ccons1;
3297 Caux3.v = Ccons2;
3298 for( i=0; i< 16; i++ )
3299 if (Caux1.e[i] != (Caux2.e[i] | Caux3.e[i]))
3300 err++;
3301 if (err)
3302 printf("Function vec_or [type char] ===> Error\n");
3303 else
3304 printf("Function vec_or [type char] ===> OK\n");
3305
3306 err = 0;
3307 UCaux1.v = vec_or( UCcons1, UCcons2 );
3308 UCaux2.v = UCcons1;
3309 UCaux3.v = UCcons2;
3310 for( i=0; i< 16; i++ )
3311 {
3312 UCaux = UCaux2.e[i] | UCaux3.e[i];
3313 if (UCaux1.e[i] != UCaux )
3314 err++;
3315 }
3316 if (err)
3317 printf("Function vec_or [type unsigened char] ===> Error\n");
3318 else
3319 printf("Function vec_or [type unsigened char] ===> OK\n");
3320
3321 err = 0;
3322 Saux1.v = vec_or( Scons1, Scons2 );
3323 Saux2.v = Scons1;
3324 Saux3.v = Scons2;
3325 for( i=0; i< 8; i++ )
3326 if (Saux1.e[i] != (Saux2.e[i] | Saux3.e[i]))
3327 err++;
3328 if (err)
3329 printf("Function vec_or [type short] ===> Error\n");
3330 else
3331 printf("Function vec_or [type short] ===> OK\n");
3332
3333 err = 0;
3334 USaux1.v = vec_or( UScons1, UScons2 );
3335 USaux2.v = UScons1;
3336 USaux3.v = UScons2;
3337 for( i=0; i< 8; i++ )
3338 {
3339 USaux = USaux2.e[i] | USaux3.e[i];
3340 if (USaux1.e[i] != USaux )
3341 err++;
3342 }
3343 if (err)
3344 printf("Function vec_or [type unsigned short] ===> Error\n");
3345 else
3346 printf("Function vec_or [type unsigned short] ===> OK\n");
3347
3348 err = 0;
3349 Iaux1.v = vec_or( Icons1, Icons2 );
3350 Iaux2.v = Icons1;
3351 Iaux3.v = Icons2;
3352 for( i=0; i< 4; i++ )
3353 if (Iaux1.e[i] != (Iaux2.e[i] | Iaux3.e[i]))
3354 err++;
3355 if (err)
3356 printf("Function vec_or [type integer] ===> Error\n");
3357 else
3358 printf("Function vec_or [type integer] ===> OK\n");
3359
3360 err = 0;
3361 UIaux1.v = vec_or( UIcons1, UIcons2 );
3362 UIaux2.v = UIcons1;
3363 UIaux3.v = UIcons2;
3364 for( i=0; i< 4; i++ )
3365 if (UIaux1.e[i] != (UIaux2.e[i] | UIaux3.e[i]))
3366 err++;
3367 if (err)
3368 printf("Function vec_or [type unsigened int] ===> Error\n");
3369 else
3370 printf("Function vec_or [type unsigened int] ===> OK\n");
3371
3372 #if defined TEST_FLOATS
3373 err = 0;
3374 Faux1.v = vec_or( Fcons1, Fcons2 );
3375 Faux2.v = Fcons1;
3376 Faux3.v = Fcons2;
3377 for( i=0; i< 4; i++ )
3378 {
3379 Ivec1 = Faux1.i[i];
3380 Ivec2 = Faux2.i[i];
3381 Ivec3 = Faux3.i[i];
3382 if ((Ivec1) != ((Ivec2) | (Ivec3)))
3383 err++;
3384 }
3385 if (err)
3386 printf("Function vec_or [type float] ===> Error\n");
3387 else
3388 printf("Function vec_or [type float] ===> OK\n");
3389 #endif
3390
3391 return 0;
3392 }
3393
3394
3395
3396
part3()3397 int part3( )
3398 {
3399 TvecChar Caux1, Caux2, Caux3;//, Caux4;
3400 TvecUChar UCaux1, UCaux2, UCaux3, UCaux4;
3401 TvecShort Saux1, Saux2, Saux3;//, Saux4;
3402 TvecUShort USaux1, USaux2, USaux3, USaux4;
3403 TvecInt Iaux1, Iaux2, Iaux3;//, Iaux4;
3404 TvecUInt UIaux1, UIaux2, UIaux3, UIaux4;
3405 #if defined TEST_FLOATS
3406 TvecFloat Faux1, Faux2, Faux3;//, Faux4;
3407 #endif
3408
3409 int i, err, /*j,*/ b;//, bAux;
3410 #if defined TEST_FLOATS
3411 signed int Ivec1, Ivec2;//, Ivec3;
3412 #endif
3413 // signed short *Svec1;
3414 unsigned int *UIvec1;
3415 unsigned short *USvec1;
3416 unsigned char *UCvec1;
3417 #if defined TEST_FLOATS
3418 // float *Fvec1;
3419 #endif
3420
3421 /* For saturated rutines */
3422 // long long int LLaux;
3423
3424 #if defined TEST_FLOATS
3425 float Faux;
3426 #endif
3427 signed int Iaux;//, I1, I2;
3428 unsigned int UIaux;//, UI1, UI2;
3429 signed short Saux;
3430 unsigned short USaux;
3431 signed char Caux;
3432 unsigned char UCaux;
3433
3434 union
3435 {
3436 float f;
3437 signed int si;
3438 unsigned int ui;
3439 signed short ss[2];
3440 unsigned short us[2];
3441 signed char sc[4];
3442 unsigned char uc[4];
3443 } INTunion1, INTunion2;
3444
3445 union
3446 {
3447 signed short ss;
3448 unsigned short us;
3449 signed char sc[2];
3450 unsigned char uc[2];
3451 } SHOunion1, SHOunion2;
3452
3453
3454 #if defined (GCC_COMPILER)
3455 vector signed char Ccons1 = (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
3456 vector signed char Ccons2 = (vector signed char){1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
3457 vector signed char Ccons3 = (vector signed char){-128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127};
3458 vector unsigned char UCcons1 = (vector unsigned char){248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7};
3459 vector unsigned char UCcons2 = (vector unsigned char){2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2};
3460 vector unsigned char UCcons3 = (vector unsigned char){1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8};
3461 vector signed short Scons1 = (vector signed short){-4, -3, -2, -1, 0, 1, 2, 3};
3462 vector signed short Scons2 = (vector signed short){-32768, 10000, 1, 1, 1, 1, -10000, -10000};
3463 vector signed short Scons3 = (vector signed short){-32768, 32767, -32768, 32767, -32768, 32767, -32768, 32767};
3464 vector unsigned short UScons1 = (vector unsigned short){65532, 65533, 65534, 65535, 0, 1, 2, 3};
3465 vector unsigned short UScons2 = (vector unsigned short){1, 1, 1, 1, 1, 1, 1, 1};
3466 vector unsigned short UScons3 = (vector unsigned short){1, 2, 3, 4, 1, 2, 3, 4};
3467 vector signed int Icons1 = (vector signed int){-4, -1, 1, 4};
3468 vector signed int Icons2 = (vector signed int){1, 1, 1, 1};
3469 vector signed int Icons3 = (vector signed int){0x80000000, 0x7FFFFFFF, 0x80000000, 0x7FFFFFFF};
3470 vector unsigned int UIcons1 = (vector unsigned int){0xFFFFFFFE, 0xFFFFFFFF, 0, 1};
3471 vector unsigned int UIcons2 = (vector unsigned int){1, 1, 1, 1};
3472 vector unsigned int UIcons3 = (vector unsigned int){1, 2, 1, 2};
3473
3474 #if defined TEST_FLOATS
3475 vector float Fcons1 = (vector float){-1.5, 1.0, 0.5, -3.999};
3476 vector float Fcons2 = (vector float){1.0, 1.0, 1.0, 1.0};
3477 vector float Fcons3 = (vector float){100000000000.0, 1.0, -1.0, -1234567890.0};
3478 #endif
3479
3480 #elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
3481 vector signed char Ccons1 = (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
3482 vector signed char Ccons2 = (vector signed char)(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
3483 vector signed char Ccons3 = (vector signed char)(-128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127);
3484 vector unsigned char UCcons1 = (vector unsigned char)(248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7);
3485 vector unsigned char UCcons2 = (vector unsigned char)(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2);
3486 vector unsigned char UCcons3 = (vector unsigned char)(1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8);
3487 vector signed short Scons1 = (vector signed short)(-4, -3, -2, -1, 0, 1, 2, 3);
3488 vector signed short Scons2 = (vector signed short)(-32768, 10000, 1, 1, 1, 1, -10000, -10000);
3489 vector signed short Scons3 = (vector signed short)(-32768, 32767, -32768, 32767, -32768, 32767, -32768, 32767);
3490 vector unsigned short UScons1 = (vector unsigned short)(65532, 65533, 65534, 65535, 0, 1, 2, 3);
3491 vector unsigned short UScons2 = (vector unsigned short)(1, 1, 1, 1, 1, 1, 1, 1);
3492 vector unsigned short UScons3 = (vector unsigned short)(1, 2, 3, 4, 1, 2, 3, 4);
3493 vector signed int Icons1 = (vector signed int)(-4, -1, 1, 4);
3494 vector signed int Icons2 = (vector signed int)(1, 1, 1, 1);
3495 vector signed int Icons3 = (vector signed int)(0x80000000, 0x7FFFFFFF, 0x80000000, 0x7FFFFFFF);
3496 vector unsigned int UIcons1 = (vector unsigned int)(0xFFFFFFFE, 0xFFFFFFFF, 0, 1);
3497 vector unsigned int UIcons2 = (vector unsigned int)(1, 1, 1, 1);
3498 vector unsigned int UIcons3 = (vector unsigned int)(1, 2, 1, 2);
3499
3500 #if defined TEST_FLOATS
3501 vector float Fcons1 = (vector float)(-1.5, 1.0, 0.5, -3.999);
3502 vector float Fcons2 = (vector float)(1.0, 1.0, 1.0, 1.0);
3503 vector float Fcons3 = (vector float)(100000000000.0, 1.0, -1.0, -1234567890.0);
3504 #endif
3505
3506 #endif
3507
3508
3509 /* Variables to be allocated with calloc_vec (16 bytes aligned) */
3510 unsigned char *UCmem = (unsigned char*)calloc_vec( 1, sizeof(vector unsigned char) );
3511 signed char *Cmem = (signed char*)calloc_vec( 1, sizeof(vector signed char) );
3512 unsigned short *USmem = (unsigned short*)calloc_vec( 1, sizeof(vector unsigned short) );
3513 signed short *Smem = (signed short*)calloc_vec( 1, sizeof(vector signed short) );
3514 unsigned int *UImem = (unsigned int*)calloc_vec( 1, sizeof(vector unsigned int) );
3515 signed int *Imem = (signed int*)calloc_vec( 1, sizeof(vector signed int) );
3516 #if defined TEST_FLOATS
3517 float *Fmem = (float*)calloc_vec( 1, sizeof(vector float) );
3518 #endif
3519
3520 /* Function vec_pack */
3521 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
3522 err = 0;
3523 Caux1.v = vec_pack( Scons1, Scons2 );
3524 Saux1.v = Scons1;
3525 Saux2.v = Scons2;
3526 for( i=0; i< 8; i++ )
3527 {
3528 SHOunion1.ss = Saux1.e[i];
3529 if (Caux1.e[i] != SHOunion1.sc[1])
3530 err++;
3531 SHOunion1.ss = Saux2.e[i];
3532 if (Caux1.e[i+8] != SHOunion1.sc[1])
3533 err++;
3534 }
3535 if (err)
3536 printf("Function vec_pack [type char] ===> Error\n");
3537 else
3538 printf("Function vec_pack [type char] ===> OK\n");
3539
3540 err = 0;
3541 UCaux1.v = vec_pack( UScons1, UScons2 );
3542 USaux1.v = UScons1;
3543 USaux2.v = UScons2;
3544 for( i=0; i< 8; i++ )
3545 {
3546 SHOunion1.ss = USaux1.e[i];
3547 if (UCaux1.e[i] != SHOunion1.uc[1])
3548 err++;
3549 SHOunion1.ss = USaux2.e[i];
3550 if (UCaux1.e[i+8] != SHOunion1.uc[1])
3551 err++;
3552 }
3553 if (err)
3554 printf("Function vec_pack [type unsigned char] ===> Error\n");
3555 else
3556 printf("Function vec_pack [type unsigned char] ===> OK\n");
3557
3558 err = 0;
3559 Saux1.v = vec_pack( Icons1, Icons2 );
3560 Iaux1.v = Icons1;
3561 Iaux2.v = Icons2;
3562 for( i=0; i< 4; i++ )
3563 {
3564 INTunion1.si = Iaux1.e[i];
3565 if (Saux1.e[i] != INTunion1.ss[1])
3566 err++;
3567 INTunion1.si = Iaux2.e[i];
3568 if (Saux1.e[i+4] != INTunion1.ss[1])
3569 err++;
3570 }
3571 if (err)
3572 printf("Function vec_pack [type short] ===> Error\n");
3573 else
3574 printf("Function vec_pack [type short] ===> OK\n");
3575
3576 err = 0;
3577 USaux1.v = vec_pack( UIcons1, UIcons2 );
3578 UIaux1.v = UIcons1;
3579 UIaux2.v = UIcons2;
3580 for( i=0; i< 4; i++ )
3581 {
3582 INTunion1.ui = UIaux1.e[i];
3583 if (USaux1.e[i] != INTunion1.us[1])
3584 err++;
3585 INTunion1.ui = UIaux2.e[i];
3586 if (USaux1.e[i+4] != INTunion1.us[1])
3587 err++;
3588 }
3589 if (err)
3590 printf("Function vec_pack [type unsigned short] ===> Error\n");
3591 else
3592 printf("Function vec_pack [type unsigned short] ===> OK\n");
3593
3594 /* Function vec_packpx */
3595 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
3596 printf("Function vec_packpx [Vector Pack Pixel] not checked\n");
3597
3598 /* Function vec_packs */
3599 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
3600 err = 0;
3601 Caux1.v = vec_packs( Scons1, Scons2 );
3602 Saux1.v = Scons1;
3603 Saux2.v = Scons2;
3604 for( i=0; i< 8; i++ )
3605 {
3606 if (Saux1.e[i]>127)
3607 Caux = 127;
3608 else if (Saux1.e[i]<(-128))
3609 Caux = -128;
3610 else
3611 Caux = (signed char)Saux1.e[i];
3612 if (Caux1.e[i] != Caux)
3613 err++;
3614 if (Saux2.e[i]>127)
3615 Caux = 127;
3616 else if (Saux2.e[i]<(-128))
3617 Caux = -128;
3618 else
3619 Caux = (signed char)Saux2.e[i];
3620 if (Caux1.e[i+8] != Caux)
3621 err++;
3622 }
3623 if (err)
3624 printf("Function vec_packs [type char] ===> Error\n");
3625 else
3626 printf("Function vec_packs [type char] ===> OK\n");
3627
3628 err = 0;
3629 UCaux1.v = vec_packs( UScons1, UScons2 );
3630 USaux1.v = UScons1;
3631 USaux2.v = UScons2;
3632 for( i=0; i< 8; i++ )
3633 {
3634 if (USaux1.e[i]>255)
3635 UCaux = 255;
3636 else
3637 UCaux = (unsigned char)USaux1.e[i];
3638 if (UCaux1.e[i] != UCaux)
3639 err++;
3640 if (USaux2.e[i]>255)
3641 UCaux = 255;
3642 else
3643 UCaux = (unsigned char)USaux2.e[i];
3644 if (UCaux1.e[i+8] != UCaux)
3645 err++;
3646 }
3647 if (err)
3648 printf("Function vec_packs [type unsigned char] ===> Error\n");
3649 else
3650 printf("Function vec_packs [type unsigned char] ===> OK\n");
3651
3652 err = 0;
3653 Saux1.v = vec_packs( Icons1, Icons2 );
3654 Iaux1.v = Icons1;
3655 Iaux2.v = Icons2;
3656 for( i=0; i< 4; i++ )
3657 {
3658 if (Iaux1.e[i]>32767)
3659 Saux = 32767;
3660 else if (Iaux1.e[i]<(-32768))
3661 Saux = -32768;
3662 else
3663 Saux = (signed char)Iaux1.e[i];
3664 if (Saux1.e[i] != Saux)
3665 err++;
3666 if (Iaux2.e[i]>32767)
3667 Saux = 32767;
3668 else if (Iaux2.e[i]<(-32768))
3669 Saux = -32768;
3670 else
3671 Saux = (signed char)Iaux2.e[i];
3672 if (Saux1.e[i+4] != Saux)
3673 err++;
3674 }
3675 if (err)
3676 printf("Function vec_packs [type short] ===> Error\n");
3677 else
3678 printf("Function vec_packs [type short] ===> OK\n");
3679
3680 err = 0;
3681 USaux1.v = vec_packs( UIcons1, UIcons2 );
3682 UIaux1.v = UIcons1;
3683 UIaux2.v = UIcons2;
3684 for( i=0; i< 4; i++ )
3685 {
3686 if (UIaux1.e[i]>65535)
3687 USaux = 65535;
3688 else
3689 USaux = (unsigned char)UIaux1.e[i];
3690 if (USaux1.e[i] != USaux)
3691 err++;
3692 if (UIaux2.e[i]>65535)
3693 USaux = 65535;
3694 else
3695 USaux = (unsigned char)UIaux2.e[i];
3696 if (USaux1.e[i+4] != USaux)
3697 err++;
3698 }
3699 if (err)
3700 printf("Function vec_packs [type unsigned short] ===> Error\n");
3701 else
3702 printf("Function vec_packs [type unsigned short] ===> OK\n");
3703
3704 /* Function vec_packsu */
3705 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
3706 err = 0;
3707 UCaux1.v = vec_packsu( Scons1, Scons2 );
3708 Saux1.v = Scons1;
3709 Saux2.v = Scons2;
3710 for( i=0; i< 8; i++ )
3711 {
3712 if (Saux1.e[i]>255)
3713 UCaux = 255;
3714 else if (Saux1.e[i]<0)
3715 UCaux = 0;
3716 else
3717 UCaux = (unsigned char)Saux1.e[i];
3718 if (UCaux1.e[i] != UCaux)
3719 err++;
3720 if (Saux2.e[i]>255)
3721 UCaux = 255;
3722 else if (Saux2.e[i]<0)
3723 UCaux = 0;
3724 else
3725 UCaux = (unsigned char)Saux2.e[i];
3726 if (UCaux1.e[i+8] != UCaux)
3727 err++;
3728 }
3729 if (err)
3730 printf("Function vec_packsu [type char] ===> Error\n");
3731 else
3732 printf("Function vec_packsu [type char] ===> OK\n");
3733
3734 err = 0;
3735 UCaux1.v = vec_packsu( UScons1, UScons2 );
3736 USaux1.v = UScons1;
3737 USaux2.v = UScons2;
3738 for( i=0; i< 8; i++ )
3739 {
3740 if (USaux1.e[i]>255)
3741 UCaux = 255;
3742 else
3743 UCaux = (unsigned char)USaux1.e[i];
3744 if (UCaux1.e[i] != UCaux)
3745 err++;
3746 if (USaux2.e[i]>255)
3747 UCaux = 255;
3748 else
3749 UCaux = (unsigned char)USaux2.e[i];
3750 if (UCaux1.e[i+8] != UCaux)
3751 err++;
3752 }
3753 if (err)
3754 printf("Function vec_packsu [type unsigned char] ===> Error\n");
3755 else
3756 printf("Function vec_packsu [type unsigned char] ===> OK\n");
3757
3758 err = 0;
3759 USaux1.v = vec_packsu( Icons1, Icons2 );
3760 Iaux1.v = Icons1;
3761 Iaux2.v = Icons2;
3762 for( i=0; i< 4; i++ )
3763 {
3764 if (Iaux1.e[i]>65535)
3765 USaux = 65535;
3766 else if (Iaux1.e[i]<0)
3767 USaux = 0;
3768 else
3769 USaux = (unsigned short)Iaux1.e[i];
3770 if (USaux1.e[i] != USaux)
3771 err++;
3772 if (Iaux2.e[i]>65535)
3773 USaux = 65535;
3774 else if (Iaux2.e[i]<0)
3775 USaux = 0;
3776 else
3777 USaux = (unsigned short)Iaux2.e[i];
3778 if (USaux1.e[i+4] != USaux)
3779 err++;
3780 }
3781 if (err)
3782 printf("Function vec_packsu [type short] ===> Error\n");
3783 else
3784 printf("Function vec_packsu [type short] ===> OK\n");
3785
3786 err = 0;
3787 USaux1.v = vec_packsu( UIcons1, UIcons2 );
3788 UIaux1.v = UIcons1;
3789 UIaux2.v = UIcons2;
3790 for( i=0; i< 4; i++ )
3791 {
3792 if (UIaux1.e[i]>65535)
3793 USaux = 65535;
3794 else
3795 USaux = (unsigned char)UIaux1.e[i];
3796 if (USaux1.e[i] != USaux)
3797 err++;
3798 if (UIaux2.e[i]>65535)
3799 USaux = 65535;
3800 else
3801 USaux = (unsigned char)UIaux2.e[i];
3802 if (USaux1.e[i+4] != USaux)
3803 err++;
3804 }
3805 if (err)
3806 printf("Function vec_packsu [type unsigned short] ===> Error\n");
3807 else
3808 printf("Function vec_packsu [type unsigned short] ===> OK\n");
3809
3810 /* Function vec_perm */
3811 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
3812 printf("Function vec_perm [Vector Permute] not checked\n");
3813
3814 #if defined TEST_FLOATS
3815 /* Function vec_re */
3816 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
3817 err = 0;
3818 Faux1.v = vec_re( Fcons1 );
3819 Faux2.v = Fcons1;
3820 for( i=0; i< 4; i++ )
3821 {
3822 Faux = 1/Faux2.e[i];
3823 if (Faux!=0.0)
3824 Faux = (Faux - Faux1.e[i])/Faux;
3825 else
3826 Faux = Faux - Faux1.e[i];
3827 if (Faux>(1.0/4096.0))
3828 err++;
3829 }
3830 if (err)
3831 printf("Function vec_re [type float] ===> Error\n");
3832 else
3833 printf("Function vec_re [type float] ===> OK\n");
3834 #endif
3835
3836 /* Function vec_rl */
3837 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
3838 err = 0;
3839 Caux1.v = vec_rl( Ccons1, UCcons3 );
3840 Caux2.v = Ccons1;
3841 UCaux1.v = UCcons3;
3842 for( i=0; i< 16; i++ )
3843 {
3844 b = UCaux1.e[i];
3845 UCvec1 = (unsigned char *)(&Caux2.e[i]);
3846 Caux = ((*UCvec1)>>(8-b)) | ((*UCvec1)<<b);
3847 if (Caux1.e[i] != Caux)
3848 err++;
3849 }
3850 if (err)
3851 printf("Function vec_rl [type char] ===> Error\n");
3852 else
3853 printf("Function vec_rl [type char] ===> OK\n");
3854
3855 err = 0;
3856 UCaux1.v = vec_rl( UCcons1, UCcons3 );
3857 UCaux2.v = UCcons1;
3858 UCaux3.v = UCcons3;
3859 for( i=0; i< 16; i++ )
3860 {
3861 b = UCaux3.e[i];
3862 UCaux = (UCaux2.e[i]>>(8-b)) | (UCaux2.e[i]<<b);
3863 if (UCaux1.e[i] != UCaux)
3864 err++;
3865 }
3866 if (err)
3867 printf("Function vec_rl [type unsigned char] ===> Error\n");
3868 else
3869 printf("Function vec_rl [type unsigned char] ===> OK\n");
3870
3871 err = 0;
3872 Saux1.v = vec_rl( Scons1, UScons3 );
3873 Saux2.v = Scons1;
3874 USaux1.v = UScons3;
3875 for( i=0; i< 8; i++ )
3876 {
3877 b = USaux1.e[i];
3878 USvec1 = (unsigned short *)(&Saux2.e[i]);
3879 Saux = ((*USvec1)>>(16-b)) | ((*USvec1)<<b);
3880 if (Saux1.e[i] != Saux)
3881 err++;
3882 }
3883 if (err)
3884 printf("Function vec_rl [type short] ===> Error\n");
3885 else
3886 printf("Function vec_rl [type short] ===> OK\n");
3887
3888 err = 0;
3889 USaux1.v = vec_rl( UScons1, UScons3 );
3890 USaux2.v = UScons1;
3891 USaux3.v = UScons3;
3892 for( i=0; i< 8; i++ )
3893 {
3894 b = USaux3.e[i];
3895 USaux = (USaux2.e[i]>>(16-b)) | (USaux2.e[i]<<b);
3896 if (USaux1.e[i] != USaux)
3897 err++;
3898 }
3899 if (err)
3900 printf("Function vec_rl [type unsigned short] ===> Error\n");
3901 else
3902 printf("Function vec_rl [type unsigned short] ===> OK\n");
3903
3904 err = 0;
3905 Iaux1.v = vec_rl( Icons1, UIcons3 );
3906 Iaux2.v = Icons1;
3907 UIaux1.v = UIcons3;
3908 for( i=0; i< 4; i++ )
3909 {
3910 b = UIaux1.e[i];
3911 UIvec1 = (unsigned int *)(&Iaux2.e[i]);
3912 Iaux = ((*UIvec1)>>(32-b)) | ((*UIvec1)<<b);
3913 if (Iaux1.e[i] != Iaux)
3914 err++;
3915 }
3916 if (err)
3917 printf("Function vec_rl [type integer] ===> Error\n");
3918 else
3919 printf("Function vec_rl [type integer] ===> OK\n");
3920
3921 err = 0;
3922 UIaux1.v = vec_rl( UIcons1, UIcons3 );
3923 UIaux2.v = UIcons1;
3924 UIaux3.v = UIcons3;
3925 for( i=0; i< 4; i++ )
3926 {
3927 b = UIaux3.e[i];
3928 UIaux = (UIaux2.e[i]>>(32-b)) | (UIaux2.e[i]<<b);
3929 if (UIaux1.e[i] != UIaux)
3930 err++;
3931 }
3932 if (err)
3933 printf("Function vec_rl [type unsigned int] ===> Error\n");
3934 else
3935 printf("Function vec_rl [type unsigned int] ===> OK\n");
3936
3937 #if defined TEST_FLOATS
3938 /* Function vec_round */
3939 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
3940 err = 0;
3941 Faux1.v = vec_round( Fcons1 );
3942 Faux2.v = Fcons1;
3943 for( i=0; i< 4; i++ )
3944 {
3945 Faux = floor(Faux2.e[i]);
3946 if ((Faux2.e[i]-Faux)>0.5)
3947 Faux = Faux + 1.0;
3948 else if (((Faux2.e[i]-Faux)==0.5)&&(Iaux%2))
3949 Faux = Faux + 1.0;
3950 if (Faux1.e[i] != Faux)
3951 err++;
3952 }
3953 if (err)
3954 printf("Function vec_round [type float] ===> Error\n");
3955 else
3956 printf("Function vec_round [type float] ===> OK\n");
3957 #endif
3958
3959 #if defined TEST_FLOATS
3960 /* Function vec_rsqrte */
3961 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
3962 err = 0;
3963 Faux1.v = vec_rsqrte( Fcons1 );
3964 Faux2.v = Fcons1;
3965 for( i=0; i< 4; i++ )
3966 {
3967 Faux = sqrtf(Faux2.e[i]);
3968 if (Faux>0.0)
3969 Faux = (Faux - Faux1.e[i])/Faux;
3970 else if (Faux==0.0)
3971 Faux = Faux - Faux1.e[i];
3972 if (Faux>(1.0/4096.0))
3973 err++;
3974 }
3975 if (err)
3976 printf("Function vec_rsqrte [type float] ===> Error\n");
3977 else
3978 printf("Function vec_rsqrte [type float] ===> OK\n");
3979 #endif
3980
3981 /* Function vec_sel */
3982 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
3983 err = 0;
3984 Caux1.v = vec_sel( Ccons1, Ccons2, UCcons1 );
3985 Caux2.v = Ccons1;
3986 Caux3.v = Ccons2;
3987 UCaux1.v = UCcons1;
3988 for( i=0; i< 16; i++ )
3989 {
3990 Caux = (Caux2.e[i] & (~UCaux1.e[i])) | (Caux3.e[i] & UCaux1.e[i]);
3991 if (Caux1.e[i] != Caux)
3992 err++;
3993 }
3994 if (err)
3995 printf("Function vec_sel [type char] ===> Error\n");
3996 else
3997 printf("Function vec_sel [type char] ===> OK\n");
3998
3999 err = 0;
4000 UCaux1.v = vec_sel( UCcons1, UCcons2, UCcons3 );
4001 UCaux2.v = UCcons1;
4002 UCaux3.v = UCcons2;
4003 UCaux4.v = UCcons3;
4004 for( i=0; i< 16; i++ )
4005 {
4006 UCaux = (UCaux2.e[i] & (~UCaux4.e[i])) | (UCaux3.e[i] & UCaux4.e[i]);
4007 if (UCaux1.e[i] != UCaux)
4008 err++;
4009 }
4010 if (err)
4011 printf("Function vec_sel [type unsigned char] ===> Error\n");
4012 else
4013 printf("Function vec_sel [type unsigned char] ===> OK\n");
4014
4015 err = 0;
4016 Saux1.v = vec_sel( Scons1, Scons2, UScons1 );
4017 Saux2.v = Scons1;
4018 Saux3.v = Scons2;
4019 USaux1.v = UScons1;
4020 for( i=0; i< 8; i++ )
4021 {
4022 Saux = (Saux2.e[i] & (~USaux1.e[i])) | (Saux3.e[i] & USaux1.e[i]);
4023 if (Saux1.e[i] != Saux)
4024 err++;
4025 }
4026 if (err)
4027 printf("Function vec_sel [type short] ===> Error\n");
4028 else
4029 printf("Function vec_sel [type short] ===> OK\n");
4030
4031 err = 0;
4032 USaux1.v = vec_sel( UScons1, UScons2, UScons3 );
4033 USaux2.v = UScons1;
4034 USaux3.v = UScons2;
4035 USaux4.v = UScons3;
4036 for( i=0; i< 8; i++ )
4037 {
4038 USaux = (USaux2.e[i] & (~USaux4.e[i])) | (USaux3.e[i] & USaux4.e[i]);
4039 if (USaux1.e[i] != USaux)
4040 err++;
4041 }
4042 if (err)
4043 printf("Function vec_sel [type unsigned short] ===> Error\n");
4044 else
4045 printf("Function vec_sel [type unsigned short] ===> OK\n");
4046
4047 err = 0;
4048 Iaux1.v = vec_sel( Icons1, Icons2, UIcons1 );
4049 Iaux2.v = Icons1;
4050 Iaux3.v = Icons2;
4051 UIaux1.v = UIcons1;
4052 for( i=0; i< 4; i++ )
4053 {
4054 Iaux = (Iaux2.e[i] & (~UIaux1.e[i])) | (Iaux3.e[i] & UIaux1.e[i]);
4055 if (Iaux1.e[i] != Iaux)
4056 err++;
4057 }
4058 if (err)
4059 printf("Function vec_sel [type integer] ===> Error\n");
4060 else
4061 printf("Function vec_sel [type integer] ===> OK\n");
4062
4063 err = 0;
4064 UIaux1.v = vec_sel( UIcons1, UIcons2, UIcons3 );
4065 UIaux2.v = UIcons1;
4066 UIaux3.v = UIcons2;
4067 UIaux4.v = UIcons3;
4068 for( i=0; i< 4; i++ )
4069 {
4070 UIaux = (UIaux2.e[i] & (~UIaux4.e[i])) | (UIaux3.e[i] & UIaux4.e[i]);
4071 if (UIaux1.e[i] != UIaux)
4072 err++;
4073 }
4074 if (err)
4075 printf("Function vec_sel [type unsigned int] ===> Error\n");
4076 else
4077 printf("Function vec_sel [type unsigned int] ===> OK\n");
4078
4079 #if defined TEST_FLOATS
4080 err = 0;
4081 Faux1.v = vec_sel( Fcons1, Fcons2, UIcons1 );
4082 Faux2.v = Fcons1;
4083 Faux3.v = Fcons2;
4084 UIaux1.v = UIcons1;
4085 for( i=0; i< 4; i++ )
4086 {
4087 Ivec1 = Faux2.i[i];
4088 Ivec2 = Faux3.i[i];
4089 Iaux = (Ivec1 & (~UIaux1.e[i])) | (Ivec2 & UIaux1.e[i]);
4090 Ivec1 = Faux1.i[i];
4091 if ((Ivec1) != Iaux)
4092 err++;
4093 }
4094 if (err)
4095 printf("Function vec_sel [type float] ===> Error\n");
4096 else
4097 printf("Function vec_sel [type float] ===> OK\n");
4098 #endif
4099
4100 /* Function vec_sl */
4101 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
4102 err = 0;
4103 Caux1.v = vec_sl( Ccons1, UCcons3 );
4104 Caux2.v = Ccons1;
4105 UCaux1.v = UCcons3;
4106 for( i=0; i< 16; i++ )
4107 {
4108 b = UCaux1.e[i]%(128/16);
4109 Caux = Caux2.e[i] << b;
4110 if (Caux1.e[i] != Caux)
4111 err++;
4112 }
4113 if (err)
4114 printf("Function vec_sl [type char] ===> Error\n");
4115 else
4116 printf("Function vec_sl [type char] ===> OK\n");
4117
4118 err = 0;
4119 UCaux1.v = vec_sl( UCcons1, UCcons3 );
4120 UCaux2.v = UCcons1;
4121 UCaux3.v = UCcons3;
4122 for( i=0; i< 16; i++ )
4123 {
4124 b = UCaux3.e[i]%(128/16);
4125 UCaux = UCaux2.e[i] << b;
4126 if (UCaux1.e[i] != UCaux)
4127 err++;
4128 }
4129 if (err)
4130 printf("Function vec_sl [type unsigned char] ===> Error\n");
4131 else
4132 printf("Function vec_sl [type unsigned char] ===> OK\n");
4133
4134 err = 0;
4135 Saux1.v = vec_sl( Scons1, UScons3 );
4136 Saux2.v = Scons1;
4137 USaux1.v = UScons3;
4138 for( i=0; i< 8; i++ )
4139 {
4140 b = USaux1.e[i]%(128/8);
4141 Saux = Saux2.e[i] << b;
4142 if (Saux1.e[i] != Saux)
4143 err++;
4144 }
4145 if (err)
4146 printf("Function vec_sl [type short] ===> Error\n");
4147 else
4148 printf("Function vec_sl [type short] ===> OK\n");
4149
4150 err = 0;
4151 USaux1.v = vec_sl( UScons1, UScons3 );
4152 USaux2.v = UScons1;
4153 USaux3.v = UScons3;
4154 for( i=0; i< 8; i++ )
4155 {
4156 b = USaux3.e[i]%(128/8);
4157 USaux = USaux2.e[i] << b;
4158 if (USaux1.e[i] != USaux)
4159 err++;
4160 }
4161 if (err)
4162 printf("Function vec_sl [type unsigned short] ===> Error\n");
4163 else
4164 printf("Function vec_sl [type unsigned short] ===> OK\n");
4165
4166 err = 0;
4167 Iaux1.v = vec_sl( Icons1, UIcons3 );
4168 Iaux2.v = Icons1;
4169 UIaux1.v = UIcons3;
4170 for( i=0; i< 4; i++ )
4171 {
4172 b = UIaux1.e[i]%(128/4);
4173 Iaux = Iaux2.e[i] << b;
4174 if (Iaux1.e[i] != Iaux)
4175 err++;
4176 }
4177 if (err)
4178 printf("Function vec_sl [type int] ===> Error\n");
4179 else
4180 printf("Function vec_sl [type int] ===> OK\n");
4181
4182 err = 0;
4183 UIaux1.v = vec_sl( UIcons1, UIcons3 );
4184 UIaux2.v = UIcons1;
4185 UIaux3.v = UIcons3;
4186 for( i=0; i< 4; i++ )
4187 {
4188 b = UIaux3.e[i]%(128/4);
4189 UIaux = UIaux2.e[i] << b;
4190 if (UIaux1.e[i] != UIaux)
4191 err++;
4192 }
4193 if (err)
4194 printf("Function vec_sl [type unsigned integer] ===> Error\n");
4195 else
4196 printf("Function vec_sl [type unsigned integer] ===> OK\n");
4197
4198 /* Function vec_sld */
4199 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
4200 err = 0;
4201 b = 3;
4202 Caux1.v = vec_sld( Ccons1, Ccons2, 3 );
4203 Caux2.v = Ccons1;
4204 Caux3.v = Ccons2;
4205 for( i=0; i< 16; i++ )
4206 {
4207 if ((i+b)<16)
4208 {
4209 if (Caux1.e[i] != Caux2.e[i+b])
4210 err++;
4211 }
4212 else
4213 {
4214 if (Caux1.e[i] != Caux3.e[i+b-16])
4215 err++;
4216 }
4217 }
4218 if (err)
4219 printf("Function vec_sld [type char] ===> Error\n");
4220 else
4221 printf("Function vec_sld [type char] ===> OK\n");
4222
4223 err = 0;
4224 b = 3;
4225 UCaux1.v = vec_sld( UCcons1, UCcons2, 3 );
4226 UCaux2.v = UCcons1;
4227 UCaux3.v = UCcons2;
4228 for( i=0; i< 16; i++ )
4229 {
4230 if ((i+b)<16)
4231 {
4232 if (UCaux1.e[i] != UCaux2.e[i+b])
4233 err++;
4234 }
4235 else
4236 {
4237 if (UCaux1.e[i] != UCaux3.e[i+b-16])
4238 err++;
4239 }
4240 }
4241 if (err)
4242 printf("Function vec_sld [type unsigned char] ===> Error\n");
4243 else
4244 printf("Function vec_sld [type unsigned char] ===> OK\n");
4245
4246 err = 0;
4247 b = 3;
4248 Saux1.v = vec_sld( Scons1, Scons2, 3 );
4249 Saux2.v = Scons1;
4250 Saux3.v = Scons2;
4251 for( i=0; i< 16; i++ )
4252 {
4253 SHOunion1.ss = Saux1.e[i/2];
4254 if ((i+b)<16)
4255 SHOunion2.ss = Saux2.e[(i+b)/2];
4256 else
4257 SHOunion2.ss = Saux3.e[(i+b-16)/2];
4258 if (SHOunion1.sc[i%2] != SHOunion2.sc[(i+b)%2])
4259 err++;
4260 }
4261 if (err)
4262 printf("Function vec_sld [type short] ===> Error\n");
4263 else
4264 printf("Function vec_sld [type short] ===> OK\n");
4265
4266 err = 0;
4267 b = 3;
4268 USaux1.v = vec_sld( UScons1, UScons2, 3 );
4269 USaux2.v = UScons1;
4270 USaux3.v = UScons2;
4271 for( i=0; i< 16; i++ )
4272 {
4273 SHOunion1.us = USaux1.e[i/2];
4274 if ((i+b)<16)
4275 SHOunion2.us = USaux2.e[(i+b)/2];
4276 else
4277 SHOunion2.us = USaux3.e[(i+b-16)/2];
4278 if (SHOunion1.uc[i%2] != SHOunion2.uc[(i+b)%2])
4279 err++;
4280 }
4281 if (err)
4282 printf("Function vec_sld [type unsigned short] ===> Error\n");
4283 else
4284 printf("Function vec_sld [type unsigned short] ===> OK\n");
4285
4286 err = 0;
4287 b = 3;
4288 Iaux1.v = vec_sld( Icons1, Icons2, 3 );
4289 Iaux2.v = Icons1;
4290 Iaux3.v = Icons2;
4291 for( i=0; i< 16; i++ )
4292 {
4293 INTunion1.si = Iaux1.e[i/4];
4294 if ((i+b)<16)
4295 INTunion2.si = Iaux2.e[(i+b)/4];
4296 else
4297 INTunion2.si = Iaux3.e[(i+b-16)/4];
4298 if (INTunion1.sc[i%4] != INTunion2.sc[(i+b)%4])
4299 err++;
4300 }
4301 if (err)
4302 printf("Function vec_sld [type integer] ===> Error\n");
4303 else
4304 printf("Function vec_sld [type integer] ===> OK\n");
4305
4306 err = 0;
4307 b = 3;
4308 UIaux1.v = vec_sld( UIcons1, UIcons2, 3 );
4309 UIaux2.v = UIcons1;
4310 UIaux3.v = UIcons2;
4311 for( i=0; i< 16; i++ )
4312 {
4313 INTunion1.ui = UIaux1.e[i/4];
4314 if ((i+b)<16)
4315 INTunion2.ui = UIaux2.e[(i+b)/4];
4316 else
4317 INTunion2.ui = UIaux3.e[(i+b-16)/4];
4318 if (INTunion1.uc[i%4] != INTunion2.uc[(i+b)%4])
4319 err++;
4320 }
4321 if (err)
4322 printf("Function vec_sld [type unsigned int] ===> Error\n");
4323 else
4324 printf("Function vec_sld [type unsigned int] ===> OK\n");
4325
4326 #if defined TEST_FLOATS
4327 err = 0;
4328 b = 3;
4329 Faux1.v = vec_sld( Fcons1, Fcons2, 3 );
4330 Faux2.v = Fcons1;
4331 Faux3.v = Fcons2;
4332 for( i=0; i< 16; i++ )
4333 {
4334 INTunion1.f = Faux1.e[i/4];
4335 if ((i+b)<16)
4336 INTunion2.f = Faux2.e[(i+b)/4];
4337 else
4338 INTunion2.f = Faux3.e[(i+b-16)/4];
4339 if (INTunion1.sc[i%4] != INTunion2.sc[(i+b)%4])
4340 err++;
4341 }
4342 if (err)
4343 printf("Function vec_sld [type float] ===> Error\n");
4344 else
4345 printf("Function vec_sld [type float] ===> OK\n");
4346 #endif
4347
4348 /* Function vec_sll */
4349 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
4350 err = 0;
4351 Caux1.v = vec_sll( Ccons1, UCcons2 );
4352 Caux2.v = Ccons1;
4353 UCaux1.v = UCcons2;
4354 b = UCaux1.e[15] & 0x7;
4355 for( i=0; i< 15; i++ )
4356 if ((UCaux1.e[i] & 0x7)!=b)
4357 err++;
4358 if (err)
4359 {
4360 printf("The three low-order bits of all byte elements in b must be the same\n");
4361 printf("otherwise the value into d is undefined\n");
4362 }
4363 else
4364 {
4365 for( i=0; i< 16; i++ )
4366 {
4367 UCvec1 = (unsigned char *)(&Caux2.e[i]);
4368 Caux = UCvec1[0]<<b;
4369 if (i != 15)
4370 Caux = Caux | (UCvec1[1]>>(8-b));
4371 if (Caux != Caux1.e[i])
4372 err++;
4373 }
4374 if (err)
4375 printf("Function vec_sll [type char] ===> Error\n");
4376 else
4377 printf("Function vec_sll [type char] ===> OK\n");
4378 }
4379
4380 UCaux1.v = vec_sll( UCcons1, UCcons2 );
4381 UCaux2.v = UCcons1;
4382 UCaux3.v = UCcons2;
4383 b = UCaux3.e[15] & 0x7;
4384 for( i=0; i< 15; i++ )
4385 if ((UCaux3.e[i] & 0x7)!=b)
4386 err++;
4387 if (err)
4388 {
4389 printf("The three low-order bits of all byte elements in b must be the same\n");
4390 printf("otherwise the value into d is undefined\n");
4391 }
4392 else
4393 {
4394 for( i=0; i< 16; i++ )
4395 {
4396 UCvec1 = (unsigned char *)(&UCaux2.e[i]);
4397 UCaux = UCvec1[0]<<b;
4398 if (i != 15)
4399 UCaux = UCaux | (UCvec1[1]>>(8-b));
4400 if (UCaux != UCaux1.e[i])
4401 err++;
4402 }
4403 if (err)
4404 printf("Function vec_sll [type unsigned char] ===> Error\n");
4405 else
4406 printf("Function vec_sll [type unsigned char] ===> OK\n");
4407 }
4408
4409 err = 0;
4410 Saux1.v = vec_sll( Scons1, UCcons2 );
4411 Saux2.v = Scons1;
4412 UCaux1.v = UCcons2;
4413 b = UCaux1.e[15] & 0x7;
4414 for( i=0; i< 15; i++ )
4415 if ((UCaux1.e[i] & 0x7)!=b)
4416 err++;
4417 if (err)
4418 {
4419 printf("The three low-order bits of all byte elements in b must be the same\n");
4420 printf("otherwise the value into d is undefined\n");
4421 }
4422 else
4423 {
4424 for( i=0; i< 8; i++ )
4425 {
4426 USvec1 = (unsigned short *)(&Saux2.e[i]);
4427 Saux = USvec1[0]<<b;
4428 if (i != 7)
4429 Saux = Saux | (USvec1[1]>>(16-b));
4430 if (Saux != Saux1.e[i])
4431 err++;
4432 }
4433 if (err)
4434 printf("Function vec_sll [type short] ===> Error\n");
4435 else
4436 printf("Function vec_sll [type short] ===> OK\n");
4437 }
4438
4439 USaux1.v = vec_sll( UScons1, UCcons2 );
4440 USaux2.v = UScons1;
4441 UCaux1.v = UCcons2;
4442 b = UCaux1.e[15] & 0x7;
4443 for( i=0; i< 15; i++ )
4444 if ((UCaux1.e[i] & 0x7)!=b)
4445 err++;
4446 if (err)
4447 {
4448 printf("The three low-order bits of all byte elements in b must be the same\n");
4449 printf("otherwise the value into d is undefined\n");
4450 }
4451 else
4452 {
4453 for( i=0; i< 8; i++ )
4454 {
4455 USvec1 = (unsigned short *)(&USaux2.e[i]);
4456 USaux = USvec1[0]<<b;
4457 if (i != 7)
4458 USaux = USaux | (USvec1[1]>>(16-b));
4459 if (USaux != USaux1.e[i])
4460 err++;
4461 }
4462 if (err)
4463 printf("Function vec_sll [type unsigned char] ===> Error\n");
4464 else
4465 printf("Function vec_sll [type unsigned char] ===> OK\n");
4466 }
4467
4468 err = 0;
4469 Iaux1.v = vec_sll( Icons1, UCcons2 );
4470 Iaux2.v = Icons1;
4471 UCaux1.v = UCcons2;
4472 b = UCaux1.e[15] & 0x7;
4473 for( i=0; i< 15; i++ )
4474 if ((UCaux1.e[i] & 0x7)!=b)
4475 err++;
4476 if (err)
4477 {
4478 printf("The three low-order bits of all byte elements in b must be the same\n");
4479 printf("otherwise the value into d is undefined\n");
4480 }
4481 else
4482 {
4483 for( i=0; i< 4; i++ )
4484 {
4485 UIvec1 = (unsigned int *)(&Iaux2.e[i]);
4486 Iaux = UIvec1[0]<<b;
4487 if (i != 3)
4488 Iaux = Iaux | (UIvec1[1]>>(32-b));
4489 if (Iaux != Iaux1.e[i])
4490 err++;
4491 }
4492 if (err)
4493 printf("Function vec_sll [type integer] ===> Error\n");
4494 else
4495 printf("Function vec_sll [type integer] ===> OK\n");
4496 }
4497
4498 UIaux1.v = vec_sll( UIcons1, UCcons2 );
4499 UIaux2.v = UIcons1;
4500 UCaux1.v = UCcons2;
4501 b = UCaux1.e[15] & 0x7;
4502 for( i=0; i< 15; i++ )
4503 if ((UCaux1.e[i] & 0x7)!=b)
4504 err++;
4505 if (err)
4506 {
4507 printf("The three low-order bits of all byte elements in b must be the same\n");
4508 printf("otherwise the value into d is undefined\n");
4509 }
4510 else
4511 {
4512 for( i=0; i< 4; i++ )
4513 {
4514 UIvec1 = (unsigned int *)(&UIaux2.e[i]);
4515 UIaux = UIvec1[0]<<b;
4516 if (i != 3)
4517 UIaux = UIaux | (UIvec1[1]>>(32-b));
4518 if (UIaux != UIaux1.e[i])
4519 err++;
4520 }
4521 if (err)
4522 printf("Function vec_sll [type unsigned int] ===> Error\n");
4523 else
4524 printf("Function vec_sll [type unsigned int] ===> OK\n");
4525 }
4526
4527 /* Function vec_slo */
4528 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
4529 err = 0;
4530 Caux1.v = vec_slo( Ccons3, Ccons1 );
4531 Caux2.v = Ccons3;
4532 Caux3.v = Ccons1;
4533 b = (Caux3.e[15] & 0x78) >> 3;
4534 for( i=0; i< 16; i++ )
4535 {
4536 if ((i+b)<16)
4537 {
4538 if (Caux1.e[i] != Caux2.e[i+b])
4539 err++;
4540 }
4541 else
4542 {
4543 if (Caux1.e[i] != 0)
4544 err++;
4545 }
4546 }
4547 if (err)
4548 printf("Function vec_slo [type char] ===> Error\n");
4549 else
4550 printf("Function vec_slo [type char] ===> OK\n");
4551
4552 err = 0;
4553 UCaux1.v = vec_slo( UCcons3, UCcons1 );
4554 UCaux2.v = UCcons3;
4555 UCaux3.v = UCcons1;
4556 b = (UCaux3.e[15] & 0x78) >> 3;
4557 for( i=0; i< 16; i++ )
4558 {
4559 if ((i+b)<16)
4560 {
4561 if (UCaux1.e[i] != UCaux2.e[i+b])
4562 err++;
4563 }
4564 else
4565 {
4566 if (UCaux1.e[i] != 0)
4567 err++;
4568 }
4569 }
4570 if (err)
4571 printf("Function vec_slo [type unsigned char] ===> Error\n");
4572 else
4573 printf("Function vec_slo [type unsigned char] ===> OK\n");
4574
4575 err = 0;
4576 Saux1.v = vec_slo( Scons3, UCcons1 );
4577 Saux2.v = Scons3;
4578 UCaux3.v = UCcons1;
4579 b = (UCaux3.e[15] & 0x78) >> 3;
4580 for( i=0; i< 16; i++ )
4581 {
4582 SHOunion1.ss = Saux1.e[i/2];
4583 if ((i+b)<16)
4584 SHOunion2.ss = Saux2.e[(i+b)/2];
4585 else
4586 SHOunion2.ss = 0;
4587 if (SHOunion1.sc[i%2] != SHOunion2.sc[(i+b)%2])
4588 err++;
4589 }
4590 if (err)
4591 printf("Function vec_slo [type short] ===> Error\n");
4592 else
4593 printf("Function vec_slo [type short] ===> OK\n");
4594
4595 err = 0;
4596 USaux1.v = vec_slo( UScons3, UCcons1 );
4597 USaux2.v = UScons3;
4598 UCaux3.v = UCcons1;
4599 b = (UCaux3.e[15] & 0x78) >> 3;
4600 for( i=0; i< 16; i++ )
4601 {
4602 SHOunion1.us = USaux1.e[i/2];
4603 if ((i+b)<16)
4604 SHOunion2.us = USaux2.e[(i+b)/2];
4605 else
4606 SHOunion2.us = 0;
4607 if (SHOunion1.uc[i%2] != SHOunion2.uc[(i+b)%2])
4608 err++;
4609 }
4610 if (err)
4611 printf("Function vec_slo [type unsigned short] ===> Error\n");
4612 else
4613 printf("Function vec_slo [type unsigned short] ===> OK\n");
4614
4615 err = 0;
4616 Iaux1.v = vec_slo( Icons3, UCcons1 );
4617 Iaux2.v = Icons3;
4618 UCaux3.v = UCcons1;
4619 b = (UCaux3.e[15] & 0x78) >> 3;
4620 for( i=0; i< 16; i++ )
4621 {
4622 INTunion1.si = Iaux1.e[i/4];
4623 if ((i+b)<16)
4624 INTunion2.si = Iaux2.e[(i+b)/4];
4625 else
4626 INTunion2.si = 0;
4627 if (INTunion1.sc[i%4] != INTunion2.sc[(i+b)%4])
4628 err++;
4629 }
4630 if (err)
4631 printf("Function vec_slo [type integer] ===> Error\n");
4632 else
4633 printf("Function vec_slo [type integer] ===> OK\n");
4634
4635 err = 0;
4636 UIaux1.v = vec_slo( UIcons3, UCcons1 );
4637 UIaux2.v = UIcons3;
4638 UCaux3.v = UCcons1;
4639 b = (UCaux3.e[15] & 0x78) >> 3;
4640 for( i=0; i< 16; i++ )
4641 {
4642 INTunion1.ui = UIaux1.e[i/4];
4643 if ((i+b)<16)
4644 INTunion2.ui = UIaux2.e[(i+b)/4];
4645 else
4646 INTunion2.ui = 0;
4647 if (INTunion1.uc[i%4] != INTunion2.uc[(i+b)%4])
4648 err++;
4649 }
4650 if (err)
4651 printf("Function vec_slo [type unsigned int] ===> Error\n");
4652 else
4653 printf("Function vec_slo [type unsigned int] ===> OK\n");
4654
4655 #if defined TEST_FLOATS
4656 err = 0;
4657 Faux1.v = vec_slo( Fcons3, UCcons1 );
4658 Faux2.v = Fcons3;
4659 UCaux3.v = UCcons1;
4660 b = (UCaux3.e[15] & 0x78) >> 3;
4661 for( i=0; i< 16; i++ )
4662 {
4663 INTunion1.f = Faux1.e[i/4];
4664 if ((i+b)<16)
4665 INTunion2.f = Faux2.e[(i+b)/4];
4666 else
4667 INTunion2.si = 0;
4668 if (INTunion1.sc[i%4] != INTunion2.sc[(i+b)%4])
4669 err++;
4670 }
4671 if (err)
4672 printf("Function vec_slo [type float] ===> Error\n");
4673 else
4674 printf("Function vec_slo [type float] ===> OK\n");
4675 #endif
4676
4677 /* Function vec_splat */
4678 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
4679 err = 0;
4680 b = 3;
4681 Caux1.v = vec_splat( Ccons1, 3 );
4682 Caux2.v = Ccons1;
4683 for( i=0; i< 16; i++ )
4684 if (Caux1.e[i] != Caux2.e[b])
4685 err++;
4686 if (err)
4687 printf("Function vec_splat [type char] ===> Error\n");
4688 else
4689 printf("Function vec_splat [type char] ===> OK\n");
4690
4691 err = 0;
4692 b = 3;
4693 UCaux1.v = vec_splat( UCcons1, 3 );
4694 UCaux2.v = UCcons1;
4695 for( i=0; i< 16; i++ )
4696 if (UCaux1.e[i] != UCaux2.e[b])
4697 err++;
4698 if (err)
4699 printf("Function vec_splat [type unsigned char] ===> Error\n");
4700 else
4701 printf("Function vec_splat [type unsigned char] ===> OK\n");
4702
4703 err = 0;
4704 b = 3;
4705 Saux1.v = vec_splat( Scons1, 3 );
4706 Saux2.v = Scons1;
4707 for( i=0; i< 8; i++ )
4708 if (Saux1.e[i] != Saux2.e[b])
4709 err++;
4710 if (err)
4711 printf("Function vec_splat [type short] ===> Error\n");
4712 else
4713 printf("Function vec_splat [type short] ===> OK\n");
4714
4715 err = 0;
4716 b = 3;
4717 USaux1.v = vec_splat( UScons1, 3 );
4718 USaux2.v = UScons1;
4719 for( i=0; i< 8; i++ )
4720 if (USaux1.e[i] != USaux2.e[b])
4721 err++;
4722 if (err)
4723 printf("Function vec_splat [type unsigned short] ===> Error\n");
4724 else
4725 printf("Function vec_splat [type unsigned short] ===> OK\n");
4726
4727 err = 0;
4728 b = 3;
4729 Iaux1.v = vec_splat( Icons1, 3 );
4730 Iaux2.v = Icons1;
4731 for( i=0; i< 4; i++ )
4732 if (Iaux1.e[i] != Iaux2.e[b])
4733 err++;
4734 if (err)
4735 printf("Function vec_splat [type integer] ===> Error\n");
4736 else
4737 printf("Function vec_splat [type integer] ===> OK\n");
4738
4739 err = 0;
4740 b = 3;
4741 UIaux1.v = vec_splat( UIcons1, 3 );
4742 UIaux2.v = UIcons1;
4743 for( i=0; i< 4; i++ )
4744 if (UIaux1.e[i] != UIaux2.e[b])
4745 err++;
4746 if (err)
4747 printf("Function vec_splat [type unsigned int] ===> Error\n");
4748 else
4749 printf("Function vec_splat [type unsigned int] ===> OK\n");
4750
4751 #if defined TEST_FLOATS
4752 err = 0;
4753 b = 3;
4754 Faux1.v = vec_splat( Fcons1, 3 );
4755 Faux2.v = Fcons1;
4756 for( i=0; i< 4; i++ )
4757 if (Faux1.e[i] != Faux2.e[b])
4758 err++;
4759 if (err)
4760 printf("Function vec_splat [type float] ===> Error\n");
4761 else
4762 printf("Function vec_splat [type float] ===> OK\n");
4763 #endif
4764
4765 /* Function vec_splat_s8 */
4766 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
4767 err = 0;
4768 Caux = 15;
4769 Caux1.v = vec_splat_s8( 15 );
4770 for( i=0; i< 16; i++ )
4771 if (Caux1.e[i] != Caux)
4772 err++;
4773 if (err)
4774 printf("Function vec_splat_s8 [type char] ===> Error\n");
4775 else
4776 printf("Function vec_splat_s8 [type char] ===> OK\n");
4777
4778 /* Function vec_splat_s16 */
4779 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
4780 err = 0;
4781 Saux = 15;
4782 Saux1.v = vec_splat_s16( 15 );
4783 for( i=0; i< 8; i++ )
4784 if (Saux1.e[i] != Saux)
4785 err++;
4786 if (err)
4787 printf("Function vec_splat_s16 [type short] ===> Error\n");
4788 else
4789 printf("Function vec_splat_s16 [type short] ===> OK\n");
4790
4791 /* Function vec_splat_s32 */
4792 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
4793 err = 0;
4794 Iaux = 15;
4795 Iaux1.v = vec_splat_s32( 15 );
4796 for( i=0; i< 4; i++ )
4797 if (Iaux1.e[i] != Iaux)
4798 err++;
4799 if (err)
4800 printf("Function vec_splat_s32 [type integer] ===> Error\n");
4801 else
4802 printf("Function vec_splat_s32 [type integer] ===> OK\n");
4803
4804 /* Function vec_splat_u8 */
4805 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
4806 err = 0;
4807 UCaux = 15;
4808 UCaux1.v = vec_splat_u8( 15 );
4809 for( i=0; i< 16; i++ )
4810 if (UCaux1.e[i] != UCaux)
4811 err++;
4812 if (err)
4813 printf("Function vec_splat_u8 [type unsig. char] ===> Error\n");
4814 else
4815 printf("Function vec_splat_u8 [type unsig. char] ===> OK\n");
4816
4817 /* Function vec_splat_u16 */
4818 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
4819 err = 0;
4820 USaux = 15;
4821 USaux1.v = vec_splat_u16( 15 );
4822 for( i=0; i< 8; i++ )
4823 if (USaux1.e[i] != Saux)
4824 err++;
4825 if (err)
4826 printf("Function vec_splat_u16 [type unsg. short] ===> Error\n");
4827 else
4828 printf("Function vec_splat_u16 [type unsg. short] ===> OK\n");
4829
4830 /* Function vec_splat_u32 */
4831 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
4832 err = 0;
4833 UIaux = 15;
4834 UIaux1.v = vec_splat_u32( 15 );
4835 for( i=0; i< 4; i++ )
4836 if (UIaux1.e[i] != UIaux)
4837 err++;
4838 if (err)
4839 printf("Function vec_splat_u32 [type unsig. int] ===> Error\n");
4840 else
4841 printf("Function vec_splat_u32 [type unsig. int] ===> OK\n");
4842
4843 /* Function vec_sr */
4844 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
4845 err = 0;
4846 Caux1.v = vec_sr( Ccons3, UCcons3 );
4847 Caux2.v = Ccons3;
4848 UCaux3.v = UCcons3;
4849 for( i=0; i< 16; i++ )
4850 {
4851 SHOunion1.sc[0] = Caux2.e[i];
4852 SHOunion1.uc[0] = SHOunion1.uc[0] >> (UCaux3.e[i]%8);
4853 if (Caux1.e[i] != SHOunion1.sc[0])
4854 err++;
4855 }
4856 if (err)
4857 printf("Function vec_sr [type char] ===> Error\n");
4858 else
4859 printf("Function vec_sr [type char] ===> OK\n");
4860
4861 err = 0;
4862 UCaux1.v = vec_sr( UCcons1, UCcons3 );
4863 UCaux2.v = UCcons1;
4864 UCaux3.v = UCcons3;
4865 for( i=0; i< 16; i++ )
4866 {
4867 UCaux = UCaux2.e[i] >> (UCaux3.e[i]%8);
4868 if (UCaux1.e[i] != UCaux)
4869 err++;
4870 }
4871 if (err)
4872 printf("Function vec_sr [type unsigned char] ===> Error\n");
4873 else
4874 printf("Function vec_sr [type unsigned char] ===> OK\n");
4875
4876 err = 0;
4877 Saux1.v = vec_sr( Scons3, UScons3 );
4878 Saux2.v = Scons3;
4879 USaux3.v = UScons3;
4880 for( i=0; i< 8; i++ )
4881 {
4882 SHOunion1.ss = Saux2.e[i];
4883 SHOunion1.us = SHOunion1.us >> (USaux3.e[i]%16);
4884 if (Saux1.e[i] != SHOunion1.ss)
4885 err++;
4886 }
4887 if (err)
4888 printf("Function vec_sr [type short] ===> Error\n");
4889 else
4890 printf("Function vec_sr [type short] ===> OK\n");
4891
4892 err = 0;
4893 USaux1.v = vec_sr( UScons1, UScons3 );
4894 USaux2.v = UScons1;
4895 USaux3.v = UScons3;
4896 for( i=0; i< 8; i++ )
4897 {
4898 USaux = USaux2.e[i] >> (USaux3.e[i]%16);
4899 if (USaux1.e[i] != USaux)
4900 err++;
4901 }
4902 if (err)
4903 printf("Function vec_sr [type unsigned short] ===> Error\n");
4904 else
4905 printf("Function vec_sr [type unsigned short] ===> OK\n");
4906
4907 err = 0;
4908 Iaux1.v = vec_sr( Icons3, UIcons3 );
4909 Iaux2.v = Icons3;
4910 UIaux3.v = UIcons3;
4911 for( i=0; i< 4; i++ )
4912 {
4913 INTunion1.si = Iaux2.e[i];
4914 INTunion1.ui = INTunion1.ui >> (UIaux3.e[i]%32);
4915 if (Iaux1.e[i] != INTunion1.si)
4916 err++;
4917 }
4918 if (err)
4919 printf("Function vec_sr [type integer] ===> Error\n");
4920 else
4921 printf("Function vec_sr [type integer] ===> OK\n");
4922
4923 err = 0;
4924 UIaux1.v = vec_sr( UIcons1, UIcons3 );
4925 UIaux2.v = UIcons1;
4926 UIaux3.v = UIcons3;
4927 for( i=0; i< 4; i++ )
4928 {
4929 UIaux = UIaux2.e[i] >> (UIaux3.e[i]%32);
4930 if (UIaux1.e[i] != UIaux)
4931 err++;
4932 }
4933 if (err)
4934 printf("Function vec_sr [type unsigned int] ===> Error\n");
4935 else
4936 printf("Function vec_sr [type unsigned int] ===> OK\n");
4937
4938 /* Function vec_sra */
4939 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
4940 err = 0;
4941 Caux1.v = vec_sra( Ccons3, UCcons3 );
4942 Caux2.v = Ccons3;
4943 UCaux3.v = UCcons3;
4944 for( i=0; i< 16; i++ )
4945 {
4946 Caux = Caux2.e[i] >> (UCaux3.e[i]%8);
4947 if (Caux1.e[i] != Caux)
4948 err++;
4949 }
4950 if (err)
4951 printf("Function vec_sra [type char] ===> Error\n");
4952 else
4953 printf("Function vec_sra [type char] ===> OK\n");
4954
4955 err = 0;
4956 UCaux1.v = vec_sra( UCcons1, UCcons3 );
4957 UCaux2.v = UCcons1;
4958 UCaux3.v = UCcons3;
4959 for( i=0; i< 16; i++ )
4960 {
4961 INTunion1.uc[0] = UCaux2.e[i];
4962 INTunion1.sc[0] = INTunion1.sc[0] >> (UCaux3.e[i]%8);
4963 if (UCaux1.e[i] != INTunion1.uc[0])
4964 err++;
4965 }
4966 if (err)
4967 printf("Function vec_sra [type unsigned char] ===> Error\n");
4968 else
4969 printf("Function vec_sra [type unsigned char] ===> OK\n");
4970
4971 err = 0;
4972 Saux1.v = vec_sra( Scons3, UScons3 );
4973 Saux2.v = Scons3;
4974 USaux3.v = UScons3;
4975 for( i=0; i< 8; i++ )
4976 {
4977 Saux = Saux2.e[i] >> (USaux3.e[i]%16);
4978 if (Saux1.e[i] != Saux)
4979 err++;
4980 }
4981 if (err)
4982 printf("Function vec_sra [type short] ===> Error\n");
4983 else
4984 printf("Function vec_sra [type short] ===> OK\n");
4985
4986 err = 0;
4987 USaux1.v = vec_sra( UScons1, UScons3 );
4988 USaux2.v = UScons1;
4989 USaux3.v = UScons3;
4990 for( i=0; i< 8; i++ )
4991 {
4992 INTunion1.us[0] = USaux2.e[i];
4993 INTunion1.ss[0] = INTunion1.ss[0] >> (USaux3.e[i]%16);
4994 if (USaux1.e[i] != INTunion1.us[0])
4995 err++;
4996 }
4997 if (err)
4998 printf("Function vec_sra [type unsigned short] ===> Error\n");
4999 else
5000 printf("Function vec_sra [type unsigned short] ===> OK\n");
5001
5002 err = 0;
5003 Iaux1.v = vec_sra( Icons3, UIcons3 );
5004 Iaux2.v = Icons3;
5005 UIaux3.v = UIcons3;
5006 for( i=0; i< 4; i++ )
5007 {
5008 Iaux = Iaux2.e[i] >> (UIaux3.e[i]%32);
5009 if (Iaux1.e[i] != Iaux)
5010 err++;
5011 }
5012 if (err)
5013 printf("Function vec_sra [type integer] ===> Error\n");
5014 else
5015 printf("Function vec_sra [type integer] ===> OK\n");
5016
5017 err = 0;
5018 UIaux1.v = vec_sra( UIcons1, UIcons3 );
5019 UIaux2.v = UIcons1;
5020 UIaux3.v = UIcons3;
5021 for( i=0; i< 4; i++ )
5022 {
5023 INTunion1.ui = UIaux2.e[i];
5024 INTunion1.si = INTunion1.si >> (UIaux3.e[i]%32);
5025 if (UIaux1.e[i] != INTunion1.ui)
5026 err++;
5027 }
5028 if (err)
5029 printf("Function vec_sra [type unsigned int] ===> Error\n");
5030 else
5031 printf("Function vec_sra [type unsigned int] ===> OK\n");
5032
5033 /* Function vec_srl */
5034 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
5035 err = 0;
5036 Caux1.v = vec_srl( Ccons1, UCcons2 );
5037 Caux2.v = Ccons1;
5038 UCaux3.v = UCcons2;
5039 b = UCaux3.e[15] & 0x7;
5040 for( i=0; i< 15; i++ )
5041 if ((UCaux3.e[i] & 0x7)!=b)
5042 err++;
5043 if (err)
5044 {
5045 printf("The three low-order bits of all byte elements in b must be the same\n");
5046 printf("otherwise the value into d is undefined\n");
5047 }
5048 else
5049 {
5050 Caux = 0;
5051 for( i=0; i< 16; i++ )
5052 {
5053 INTunion1.sc[0] = Caux2.e[i];
5054 Caux = Caux | (INTunion1.uc[0]>>b);
5055 if (Caux != Caux1.e[i])
5056 err++;
5057 Caux = INTunion1.uc[0]<<(8-b);
5058 }
5059 if (err)
5060 printf("Function vec_srl [type char] ===> Error\n");
5061 else
5062 printf("Function vec_srl [type char] ===> OK\n");
5063 }
5064
5065 err = 0;
5066 UCaux1.v = vec_srl( UCcons1, UCcons2 );
5067 UCaux2.v = UCcons1;
5068 UCaux3.v = UCcons2;
5069 b = UCaux3.e[15] & 0x7;
5070 for( i=0; i< 15; i++ )
5071 if ((UCaux3.e[i] & 0x7)!=b)
5072 err++;
5073 if (err)
5074 {
5075 printf("The three low-order bits of all byte elements in b must be the same\n");
5076 printf("otherwise the value into d is undefined\n");
5077 }
5078 else
5079 {
5080 UCaux = 0;
5081 for( i=0; i< 16; i++ )
5082 {
5083 UCaux = UCaux | (UCaux2.e[i]>>b);
5084 if (UCaux != UCaux1.e[i])
5085 err++;
5086 UCaux = UCaux2.e[i]<<(8-b);
5087 }
5088 if (err)
5089 printf("Function vec_srl [type unsigned char] ===> Error\n");
5090 else
5091 printf("Function vec_srl [type unsigned char] ===> OK\n");
5092 }
5093
5094 err = 0;
5095 Saux1.v = vec_srl( Scons1, UCcons2 );
5096 Saux2.v = Scons1;
5097 UCaux3.v = UCcons2;
5098 b = UCaux3.e[15] & 0x7;
5099 for( i=0; i< 15; i++ )
5100 if ((UCaux3.e[i] & 0x7)!=b)
5101 err++;
5102 if (err)
5103 {
5104 printf("The three low-order bits of all byte elements in b must be the same\n");
5105 printf("otherwise the value into d is undefined\n");
5106 }
5107 else
5108 {
5109 Saux = 0;
5110 for( i=0; i< 8; i++ )
5111 {
5112 INTunion1.ss[0] = Saux2.e[i];
5113 Saux = Saux | (INTunion1.us[0]>>b);
5114 if (Saux != Saux1.e[i])
5115 err++;
5116 Saux = INTunion1.us[0]<<(16-b);
5117 }
5118 if (err)
5119 printf("Function vec_srl [type short] ===> Error\n");
5120 else
5121 printf("Function vec_srl [type short] ===> OK\n");
5122 }
5123
5124 err = 0;
5125 USaux1.v = vec_srl( UScons1, UCcons2 );
5126 USaux2.v = UScons1;
5127 UCaux3.v = UCcons2;
5128 b = UCaux3.e[15] & 0x7;
5129 for( i=0; i< 15; i++ )
5130 if ((UCaux3.e[i] & 0x7)!=b)
5131 err++;
5132 if (err)
5133 {
5134 printf("The three low-order bits of all byte elements in b must be the same\n");
5135 printf("otherwise the value into d is undefined\n");
5136 }
5137 else
5138 {
5139 USaux = 0;
5140 for( i=0; i< 8; i++ )
5141 {
5142 USaux = USaux | (USaux2.e[i]>>b);
5143 if (USaux != USaux1.e[i])
5144 err++;
5145 USaux = USaux2.e[i]<<(16-b);
5146 }
5147 if (err)
5148 printf("Function vec_srl [type unsigned short] ===> Error\n");
5149 else
5150 printf("Function vec_srl [type unsigned short] ===> OK\n");
5151 }
5152
5153 err = 0;
5154 Iaux1.v = vec_srl( Icons1, UCcons2 );
5155 Iaux2.v = Icons1;
5156 UCaux3.v = UCcons2;
5157 b = UCaux3.e[15] & 0x7;
5158 for( i=0; i< 15; i++ )
5159 if ((UCaux3.e[i] & 0x7)!=b)
5160 err++;
5161 if (err)
5162 {
5163 printf("The three low-order bits of all byte elements in b must be the same\n");
5164 printf("otherwise the value into d is undefined\n");
5165 }
5166 else
5167 {
5168 Iaux = 0;
5169 for( i=0; i< 4; i++ )
5170 {
5171 INTunion1.si = Iaux2.e[i];
5172 Iaux = Iaux | (INTunion1.ui>>b);
5173 if (Iaux != Iaux1.e[i])
5174 err++;
5175 Iaux = INTunion1.ui<<(32-b);
5176 }
5177 if (err)
5178 printf("Function vec_srl [type integer] ===> Error\n");
5179 else
5180 printf("Function vec_srl [type integer] ===> OK\n");
5181 }
5182
5183 err = 0;
5184 UIaux1.v = vec_srl( UIcons1, UCcons2 );
5185 UIaux2.v = UIcons1;
5186 UCaux3.v = UCcons2;
5187 b = UCaux3.e[15] & 0x7;
5188 for( i=0; i< 15; i++ )
5189 if ((UCaux3.e[i] & 0x7)!=b)
5190 err++;
5191 if (err)
5192 {
5193 printf("The three low-order bits of all byte elements in b must be the same\n");
5194 printf("otherwise the value into d is undefined\n");
5195 }
5196 else
5197 {
5198 UIaux = 0;
5199 for( i=0; i< 4; i++ )
5200 {
5201 UIaux = UIaux | (UIaux2.e[i]>>b);
5202 if (UIaux != UIaux1.e[i])
5203 err++;
5204 UIaux = UIaux2.e[i]<<(32-b);
5205 }
5206 if (err)
5207 printf("Function vec_srl [type unsigned int] ===> Error\n");
5208 else
5209 printf("Function vec_srl [type unsigned int] ===> OK\n");
5210 }
5211
5212 /* Function vec_sro */
5213 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
5214 err = 0;
5215 Caux1.v = vec_sro( Ccons3, Ccons1 );
5216 Caux2.v = Ccons3;
5217 Caux3.v = Ccons1;
5218 b = (Caux3.e[15] & 0x78) >>3;
5219 for( i=0; i< 16; i++ )
5220 {
5221 if ((i-b)>=0)
5222 {
5223 if (Caux1.e[i] != Caux2.e[i-b])
5224 err++;
5225 }
5226 else
5227 {
5228 if (Caux1.e[i] != 0)
5229 err++;
5230 }
5231 }
5232 if (err)
5233 printf("Function vec_sro [type char] ===> Error\n");
5234 else
5235 printf("Function vec_sro [type char] ===> OK\n");
5236
5237 err = 0;
5238 UCaux1.v = vec_sro( UCcons3, UCcons1 );
5239 UCaux2.v = UCcons3;
5240 UCaux3.v = UCcons1;
5241 b = (UCaux3.e[15] & 0x78) >>3;
5242 for( i=0; i< 16; i++ )
5243 {
5244 if ((i-b)>=0)
5245 {
5246 if (UCaux1.e[i] != UCaux2.e[i-b])
5247 err++;
5248 }
5249 else
5250 {
5251 if (UCaux1.e[i] != 0)
5252 err++;
5253 }
5254 }
5255 if (err)
5256 printf("Function vec_sro [type unsigned char] ===> Error\n");
5257 else
5258 printf("Function vec_sro [type unsigned char] ===> OK\n");
5259
5260 err = 0;
5261 Saux1.v = vec_sro( Scons3, Ccons1 );
5262 Saux2.v = Scons3;
5263 Caux3.v = Ccons1;
5264 b = (Caux3.e[15] & 0x78) >>3;
5265 for( i=0; i< 16; i++ )
5266 {
5267 SHOunion1.ss = Saux1.e[i/2];
5268 if ((i-b)>=0)
5269 {
5270 SHOunion2.ss = Saux2.e[(i-b)/2];
5271 if (SHOunion1.sc[i%2] != SHOunion2.sc[(i-b)%2])
5272 err++;
5273 }
5274 else
5275 {
5276 if (SHOunion1.sc[i%2] != 0)
5277 err++;
5278 }
5279 }
5280 if (err)
5281 printf("Function vec_sro [type short] ===> Error\n");
5282 else
5283 printf("Function vec_sro [type short] ===> OK\n");
5284
5285 err = 0;
5286 USaux1.v = vec_sro( UScons3, UCcons1 );
5287 USaux2.v = UScons3;
5288 UCaux3.v = UCcons1;
5289 b = (UCaux3.e[15] & 0x78) >>3;
5290 for( i=0; i< 16; i++ )
5291 {
5292 SHOunion1.us = USaux1.e[i/2];
5293 if ((i-b)>=0)
5294 {
5295 SHOunion2.us = USaux2.e[(i-b)/2];
5296 if (SHOunion1.uc[i%2] != SHOunion2.uc[(i-b)%2])
5297 err++;
5298 }
5299 else
5300 {
5301 if (SHOunion1.uc[i%2] != 0)
5302 err++;
5303 }
5304 }
5305 if (err)
5306 printf("Function vec_sro [type unsigned short] ===> Error\n");
5307 else
5308 printf("Function vec_sro [type unsigned short] ===> OK\n");
5309
5310 err = 0;
5311 Iaux1.v = vec_sro( Icons3, Ccons1 );
5312 Iaux2.v = Icons3;
5313 Caux3.v = Ccons1;
5314 b = (Caux3.e[15] & 0x78) >>3;
5315 for( i=0; i< 16; i++ )
5316 {
5317 INTunion1.si = Iaux1.e[i/4];
5318 if ((i-b)>=0)
5319 {
5320 INTunion2.si = Iaux2.e[(i-b)/4];
5321 if (INTunion1.sc[i%4] != INTunion2.sc[(i-b)%4])
5322 err++;
5323 }
5324 else
5325 {
5326 if (INTunion1.sc[i%4] != 0)
5327 err++;
5328 }
5329 }
5330 if (err)
5331 printf("Function vec_sro [type integer] ===> Error\n");
5332 else
5333 printf("Function vec_sro [type integer] ===> OK\n");
5334
5335 err = 0;
5336 UIaux1.v = vec_sro( UIcons3, UCcons1 );
5337 UIaux2.v = UIcons3;
5338 UCaux3.v = UCcons1;
5339 b = (UCaux3.e[15] & 0x78) >>3;
5340 for( i=0; i< 16; i++ )
5341 {
5342 INTunion1.ui = UIaux1.e[i/4];
5343 if ((i-b)>=0)
5344 {
5345 INTunion2.ui = UIaux2.e[(i-b)/4];
5346 if (INTunion1.uc[i%4] != INTunion2.sc[(i-b)%4])
5347 err++;
5348 }
5349 else
5350 {
5351 if (INTunion1.uc[i%4] != 0)
5352 err++;
5353 }
5354 }
5355 if (err)
5356 printf("Function vec_sro [type unsigned int] ===> Error\n");
5357 else
5358 printf("Function vec_sro [type unsigned int] ===> OK\n");
5359
5360 #if defined TEST_FLOATS
5361 err = 0;
5362 Faux1.v = vec_sro( Fcons3, Ccons1 );
5363 Faux2.v = Fcons3;
5364 Caux3.v = Ccons1;
5365 b = (Caux3.e[15] & 0x78) >>3;
5366 for( i=0; i< 16; i++ )
5367 {
5368 INTunion1.f = Faux1.e[i/4];
5369 if ((i-b)>=0)
5370 {
5371 INTunion2.f = Faux2.e[(i-b)/4];
5372 if (INTunion1.sc[i%4] != INTunion2.sc[(i-b)%4])
5373 err++;
5374 }
5375 else
5376 {
5377 if (INTunion1.sc[i%4] != 0)
5378 err++;
5379 }
5380 }
5381 if (err)
5382 printf("Function vec_sro [type float] ===> Error\n");
5383 else
5384 printf("Function vec_sro [type float] ===> OK\n");
5385 #endif
5386
5387 /* Function vec_st */
5388 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
5389 err = 0;
5390 UCaux1.v = UCcons1;
5391 vec_st( UCaux1.v, 0, UCmem );
5392 Iaux = 1;
5393 for ( i=0; i< 16; i++ )
5394 {
5395 Iaux = Iaux && (UCaux1.e[i]==UCmem[i]);
5396 }
5397 if (Iaux!=1) err++;
5398
5399 if (err)
5400 printf("Function vec_st [type unsigned char] ===> Error\n");
5401 else
5402 printf("Function vec_st [type unsigned char] ===> OK\n");
5403
5404 err = 0;
5405 Caux1.v = Ccons1;
5406 vec_st( Caux1.v, 0, Cmem );
5407 Iaux = 1;
5408 for ( i=0; i< 16; i++ )
5409 {
5410 Iaux = Iaux && (Caux1.e[i]==Cmem[i]);
5411 }
5412 if (Iaux!=1) err++;
5413
5414 if (err)
5415 printf("Function vec_st [type char] ===> Error\n");
5416 else
5417 printf("Function vec_st [type char] ===> OK\n");
5418
5419 err = 0;
5420 USaux1.v = UScons3;
5421 vec_st( USaux1.v, 0, USmem );
5422 Iaux = 1;
5423 for ( i=0; i< 8; i++ )
5424 {
5425 Iaux = Iaux && (USaux1.e[i]==USmem[i]);
5426 }
5427 if (Iaux!=1) err++;
5428
5429 if (err)
5430 printf("Function vec_st [type unsigned short] ===> Error\n");
5431 else
5432 printf("Function vec_st [type unsigned short] ===> OK\n");
5433
5434 err = 0;
5435 Saux1.v = Scons1;
5436 vec_st( Saux1.v, 0, Smem );
5437 Iaux = 1;
5438 for ( i=0; i< 8; i++ )
5439 {
5440 Iaux = Iaux && (Saux1.e[i]==Smem[i]);
5441 }
5442 if (Iaux!=1) err++;
5443
5444 if (err)
5445 printf("Function vec_st [type short] ===> Error\n");
5446 else
5447 printf("Function vec_st [type short] ===> OK\n");
5448
5449 err = 0;
5450 UIaux1.v = UIcons1;
5451 vec_st( UIaux1.v, 0, UImem );
5452 Iaux = 1;
5453 for ( i=0; i< 4; i++ )
5454 {
5455 Iaux = Iaux && (UIaux1.e[i]==UImem[i]);
5456 }
5457 if (Iaux!=1) err++;
5458
5459 if (err)
5460 printf("Function vec_st [type unsigned int] ===> Error\n");
5461 else
5462 printf("Function vec_st [type unsigned int] ===> OK\n");
5463
5464 err = 0;
5465 Iaux1.v = Icons1;
5466 vec_st( Iaux1.v, 0, Imem );
5467 Iaux = 1;
5468 for ( i=0; i< 4; i++ )
5469 {
5470 Iaux = Iaux && (Iaux1.e[i]==Imem[i]);
5471 }
5472 if (Iaux!=1) err++;
5473
5474 if (err)
5475 printf("Function vec_st [type int] ===> Error\n");
5476 else
5477 printf("Function vec_st [type int] ===> OK\n");
5478
5479 #if defined TEST_FLOATS
5480 err = 0;
5481 Faux1.v = Fcons1;
5482 vec_st( Faux1.v, 0, Fmem );
5483 Iaux = 1;
5484 for ( i=0; i< 4; i++ )
5485 {
5486 Iaux = Iaux && (Faux1.e[i]==Fmem[i]);
5487 }
5488 if (Iaux!=1) err++;
5489
5490 if (err)
5491 printf("Function vec_st [type float] ===> Error\n");
5492 else
5493 printf("Function vec_st [type float] ===> OK\n");
5494 #endif
5495
5496 /* Function vec_ste */
5497 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
5498 err = 0;
5499 b = 11;
5500 UCaux1.v = UCcons1;
5501 vec_ste( UCaux1.v, b, UCmem );
5502 i = b;
5503 if (UCaux1.e[i]!=UCmem[i]) err++;
5504
5505 if (err)
5506 printf("Function vec_ste [type unsigned char] ===> Error\n");
5507 else
5508 printf("Function vec_ste [type unsigned char] ===> OK\n");
5509
5510 err = 0;
5511 b = 11;
5512 Caux1.v = Ccons1;
5513 vec_ste( Caux1.v, b, Cmem );
5514 i = b;
5515 if (Caux1.e[i]!=Cmem[i]) err++;
5516
5517 if (err)
5518 printf("Function vec_ste [type char] ===> Error\n");
5519 else
5520 printf("Function vec_ste [type char] ===> OK\n");
5521
5522 err = 0;
5523 b = 11;
5524 USaux1.v = UScons1;
5525 vec_ste( USaux1.v, b, USmem );
5526 i = b/2;
5527 if (USaux1.e[i]!=USmem[i]) err++;
5528 if (err)
5529 printf("Function vec_ste [type unsigned short] ===> Error\n");
5530 else
5531 printf("Function vec_ste [type unsigned short] ===> OK\n");
5532
5533 err = 0;
5534 b = 11;
5535 Saux1.v = Scons1;
5536 vec_ste( Saux1.v, b, Smem );
5537 i = b/2;
5538 if (Saux1.e[i]!=Smem[i]) err++;
5539 if (err)
5540 printf("Function vec_ste [type short] ===> Error\n");
5541 else
5542 printf("Function vec_ste [type short] ===> OK\n");
5543
5544 err = 0;
5545 b = 11;
5546 UIaux1.v = UIcons1;
5547 vec_ste( UIaux1.v, b, UImem );
5548 i = b/4;
5549 if (UIaux1.e[i]!=UImem[i]) err++;
5550 if (err)
5551 printf("Function vec_ste [type unsigned int] ===> Error\n");
5552 else
5553 printf("Function vec_ste [type unsigned int] ===> OK\n");
5554
5555 err = 0;
5556 b = 11;
5557 Iaux1.v = Icons1;
5558 vec_ste( Iaux1.v, b, Imem );
5559 i = b/4;
5560 if (Iaux1.e[i]!=Imem[i]) err++;
5561 if (err)
5562 printf("Function vec_ste [type int] ===> Error\n");
5563 else
5564 printf("Function vec_ste [type int] ===> OK\n");
5565
5566 #if defined TEST_FLOATS
5567 err = 0;
5568 b = 11;
5569 Faux1.v = Fcons1;
5570 vec_ste( Faux1.v, b, Fmem );
5571 i = b/4;
5572 if (Faux1.e[i]!=Fmem[i]) err++;
5573 if (err)
5574 printf("Function vec_ste [type float] ===> Error\n");
5575 else
5576 printf("Function vec_ste [type float] ===> OK\n");
5577 #endif
5578
5579 #if 0
5580 /* Function vec_stl */
5581 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
5582 err = 0;
5583 UCaux1.v = UCcons1;
5584 vec_stl( UCaux1.v, 0, UCmem );
5585 Iaux = 1;
5586 for ( i=0; i< 16; i++ )
5587 {
5588 Iaux = Iaux && (UCaux1.e[i]==UCmem[i]);
5589 }
5590 if (Iaux!=1) err++;
5591
5592 if (err)
5593 printf("Function vec_stl [type unsigned char] ===> Error\n");
5594 else
5595 printf("Function vec_stl [type unsigned char] ===> OK\n");
5596
5597 err = 0;
5598 Caux1.v = Ccons1;
5599 vec_stl( Caux1.v, 0, Cmem );
5600 Iaux = 1;
5601 for ( i=0; i< 16; i++ )
5602 {
5603 Iaux = Iaux && (Caux1.e[i]==Cmem[i]);
5604 }
5605 if (Iaux!=1) err++;
5606
5607 if (err)
5608 printf("Function vec_stl [type char] ===> Error\n");
5609 else
5610 printf("Function vec_stl [type char] ===> OK\n");
5611
5612 err = 0;
5613 USaux1.v = UScons3;
5614 vec_stl( USaux1.v, 0, USmem );
5615 Iaux = 1;
5616 for ( i=0; i< 8; i++ )
5617 {
5618 Iaux = Iaux && (USaux1.e[i]==USmem[i]);
5619 }
5620 if (Iaux!=1) err++;
5621
5622 if (err)
5623 printf("Function vec_stl [type unsigned short] ===> Error\n");
5624 else
5625 printf("Function vec_stl [type unsigned short] ===> OK\n");
5626
5627 err = 0;
5628 Saux1.v = Scons1;
5629 vec_stl( Saux1.v, 0, Smem );
5630 Iaux = 1;
5631 for ( i=0; i< 8; i++ )
5632 {
5633 Iaux = Iaux && (Saux1.e[i]==Smem[i]);
5634 }
5635 if (Iaux!=1) err++;
5636
5637 if (err)
5638 printf("Function vec_stl [type short] ===> Error\n");
5639 else
5640 printf("Function vec_stl [type short] ===> OK\n");
5641
5642 err = 0;
5643 UIaux1.v = UIcons1;
5644 vec_stl( UIaux1.v, 0, UImem );
5645 Iaux = 1;
5646 for ( i=0; i< 4; i++ )
5647 {
5648 Iaux = Iaux && (UIaux1.e[i]==UImem[i]);
5649 }
5650 if (Iaux!=1) err++;
5651
5652 if (err)
5653 printf("Function vec_stl [type unsigned int] ===> Error\n");
5654 else
5655 printf("Function vec_stl [type unsigned int] ===> OK\n");
5656
5657 err = 0;
5658 Iaux1.v = Icons1;
5659 vec_stl( Iaux1.v, 0, Imem );
5660 Iaux = 1;
5661 for ( i=0; i< 4; i++ )
5662 {
5663 Iaux = Iaux && (Iaux1.e[i]==Imem[i]);
5664 }
5665 if (Iaux!=1) err++;
5666
5667 if (err)
5668 printf("Function vec_stl [type int] ===> Error\n");
5669 else
5670 printf("Function vec_stl [type int] ===> OK\n");
5671
5672 #if defined TEST_FLOATS
5673 err = 0;
5674 Faux1.v = Fcons1;
5675 vec_stl( Faux1.v, 0, Fmem );
5676 Iaux = 1;
5677 for ( i=0; i< 4; i++ )
5678 {
5679 Iaux = Iaux && (Faux1.e[i]==Fmem[i]);
5680 }
5681 if (Iaux!=1) err++;
5682
5683 if (err)
5684 printf("Function vec_stl [type float] ===> Error\n");
5685 else
5686 printf("Function vec_stl [type float] ===> OK\n");
5687 #endif
5688 #endif // #if 0
5689
5690 /* Free dynamic vector variables */
5691 free_vec( UCmem );
5692 free_vec( Cmem );
5693 free_vec( USmem );
5694 free_vec( Smem );
5695 free_vec( UImem );
5696 free_vec( Imem );
5697 #if defined TEST_FLOATS
5698 free_vec( Fmem );
5699 #endif
5700
5701 return 0;
5702 }
5703
5704
5705
5706
part4()5707 int part4( )
5708 {
5709 TvecChar Caux1, Caux2, Caux3;//, Caux4;
5710 TvecUChar UCaux1, UCaux2, UCaux3;//, UCaux4;
5711 TvecShort Saux1, Saux2, Saux3;//, Saux4;
5712 TvecUShort USaux1, USaux2, USaux3;//, USaux4;
5713 TvecInt Iaux1, Iaux2, Iaux3;//, Iaux4;
5714 TvecUInt UIaux1, UIaux2, UIaux3;//, UIaux4;
5715 #if defined TEST_FLOATS
5716 TvecFloat Faux1, Faux2, Faux3;//, Faux4;
5717 #endif
5718
5719 int i, err, j;//, b, bAux;
5720 // signed int Ivec1, Ivec2, Ivec3;
5721 // signed short *Svec1;
5722 // unsigned int *UIvec1;
5723 // unsigned short *USvec1;
5724 // unsigned char *UCvec1;
5725 #if defined TEST_FLOATS
5726 // float *Fvec1;
5727 #endif
5728
5729 /* For saturated rutines */
5730 long long int LLaux;
5731
5732 #if defined TEST_FLOATS
5733 float Faux;
5734 #endif
5735 signed int Iaux;//, I1, I2;
5736 unsigned int UIaux;//, UI1, UI2;
5737 signed short Saux;
5738 unsigned short USaux;
5739 signed char Caux;
5740 unsigned char UCaux;
5741
5742 /*
5743 union
5744 {
5745 float f;
5746 signed int si;
5747 unsigned int ui;
5748 signed short ss[2];
5749 unsigned short us[2];
5750 signed char sc[4];
5751 unsigned char uc[4];
5752 } INTunion1, INTunion2;
5753
5754 union
5755 {
5756 signed short ss;
5757 unsigned short us;
5758 signed char sc[2];
5759 unsigned char uc[2];
5760 } SHOunion1, SHOunion2;
5761 */
5762
5763 #if defined (GCC_COMPILER)
5764 vector signed char Ccons1 = (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
5765 vector signed char Ccons2 = (vector signed char){1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
5766 vector signed char Ccons3 = (vector signed char){-128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127};
5767 vector unsigned char UCcons1 = (vector unsigned char){248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7};
5768 vector unsigned char UCcons2 = (vector unsigned char){2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2};
5769 vector unsigned char UCcons3 = (vector unsigned char){1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8};
5770 vector signed short Scons1 = (vector signed short){-4, -3, -2, -1, 0, 1, 2, 3};
5771 vector signed short Scons2 = (vector signed short){-32768, 10000, 1, 1, 1, 1, -10000, -10000};
5772 vector signed short Scons3 = (vector signed short){-32768, 32767, -32768, 32767, -32768, 32767, -32768, 32767};
5773 vector unsigned short UScons1 = (vector unsigned short){65532, 65533, 65534, 65535, 0, 1, 2, 3};
5774 vector unsigned short UScons2 = (vector unsigned short){1, 1, 1, 1, 1, 1, 1, 1};
5775 vector unsigned short UScons3 = (vector unsigned short){1, 2, 3, 4, 1, 2, 3, 4};
5776 vector signed int Icons1 = (vector signed int){-4, -1, 1, 4};
5777 vector signed int Icons2 = (vector signed int){1, 1, 1, 1};
5778 vector signed int Icons3 = (vector signed int){0x80000000, 0x7FFFFFFF, 0x80000000, 0x7FFFFFFF};
5779 vector unsigned int UIcons1 = (vector unsigned int){0xFFFFFFFE, 0xFFFFFFFF, 0, 1};
5780 vector unsigned int UIcons2 = (vector unsigned int){1, 1, 1, 1};
5781 vector unsigned int UIcons3 = (vector unsigned int){1, 2, 1, 2};
5782
5783 #if defined TEST_FLOATS
5784 vector float Fcons1 = (vector float){-1.5, 1.0, 0.5, -3.999};
5785 vector float Fcons2 = (vector float){1.0, 1.0, 1.0, 1.0};
5786 vector float Fcons3 = (vector float){100000000000.0, 1.0, -1.0, -1234567890.0};
5787 #endif
5788
5789 #elif defined (MAC_COMPILER) || defined(XLC_COMPILER)
5790 vector signed char Ccons1 = (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
5791 vector signed char Ccons2 = (vector signed char)(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
5792 vector signed char Ccons3 = (vector signed char)(-128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127);
5793 vector unsigned char UCcons1 = (vector unsigned char)(248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7);
5794 vector unsigned char UCcons2 = (vector unsigned char)(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2);
5795 vector unsigned char UCcons3 = (vector unsigned char)(1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8);
5796 vector signed short Scons1 = (vector signed short)(-4, -3, -2, -1, 0, 1, 2, 3);
5797 vector signed short Scons2 = (vector signed short)(-32768, 10000, 1, 1, 1, 1, -10000, -10000);
5798 vector signed short Scons3 = (vector signed short)(-32768, 32767, -32768, 32767, -32768, 32767, -32768, 32767);
5799 vector unsigned short UScons1 = (vector unsigned short)(65532, 65533, 65534, 65535, 0, 1, 2, 3);
5800 vector unsigned short UScons2 = (vector unsigned short)(1, 1, 1, 1, 1, 1, 1, 1);
5801 vector unsigned short UScons3 = (vector unsigned short)(1, 2, 3, 4, 1, 2, 3, 4);
5802 vector signed int Icons1 = (vector signed int)(-4, -1, 1, 4);
5803 vector signed int Icons2 = (vector signed int)(1, 1, 1, 1);
5804 vector signed int Icons3 = (vector signed int)(0x80000000, 0x7FFFFFFF, 0x80000000, 0x7FFFFFFF);
5805 vector unsigned int UIcons1 = (vector unsigned int)(0xFFFFFFFE, 0xFFFFFFFF, 0, 1);
5806 vector unsigned int UIcons2 = (vector unsigned int)(1, 1, 1, 1);
5807 vector unsigned int UIcons3 = (vector unsigned int)(1, 2, 1, 2);
5808
5809 #if defined TEST_FLOATS
5810 vector float Fcons1 = (vector float)(-1.5, 1.0, 0.5, -3.999);
5811 vector float Fcons2 = (vector float)(1.0, 1.0, 1.0, 1.0);
5812 vector float Fcons3 = (vector float)(100000000000.0, 1.0, -1.0, -1234567890.0);
5813 #endif
5814
5815 #endif
5816
5817
5818 /* Function vec_sub */
5819 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
5820 err = 0;
5821 Caux1.v = vec_sub( Ccons1, Ccons2 );
5822 Caux2.v = Ccons1;
5823 Caux3.v = Ccons2;
5824 for( i=0; i< 16; i++ )
5825 {
5826 Caux = Caux2.e[i] - Caux3.e[i];
5827 if (Caux1.e[i] != Caux)
5828 err++;
5829 }
5830 if (err)
5831 printf("Function vec_sub [type char] ===> Error\n");
5832 else
5833 printf("Function vec_sub [type char] ===> OK\n");
5834
5835 err = 0;
5836 UCaux1.v = vec_sub( UCcons1, UCcons2 );
5837 UCaux2.v = UCcons1;
5838 UCaux3.v = UCcons2;
5839 for( i=0; i< 16; i++ )
5840 {
5841 UCaux = UCaux2.e[i] - UCaux3.e[i];
5842 if (UCaux1.e[i] != UCaux)
5843 err++;
5844 }
5845 if (err)
5846 printf("Function vec_sub [type unsigned char] ===> Error\n");
5847 else
5848 printf("Function vec_sub [type unsigned char] ===> OK\n");
5849
5850 err = 0;
5851 Saux1.v = vec_sub( Scons1, Scons2 );
5852 Saux2.v = Scons1;
5853 Saux3.v = Scons2;
5854 for( i=0; i< 8; i++ )
5855 {
5856 Saux = Saux2.e[i] - Saux3.e[i];
5857 if (Saux1.e[i] != Saux)
5858 err++;
5859 }
5860 if (err)
5861 printf("Function vec_sub [type short] ===> Error\n");
5862 else
5863 printf("Function vec_sub [type short] ===> OK\n");
5864
5865 err = 0;
5866 USaux1.v = vec_sub( UScons1, UScons2 );
5867 USaux2.v = UScons1;
5868 USaux3.v = UScons2;
5869 for( i=0; i< 8; i++ )
5870 {
5871 USaux = USaux2.e[i] - USaux3.e[i];
5872 if (USaux1.e[i] != USaux)
5873 err++;
5874 }
5875 if (err)
5876 printf("Function vec_sub [type unsigned short] ===> Error\n");
5877 else
5878 printf("Function vec_sub [type unsigned short] ===> OK\n");
5879
5880 err = 0;
5881 Iaux1.v = vec_sub( Icons1, Icons2 );
5882 Iaux2.v = Icons1;
5883 Iaux3.v = Icons2;
5884 for( i=0; i< 4; i++ )
5885 {
5886 Iaux = Iaux2.e[i] - Iaux3.e[i];
5887 if (Iaux1.e[i] != Iaux)
5888 err++;
5889 }
5890 if (err)
5891 printf("Function vec_sub [type integer] ===> Error\n");
5892 else
5893 printf("Function vec_sub [type integer] ===> OK\n");
5894
5895 err = 0;
5896 UIaux1.v = vec_sub( UIcons1, UIcons2 );
5897 UIaux2.v = UIcons1;
5898 UIaux3.v = UIcons2;
5899 for( i=0; i< 4; i++ )
5900 {
5901 UIaux = UIaux2.e[i] - UIaux3.e[i];
5902 if (UIaux1.e[i] != UIaux)
5903 err++;
5904 }
5905 if (err)
5906 printf("Function vec_sub [type unsigned int] ===> Error\n");
5907 else
5908 printf("Function vec_sub [type unsigned int] ===> OK\n");
5909
5910 #if defined TEST_FLOATS
5911 err = 0;
5912 Faux1.v = vec_sub( Fcons1, Fcons2 );
5913 Faux2.v = Fcons1;
5914 Faux3.v = Fcons2;
5915 for( i=0; i< 4; i++ )
5916 {
5917 Faux = Faux2.e[i] - Faux3.e[i];
5918 if (Faux1.e[i] != Faux)
5919 err++;
5920 }
5921 if (err)
5922 printf("Function vec_sub [type float] ===> Error\n");
5923 else
5924 printf("Function vec_sub [type float] ===> OK\n");
5925 #endif
5926
5927 /* Function vec_subc */
5928 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
5929 err = 0;
5930 UIaux1.v = vec_subc( UIcons2, UIcons3 );
5931 UIaux2.v = UIcons2;
5932 UIaux3.v = UIcons3;
5933 for( i=0; i< 4; i++ )
5934 {
5935 if (UIaux3.e[i]>UIaux2.e[i])
5936 {
5937 if (UIaux1.e[i] != 0)
5938 err++;
5939 }
5940 else
5941 {
5942 if (UIaux1.e[i] != 1)
5943 err++;
5944 }
5945 }
5946 if (err)
5947 printf("Function vec_subc [type unsigned int] ===> Error\n");
5948 else
5949 printf("Function vec_subc [type unsigned int] ===> OK\n");
5950
5951 /* Function vec_subs */
5952 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
5953 err = 0;
5954 Caux1.v = vec_subs( Ccons1, Ccons3 );
5955 Caux2.v = Ccons1;
5956 Caux3.v = Ccons3;
5957 for( i=0; i< 16; i++ )
5958 {
5959 Caux = (signed char)Caux2.e[i]-Caux3.e[i];
5960 if ((Caux2.e[i]>=0)&&(Caux3.e[i]<0))
5961 {
5962 if (Caux< Caux2.e[i])
5963 Caux=0x7F;
5964 }
5965 else if ((Caux2.e[i]<0)&&(Caux3.e[i]>0))
5966 {
5967 if (Caux> Caux2.e[i])
5968 Caux=0x80;
5969 }
5970 if (Caux1.e[i] != Caux)
5971 err++;
5972 }
5973 if (err)
5974 printf("Function vec_subs [type char] ===> Error\n");
5975 else
5976 printf("Function vec_subs [type char] ===> OK\n");
5977
5978 err = 0;
5979 UCaux1.v = vec_subs( UCcons1, UCcons3 );
5980 UCaux2.v = UCcons1;
5981 UCaux3.v = UCcons3;
5982 for( i=0; i< 16; i++ )
5983 {
5984 UCaux = (unsigned char)(UCaux2.e[i]-UCaux3.e[i]);
5985 if (UCaux> UCaux2.e[i])
5986 UCaux=0;
5987 if (UCaux1.e[i] != UCaux)
5988 err++;
5989 }
5990 if (err)
5991 printf("Function vec_subs [type unsigned char] ===> Error\n");
5992 else
5993 printf("Function vec_subs [type unsigned char] ===> OK\n");
5994
5995 err = 0;
5996 Saux1.v = vec_subs( Scons1, Scons3 );
5997 Saux2.v = Scons1;
5998 Saux3.v = Scons3;
5999 for( i=0; i< 8; i++ )
6000 {
6001 Saux = (signed short)(Saux2.e[i] - Saux3.e[i]);
6002 if ((Saux2.e[i]>=0)&&(Saux3.e[i]<0))
6003 {
6004 if (Saux< Saux2.e[i])
6005 Saux=0x7FFF;
6006 }
6007 else if ((Saux2.e[i]<0)&&(Saux3.e[i]>0))
6008 {
6009 if (Saux> Saux2.e[i])
6010 Saux=0x8000;
6011 }
6012 if (Saux1.e[i] != Saux)
6013 err++;
6014 }
6015 if (err)
6016 printf("Function vec_subs [type short] ===> Error\n");
6017 else
6018 printf("Function vec_subs [type short] ===> OK\n");
6019
6020 err = 0;
6021 USaux1.v = vec_subs( UScons1, UScons3 );
6022 USaux2.v = UScons1;
6023 USaux3.v = UScons3;
6024 for( i=0; i< 8; i++ )
6025 {
6026 USaux = (unsigned short)(USaux2.e[i] - USaux3.e[i]);
6027 if (USaux> USaux2.e[i])
6028 USaux=0x0;
6029 if (USaux1.e[i] != USaux)
6030 err++;
6031 }
6032 if (err)
6033 printf("Function vec_subs [type unsigned short] ===> Error\n");
6034 else
6035 printf("Function vec_subs [type unsigned short] ===> OK\n");
6036
6037
6038 err = 0;
6039 Iaux1.v = vec_subs( Icons1, Icons3 );
6040 Iaux2.v = Icons1;
6041 Iaux3.v = Icons3;
6042 for( i=0; i< 4; i++ )
6043 {
6044 Iaux = (signed int)(Iaux2.e[i] - Iaux3.e[i]);
6045 if ((Iaux2.e[i]>=0)&&(Iaux3.e[i]<0))
6046 {
6047 if (Iaux< Iaux2.e[i])
6048 Iaux=0x7FFFFFFF;
6049 }
6050 else if ((Iaux2.e[i]<0)&&(Iaux3.e[i]>0))
6051 {
6052 if (Iaux> Iaux2.e[i])
6053 {
6054 printf("%d > %d\n", Iaux, Iaux2.e[i]);
6055 Iaux=0x80000000;
6056 }
6057 }
6058 if (Iaux1.e[i] != Iaux)
6059 err++;
6060 }
6061 if (err)
6062 printf("Function vec_subs [type integer] ===> Error\n");
6063 else
6064 printf("Function vec_subs [type integer] ===> OK\n");
6065
6066 err = 0;
6067 UIaux1.v = vec_subs( UIcons1, UIcons3 );
6068 UIaux2.v = UIcons1;
6069 UIaux3.v = UIcons3;
6070 for( i=0; i< 4; i++ )
6071 {
6072 UIaux = (unsigned int)(UIaux2.e[i] - UIaux3.e[i]);
6073 if (UIaux> UIaux2.e[i])
6074 UIaux=0x0;
6075 if (UIaux1.e[i] != UIaux)
6076 err++;
6077 }
6078 if (err)
6079 printf("Function vec_subs [type unsigned int] ===> Error\n");
6080 else
6081 printf("Function vec_subs [type unsigned int] ===> OK\n");
6082
6083 /* Function vec_sum4s */
6084 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
6085 err = 0;
6086 Iaux1.v = vec_sum4s( Ccons2, Icons2 );
6087 Caux1.v = Ccons2;
6088 Iaux2.v = Icons2;
6089 for( i=0; i< 4; i++ )
6090 {
6091 Iaux = Iaux2.e[i];
6092 for( j=0; j< 4; j++ )
6093 Iaux = Iaux + Caux1.e[4*i+j];
6094 if (Iaux1.e[i] != Iaux)
6095 err++;
6096 }
6097 if (err)
6098 printf("Function vec_sum4s [type char] ===> Error\n");
6099 else
6100 printf("Function vec_sum4s [type char] ===> OK\n");
6101
6102 err = 0;
6103 UIaux1.v = vec_sum4s( UCcons2, UIcons2 );
6104 UCaux1.v = UCcons2;
6105 UIaux2.v = UIcons2;
6106 for( i=0; i< 4; i++ )
6107 {
6108 UIaux = UIaux2.e[i];
6109 for( j=0; j< 4; j++ )
6110 UIaux = UIaux + UCaux1.e[4*i+j];
6111 if (UIaux1.e[i] != UIaux)
6112 err++;
6113 }
6114 if (err)
6115 printf("Function vec_sum4s [type unsigned char] ===> Error\n");
6116 else
6117 printf("Function vec_sum4s [type unsigned char] ===> OK\n");
6118
6119 err = 0;
6120 Iaux1.v = vec_sum4s( Scons2, Icons2 );
6121 Saux1.v = Scons2;
6122 Iaux2.v = Icons2;
6123 for( i=0; i< 4; i++ )
6124 {
6125 Iaux = Iaux2.e[i];
6126 for( j=0; j< 2; j++ )
6127 Iaux = Iaux + Saux1.e[2*i+j];
6128 if (Iaux1.e[i] != Iaux)
6129 err++;
6130 }
6131 if (err)
6132 printf("Function vec_sum4s [type short] ===> Error\n");
6133 else
6134 printf("Function vec_sum4s [type short] ===> OK\n");
6135
6136 /* Function vec_sum2s */
6137 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
6138 err = 0;
6139 Iaux1.v = Icons1;
6140 Iaux2.v = Icons3;
6141 Iaux3.v = vec_sum2s( Iaux1.v, Iaux2.v );
6142 for( i=0; i< 2; i++ )
6143 {
6144 LLaux = (long long int) Iaux1.e[2*i] + Iaux1.e[(2*i)+1] + Iaux2.e[(2*i)+1];
6145 if (LLaux > INT_MAX)
6146 {
6147 Iaux=0x7FFFFFFF; /* INT_MAX */
6148 }
6149 else if (LLaux < INT_MIN)
6150 {
6151 Iaux=0x80000000; /* INT_MIN */
6152 }
6153 else Iaux = (signed int) LLaux;
6154
6155 if ((Iaux3.e[2*i] != 0) || (Iaux3.e[(2*i)+1] != Iaux))
6156 err++;
6157 }
6158 if (err)
6159 printf("Function vec_sum2s [type integer] ===> Error\n");
6160 else
6161 printf("Function vec_sum2s [type integer] ===> OK\n");
6162
6163 /* Function vec_sums */
6164 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
6165 err = 0;
6166
6167 /* Not saturated test */
6168 Iaux1.v = Icons1;
6169 Iaux2.v = Icons3;
6170 Iaux3.v = vec_sums( Iaux1.v, Iaux2.v );
6171
6172 LLaux = (long long int) Iaux1.e[0] + Iaux1.e[1] + Iaux1.e[2] + Iaux1.e[3] + Iaux2.e[3];
6173 if (LLaux > INT_MAX)
6174 {
6175 Iaux=0x7FFFFFFF; /* INT_MAX */
6176 }
6177 else if (LLaux < INT_MIN)
6178 {
6179 Iaux=0x80000000; /* INT_MIN */
6180 }
6181 else Iaux = (signed int) LLaux;
6182
6183 if ((Iaux3.e[0] != 0) || (Iaux3.e[1] != 0) || (Iaux3.e[2] != 0) ||
6184 (Iaux3.e[3] != Iaux))
6185 err++;
6186
6187 /* Saturated test */
6188 Iaux1.v = Icons2;
6189 Iaux2.v = Icons3;
6190 Iaux3.v = vec_sums( Iaux1.v, Iaux2.v );
6191
6192 LLaux = (long long int) Iaux1.e[0] + Iaux1.e[1] + Iaux1.e[2] + Iaux1.e[3] + Iaux2.e[3];
6193 if (LLaux > INT_MAX)
6194 {
6195 Iaux=0x7FFFFFFF; /* INT_MAX */
6196 }
6197 else if (LLaux < INT_MIN)
6198 {
6199 Iaux=0x80000000; /* INT_MIN */
6200 }
6201 else Iaux = (signed int) LLaux;
6202
6203 if ((Iaux3.e[0] != 0) || (Iaux3.e[1] != 0) || (Iaux3.e[2] != 0) ||
6204 (Iaux3.e[3] != Iaux))
6205 err++;
6206
6207 if (err)
6208 printf("Function vec_sums [type integer] ===> Error\n");
6209 else
6210 printf("Function vec_sums [type integer] ===> OK\n");
6211
6212 #if defined TEST_FLOATS
6213 /* Function vec_trunc */
6214 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
6215 err = 0;
6216 Faux1.v = Fcons1;
6217 Faux2.v = vec_trunc( Faux1.v );
6218 for( i=0; i< 4; i++ )
6219 {
6220 Faux = truncf(Faux1.e[i]);
6221 if (Faux2.e[i] != Faux)
6222 err++;
6223 }
6224 if (err)
6225 printf("Function vec_trunc [type float] ===> Error\n");
6226 else
6227 printf("Function vec_trunc [type float] ===> OK\n");
6228 #endif
6229
6230 /* Function vec_unpackh */
6231 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
6232 err = 0;
6233 Caux1.v = Ccons1;
6234 Saux1.v = vec_unpackh( Caux1.v );
6235 for ( i=0; i< 8; i++ )
6236 {
6237 Saux = (signed short)Caux1.e[i];
6238 if (Saux1.e[i] != Saux)
6239 err++;
6240 }
6241
6242 if (err)
6243 printf("Function vec_unpackh [type short-char] ===> Error\n");
6244 else
6245 printf("Function vec_unpackh [type short-char] ===> OK\n");
6246
6247 err = 0;
6248 Saux1.v = Scons3;
6249 Iaux1.v = vec_unpackh( Saux1.v );
6250 for ( i=0; i< 4; i++ )
6251 {
6252 Iaux = (signed int)Saux1.e[i];
6253 if (Iaux1.e[i] != Iaux)
6254 err++;
6255 }
6256
6257 if (err)
6258 printf("Function vec_unpackh [type int-short] ===> Error\n");
6259 else
6260 printf("Function vec_unpackh [type int-short] ===> OK\n");
6261
6262 /* Function vec_unpackl */
6263 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
6264 err = 0;
6265 Caux1.v = Ccons3;
6266 Saux1.v = vec_unpackl( Caux1.v );
6267 for ( i=0; i< 8; i++ )
6268 {
6269 Saux = (signed short)Caux1.e[i+8];
6270 if (Saux1.e[i] != Saux)
6271 err++;
6272 }
6273
6274 if (err)
6275 printf("Function vec_unpackl [type short-char] ===> Error\n");
6276 else
6277 printf("Function vec_unpackl [type short-char] ===> OK\n");
6278
6279 err = 0;
6280 Saux1.v = Scons1;
6281 Iaux1.v = vec_unpackl( Saux1.v );
6282 for ( i=0; i< 4; i++ )
6283 {
6284 Iaux = (signed int)Saux1.e[i+4];
6285 if (Iaux1.e[i] != Iaux)
6286 err++;
6287 }
6288
6289 if (err)
6290 printf("Function vec_unpackl [type int-short] ===> Error\n");
6291 else
6292 printf("Function vec_unpackl [type int-short] ===> OK\n");
6293
6294 /* Function vec_xor */
6295 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
6296 err = 0;
6297 UCaux1.v = UCcons1;
6298 UCaux2.v = UCcons3;
6299 UCaux3.v = vec_xor( UCaux1.v, UCaux2.v );
6300 for( i=0; i< 16; i++ )
6301 {
6302 UCaux = UCaux1.e[i] ^ UCaux2.e[i];
6303 if (UCaux3.e[i] != UCaux)
6304 err++;
6305 }
6306 if (err)
6307 printf("Function vec_xor [type unsigned char] ===> Error\n");
6308 else
6309 printf("Function vec_xor [type unsigned char] ===> OK\n");
6310
6311 err = 0;
6312 Caux1.v = Ccons1;
6313 Caux2.v = Ccons3;
6314 Caux3.v = vec_xor( Caux1.v, Caux2.v );
6315 for( i=0; i< 16; i++ )
6316 {
6317 Caux = Caux1.e[i] ^ Caux2.e[i];
6318 if (Caux3.e[i] != Caux)
6319 err++;
6320 }
6321 if (err)
6322 printf("Function vec_xor [type char] ===> Error\n");
6323 else
6324 printf("Function vec_xor [type char] ===> OK\n");
6325
6326 err = 0;
6327 USaux1.v = UScons1;
6328 USaux2.v = UScons3;
6329 USaux3.v = vec_xor( USaux1.v, USaux2.v );
6330 for( i=0; i< 8; i++ )
6331 {
6332 USaux = USaux1.e[i] ^ USaux2.e[i];
6333 if (USaux3.e[i] != USaux)
6334 err++;
6335 }
6336 if (err)
6337 printf("Function vec_xor [type unsigned short] ===> Error\n");
6338 else
6339 printf("Function vec_xor [type unsigned short] ===> OK\n");
6340
6341 err = 0;
6342 Saux1.v = Scons1;
6343 Saux2.v = Scons3;
6344 Saux3.v = vec_xor( Saux1.v, Saux2.v );
6345 for( i=0; i< 8; i++ )
6346 {
6347 Saux = Saux1.e[i] ^ Saux2.e[i];
6348 if (Saux3.e[i] != Saux)
6349 err++;
6350 }
6351 if (err)
6352 printf("Function vec_xor [type short] ===> Error\n");
6353 else
6354 printf("Function vec_xor [type short] ===> OK\n");
6355
6356 err = 0;
6357 UIaux1.v = UIcons1;
6358 UIaux2.v = UIcons3;
6359 UIaux3.v = vec_xor( UIaux1.v, UIaux2.v );
6360 for( i=0; i< 4; i++ )
6361 {
6362 UIaux = UIaux1.e[i] ^ UIaux2.e[i];
6363 if (UIaux3.e[i] != UIaux)
6364 err++;
6365 }
6366 if (err)
6367 printf("Function vec_xor [type unsigned int] ===> Error\n");
6368 else
6369 printf("Function vec_xor [type unsigned int] ===> OK\n");
6370
6371 err = 0;
6372 Iaux1.v = Icons1;
6373 Iaux2.v = Icons3;
6374 Iaux3.v = vec_xor( Iaux1.v, Iaux2.v );
6375 for( i=0; i< 4; i++ )
6376 {
6377 Iaux = Iaux1.e[i] ^ Iaux2.e[i];
6378 if (Iaux3.e[i] != Iaux)
6379 err++;
6380 }
6381 if (err)
6382 printf("Function vec_xor [type int] ===> Error\n");
6383 else
6384 printf("Function vec_xor [type int] ===> OK\n");
6385
6386 #if defined TEST_FLOATS
6387 err = 0;
6388 Faux1.v = Fcons1;
6389 Faux2.v = Fcons3;
6390 Faux3.v = vec_xor( Faux1.v, Faux2.v );
6391 for( i=0; i< 4; i++ )
6392 {
6393 Iaux = Faux1.i[i] ^ Faux2.i[i];
6394
6395 if (Faux3.i[i] != Iaux)
6396 err++;
6397 }
6398 if (err)
6399 printf("Function vec_xor [type float] ===> Error\n");
6400 else
6401 printf("Function vec_xor [type float] ===> OK\n");
6402 #endif
6403
6404 return 0;
6405 }
6406
6407
6408
6409
part5()6410 int part5()
6411 {
6412 TvecChar Caux1, Caux2;//, Caux3, Caux4;
6413 TvecUChar UCaux1, UCaux2;//, UCaux3, UCaux4;
6414 TvecShort Saux1, Saux2;//, Saux3, Saux4;
6415 TvecUShort USaux1, USaux2;//, USaux3, USaux4;
6416 TvecInt Iaux1, Iaux2;//, Iaux3, Iaux4;
6417 TvecUInt UIaux1, UIaux2;//, UIaux3, UIaux4;
6418 #if defined TEST_FLOATS
6419 TvecFloat Faux1, Faux2;//, Faux3, Faux4;
6420 #endif
6421
6422 int i, err, /*j,*/ b, bAux;
6423 // signed int Ivec1, Ivec2, Ivec3;
6424 // signed short *Svec1;
6425 // unsigned int *UIvec1;
6426 // unsigned short *USvec1;
6427 // unsigned char *UCvec1;
6428 #if defined TEST_FLOATS
6429 // float *Fvec1;
6430 #endif
6431
6432 /* For saturated rutines */
6433 // long long int LLaux;
6434
6435 #if defined TEST_FLOATS
6436 // float Faux;
6437 #endif
6438 signed int Iaux, I1;//, I2;
6439 // unsigned int UIaux, UI1, UI2;
6440 // signed short Saux;
6441 // unsigned short USaux;
6442 // signed char Caux;
6443 // unsigned char UCaux;
6444
6445 /*
6446 union
6447 {
6448 float f;
6449 signed int si;
6450 unsigned int ui;
6451 signed short ss[2];
6452 unsigned short us[2];
6453 signed char sc[4];
6454 unsigned char uc[4];
6455 } INTunion1, INTunion2;
6456
6457 union
6458 {
6459 signed short ss;
6460 unsigned short us;
6461 signed char sc[2];
6462 unsigned char uc[2];
6463 } SHOunion1, SHOunion2;
6464 */
6465
6466
6467 #if defined (GCC_COMPILER)
6468 vector signed char Ccons1 = (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
6469 vector signed char Ccons2 = (vector signed char){1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
6470 vector signed char Ccons3 = (vector signed char){-128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127};
6471 vector unsigned char UCcons1 = (vector unsigned char){248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7};
6472 vector unsigned char UCcons2 = (vector unsigned char){2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2};
6473 vector unsigned char UCcons3 = (vector unsigned char){1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8};
6474 vector signed short Scons1 = (vector signed short){-4, -3, -2, -1, 0, 1, 2, 3};
6475 vector signed short Scons2 = (vector signed short){-32768, 10000, 1, 1, 1, 1, -10000, -10000};
6476 vector signed short Scons3 = (vector signed short){-32768, 32767, -32768, 32767, -32768, 32767, -32768, 32767};
6477 vector unsigned short UScons1 = (vector unsigned short){65532, 65533, 65534, 65535, 0, 1, 2, 3};
6478 vector unsigned short UScons2 = (vector unsigned short){1, 1, 1, 1, 1, 1, 1, 1};
6479 vector unsigned short UScons3 = (vector unsigned short){1, 2, 3, 4, 1, 2, 3, 4};
6480 vector signed int Icons1 = (vector signed int){-4, -1, 1, 4};
6481 vector signed int Icons2 = (vector signed int){1, 1, 1, 1};
6482 vector signed int Icons3 = (vector signed int){0x80000000, 0x7FFFFFFF, 0x80000000, 0x7FFFFFFF};
6483 vector unsigned int UIcons1 = (vector unsigned int){0xFFFFFFFE, 0xFFFFFFFF, 0, 1};
6484 vector unsigned int UIcons2 = (vector unsigned int){1, 1, 1, 1};
6485 vector unsigned int UIcons3 = (vector unsigned int){1, 2, 1, 2};
6486
6487 #if defined TEST_FLOATS
6488 vector float Fcons1 = (vector float){-1.5, 1.0, 0.5, -3.999};
6489 vector float Fcons2 = (vector float){1.0, 1.0, 1.0, 1.0};
6490 vector float Fcons3 = (vector float){100000000000.0, 1.0, -1.0, -1234567890.0};
6491 #endif
6492
6493 #elif defined (MAC_COMPILER) || defined(XLC_COMPILER)
6494 vector signed char Ccons1 = (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
6495 vector signed char Ccons2 = (vector signed char)(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
6496 vector signed char Ccons3 = (vector signed char)(-128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127, -128, 127);
6497 vector unsigned char UCcons1 = (vector unsigned char)(248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7);
6498 vector unsigned char UCcons2 = (vector unsigned char)(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2);
6499 vector unsigned char UCcons3 = (vector unsigned char)(1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8);
6500 vector signed short Scons1 = (vector signed short)(-4, -3, -2, -1, 0, 1, 2, 3);
6501 vector signed short Scons2 = (vector signed short)(-32768, 10000, 1, 1, 1, 1, -10000, -10000);
6502 vector signed short Scons3 = (vector signed short)(-32768, 32767, -32768, 32767, -32768, 32767, -32768, 32767);
6503 vector unsigned short UScons1 = (vector unsigned short)(65532, 65533, 65534, 65535, 0, 1, 2, 3);
6504 vector unsigned short UScons2 = (vector unsigned short)(1, 1, 1, 1, 1, 1, 1, 1);
6505 vector unsigned short UScons3 = (vector unsigned short)(1, 2, 3, 4, 1, 2, 3, 4);
6506 vector signed int Icons1 = (vector signed int)(-4, -1, 1, 4);
6507 vector signed int Icons2 = (vector signed int)(1, 1, 1, 1);
6508 vector signed int Icons3 = (vector signed int)(0x80000000, 0x7FFFFFFF, 0x80000000, 0x7FFFFFFF);
6509 vector unsigned int UIcons1 = (vector unsigned int)(0xFFFFFFFE, 0xFFFFFFFF, 0, 1);
6510 vector unsigned int UIcons2 = (vector unsigned int)(1, 1, 1, 1);
6511 vector unsigned int UIcons3 = (vector unsigned int)(1, 2, 1, 2);
6512
6513 #if defined TEST_FLOATS
6514 vector float Fcons1 = (vector float)(-1.5, 1.0, 0.5, -3.999);
6515 vector float Fcons2 = (vector float)(1.0, 1.0, 1.0, 1.0);
6516 vector float Fcons3 = (vector float)(100000000000.0, 1.0, -1.0, -1234567890.0);
6517 #endif
6518
6519 #endif
6520
6521
6522 /* Function vec_all_eq */
6523 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
6524 err = 0;
6525 UCaux1.v = UCcons1;
6526 UCaux2.v = UCcons1;
6527 I1 = vec_all_eq( UCaux1.v, UCaux2.v );
6528 Iaux = 1;
6529 for ( i=0; i< 16; i++ )
6530 {
6531 Iaux = Iaux && (UCaux1.e[i]==UCaux2.e[i]);
6532 }
6533 if (I1 != Iaux) err++;
6534
6535 UCaux1.v = UCcons2;
6536 UCaux2.v = UCcons3;
6537 I1 = vec_all_eq( UCaux1.v, UCaux2.v );
6538 Iaux = 1;
6539 for ( i=0; i< 16; i++ )
6540 {
6541 Iaux = Iaux && (UCaux1.e[i]==UCaux2.e[i]);
6542 }
6543 if (I1 != Iaux) err++;
6544
6545 if (err)
6546 printf("Function vec_all_eq [type unsigned char] ===> Error\n");
6547 else
6548 printf("Function vec_all_eq [type unsigned char] ===> OK\n");
6549
6550 err = 0;
6551 Caux1.v = Ccons1;
6552 Caux2.v = Ccons1;
6553 I1 = vec_all_eq( Caux1.v, Caux2.v );
6554 Iaux = 1;
6555 for ( i=0; i< 16; i++ )
6556 {
6557 Iaux = Iaux && (Caux1.e[i]==Caux2.e[i]);
6558 }
6559 if (I1 != Iaux) err++;
6560
6561 Caux1.v = Ccons1;
6562 Caux2.v = Ccons2;
6563 I1 = vec_all_eq( Caux1.v, Caux2.v );
6564 Iaux = 1;
6565 for ( i=0; i< 16; i++ )
6566 {
6567 Iaux = Iaux && (Caux1.e[i]==Caux2.e[i]);
6568 }
6569 if (I1 != Iaux) err++;
6570
6571 if (err)
6572 printf("Function vec_all_eq [type char] ===> Error\n");
6573 else
6574 printf("Function vec_all_eq [type char] ===> OK\n");
6575
6576 err = 0;
6577 USaux1.v = UScons1;
6578 USaux2.v = UScons1;
6579 I1 = vec_all_eq( USaux1.v, USaux2.v );
6580 Iaux = 1;
6581 for ( i=0; i< 8; i++ )
6582 {
6583 Iaux = Iaux && (USaux1.e[i]==USaux2.e[i]);
6584 }
6585 if (I1 != Iaux) err++;
6586
6587 USaux1.v = UScons2;
6588 USaux2.v = UScons3;
6589 I1 = vec_all_eq( USaux1.v, USaux2.v );
6590 Iaux = 1;
6591 for ( i=0; i< 8; i++ )
6592 {
6593 Iaux = Iaux && (USaux1.e[i]==USaux2.e[i]);
6594 }
6595 if (I1 != Iaux) err++;
6596
6597 if (err)
6598 printf("Function vec_all_eq [type unsigned short] ===> Error\n");
6599 else
6600 printf("Function vec_all_eq [type unsigned short] ===> OK\n");
6601
6602 err = 0;
6603 Saux1.v = Scons1;
6604 Saux2.v = Scons1;
6605 I1 = vec_all_eq( Saux1.v, Saux2.v );
6606 Iaux = 1;
6607 for ( i=0; i< 8; i++ )
6608 {
6609 Iaux = Iaux && (Saux1.e[i]==Saux2.e[i]);
6610 }
6611 if (I1 != Iaux) err++;
6612
6613 Saux1.v = Scons2;
6614 Saux2.v = Scons3;
6615 I1 = vec_all_eq( Saux1.v, Saux2.v );
6616 Iaux = 1;
6617 for ( i=0; i< 8; i++ )
6618 {
6619 Iaux = Iaux && (Saux1.e[i]==Saux2.e[i]);
6620 }
6621 if (I1 != Iaux) err++;
6622
6623 if (err)
6624 printf("Function vec_all_eq [type short] ===> Error\n");
6625 else
6626 printf("Function vec_all_eq [type short] ===> OK\n");
6627
6628 err = 0;
6629 UIaux1.v = UIcons1;
6630 UIaux2.v = UIcons1;
6631 I1 = vec_all_eq( UIaux1.v, UIaux2.v );
6632 Iaux = 1;
6633 for ( i=0; i< 4; i++ )
6634 {
6635 Iaux = Iaux && (UIaux1.e[i]==UIaux2.e[i]);
6636 }
6637 if (I1 != Iaux) err++;
6638
6639 UIaux1.v = UIcons2;
6640 UIaux2.v = UIcons3;
6641 I1 = vec_all_eq( UIaux1.v, UIaux2.v );
6642 Iaux = 1;
6643 for ( i=0; i< 4; i++ )
6644 {
6645 Iaux = Iaux && (UIaux1.e[i]==UIaux2.e[i]);
6646 }
6647 if (I1 != Iaux) err++;
6648
6649 if (err)
6650 printf("Function vec_all_eq [type unsigned int] ===> Error\n");
6651 else
6652 printf("Function vec_all_eq [type unsigned int] ===> OK\n");
6653
6654 err = 0;
6655 Iaux1.v = Icons1;
6656 Iaux2.v = Icons1;
6657 I1 = vec_all_eq( Iaux1.v, Iaux2.v );
6658 Iaux = 1;
6659 for ( i=0; i< 4; i++ )
6660 {
6661 Iaux = Iaux && (Iaux1.e[i]==Iaux2.e[i]);
6662 }
6663 if (I1 != Iaux) err++;
6664
6665 Iaux1.v = Icons1;
6666 Iaux2.v = Icons2;
6667 I1 = vec_all_eq( Iaux1.v, Iaux2.v );
6668 Iaux = 1;
6669 for ( i=0; i< 4; i++ )
6670 {
6671 Iaux = Iaux && (Iaux1.e[i]==Iaux2.e[i]);
6672 }
6673 if (I1 != Iaux) err++;
6674
6675 if (err)
6676 printf("Function vec_all_eq [type int] ===> Error\n");
6677 else
6678 printf("Function vec_all_eq [type int] ===> OK\n");
6679
6680 #if defined TEST_FLOATS
6681 err = 0;
6682 Faux1.v = Fcons1;
6683 Faux2.v = Fcons1;
6684 I1 = vec_all_eq( Faux1.v, Faux2.v );
6685 Iaux = 1;
6686 for ( i=0; i< 4; i++ )
6687 {
6688 Iaux = Iaux && (Faux1.e[i]==Faux2.e[i]);
6689 }
6690 if (I1 != Iaux) err++;
6691
6692 Faux1.v = Fcons1;
6693 Faux2.v = Fcons2;
6694 I1 = vec_all_eq( Faux1.v, Faux2.v );
6695 Iaux = 1;
6696 for ( i=0; i< 4; i++ )
6697 {
6698 Iaux = Iaux && (Faux1.e[i]==Faux2.e[i]);
6699 }
6700 if (I1 != Iaux) err++;
6701
6702 if (err)
6703 printf("Function vec_all_eq [type float] ===> Error\n");
6704 else
6705 printf("Function vec_all_eq [type float] ===> OK\n");
6706 #endif
6707
6708 /* Function vec_all_ge */
6709 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
6710 err = 0;
6711 UCaux1.v = UCcons2;
6712 UCaux2.v = UCcons2;
6713 I1 = vec_all_ge( UCaux1.v, UCaux2.v );
6714 Iaux = 1;
6715 for ( i=0; i< 16; i++ )
6716 {
6717 Iaux = Iaux && (UCaux1.e[i]>=UCaux2.e[i]);
6718 }
6719 if (I1 != Iaux) err++;
6720
6721 UCaux1.v = UCcons2;
6722 UCaux2.v = UCcons3;
6723 I1 = vec_all_ge( UCaux1.v, UCaux2.v );
6724 Iaux = 1;
6725 for ( i=0; i< 16; i++ )
6726 {
6727 Iaux = Iaux && (UCaux1.e[i]>=UCaux2.e[i]);
6728 }
6729 if (I1 != Iaux) err++;
6730
6731 if (err)
6732 printf("Function vec_all_ge [type unsigned char] ===> Error\n");
6733 else
6734 printf("Function vec_all_ge [type unsigned char] ===> OK\n");
6735
6736 err = 0;
6737 Caux1.v = Ccons2;
6738 Caux2.v = Ccons2;
6739 I1 = vec_all_ge( Caux1.v, Caux2.v );
6740 Iaux = 1;
6741 for ( i=0; i< 16; i++ )
6742 {
6743 Iaux = Iaux && (Caux1.e[i]>=Caux2.e[i]);
6744 }
6745 if (I1 != Iaux) err++;
6746
6747 Caux1.v = Ccons2;
6748 Caux2.v = Ccons3;
6749 I1 = vec_all_ge( Caux1.v, Caux2.v );
6750 Iaux = 1;
6751 for ( i=0; i< 16; i++ )
6752 {
6753 Iaux = Iaux && (Caux1.e[i]>=Caux2.e[i]);
6754 }
6755 if (I1 != Iaux) err++;
6756
6757 if (err)
6758 printf("Function vec_all_ge [type char] ===> Error\n");
6759 else
6760 printf("Function vec_all_ge [type char] ===> OK\n");
6761
6762 err = 0;
6763 USaux1.v = UScons3;
6764 USaux2.v = UScons2;
6765 I1 = vec_all_ge( USaux1.v, USaux2.v );
6766 Iaux = 1;
6767 for ( i=0; i< 8; i++ )
6768 {
6769 Iaux = Iaux && (USaux1.e[i]>=USaux2.e[i]);
6770 }
6771 if (I1 != Iaux) err++;
6772
6773 USaux1.v = UScons1;
6774 USaux2.v = UScons2;
6775 I1 = vec_all_ge( USaux1.v, USaux2.v );
6776 Iaux = 1;
6777 for ( i=0; i< 8; i++ )
6778 {
6779 Iaux = Iaux && (USaux1.e[i]>=USaux2.e[i]);
6780 }
6781 if (I1 != Iaux) err++;
6782
6783 if (err)
6784 printf("Function vec_all_ge [type unsigned short] ===> Error\n");
6785 else
6786 printf("Function vec_all_ge [type unsigned short] ===> OK\n");
6787
6788 err = 0;
6789 Saux1.v = Scons1;
6790 Saux2.v = Scons1;
6791 I1 = vec_all_ge( Saux1.v, Saux2.v );
6792 Iaux = 1;
6793 for ( i=0; i< 8; i++ )
6794 {
6795 Iaux = Iaux && (Saux1.e[i]>=Saux2.e[i]);
6796 }
6797 if (I1 != Iaux) err++;
6798
6799 Saux1.v = Scons2;
6800 Saux2.v = Scons3;
6801 I1 = vec_all_ge( Saux1.v, Saux2.v );
6802 Iaux = 1;
6803 for ( i=0; i< 8; i++ )
6804 {
6805 Iaux = Iaux && (Saux1.e[i]>=Saux2.e[i]);
6806 }
6807 if (I1 != Iaux) err++;
6808
6809 if (err)
6810 printf("Function vec_all_ge [type short] ===> Error\n");
6811 else
6812 printf("Function vec_all_ge [type short] ===> OK\n");
6813
6814 err = 0;
6815 UIaux1.v = UIcons3;
6816 UIaux2.v = UIcons2;
6817 I1 = vec_all_ge( UIaux1.v, UIaux2.v );
6818 Iaux = 1;
6819 for ( i=0; i< 4; i++ )
6820 {
6821 Iaux = Iaux && (UIaux1.e[i]>=UIaux2.e[i]);
6822 }
6823 if (I1 != Iaux) err++;
6824
6825 UIaux1.v = UIcons1;
6826 UIaux2.v = UIcons2;
6827 I1 = vec_all_ge( UIaux1.v, UIaux2.v );
6828 Iaux = 1;
6829 for ( i=0; i< 4; i++ )
6830 {
6831 Iaux = Iaux && (UIaux1.e[i]>=UIaux2.e[i]);
6832 }
6833 if (I1 != Iaux) err++;
6834
6835 if (err)
6836 printf("Function vec_all_ge [type unsigned int] ===> Error\n");
6837 else
6838 printf("Function vec_all_ge [type unsigned int] ===> OK\n");
6839
6840 err = 0;
6841 Iaux1.v = Icons2;
6842 Iaux2.v = Icons2;
6843 I1 = vec_all_ge( Iaux1.v, Iaux2.v );
6844 Iaux = 1;
6845 for ( i=0; i< 4; i++ )
6846 {
6847 Iaux = Iaux && (Iaux1.e[i]>=Iaux2.e[i]);
6848 }
6849 if (I1 != Iaux) err++;
6850
6851 Iaux1.v = Icons2;
6852 Iaux2.v = Icons1;
6853 I1 = vec_all_ge( Iaux1.v, Iaux2.v );
6854 Iaux = 1;
6855 for ( i=0; i< 4; i++ )
6856 {
6857 Iaux = Iaux && (Iaux1.e[i]>=Iaux2.e[i]);
6858 }
6859 if (I1 != Iaux) err++;
6860
6861 if (err)
6862 printf("Function vec_all_ge [type int] ===> Error\n");
6863 else
6864 printf("Function vec_all_ge [type int] ===> OK\n");
6865
6866 #if defined TEST_FLOATS
6867 err = 0;
6868 Faux1.v = Fcons2;
6869 Faux2.v = Fcons1;
6870 I1 = vec_all_ge( Faux1.v, Faux2.v );
6871 Iaux = 1;
6872 for ( i=0; i< 4; i++ )
6873 {
6874 Iaux = Iaux && (Faux1.e[i]>=Faux2.e[i]);
6875 }
6876 if (I1 != Iaux) err++;
6877
6878 Faux1.v = Fcons2;
6879 Faux2.v = Fcons3;
6880 I1 = vec_all_ge( Faux1.v, Faux2.v );
6881 Iaux = 1;
6882 for ( i=0; i< 4; i++ )
6883 {
6884 Iaux = Iaux && (Faux1.e[i]>=Faux2.e[i]);
6885 }
6886 if (I1 != Iaux) err++;
6887
6888 if (err)
6889 printf("Function vec_all_ge [type float] ===> Error\n");
6890 else
6891 printf("Function vec_all_ge [type float] ===> OK\n");
6892 #endif
6893
6894 /* Function vec_all_gt */
6895 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
6896 err = 0;
6897 # if defined (GCC_COMPILER)
6898 UCaux1.v = (vector unsigned char){248, 249, 250, 251, 252, 253, 254, 255, 2, 3, 4, 5, 6, 7, 8, 9};
6899 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
6900 UCaux1.v = (vector unsigned char)(248, 249, 250, 251, 252, 253, 254, 255, 2, 3, 4, 5, 6, 7, 8, 9);
6901 # endif
6902 UCaux2.v = UCcons2;
6903 I1 = vec_all_gt( UCaux1.v, UCaux2.v );
6904 Iaux = 1;
6905 for ( i=0; i< 16; i++ )
6906 {
6907 Iaux = Iaux && (UCaux1.e[i]>UCaux2.e[i]);
6908 }
6909 if (I1 != Iaux) err++;
6910
6911 UCaux1.v = UCcons2;
6912 UCaux2.v = UCcons3;
6913 I1 = vec_all_gt( UCaux1.v, UCaux2.v );
6914 Iaux = 1;
6915 for ( i=0; i< 16; i++ )
6916 {
6917 Iaux = Iaux && (UCaux1.e[i]>UCaux2.e[i]);
6918 }
6919 if (I1 != Iaux) err++;
6920
6921 if (err)
6922 printf("Function vec_all_gt [type unsigned char] ===> Error\n");
6923 else
6924 printf("Function vec_all_gt [type unsigned char] ===> OK\n");
6925
6926 err = 0;
6927 # if defined (GCC_COMPILER)
6928 Caux1.v = (vector signed char){9, 8, 7, 6, 5, 4, 3, 2, 3, 4, 5, 6, 7, 8, 9, 10};
6929 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
6930 Caux1.v = (vector signed char)(9, 8, 7, 6, 5, 4, 3, 2, 3, 4, 5, 6, 7, 8, 9, 10);
6931 # endif
6932 Caux2.v = Ccons2;
6933 I1 = vec_all_gt( Caux1.v, Caux2.v );
6934 Iaux = 1;
6935 for ( i=0; i< 16; i++ )
6936 {
6937 Iaux = Iaux && (Caux1.e[i]>Caux2.e[i]);
6938 }
6939 if (I1 != Iaux) err++;
6940
6941 Caux1.v = Ccons2;
6942 Caux2.v = Ccons3;
6943 I1 = vec_all_gt( Caux1.v, Caux2.v );
6944 Iaux = 1;
6945 for ( i=0; i< 16; i++ )
6946 {
6947 Iaux = Iaux && (Caux1.e[i]>Caux2.e[i]);
6948 }
6949 if (I1 != Iaux) err++;
6950
6951 if (err)
6952 printf("Function vec_all_gt [type char] ===> Error\n");
6953 else
6954 printf("Function vec_all_gt [type char] ===> OK\n");
6955
6956 err = 0;
6957 # if defined (GCC_COMPILER)
6958 USaux1.v = (vector unsigned short){65532, 65533, 65534, 65535, 2, 3, 4, 5};
6959 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
6960 USaux1.v = (vector unsigned short)(65532, 65533, 65534, 65535, 2, 3, 4, 5);
6961 # endif
6962 USaux2.v = UScons2;
6963 I1 = vec_all_gt( USaux1.v, USaux2.v );
6964 Iaux = 1;
6965 for ( i=0; i< 8; i++ )
6966 {
6967 Iaux = Iaux && (USaux1.e[i]>USaux2.e[i]);
6968 }
6969 if (I1 != Iaux) err++;
6970
6971 USaux1.v = UScons1;
6972 USaux2.v = UScons2;
6973 I1 = vec_all_gt( USaux1.v, USaux2.v );
6974 Iaux = 1;
6975 for ( i=0; i< 8; i++ )
6976 {
6977 Iaux = Iaux && (USaux1.e[i]>USaux2.e[i]);
6978 }
6979 if (I1 != Iaux) err++;
6980
6981 if (err)
6982 printf("Function vec_all_gt [type unsigned short] ===> Error\n");
6983 else
6984 printf("Function vec_all_gt [type unsigned short] ===> OK\n");
6985
6986 err = 0;
6987 # if defined (GCC_COMPILER)
6988 Saux1.v = (vector signed short){4, 3, 2, 1, 2, 3, 4, 5};
6989 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
6990 Saux1.v = (vector signed short)(4, 3, 2, 1, 2, 3, 4, 5);
6991 # endif
6992 Saux2.v = Scons1;
6993 I1 = vec_all_gt( Saux1.v, Saux2.v );
6994 Iaux = 1;
6995 for ( i=0; i< 8; i++ )
6996 {
6997 Iaux = Iaux && (Saux1.e[i]>Saux2.e[i]);
6998 }
6999 if (I1 != Iaux) err++;
7000
7001 Saux1.v = Scons2;
7002 Saux2.v = Scons3;
7003 I1 = vec_all_gt( Saux1.v, Saux2.v );
7004 Iaux = 1;
7005 for ( i=0; i< 8; i++ )
7006 {
7007 Iaux = Iaux && (Saux1.e[i]>Saux2.e[i]);
7008 }
7009 if (I1 != Iaux) err++;
7010
7011 if (err)
7012 printf("Function vec_all_gt [type short] ===> Error\n");
7013 else
7014 printf("Function vec_all_gt [type short] ===> OK\n");
7015
7016 err = 0;
7017 # if defined (GCC_COMPILER)
7018 UIaux1.v = (vector unsigned int){3, 2, 3, 2};
7019 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7020 UIaux1.v = (vector unsigned int)(3, 2, 3, 2);
7021 # endif
7022 UIaux2.v = UIcons2;
7023 I1 = vec_all_gt( UIaux1.v, UIaux2.v );
7024 Iaux = 1;
7025 for ( i=0; i< 4; i++ )
7026 {
7027 Iaux = Iaux && (UIaux1.e[i]>UIaux2.e[i]);
7028 }
7029 if (I1 != Iaux) err++;
7030
7031 UIaux1.v = UIcons1;
7032 UIaux2.v = UIcons2;
7033 I1 = vec_all_gt( UIaux1.v, UIaux2.v );
7034 Iaux = 1;
7035 for ( i=0; i< 4; i++ )
7036 {
7037 Iaux = Iaux && (UIaux1.e[i]>UIaux2.e[i]);
7038 }
7039 if (I1 != Iaux) err++;
7040
7041 if (err)
7042 printf("Function vec_all_gt [type unsigned int] ===> Error\n");
7043 else
7044 printf("Function vec_all_gt [type unsigned int] ===> OK\n");
7045
7046 err = 0;
7047 # if defined (GCC_COMPILER)
7048 Iaux1.v = (vector signed int){4, 10, 10, 4};
7049 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7050 Iaux1.v = (vector signed int)(4, 10, 10, 4);
7051 # endif
7052 Iaux2.v = Icons2;
7053 I1 = vec_all_gt( Iaux1.v, Iaux2.v );
7054 Iaux = 1;
7055 for ( i=0; i< 4; i++ )
7056 {
7057 Iaux = Iaux && (Iaux1.e[i]>Iaux2.e[i]);
7058 }
7059 if (I1 != Iaux) err++;
7060
7061 Iaux1.v = Icons2;
7062 Iaux2.v = Icons1;
7063 I1 = vec_all_gt( Iaux1.v, Iaux2.v );
7064 Iaux = 1;
7065 for ( i=0; i< 4; i++ )
7066 {
7067 Iaux = Iaux && (Iaux1.e[i]>Iaux2.e[i]);
7068 }
7069 if (I1 != Iaux) err++;
7070
7071 if (err)
7072 printf("Function vec_all_gt [type int] ===> Error\n");
7073 else
7074 printf("Function vec_all_gt [type int] ===> OK\n");
7075
7076 #if defined TEST_FLOATS
7077 err = 0;
7078 # if defined (GCC_COMPILER)
7079 Faux1.v = (vector float){100000000000.0, 12.0, 12.0, 1234567890.0};
7080 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7081 Faux1.v = (vector float)(100000000000.0, 12.0, 12.0, 1234567890.0);
7082 # endif
7083 Faux2.v = Fcons1;
7084 I1 = vec_all_gt( Faux1.v, Faux2.v );
7085 Iaux = 1;
7086 for ( i=0; i< 4; i++ )
7087 {
7088 Iaux = Iaux && (Faux1.e[i]>Faux2.e[i]);
7089 }
7090 if (I1 != Iaux) err++;
7091
7092 Faux1.v = Fcons2;
7093 Faux2.v = Fcons3;
7094 I1 = vec_all_gt( Faux1.v, Faux2.v );
7095 Iaux = 1;
7096 for ( i=0; i< 4; i++ )
7097 {
7098 Iaux = Iaux && (Faux1.e[i]>Faux2.e[i]);
7099 }
7100 if (I1 != Iaux) err++;
7101
7102 if (err)
7103 printf("Function vec_all_gt [type float] ===> Error\n");
7104 else
7105 printf("Function vec_all_gt [type float] ===> OK\n");
7106 #endif
7107
7108 #if defined TEST_FLOATS
7109 /* Function vec_all_in */
7110 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
7111 err = 0;
7112 Faux1.v = Fcons1;
7113 Faux2.v = Fcons2;
7114 I1 = vec_all_in( Faux1.v, Faux2.v );
7115 Iaux = 1;
7116 for ( i=0; i< 4; i++ )
7117 {
7118 Iaux = Iaux && ((Faux1.e[i]<=Faux2.e[i]) && (Faux1.e[i]>=-Faux2.e[i]));
7119 }
7120 if (I1 != Iaux) err++;
7121
7122 Faux1.v = Fcons2;
7123 # if defined (GCC_COMPILER)
7124 Faux2.v = (vector float){100000000000.0, 1.0, 1.0, 1234567890.0};
7125 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7126 Faux2.v = (vector float)(100000000000.0, 1.0, 1.0, 1234567890.0);
7127 # endif
7128 I1 = vec_all_in( Faux1.v, Faux2.v );
7129 Iaux = 1;
7130 for ( i=0; i< 4; i++ )
7131 {
7132 Iaux = Iaux && ((Faux1.e[i]<=Faux2.e[i]) && (Faux1.e[i]>=-Faux2.e[i]));
7133 }
7134 if (I1 != Iaux) err++;
7135
7136 if (err)
7137 printf("Function vec_all_in [type float] ===> Error\n");
7138 else
7139 printf("Function vec_all_in [type float] ===> OK\n");
7140 #endif
7141
7142 /* Function vec_all_le */
7143 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
7144 err = 0;
7145 UCaux1.v = UCcons2;
7146 UCaux2.v = UCcons3;
7147 I1 = vec_all_le( UCaux1.v, UCaux2.v );
7148 Iaux = 1;
7149 for ( i=0; i< 16; i++ )
7150 {
7151 Iaux = Iaux && (UCaux1.e[i]<=UCaux2.e[i]);
7152 }
7153 if (I1 != Iaux) err++;
7154
7155 UCaux1.v = UCcons1;
7156 UCaux2.v = UCcons2;
7157 I1 = vec_all_le( UCaux1.v, UCaux2.v );
7158 Iaux = 1;
7159 for ( i=0; i< 16; i++ )
7160 {
7161 Iaux = Iaux && (UCaux1.e[i]<=UCaux2.e[i]);
7162 }
7163 if (I1 != Iaux) err++;
7164
7165 if (err)
7166 printf("Function vec_all_le [type unsigned char] ===> Error\n");
7167 else
7168 printf("Function vec_all_le [type unsigned char] ===> OK\n");
7169
7170 err = 0;
7171 Caux1.v = Ccons2;
7172 Caux2.v = Ccons2;
7173 I1 = vec_all_le( Caux1.v, Caux2.v );
7174 Iaux = 1;
7175 for ( i=0; i< 16; i++ )
7176 {
7177 Iaux = Iaux && (Caux1.e[i]<=Caux2.e[i]);
7178 }
7179 if (I1 != Iaux) err++;
7180
7181 Caux1.v = Ccons2;
7182 Caux2.v = Ccons3;
7183 I1 = vec_all_le( Caux1.v, Caux2.v );
7184 Iaux = 1;
7185 for ( i=0; i< 16; i++ )
7186 {
7187 Iaux = Iaux && (Caux1.e[i]<=Caux2.e[i]);
7188 }
7189 if (I1 != Iaux) err++;
7190
7191 if (err)
7192 printf("Function vec_all_le [type char] ===> Error\n");
7193 else
7194 printf("Function vec_all_le [type char] ===> OK\n");
7195
7196 err = 0;
7197 USaux1.v = UScons2;
7198 USaux2.v = UScons3;
7199 I1 = vec_all_le( USaux1.v, USaux2.v );
7200 Iaux = 1;
7201 for ( i=0; i< 8; i++ )
7202 {
7203 Iaux = Iaux && (USaux1.e[i]<=USaux2.e[i]);
7204 }
7205 if (I1 != Iaux) err++;
7206
7207 USaux1.v = UScons1;
7208 USaux2.v = UScons2;
7209 I1 = vec_all_le( USaux1.v, USaux2.v );
7210 Iaux = 1;
7211 for ( i=0; i< 8; i++ )
7212 {
7213 Iaux = Iaux && (USaux1.e[i]<=USaux2.e[i]);
7214 }
7215 if (I1 != Iaux) err++;
7216
7217 if (err)
7218 printf("Function vec_all_le [type unsigned short] ===> Error\n");
7219 else
7220 printf("Function vec_all_le [type unsigned short] ===> OK\n");
7221
7222 err = 0;
7223 Saux1.v = Scons1;
7224 Saux2.v = Scons1;
7225 I1 = vec_all_le( Saux1.v, Saux2.v );
7226 Iaux = 1;
7227 for ( i=0; i< 8; i++ )
7228 {
7229 Iaux = Iaux && (Saux1.e[i]<=Saux2.e[i]);
7230 }
7231 if (I1 != Iaux) err++;
7232
7233 Saux1.v = Scons2;
7234 Saux2.v = Scons3;
7235 I1 = vec_all_le( Saux1.v, Saux2.v );
7236 Iaux = 1;
7237 for ( i=0; i< 8; i++ )
7238 {
7239 Iaux = Iaux && (Saux1.e[i]<=Saux2.e[i]);
7240 }
7241 if (I1 != Iaux) err++;
7242
7243 if (err)
7244 printf("Function vec_all_le [type short] ===> Error\n");
7245 else
7246 printf("Function vec_all_le [type short] ===> OK\n");
7247
7248 err = 0;
7249 UIaux1.v = UIcons2;
7250 UIaux2.v = UIcons3;
7251 I1 = vec_all_le( UIaux1.v, UIaux2.v );
7252 Iaux = 1;
7253 for ( i=0; i< 4; i++ )
7254 {
7255 Iaux = Iaux && (UIaux1.e[i]<=UIaux2.e[i]);
7256 }
7257 if (I1 != Iaux) err++;
7258
7259 UIaux1.v = UIcons1;
7260 UIaux2.v = UIcons2;
7261 I1 = vec_all_le( UIaux1.v, UIaux2.v );
7262 Iaux = 1;
7263 for ( i=0; i< 4; i++ )
7264 {
7265 Iaux = Iaux && (UIaux1.e[i]<=UIaux2.e[i]);
7266 }
7267 if (I1 != Iaux) err++;
7268
7269 if (err)
7270 printf("Function vec_all_le [type unsigned int] ===> Error\n");
7271 else
7272 printf("Function vec_all_le [type unsigned int] ===> OK\n");
7273
7274 err = 0;
7275 Iaux1.v = Icons2;
7276 Iaux2.v = Icons2;
7277 I1 = vec_all_le( Iaux1.v, Iaux2.v );
7278 Iaux = 1;
7279 for ( i=0; i< 4; i++ )
7280 {
7281 Iaux = Iaux && (Iaux1.e[i]<=Iaux2.e[i]);
7282 }
7283 if (I1 != Iaux) err++;
7284
7285 Iaux1.v = Icons1;
7286 Iaux2.v = Icons2;
7287 I1 = vec_all_le( Iaux1.v, Iaux2.v );
7288 Iaux = 1;
7289 for ( i=0; i< 4; i++ )
7290 {
7291 Iaux = Iaux && (Iaux1.e[i]<=Iaux2.e[i]);
7292 }
7293 if (I1 != Iaux) err++;
7294
7295 if (err)
7296 printf("Function vec_all_le [type int] ===> Error\n");
7297 else
7298 printf("Function vec_all_le [type int] ===> OK\n");
7299
7300 #if defined TEST_FLOATS
7301 err = 0;
7302 Faux1.v = Fcons1;
7303 Faux2.v = Fcons2;
7304 I1 = vec_all_le( Faux1.v, Faux2.v );
7305 Iaux = 1;
7306 for ( i=0; i< 4; i++ )
7307 {
7308 Iaux = Iaux && (Faux1.e[i]<=Faux2.e[i]);
7309 }
7310 if (I1 != Iaux) err++;
7311
7312 Faux1.v = Fcons2;
7313 Faux2.v = Fcons3;
7314 I1 = vec_all_le( Faux1.v, Faux2.v );
7315 Iaux = 1;
7316 for ( i=0; i< 4; i++ )
7317 {
7318 Iaux = Iaux && (Faux1.e[i]<=Faux2.e[i]);
7319 }
7320 if (I1 != Iaux) err++;
7321
7322 if (err)
7323 printf("Function vec_all_le [type float] ===> Error\n");
7324 else
7325 printf("Function vec_all_le [type float] ===> OK\n");
7326 #endif
7327
7328 /* Function vec_all_lt */
7329 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
7330 err = 0;
7331 UCaux1.v = UCcons2;
7332 # if defined (GCC_COMPILER)
7333 UCaux2.v = (vector unsigned char){248, 249, 250, 251, 252, 253, 254, 255, 2, 3, 4, 5, 6, 7, 8, 9};
7334 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7335 UCaux2.v = (vector unsigned char)(248, 249, 250, 251, 252, 253, 254, 255, 2, 3, 4, 5, 6, 7, 8, 9);
7336 # endif
7337 I1 = vec_all_lt( UCaux1.v, UCaux2.v );
7338 Iaux = 1;
7339 for ( i=0; i< 16; i++ )
7340 {
7341 Iaux = Iaux && (UCaux1.e[i]<UCaux2.e[i]);
7342 }
7343 if (I1 != Iaux) err++;
7344
7345 UCaux1.v = UCcons3;
7346 UCaux2.v = UCcons2;
7347 I1 = vec_all_lt( UCaux1.v, UCaux2.v );
7348 Iaux = 1;
7349 for ( i=0; i< 16; i++ )
7350 {
7351 Iaux = Iaux && (UCaux1.e[i]<UCaux2.e[i]);
7352 }
7353 if (I1 != Iaux) err++;
7354
7355 if (err)
7356 printf("Function vec_all_lt [type unsigned char] ===> Error\n");
7357 else
7358 printf("Function vec_all_lt [type unsigned char] ===> OK\n");
7359
7360 err = 0;
7361 Caux1.v = Ccons2;
7362 # if defined (GCC_COMPILER)
7363 Caux2.v = (vector signed char){9, 8, 7, 6, 5, 4, 3, 2, 3, 4, 5, 6, 7, 8, 9, 10};
7364 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7365 Caux2.v = (vector signed char)(9, 8, 7, 6, 5, 4, 3, 2, 3, 4, 5, 6, 7, 8, 9, 10);
7366 # endif
7367 I1 = vec_all_lt( Caux1.v, Caux2.v );
7368 Iaux = 1;
7369 for ( i=0; i< 16; i++ )
7370 {
7371 Iaux = Iaux && (Caux1.e[i]<Caux2.e[i]);
7372 }
7373 if (I1 != Iaux) err++;
7374
7375 Caux1.v = Ccons3;
7376 Caux2.v = Ccons2;
7377 I1 = vec_all_lt( Caux1.v, Caux2.v );
7378 Iaux = 1;
7379 for ( i=0; i< 16; i++ )
7380 {
7381 Iaux = Iaux && (Caux1.e[i]<Caux2.e[i]);
7382 }
7383 if (I1 != Iaux) err++;
7384
7385 if (err)
7386 printf("Function vec_all_lt [type char] ===> Error\n");
7387 else
7388 printf("Function vec_all_lt [type char] ===> OK\n");
7389
7390 err = 0;
7391 USaux1.v = UScons2;
7392 # if defined (GCC_COMPILER)
7393 USaux2.v = (vector unsigned short){65532, 65533, 65534, 65535, 2, 3, 4, 5};
7394 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7395 USaux2.v = (vector unsigned short)(65532, 65533, 65534, 65535, 2, 3, 4, 5);
7396 # endif
7397 I1 = vec_all_lt( USaux1.v, USaux2.v );
7398 Iaux = 1;
7399 for ( i=0; i< 8; i++ )
7400 {
7401 Iaux = Iaux && (USaux1.e[i]<USaux2.e[i]);
7402 }
7403 if (I1 != Iaux) err++;
7404
7405 USaux1.v = UScons2;
7406 USaux2.v = UScons1;
7407 I1 = vec_all_lt( USaux1.v, USaux2.v );
7408 Iaux = 1;
7409 for ( i=0; i< 8; i++ )
7410 {
7411 Iaux = Iaux && (USaux1.e[i]<USaux2.e[i]);
7412 }
7413 if (I1 != Iaux) err++;
7414
7415 if (err)
7416 printf("Function vec_all_lt [type unsigned short] ===> Error\n");
7417 else
7418 printf("Function vec_all_lt [type unsigned short] ===> OK\n");
7419
7420 err = 0;
7421 Saux1.v = Scons1;
7422 # if defined (GCC_COMPILER)
7423 Saux2.v = (vector signed short){4, 3, 2, 1, 2, 3, 4, 5};
7424 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7425 Saux2.v = (vector signed short)(4, 3, 2, 1, 2, 3, 4, 5);
7426 # endif
7427 I1 = vec_all_lt( Saux1.v, Saux2.v );
7428 Iaux = 1;
7429 for ( i=0; i< 8; i++ )
7430 {
7431 Iaux = Iaux && (Saux1.e[i]<Saux2.e[i]);
7432 }
7433 if (I1 != Iaux) err++;
7434
7435 Saux1.v = Scons3;
7436 Saux2.v = Scons2;
7437 I1 = vec_all_lt( Saux1.v, Saux2.v );
7438 Iaux = 1;
7439 for ( i=0; i< 8; i++ )
7440 {
7441 Iaux = Iaux && (Saux1.e[i]<Saux2.e[i]);
7442 }
7443 if (I1 != Iaux) err++;
7444
7445 if (err)
7446 printf("Function vec_all_lt [type short] ===> Error\n");
7447 else
7448 printf("Function vec_all_lt [type short] ===> OK\n");
7449
7450 err = 0;
7451 UIaux1.v = UIcons2;
7452 # if defined (GCC_COMPILER)
7453 UIaux2.v = (vector unsigned int){3, 2, 3, 2};
7454 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7455 UIaux2.v = (vector unsigned int)(3, 2, 3, 2);
7456 # endif
7457 I1 = vec_all_lt( UIaux1.v, UIaux2.v );
7458 Iaux = 1;
7459 for ( i=0; i< 4; i++ )
7460 {
7461 Iaux = Iaux && (UIaux1.e[i]<UIaux2.e[i]);
7462 }
7463 if (I1 != Iaux) err++;
7464
7465 UIaux1.v = UIcons2;
7466 UIaux2.v = UIcons1;
7467 I1 = vec_all_lt( UIaux1.v, UIaux2.v );
7468 Iaux = 1;
7469 for ( i=0; i< 4; i++ )
7470 {
7471 Iaux = Iaux && (UIaux1.e[i]<UIaux2.e[i]);
7472 }
7473 if (I1 != Iaux) err++;
7474
7475 if (err)
7476 printf("Function vec_all_lt [type unsigned int] ===> Error\n");
7477 else
7478 printf("Function vec_all_lt [type unsigned int] ===> OK\n");
7479
7480 err = 0;
7481 Iaux1.v = Icons2;
7482 # if defined (GCC_COMPILER)
7483 Iaux2.v = (vector signed int){4, 10, 10, 4};
7484 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7485 Iaux2.v = (vector signed int)(4, 10, 10, 4);
7486 # endif
7487 I1 = vec_all_lt( Iaux1.v, Iaux2.v );
7488 Iaux = 1;
7489 for ( i=0; i< 4; i++ )
7490 {
7491 Iaux = Iaux && (Iaux1.e[i]<Iaux2.e[i]);
7492 }
7493 if (I1 != Iaux) err++;
7494
7495 Iaux1.v = Icons1;
7496 Iaux2.v = Icons2;
7497 I1 = vec_all_lt( Iaux1.v, Iaux2.v );
7498 Iaux = 1;
7499 for ( i=0; i< 4; i++ )
7500 {
7501 Iaux = Iaux && (Iaux1.e[i]<Iaux2.e[i]);
7502 }
7503 if (I1 != Iaux) err++;
7504
7505 if (err)
7506 printf("Function vec_all_lt [type int] ===> Error\n");
7507 else
7508 printf("Function vec_all_lt [type int] ===> OK\n");
7509
7510 #if defined TEST_FLOATS
7511 err = 0;
7512 Faux1.v = Fcons1;
7513 # if defined (GCC_COMPILER)
7514 Faux2.v = (vector float){100000000000.0, 12.0, 12.0, 1234567890.0};
7515 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7516 Faux2.v = (vector float)(100000000000.0, 12.0, 12.0, 1234567890.0);
7517 # endif
7518 I1 = vec_all_lt( Faux1.v, Faux2.v );
7519 Iaux = 1;
7520 for ( i=0; i< 4; i++ )
7521 {
7522 Iaux = Iaux && (Faux1.e[i]<Faux2.e[i]);
7523 }
7524 if (I1 != Iaux) err++;
7525
7526 Faux1.v = Fcons3;
7527 Faux2.v = Fcons2;
7528 I1 = vec_all_lt( Faux1.v, Faux2.v );
7529 Iaux = 1;
7530 for ( i=0; i< 4; i++ )
7531 {
7532 Iaux = Iaux && (Faux1.e[i]<Faux2.e[i]);
7533 }
7534 if (I1 != Iaux) err++;
7535
7536 if (err)
7537 printf("Function vec_all_lt [type float] ===> Error\n");
7538 else
7539 printf("Function vec_all_lt [type float] ===> OK\n");
7540 #endif
7541
7542 #if defined TEST_FLOATS
7543 /* Function vec_all_nan */
7544 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
7545 err = 0;
7546 # if defined (GCC_COMPILER)
7547 Faux1.v = (vector float){NAN, NAN, NAN, NAN};
7548 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7549 Faux1.v = (vector float)(NAN, NAN, NAN, NAN);
7550 # endif
7551 I1 = vec_all_nan( Faux1.v );
7552 Iaux = 1;
7553 for ( i=0; i< 4; i++ )
7554 {
7555 Iaux = Iaux && (isnan(Faux1.e[i]));
7556 }
7557 if (I1 != Iaux) err++;
7558
7559 Faux1.v = Fcons1;
7560 I1 = vec_all_nan( Faux1.v );
7561 Iaux = 1;
7562 for ( i=0; i< 4; i++ )
7563 {
7564 Iaux = Iaux && (isnan(Faux1.e[i]));
7565 }
7566 if (I1 != Iaux) err++;
7567
7568 if (err)
7569 printf("Function vec_all_nan [type float] ===> Error\n");
7570 else
7571 printf("Function vec_all_nan [type float] ===> OK\n");
7572 #endif
7573
7574 /* Function vec_all_ne */
7575 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
7576 err = 0;
7577 # if defined (GCC_COMPILER)
7578 Caux1.v = (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
7579 Caux2.v = (vector signed char){-7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, -8};
7580 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7581 Caux1.v = (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
7582 Caux2.v = (vector signed char)(-7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, -8);
7583 # endif
7584 b = vec_all_ne (Caux1.v, Caux2.v);
7585 bAux = 1;
7586 for (i=0; i<16; i++)
7587 bAux = bAux && (Caux1.e[i]!=Caux2.e[i]);
7588 if (bAux != b) err = 1;
7589
7590 # if defined (GCC_COMPILER)
7591 Caux1.v = (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
7592 Caux2.v = (vector signed char){-7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 4, 6, 7, -8};
7593 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7594 Caux1.v = (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
7595 Caux2.v = (vector signed char)(-7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 4, 6, 7, -8);
7596 # endif
7597 b = vec_all_ne (Caux1.v, Caux2.v);
7598 bAux= 1;
7599 for (i=0; i<16; i++)
7600 bAux= bAux && (Caux1.e[i]!=Caux2.e[i]);
7601 if (bAux!=b) err= 1;
7602
7603 # if defined (GCC_COMPILER)
7604 Caux1.v = (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
7605 Caux2.v = (vector signed char){-7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 4, 6, 7, -8};
7606 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7607 Caux1.v = (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
7608 Caux2.v = (vector signed char)(-7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 4, 6, 7, -8);
7609 # endif
7610 b = vec_all_ne (Caux1.v, Caux2.v);
7611 bAux = 1;
7612 for (i=0; i<16; i++)
7613 bAux = bAux && (Caux1.e[i] != Caux2.e[i]);
7614 if (bAux != b) err = 1;
7615
7616 if (err)
7617 printf("Function vec_all_ne [type char] ===> Error\n");
7618 else
7619 printf("Function vec_all_ne [type char] ===> OK\n");
7620
7621
7622 err = 0;
7623 # if defined (GCC_COMPILER)
7624 UCaux1.v = (vector unsigned char){200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17};
7625 UCaux2.v = (vector unsigned char){201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17,200};
7626 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7627 UCaux1.v = (vector unsigned char)(200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17);
7628 UCaux2.v = (vector unsigned char)(201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17,200);
7629 # endif
7630
7631 b = vec_all_ne (UCaux1.v, UCaux2.v);
7632 bAux= 1;
7633 for (i=0; i<16; i++)
7634 bAux= bAux && (UCaux1.e[i]!=UCaux2.e[i]);
7635 if (bAux!=b) err= 1;
7636
7637 # if defined (GCC_COMPILER)
7638 UCaux1.v = (vector unsigned char){200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17};
7639 UCaux2.v = (vector unsigned char){201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17,200};
7640 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7641 UCaux1.v = (vector unsigned char)(200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17);
7642 UCaux2.v = (vector unsigned char)(201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17,200);
7643 # endif
7644 b = vec_all_ne (UCaux1.v, UCaux2.v);
7645 bAux = 1;
7646 for (i=0; i<16; i++)
7647 bAux = bAux && (UCaux1.e[i] != UCaux2.e[i]);
7648 if (bAux != b) err = 1;
7649
7650 # if defined (GCC_COMPILER)
7651 UCaux1.v = (vector unsigned char){200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17};
7652 UCaux2.v = (vector unsigned char){201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17,200};
7653 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7654 UCaux1.v = (vector unsigned char)(200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17);
7655 UCaux2.v = (vector unsigned char)(201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17,200);
7656 # endif
7657 b = vec_all_ne (UCaux1.v, UCaux2.v);
7658 bAux = 1;
7659 for (i=0; i<16; i++)
7660 bAux = bAux && (UCaux1.e[i] != UCaux2.e[i]);
7661 if (bAux != b) err = 1;
7662
7663 if (err)
7664 printf("Function vec_all_ne [type unsigned char] ===> Error\n");
7665 else
7666 printf("Function vec_all_ne [type unsigned char] ===> OK\n");
7667
7668
7669 err = 0;
7670 # if defined (GCC_COMPILER)
7671 Saux1.v = (vector signed short){-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100};
7672 Saux2.v = (vector signed short){-3700, -3600, -3500, 0, 3300, 3200, 3100,-3800};
7673 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7674 Saux1.v = (vector signed short)(-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100);
7675 Saux2.v = (vector signed short)(-3700, -3600, -3500, 0, 3300, 3200, 3100,-3800);
7676 # endif
7677 b = vec_all_ne (Saux1.v, Saux2.v);
7678 bAux = 1;
7679 for (i=0; i<8; i++)
7680 bAux = bAux && (Saux1.e[i] != Saux2.e[i]);
7681 if (bAux != b) err = 1;
7682
7683 # if defined (GCC_COMPILER)
7684 Saux1.v = (vector signed short){-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100};
7685 Saux2.v = (vector signed short){-3700, -3600, -3500, 0, 3300, 3200, 3100,-3800};
7686 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7687 Saux1.v = (vector signed short)(-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100);
7688 Saux2.v = (vector signed short)(-3700, -3600, -3500, 0, 3300, 3200, 3100,-3800);
7689 # endif
7690 b = vec_all_ne (Saux1.v, Saux2.v);
7691 bAux = 1;
7692 for (i=0; i<8; i++)
7693 bAux = bAux && (Saux1.e[i] != Saux2.e[i]);
7694 if (bAux != b) err = 1;
7695
7696 # if defined (GCC_COMPILER)
7697 Saux1.v = (vector signed short){-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100};
7698 Saux2.v = (vector signed short){-3700, -3600, -3500, 0, 3300, 3200, 3100,-3800};
7699 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7700 Saux1.v = (vector signed short)(-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100);
7701 Saux2.v = (vector signed short)(-3700, -3600, -3500, 0, 3300, 3200, 3100,-3800);
7702 # endif
7703 b = vec_all_ne (Saux1.v, Saux2.v);
7704 bAux = 1;
7705 for (i=0; i<8; i++)
7706 bAux = bAux && (Saux1.e[i] != Saux2.e[i]);
7707 if (bAux != b) err = 1;
7708
7709 if (err)
7710 printf("Function vec_all_ne [type short] ===> Error\n");
7711 else
7712 printf("Function vec_all_ne [type short] ===> OK\n");
7713
7714
7715 err = 0;
7716 # if defined (GCC_COMPILER)
7717 USaux1.v = (vector unsigned short){48000, 47000, 46000, 45000, 0, 3300, 3200, 3100};
7718 USaux2.v = (vector unsigned short){47000, 46000, 45000, 0, 3300, 3200, 3100,48000};
7719 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7720 USaux1.v = (vector unsigned short)(48000, 47000, 46000, 45000, 0, 3300, 3200, 3100);
7721 USaux2.v = (vector unsigned short)(47000, 46000, 45000, 0, 3300, 3200, 3100,48000);
7722 # endif
7723 b = vec_all_ne (USaux1.v, USaux2.v);
7724 bAux = 1;
7725 for (i=0; i<8; i++)
7726 bAux = bAux && (USaux1.e[i] != USaux2.e[i]);
7727 if (bAux != b) err = 1;
7728
7729 # if defined (GCC_COMPILER)
7730 USaux1.v = (vector unsigned short){48000, 47000, 46000, 45000, 0, 3300, 3200, 3100};
7731 USaux2.v = (vector unsigned short){47000, 46000, 45000, 0, 3300, 3200, 3100,48000};
7732 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7733 USaux1.v = (vector unsigned short)(48000, 47000, 46000, 45000, 0, 3300, 3200, 3100);
7734 USaux2.v = (vector unsigned short)(47000, 46000, 45000, 0, 3300, 3200, 3100,48000);
7735 # endif
7736 b = vec_all_ne (USaux1.v, USaux2.v);
7737 bAux = 1;
7738 for (i=0; i<8; i++)
7739 bAux = bAux && (USaux1.e[i] != USaux2.e[i]);
7740 if (bAux != b) err = 1;
7741
7742 # if defined (GCC_COMPILER)
7743 USaux1.v = (vector unsigned short){48000, 47000, 46000, 45000, 0, 3300, 3200, 3100};
7744 USaux2.v = (vector unsigned short){47000, 46000, 45000, 0, 3300, 3200, 3100,48000};
7745 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7746 USaux1.v = (vector unsigned short)(48000, 47000, 46000, 45000, 0, 3300, 3200, 3100);
7747 USaux2.v = (vector unsigned short)(47000, 46000, 45000, 0, 3300, 3200, 3100,48000);
7748 # endif
7749 b = vec_all_ne (USaux1.v, USaux2.v);
7750 bAux = 1;
7751 for (i=0; i<8; i++)
7752 bAux = bAux && (USaux1.e[i] != USaux2.e[i]);
7753 if (bAux != b) err = 1;
7754
7755 if (err)
7756 printf("Function vec_all_ne [type unsigned short] ===> Error\n");
7757 else
7758 printf("Function vec_all_ne [type unsigned short] ===> OK\n");
7759
7760
7761 err = 0;
7762 # if defined (GCC_COMPILER)
7763 Iaux1.v = (vector signed int){-1003800, -1003700, 0, 1003300};
7764 Iaux2.v = (vector signed int){-1003700, 0, 1003300,-1003800};
7765 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7766 Iaux1.v = (vector signed int)(-1003800, -1003700, 0, 1003300);
7767 Iaux2.v = (vector signed int)(-1003700, 0, 1003300,-1003800);
7768 # endif
7769 b = vec_all_ne (Iaux1.v, Iaux2.v);
7770 bAux = 1;
7771 for (i=0; i<4; i++)
7772 bAux = bAux && (Iaux1.e[i] != Iaux2.e[i]);
7773 if (bAux != b) err = 1;
7774
7775 # if defined (GCC_COMPILER)
7776 Iaux1.v = (vector signed int){-1003800, -1003700, 0, 1003300};
7777 Iaux2.v = (vector signed int){-1003700, 0, 1003300,-1003800};
7778 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7779 Iaux1.v = (vector signed int)(-1003800, -1003700, 0, 1003300);
7780 Iaux2.v = (vector signed int)(-1003700, 0, 1003300,-1003800);
7781 # endif
7782 b = vec_all_ne (Iaux1.v, Iaux2.v);
7783 bAux = 1;
7784 for (i=0; i<4; i++)
7785 bAux = bAux && (Iaux1.e[i] != Iaux2.e[i]);
7786 if (bAux != b) err = 1;
7787
7788 # if defined (GCC_COMPILER)
7789 Iaux1.v= (vector signed int){-1003800, -1003700, 0, 1003300};
7790 Iaux2.v= (vector signed int){-1003700, 0, 1003300,-1003800};
7791 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7792 Iaux1.v= (vector signed int)(-1003800, -1003700, 0, 1003300);
7793 Iaux2.v= (vector signed int)(-1003700, 0, 1003300,-1003800);
7794 # endif
7795 b = vec_all_ne (Iaux1.v, Iaux2.v);
7796 bAux = 1;
7797 for (i=0; i<4; i++)
7798 bAux = bAux && (Iaux1.e[i] != Iaux2.e[i]);
7799 if (bAux != b) err = 1;
7800
7801 if (err)
7802 printf("Function vec_all_ne [type int] ===> Error\n");
7803 else
7804 printf("Function vec_all_ne [type int] ===> OK\n");
7805
7806
7807 err = 0;
7808 # if defined (GCC_COMPILER)
7809 UIaux1.v = (vector unsigned int){0xFFFFF000, 12345678, 0, 1};
7810 UIaux2.v = (vector unsigned int){ 12345678, 0, 1,0xFFFFF000};
7811 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7812 UIaux1.v = (vector unsigned int)(0xFFFFF000, 12345678, 0, 1);
7813 UIaux2.v = (vector unsigned int)( 12345678, 0, 1,0xFFFFF000);
7814 # endif
7815 b = vec_all_ne (UIaux1.v, UIaux2.v);
7816 bAux = 1;
7817 for (i=0; i<4; i++)
7818 bAux = bAux && (UIaux1.e[i] != UIaux2.e[i]);
7819 if (bAux != b) err = 1;
7820
7821 # if defined (GCC_COMPILER)
7822 UIaux1.v = (vector unsigned int){0xFFFFF000, 12345678, 0, 1};
7823 UIaux2.v = (vector unsigned int){ 12345678, 0, 1,0xFFFFF000};
7824 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7825 UIaux1.v = (vector unsigned int)(0xFFFFF000, 12345678, 0, 1);
7826 UIaux2.v = (vector unsigned int)( 12345678, 0, 1,0xFFFFF000);
7827 # endif
7828 b = vec_all_ne (UIaux1.v, UIaux2.v);
7829 bAux = 1;
7830 for (i=0; i<4; i++)
7831 bAux = bAux && (UIaux1.e[i] != UIaux2.e[i]);
7832 if (bAux != b) err = 1;
7833
7834 # if defined (GCC_COMPILER)
7835 UIaux1.v = (vector unsigned int){0xFFFFF000, 12345678, 0, 1};
7836 UIaux2.v = (vector unsigned int){ 12345678, 0, 1,0xFFFFF000};
7837 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7838 UIaux1.v = (vector unsigned int)(0xFFFFF000, 12345678, 0, 1);
7839 UIaux2.v = (vector unsigned int)( 12345678, 0, 1,0xFFFFF000);
7840 # endif
7841 b = vec_all_ne (UIaux1.v, UIaux2.v);
7842 bAux = 1;
7843 for (i=0; i<4; i++)
7844 bAux = bAux && (UIaux1.e[i] != UIaux2.e[i]);
7845 if (bAux != b) err = 1;
7846
7847 if (err)
7848 printf("Function vec_all_ne [type unsigned int] ===> Error\n");
7849 else
7850 printf("Function vec_all_ne [type unsigned int] ===> OK\n");
7851
7852 #if defined TEST_FLOATS
7853 err = 0;
7854 # if defined (GCC_COMPILER)
7855 Faux1.v = (vector float) {-1.5, 1.0, 0.5, -3.999};
7856 Faux2.v = (vector float) { 1.0, 0.5, -3.999, -1.5};
7857 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7858 Faux1.v = (vector float) (-1.5, 1.0, 0.5, -3.999);
7859 Faux2.v = (vector float) ( 1.0, 0.5, -3.999, -1.5);
7860 # endif
7861 b = vec_all_ne (Faux1.v, Faux2.v);
7862 bAux = 1;
7863 for (i=0; i<4; i++)
7864 bAux = bAux && (Faux1.e[i] != Faux2.e[i]);
7865 if (bAux != b) err = 1;
7866
7867 # if defined (GCC_COMPILER)
7868 Faux1.v = (vector float) {-1.5, 1.0, 0.5, -3.999};
7869 Faux2.v = (vector float) { 1.0, 0.5, -3.999, -1.5};
7870 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7871 Faux1.v = (vector float) (-1.5, 1.0, 0.5, -3.999);
7872 Faux2.v = (vector float) ( 1.0, 0.5, -3.999, -1.5);
7873 # endif
7874 b = vec_all_ne (Faux1.v, Faux2.v);
7875 bAux = 1;
7876 for (i=0; i<4; i++)
7877 bAux = bAux && (Faux1.e[i] != Faux2.e[i]);
7878 if (bAux != b) err = 1;
7879
7880 # if defined (GCC_COMPILER)
7881 Faux1.v = (vector float) {-1.5, 1.0, 0.5, -3.999};
7882 Faux2.v = (vector float) { 1.0, 0.5, -3.999, -1.5};
7883 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7884 Faux1.v = (vector float) (-1.5, 1.0, 0.5, -3.999);
7885 Faux2.v = (vector float) ( 1.0, 0.5, -3.999, -1.5);
7886 # endif
7887 b = vec_all_ne (Faux1.v, Faux2.v);
7888 bAux = 1;
7889 for (i=0; i<4; i++)
7890 bAux = bAux && (Faux1.e[i] != Faux2.e[i]);
7891 if (bAux != b) err = 1;
7892
7893 if (err)
7894 printf("Function vec_all_ne [type float] ===> Error\n");
7895 else
7896 printf("Function vec_all_ne [type float] ===> OK\n");
7897 #endif
7898
7899 #if defined TEST_FLOATS
7900 /* Function vec_all_nge */
7901 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
7902 err = 0;
7903 # if defined (GCC_COMPILER)
7904 Faux1.v = (vector float) {-1.5, 1.0, 0.5, -3.999};
7905 Faux2.v = (vector float) { 0.0, 3.5, 0.55, -1.5};
7906 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7907 Faux1.v = (vector float) (-1.5, 1.0, 0.5, -3.999);
7908 Faux2.v = (vector float) ( 0.0, 3.5, 0.55, -1.5);
7909 # endif
7910 b = vec_all_nge (Faux1.v, Faux2.v);
7911 bAux = 1;
7912 for (i=0; i<4; i++)
7913 bAux = bAux && (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) ||
7914 (Faux1.e[i] < Faux2.e[i]));
7915 if (bAux != b) err = 1;
7916
7917 # if defined (GCC_COMPILER)
7918 Faux1.v = (vector float) {-1.5, 1.0, 0.5, -3.999};
7919 Faux2.v = (vector float) { 0.0, 3.5, 0.55, -1.5};
7920 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7921 Faux1.v = (vector float) (-1.5, 1.0, 0.5, -3.999);
7922 Faux2.v = (vector float) ( 0.0, 3.5, 0.55, -1.5);
7923 # endif
7924 b = vec_all_nge (Faux1.v, Faux2.v);
7925 bAux = 1;
7926 for (i=0; i<4; i++)
7927 bAux = bAux && (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) ||
7928 (Faux1.e[i] < Faux2.e[i]));
7929 if (bAux != b) err = 1;
7930
7931 # if defined (GCC_COMPILER)
7932 Faux1.v = (vector float) {-1.5, 1.0, 0.5, -3.999};
7933 Faux2.v = (vector float) { 0.0, 3.5, 0.55, -1.5};
7934 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7935 Faux1.v = (vector float) (-1.5, 1.0, 0.5, -3.999);
7936 Faux2.v = (vector float) ( 0.0, 3.5, 0.55, -1.5);
7937 # endif
7938 b = vec_all_nge (Faux1.v, Faux2.v);
7939 bAux = 1;
7940 for (i=0; i<4; i++)
7941 bAux = bAux && (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) ||
7942 (Faux1.e[i] < Faux2.e[i]));
7943 if (bAux != b) err = 1;
7944
7945 # if defined (GCC_COMPILER)
7946 Faux1.v = (vector float) {-1.5, 1.0, 0.5, -3.999};
7947 Faux2.v = (vector float) { 0.0, 3.5, 0.55, -1.5};
7948 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7949 Faux1.v = (vector float) (-1.5, 1.0, 0.5, -3.999);
7950 Faux2.v = (vector float) ( 0.0, 3.5, 0.55, -1.5);
7951 # endif
7952 b = vec_all_nge (Faux1.v, Faux2.v);
7953 bAux = 1;
7954 for (i=0; i<4; i++)
7955 bAux = bAux && (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) ||
7956 (Faux1.e[i] < Faux2.e[i]));
7957 if (bAux != b) err = 1;
7958
7959 if (err)
7960 printf("Function vec_all_nge [type float] ===> Error\n");
7961 else
7962 printf("Function vec_all_nge [type float] ===> OK\n");
7963 #endif
7964
7965 #if defined TEST_FLOATS
7966 /* Function vec_all_ngt */
7967 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
7968 err = 0;
7969 # if defined (GCC_COMPILER)
7970 Faux1.v = (vector float) {-1.5, 1.0, 0.5, -3.999};
7971 Faux2.v = (vector float) { 0.0, 3.5, 0.55, -1.5};
7972 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7973 Faux1.v = (vector float) (-1.5, 1.0, 0.5, -3.999);
7974 Faux2.v = (vector float) ( 0.0, 3.5, 0.55, -1.5);
7975 # endif
7976 b = vec_all_ngt (Faux1.v, Faux2.v);
7977 bAux = 1;
7978 for (i=0; i<4; i++)
7979 bAux = bAux &&
7980 (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) || !(Faux1.e[i] > Faux2.e[i]));
7981 if (bAux != b) err = 1;
7982
7983 # if defined (GCC_COMPILER)
7984 Faux1.v = (vector float) {-1.5, 1.0, 0.5, -3.999};
7985 Faux2.v = (vector float) { 0.0, 3.5, 0.55, -1.5};
7986 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
7987 Faux1.v = (vector float) (-1.5, 1.0, 0.5, -3.999);
7988 Faux2.v = (vector float) ( 0.0, 3.5, 0.55, -1.5);
7989 # endif
7990 b = vec_all_ngt (Faux1.v, Faux2.v);
7991 bAux = 1;
7992 for (i=0; i<4; i++)
7993 bAux = bAux &&
7994 (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) || !(Faux1.e[i] > Faux2.e[i]));
7995 if (bAux != b) err = 1;
7996
7997 # if defined (GCC_COMPILER)
7998 Faux1.v = (vector float) {-1.5, 1.0, 0.5, -3.999};
7999 Faux2.v = (vector float) { 0.0, 3.5, 0.55, -1.5};
8000 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8001 Faux1.v = (vector float) (-1.5, 1.0, 0.5, -3.999);
8002 Faux2.v = (vector float) ( 0.0, 3.5, 0.55, -1.5);
8003 # endif
8004 b = vec_all_ngt (Faux1.v, Faux2.v);
8005 bAux = 1;
8006 for (i=0; i<4; i++)
8007 bAux = bAux &&
8008 (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) || !(Faux1.e[i] > Faux2.e[i]));
8009 if (bAux!=b) err= 1;
8010
8011 # if defined (GCC_COMPILER)
8012 Faux1.v = (vector float) {-1.5, 1.0, 0.5, -3.999};
8013 Faux2.v = (vector float) { 0.0, 3.5, 0.55, -1.5};
8014 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8015 Faux1.v = (vector float) (-1.5, 1.0, 0.5, -3.999);
8016 Faux2.v = (vector float) ( 0.0, 3.5, 0.55, -1.5);
8017 # endif
8018 b = vec_all_ngt (Faux1.v, Faux2.v);
8019 bAux = 1;
8020 for (i=0; i<4; i++)
8021 bAux = bAux &&
8022 (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) || !(Faux1.e[i] > Faux2.e[i]));
8023 if (bAux != b) err = 1;
8024
8025 if (err)
8026 printf("Function vec_all_ngt [type float] ===> Error\n");
8027 else
8028 printf("Function vec_all_ngt [type float] ===> OK\n");
8029 #endif
8030
8031 #if defined TEST_FLOATS
8032 /* Function vec_all_nle */
8033 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
8034 err = 0;
8035 # if defined (GCC_COMPILER)
8036 Faux1.v = (vector float) { 0.0, 3.5, 0.55, -1.5};
8037 Faux2.v = (vector float) {-1.5, 1.0, 0.5, -3.999};
8038 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8039 Faux1.v = (vector float) ( 0.0, 3.5, 0.55, -1.5);
8040 Faux2.v = (vector float) (-1.5, 1.0, 0.5, -3.999);
8041 # endif
8042 b = vec_all_nle (Faux1.v, Faux2.v);
8043 bAux = 1;
8044 for (i=0; i<4; i++)
8045 bAux = bAux &&
8046 (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) || !(Faux1.e[i] <= Faux2.e[i]));
8047 if (bAux != b) err = 1;
8048
8049 # if defined (GCC_COMPILER)
8050 Faux1.v = (vector float) { 0.0, 3.5, 0.55, -1.5};
8051 Faux2.v = (vector float) {-1.5, 1.0, 0.5, -3.999};
8052 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8053 Faux1.v = (vector float) ( 0.0, 3.5, 0.55, -1.5);
8054 Faux2.v = (vector float) (-1.5, 1.0, 0.5, -3.999);
8055 # endif
8056 b = vec_all_nle (Faux1.v, Faux2.v);
8057 bAux = 1;
8058 for (i=0; i<4; i++)
8059 bAux = bAux &&
8060 (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) || !(Faux1.e[i] <= Faux2.e[i]));
8061 if (bAux != b) err = 1;
8062
8063 # if defined (GCC_COMPILER)
8064 Faux1.v = (vector float) { 0.0, 3.5, 0.55, -1.5};
8065 Faux2.v = (vector float) {-1.5, 1.0, 0.5, -3.999};
8066 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8067 Faux1.v = (vector float) ( 0.0, 3.5, 0.55, -1.5);
8068 Faux2.v = (vector float) (-1.5, 1.0, 0.5, -3.999);
8069 # endif
8070 b = vec_all_nle (Faux1.v, Faux2.v);
8071 bAux = 1;
8072 for (i=0; i<4; i++)
8073 bAux = bAux &&
8074 (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) || !(Faux1.e[i] <=Faux2.e[i]));
8075 if (bAux != b) err = 1;
8076
8077 # if defined (GCC_COMPILER)
8078 Faux1.v = (vector float) { 0.0, 3.5, 0.55, -1.5};
8079 Faux2.v = (vector float) {-1.5, 1.0, NAN, -3.999};
8080 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8081 Faux1.v = (vector float) ( 0.0, 3.5, 0.55, -1.5);
8082 Faux2.v = (vector float) (-1.5, 1.0, NAN, -3.999);
8083 # endif
8084 b = vec_all_nle (Faux1.v, Faux2.v);
8085 bAux = 1;
8086 for (i=0; i<4; i++)
8087 bAux = bAux &&
8088 (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) || !(Faux1.e[i] <= Faux2.e[i]));
8089 if (bAux != b) err = 1;
8090
8091 if (err)
8092 printf("Function vec_all_nle [type float] ===> Error\n");
8093 else
8094 printf("Function vec_all_nle [type float] ===> OK\n");
8095 #endif
8096
8097
8098 #if defined TEST_FLOATS
8099 /* Function vec_all_nlt */
8100 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
8101 err = 0;
8102 # if defined (GCC_COMPILER)
8103 Faux1.v = (vector float) { 0.0, 3.5, 0.55, -1.5};
8104 Faux2.v = (vector float) {-1.5, 1.0, 0.5, -3.999};
8105 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8106 Faux1.v = (vector float) ( 0.0, 3.5, 0.55, -1.5);
8107 Faux2.v = (vector float) (-1.5, 1.0, 0.5, -3.999);
8108 # endif
8109 b = vec_all_nlt (Faux1.v, Faux2.v);
8110 bAux = 1;
8111 for (i=0; i<4; i++)
8112 bAux = bAux &&
8113 (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) || !(Faux1.e[i] < Faux2.e[i]));
8114 if (bAux != b) err = 1;
8115
8116 # if defined (GCC_COMPILER)
8117 Faux1.v = (vector float) { 0.0, 3.5, 0.55, -1.5};
8118 Faux2.v = (vector float) {-1.5, 5.0, 0.5, -3.999};
8119 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8120 Faux1.v = (vector float) ( 0.0, 3.5, 0.55, -1.5);
8121 Faux2.v = (vector float) (-1.5, 5.0, 0.5, -3.999);
8122 # endif
8123 b = vec_all_nlt (Faux1.v, Faux2.v);
8124 bAux = 1;
8125 for (i=0; i<4; i++)
8126 bAux = bAux &&
8127 (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) || !(Faux1.e[i] < Faux2.e[i]));
8128 if (bAux != b) err = 1;
8129
8130 # if defined (GCC_COMPILER)
8131 Faux1.v = (vector float) { 0.0, 3.5, 0.55, -1.5};
8132 Faux2.v = (vector float) {-1.5, 1.0, 0.55, -3.999};
8133 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8134 Faux1.v = (vector float) ( 0.0, 3.5, 0.55, -1.5);
8135 Faux2.v = (vector float) (-1.5, 1.0, 0.55, -3.999);
8136 # endif
8137 b = vec_all_nlt (Faux1.v, Faux2.v);
8138 bAux = 1;
8139 for (i=0; i<4; i++)
8140 bAux = bAux &&
8141 (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) || !(Faux1.e[i] < Faux2.e[i]));
8142 if (bAux != b) err = 1;
8143
8144 # if defined (GCC_COMPILER)
8145 Faux1.v = (vector float) { 0.0, 3.5, 0.55, -1.5};
8146 Faux2.v = (vector float) {-1.5, 1.0, NAN, -3.999};
8147 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8148 Faux1.v = (vector float) ( 0.0, 3.5, 0.55, -1.5);
8149 Faux2.v = (vector float) (-1.5, 1.0, NAN, -3.999);
8150 # endif
8151 b = vec_all_nlt (Faux1.v, Faux2.v);
8152 bAux = 1;
8153 for (i=0; i<4; i++)
8154 bAux = bAux &&
8155 (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) || !(Faux1.e[i] < Faux2.e[i]));
8156 if (bAux != b) err = 1;
8157
8158 if (err)
8159 printf("Function vec_all_nlt [type float] ===> Error\n");
8160 else
8161 printf("Function vec_all_nlt [type float] ===> OK\n");
8162 #endif
8163
8164
8165 #if defined TEST_FLOATS
8166 /* Function vec_all_numeric */
8167 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
8168 err = 0;
8169 # if defined (GCC_COMPILER)
8170 Faux1.v = (vector float) {0.0, 3.5, 0.55, -1.5};
8171 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8172 Faux1.v = (vector float) (0.0, 3.5, 0.55, -1.5);
8173 # endif
8174 b = vec_all_numeric (Faux1.v);
8175 bAux = 1;
8176 for (i=0; i<4; i++)
8177 bAux = bAux && !isnan(Faux1.e[i]);
8178 if (bAux != b) err = 1;
8179
8180 # if defined (GCC_COMPILER)
8181 Faux1.v = (vector float) {0.0, 3.5, 0.5, -1.5};
8182 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8183 Faux1.v = (vector float) (0.0, 3.5, 0.5, -1.5);
8184 # endif
8185 b = vec_all_numeric (Faux1.v);
8186 bAux = 1;
8187 for (i=0; i<4; i++)
8188 bAux = bAux && !isnan(Faux1.e[i]);
8189 if (bAux != b) err = 1;
8190
8191 # if defined (GCC_COMPILER)
8192 Faux1.v = (vector float) {0.0, 3.5, NAN, -1.5};
8193 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8194 Faux1.v = (vector float) (0.0, 3.5, NAN, -1.5);
8195 # endif
8196 b = vec_all_numeric (Faux1.v);
8197 bAux = 1;
8198 for (i=0; i<4; i++)
8199 bAux = bAux && !isnan(Faux1.e[i]);
8200 if (bAux != b) err = 1;
8201
8202 # if defined (GCC_COMPILER)
8203 Faux1.v = (vector float) {NAN, NAN, NAN, NAN};
8204 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8205 Faux1.v = (vector float) (NAN, NAN, NAN, NAN);
8206 # endif
8207 b = vec_all_numeric (Faux1.v);
8208 bAux = 1;
8209 for (i=0; i<4; i++)
8210 bAux = bAux && !isnan(Faux1.e[i]);
8211 if (bAux != b) err = 1;
8212
8213 if (err)
8214 printf("Function vec_all_numeric [type float] ===> Error\n");
8215 else
8216 printf("Function vec_all_numeric [type float] ===> OK\n");
8217 #endif
8218
8219 /* Function vec_any_eq */
8220 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
8221 err = 0;
8222 Caux1.v= Ccons1;
8223 Caux2.v= Ccons3;
8224 b= vec_any_eq (Caux1.v, Caux2.v);
8225 bAux= 0;
8226 for (i=0; i<16; i++)
8227 bAux= bAux || (Caux1.e[i]==Caux2.e[i]);
8228 if (bAux!=b) err= 1;
8229
8230 Caux1.v= Ccons1;
8231 Caux2.v= Ccons2;
8232 b= vec_any_eq (Caux1.v, Caux2.v);
8233 bAux= 0;
8234 for (i=0; i<16; i++)
8235 bAux= bAux || (Caux1.e[i]==Caux2.e[i]);
8236 if (bAux!=b) err= 1;
8237
8238 if (err)
8239 printf("Function vec_any_eq [type char] ===> Error\n");
8240 else
8241 printf("Function vec_any_eq [type char] ===> OK\n");
8242
8243
8244 err = 0;
8245 UCaux1.v= UCcons1;
8246 UCaux2.v= UCcons3;
8247 b= vec_any_eq (UCaux1.v, UCaux2.v);
8248 bAux= 0;
8249 for (i=0; i<16; i++)
8250 bAux= bAux || (UCaux1.e[i]==UCaux2.e[i]);
8251 if (bAux!=b) err= 1;
8252
8253 UCaux1.v= UCcons1;
8254 UCaux2.v= UCcons2;
8255 b= vec_any_eq (UCaux1.v, UCaux2.v);
8256 bAux= 0;
8257 for (i=0; i<16; i++)
8258 bAux= bAux || (UCaux1.e[i]==UCaux2.e[i]);
8259 if (bAux!=b) err= 1;
8260
8261 if (err)
8262 printf("Function vec_any_eq [type unsigned char] ===> Error\n");
8263 else
8264 printf("Function vec_any_eq [type unsigned char] ===> OK\n");
8265
8266
8267 err = 0;
8268 Saux1.v= Scons1;
8269 Saux2.v= Scons3;
8270 b= vec_any_eq (Saux1.v, Saux2.v);
8271 bAux= 0;
8272 for (i=0; i<8; i++)
8273 bAux= bAux || (Saux1.e[i]==Saux2.e[i]);
8274 if (bAux!=b) err= 1;
8275
8276 Saux1.v= Scons1;
8277 Saux2.v= Scons2;
8278 b= vec_any_eq (Saux1.v, Saux2.v);
8279 bAux= 0;
8280 for (i=0; i<8; i++)
8281 bAux= bAux || (Saux1.e[i]==Saux2.e[i]);
8282 if (bAux!=b) err= 1;
8283
8284 if (err)
8285 printf("Function vec_any_eq [type short] ===> Error\n");
8286 else
8287 printf("Function vec_any_eq [type short] ===> OK\n");
8288
8289
8290 err = 0;
8291 USaux1.v= UScons1;
8292 USaux2.v= UScons3;
8293 b= vec_any_eq (USaux1.v, USaux2.v);
8294 bAux= 0;
8295 for (i=0; i<8; i++)
8296 bAux= bAux || (USaux1.e[i]==USaux2.e[i]);
8297 if (bAux!=b) err= 1;
8298
8299 USaux1.v= UScons1;
8300 USaux2.v= UScons2;
8301 b= vec_any_eq (USaux1.v, USaux2.v);
8302 bAux= 0;
8303 for (i=0; i<8; i++)
8304 bAux= bAux || (USaux1.e[i]==USaux2.e[i]);
8305 if (bAux!=b) err= 1;
8306
8307 if (err)
8308 printf("Function vec_any_eq [type unsigned short] ===> Error\n");
8309 else
8310 printf("Function vec_any_eq [type unsigned short] ===> OK\n");
8311
8312
8313 err = 0;
8314 Iaux1.v= Icons1;
8315 Iaux2.v= Icons3;
8316 b= vec_any_eq (Iaux1.v, Iaux2.v);
8317 bAux= 0;
8318 for (i=0; i<4; i++)
8319 bAux= bAux || (Iaux1.e[i]==Iaux2.e[i]);
8320 if (bAux!=b) err= 1;
8321
8322 Iaux1.v= Icons1;
8323 Iaux2.v= Icons2;
8324 b= vec_any_eq (Iaux1.v, Iaux2.v);
8325 bAux= 0;
8326 for (i=0; i<4; i++)
8327 bAux= bAux || (Iaux1.e[i]==Iaux2.e[i]);
8328 if (bAux!=b) err= 1;
8329
8330 if (err)
8331 printf("Function vec_any_eq [type int] ===> Error\n");
8332 else
8333 printf("Function vec_any_eq [type int] ===> OK\n");
8334
8335
8336 err = 0;
8337 UIaux1.v= UIcons1;
8338 UIaux2.v= UIcons3;
8339 b= vec_any_eq (UIaux1.v, UIaux2.v);
8340 bAux= 0;
8341 for (i=0; i<4; i++)
8342 bAux= bAux || (UIaux1.e[i]==UIaux2.e[i]);
8343 if (bAux!=b) err= 1;
8344
8345 UIaux1.v= UIcons1;
8346 UIaux2.v= UIcons2;
8347 b= vec_any_eq (UIaux1.v, UIaux2.v);
8348 bAux= 0;
8349 for (i=0; i<4; i++)
8350 bAux= bAux || (UIaux1.e[i]==UIaux2.e[i]);
8351 if (bAux!=b) err= 1;
8352
8353 if (err)
8354 printf("Function vec_any_eq [type unsigned int] ===> Error\n");
8355 else
8356 printf("Function vec_any_eq [type unsigned int] ===> OK\n");
8357
8358
8359 #if defined TEST_FLOATS
8360 err = 0;
8361 # if defined (GCC_COMPILER)
8362 Faux1.v = (vector float) {-1.5, 1.0, 0.5, -3.999};
8363 Faux2.v = (vector float) { 0.0, 3.5, 0.55, -1.5};
8364 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8365 Faux1.v = (vector float) (-1.5, 1.0, 0.5, -3.999);
8366 Faux2.v = (vector float) ( 0.0, 3.5, 0.55, -1.5);
8367 # endif
8368 b = vec_any_eq (Faux1.v, Faux2.v);
8369 bAux = 0;
8370 for (i=0; i<4; i++)
8371 bAux = bAux || (Faux1.e[i] == Faux2.e[i]);
8372 if (bAux != b) err = 1;
8373
8374 # if defined (GCC_COMPILER)
8375 Faux1.v = (vector float) {-1.5, 1.0, 0.5, -3.999};
8376 Faux2.v = (vector float) { 0.0, 3.5, 0.5, -1.5};
8377 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8378 Faux1.v = (vector float) (-1.5, 1.0, 0.5, -3.999);
8379 Faux2.v = (vector float) ( 0.0, 3.5, 0.5, -1.5);
8380 # endif
8381 b= vec_any_eq (Faux1.v, Faux2.v);
8382 bAux= 0;
8383 for (i=0; i<4; i++)
8384 bAux= bAux || (Faux1.e[i]==Faux2.e[i]);
8385 if (bAux!=b) err= 1;
8386
8387 if (err)
8388 printf("Function vec_any_eq [type float] ===> Error\n");
8389 else
8390 printf("Function vec_any_eq [type float] ===> OK\n");
8391 #endif
8392
8393 /* Function vec_any_ge */
8394 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
8395 err = 0;
8396 # if defined (GCC_COMPILER)
8397 Caux1.v= (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
8398 Caux2.v= (vector signed char){ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9};
8399 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8400 Caux1.v= (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
8401 Caux2.v= (vector signed char)( 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9);
8402 # endif
8403 b= vec_any_ge (Caux1.v, Caux2.v);
8404 bAux= 0;
8405 for (i=0; i<16; i++)
8406 bAux= bAux || (Caux1.e[i]>=Caux2.e[i]);
8407 if (bAux!=b) err= 1;
8408
8409 # if defined (GCC_COMPILER)
8410 Caux1.v= (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
8411 Caux2.v= (vector signed char){ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9};
8412 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8413 Caux1.v= (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
8414 Caux2.v= (vector signed char)( 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9);
8415 # endif
8416 b= vec_any_ge (Caux1.v, Caux2.v);
8417 bAux= 0;
8418 for (i=0; i<16; i++)
8419 bAux= bAux || (Caux1.e[i]>=Caux2.e[i]);
8420 if (bAux!=b) err= 1;
8421
8422 # if defined (GCC_COMPILER)
8423 Caux1.v= (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
8424 Caux2.v= (vector signed char){ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9};
8425 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8426 Caux1.v= (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
8427 Caux2.v= (vector signed char)( 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9);
8428 # endif
8429 b= vec_any_ge (Caux1.v, Caux2.v);
8430 bAux= 0;
8431 for (i=0; i<16; i++)
8432 bAux= bAux || (Caux1.e[i]>=Caux2.e[i]);
8433 if (bAux!=b) err= 1;
8434
8435 if (err)
8436 printf("Function vec_any_ge [type char] ===> Error\n");
8437 else
8438 printf("Function vec_any_ge [type char] ===> OK\n");
8439
8440
8441 err = 0;
8442 # if defined (GCC_COMPILER)
8443 UCaux1.v= (vector unsigned char){200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17};
8444 UCaux2.v= (vector unsigned char){250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250};
8445 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8446 UCaux1.v= (vector unsigned char)(200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17);
8447 UCaux2.v= (vector unsigned char)(250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250);
8448 # endif
8449 b= vec_any_ge (UCaux1.v, UCaux2.v);
8450 bAux= 0;
8451 for (i=0; i<16; i++)
8452 bAux= bAux || (UCaux1.e[i]>=UCaux2.e[i]);
8453 if (bAux!=b) err= 1;
8454
8455 # if defined (GCC_COMPILER)
8456 UCaux1.v= (vector unsigned char){200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17};
8457 UCaux2.v= (vector unsigned char){250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250};
8458 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8459 UCaux1.v= (vector unsigned char)(200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17);
8460 UCaux2.v= (vector unsigned char)(250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250);
8461 # endif
8462 b= vec_any_ge (UCaux1.v, UCaux2.v);
8463 bAux= 0;
8464 for (i=0; i<16; i++)
8465 bAux= bAux || (UCaux1.e[i]>=UCaux2.e[i]);
8466 if (bAux!=b) err= 1;
8467
8468 # if defined (GCC_COMPILER)
8469 UCaux1.v= (vector unsigned char){200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17};
8470 UCaux2.v= (vector unsigned char){250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250};
8471 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8472 UCaux1.v= (vector unsigned char)(200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17);
8473 UCaux2.v= (vector unsigned char)(250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250);
8474 # endif
8475 b= vec_any_ge (UCaux1.v, UCaux2.v);
8476 bAux= 0;
8477 for (i=0; i<16; i++)
8478 bAux= bAux || (UCaux1.e[i]>=UCaux2.e[i]);
8479 if (bAux!=b) err= 1;
8480
8481 if (err)
8482 printf("Function vec_any_ge [type unsigned char] ===> Error\n");
8483 else
8484 printf("Function vec_any_ge [type unsigned char] ===> OK\n");
8485
8486
8487 err = 0;
8488 # if defined (GCC_COMPILER)
8489 Saux1.v= (vector signed short){-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100};
8490 Saux2.v= (vector signed short){ 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000};
8491 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8492 Saux1.v= (vector signed short)(-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100);
8493 Saux2.v= (vector signed short)( 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000);
8494 # endif
8495 b= vec_any_ge (Saux1.v, Saux2.v);
8496 bAux= 0;
8497 for (i=0; i<8; i++)
8498 bAux= bAux || (Saux1.e[i]>=Saux2.e[i]);
8499 if (bAux!=b) err= 1;
8500
8501 # if defined (GCC_COMPILER)
8502 Saux1.v= (vector signed short){-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100};
8503 Saux2.v= (vector signed short){ 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000};
8504 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8505 Saux1.v= (vector signed short)(-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100);
8506 Saux2.v= (vector signed short)( 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000);
8507 # endif
8508 b= vec_any_ge (Saux1.v, Saux2.v);
8509 bAux= 0;
8510 for (i=0; i<8; i++)
8511 bAux= bAux || (Saux1.e[i]>=Saux2.e[i]);
8512 if (bAux!=b) err= 1;
8513
8514 # if defined (GCC_COMPILER)
8515 Saux1.v= (vector signed short){-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100};
8516 Saux2.v= (vector signed short){ 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000};
8517 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8518 Saux1.v= (vector signed short)(-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100);
8519 Saux2.v= (vector signed short)( 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000);
8520 # endif
8521 b= vec_any_ge (Saux1.v, Saux2.v);
8522 bAux= 0;
8523 for (i=0; i<8; i++)
8524 bAux= bAux || (Saux1.e[i]>=Saux2.e[i]);
8525 if (bAux!=b) err= 1;
8526
8527 if (err)
8528 printf("Function vec_any_ge [type short] ===> Error\n");
8529 else
8530 printf("Function vec_any_ge [type short] ===> OK\n");
8531
8532
8533 err = 0;
8534 # if defined (GCC_COMPILER)
8535 USaux1.v= (vector unsigned short){48000, 47000, 46000, 45000, 0, 3300, 3200, 3100};
8536 USaux2.v= (vector unsigned short){59000, 59000, 59000, 59000,59000, 9000, 9000, 9000};
8537 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8538 USaux1.v= (vector unsigned short)(48000, 47000, 46000, 45000, 0, 3300, 3200, 3100);
8539 USaux2.v= (vector unsigned short)(59000, 59000, 59000, 59000,59000, 9000, 9000, 9000);
8540 # endif
8541 b= vec_any_ge (USaux1.v, USaux2.v);
8542 bAux= 0;
8543 for (i=0; i<8; i++)
8544 bAux= bAux || (USaux1.e[i]>=USaux2.e[i]);
8545 if (bAux!=b) err= 1;
8546
8547 # if defined (GCC_COMPILER)
8548 USaux1.v= (vector unsigned short){48000, 47000, 46000, 45000, 0, 3300, 3200, 3100};
8549 USaux2.v= (vector unsigned short){59000, 59000, 59000, 59000,59000, 9000, 9000, 9000};
8550 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8551 USaux1.v= (vector unsigned short)(48000, 47000, 46000, 45000, 0, 3300, 3200, 3100);
8552 USaux2.v= (vector unsigned short)(59000, 59000, 59000, 59000,59000, 9000, 9000, 9000);
8553 # endif
8554 b= vec_any_ge (USaux1.v, USaux2.v);
8555 bAux= 0;
8556 for (i=0; i<8; i++)
8557 bAux= bAux || (USaux1.e[i]>=USaux2.e[i]);
8558 if (bAux!=b) err= 1;
8559
8560 # if defined (GCC_COMPILER)
8561 USaux1.v= (vector unsigned short){48000, 47000, 46000, 45000, 0, 3300, 3200, 3100};
8562 USaux2.v= (vector unsigned short){59000, 59000, 59000, 59000,59000, 9000, 9000, 9000};
8563 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8564 USaux1.v= (vector unsigned short)(48000, 47000, 46000, 45000, 0, 3300, 3200, 3100);
8565 USaux2.v= (vector unsigned short)(59000, 59000, 59000, 59000,59000, 9000, 9000, 9000);
8566 # endif
8567 b= vec_any_ge (USaux1.v, USaux2.v);
8568 bAux= 0;
8569 for (i=0; i<8; i++)
8570 bAux= bAux || (USaux1.e[i]>=USaux2.e[i]);
8571 if (bAux!=b) err= 1;
8572
8573 if (err)
8574 printf("Function vec_any_ge [type unsigned short] ===> Error\n");
8575 else
8576 printf("Function vec_any_ge [type unsigned short] ===> OK\n");
8577
8578
8579 err = 0;
8580 # if defined (GCC_COMPILER)
8581 Iaux1.v= (vector signed int){-1003800, -1003700, 0,1003300};
8582 Iaux2.v= (vector signed int){ 9000000, 9000000, 9000000,9000000};
8583 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8584 Iaux1.v= (vector signed int)(-1003800, -1003700, 0,1003300);
8585 Iaux2.v= (vector signed int)( 9000000, 9000000, 9000000,9000000);
8586 # endif
8587 b= vec_any_ge (Iaux1.v, Iaux2.v);
8588 bAux= 0;
8589 for (i=0; i<4; i++)
8590 bAux= bAux || (Iaux1.e[i]>=Iaux2.e[i]);
8591 if (bAux!=b) err= 1;
8592
8593 # if defined (GCC_COMPILER)
8594 Iaux1.v= (vector signed int){-1003800, -1003700, 0,1003300};
8595 Iaux2.v= (vector signed int){ 9000000, 9000000, 9000000,9000000};
8596 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8597 Iaux1.v= (vector signed int)(-1003800, -1003700, 0,1003300);
8598 Iaux2.v= (vector signed int)( 9000000, 9000000, 9000000,9000000);
8599 # endif
8600 b= vec_any_ge (Iaux1.v, Iaux2.v);
8601 bAux= 0;
8602 for (i=0; i<4; i++)
8603 bAux= bAux || (Iaux1.e[i]>=Iaux2.e[i]);
8604 if (bAux!=b) err= 1;
8605
8606 # if defined (GCC_COMPILER)
8607 Iaux1.v= (vector signed int){-1003800, -1003700, 0,1003300};
8608 Iaux2.v= (vector signed int){ 9000000, 9000000, 9000000,9000000};
8609 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8610 Iaux1.v= (vector signed int)(-1003800, -1003700, 0,1003300);
8611 Iaux2.v= (vector signed int)( 9000000, 9000000, 9000000,9000000);
8612 # endif
8613 b= vec_any_ge (Iaux1.v, Iaux2.v);
8614 bAux= 0;
8615 for (i=0; i<4; i++)
8616 bAux= bAux || (Iaux1.e[i]>=Iaux2.e[i]);
8617 if (bAux!=b) err= 1;
8618
8619 if (err)
8620 printf("Function vec_any_ge [type int] ===> Error\n");
8621 else
8622 printf("Function vec_any_ge [type int] ===> OK\n");
8623
8624
8625 err = 0;
8626 # if defined (GCC_COMPILER)
8627 UIaux1.v= (vector unsigned int){0xFFFFF000, 12345678, 0, 1};
8628 UIaux2.v= (vector unsigned int){0xFFFFFFF0, 20000000, 9, 9};
8629 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8630 UIaux1.v= (vector unsigned int)(0xFFFFF000, 12345678, 0, 1);
8631 UIaux2.v= (vector unsigned int)(0xFFFFFFF0, 20000000, 9, 9);
8632 # endif
8633 b= vec_any_ge (UIaux1.v, UIaux2.v);
8634 bAux= 0;
8635 for (i=0; i<4; i++)
8636 bAux= bAux || (UIaux1.e[i]>=UIaux2.e[i]);
8637 if (bAux!=b) err= 1;
8638
8639 # if defined (GCC_COMPILER)
8640 UIaux1.v= (vector unsigned int){0xFFFFF000, 12345678, 0, 1};
8641 UIaux2.v= (vector unsigned int){0xFFFFFFF0, 20000000, 9, 9};
8642 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8643 UIaux1.v= (vector unsigned int)(0xFFFFF000, 12345678, 0, 1);
8644 UIaux2.v= (vector unsigned int)(0xFFFFFFF0, 20000000, 9, 9);
8645 # endif
8646 b= vec_any_ge (UIaux1.v, UIaux2.v);
8647 bAux= 0;
8648 for (i=0; i<4; i++)
8649 bAux= bAux || (UIaux1.e[i]>=UIaux2.e[i]);
8650 if (bAux!=b) err= 1;
8651
8652 # if defined (GCC_COMPILER)
8653 UIaux1.v= (vector unsigned int){0xFFFFF000, 12345678, 0, 1};
8654 UIaux2.v= (vector unsigned int){0xFFFFFFF0, 20000000, 9, 9};
8655 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8656 UIaux1.v= (vector unsigned int)(0xFFFFF000, 12345678, 0, 1);
8657 UIaux2.v= (vector unsigned int)(0xFFFFFFF0, 20000000, 9, 9);
8658 # endif
8659 b= vec_any_ge (UIaux1.v, UIaux2.v);
8660 bAux= 0;
8661 for (i=0; i<4; i++)
8662 bAux= bAux || (UIaux1.e[i]>=UIaux2.e[i]);
8663 if (bAux!=b) err= 1;
8664
8665 if (err)
8666 printf("Function vec_any_ge [type unsigned int] ===> Error\n");
8667 else
8668 printf("Function vec_any_ge [type unsigned int] ===> OK\n");
8669
8670 #if defined TEST_FLOATS
8671 err = 0;
8672 # if defined (GCC_COMPILER)
8673 Faux1.v= (vector float) {-1.5, 1.0, 0.5, -3.999};
8674 Faux2.v= (vector float) { 0.0, 3.5, 0.55, -1.5};
8675 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8676 Faux1.v= (vector float) (-1.5, 1.0, 0.5, -3.999);
8677 Faux2.v= (vector float) ( 0.0, 3.5, 0.55, -1.5);
8678 # endif
8679 b= vec_any_ge (Faux1.v, Faux2.v);
8680 bAux= 0;
8681 for (i=0; i<4; i++)
8682 bAux= bAux || (Faux1.e[i]>=Faux2.e[i]);
8683 if (bAux!=b) err= 1;
8684
8685 # if defined (GCC_COMPILER)
8686 Faux1.v= (vector float) {-1.5, 1.0, 0.5, -3.999};
8687 Faux2.v= (vector float) { 0.0, 3.5, 0.5, -1.5};
8688 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8689 Faux1.v= (vector float) (-1.5, 1.0, 0.5, -3.999);
8690 Faux2.v= (vector float) ( 0.0, 3.5, 0.5, -1.5);
8691 # endif
8692 b= vec_any_ge (Faux1.v, Faux2.v);
8693 bAux= 0;
8694 for (i=0; i<4; i++)
8695 bAux= bAux || (Faux1.e[i]>=Faux2.e[i]);
8696 if (bAux!=b) err= 1;
8697
8698 # if defined (GCC_COMPILER)
8699 Faux1.v= (vector float) {-1.5, 1.0, 0.5, -3.999};
8700 Faux2.v= (vector float) { 0.0, 3.5,-0.5, -1.5};
8701 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8702 Faux1.v= (vector float) (-1.5, 1.0, 0.5, -3.999);
8703 Faux2.v= (vector float) ( 0.0, 3.5,-0.5, -1.5);
8704 # endif
8705 b= vec_any_ge (Faux1.v, Faux2.v);
8706 bAux= 0;
8707 for (i=0; i<4; i++)
8708 bAux= bAux || (Faux1.e[i]>=Faux2.e[i]);
8709 if (bAux!=b) err= 1;
8710
8711 if (err)
8712 printf("Function vec_any_ge [type float] ===> Error\n");
8713 else
8714 printf("Function vec_any_ge [type float] ===> OK\n");
8715 #endif
8716
8717 /* Function vec_any_gt */
8718 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
8719 err = 0;
8720 # if defined (GCC_COMPILER)
8721 Caux1.v= (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
8722 Caux2.v= (vector signed char){ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9};
8723 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8724 Caux1.v= (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
8725 Caux2.v= (vector signed char)( 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9);
8726 # endif
8727 b= vec_any_gt (Caux1.v, Caux2.v);
8728 bAux= 0;
8729 for (i=0; i<16; i++)
8730 bAux= bAux || (Caux1.e[i]>Caux2.e[i]);
8731 if (bAux!=b) err= 1;
8732
8733 # if defined (GCC_COMPILER)
8734 Caux1.v= (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
8735 Caux2.v= (vector signed char){ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9};
8736 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8737 Caux1.v= (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
8738 Caux2.v= (vector signed char)( 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9);
8739 # endif
8740 b= vec_any_gt (Caux1.v, Caux2.v);
8741 bAux= 0;
8742 for (i=0; i<16; i++)
8743 bAux= bAux || (Caux1.e[i]>Caux2.e[i]);
8744 if (bAux!=b) err= 1;
8745
8746 # if defined (GCC_COMPILER)
8747 Caux1.v= (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
8748 Caux2.v= (vector signed char){ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9};
8749 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8750 Caux1.v= (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
8751 Caux2.v= (vector signed char)( 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9);
8752 # endif
8753 b= vec_any_gt (Caux1.v, Caux2.v);
8754 bAux= 0;
8755 for (i=0; i<16; i++)
8756 bAux= bAux || (Caux1.e[i]>Caux2.e[i]);
8757 if (bAux!=b) err= 1;
8758
8759 if (err)
8760 printf("Function vec_any_gt [type char] ===> Error\n");
8761 else
8762 printf("Function vec_any_gt [type char] ===> OK\n");
8763
8764
8765 err = 0;
8766 # if defined (GCC_COMPILER)
8767 UCaux1.v= (vector unsigned char){200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17};
8768 UCaux2.v= (vector unsigned char){250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250};
8769 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8770 UCaux1.v= (vector unsigned char)(200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17);
8771 UCaux2.v= (vector unsigned char)(250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250);
8772 # endif
8773 b= vec_any_gt (UCaux1.v, UCaux2.v);
8774 bAux= 0;
8775 for (i=0; i<16; i++)
8776 bAux= bAux || (UCaux1.e[i]>UCaux2.e[i]);
8777 if (bAux!=b) err= 1;
8778
8779 # if defined (GCC_COMPILER)
8780 UCaux1.v= (vector unsigned char){200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17};
8781 UCaux2.v= (vector unsigned char){250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250};
8782 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8783 UCaux1.v= (vector unsigned char)(200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17);
8784 UCaux2.v= (vector unsigned char)(250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250);
8785 # endif
8786 b= vec_any_gt (UCaux1.v, UCaux2.v);
8787 bAux= 0;
8788 for (i=0; i<16; i++)
8789 bAux= bAux || (UCaux1.e[i]>UCaux2.e[i]);
8790 if (bAux!=b) err= 1;
8791
8792 # if defined (GCC_COMPILER)
8793 UCaux1.v= (vector unsigned char){200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17};
8794 UCaux2.v= (vector unsigned char){250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250};
8795 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8796 UCaux1.v= (vector unsigned char)(200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17);
8797 UCaux2.v= (vector unsigned char)(250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250);
8798 # endif
8799 b= vec_any_gt (UCaux1.v, UCaux2.v);
8800 bAux= 0;
8801 for (i=0; i<16; i++)
8802 bAux= bAux || (UCaux1.e[i]>UCaux2.e[i]);
8803 if (bAux!=b) err= 1;
8804
8805 if (err)
8806 printf("Function vec_any_gt [type unsigned char] ===> Error\n");
8807 else
8808 printf("Function vec_any_gt [type unsigned char] ===> OK\n");
8809
8810
8811 err = 0;
8812 # if defined (GCC_COMPILER)
8813 Saux1.v= (vector signed short){-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100};
8814 Saux2.v= (vector signed short){ 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000};
8815 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8816 Saux1.v= (vector signed short)(-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100);
8817 Saux2.v= (vector signed short)( 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000);
8818 # endif
8819 b= vec_any_gt (Saux1.v, Saux2.v);
8820 bAux= 0;
8821 for (i=0; i<8; i++)
8822 bAux= bAux || (Saux1.e[i]>Saux2.e[i]);
8823 if (bAux!=b) err= 1;
8824
8825 # if defined (GCC_COMPILER)
8826 Saux1.v= (vector signed short){-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100};
8827 Saux2.v= (vector signed short){ 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000};
8828 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8829 Saux1.v= (vector signed short)(-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100);
8830 Saux2.v= (vector signed short)( 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000);
8831 # endif
8832 b= vec_any_gt (Saux1.v, Saux2.v);
8833 bAux= 0;
8834 for (i=0; i<8; i++)
8835 bAux= bAux || (Saux1.e[i]>Saux2.e[i]);
8836 if (bAux!=b) err= 1;
8837
8838 # if defined (GCC_COMPILER)
8839 Saux1.v= (vector signed short){-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100};
8840 Saux2.v= (vector signed short){ 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000};
8841 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8842 Saux1.v= (vector signed short)(-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100);
8843 Saux2.v= (vector signed short)( 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000);
8844 # endif
8845 b= vec_any_gt (Saux1.v, Saux2.v);
8846 bAux= 0;
8847 for (i=0; i<8; i++)
8848 bAux= bAux || (Saux1.e[i]>Saux2.e[i]);
8849 if (bAux!=b) err= 1;
8850
8851 if (err)
8852 printf("Function vec_any_gt [type short] ===> Error\n");
8853 else
8854 printf("Function vec_any_gt [type short] ===> OK\n");
8855
8856
8857 err = 0;
8858 # if defined (GCC_COMPILER)
8859 USaux1.v= (vector unsigned short){48000, 47000, 46000, 45000, 0, 3300, 3200, 3100};
8860 USaux2.v= (vector unsigned short){59000, 59000, 59000, 59000,59000, 9000, 9000, 9000};
8861 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8862 USaux1.v= (vector unsigned short)(48000, 47000, 46000, 45000, 0, 3300, 3200, 3100);
8863 USaux2.v= (vector unsigned short)(59000, 59000, 59000, 59000,59000, 9000, 9000, 9000);
8864 # endif
8865 b= vec_any_gt (USaux1.v, USaux2.v);
8866 bAux= 0;
8867 for (i=0; i<8; i++)
8868 bAux= bAux || (USaux1.e[i]>USaux2.e[i]);
8869 if (bAux!=b) err= 1;
8870
8871 # if defined (GCC_COMPILER)
8872 USaux1.v= (vector unsigned short){48000, 47000, 46000, 45000, 0, 3300, 3200, 3100};
8873 USaux2.v= (vector unsigned short){59000, 59000, 59000, 59000,59000, 9000, 9000, 9000};
8874 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8875 USaux1.v= (vector unsigned short)(48000, 47000, 46000, 45000, 0, 3300, 3200, 3100);
8876 USaux2.v= (vector unsigned short)(59000, 59000, 59000, 59000,59000, 9000, 9000, 9000);
8877 # endif
8878 b= vec_any_gt (USaux1.v, USaux2.v);
8879 bAux= 0;
8880 for (i=0; i<8; i++)
8881 bAux= bAux || (USaux1.e[i]>USaux2.e[i]);
8882 if (bAux!=b) err= 1;
8883
8884 # if defined (GCC_COMPILER)
8885 USaux1.v= (vector unsigned short){48000, 47000, 46000, 45000, 0, 3300, 3200, 3100};
8886 USaux2.v= (vector unsigned short){59000, 59000, 59000, 59000,59000, 9000, 9000, 9000};
8887 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8888 USaux1.v= (vector unsigned short)(48000, 47000, 46000, 45000, 0, 3300, 3200, 3100);
8889 USaux2.v= (vector unsigned short)(59000, 59000, 59000, 59000,59000, 9000, 9000, 9000);
8890 # endif
8891 b= vec_any_gt (USaux1.v, USaux2.v);
8892 bAux= 0;
8893 for (i=0; i<8; i++)
8894 bAux= bAux || (USaux1.e[i]>USaux2.e[i]);
8895 if (bAux!=b) err= 1;
8896
8897 if (err)
8898 printf("Function vec_any_gt [type unsigned short] ===> Error\n");
8899 else
8900 printf("Function vec_any_gt [type unsigned short] ===> OK\n");
8901
8902
8903 err = 0;
8904 # if defined (GCC_COMPILER)
8905 Iaux1.v= (vector signed int){-1003800, -1003700, 0,1003300};
8906 Iaux2.v= (vector signed int){ 9000000, 9000000, 9000000,9000000};
8907 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8908 Iaux1.v= (vector signed int)(-1003800, -1003700, 0,1003300);
8909 Iaux2.v= (vector signed int)( 9000000, 9000000, 9000000,9000000);
8910 # endif
8911 b= vec_any_gt (Iaux1.v, Iaux2.v);
8912 bAux= 0;
8913 for (i=0; i<4; i++)
8914 bAux= bAux || (Iaux1.e[i]>Iaux2.e[i]);
8915 if (bAux!=b) err= 1;
8916
8917 # if defined (GCC_COMPILER)
8918 Iaux1.v= (vector signed int){-1003800, -1003700, 0,1003300};
8919 Iaux2.v= (vector signed int){ 9000000, 9000000, 9000000,9000000};
8920 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8921 Iaux1.v= (vector signed int)(-1003800, -1003700, 0,1003300);
8922 Iaux2.v= (vector signed int)( 9000000, 9000000, 9000000,9000000);
8923 # endif
8924 b= vec_any_gt (Iaux1.v, Iaux2.v);
8925 bAux= 0;
8926 for (i=0; i<4; i++)
8927 bAux= bAux || (Iaux1.e[i]>Iaux2.e[i]);
8928 if (bAux!=b) err= 1;
8929
8930 # if defined (GCC_COMPILER)
8931 Iaux1.v= (vector signed int){-1003800, -1003700, 0,1003300};
8932 Iaux2.v= (vector signed int){ 9000000, 9000000, 9000000,9000000};
8933 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8934 Iaux1.v= (vector signed int)(-1003800, -1003700, 0,1003300);
8935 Iaux2.v= (vector signed int)( 9000000, 9000000, 9000000,9000000);
8936 # endif
8937 b= vec_any_gt (Iaux1.v, Iaux2.v);
8938 bAux= 0;
8939 for (i=0; i<4; i++)
8940 bAux= bAux || (Iaux1.e[i]>Iaux2.e[i]);
8941 if (bAux!=b) err= 1;
8942
8943 if (err)
8944 printf("Function vec_any_gt [type int] ===> Error\n");
8945 else
8946 printf("Function vec_any_gt [type int] ===> OK\n");
8947
8948
8949 err = 0;
8950 # if defined (GCC_COMPILER)
8951 UIaux1.v= (vector unsigned int){0xFFFFF000, 12345678, 0, 1};
8952 UIaux2.v= (vector unsigned int){0xFFFFFFF0, 20000000, 9, 9};
8953 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8954 UIaux1.v= (vector unsigned int)(0xFFFFF000, 12345678, 0, 1);
8955 UIaux2.v= (vector unsigned int)(0xFFFFFFF0, 20000000, 9, 9);
8956 # endif
8957 b= vec_any_gt (UIaux1.v, UIaux2.v);
8958 bAux= 0;
8959 for (i=0; i<4; i++)
8960 bAux= bAux || (UIaux1.e[i]>UIaux2.e[i]);
8961 if (bAux!=b) err= 1;
8962
8963 # if defined (GCC_COMPILER)
8964 UIaux1.v= (vector unsigned int){0xFFFFF000, 12345678, 0, 1};
8965 UIaux2.v= (vector unsigned int){0xFFFFFFF0, 20000000, 9, 9};
8966 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8967 UIaux1.v= (vector unsigned int)(0xFFFFF000, 12345678, 0, 1);
8968 UIaux2.v= (vector unsigned int)(0xFFFFFFF0, 20000000, 9, 9);
8969 # endif
8970 b= vec_any_gt (UIaux1.v, UIaux2.v);
8971 bAux= 0;
8972 for (i=0; i<4; i++)
8973 bAux= bAux || (UIaux1.e[i]>UIaux2.e[i]);
8974 if (bAux!=b) err= 1;
8975
8976 # if defined (GCC_COMPILER)
8977 UIaux1.v= (vector unsigned int){0xFFFFF000, 12345678, 0, 1};
8978 UIaux2.v= (vector unsigned int){0xFFFFFFF0, 20000000, 9, 9};
8979 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
8980 UIaux1.v= (vector unsigned int)(0xFFFFF000, 12345678, 0, 1);
8981 UIaux2.v= (vector unsigned int)(0xFFFFFFF0, 20000000, 9, 9);
8982 # endif
8983 b= vec_any_gt (UIaux1.v, UIaux2.v);
8984 bAux= 0;
8985 for (i=0; i<4; i++)
8986 bAux= bAux || (UIaux1.e[i]>UIaux2.e[i]);
8987 if (bAux!=b) err= 1;
8988
8989 if (err)
8990 printf("Function vec_any_gt [type unsigned int] ===> Error\n");
8991 else
8992 printf("Function vec_any_gt [type unsigned int] ===> OK\n");
8993
8994 #if defined TEST_FLOATS
8995 err = 0;
8996 # if defined (GCC_COMPILER)
8997 Faux1.v= (vector float) {-1.5, 1.0, 0.5, -3.999};
8998 Faux2.v= (vector float) { 0.0, 3.5, 0.55, -1.5};
8999 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9000 Faux1.v= (vector float) (-1.5, 1.0, 0.5, -3.999);
9001 Faux2.v= (vector float) ( 0.0, 3.5, 0.55, -1.5);
9002 # endif
9003 b= vec_any_gt (Faux1.v, Faux2.v);
9004 bAux= 0;
9005 for (i=0; i<4; i++)
9006 bAux= bAux || (Faux1.e[i]>Faux2.e[i]);
9007 if (bAux!=b) err= 1;
9008
9009 # if defined (GCC_COMPILER)
9010 Faux1.v= (vector float) {-1.5, 1.0, 0.5, -3.999};
9011 Faux2.v= (vector float) { 0.0, 3.5, 0.5, -1.5};
9012 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9013 Faux1.v= (vector float) (-1.5, 1.0, 0.5, -3.999);
9014 Faux2.v= (vector float) ( 0.0, 3.5, 0.5, -1.5);
9015 # endif
9016 b= vec_any_gt (Faux1.v, Faux2.v);
9017 bAux= 0;
9018 for (i=0; i<4; i++)
9019 bAux= bAux || (Faux1.e[i]>Faux2.e[i]);
9020 if (bAux!=b) err= 1;
9021
9022 # if defined (GCC_COMPILER)
9023 Faux1.v= (vector float) {-1.5, 1.0, 0.5, -3.999};
9024 Faux2.v= (vector float) { 0.0, 3.5,-0.5, -1.5};
9025 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9026 Faux1.v= (vector float) (-1.5, 1.0, 0.5, -3.999);
9027 Faux2.v= (vector float) ( 0.0, 3.5,-0.5, -1.5);
9028 # endif
9029 b= vec_any_gt (Faux1.v, Faux2.v);
9030 bAux= 0;
9031 for (i=0; i<4; i++)
9032 bAux= bAux || (Faux1.e[i]>Faux2.e[i]);
9033 if (bAux!=b) err= 1;
9034
9035 if (err)
9036 printf("Function vec_any_gt [type float] ===> Error\n");
9037 else
9038 printf("Function vec_any_gt [type float] ===> OK\n");
9039 #endif
9040
9041
9042 /* Function vec_any_le */
9043 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
9044 err = 0;
9045 # if defined (GCC_COMPILER)
9046 Caux2.v= (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
9047 Caux1.v= (vector signed char){ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9};
9048 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9049 Caux2.v= (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
9050 Caux1.v= (vector signed char)( 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9);
9051 # endif
9052 b= vec_any_le (Caux1.v, Caux2.v);
9053 bAux= 0;
9054 for (i=0; i<16; i++)
9055 bAux= bAux || (Caux1.e[i]<=Caux2.e[i]);
9056 if (bAux!=b) err= 1;
9057
9058 # if defined (GCC_COMPILER)
9059 Caux2.v= (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
9060 Caux1.v= (vector signed char){ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9};
9061 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9062 Caux2.v= (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
9063 Caux1.v= (vector signed char)( 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9);
9064 # endif
9065 b= vec_any_le (Caux1.v, Caux2.v);
9066 bAux= 0;
9067 for (i=0; i<16; i++)
9068 bAux= bAux || (Caux1.e[i]<=Caux2.e[i]);
9069 if (bAux!=b) err= 1;
9070
9071 # if defined (GCC_COMPILER)
9072 Caux2.v= (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
9073 Caux1.v= (vector signed char){ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9};
9074 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9075 Caux2.v= (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
9076 Caux1.v= (vector signed char)( 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9);
9077 # endif
9078 b= vec_any_le (Caux1.v, Caux2.v);
9079 bAux= 0;
9080 for (i=0; i<16; i++)
9081 bAux= bAux || (Caux1.e[i]<=Caux2.e[i]);
9082 if (bAux!=b) err= 1;
9083
9084 if (err)
9085 printf("Function vec_any_le [type char] ===> Error\n");
9086 else
9087 printf("Function vec_any_le [type char] ===> OK\n");
9088
9089
9090 err = 0;
9091 # if defined (GCC_COMPILER)
9092 UCaux2.v= (vector unsigned char){200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17};
9093 UCaux1.v= (vector unsigned char){250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250};
9094 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9095 UCaux2.v= (vector unsigned char)(200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17);
9096 UCaux1.v= (vector unsigned char)(250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250);
9097 # endif
9098 b= vec_any_le (UCaux1.v, UCaux2.v);
9099 bAux= 0;
9100 for (i=0; i<16; i++)
9101 bAux= bAux || (UCaux1.e[i]<=UCaux2.e[i]);
9102 if (bAux!=b) err= 1;
9103
9104 # if defined (GCC_COMPILER)
9105 UCaux2.v= (vector unsigned char){200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17};
9106 UCaux1.v= (vector unsigned char){250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250};
9107 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9108 UCaux2.v= (vector unsigned char)(200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17);
9109 UCaux1.v= (vector unsigned char)(250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250);
9110 # endif
9111 b= vec_any_le (UCaux1.v, UCaux2.v);
9112 bAux= 0;
9113 for (i=0; i<16; i++)
9114 bAux= bAux || (UCaux1.e[i]<=UCaux2.e[i]);
9115 if (bAux!=b) err= 1;
9116
9117 # if defined (GCC_COMPILER)
9118 UCaux2.v= (vector unsigned char){200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17};
9119 UCaux1.v= (vector unsigned char){250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250};
9120 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9121 UCaux2.v= (vector unsigned char)(200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17);
9122 UCaux1.v= (vector unsigned char)(250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250);
9123 # endif
9124 b= vec_any_le (UCaux1.v, UCaux2.v);
9125 bAux= 0;
9126 for (i=0; i<16; i++)
9127 bAux= bAux || (UCaux1.e[i]<=UCaux2.e[i]);
9128 if (bAux!=b) err= 1;
9129
9130 if (err)
9131 printf("Function vec_any_le [type unsigned char] ===> Error\n");
9132 else
9133 printf("Function vec_any_le [type unsigned char] ===> OK\n");
9134
9135
9136 err = 0;
9137 # if defined (GCC_COMPILER)
9138 Saux2.v= (vector signed short){-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100};
9139 Saux1.v= (vector signed short){ 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000};
9140 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9141 Saux2.v= (vector signed short)(-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100);
9142 Saux1.v= (vector signed short)( 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000);
9143 # endif
9144 b= vec_any_le (Saux1.v, Saux2.v);
9145 bAux= 0;
9146 for (i=0; i<8; i++)
9147 bAux= bAux || (Saux1.e[i]<=Saux2.e[i]);
9148 if (bAux!=b) err= 1;
9149
9150 # if defined (GCC_COMPILER)
9151 Saux2.v= (vector signed short){-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100};
9152 Saux1.v= (vector signed short){ 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000};
9153 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9154 Saux2.v= (vector signed short)(-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100);
9155 Saux1.v= (vector signed short)( 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000);
9156 # endif
9157 b= vec_any_le (Saux1.v, Saux2.v);
9158 bAux= 0;
9159 for (i=0; i<8; i++)
9160 bAux= bAux || (Saux1.e[i]<=Saux2.e[i]);
9161 if (bAux!=b) err= 1;
9162
9163 # if defined (GCC_COMPILER)
9164 Saux2.v= (vector signed short){-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100};
9165 Saux1.v= (vector signed short){ 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000};
9166 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9167 Saux2.v= (vector signed short)(-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100);
9168 Saux1.v= (vector signed short)( 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000);
9169 # endif
9170 b= vec_any_le (Saux1.v, Saux2.v);
9171 bAux= 0;
9172 for (i=0; i<8; i++)
9173 bAux= bAux || (Saux1.e[i]<=Saux2.e[i]);
9174 if (bAux!=b) err= 1;
9175
9176 if (err)
9177 printf("Function vec_any_le [type short] ===> Error\n");
9178 else
9179 printf("Function vec_any_le [type short] ===> OK\n");
9180
9181
9182 err = 0;
9183 # if defined (GCC_COMPILER)
9184 USaux2.v= (vector unsigned short){48000, 47000, 46000, 45000, 0, 3300, 3200, 3100};
9185 USaux1.v= (vector unsigned short){59000, 59000, 59000, 59000,59000, 9000, 9000, 9000};
9186 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9187 USaux2.v= (vector unsigned short)(48000, 47000, 46000, 45000, 0, 3300, 3200, 3100);
9188 USaux1.v= (vector unsigned short)(59000, 59000, 59000, 59000,59000, 9000, 9000, 9000);
9189 # endif
9190 b= vec_any_le (USaux1.v, USaux2.v);
9191 bAux= 0;
9192 for (i=0; i<8; i++)
9193 bAux= bAux || (USaux1.e[i]<=USaux2.e[i]);
9194 if (bAux!=b) err= 1;
9195
9196 # if defined (GCC_COMPILER)
9197 USaux2.v= (vector unsigned short){48000, 47000, 46000, 45000, 0, 3300, 3200, 3100};
9198 USaux1.v= (vector unsigned short){59000, 59000, 59000, 59000,59000, 9000, 9000, 9000};
9199 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9200 USaux2.v= (vector unsigned short)(48000, 47000, 46000, 45000, 0, 3300, 3200, 3100);
9201 USaux1.v= (vector unsigned short)(59000, 59000, 59000, 59000,59000, 9000, 9000, 9000);
9202 # endif
9203 b= vec_any_le (USaux1.v, USaux2.v);
9204 bAux= 0;
9205 for (i=0; i<8; i++)
9206 bAux= bAux || (USaux1.e[i]<=USaux2.e[i]);
9207 if (bAux!=b) err= 1;
9208
9209 # if defined (GCC_COMPILER)
9210 USaux2.v= (vector unsigned short){48000, 47000, 46000, 45000, 0, 3300, 3200, 3100};
9211 USaux1.v= (vector unsigned short){59000, 59000, 59000, 59000,59000, 9000, 9000, 9000};
9212 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9213 USaux2.v= (vector unsigned short)(48000, 47000, 46000, 45000, 0, 3300, 3200, 3100);
9214 USaux1.v= (vector unsigned short)(59000, 59000, 59000, 59000,59000, 9000, 9000, 9000);
9215 # endif
9216 b= vec_any_le (USaux1.v, USaux2.v);
9217 bAux= 0;
9218 for (i=0; i<8; i++)
9219 bAux= bAux || (USaux1.e[i]<=USaux2.e[i]);
9220 if (bAux!=b) err= 1;
9221
9222 if (err)
9223 printf("Function vec_any_le [type unsigned short] ===> Error\n");
9224 else
9225 printf("Function vec_any_le [type unsigned short] ===> OK\n");
9226
9227
9228 err = 0;
9229 # if defined (GCC_COMPILER)
9230 Iaux2.v= (vector signed int){-1003800, -1003700, 0,1003300};
9231 Iaux1.v= (vector signed int){ 9000000, 9000000, 9000000,9000000};
9232 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9233 Iaux2.v= (vector signed int)(-1003800, -1003700, 0,1003300);
9234 Iaux1.v= (vector signed int)( 9000000, 9000000, 9000000,9000000);
9235 # endif
9236 b= vec_any_le (Iaux1.v, Iaux2.v);
9237 bAux= 0;
9238 for (i=0; i<4; i++)
9239 bAux= bAux || (Iaux1.e[i]<=Iaux2.e[i]);
9240 if (bAux!=b) err= 1;
9241
9242 # if defined (GCC_COMPILER)
9243 Iaux2.v= (vector signed int){-1003800, -1003700, 0,1003300};
9244 Iaux1.v= (vector signed int){ 9000000, 9000000, 9000000,9000000};
9245 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9246 Iaux2.v= (vector signed int)(-1003800, -1003700, 0,1003300);
9247 Iaux1.v= (vector signed int)( 9000000, 9000000, 9000000,9000000);
9248 # endif
9249 b= vec_any_le (Iaux1.v, Iaux2.v);
9250 bAux= 0;
9251 for (i=0; i<4; i++)
9252 bAux= bAux || (Iaux1.e[i]<=Iaux2.e[i]);
9253 if (bAux!=b) err= 1;
9254
9255 # if defined (GCC_COMPILER)
9256 Iaux2.v= (vector signed int){-1003800, -1003700, 0,1003300};
9257 Iaux1.v= (vector signed int){ 9000000, 9000000, 9000000,9000000};
9258 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9259 Iaux2.v= (vector signed int)(-1003800, -1003700, 0,1003300);
9260 Iaux1.v= (vector signed int)( 9000000, 9000000, 9000000,9000000);
9261 # endif
9262 b= vec_any_le (Iaux1.v, Iaux2.v);
9263 bAux= 0;
9264 for (i=0; i<4; i++)
9265 bAux= bAux || (Iaux1.e[i]<=Iaux2.e[i]);
9266 if (bAux!=b) err= 1;
9267
9268 if (err)
9269 printf("Function vec_any_le [type int] ===> Error\n");
9270 else
9271 printf("Function vec_any_le [type int] ===> OK\n");
9272
9273
9274 err = 0;
9275 # if defined (GCC_COMPILER)
9276 UIaux2.v= (vector unsigned int){0xFFFFF000, 12345678, 0, 1};
9277 UIaux1.v= (vector unsigned int){0xFFFFFFF0, 20000000, 9, 9};
9278 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9279 UIaux2.v= (vector unsigned int)(0xFFFFF000, 12345678, 0, 1);
9280 UIaux1.v= (vector unsigned int)(0xFFFFFFF0, 20000000, 9, 9);
9281 # endif
9282 b= vec_any_le (UIaux1.v, UIaux2.v);
9283 bAux= 0;
9284 for (i=0; i<4; i++)
9285 bAux= bAux || (UIaux1.e[i]<=UIaux2.e[i]);
9286 if (bAux!=b) err= 1;
9287
9288 # if defined (GCC_COMPILER)
9289 UIaux2.v= (vector unsigned int){0xFFFFF000, 12345678, 0, 1};
9290 UIaux1.v= (vector unsigned int){0xFFFFFFF0, 20000000, 9, 9};
9291 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9292 UIaux2.v= (vector unsigned int)(0xFFFFF000, 12345678, 0, 1);
9293 UIaux1.v= (vector unsigned int)(0xFFFFFFF0, 20000000, 9, 9);
9294 # endif
9295 b= vec_any_le (UIaux1.v, UIaux2.v);
9296 bAux= 0;
9297 for (i=0; i<4; i++)
9298 bAux= bAux || (UIaux1.e[i]<=UIaux2.e[i]);
9299 if (bAux!=b) err= 1;
9300
9301 # if defined (GCC_COMPILER)
9302 UIaux2.v= (vector unsigned int){0xFFFFF000, 12345678, 0, 1};
9303 UIaux1.v= (vector unsigned int){0xFFFFFFF0, 20000000, 9, 9};
9304 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9305 UIaux2.v= (vector unsigned int)(0xFFFFF000, 12345678, 0, 1);
9306 UIaux1.v= (vector unsigned int)(0xFFFFFFF0, 20000000, 9, 9);
9307 # endif
9308 b= vec_any_le (UIaux1.v, UIaux2.v);
9309 bAux= 0;
9310 for (i=0; i<4; i++)
9311 bAux= bAux || (UIaux1.e[i]<=UIaux2.e[i]);
9312 if (bAux!=b) err= 1;
9313
9314 if (err)
9315 printf("Function vec_any_le [type unsigned int] ===> Error\n");
9316 else
9317 printf("Function vec_any_le [type unsigned int] ===> OK\n");
9318
9319 #if defined TEST_FLOATS
9320 err = 0;
9321 # if defined (GCC_COMPILER)
9322 Faux2.v= (vector float) {-1.5, 1.0, 0.5, -3.999};
9323 Faux1.v= (vector float) { 0.0, 3.5, 0.55, -1.5};
9324 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9325 Faux2.v= (vector float) (-1.5, 1.0, 0.5, -3.999);
9326 Faux1.v= (vector float) ( 0.0, 3.5, 0.55, -1.5);
9327 # endif
9328 b= vec_any_le (Faux1.v, Faux2.v);
9329 bAux= 0;
9330 for (i=0; i<4; i++)
9331 bAux= bAux || (Faux1.e[i]<=Faux2.e[i]);
9332 if (bAux!=b) err= 1;
9333
9334 # if defined (GCC_COMPILER)
9335 Faux2.v= (vector float) {-1.5, 1.0, 0.5, -3.999};
9336 Faux1.v= (vector float) { 0.0, 3.5, 0.5, -1.5};
9337 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9338 Faux2.v= (vector float) (-1.5, 1.0, 0.5, -3.999);
9339 Faux1.v= (vector float) ( 0.0, 3.5, 0.5, -1.5);
9340 # endif
9341 b= vec_any_le (Faux1.v, Faux2.v);
9342 bAux= 0;
9343 for (i=0; i<4; i++)
9344 bAux= bAux || (Faux1.e[i]<=Faux2.e[i]);
9345 if (bAux!=b) err= 1;
9346
9347 # if defined (GCC_COMPILER)
9348 Faux2.v= (vector float) {-1.5, 1.0, 0.5, -3.999};
9349 Faux1.v= (vector float) { 0.0, 3.5,-0.5, -1.5};
9350 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9351 Faux2.v= (vector float) (-1.5, 1.0, 0.5, -3.999);
9352 Faux1.v= (vector float) ( 0.0, 3.5,-0.5, -1.5);
9353 # endif
9354 b= vec_any_le (Faux1.v, Faux2.v);
9355 bAux= 0;
9356 for (i=0; i<4; i++)
9357 bAux= bAux || (Faux1.e[i]<=Faux2.e[i]);
9358 if (bAux!=b) err= 1;
9359
9360 if (err)
9361 printf("Function vec_any_le [type float] ===> Error\n");
9362 else
9363 printf("Function vec_any_le [type float] ===> OK\n");
9364 #endif
9365
9366
9367 /* Function vec_any_lt */
9368 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
9369 err = 0;
9370 # if defined (GCC_COMPILER)
9371 Caux2.v= (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
9372 Caux1.v= (vector signed char){ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9};
9373 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9374 Caux2.v= (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
9375 Caux1.v= (vector signed char)( 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9);
9376 # endif
9377 b= vec_any_lt (Caux1.v, Caux2.v);
9378 bAux= 0;
9379 for (i=0; i<16; i++)
9380 bAux= bAux || (Caux1.e[i]<Caux2.e[i]);
9381 if (bAux!=b) err= 1;
9382
9383 # if defined (GCC_COMPILER)
9384 Caux2.v= (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
9385 Caux1.v= (vector signed char){ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9};
9386 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9387 Caux2.v= (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
9388 Caux1.v= (vector signed char)( 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9);
9389 # endif
9390 b= vec_any_lt (Caux1.v, Caux2.v);
9391 bAux= 0;
9392 for (i=0; i<16; i++)
9393 bAux= bAux || (Caux1.e[i]<Caux2.e[i]);
9394 if (bAux!=b) err= 1;
9395
9396 # if defined (GCC_COMPILER)
9397 Caux2.v= (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
9398 Caux1.v= (vector signed char){ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9};
9399 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9400 Caux2.v= (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
9401 Caux1.v= (vector signed char)( 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9);
9402 # endif
9403 b= vec_any_lt (Caux1.v, Caux2.v);
9404 bAux= 0;
9405 for (i=0; i<16; i++)
9406 bAux= bAux || (Caux1.e[i]<Caux2.e[i]);
9407 if (bAux!=b) err= 1;
9408
9409 if (err)
9410 printf("Function vec_any_lt [type char] ===> Error\n");
9411 else
9412 printf("Function vec_any_lt [type char] ===> OK\n");
9413
9414
9415 err = 0;
9416 # if defined (GCC_COMPILER)
9417 UCaux2.v= (vector unsigned char){200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17};
9418 UCaux1.v= (vector unsigned char){250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250};
9419 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9420 UCaux2.v= (vector unsigned char)(200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17);
9421 UCaux1.v= (vector unsigned char)(250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250);
9422 # endif
9423 b= vec_any_lt (UCaux1.v, UCaux2.v);
9424 bAux= 0;
9425 for (i=0; i<16; i++)
9426 bAux= bAux || (UCaux1.e[i]<UCaux2.e[i]);
9427 if (bAux!=b) err= 1;
9428
9429 # if defined (GCC_COMPILER)
9430 UCaux2.v= (vector unsigned char){200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17};
9431 UCaux1.v= (vector unsigned char){250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250};
9432 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9433 UCaux2.v= (vector unsigned char)(200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17);
9434 UCaux1.v= (vector unsigned char)(250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250);
9435 # endif
9436 b= vec_any_lt (UCaux1.v, UCaux2.v);
9437 bAux= 0;
9438 for (i=0; i<16; i++)
9439 bAux= bAux || (UCaux1.e[i]<UCaux2.e[i]);
9440 if (bAux!=b) err= 1;
9441
9442 # if defined (GCC_COMPILER)
9443 UCaux2.v= (vector unsigned char){200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17};
9444 UCaux1.v= (vector unsigned char){250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250};
9445 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9446 UCaux2.v= (vector unsigned char)(200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17);
9447 UCaux1.v= (vector unsigned char)(250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250);
9448 # endif
9449 b= vec_any_lt (UCaux1.v, UCaux2.v);
9450 bAux= 0;
9451 for (i=0; i<16; i++)
9452 bAux= bAux || (UCaux1.e[i]<UCaux2.e[i]);
9453 if (bAux!=b) err= 1;
9454
9455 if (err)
9456 printf("Function vec_any_lt [type unsigned char] ===> Error\n");
9457 else
9458 printf("Function vec_any_lt [type unsigned char] ===> OK\n");
9459
9460
9461 err = 0;
9462 # if defined (GCC_COMPILER)
9463 Saux2.v= (vector signed short){-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100};
9464 Saux1.v= (vector signed short){ 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000};
9465 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9466 Saux2.v= (vector signed short)(-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100);
9467 Saux1.v= (vector signed short)( 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000);
9468 # endif
9469 b= vec_any_lt (Saux1.v, Saux2.v);
9470 bAux= 0;
9471 for (i=0; i<8; i++)
9472 bAux= bAux || (Saux1.e[i]<Saux2.e[i]);
9473 if (bAux!=b) err= 1;
9474
9475 # if defined (GCC_COMPILER)
9476 Saux2.v= (vector signed short){-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100};
9477 Saux1.v= (vector signed short){ 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000};
9478 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9479 Saux2.v= (vector signed short)(-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100);
9480 Saux1.v= (vector signed short)( 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000);
9481 # endif
9482 b= vec_any_lt (Saux1.v, Saux2.v);
9483 bAux= 0;
9484 for (i=0; i<8; i++)
9485 bAux= bAux || (Saux1.e[i]<Saux2.e[i]);
9486 if (bAux!=b) err= 1;
9487
9488 # if defined (GCC_COMPILER)
9489 Saux2.v= (vector signed short){-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100};
9490 Saux1.v= (vector signed short){ 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000};
9491 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9492 Saux2.v= (vector signed short)(-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100);
9493 Saux1.v= (vector signed short)( 9000, 9000, 9000, 9000, 9000, 9000, 9000, 9000);
9494 # endif
9495 b= vec_any_lt (Saux1.v, Saux2.v);
9496 bAux= 0;
9497 for (i=0; i<8; i++)
9498 bAux= bAux || (Saux1.e[i]<Saux2.e[i]);
9499 if (bAux!=b) err= 1;
9500
9501 if (err)
9502 printf("Function vec_any_lt [type short] ===> Error\n");
9503 else
9504 printf("Function vec_any_lt [type short] ===> OK\n");
9505
9506
9507 err = 0;
9508 # if defined (GCC_COMPILER)
9509 USaux2.v= (vector unsigned short){48000, 47000, 46000, 45000, 0, 3300, 3200, 3100};
9510 USaux1.v= (vector unsigned short){59000, 59000, 59000, 59000,59000, 9000, 9000, 9000};
9511 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9512 USaux2.v= (vector unsigned short)(48000, 47000, 46000, 45000, 0, 3300, 3200, 3100);
9513 USaux1.v= (vector unsigned short)(59000, 59000, 59000, 59000,59000, 9000, 9000, 9000);
9514 # endif
9515 b= vec_any_lt (USaux1.v, USaux2.v);
9516 bAux= 0;
9517 for (i=0; i<8; i++)
9518 bAux= bAux || (USaux1.e[i]<USaux2.e[i]);
9519 if (bAux!=b) err= 1;
9520
9521 # if defined (GCC_COMPILER)
9522 USaux2.v= (vector unsigned short){48000, 47000, 46000, 45000, 0, 3300, 3200, 3100};
9523 USaux1.v= (vector unsigned short){59000, 59000, 59000, 59000,59000, 9000, 9000, 9000};
9524 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9525 USaux2.v= (vector unsigned short)(48000, 47000, 46000, 45000, 0, 3300, 3200, 3100);
9526 USaux1.v= (vector unsigned short)(59000, 59000, 59000, 59000,59000, 9000, 9000, 9000);
9527 # endif
9528 b= vec_any_lt (USaux1.v, USaux2.v);
9529 bAux= 0;
9530 for (i=0; i<8; i++)
9531 bAux= bAux || (USaux1.e[i]<USaux2.e[i]);
9532 if (bAux!=b) err= 1;
9533
9534 # if defined (GCC_COMPILER)
9535 USaux2.v= (vector unsigned short){48000, 47000, 46000, 45000, 0, 3300, 3200, 3100};
9536 USaux1.v= (vector unsigned short){59000, 59000, 59000, 59000,59000, 9000, 9000, 9000};
9537 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9538 USaux2.v= (vector unsigned short)(48000, 47000, 46000, 45000, 0, 3300, 3200, 3100);
9539 USaux1.v= (vector unsigned short)(59000, 59000, 59000, 59000,59000, 9000, 9000, 9000);
9540 # endif
9541 b= vec_any_lt (USaux1.v, USaux2.v);
9542 bAux= 0;
9543 for (i=0; i<8; i++)
9544 bAux= bAux || (USaux1.e[i]<USaux2.e[i]);
9545 if (bAux!=b) err= 1;
9546
9547 if (err)
9548 printf("Function vec_any_lt [type unsigned short] ===> Error\n");
9549 else
9550 printf("Function vec_any_lt [type unsigned short] ===> OK\n");
9551
9552
9553 err = 0;
9554 # if defined (GCC_COMPILER)
9555 Iaux2.v= (vector signed int){-1003800, -1003700, 0,1003300};
9556 Iaux1.v= (vector signed int){ 9000000, 9000000, 9000000,9000000};
9557 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9558 Iaux2.v= (vector signed int)(-1003800, -1003700, 0,1003300);
9559 Iaux1.v= (vector signed int)( 9000000, 9000000, 9000000,9000000);
9560 # endif
9561 b= vec_any_lt (Iaux1.v, Iaux2.v);
9562 bAux= 0;
9563 for (i=0; i<4; i++)
9564 bAux= bAux || (Iaux1.e[i]<Iaux2.e[i]);
9565 if (bAux!=b) err= 1;
9566
9567 # if defined (GCC_COMPILER)
9568 Iaux2.v= (vector signed int){-1003800, -1003700, 0,1003300};
9569 Iaux1.v= (vector signed int){ 9000000, 9000000, 9000000,9000000};
9570 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9571 Iaux2.v= (vector signed int)(-1003800, -1003700, 0,1003300);
9572 Iaux1.v= (vector signed int)( 9000000, 9000000, 9000000,9000000);
9573 # endif
9574 b= vec_any_lt (Iaux1.v, Iaux2.v);
9575 bAux= 0;
9576 for (i=0; i<4; i++)
9577 bAux= bAux || (Iaux1.e[i]<Iaux2.e[i]);
9578 if (bAux!=b) err= 1;
9579
9580 # if defined (GCC_COMPILER)
9581 Iaux2.v= (vector signed int){-1003800, -1003700, 0,1003300};
9582 Iaux1.v= (vector signed int){ 9000000, 9000000, 9000000,9000000};
9583 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9584 Iaux2.v= (vector signed int)(-1003800, -1003700, 0,1003300);
9585 Iaux1.v= (vector signed int)( 9000000, 9000000, 9000000,9000000);
9586 # endif
9587 b= vec_any_lt (Iaux1.v, Iaux2.v);
9588 bAux= 0;
9589 for (i=0; i<4; i++)
9590 bAux= bAux || (Iaux1.e[i]<Iaux2.e[i]);
9591 if (bAux!=b) err= 1;
9592
9593 if (err)
9594 printf("Function vec_any_lt [type int] ===> Error\n");
9595 else
9596 printf("Function vec_any_lt [type int] ===> OK\n");
9597
9598
9599 err = 0;
9600 # if defined (GCC_COMPILER)
9601 UIaux2.v= (vector unsigned int){0xFFFFF000, 12345678, 0, 1};
9602 UIaux1.v= (vector unsigned int){0xFFFFFFF0, 20000000, 9, 9};
9603 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9604 UIaux2.v= (vector unsigned int)(0xFFFFF000, 12345678, 0, 1);
9605 UIaux1.v= (vector unsigned int)(0xFFFFFFF0, 20000000, 9, 9);
9606 # endif
9607 b= vec_any_lt (UIaux1.v, UIaux2.v);
9608 bAux= 0;
9609 for (i=0; i<4; i++)
9610 bAux= bAux || (UIaux1.e[i]<UIaux2.e[i]);
9611 if (bAux!=b) err= 1;
9612
9613 # if defined (GCC_COMPILER)
9614 UIaux2.v= (vector unsigned int){0xFFFFF000, 12345678, 0, 1};
9615 UIaux1.v= (vector unsigned int){0xFFFFFFF0, 12345678, 9, 9};
9616 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9617 UIaux2.v= (vector unsigned int)(0xFFFFF000, 12345678, 0, 1);
9618 UIaux1.v= (vector unsigned int)(0xFFFFFFF0, 12345678, 9, 9);
9619 # endif
9620 b= vec_any_lt (UIaux1.v, UIaux2.v);
9621 bAux= 0;
9622 for (i=0; i<4; i++)
9623 bAux= bAux || (UIaux1.e[i]<UIaux2.e[i]);
9624 if (bAux!=b) err= 1;
9625
9626 # if defined (GCC_COMPILER)
9627 UIaux2.v= (vector unsigned int){0xFFFFF000, 12345678, 0, 1};
9628 UIaux1.v= (vector unsigned int){0xFFFFFFF0, 10000000, 9, 9};
9629 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9630 UIaux2.v= (vector unsigned int)(0xFFFFF000, 12345678, 0, 1);
9631 UIaux1.v= (vector unsigned int)(0xFFFFFFF0, 10000000, 9, 9);
9632 # endif
9633 b= vec_any_lt (UIaux1.v, UIaux2.v);
9634 bAux= 0;
9635 for (i=0; i<4; i++)
9636 bAux= bAux || (UIaux1.e[i]<UIaux2.e[i]);
9637 if (bAux!=b) err= 1;
9638
9639 if (err)
9640 printf("Function vec_any_lt [type unsigned int] ===> Error\n");
9641 else
9642 printf("Function vec_any_lt [type unsigned int] ===> OK\n");
9643
9644 #if defined TEST_FLOATS
9645 err = 0;
9646 # if defined (GCC_COMPILER)
9647 Faux2.v= (vector float) {-1.5, 1.0, 0.5, -3.999};
9648 Faux1.v= (vector float) { 0.0, 3.5, 0.55, -1.5};
9649 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9650 Faux2.v= (vector float) (-1.5, 1.0, 0.5, -3.999);
9651 Faux1.v= (vector float) ( 0.0, 3.5, 0.55, -1.5);
9652 # endif
9653 b= vec_any_lt (Faux1.v, Faux2.v);
9654 bAux= 0;
9655 for (i=0; i<4; i++)
9656 bAux= bAux || (Faux1.e[i]<Faux2.e[i]);
9657 if (bAux!=b) err= 1;
9658
9659 # if defined (GCC_COMPILER)
9660 Faux2.v= (vector float) {-1.5, 1.0, 0.5, -3.999};
9661 Faux1.v= (vector float) { 0.0, 3.5, 0.5, -1.5};
9662 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9663 Faux2.v= (vector float) (-1.5, 1.0, 0.5, -3.999);
9664 Faux1.v= (vector float) ( 0.0, 3.5, 0.5, -1.5);
9665 # endif
9666 b= vec_any_lt (Faux1.v, Faux2.v);
9667 bAux= 0;
9668 for (i=0; i<4; i++)
9669 bAux= bAux || (Faux1.e[i]<Faux2.e[i]);
9670 if (bAux!=b) err= 1;
9671
9672 # if defined (GCC_COMPILER)
9673 Faux2.v= (vector float) {-1.5, 1.0, 0.5, -3.999};
9674 Faux1.v= (vector float) { 0.0, 3.5,-0.5, -1.5};
9675 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9676 Faux2.v= (vector float) (-1.5, 1.0, 0.5, -3.999);
9677 Faux1.v= (vector float) ( 0.0, 3.5,-0.5, -1.5);
9678 # endif
9679 b= vec_any_lt (Faux1.v, Faux2.v);
9680 bAux= 0;
9681 for (i=0; i<4; i++)
9682 bAux= bAux || (Faux1.e[i]<Faux2.e[i]);
9683 if (bAux!=b) err= 1;
9684
9685 if (err)
9686 printf("Function vec_any_lt [type float] ===> Error\n");
9687 else
9688 printf("Function vec_any_lt [type float] ===> OK\n");
9689 #endif
9690
9691
9692 #if defined TEST_FLOATS
9693 /* Function vec_any_nan */
9694 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
9695 err = 0;
9696 # if defined (GCC_COMPILER)
9697 Faux1.v= (vector float) { 0.0, 3.5, 0.55, -1.5};
9698 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9699 Faux1.v= (vector float) ( 0.0, 3.5, 0.55, -1.5);
9700 # endif
9701 b= vec_any_nan (Faux1.v);
9702 bAux= 0;
9703 for (i=0; i<4; i++)
9704 bAux= bAux || isnan(Faux1.e[i]);
9705 if (bAux!=b) err= 1;
9706
9707 # if defined (GCC_COMPILER)
9708 Faux1.v= (vector float) { 0.0, 3.5, NAN, -1.5};
9709 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9710 Faux1.v= (vector float) ( 0.0, 3.5, NAN, -1.5);
9711 # endif
9712 b= vec_any_nan (Faux1.v);
9713 bAux= 0;
9714 for (i=0; i<4; i++)
9715 bAux= bAux || isnan(Faux1.e[i]);
9716 if (bAux!=b) err= 1;
9717
9718 # if defined (GCC_COMPILER)
9719 Faux1.v= (vector float) { NAN, 3.5, NAN, -1.5};
9720 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9721 Faux1.v= (vector float) ( NAN, 3.5, NAN, -1.5);
9722 # endif
9723 b= vec_any_nan (Faux1.v);
9724 bAux= 0;
9725 for (i=0; i<4; i++)
9726 bAux= bAux || isnan(Faux1.e[i]);
9727 if (bAux!=b) err= 1;
9728
9729 if (err)
9730 printf("Function vec_any_nan [type float] ===> Error\n");
9731 else
9732 printf("Function vec_any_nan [type float] ===> OK\n");
9733 #endif
9734
9735
9736 /* Function vec_any_ne */
9737 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
9738 err = 0;
9739 # if defined (GCC_COMPILER)
9740 Caux1.v= (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
9741 Caux2.v= (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
9742 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9743 Caux1.v= (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
9744 Caux2.v= (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
9745 # endif
9746 b= vec_any_ne (Caux1.v, Caux2.v);
9747 bAux= 0;
9748 for (i=0; i<16; i++)
9749 bAux= bAux || (Caux1.e[i]!=Caux2.e[i]);
9750 if (bAux!=b) err= 1;
9751
9752 # if defined (GCC_COMPILER)
9753 Caux1.v= (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
9754 Caux2.v= (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
9755 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9756 Caux1.v= (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
9757 Caux2.v= (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
9758 # endif
9759 b= vec_any_ne (Caux1.v, Caux2.v);
9760 bAux= 0;
9761 for (i=0; i<16; i++)
9762 bAux= bAux || (Caux1.e[i]!=Caux2.e[i]);
9763 if (bAux!=b) err= 1;
9764
9765 # if defined (GCC_COMPILER)
9766 Caux1.v= (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
9767 Caux2.v= (vector signed char){-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7};
9768 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9769 Caux1.v= (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
9770 Caux2.v= (vector signed char)(-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7);
9771 # endif
9772 b= vec_any_ne (Caux1.v, Caux2.v);
9773 bAux= 0;
9774 for (i=0; i<16; i++)
9775 bAux= bAux || (Caux1.e[i]!=Caux2.e[i]);
9776 if (bAux!=b) err= 1;
9777
9778 if (err)
9779 printf("Function vec_any_ne [type char] ===> Error\n");
9780 else
9781 printf("Function vec_any_ne [type char] ===> OK\n");
9782
9783
9784 err = 0;
9785 # if defined (GCC_COMPILER)
9786 UCaux1.v= (vector unsigned char){200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17};
9787 UCaux2.v= (vector unsigned char){200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17};
9788 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9789 UCaux1.v= (vector unsigned char)(200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17);
9790 UCaux2.v= (vector unsigned char)(200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17);
9791 # endif
9792 b= vec_any_ne (UCaux1.v, UCaux2.v);
9793 bAux= 0;
9794 for (i=0; i<16; i++)
9795 bAux= bAux || (UCaux1.e[i]!=UCaux2.e[i]);
9796 if (bAux!=b) err= 1;
9797
9798 # if defined (GCC_COMPILER)
9799 UCaux1.v= (vector unsigned char){200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17};
9800 UCaux2.v= (vector unsigned char){200, 201, 206, 205, 0, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17};
9801 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9802 UCaux1.v= (vector unsigned char)(200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17);
9803 UCaux2.v= (vector unsigned char)(200, 201, 206, 205, 0, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17);
9804 # endif
9805 b= vec_any_ne (UCaux1.v, UCaux2.v);
9806 bAux= 0;
9807 for (i=0; i<16; i++)
9808 bAux= bAux || (UCaux1.e[i]!=UCaux2.e[i]);
9809 if (bAux!=b) err= 1;
9810
9811 # if defined (GCC_COMPILER)
9812 UCaux1.v= (vector unsigned char){200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17};
9813 UCaux2.v= (vector unsigned char){200, 201, 206, 206, 0, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17};
9814 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9815 UCaux1.v= (vector unsigned char)(200, 201, 206, 205, 204, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17);
9816 UCaux2.v= (vector unsigned char)(200, 201, 206, 206, 0, 203, 202, 201, 200, 101, 102, 13, 14, 15, 16, 17);
9817 # endif
9818 b= vec_any_ne (UCaux1.v, UCaux2.v);
9819 bAux= 0;
9820 for (i=0; i<16; i++)
9821 bAux= bAux || (UCaux1.e[i]!=UCaux2.e[i]);
9822 if (bAux!=b) err= 1;
9823
9824 if (err)
9825 printf("Function vec_any_ne [type unsigned char] ===> Error\n");
9826 else
9827 printf("Function vec_any_ne [type unsigned char] ===> OK\n");
9828
9829
9830 err = 0;
9831 # if defined (GCC_COMPILER)
9832 Saux1.v= (vector signed short){-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100};
9833 Saux2.v= (vector signed short){-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100};
9834 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9835 Saux1.v= (vector signed short)(-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100);
9836 Saux2.v= (vector signed short)(-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100);
9837 # endif
9838 b= vec_any_ne (Saux1.v, Saux2.v);
9839 bAux= 0;
9840 for (i=0; i<8; i++)
9841 bAux= bAux || (Saux1.e[i]!=Saux2.e[i]);
9842 if (bAux!=b) err= 1;
9843
9844 # if defined (GCC_COMPILER)
9845 Saux1.v= (vector signed short){-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100};
9846 Saux2.v= (vector signed short){-3800, 3700, -3600, -3500, 0, 3300, 3200, 3100};
9847 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9848 Saux1.v= (vector signed short)(-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100);
9849 Saux2.v= (vector signed short)(-3800, 3700, -3600, -3500, 0, 3300, 3200, 3100);
9850 # endif
9851 b= vec_any_ne (Saux1.v, Saux2.v);
9852 bAux= 0;
9853 for (i=0; i<8; i++)
9854 bAux= bAux || (Saux1.e[i]!=Saux2.e[i]);
9855 if (bAux!=b) err= 1;
9856
9857 # if defined (GCC_COMPILER)
9858 Saux1.v= (vector signed short){-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100};
9859 Saux2.v= (vector signed short){-3800, -3700, -3600, -3500, 0, 3300, 3100, 3100};
9860 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9861 Saux1.v= (vector signed short)(-3800, -3700, -3600, -3500, 0, 3300, 3200, 3100);
9862 Saux2.v= (vector signed short)(-3800, -3700, -3600, -3500, 0, 3300, 3100, 3100);
9863 # endif
9864 b= vec_any_ne (Saux1.v, Saux2.v);
9865 bAux= 0;
9866 for (i=0; i<8; i++)
9867 bAux= bAux || (Saux1.e[i]!=Saux2.e[i]);
9868 if (bAux!=b) err= 1;
9869
9870 if (err)
9871 printf("Function vec_any_ne [type short] ===> Error\n");
9872 else
9873 printf("Function vec_any_ne [type short] ===> OK\n");
9874
9875
9876 err = 0;
9877 # if defined (GCC_COMPILER)
9878 USaux1.v= (vector unsigned short){48000, 47000, 46000, 45000, 0, 3300, 3200, 3100};
9879 USaux2.v= (vector unsigned short){48000, 47000, 46000, 45000, 0, 3300, 3200, 3100};
9880 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9881 USaux1.v= (vector unsigned short)(48000, 47000, 46000, 45000, 0, 3300, 3200, 3100);
9882 USaux2.v= (vector unsigned short)(48000, 47000, 46000, 45000, 0, 3300, 3200, 3100);
9883 # endif
9884 b= vec_any_ne (USaux1.v, USaux2.v);
9885 bAux= 0;
9886 for (i=0; i<8; i++)
9887 bAux= bAux || (USaux1.e[i]!=USaux2.e[i]);
9888 if (bAux!=b) err= 1;
9889
9890 # if defined (GCC_COMPILER)
9891 USaux1.v= (vector unsigned short){48000, 47000, 46000, 45000, 0, 3300, 3200, 3100};
9892 USaux2.v= (vector unsigned short){48000, 47000, 46000, 45000, 0, 3300, 3100, 3100};
9893 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9894 USaux1.v= (vector unsigned short)(48000, 47000, 46000, 45000, 0, 3300, 3200, 3100);
9895 USaux2.v= (vector unsigned short)(48000, 47000, 46000, 45000, 0, 3300, 3100, 3100);
9896 # endif
9897 b= vec_any_ne (USaux1.v, USaux2.v);
9898 bAux= 0;
9899 for (i=0; i<8; i++)
9900 bAux= bAux || (USaux1.e[i]!=USaux2.e[i]);
9901 if (bAux!=b) err= 1;
9902
9903 # if defined (GCC_COMPILER)
9904 USaux1.v= (vector unsigned short){48000, 47000, 46000, 45000, 0, 3300, 3200, 3100};
9905 USaux2.v= (vector unsigned short){48000, 47000, 46000, 0, 0, 3300, 3100, 3100};
9906 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9907 USaux1.v= (vector unsigned short)(48000, 47000, 46000, 45000, 0, 3300, 3200, 3100);
9908 USaux2.v= (vector unsigned short)(48000, 47000, 46000, 0, 0, 3300, 3100, 3100);
9909 # endif
9910 b= vec_any_ne (USaux1.v, USaux2.v);
9911 bAux= 0;
9912 for (i=0; i<8; i++)
9913 bAux= bAux || (USaux1.e[i]!=USaux2.e[i]);
9914 if (bAux!=b) err= 1;
9915
9916 if (err)
9917 printf("Function vec_any_ne [type unsigned short] ===> Error\n");
9918 else
9919 printf("Function vec_any_ne [type unsigned short] ===> OK\n");
9920
9921
9922 err = 0;
9923 # if defined (GCC_COMPILER)
9924 Iaux1.v= (vector signed int){-1003800, -1003700, 0,1003300};
9925 Iaux2.v= (vector signed int){-1003800, -1003700, 0,1003300};
9926 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9927 Iaux1.v= (vector signed int)(-1003800, -1003700, 0,1003300);
9928 Iaux2.v= (vector signed int)(-1003800, -1003700, 0,1003300);
9929 # endif
9930 b= vec_any_ne (Iaux1.v, Iaux2.v);
9931 bAux= 0;
9932 for (i=0; i<4; i++)
9933 bAux= bAux || (Iaux1.e[i]!=Iaux2.e[i]);
9934 if (bAux!=b) err= 1;
9935
9936 # if defined (GCC_COMPILER)
9937 Iaux1.v= (vector signed int){-1003800, -1003700, 0,1003300};
9938 Iaux2.v= (vector signed int){-1003800, -1003700, 0,1113300};
9939 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9940 Iaux1.v= (vector signed int)(-1003800, -1003700, 0,1003300);
9941 Iaux2.v= (vector signed int)(-1003800, -1003700, 0,1113300);
9942 # endif
9943 b= vec_any_ne (Iaux1.v, Iaux2.v);
9944 bAux= 0;
9945 for (i=0; i<4; i++)
9946 bAux= bAux || (Iaux1.e[i]!=Iaux2.e[i]);
9947 if (bAux!=b) err= 1;
9948
9949 # if defined (GCC_COMPILER)
9950 Iaux1.v= (vector signed int){-1003800, -1003700, 0,1003300};
9951 Iaux2.v= (vector signed int){-1003800, 10, 0,1113300};
9952 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9953 Iaux1.v= (vector signed int)(-1003800, -1003700, 0,1003300);
9954 Iaux2.v= (vector signed int)(-1003800, 10, 0,1113300);
9955 # endif
9956 b= vec_any_ne (Iaux1.v, Iaux2.v);
9957 bAux= 0;
9958 for (i=0; i<4; i++)
9959 bAux= bAux || (Iaux1.e[i]!=Iaux2.e[i]);
9960 if (bAux!=b) err= 1;
9961
9962 if (err)
9963 printf("Function vec_any_ne [type int] ===> Error\n");
9964 else
9965 printf("Function vec_any_ne [type int] ===> OK\n");
9966
9967
9968 err = 0;
9969 # if defined (GCC_COMPILER)
9970 UIaux1.v= (vector unsigned int){0xFFFFF000, 12345678, 0, 1};
9971 UIaux2.v= (vector unsigned int){0xFFFFF000, 12345678, 0, 1};
9972 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9973 UIaux1.v= (vector unsigned int)(0xFFFFF000, 12345678, 0, 1);
9974 UIaux2.v= (vector unsigned int)(0xFFFFF000, 12345678, 0, 1);
9975 # endif
9976 b= vec_any_ne (UIaux1.v, UIaux2.v);
9977 bAux= 0;
9978 for (i=0; i<4; i++)
9979 bAux= bAux || (UIaux1.e[i]!=UIaux2.e[i]);
9980 if (bAux!=b) err= 1;
9981
9982 # if defined (GCC_COMPILER)
9983 UIaux1.v= (vector unsigned int){0xFFFFF000, 12345678, 0, 1};
9984 UIaux2.v= (vector unsigned int){0xFFFFF000, 12345678, 5, 1};
9985 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9986 UIaux1.v= (vector unsigned int)(0xFFFFF000, 12345678, 0, 1);
9987 UIaux2.v= (vector unsigned int)(0xFFFFF000, 12345678, 5, 1);
9988 # endif
9989 b= vec_any_ne (UIaux1.v, UIaux2.v);
9990 bAux= 0;
9991 for (i=0; i<4; i++)
9992 bAux= bAux || (UIaux1.e[i]!=UIaux2.e[i]);
9993 if (bAux!=b) err= 1;
9994
9995 # if defined (GCC_COMPILER)
9996 UIaux1.v= (vector unsigned int){0xFFFFF000, 12345678, 0, 1};
9997 UIaux2.v= (vector unsigned int){0xFFFFFFF0, 12345678, 5, 1};
9998 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
9999 UIaux1.v= (vector unsigned int)(0xFFFFF000, 12345678, 0, 1);
10000 UIaux2.v= (vector unsigned int)(0xFFFFFFF0, 12345678, 5, 1);
10001 # endif
10002 b= vec_any_ne (UIaux1.v, UIaux2.v);
10003 bAux= 0;
10004 for (i=0; i<4; i++)
10005 bAux= bAux || (UIaux1.e[i]!=UIaux2.e[i]);
10006 if (bAux!=b) err= 1;
10007
10008 if (err)
10009 printf("Function vec_any_ne [type unsigned int] ===> Error\n");
10010 else
10011 printf("Function vec_any_ne [type unsigned int] ===> OK\n");
10012
10013 #if defined TEST_FLOATS
10014 err = 0;
10015 # if defined (GCC_COMPILER)
10016 Faux1.v= (vector float) {-1.5, 1.0, 0.5, -3.999};
10017 Faux2.v= (vector float) {-1.5, 1.0, 0.5, -3.999};
10018 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10019 Faux1.v= (vector float) (-1.5, 1.0, 0.5, -3.999);
10020 Faux2.v= (vector float) (-1.5, 1.0, 0.5, -3.999);
10021 # endif
10022 b= vec_any_ne (Faux1.v, Faux2.v);
10023 bAux= 0;
10024 for (i=0; i<4; i++)
10025 bAux= bAux || (Faux1.e[i]!=Faux2.e[i]);
10026 if (bAux!=b) err= 1;
10027
10028 # if defined (GCC_COMPILER)
10029 Faux1.v= (vector float) {-1.5, 1.0, 0.5, -3.999};
10030 Faux2.v= (vector float) {-1.5, 1.0, 0.5, -3.998};
10031 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10032 Faux1.v= (vector float) (-1.5, 1.0, 0.5, -3.999);
10033 Faux2.v= (vector float) (-1.5, 1.0, 0.5, -3.998);
10034 # endif
10035 b= vec_any_ne (Faux1.v, Faux2.v);
10036 bAux= 0;
10037 for (i=0; i<4; i++)
10038 bAux= bAux || (Faux1.e[i]!=Faux2.e[i]);
10039 if (bAux!=b) err= 1;
10040
10041 # if defined (GCC_COMPILER)
10042 Faux1.v= (vector float) {-1.5, 1.0, 0.5, -3.999};
10043 Faux2.v= (vector float) {-1.5, 0.0, 0.5, -3.998};
10044 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10045 Faux1.v= (vector float) (-1.5, 1.0, 0.5, -3.999);
10046 Faux2.v= (vector float) (-1.5, 0.0, 0.5, -3.998);
10047 # endif
10048 b= vec_any_ne (Faux1.v, Faux2.v);
10049 bAux= 0;
10050 for (i=0; i<4; i++)
10051 bAux= bAux || (Faux1.e[i]!=Faux2.e[i]);
10052 if (bAux!=b) err= 1;
10053
10054 if (err)
10055 printf("Function vec_any_ne [type float] ===> Error\n");
10056 else
10057 printf("Function vec_any_ne [type float] ===> OK\n");
10058 #endif
10059
10060
10061 #if defined TEST_FLOATS
10062 /* Function vec_any_nge */
10063 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
10064 err = 0;
10065 # if defined (GCC_COMPILER)
10066 Faux1.v= (vector float) { 0.0, 3.5, 0.55, -1.5};
10067 Faux2.v= (vector float) {-1.5, 1.0, 0.5, -3.999};
10068 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10069 Faux1.v= (vector float) ( 0.0, 3.5, 0.55, -1.5);
10070 Faux2.v= (vector float) (-1.5, 1.0, 0.5, -3.999);
10071 # endif
10072 b= vec_any_nge (Faux1.v, Faux2.v);
10073 bAux= 0;
10074 for (i=0; i<4; i++)
10075 bAux= bAux || isnan(Faux1.e[i]) || isnan(Faux2.e[i]) ||
10076 (Faux1.e[i]<Faux2.e[i]);
10077 if (bAux!=b) err= 1;
10078
10079 # if defined (GCC_COMPILER)
10080 Faux1.v= (vector float) { 0.0, 3.5, 0.55, -1.5};
10081 Faux2.v= (vector float) {-1.5, 1.0, 0.55, -3.999};
10082 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10083 Faux1.v= (vector float) ( 0.0, 3.5, 0.55, -1.5);
10084 Faux2.v= (vector float) (-1.5, 1.0, 0.55, -3.999);
10085 # endif
10086 b= vec_any_nge (Faux1.v, Faux2.v);
10087 bAux= 0;
10088 for (i=0; i<4; i++)
10089 bAux= bAux || isnan(Faux1.e[i]) || isnan(Faux2.e[i]) ||
10090 (Faux1.e[i]<Faux2.e[i]);
10091 if (bAux!=b) err= 1;
10092
10093 # if defined (GCC_COMPILER)
10094 Faux1.v= (vector float) { 0.0, 3.5, 0.55, -1.5};
10095 Faux2.v= (vector float) {-1.5, 5.0, 0.5, -3.999};
10096 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10097 Faux1.v= (vector float) ( 0.0, 3.5, 0.55, -1.5);
10098 Faux2.v= (vector float) (-1.5, 5.0, 0.5, -3.999);
10099 # endif
10100 b= vec_any_nge (Faux1.v, Faux2.v);
10101 bAux= 0;
10102 for (i=0; i<4; i++)
10103 bAux= bAux || isnan(Faux1.e[i]) || isnan(Faux2.e[i]) ||
10104 (Faux1.e[i]<Faux2.e[i]);
10105 if (bAux!=b) err= 1;
10106
10107 # if defined (GCC_COMPILER)
10108 Faux1.v= (vector float) { 0.0, 3.5, 0.55, -1.5};
10109 Faux2.v= (vector float) {-1.5, 1.0, NAN, -3.999};
10110 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10111 Faux1.v= (vector float) ( 0.0, 3.5, 0.55, -1.5);
10112 Faux2.v= (vector float) (-1.5, 1.0, NAN, -3.999);
10113 # endif
10114 b= vec_any_nge (Faux1.v, Faux2.v);
10115 bAux= 0;
10116 for (i=0; i<4; i++)
10117 bAux= bAux || isnan(Faux1.e[i]) || isnan(Faux2.e[i]) ||
10118 (Faux1.e[i]<Faux2.e[i]);
10119 if (bAux!=b) err= 1;
10120
10121 if (err)
10122 printf("Function vec_any_nge [type float] ===> Error\n");
10123 else
10124 printf("Function vec_any_nge [type float] ===> OK\n");
10125 #endif
10126
10127
10128 #if defined TEST_FLOATS
10129 /* Function vec_any_ngt */
10130 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
10131 err = 0;
10132 # if defined (GCC_COMPILER)
10133 Faux1.v= (vector float) { 0.0, 3.5, 0.55, -1.5};
10134 Faux2.v= (vector float) {-1.5, 1.0, 0.5, -3.999};
10135 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10136 Faux1.v= (vector float) ( 0.0, 3.5, 0.55, -1.5);
10137 Faux2.v= (vector float) (-1.5, 1.0, 0.5, -3.999);
10138 # endif
10139 b= vec_any_ngt (Faux1.v, Faux2.v);
10140 bAux= 0;
10141 for (i=0; i<4; i++)
10142 bAux= bAux || isnan(Faux1.e[i]) || isnan(Faux2.e[i]) ||
10143 !(Faux1.e[i]>Faux2.e[i]);
10144 if (bAux!=b) err= 1;
10145
10146 # if defined (GCC_COMPILER)
10147 Faux1.v= (vector float) { 0.0, 3.5, 0.55, -1.5};
10148 Faux2.v= (vector float) {-1.5, 1.0, 0.55, -3.999};
10149 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10150 Faux1.v= (vector float) ( 0.0, 3.5, 0.55, -1.5);
10151 Faux2.v= (vector float) (-1.5, 1.0, 0.55, -3.999);
10152 # endif
10153 b= vec_any_ngt (Faux1.v, Faux2.v);
10154 bAux= 0;
10155 for (i=0; i<4; i++)
10156 bAux= bAux || isnan(Faux1.e[i]) || isnan(Faux2.e[i]) ||
10157 !(Faux1.e[i]>Faux2.e[i]);
10158 if (bAux!=b) err= 1;
10159
10160 # if defined (GCC_COMPILER)
10161 Faux1.v= (vector float) { 0.0, 3.5, 0.55, -1.5};
10162 Faux2.v= (vector float) {-1.5, 5.0, 0.5, -3.999};
10163 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10164 Faux1.v= (vector float) ( 0.0, 3.5, 0.55, -1.5);
10165 Faux2.v= (vector float) (-1.5, 5.0, 0.5, -3.999);
10166 # endif
10167 b= vec_any_ngt (Faux1.v, Faux2.v);
10168 bAux= 0;
10169 for (i=0; i<4; i++)
10170 bAux= bAux || isnan(Faux1.e[i]) || isnan(Faux2.e[i]) ||
10171 !(Faux1.e[i]>Faux2.e[i]);
10172 if (bAux!=b) err= 1;
10173
10174 # if defined (GCC_COMPILER)
10175 Faux1.v= (vector float) { 0.0, 3.5, 0.55, -1.5};
10176 Faux2.v= (vector float) {-1.5, 1.0, NAN, -3.999};
10177 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10178 Faux1.v= (vector float) ( 0.0, 3.5, 0.55, -1.5);
10179 Faux2.v= (vector float) (-1.5, 1.0, NAN, -3.999);
10180 # endif
10181 b= vec_any_ngt (Faux1.v, Faux2.v);
10182 bAux= 0;
10183 for (i=0; i<4; i++)
10184 bAux= bAux || isnan(Faux1.e[i]) || isnan(Faux2.e[i]) ||
10185 !(Faux1.e[i]>Faux2.e[i]);
10186 if (bAux!=b) err= 1;
10187
10188 if (err)
10189 printf("Function vec_any_ngt [type float] ===> Error\n");
10190 else
10191 printf("Function vec_any_ngt [type float] ===> OK\n");
10192 #endif
10193
10194
10195 #if defined TEST_FLOATS
10196 /* Function vec_any_nle */
10197 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
10198 err = 0;
10199 # if defined (GCC_COMPILER)
10200 Faux1.v= (vector float) {-1.5, 1.0, 0.5, -3.999};
10201 Faux2.v= (vector float) { 0.0, 3.5, 0.55, -1.5};
10202 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10203 Faux1.v= (vector float) (-1.5, 1.0, 0.5, -3.999);
10204 Faux2.v= (vector float) ( 0.0, 3.5, 0.55, -1.5);
10205 # endif
10206 b= vec_any_nle (Faux1.v, Faux2.v);
10207 bAux= 0;
10208 for (i=0; i<4; i++)
10209 bAux= bAux ||
10210 (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) || !(Faux1.e[i]<=Faux2.e[i]));
10211 if (bAux!=b) err= 1;
10212
10213 # if defined (GCC_COMPILER)
10214 Faux1.v= (vector float) {-1.5, 1.0, 0.55, -3.999};
10215 Faux2.v= (vector float) { 0.0, 3.5, 0.55, -1.5};
10216 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10217 Faux1.v= (vector float) (-1.5, 1.0, 0.55, -3.999);
10218 Faux2.v= (vector float) ( 0.0, 3.5, 0.55, -1.5);
10219 # endif
10220 b= vec_any_nle (Faux1.v, Faux2.v);
10221 bAux= 0;
10222 for (i=0; i<4; i++)
10223 bAux= bAux ||
10224 (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) || !(Faux1.e[i]<=Faux2.e[i]));
10225 if (bAux!=b) err= 1;
10226
10227 # if defined (GCC_COMPILER)
10228 Faux1.v= (vector float) {-1.5, 5.0, 0.5, -3.999};
10229 Faux2.v= (vector float) { 0.0, 3.5, 0.55, -1.5};
10230 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10231 Faux1.v= (vector float) (-1.5, 5.0, 0.5, -3.999);
10232 Faux2.v= (vector float) ( 0.0, 3.5, 0.55, -1.5);
10233 # endif
10234 b= vec_any_nle (Faux1.v, Faux2.v);
10235 bAux= 0;
10236 for (i=0; i<4; i++)
10237 bAux= bAux ||
10238 (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) || !(Faux1.e[i]<=Faux2.e[i]));
10239 if (bAux!=b) err= 1;
10240
10241 # if defined (GCC_COMPILER)
10242 Faux1.v= (vector float) {-1.5, 1.0, NAN, -3.999};
10243 Faux2.v= (vector float) { 0.0, 3.5, 0.55, -1.5};
10244 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10245 Faux1.v= (vector float) (-1.5, 1.0, NAN, -3.999);
10246 Faux2.v= (vector float) ( 0.0, 3.5, 0.55, -1.5);
10247 # endif
10248 b= vec_any_nle (Faux1.v, Faux2.v);
10249 bAux= 0;
10250 for (i=0; i<4; i++)
10251 bAux= bAux ||
10252 (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) || !(Faux1.e[i]<=Faux2.e[i]));
10253 if (bAux!=b) err= 1;
10254
10255 if (err)
10256 printf("Function vec_any_nle [type float] ===> Error\n");
10257 else
10258 printf("Function vec_any_nle [type float] ===> OK\n");
10259 #endif
10260
10261
10262 #if defined TEST_FLOATS
10263 /* Function vec_any_nlt */
10264 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
10265 err = 0;
10266 # if defined (GCC_COMPILER)
10267 Faux1.v= (vector float) {-1.5, 1.0, 0.5, -3.999};
10268 Faux2.v= (vector float) { 0.0, 3.5, 0.55, -1.5};
10269 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10270 Faux1.v= (vector float) (-1.5, 1.0, 0.5, -3.999);
10271 Faux2.v= (vector float) ( 0.0, 3.5, 0.55, -1.5);
10272 # endif
10273 b= vec_any_nlt (Faux1.v, Faux2.v);
10274 bAux= 0;
10275 for (i=0; i<4; i++)
10276 bAux= bAux ||
10277 (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) || !(Faux1.e[i]<Faux2.e[i]));
10278 if (bAux!=b) err= 1;
10279
10280 # if defined (GCC_COMPILER)
10281 Faux1.v= (vector float) {-1.5, 1.0, 0.55, -3.999};
10282 Faux2.v= (vector float) { 0.0, 3.5, 0.55, -1.5};
10283 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10284 Faux1.v= (vector float) (-1.5, 1.0, 0.55, -3.999);
10285 Faux2.v= (vector float) ( 0.0, 3.5, 0.55, -1.5);
10286 # endif
10287 b= vec_all_nlt (Faux1.v, Faux2.v);
10288 b= vec_any_nlt (Faux1.v, Faux2.v);
10289 bAux= 0;
10290 for (i=0; i<4; i++)
10291 bAux= bAux ||
10292 (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) || !(Faux1.e[i]<Faux2.e[i]));
10293 if (bAux!=b) err= 1;
10294
10295 # if defined (GCC_COMPILER)
10296 Faux1.v= (vector float) {-1.5, 5.0, 0.5, -3.999};
10297 Faux2.v= (vector float) { 0.0, 3.5, 0.55, -1.5};
10298 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10299 Faux1.v= (vector float) (-1.5, 5.0, 0.5, -3.999);
10300 Faux2.v= (vector float) ( 0.0, 3.5, 0.55, -1.5);
10301 # endif
10302 b= vec_any_nlt (Faux1.v, Faux2.v);
10303 bAux= 0;
10304 for (i=0; i<4; i++)
10305 bAux= bAux ||
10306 (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) || !(Faux1.e[i]<Faux2.e[i]));
10307 if (bAux!=b) err= 1;
10308
10309 # if defined (GCC_COMPILER)
10310 Faux1.v= (vector float) {-1.5, 1.0, NAN, -3.999};
10311 Faux2.v= (vector float) { 0.0, 3.5, 0.55, -1.5};
10312 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10313 Faux1.v= (vector float) (-1.5, 1.0, NAN, -3.999);
10314 Faux2.v= (vector float) ( 0.0, 3.5, 0.55, -1.5);
10315 # endif
10316 b= vec_any_nlt (Faux1.v, Faux2.v);
10317 bAux= 0;
10318 for (i=0; i<4; i++)
10319 bAux= bAux ||
10320 (isnan(Faux1.e[i]) || isnan(Faux2.e[i]) || !(Faux1.e[i]<Faux2.e[i]));
10321 if (bAux!=b) err= 1;
10322
10323 if (err)
10324 printf("Function vec_any_nlt [type float] ===> Error\n");
10325 else
10326 printf("Function vec_any_nlt [type float] ===> OK\n");
10327 #endif
10328
10329
10330 #if defined TEST_FLOATS
10331 /* Function vec_any_numeric */
10332 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
10333 err = 0;
10334 # if defined (GCC_COMPILER)
10335 Faux1.v= (vector float) { NAN, NAN, NAN, NAN};
10336 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10337 Faux1.v= (vector float) ( NAN, NAN, NAN, NAN);
10338 # endif
10339 b= vec_any_numeric (Faux1.v);
10340 bAux= 0;
10341 for (i=0; i<4; i++)
10342 bAux= bAux || !isnan(Faux1.e[i]);
10343 if (bAux!=b) err= 1;
10344
10345 # if defined (GCC_COMPILER)
10346 Faux1.v= (vector float) { NAN, 3.5, NAN, NAN};
10347 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10348 Faux1.v= (vector float) ( NAN, 3.5, NAN, NAN);
10349 # endif
10350 b= vec_any_numeric (Faux1.v);
10351 bAux= 0;
10352 for (i=0; i<4; i++)
10353 bAux= bAux || !isnan(Faux1.e[i]);
10354 if (bAux!=b) err= 1;
10355
10356 # if defined (GCC_COMPILER)
10357 Faux1.v= (vector float) { -1.5, 3.5, 0.55, -1.5};
10358 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10359 Faux1.v= (vector float) ( -1.5, 3.5, 0.55, -1.5);
10360 # endif
10361 b= vec_any_numeric (Faux1.v);
10362 bAux= 0;
10363 for (i=0; i<4; i++)
10364 bAux= bAux || !isnan(Faux1.e[i]);
10365 if (bAux!=b) err= 1;
10366
10367 if (err)
10368 printf("Function vec_any_numeric [type float] ===> Error\n");
10369 else
10370 printf("Function vec_any_numeric [type float] ===> OK\n");
10371 #endif
10372
10373
10374 #if defined TEST_FLOATS
10375 /* Function vec_any_out */
10376 printf("\n:::::::::::::::::::::::::::::::::::::::\n");
10377 err = 0;
10378 Faux1.v = Fcons1;
10379 Faux2.v = Fcons2;
10380 I1 = vec_any_out( Faux1.v, Faux2.v );
10381 Iaux = 0;
10382 for ( i=0; i< 4; i++ )
10383 {
10384 Iaux = Iaux || ((isnan(Faux1.e[i])) || (isnan(Faux2.e[i])) ||
10385 (Faux1.e[i]>Faux2.e[i]) || (Faux1.e[i]<-Faux2.e[i]));
10386 }
10387 if (I1 != Iaux) err++;
10388
10389 # if defined (GCC_COMPILER)
10390 Faux1.v = (vector float){-0.5, 1.0, 0, -0.999};
10391 # elif defined (MAC_COMPILER) || defined (XLC_COMPILER)
10392 Faux1.v = (vector float)(-0.5, 1.0, 0, -0.999);
10393 # endif
10394 Faux2.v = Fcons2;
10395 I1 = vec_any_out( Faux1.v, Faux2.v );
10396 Iaux = 0;
10397 for ( i=0; i< 4; i++ )
10398 {
10399 Iaux = Iaux || ((isnan(Faux1.e[i])) || (isnan(Faux2.e[i])) ||
10400 (Faux1.e[i]>Faux2.e[i]) || (Faux1.e[i]<-Faux2.e[i]));
10401 }
10402 if (I1 != Iaux) err++;
10403
10404 if (err)
10405 printf("Function vec_any_out [type float] ===> Error\n");
10406 else
10407 printf("Function vec_any_out [type float] ===> OK\n");
10408 #endif
10409
10410 return 0;
10411 }
10412