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
135typedef struct
136        {
137          char  *realAdd;
138          char  *returnAdd;
139        } Tmemtab;
140
141
142static Tmemtab *memTab    = NULL;
143static size_t   nadd      =   0;
144static size_t   MAX_N_ADD = 100;
145
146
147void *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
209void 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
272int part1( );
273int part2( );
274int part3( );
275int part4( );
276int part5( );
277
278
279typedef union
280{
281   vector signed char    v;
282   signed char           e[16];
283} TvecChar;
284
285typedef union
286{
287   vector unsigned char  v;
288   unsigned char         e[16];
289} TvecUChar;
290
291typedef union
292{
293   vector bool char      v;
294   unsigned char         e[16];
295} TvecBChar;
296
297typedef union
298{
299   vector signed short   v;
300   signed short          e[8];
301} TvecShort;
302
303typedef union
304{
305   vector unsigned short v;
306   unsigned short        e[8];
307} TvecUShort;
308
309typedef union
310{
311   vector bool short     v;
312   unsigned short        e[8];
313} TvecBShort;
314
315typedef union
316{
317   vector signed int     v;
318   signed int            e[4];
319} TvecInt;
320
321typedef union
322{
323   vector unsigned int   v;
324   unsigned int          e[4];
325} TvecUInt;
326
327typedef union
328{
329   vector bool int       v;
330   unsigned int          e[4];
331} TvecBInt;
332
333#if defined TEST_FLOATS
334typedef 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 */
343typedef unsigned char   TboolChar;
344typedef unsigned short  TboolShort;
345typedef unsigned int    TboolInt;
346
347#endif
348
349
350
351
352
353
354/**********************************************************************
355 Main()
356 **********************************************************************/
357
358
359
360int 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
1669int 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
2219int 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
2925printf("vector: %d \n", Saux1.e[i]);
2926printf("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
3397int 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
5707int 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
6410int 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