annotate gcc/testsuite/gcc.dg/vmx/pack.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 #include "harness.h"
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 #define BIG 4294967295
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 static void test()
kono
parents:
diff changeset
6 {
kono
parents:
diff changeset
7 /* Input vectors. */
kono
parents:
diff changeset
8 vector unsigned short vusa = {0,1,2,3,4,5,6,7};
kono
parents:
diff changeset
9 vector unsigned short vusb = {8,9,10,11,12,13,14,15};
kono
parents:
diff changeset
10 vector signed short vssa = {-8,-7,-6,-5,-4,-3,-2,-1};
kono
parents:
diff changeset
11 vector signed short vssb = {0,1,2,3,4,5,6,7};
kono
parents:
diff changeset
12 vector bool short vbsa = {0,65535,65535,0,0,0,65535,0};
kono
parents:
diff changeset
13 vector bool short vbsb = {65535,0,0,65535,65535,65535,0,65535};
kono
parents:
diff changeset
14 vector unsigned int vuia = {0,1,2,3};
kono
parents:
diff changeset
15 vector unsigned int vuib = {4,5,6,7};
kono
parents:
diff changeset
16 vector signed int vsia = {-4,-3,-2,-1};
kono
parents:
diff changeset
17 vector signed int vsib = {0,1,2,3};
kono
parents:
diff changeset
18 vector bool int vbia = {0,BIG,BIG,BIG};
kono
parents:
diff changeset
19 vector bool int vbib = {BIG,0,0,0};
kono
parents:
diff changeset
20 vector unsigned int vipa = {(0<<24) + (2<<19) + (3<<11) + (4<<3),
kono
parents:
diff changeset
21 (1<<24) + (5<<19) + (6<<11) + (7<<3),
kono
parents:
diff changeset
22 (0<<24) + (8<<19) + (9<<11) + (10<<3),
kono
parents:
diff changeset
23 (1<<24) + (11<<19) + (12<<11) + (13<<3)};
kono
parents:
diff changeset
24 vector unsigned int vipb = {(1<<24) + (14<<19) + (15<<11) + (16<<3),
kono
parents:
diff changeset
25 (0<<24) + (17<<19) + (18<<11) + (19<<3),
kono
parents:
diff changeset
26 (1<<24) + (20<<19) + (21<<11) + (22<<3),
kono
parents:
diff changeset
27 (0<<24) + (23<<19) + (24<<11) + (25<<3)};
kono
parents:
diff changeset
28 vector unsigned short vusc = {0,256,1,257,2,258,3,259};
kono
parents:
diff changeset
29 vector unsigned short vusd = {4,260,5,261,6,262,7,263};
kono
parents:
diff changeset
30 vector signed short vssc = {-1,-128,0,127,-2,-129,1,128};
kono
parents:
diff changeset
31 vector signed short vssd = {-3,-130,2,129,-4,-131,3,130};
kono
parents:
diff changeset
32 vector unsigned int vuic = {0,65536,1,65537};
kono
parents:
diff changeset
33 vector unsigned int vuid = {2,65538,3,65539};
kono
parents:
diff changeset
34 vector signed int vsic = {-1,-32768,0,32767};
kono
parents:
diff changeset
35 vector signed int vsid = {-2,-32769,1,32768};
kono
parents:
diff changeset
36
kono
parents:
diff changeset
37 /* Result vectors. */
kono
parents:
diff changeset
38 vector unsigned char vucr;
kono
parents:
diff changeset
39 vector signed char vscr;
kono
parents:
diff changeset
40 vector bool char vbcr;
kono
parents:
diff changeset
41 vector unsigned short vusr;
kono
parents:
diff changeset
42 vector signed short vssr;
kono
parents:
diff changeset
43 vector bool short vbsr;
kono
parents:
diff changeset
44 vector pixel vpr;
kono
parents:
diff changeset
45 vector unsigned char vucsr;
kono
parents:
diff changeset
46 vector signed char vscsr;
kono
parents:
diff changeset
47 vector unsigned short vussr;
kono
parents:
diff changeset
48 vector signed short vsssr;
kono
parents:
diff changeset
49 vector unsigned char vucsur1, vucsur2;
kono
parents:
diff changeset
50 vector unsigned short vussur1, vussur2;
kono
parents:
diff changeset
51
kono
parents:
diff changeset
52 /* Expected result vectors. */
kono
parents:
diff changeset
53 vector unsigned char vucer = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
kono
parents:
diff changeset
54 vector signed char vscer = {-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7};
kono
parents:
diff changeset
55 vector bool char vbcer = {0,255,255,0,0,0,255,0,255,0,0,255,255,255,0,255};
kono
parents:
diff changeset
56 vector unsigned short vuser = {0,1,2,3,4,5,6,7};
kono
parents:
diff changeset
57 vector signed short vsser = {-4,-3,-2,-1,0,1,2,3};
kono
parents:
diff changeset
58 vector bool short vbser = {0,65535,65535,65535,65535,0,0,0};
kono
parents:
diff changeset
59 vector pixel vper = {(0<<15) + (2<<10) + (3<<5) + 4,
kono
parents:
diff changeset
60 (1<<15) + (5<<10) + (6<<5) + 7,
kono
parents:
diff changeset
61 (0<<15) + (8<<10) + (9<<5) + 10,
kono
parents:
diff changeset
62 (1<<15) + (11<<10) + (12<<5) + 13,
kono
parents:
diff changeset
63 (1<<15) + (14<<10) + (15<<5) + 16,
kono
parents:
diff changeset
64 (0<<15) + (17<<10) + (18<<5) + 19,
kono
parents:
diff changeset
65 (1<<15) + (20<<10) + (21<<5) + 22,
kono
parents:
diff changeset
66 (0<<15) + (23<<10) + (24<<5) + 25};
kono
parents:
diff changeset
67 vector unsigned char vucser = {0,255,1,255,2,255,3,255,4,255,5,255,6,255,7,255};
kono
parents:
diff changeset
68 vector signed char vscser = {-1,-128,0,127,-2,-128,1,127,
kono
parents:
diff changeset
69 -3,-128,2,127,-4,-128,3,127};
kono
parents:
diff changeset
70 vector unsigned short vusser = {0,65535,1,65535,2,65535,3,65535};
kono
parents:
diff changeset
71 vector signed short vssser = {-1,-32768,0,32767,-2,-32768,1,32767};
kono
parents:
diff changeset
72 vector unsigned char vucsuer1 = {0,255,1,255,2,255,3,255,4,255,5,255,6,255,7,255};
kono
parents:
diff changeset
73 vector unsigned char vucsuer2 = {0,0,0,127,0,0,1,128,0,0,2,129,0,0,3,130};
kono
parents:
diff changeset
74 vector unsigned short vussuer1 = {0,65535,1,65535,2,65535,3,65535};
kono
parents:
diff changeset
75 vector unsigned short vussuer2 = {0,0,0,32767,0,0,1,32768};
kono
parents:
diff changeset
76
kono
parents:
diff changeset
77 vucr = vec_pack (vusa, vusb);
kono
parents:
diff changeset
78 vscr = vec_pack (vssa, vssb);
kono
parents:
diff changeset
79 vbcr = vec_pack (vbsa, vbsb);
kono
parents:
diff changeset
80 vusr = vec_pack (vuia, vuib);
kono
parents:
diff changeset
81 vssr = vec_pack (vsia, vsib);
kono
parents:
diff changeset
82 vbsr = vec_pack (vbia, vbib);
kono
parents:
diff changeset
83 vpr = vec_packpx (vipa, vipb);
kono
parents:
diff changeset
84 vucsr = vec_packs (vusc, vusd);
kono
parents:
diff changeset
85 vscsr = vec_packs (vssc, vssd);
kono
parents:
diff changeset
86 vussr = vec_packs (vuic, vuid);
kono
parents:
diff changeset
87 vsssr = vec_packs (vsic, vsid);
kono
parents:
diff changeset
88 vucsur1 = vec_packsu (vusc, vusd);
kono
parents:
diff changeset
89 vucsur2 = vec_packsu (vssc, vssd);
kono
parents:
diff changeset
90 vussur1 = vec_packsu (vuic, vuid);
kono
parents:
diff changeset
91 vussur2 = vec_packsu (vsic, vsid);
kono
parents:
diff changeset
92
kono
parents:
diff changeset
93 check (vec_all_eq (vucr, vucer), "vucr");
kono
parents:
diff changeset
94 check (vec_all_eq (vscr, vscer), "vscr");
kono
parents:
diff changeset
95 check (vec_all_eq (vbcr, vbcer), "vbcr");
kono
parents:
diff changeset
96 check (vec_all_eq (vusr, vuser), "vusr");
kono
parents:
diff changeset
97 check (vec_all_eq (vssr, vsser), "vssr");
kono
parents:
diff changeset
98 check (vec_all_eq (vbsr, vbser), "vbsr");
kono
parents:
diff changeset
99 check (vec_all_eq (vpr, vper ), "vpr" );
kono
parents:
diff changeset
100 check (vec_all_eq (vucsr, vucser), "vucsr");
kono
parents:
diff changeset
101 check (vec_all_eq (vscsr, vscser), "vscsr");
kono
parents:
diff changeset
102 check (vec_all_eq (vussr, vusser), "vussr");
kono
parents:
diff changeset
103 check (vec_all_eq (vsssr, vssser), "vsssr");
kono
parents:
diff changeset
104 check (vec_all_eq (vucsur1, vucsuer1), "vucsur1");
kono
parents:
diff changeset
105 check (vec_all_eq (vucsur2, vucsuer2), "vucsur2");
kono
parents:
diff changeset
106 check (vec_all_eq (vussur1, vussuer1), "vussur1");
kono
parents:
diff changeset
107 check (vec_all_eq (vussur2, vussuer2), "vussur2");
kono
parents:
diff changeset
108 }