libcpp, c, middle-end: Optimize initializers using #embed in C
[official-gcc.git] / gcc / testsuite / gcc.dg / vmx / merge.c
blob84b14fea744ad82b3c5577d344dfa059be3d9c7f
1 #include "harness.h"
3 static void test()
5 /* Input vectors. */
6 vector unsigned char vuca = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
7 vector unsigned char vucb
8 = {16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31};
9 vector signed char vsca
10 = {-16,-15,-14,-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1};
11 vector signed char vscb = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
12 vector unsigned short vusa = {0,1,2,3,4,5,6,7};
13 vector unsigned short vusb = {8,9,10,11,12,13,14,15};
14 vector signed short vssa = {-8,-7,-6,-5,-4,-3,-2,-1};
15 vector signed short vssb = {0,1,2,3,4,5,6,7};
16 vector unsigned int vuia = {0,1,2,3};
17 vector unsigned int vuib = {4,5,6,7};
18 vector signed int vsia = {-4,-3,-2,-1};
19 vector signed int vsib = {0,1,2,3};
20 vector float vfa = {-4.0,-3.0,-2.0,-1.0};
21 vector float vfb = {0.0,1.0,2.0,3.0};
23 /* Result vectors. */
24 vector unsigned char vuch, vucl;
25 vector signed char vsch, vscl;
26 vector unsigned short vush, vusl;
27 vector signed short vssh, vssl;
28 vector unsigned int vuih, vuil;
29 vector signed int vsih, vsil;
30 vector float vfh, vfl;
32 /* Expected result vectors. */
33 vector unsigned char vucrh = {0,16,1,17,2,18,3,19,4,20,5,21,6,22,7,23};
34 vector unsigned char vucrl = {8,24,9,25,10,26,11,27,12,28,13,29,14,30,15,31};
35 vector signed char vscrh = {-16,0,-15,1,-14,2,-13,3,-12,4,-11,5,-10,6,-9,7};
36 vector signed char vscrl = {-8,8,-7,9,-6,10,-5,11,-4,12,-3,13,-2,14,-1,15};
37 vector unsigned short vusrh = {0,8,1,9,2,10,3,11};
38 vector unsigned short vusrl = {4,12,5,13,6,14,7,15};
39 vector signed short vssrh = {-8,0,-7,1,-6,2,-5,3};
40 vector signed short vssrl = {-4,4,-3,5,-2,6,-1,7};
41 vector unsigned int vuirh = {0,4,1,5};
42 vector unsigned int vuirl = {2,6,3,7};
43 vector signed int vsirh = {-4,0,-3,1};
44 vector signed int vsirl = {-2,2,-1,3};
45 vector float vfrh = {-4.0,0.0,-3.0,1.0};
46 vector float vfrl = {-2.0,2.0,-1.0,3.0};
48 vuch = vec_mergeh (vuca, vucb);
49 vucl = vec_mergel (vuca, vucb);
50 vsch = vec_mergeh (vsca, vscb);
51 vscl = vec_mergel (vsca, vscb);
52 vush = vec_mergeh (vusa, vusb);
53 vusl = vec_mergel (vusa, vusb);
54 vssh = vec_mergeh (vssa, vssb);
55 vssl = vec_mergel (vssa, vssb);
56 vuih = vec_mergeh (vuia, vuib);
57 vuil = vec_mergel (vuia, vuib);
58 vsih = vec_mergeh (vsia, vsib);
59 vsil = vec_mergel (vsia, vsib);
60 vfh = vec_mergeh (vfa, vfb );
61 vfl = vec_mergel (vfa, vfb );
63 check (vec_all_eq (vuch, vucrh), "vuch");
64 check (vec_all_eq (vucl, vucrl), "vucl");
65 check (vec_all_eq (vsch, vscrh), "vsch");
66 check (vec_all_eq (vscl, vscrl), "vscl");
67 check (vec_all_eq (vush, vusrh), "vush");
68 check (vec_all_eq (vusl, vusrl), "vusl");
69 check (vec_all_eq (vssh, vssrh), "vssh");
70 check (vec_all_eq (vssl, vssrl), "vssl");
71 check (vec_all_eq (vuih, vuirh), "vuih");
72 check (vec_all_eq (vuil, vuirl), "vuil");
73 check (vec_all_eq (vsih, vsirh), "vsih");
74 check (vec_all_eq (vsil, vsirl), "vsil");
75 check (vec_all_eq (vfh, vfrh), "vfh");
76 check (vec_all_eq (vfl, vfrl), "vfl");