2014-08-04 Ed Schonberg <schonberg@adacore.com>
[official-gcc.git] / gcc / testsuite / gcc.dg / vmx / splat.c
blobe45974ac9101215c8eecb7b0cd3bfa4578bde2f9
1 #include "harness.h"
3 static void test()
5 /* Input vectors. */
6 vector unsigned char vuc = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
7 vector signed char vsc = {-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7};
8 vector unsigned short vus = {0,1,2,3,4,5,6,7};
9 vector signed short vss = {-4,-3,-2,-1,0,1,2,3};
10 vector unsigned int vui = {0,1,2,3};
11 vector signed int vsi = {-2,-1,0,1};
12 vector float vf = {-2.0,-1.0,0.0,1.0};
14 /* Result vectors. */
15 vector unsigned char vucr;
16 vector signed char vscr;
17 vector unsigned short vusr;
18 vector signed short vssr;
19 vector unsigned int vuir;
20 vector signed int vsir;
21 vector float vfr;
23 /* Expected result vectors. */
24 vector unsigned char vucer = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
25 vector signed char vscer = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
26 vector unsigned short vuser = {7,7,7,7,7,7,7,7};
27 vector signed short vsser = {-4,-4,-4,-4,-4,-4,-4,-4};
28 vector unsigned int vuier = {2,2,2,2};
29 vector signed int vsier = {1,1,1,1};
30 vector float vfer = {-1.0,-1.0,-1.0,-1.0};
32 vucr = vec_splat (vuc, 1);
33 vscr = vec_splat (vsc, 8);
34 vusr = vec_splat (vus, 7);
35 vssr = vec_splat (vss, 0);
36 vuir = vec_splat (vui, 2);
37 vsir = vec_splat (vsi, 3);
38 vfr = vec_splat (vf, 1);
40 check (vec_all_eq (vucr, vucer), "vuc");
41 check (vec_all_eq (vscr, vscer), "vsc");
42 check (vec_all_eq (vusr, vuser), "vus");
43 check (vec_all_eq (vssr, vsser), "vss");
44 check (vec_all_eq (vuir, vuier), "vui");
45 check (vec_all_eq (vsir, vsier), "vsi");
46 check (vec_all_eq (vfr, vfer ), "vf");