altivec.md (altivec_lve<VI_char>x): Replace define_insn with define_expand and new...
[gcc.git] / gcc / testsuite / gcc.dg / vmx / ste.c
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
11 static void check_arrays ()
12 {
13 check (svuc[9] == 9, "svuc");
14 check (svsc[14] == 6, "svsc");
15 check (svus[7] == 7, "svus");
16 check (svss[1] == -3, "svss");
17 check (svui[3] == 3, "svui");
18 check (svsi[2] == 0, "svsi");
19 check (svf[0] == 0.0, "svf");
20 }
21
22 static void test ()
23 {
24 vector unsigned char vuc = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
25 vector signed char vsc = {-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7};
26 vector unsigned short vus = {0,1,2,3,4,5,6,7};
27 vector signed short vss = {-4,-3,-2,-1,0,1,2,3};
28 vector unsigned int vui = {0,1,2,3};
29 vector signed int vsi = {-2,-1,0,1};
30 vector float vf = {0.0,1.0,2.0,3.0};
31
32 vec_ste (vuc, 9*1, (unsigned char *)svuc);
33 vec_ste (vsc, 14*1, (signed char *)svsc);
34 vec_ste (vus, 7*2, (unsigned short *)svus);
35 vec_ste (vss, 1*2, (signed short *)svss);
36 vec_ste (vui, 3*4, (unsigned int *)svui);
37 vec_ste (vsi, 2*4, (signed int *)svsi);
38 vec_ste (vf, 0*4, (float *)svf);
39
40 check_arrays ();
41 }