1 #include "harness.h"
2 
3 static unsigned char svuc[16] __attribute__ ((aligned (16)));
4 static signed char svsc[16] __attribute__ ((aligned (16)));
5 static unsigned short svus[8] __attribute__ ((aligned (16)));
6 static signed short svss[8] __attribute__ ((aligned (16)));
7 static unsigned int svui[4] __attribute__ ((aligned (16)));
8 static signed int svsi[4] __attribute__ ((aligned (16)));
9 static float svf[4] __attribute__ ((aligned (16)));
10 
init()11 static void init ()
12 {
13   unsigned int i;
14   for (i = 0; i < 16; ++i)
15     {
16       svuc[i] = i;
17       svsc[i] = i - 8;
18     }
19   for (i = 0; i < 8; ++i)
20     {
21       svus[i] = i;
22       svss[i] = i - 4;
23     }
24   for (i = 0; i < 4; ++i)
25     {
26       svui[i] = i;
27       svsi[i] = i - 2;
28       svf[i] = i * 1.0f;
29     }
30 }
31 
test()32 static void test ()
33 {
34   vector unsigned char vuc;
35   vector signed char vsc;
36   vector unsigned short vus;
37   vector signed short vss;
38   vector unsigned int vui;
39   vector signed int vsi;
40   vector float vf;
41 
42   init ();
43 
44   vuc = vec_lde (9*1, (unsigned char *)svuc);
45   vsc = vec_lde (14*1, (signed char *)svsc);
46   vus = vec_lde (7*2, (unsigned short *)svus);
47   vss = vec_lde (1*2, (signed short *)svss);
48   vui = vec_lde (3*4, (unsigned int *)svui);
49   vsi = vec_lde (2*4, (signed int *)svsi);
50   vf  = vec_lde (0*4, (float *)svf);
51 
52   check (vec_extract (vuc, 9) == 9, "vuc");
53   check (vec_extract (vsc, 14) == 6, "vsc");
54   check (vec_extract (vus, 7) == 7, "vus");
55   check (vec_extract (vss, 1) == -3, "vss");
56   check (vec_extract (vui, 3) == 3, "vui");
57   check (vec_extract (vsi, 2) == 0, "vsi");
58   check (vec_extract (vf,  0) == 0.0, "vf");
59 }
60