[ARM,AArch64][testsuite] AdvSIMD intrinsics tests cleanup: remove useless expected...
[official-gcc.git] / gcc / testsuite / gcc.target / aarch64 / advsimd-intrinsics / vldX.c
blobf20aa03f51b770db68bc2e48181fcfb50f025f55
1 #include <arm_neon.h>
2 #include "arm-neon-ref.h"
3 #include "compute-ref-data.h"
5 /* Expected results. */
7 /* vld2/chunk 0. */
8 VECT_VAR_DECL(expected_vld2_0,int,8,8) [] = { 0xf0, 0xf1, 0xf2, 0xf3,
9 0xf4, 0xf5, 0xf6, 0xf7 };
10 VECT_VAR_DECL(expected_vld2_0,int,16,4) [] = { 0xfff0, 0xfff1, 0xfff2, 0xfff3 };
11 VECT_VAR_DECL(expected_vld2_0,int,32,2) [] = { 0xfffffff0, 0xfffffff1 };
12 VECT_VAR_DECL(expected_vld2_0,int,64,1) [] = { 0xfffffffffffffff0 };
13 VECT_VAR_DECL(expected_vld2_0,uint,8,8) [] = { 0xf0, 0xf1, 0xf2, 0xf3,
14 0xf4, 0xf5, 0xf6, 0xf7 };
15 VECT_VAR_DECL(expected_vld2_0,uint,16,4) [] = { 0xfff0, 0xfff1, 0xfff2, 0xfff3 };
16 VECT_VAR_DECL(expected_vld2_0,uint,32,2) [] = { 0xfffffff0, 0xfffffff1 };
17 VECT_VAR_DECL(expected_vld2_0,uint,64,1) [] = { 0xfffffffffffffff0 };
18 VECT_VAR_DECL(expected_vld2_0,poly,8,8) [] = { 0xf0, 0xf1, 0xf2, 0xf3,
19 0xf4, 0xf5, 0xf6, 0xf7 };
20 VECT_VAR_DECL(expected_vld2_0,poly,16,4) [] = { 0xfff0, 0xfff1, 0xfff2, 0xfff3 };
21 VECT_VAR_DECL(expected_vld2_0,hfloat,32,2) [] = { 0xc1800000, 0xc1700000 };
22 VECT_VAR_DECL(expected_vld2_0,int,8,16) [] = { 0xf0, 0xf1, 0xf2, 0xf3,
23 0xf4, 0xf5, 0xf6, 0xf7,
24 0xf8, 0xf9, 0xfa, 0xfb,
25 0xfc, 0xfd, 0xfe, 0xff };
26 VECT_VAR_DECL(expected_vld2_0,int,16,8) [] = { 0xfff0, 0xfff1, 0xfff2, 0xfff3,
27 0xfff4, 0xfff5, 0xfff6, 0xfff7 };
28 VECT_VAR_DECL(expected_vld2_0,int,32,4) [] = { 0xfffffff0, 0xfffffff1,
29 0xfffffff2, 0xfffffff3 };
30 VECT_VAR_DECL(expected_vld2_0,uint,8,16) [] = { 0xf0, 0xf1, 0xf2, 0xf3,
31 0xf4, 0xf5, 0xf6, 0xf7,
32 0xf8, 0xf9, 0xfa, 0xfb,
33 0xfc, 0xfd, 0xfe, 0xff };
34 VECT_VAR_DECL(expected_vld2_0,uint,16,8) [] = { 0xfff0, 0xfff1, 0xfff2, 0xfff3,
35 0xfff4, 0xfff5, 0xfff6, 0xfff7 };
36 VECT_VAR_DECL(expected_vld2_0,uint,32,4) [] = { 0xfffffff0, 0xfffffff1,
37 0xfffffff2, 0xfffffff3 };
38 VECT_VAR_DECL(expected_vld2_0,poly,8,16) [] = { 0xf0, 0xf1, 0xf2, 0xf3,
39 0xf4, 0xf5, 0xf6, 0xf7,
40 0xf8, 0xf9, 0xfa, 0xfb,
41 0xfc, 0xfd, 0xfe, 0xff };
42 VECT_VAR_DECL(expected_vld2_0,poly,16,8) [] = { 0xfff0, 0xfff1, 0xfff2, 0xfff3,
43 0xfff4, 0xfff5, 0xfff6, 0xfff7 };
44 VECT_VAR_DECL(expected_vld2_0,hfloat,32,4) [] = { 0xc1800000, 0xc1700000,
45 0xc1600000, 0xc1500000 };
47 /* vld2/chunk 1. */
48 VECT_VAR_DECL(expected_vld2_1,int,8,8) [] = { 0xf8, 0xf9, 0xfa, 0xfb,
49 0xfc, 0xfd, 0xfe, 0xff };
50 VECT_VAR_DECL(expected_vld2_1,int,16,4) [] = { 0xfff4, 0xfff5, 0xfff6, 0xfff7 };
51 VECT_VAR_DECL(expected_vld2_1,int,32,2) [] = { 0xfffffff2, 0xfffffff3 };
52 VECT_VAR_DECL(expected_vld2_1,int,64,1) [] = { 0xfffffffffffffff1 };
53 VECT_VAR_DECL(expected_vld2_1,uint,8,8) [] = { 0xf8, 0xf9, 0xfa, 0xfb,
54 0xfc, 0xfd, 0xfe, 0xff };
55 VECT_VAR_DECL(expected_vld2_1,uint,16,4) [] = { 0xfff4, 0xfff5, 0xfff6, 0xfff7 };
56 VECT_VAR_DECL(expected_vld2_1,uint,32,2) [] = { 0xfffffff2, 0xfffffff3 };
57 VECT_VAR_DECL(expected_vld2_1,uint,64,1) [] = { 0xfffffffffffffff1 };
58 VECT_VAR_DECL(expected_vld2_1,poly,8,8) [] = { 0xf8, 0xf9, 0xfa, 0xfb,
59 0xfc, 0xfd, 0xfe, 0xff };
60 VECT_VAR_DECL(expected_vld2_1,poly,16,4) [] = { 0xfff4, 0xfff5, 0xfff6, 0xfff7 };
61 VECT_VAR_DECL(expected_vld2_1,hfloat,32,2) [] = { 0xc1600000, 0xc1500000 };
62 VECT_VAR_DECL(expected_vld2_1,int,8,16) [] = { 0x0, 0x1, 0x2, 0x3,
63 0x4, 0x5, 0x6, 0x7,
64 0x8, 0x9, 0xa, 0xb,
65 0xc, 0xd, 0xe, 0xf };
66 VECT_VAR_DECL(expected_vld2_1,int,16,8) [] = { 0xfff8, 0xfff9, 0xfffa, 0xfffb,
67 0xfffc, 0xfffd, 0xfffe, 0xffff };
68 VECT_VAR_DECL(expected_vld2_1,int,32,4) [] = { 0xfffffff4, 0xfffffff5,
69 0xfffffff6, 0xfffffff7 };
70 VECT_VAR_DECL(expected_vld2_1,uint,8,16) [] = { 0x0, 0x1, 0x2, 0x3,
71 0x4, 0x5, 0x6, 0x7,
72 0x8, 0x9, 0xa, 0xb,
73 0xc, 0xd, 0xe, 0xf };
74 VECT_VAR_DECL(expected_vld2_1,uint,16,8) [] = { 0xfff8, 0xfff9, 0xfffa, 0xfffb,
75 0xfffc, 0xfffd, 0xfffe, 0xffff };
76 VECT_VAR_DECL(expected_vld2_1,uint,32,4) [] = { 0xfffffff4, 0xfffffff5,
77 0xfffffff6, 0xfffffff7 };
78 VECT_VAR_DECL(expected_vld2_1,poly,8,16) [] = { 0x0, 0x1, 0x2, 0x3,
79 0x4, 0x5, 0x6, 0x7,
80 0x8, 0x9, 0xa, 0xb,
81 0xc, 0xd, 0xe, 0xf };
82 VECT_VAR_DECL(expected_vld2_1,poly,16,8) [] = { 0xfff8, 0xfff9, 0xfffa, 0xfffb,
83 0xfffc, 0xfffd, 0xfffe, 0xffff };
84 VECT_VAR_DECL(expected_vld2_1,hfloat,32,4) [] = { 0xc1400000, 0xc1300000,
85 0xc1200000, 0xc1100000 };
87 /* vld3/chunk 0. */
88 VECT_VAR_DECL(expected_vld3_0,int,8,8) [] = { 0xf0, 0xf1, 0xf2, 0xf3,
89 0xf4, 0xf5, 0xf6, 0xf7 };
90 VECT_VAR_DECL(expected_vld3_0,int,16,4) [] = { 0xfff0, 0xfff1, 0xfff2, 0xfff3 };
91 VECT_VAR_DECL(expected_vld3_0,int,32,2) [] = { 0xfffffff0, 0xfffffff1 };
92 VECT_VAR_DECL(expected_vld3_0,int,64,1) [] = { 0xfffffffffffffff0 };
93 VECT_VAR_DECL(expected_vld3_0,uint,8,8) [] = { 0xf0, 0xf1, 0xf2, 0xf3,
94 0xf4, 0xf5, 0xf6, 0xf7 };
95 VECT_VAR_DECL(expected_vld3_0,uint,16,4) [] = { 0xfff0, 0xfff1, 0xfff2, 0xfff3 };
96 VECT_VAR_DECL(expected_vld3_0,uint,32,2) [] = { 0xfffffff0, 0xfffffff1 };
97 VECT_VAR_DECL(expected_vld3_0,uint,64,1) [] = { 0xfffffffffffffff0 };
98 VECT_VAR_DECL(expected_vld3_0,poly,8,8) [] = { 0xf0, 0xf1, 0xf2, 0xf3,
99 0xf4, 0xf5, 0xf6, 0xf7 };
100 VECT_VAR_DECL(expected_vld3_0,poly,16,4) [] = { 0xfff0, 0xfff1, 0xfff2, 0xfff3 };
101 VECT_VAR_DECL(expected_vld3_0,hfloat,32,2) [] = { 0xc1800000, 0xc1700000 };
102 VECT_VAR_DECL(expected_vld3_0,int,8,16) [] = { 0xf0, 0xf1, 0xf2, 0xf3,
103 0xf4, 0xf5, 0xf6, 0xf7,
104 0xf8, 0xf9, 0xfa, 0xfb,
105 0xfc, 0xfd, 0xfe, 0xff };
106 VECT_VAR_DECL(expected_vld3_0,int,16,8) [] = { 0xfff0, 0xfff1, 0xfff2, 0xfff3,
107 0xfff4, 0xfff5, 0xfff6, 0xfff7 };
108 VECT_VAR_DECL(expected_vld3_0,int,32,4) [] = { 0xfffffff0, 0xfffffff1,
109 0xfffffff2, 0xfffffff3 };
110 VECT_VAR_DECL(expected_vld3_0,uint,8,16) [] = { 0xf0, 0xf1, 0xf2, 0xf3,
111 0xf4, 0xf5, 0xf6, 0xf7,
112 0xf8, 0xf9, 0xfa, 0xfb,
113 0xfc, 0xfd, 0xfe, 0xff };
114 VECT_VAR_DECL(expected_vld3_0,uint,16,8) [] = { 0xfff0, 0xfff1, 0xfff2, 0xfff3,
115 0xfff4, 0xfff5, 0xfff6, 0xfff7 };
116 VECT_VAR_DECL(expected_vld3_0,uint,32,4) [] = { 0xfffffff0, 0xfffffff1,
117 0xfffffff2, 0xfffffff3 };
118 VECT_VAR_DECL(expected_vld3_0,poly,8,16) [] = { 0xf0, 0xf1, 0xf2, 0xf3,
119 0xf4, 0xf5, 0xf6, 0xf7,
120 0xf8, 0xf9, 0xfa, 0xfb,
121 0xfc, 0xfd, 0xfe, 0xff };
122 VECT_VAR_DECL(expected_vld3_0,poly,16,8) [] = { 0xfff0, 0xfff1, 0xfff2, 0xfff3,
123 0xfff4, 0xfff5, 0xfff6, 0xfff7 };
124 VECT_VAR_DECL(expected_vld3_0,hfloat,32,4) [] = { 0xc1800000, 0xc1700000,
125 0xc1600000, 0xc1500000 };
127 /* vld3/chunk 1. */
128 VECT_VAR_DECL(expected_vld3_1,int,8,8) [] = { 0xf8, 0xf9, 0xfa, 0xfb,
129 0xfc, 0xfd, 0xfe, 0xff };
130 VECT_VAR_DECL(expected_vld3_1,int,16,4) [] = { 0xfff4, 0xfff5, 0xfff6, 0xfff7 };
131 VECT_VAR_DECL(expected_vld3_1,int,32,2) [] = { 0xfffffff2, 0xfffffff3 };
132 VECT_VAR_DECL(expected_vld3_1,int,64,1) [] = { 0xfffffffffffffff1 };
133 VECT_VAR_DECL(expected_vld3_1,uint,8,8) [] = { 0xf8, 0xf9, 0xfa, 0xfb,
134 0xfc, 0xfd, 0xfe, 0xff };
135 VECT_VAR_DECL(expected_vld3_1,uint,16,4) [] = { 0xfff4, 0xfff5, 0xfff6, 0xfff7 };
136 VECT_VAR_DECL(expected_vld3_1,uint,32,2) [] = { 0xfffffff2, 0xfffffff3 };
137 VECT_VAR_DECL(expected_vld3_1,uint,64,1) [] = { 0xfffffffffffffff1 };
138 VECT_VAR_DECL(expected_vld3_1,poly,8,8) [] = { 0xf8, 0xf9, 0xfa, 0xfb,
139 0xfc, 0xfd, 0xfe, 0xff };
140 VECT_VAR_DECL(expected_vld3_1,poly,16,4) [] = { 0xfff4, 0xfff5, 0xfff6, 0xfff7 };
141 VECT_VAR_DECL(expected_vld3_1,hfloat,32,2) [] = { 0xc1600000, 0xc1500000 };
142 VECT_VAR_DECL(expected_vld3_1,int,8,16) [] = { 0x0, 0x1, 0x2, 0x3,
143 0x4, 0x5, 0x6, 0x7,
144 0x8, 0x9, 0xa, 0xb,
145 0xc, 0xd, 0xe, 0xf };
146 VECT_VAR_DECL(expected_vld3_1,int,16,8) [] = { 0xfff8, 0xfff9, 0xfffa, 0xfffb,
147 0xfffc, 0xfffd, 0xfffe, 0xffff };
148 VECT_VAR_DECL(expected_vld3_1,int,32,4) [] = { 0xfffffff4, 0xfffffff5,
149 0xfffffff6, 0xfffffff7 };
150 VECT_VAR_DECL(expected_vld3_1,uint,8,16) [] = { 0x0, 0x1, 0x2, 0x3,
151 0x4, 0x5, 0x6, 0x7,
152 0x8, 0x9, 0xa, 0xb,
153 0xc, 0xd, 0xe, 0xf };
154 VECT_VAR_DECL(expected_vld3_1,uint,16,8) [] = { 0xfff8, 0xfff9, 0xfffa, 0xfffb,
155 0xfffc, 0xfffd, 0xfffe, 0xffff };
156 VECT_VAR_DECL(expected_vld3_1,uint,32,4) [] = { 0xfffffff4, 0xfffffff5,
157 0xfffffff6, 0xfffffff7 };
158 VECT_VAR_DECL(expected_vld3_1,poly,8,16) [] = { 0x0, 0x1, 0x2, 0x3,
159 0x4, 0x5, 0x6, 0x7,
160 0x8, 0x9, 0xa, 0xb,
161 0xc, 0xd, 0xe, 0xf };
162 VECT_VAR_DECL(expected_vld3_1,poly,16,8) [] = { 0xfff8, 0xfff9, 0xfffa, 0xfffb,
163 0xfffc, 0xfffd, 0xfffe, 0xffff };
164 VECT_VAR_DECL(expected_vld3_1,hfloat,32,4) [] = { 0xc1400000, 0xc1300000,
165 0xc1200000, 0xc1100000 };
167 /* vld3/chunk 2. */
168 VECT_VAR_DECL(expected_vld3_2,int,8,8) [] = { 0x0, 0x1, 0x2, 0x3,
169 0x4, 0x5, 0x6, 0x7 };
170 VECT_VAR_DECL(expected_vld3_2,int,16,4) [] = { 0xfff8, 0xfff9,
171 0xfffa, 0xfffb };
172 VECT_VAR_DECL(expected_vld3_2,int,32,2) [] = { 0xfffffff4, 0xfffffff5 };
173 VECT_VAR_DECL(expected_vld3_2,int,64,1) [] = { 0xfffffffffffffff2 };
174 VECT_VAR_DECL(expected_vld3_2,uint,8,8) [] = { 0x0, 0x1, 0x2, 0x3,
175 0x4, 0x5, 0x6, 0x7 };
176 VECT_VAR_DECL(expected_vld3_2,uint,16,4) [] = { 0xfff8, 0xfff9,
177 0xfffa, 0xfffb };
178 VECT_VAR_DECL(expected_vld3_2,uint,32,2) [] = { 0xfffffff4, 0xfffffff5 };
179 VECT_VAR_DECL(expected_vld3_2,uint,64,1) [] = { 0xfffffffffffffff2 };
180 VECT_VAR_DECL(expected_vld3_2,poly,8,8) [] = { 0x0, 0x1, 0x2, 0x3,
181 0x4, 0x5, 0x6, 0x7 };
182 VECT_VAR_DECL(expected_vld3_2,poly,16,4) [] = { 0xfff8, 0xfff9,
183 0xfffa, 0xfffb };
184 VECT_VAR_DECL(expected_vld3_2,hfloat,32,2) [] = { 0xc1400000, 0xc1300000 };
185 VECT_VAR_DECL(expected_vld3_2,int,8,16) [] = { 0x10, 0x11, 0x12, 0x13,
186 0x14, 0x15, 0x16, 0x17,
187 0x18, 0x19, 0x1a, 0x1b,
188 0x1c, 0x1d, 0x1e, 0x1f };
189 VECT_VAR_DECL(expected_vld3_2,int,16,8) [] = { 0x0, 0x1, 0x2, 0x3,
190 0x4, 0x5, 0x6, 0x7 };
191 VECT_VAR_DECL(expected_vld3_2,int,32,4) [] = { 0xfffffff8, 0xfffffff9,
192 0xfffffffa, 0xfffffffb };
193 VECT_VAR_DECL(expected_vld3_2,uint,8,16) [] = { 0x10, 0x11, 0x12, 0x13,
194 0x14, 0x15, 0x16, 0x17,
195 0x18, 0x19, 0x1a, 0x1b,
196 0x1c, 0x1d, 0x1e, 0x1f };
197 VECT_VAR_DECL(expected_vld3_2,uint,16,8) [] = { 0x0, 0x1, 0x2, 0x3,
198 0x4, 0x5, 0x6, 0x7 };
199 VECT_VAR_DECL(expected_vld3_2,uint,32,4) [] = { 0xfffffff8, 0xfffffff9,
200 0xfffffffa, 0xfffffffb };
201 VECT_VAR_DECL(expected_vld3_2,poly,8,16) [] = { 0x10, 0x11, 0x12, 0x13,
202 0x14, 0x15, 0x16, 0x17,
203 0x18, 0x19, 0x1a, 0x1b,
204 0x1c, 0x1d, 0x1e, 0x1f };
205 VECT_VAR_DECL(expected_vld3_2,poly,16,8) [] = { 0x0, 0x1, 0x2, 0x3,
206 0x4, 0x5, 0x6, 0x7 };
207 VECT_VAR_DECL(expected_vld3_2,hfloat,32,4) [] = { 0xc1000000, 0xc0e00000,
208 0xc0c00000, 0xc0a00000 };
210 /* vld4/chunk 0. */
211 VECT_VAR_DECL(expected_vld4_0,int,8,8) [] = { 0xf0, 0xf1, 0xf2, 0xf3,
212 0xf4, 0xf5, 0xf6, 0xf7 };
213 VECT_VAR_DECL(expected_vld4_0,int,16,4) [] = { 0xfff0, 0xfff1,
214 0xfff2, 0xfff3 };
215 VECT_VAR_DECL(expected_vld4_0,int,32,2) [] = { 0xfffffff0, 0xfffffff1 };
216 VECT_VAR_DECL(expected_vld4_0,int,64,1) [] = { 0xfffffffffffffff0 };
217 VECT_VAR_DECL(expected_vld4_0,uint,8,8) [] = { 0xf0, 0xf1, 0xf2, 0xf3,
218 0xf4, 0xf5, 0xf6, 0xf7 };
219 VECT_VAR_DECL(expected_vld4_0,uint,16,4) [] = { 0xfff0, 0xfff1,
220 0xfff2, 0xfff3 };
221 VECT_VAR_DECL(expected_vld4_0,uint,32,2) [] = { 0xfffffff0, 0xfffffff1 };
222 VECT_VAR_DECL(expected_vld4_0,uint,64,1) [] = { 0xfffffffffffffff0 };
223 VECT_VAR_DECL(expected_vld4_0,poly,8,8) [] = { 0xf0, 0xf1, 0xf2, 0xf3,
224 0xf4, 0xf5, 0xf6, 0xf7 };
225 VECT_VAR_DECL(expected_vld4_0,poly,16,4) [] = { 0xfff0, 0xfff1, 0xfff2, 0xfff3 };
226 VECT_VAR_DECL(expected_vld4_0,hfloat,32,2) [] = { 0xc1800000, 0xc1700000 };
227 VECT_VAR_DECL(expected_vld4_0,int,8,16) [] = { 0xf0, 0xf1, 0xf2, 0xf3,
228 0xf4, 0xf5, 0xf6, 0xf7,
229 0xf8, 0xf9, 0xfa, 0xfb,
230 0xfc, 0xfd, 0xfe, 0xff };
231 VECT_VAR_DECL(expected_vld4_0,int,16,8) [] = { 0xfff0, 0xfff1, 0xfff2, 0xfff3,
232 0xfff4, 0xfff5, 0xfff6, 0xfff7 };
233 VECT_VAR_DECL(expected_vld4_0,int,32,4) [] = { 0xfffffff0, 0xfffffff1,
234 0xfffffff2, 0xfffffff3 };
235 VECT_VAR_DECL(expected_vld4_0,uint,8,16) [] = { 0xf0, 0xf1, 0xf2, 0xf3,
236 0xf4, 0xf5, 0xf6, 0xf7,
237 0xf8, 0xf9, 0xfa, 0xfb,
238 0xfc, 0xfd, 0xfe, 0xff };
239 VECT_VAR_DECL(expected_vld4_0,uint,16,8) [] = { 0xfff0, 0xfff1, 0xfff2, 0xfff3,
240 0xfff4, 0xfff5, 0xfff6, 0xfff7 };
241 VECT_VAR_DECL(expected_vld4_0,uint,32,4) [] = { 0xfffffff0, 0xfffffff1,
242 0xfffffff2, 0xfffffff3 };
243 VECT_VAR_DECL(expected_vld4_0,poly,8,16) [] = { 0xf0, 0xf1, 0xf2, 0xf3,
244 0xf4, 0xf5, 0xf6, 0xf7,
245 0xf8, 0xf9, 0xfa, 0xfb,
246 0xfc, 0xfd, 0xfe, 0xff };
247 VECT_VAR_DECL(expected_vld4_0,poly,16,8) [] = { 0xfff0, 0xfff1, 0xfff2, 0xfff3,
248 0xfff4, 0xfff5, 0xfff6, 0xfff7 };
249 VECT_VAR_DECL(expected_vld4_0,hfloat,32,4) [] = { 0xc1800000, 0xc1700000,
250 0xc1600000, 0xc1500000 };
252 /* vld4/chunk 1. */
253 VECT_VAR_DECL(expected_vld4_1,int,8,8) [] = { 0xf8, 0xf9, 0xfa, 0xfb,
254 0xfc, 0xfd, 0xfe, 0xff };
255 VECT_VAR_DECL(expected_vld4_1,int,16,4) [] = { 0xfff4, 0xfff5, 0xfff6, 0xfff7 };
256 VECT_VAR_DECL(expected_vld4_1,int,32,2) [] = { 0xfffffff2, 0xfffffff3 };
257 VECT_VAR_DECL(expected_vld4_1,int,64,1) [] = { 0xfffffffffffffff1 };
258 VECT_VAR_DECL(expected_vld4_1,uint,8,8) [] = { 0xf8, 0xf9, 0xfa, 0xfb,
259 0xfc, 0xfd, 0xfe, 0xff };
260 VECT_VAR_DECL(expected_vld4_1,uint,16,4) [] = { 0xfff4, 0xfff5, 0xfff6, 0xfff7 };
261 VECT_VAR_DECL(expected_vld4_1,uint,32,2) [] = { 0xfffffff2, 0xfffffff3 };
262 VECT_VAR_DECL(expected_vld4_1,uint,64,1) [] = { 0xfffffffffffffff1 };
263 VECT_VAR_DECL(expected_vld4_1,poly,8,8) [] = { 0xf8, 0xf9, 0xfa, 0xfb,
264 0xfc, 0xfd, 0xfe, 0xff };
265 VECT_VAR_DECL(expected_vld4_1,poly,16,4) [] = { 0xfff4, 0xfff5, 0xfff6, 0xfff7 };
266 VECT_VAR_DECL(expected_vld4_1,hfloat,32,2) [] = { 0xc1600000, 0xc1500000 };
267 VECT_VAR_DECL(expected_vld4_1,int,8,16) [] = { 0x0, 0x1, 0x2, 0x3,
268 0x4, 0x5, 0x6, 0x7,
269 0x8, 0x9, 0xa, 0xb,
270 0xc, 0xd, 0xe, 0xf };
271 VECT_VAR_DECL(expected_vld4_1,int,16,8) [] = { 0xfff8, 0xfff9, 0xfffa, 0xfffb,
272 0xfffc, 0xfffd, 0xfffe, 0xffff };
273 VECT_VAR_DECL(expected_vld4_1,int,32,4) [] = { 0xfffffff4, 0xfffffff5,
274 0xfffffff6, 0xfffffff7 };
275 VECT_VAR_DECL(expected_vld4_1,uint,8,16) [] = { 0x0, 0x1, 0x2, 0x3,
276 0x4, 0x5, 0x6, 0x7,
277 0x8, 0x9, 0xa, 0xb,
278 0xc, 0xd, 0xe, 0xf };
279 VECT_VAR_DECL(expected_vld4_1,uint,16,8) [] = { 0xfff8, 0xfff9, 0xfffa, 0xfffb,
280 0xfffc, 0xfffd, 0xfffe, 0xffff };
281 VECT_VAR_DECL(expected_vld4_1,uint,32,4) [] = { 0xfffffff4, 0xfffffff5,
282 0xfffffff6, 0xfffffff7 };
283 VECT_VAR_DECL(expected_vld4_1,poly,8,16) [] = { 0x0, 0x1, 0x2, 0x3,
284 0x4, 0x5, 0x6, 0x7,
285 0x8, 0x9, 0xa, 0xb,
286 0xc, 0xd, 0xe, 0xf };
287 VECT_VAR_DECL(expected_vld4_1,poly,16,8) [] = { 0xfff8, 0xfff9, 0xfffa, 0xfffb,
288 0xfffc, 0xfffd, 0xfffe, 0xffff };
289 VECT_VAR_DECL(expected_vld4_1,hfloat,32,4) [] = { 0xc1400000, 0xc1300000,
290 0xc1200000, 0xc1100000 };
292 /* vld4/chunk 2. */
293 VECT_VAR_DECL(expected_vld4_2,int,8,8) [] = { 0x0, 0x1, 0x2, 0x3,
294 0x4, 0x5, 0x6, 0x7 };
295 VECT_VAR_DECL(expected_vld4_2,int,16,4) [] = { 0xfff8, 0xfff9, 0xfffa, 0xfffb };
296 VECT_VAR_DECL(expected_vld4_2,int,32,2) [] = { 0xfffffff4, 0xfffffff5 };
297 VECT_VAR_DECL(expected_vld4_2,int,64,1) [] = { 0xfffffffffffffff2 };
298 VECT_VAR_DECL(expected_vld4_2,uint,8,8) [] = { 0x0, 0x1, 0x2, 0x3,
299 0x4, 0x5, 0x6, 0x7 };
300 VECT_VAR_DECL(expected_vld4_2,uint,16,4) [] = { 0xfff8, 0xfff9, 0xfffa, 0xfffb };
301 VECT_VAR_DECL(expected_vld4_2,uint,32,2) [] = { 0xfffffff4, 0xfffffff5 };
302 VECT_VAR_DECL(expected_vld4_2,uint,64,1) [] = { 0xfffffffffffffff2 };
303 VECT_VAR_DECL(expected_vld4_2,poly,8,8) [] = { 0x0, 0x1, 0x2, 0x3,
304 0x4, 0x5, 0x6, 0x7 };
305 VECT_VAR_DECL(expected_vld4_2,poly,16,4) [] = { 0xfff8, 0xfff9, 0xfffa, 0xfffb };
306 VECT_VAR_DECL(expected_vld4_2,hfloat,32,2) [] = { 0xc1400000, 0xc1300000 };
307 VECT_VAR_DECL(expected_vld4_2,int,8,16) [] = { 0x10, 0x11, 0x12, 0x13,
308 0x14, 0x15, 0x16, 0x17,
309 0x18, 0x19, 0x1a, 0x1b,
310 0x1c, 0x1d, 0x1e, 0x1f };
311 VECT_VAR_DECL(expected_vld4_2,int,16,8) [] = { 0x0, 0x1, 0x2, 0x3,
312 0x4, 0x5, 0x6, 0x7 };
313 VECT_VAR_DECL(expected_vld4_2,int,32,4) [] = { 0xfffffff8, 0xfffffff9,
314 0xfffffffa, 0xfffffffb };
315 VECT_VAR_DECL(expected_vld4_2,uint,8,16) [] = { 0x10, 0x11, 0x12, 0x13,
316 0x14, 0x15, 0x16, 0x17,
317 0x18, 0x19, 0x1a, 0x1b,
318 0x1c, 0x1d, 0x1e, 0x1f };
319 VECT_VAR_DECL(expected_vld4_2,uint,16,8) [] = { 0x0, 0x1, 0x2, 0x3,
320 0x4, 0x5, 0x6, 0x7 };
321 VECT_VAR_DECL(expected_vld4_2,uint,32,4) [] = { 0xfffffff8, 0xfffffff9,
322 0xfffffffa, 0xfffffffb };
323 VECT_VAR_DECL(expected_vld4_2,poly,8,16) [] = { 0x10, 0x11, 0x12, 0x13,
324 0x14, 0x15, 0x16, 0x17,
325 0x18, 0x19, 0x1a, 0x1b,
326 0x1c, 0x1d, 0x1e, 0x1f };
327 VECT_VAR_DECL(expected_vld4_2,poly,16,8) [] = { 0x0, 0x1, 0x2, 0x3,
328 0x4, 0x5, 0x6, 0x7 };
329 VECT_VAR_DECL(expected_vld4_2,hfloat,32,4) [] = { 0xc1000000, 0xc0e00000,
330 0xc0c00000, 0xc0a00000 };
332 /* vld4/chunk 3. */
333 VECT_VAR_DECL(expected_vld4_3,int,8,8) [] = { 0x8, 0x9, 0xa, 0xb,
334 0xc, 0xd, 0xe, 0xf };
335 VECT_VAR_DECL(expected_vld4_3,int,16,4) [] = { 0xfffc, 0xfffd, 0xfffe, 0xffff };
336 VECT_VAR_DECL(expected_vld4_3,int,32,2) [] = { 0xfffffff6, 0xfffffff7 };
337 VECT_VAR_DECL(expected_vld4_3,int,64,1) [] = { 0xfffffffffffffff3 };
338 VECT_VAR_DECL(expected_vld4_3,uint,8,8) [] = { 0x8, 0x9, 0xa, 0xb,
339 0xc, 0xd, 0xe, 0xf };
340 VECT_VAR_DECL(expected_vld4_3,uint,16,4) [] = { 0xfffc, 0xfffd, 0xfffe, 0xffff };
341 VECT_VAR_DECL(expected_vld4_3,uint,32,2) [] = { 0xfffffff6, 0xfffffff7 };
342 VECT_VAR_DECL(expected_vld4_3,uint,64,1) [] = { 0xfffffffffffffff3 };
343 VECT_VAR_DECL(expected_vld4_3,poly,8,8) [] = { 0x8, 0x9, 0xa, 0xb,
344 0xc, 0xd, 0xe, 0xf };
345 VECT_VAR_DECL(expected_vld4_3,poly,16,4) [] = { 0xfffc, 0xfffd, 0xfffe, 0xffff };
346 VECT_VAR_DECL(expected_vld4_3,hfloat,32,2) [] = { 0xc1200000, 0xc1100000 };
347 VECT_VAR_DECL(expected_vld4_3,int,8,16) [] = { 0x20, 0x21, 0x22, 0x23,
348 0x24, 0x25, 0x26, 0x27,
349 0x28, 0x29, 0x2a, 0x2b,
350 0x2c, 0x2d, 0x2e, 0x2f };
351 VECT_VAR_DECL(expected_vld4_3,int,16,8) [] = { 0x8, 0x9, 0xa, 0xb,
352 0xc, 0xd, 0xe, 0xf };
353 VECT_VAR_DECL(expected_vld4_3,int,32,4) [] = { 0xfffffffc, 0xfffffffd,
354 0xfffffffe, 0xffffffff };
355 VECT_VAR_DECL(expected_vld4_3,uint,8,16) [] = { 0x20, 0x21, 0x22, 0x23,
356 0x24, 0x25, 0x26, 0x27,
357 0x28, 0x29, 0x2a, 0x2b,
358 0x2c, 0x2d, 0x2e, 0x2f };
359 VECT_VAR_DECL(expected_vld4_3,uint,16,8) [] = { 0x8, 0x9, 0xa, 0xb,
360 0xc, 0xd, 0xe, 0xf };
361 VECT_VAR_DECL(expected_vld4_3,uint,32,4) [] = { 0xfffffffc, 0xfffffffd,
362 0xfffffffe, 0xffffffff };
363 VECT_VAR_DECL(expected_vld4_3,poly,8,16) [] = { 0x20, 0x21, 0x22, 0x23,
364 0x24, 0x25, 0x26, 0x27,
365 0x28, 0x29, 0x2a, 0x2b,
366 0x2c, 0x2d, 0x2e, 0x2f };
367 VECT_VAR_DECL(expected_vld4_3,poly,16,8) [] = { 0x8, 0x9, 0xa, 0xb,
368 0xc, 0xd, 0xe, 0xf };
369 VECT_VAR_DECL(expected_vld4_3,hfloat,32,4) [] = { 0xc0800000, 0xc0400000,
370 0xc0000000, 0xbf800000 };
372 void exec_vldX (void)
374 /* In this case, input variables are arrays of vectors. */
375 #define DECL_VLDX(T1, W, N, X) \
376 VECT_ARRAY_TYPE(T1, W, N, X) VECT_ARRAY_VAR(vector, T1, W, N, X); \
377 VECT_VAR_DECL(result_bis_##X, T1, W, N)[X * N]
379 /* We need to use a temporary result buffer (result_bis), because
380 the one used for other tests is not large enough. A subset of the
381 result data is moved from result_bis to result, and it is this
382 subset which is used to check the actual behaviour. The next
383 macro enables to move another chunk of data from result_bis to
384 result. */
385 #define TEST_VLDX(Q, T1, T2, W, N, X) \
386 VECT_ARRAY_VAR(vector, T1, W, N, X) = \
387 /* Use dedicated init buffer, of size X */ \
388 vld##X##Q##_##T2##W(VECT_ARRAY_VAR(buffer_vld##X, T1, W, N, X)); \
389 vst##X##Q##_##T2##W(VECT_VAR(result_bis_##X, T1, W, N), \
390 VECT_ARRAY_VAR(vector, T1, W, N, X)); \
391 memcpy(VECT_VAR(result, T1, W, N), VECT_VAR(result_bis_##X, T1, W, N), \
392 sizeof(VECT_VAR(result, T1, W, N)));
394 /* Overwrite "result" with the contents of "result_bis"[Y]. */
395 #define TEST_EXTRA_CHUNK(T1, W, N, X,Y) \
396 memcpy(VECT_VAR(result, T1, W, N), \
397 &(VECT_VAR(result_bis_##X, T1, W, N)[Y*N]), \
398 sizeof(VECT_VAR(result, T1, W, N)));
400 /* We need all variants in 64 bits, but there is no 64x2 variant. */
401 #define DECL_ALL_VLDX(X) \
402 DECL_VLDX(int, 8, 8, X); \
403 DECL_VLDX(int, 16, 4, X); \
404 DECL_VLDX(int, 32, 2, X); \
405 DECL_VLDX(int, 64, 1, X); \
406 DECL_VLDX(uint, 8, 8, X); \
407 DECL_VLDX(uint, 16, 4, X); \
408 DECL_VLDX(uint, 32, 2, X); \
409 DECL_VLDX(uint, 64, 1, X); \
410 DECL_VLDX(poly, 8, 8, X); \
411 DECL_VLDX(poly, 16, 4, X); \
412 DECL_VLDX(float, 32, 2, X); \
413 DECL_VLDX(int, 8, 16, X); \
414 DECL_VLDX(int, 16, 8, X); \
415 DECL_VLDX(int, 32, 4, X); \
416 DECL_VLDX(uint, 8, 16, X); \
417 DECL_VLDX(uint, 16, 8, X); \
418 DECL_VLDX(uint, 32, 4, X); \
419 DECL_VLDX(poly, 8, 16, X); \
420 DECL_VLDX(poly, 16, 8, X); \
421 DECL_VLDX(float, 32, 4, X)
423 #define TEST_ALL_VLDX(X) \
424 TEST_VLDX(, int, s, 8, 8, X); \
425 TEST_VLDX(, int, s, 16, 4, X); \
426 TEST_VLDX(, int, s, 32, 2, X); \
427 TEST_VLDX(, int, s, 64, 1, X); \
428 TEST_VLDX(, uint, u, 8, 8, X); \
429 TEST_VLDX(, uint, u, 16, 4, X); \
430 TEST_VLDX(, uint, u, 32, 2, X); \
431 TEST_VLDX(, uint, u, 64, 1, X); \
432 TEST_VLDX(, poly, p, 8, 8, X); \
433 TEST_VLDX(, poly, p, 16, 4, X); \
434 TEST_VLDX(, float, f, 32, 2, X); \
435 TEST_VLDX(q, int, s, 8, 16, X); \
436 TEST_VLDX(q, int, s, 16, 8, X); \
437 TEST_VLDX(q, int, s, 32, 4, X); \
438 TEST_VLDX(q, uint, u, 8, 16, X); \
439 TEST_VLDX(q, uint, u, 16, 8, X); \
440 TEST_VLDX(q, uint, u, 32, 4, X); \
441 TEST_VLDX(q, poly, p, 8, 16, X); \
442 TEST_VLDX(q, poly, p, 16, 8, X); \
443 TEST_VLDX(q, float, f, 32, 4, X)
445 #define TEST_ALL_EXTRA_CHUNKS(X, Y) \
446 TEST_EXTRA_CHUNK(int, 8, 8, X, Y); \
447 TEST_EXTRA_CHUNK(int, 16, 4, X, Y); \
448 TEST_EXTRA_CHUNK(int, 32, 2, X, Y); \
449 TEST_EXTRA_CHUNK(int, 64, 1, X, Y); \
450 TEST_EXTRA_CHUNK(uint, 8, 8, X, Y); \
451 TEST_EXTRA_CHUNK(uint, 16, 4, X, Y); \
452 TEST_EXTRA_CHUNK(uint, 32, 2, X, Y); \
453 TEST_EXTRA_CHUNK(uint, 64, 1, X, Y); \
454 TEST_EXTRA_CHUNK(poly, 8, 8, X, Y); \
455 TEST_EXTRA_CHUNK(poly, 16, 4, X, Y); \
456 TEST_EXTRA_CHUNK(float, 32, 2, X, Y); \
457 TEST_EXTRA_CHUNK(int, 8, 16, X, Y); \
458 TEST_EXTRA_CHUNK(int, 16, 8, X, Y); \
459 TEST_EXTRA_CHUNK(int, 32, 4, X, Y); \
460 TEST_EXTRA_CHUNK(uint, 8, 16, X, Y); \
461 TEST_EXTRA_CHUNK(uint, 16, 8, X, Y); \
462 TEST_EXTRA_CHUNK(uint, 32, 4, X, Y); \
463 TEST_EXTRA_CHUNK(poly, 8, 16, X, Y); \
464 TEST_EXTRA_CHUNK(poly, 16, 8, X, Y); \
465 TEST_EXTRA_CHUNK(float, 32, 4, X, Y)
467 /* vldX supports all vector types except [u]int64x2. */
468 #define CHECK_RESULTS_VLDX(test_name,EXPECTED,comment) \
470 CHECK(test_name, int, 8, 8, PRIx8, EXPECTED, comment); \
471 CHECK(test_name, int, 16, 4, PRIx16, EXPECTED, comment); \
472 CHECK(test_name, int, 32, 2, PRIx32, EXPECTED, comment); \
473 CHECK(test_name, int, 64, 1, PRIx64, EXPECTED, comment); \
474 CHECK(test_name, uint, 8, 8, PRIx8, EXPECTED, comment); \
475 CHECK(test_name, uint, 16, 4, PRIx16, EXPECTED, comment); \
476 CHECK(test_name, uint, 32, 2, PRIx32, EXPECTED, comment); \
477 CHECK(test_name, uint, 64, 1, PRIx64, EXPECTED, comment); \
478 CHECK(test_name, poly, 8, 8, PRIx8, EXPECTED, comment); \
479 CHECK(test_name, poly, 16, 4, PRIx16, EXPECTED, comment); \
480 CHECK_FP(test_name, float, 32, 2, PRIx32, EXPECTED, comment); \
482 CHECK(test_name, int, 8, 16, PRIx8, EXPECTED, comment); \
483 CHECK(test_name, int, 16, 8, PRIx16, EXPECTED, comment); \
484 CHECK(test_name, int, 32, 4, PRIx32, EXPECTED, comment); \
485 CHECK(test_name, uint, 8, 16, PRIx8, EXPECTED, comment); \
486 CHECK(test_name, uint, 16, 8, PRIx16, EXPECTED, comment); \
487 CHECK(test_name, uint, 32, 4, PRIx32, EXPECTED, comment); \
488 CHECK(test_name, poly, 8, 16, PRIx8, EXPECTED, comment); \
489 CHECK(test_name, poly, 16, 8, PRIx16, EXPECTED, comment); \
490 CHECK_FP(test_name, float, 32, 4, PRIx32, EXPECTED, comment); \
493 DECL_ALL_VLDX(2);
494 DECL_ALL_VLDX(3);
495 DECL_ALL_VLDX(4);
497 /* Special input buffers of suitable size are needed for vld2/vld3/vld4. */
498 /* Input buffers for vld2, 1 of each size */
499 VECT_ARRAY_INIT2(buffer_vld2, int, 8, 8);
500 PAD(buffer_vld2_pad, int, 8, 8);
501 VECT_ARRAY_INIT2(buffer_vld2, int, 16, 4);
502 PAD(buffer_vld2_pad, int, 16, 4);
503 VECT_ARRAY_INIT2(buffer_vld2, int, 32, 2);
504 PAD(buffer_vld2_pad, int, 32, 2);
505 VECT_ARRAY_INIT2(buffer_vld2, int, 64, 1);
506 PAD(buffer_vld2_pad, int, 64, 1);
507 VECT_ARRAY_INIT2(buffer_vld2, uint, 8, 8);
508 PAD(buffer_vld2_pad, uint, 8, 8);
509 VECT_ARRAY_INIT2(buffer_vld2, uint, 16, 4);
510 PAD(buffer_vld2_pad, uint, 16, 4);
511 VECT_ARRAY_INIT2(buffer_vld2, uint, 32, 2);
512 PAD(buffer_vld2_pad, uint, 32, 2);
513 VECT_ARRAY_INIT2(buffer_vld2, uint, 64, 1);
514 PAD(buffer_vld2_pad, uint, 64, 1);
515 VECT_ARRAY_INIT2(buffer_vld2, poly, 8, 8);
516 PAD(buffer_vld2_pad, poly, 8, 8);
517 VECT_ARRAY_INIT2(buffer_vld2, poly, 16, 4);
518 PAD(buffer_vld2_pad, poly, 16, 4);
519 VECT_ARRAY_INIT2(buffer_vld2, float, 32, 2);
520 PAD(buffer_vld2_pad, float, 32, 2);
522 VECT_ARRAY_INIT2(buffer_vld2, int, 8, 16);
523 PAD(buffer_vld2_pad, int, 8, 16);
524 VECT_ARRAY_INIT2(buffer_vld2, int, 16, 8);
525 PAD(buffer_vld2_pad, int, 16, 8);
526 VECT_ARRAY_INIT2(buffer_vld2, int, 32, 4);
527 PAD(buffer_vld2_pad, int, 32, 4);
528 VECT_ARRAY_INIT2(buffer_vld2, int, 64, 2);
529 PAD(buffer_vld2_pad, int, 64, 2);
530 VECT_ARRAY_INIT2(buffer_vld2, uint, 8, 16);
531 PAD(buffer_vld2_pad, uint, 8, 16);
532 VECT_ARRAY_INIT2(buffer_vld2, uint, 16, 8);
533 PAD(buffer_vld2_pad, uint, 16, 8);
534 VECT_ARRAY_INIT2(buffer_vld2, uint, 32, 4);
535 PAD(buffer_vld2_pad, uint, 32, 4);
536 VECT_ARRAY_INIT2(buffer_vld2, uint, 64, 2);
537 PAD(buffer_vld2_pad, uint, 64, 2);
538 VECT_ARRAY_INIT2(buffer_vld2, poly, 8, 16);
539 PAD(buffer_vld2_pad, poly, 8, 16);
540 VECT_ARRAY_INIT2(buffer_vld2, poly, 16, 8);
541 PAD(buffer_vld2_pad, poly, 16, 8);
542 VECT_ARRAY_INIT2(buffer_vld2, float, 32, 4);
543 PAD(buffer_vld2_pad, float, 32, 4);
545 /* Input buffers for vld3, 1 of each size */
546 VECT_ARRAY_INIT3(buffer_vld3, int, 8, 8);
547 PAD(buffer_vld3_pad, int, 8, 8);
548 VECT_ARRAY_INIT3(buffer_vld3, int, 16, 4);
549 PAD(buffer_vld3_pad, int, 16, 4);
550 VECT_ARRAY_INIT3(buffer_vld3, int, 32, 2);
551 PAD(buffer_vld3_pad, int, 32, 2);
552 VECT_ARRAY_INIT3(buffer_vld3, int, 64, 1);
553 PAD(buffer_vld3_pad, int, 64, 1);
554 VECT_ARRAY_INIT3(buffer_vld3, uint, 8, 8);
555 PAD(buffer_vld3_pad, uint, 8, 8);
556 VECT_ARRAY_INIT3(buffer_vld3, uint, 16, 4);
557 PAD(buffer_vld3_pad, uint, 16, 4);
558 VECT_ARRAY_INIT3(buffer_vld3, uint, 32, 2);
559 PAD(buffer_vld3_pad, uint, 32, 2);
560 VECT_ARRAY_INIT3(buffer_vld3, uint, 64, 1);
561 PAD(buffer_vld3_pad, uint, 64, 1);
562 VECT_ARRAY_INIT3(buffer_vld3, poly, 8, 8);
563 PAD(buffer_vld3_pad, poly, 8, 8);
564 VECT_ARRAY_INIT3(buffer_vld3, poly, 16, 4);
565 PAD(buffer_vld3_pad, poly, 16, 4);
566 VECT_ARRAY_INIT3(buffer_vld3, float, 32, 2);
567 PAD(buffer_vld3_pad, float, 32, 2);
569 VECT_ARRAY_INIT3(buffer_vld3, int, 8, 16);
570 PAD(buffer_vld3_pad, int, 8, 16);
571 VECT_ARRAY_INIT3(buffer_vld3, int, 16, 8);
572 PAD(buffer_vld3_pad, int, 16, 8);
573 VECT_ARRAY_INIT3(buffer_vld3, int, 32, 4);
574 PAD(buffer_vld3_pad, int, 32, 4);
575 VECT_ARRAY_INIT3(buffer_vld3, int, 64, 2);
576 PAD(buffer_vld3_pad, int, 64, 2);
577 VECT_ARRAY_INIT3(buffer_vld3, uint, 8, 16);
578 PAD(buffer_vld3_pad, uint, 8, 16);
579 VECT_ARRAY_INIT3(buffer_vld3, uint, 16, 8);
580 PAD(buffer_vld3_pad, uint, 16, 8);
581 VECT_ARRAY_INIT3(buffer_vld3, uint, 32, 4);
582 PAD(buffer_vld3_pad, uint, 32, 4);
583 VECT_ARRAY_INIT3(buffer_vld3, uint, 64, 2);
584 PAD(buffer_vld3_pad, uint, 64, 2);
585 VECT_ARRAY_INIT3(buffer_vld3, poly, 8, 16);
586 PAD(buffer_vld3_pad, poly, 8, 16);
587 VECT_ARRAY_INIT3(buffer_vld3, poly, 16, 8);
588 PAD(buffer_vld3_pad, poly, 16, 8);
589 VECT_ARRAY_INIT3(buffer_vld3, float, 32, 4);
590 PAD(buffer_vld3_pad, float, 32, 4);
592 /* Input buffers for vld4, 1 of each size */
593 VECT_ARRAY_INIT4(buffer_vld4, int, 8, 8);
594 PAD(buffer_vld4_pad, int, 8, 8);
595 VECT_ARRAY_INIT4(buffer_vld4, int, 16, 4);
596 PAD(buffer_vld4_pad, int, 16, 4);
597 VECT_ARRAY_INIT4(buffer_vld4, int, 32, 2);
598 PAD(buffer_vld4_pad, int, 32, 2);
599 VECT_ARRAY_INIT4(buffer_vld4, int, 64, 1);
600 PAD(buffer_vld4_pad, int, 64, 1);
601 VECT_ARRAY_INIT4(buffer_vld4, uint, 8, 8);
602 PAD(buffer_vld4_pad, uint, 8, 8);
603 VECT_ARRAY_INIT4(buffer_vld4, uint, 16, 4);
604 PAD(buffer_vld4_pad, uint, 16, 4);
605 VECT_ARRAY_INIT4(buffer_vld4, uint, 32, 2);
606 PAD(buffer_vld4_pad, uint, 32, 2);
607 VECT_ARRAY_INIT4(buffer_vld4, uint, 64, 1);
608 PAD(buffer_vld4_pad, uint, 64, 1);
609 VECT_ARRAY_INIT4(buffer_vld4, poly, 8, 8);
610 PAD(buffer_vld4_pad, poly, 8, 8);
611 VECT_ARRAY_INIT4(buffer_vld4, poly, 16, 4);
612 PAD(buffer_vld4_pad, poly, 16, 4);
613 VECT_ARRAY_INIT4(buffer_vld4, float, 32, 2);
614 PAD(buffer_vld4_pad, float, 32, 2);
616 VECT_ARRAY_INIT4(buffer_vld4, int, 8, 16);
617 PAD(buffer_vld4_pad, int, 8, 16);
618 VECT_ARRAY_INIT4(buffer_vld4, int, 16, 8);
619 PAD(buffer_vld4_pad, int, 16, 8);
620 VECT_ARRAY_INIT4(buffer_vld4, int, 32, 4);
621 PAD(buffer_vld4_pad, int, 32, 4);
622 VECT_ARRAY_INIT4(buffer_vld4, int, 64, 2);
623 PAD(buffer_vld4_pad, int, 64, 2);
624 VECT_ARRAY_INIT4(buffer_vld4, uint, 8, 16);
625 PAD(buffer_vld4_pad, uint, 8, 16);
626 VECT_ARRAY_INIT4(buffer_vld4, uint, 16, 8);
627 PAD(buffer_vld4_pad, uint, 16, 8);
628 VECT_ARRAY_INIT4(buffer_vld4, uint, 32, 4);
629 PAD(buffer_vld4_pad, uint, 32, 4);
630 VECT_ARRAY_INIT4(buffer_vld4, uint, 64, 2);
631 PAD(buffer_vld4_pad, uint, 64, 2);
632 VECT_ARRAY_INIT4(buffer_vld4, poly, 8, 16);
633 PAD(buffer_vld4_pad, poly, 8, 16);
634 VECT_ARRAY_INIT4(buffer_vld4, poly, 16, 8);
635 PAD(buffer_vld4_pad, poly, 16, 8);
636 VECT_ARRAY_INIT4(buffer_vld4, float, 32, 4);
637 PAD(buffer_vld4_pad, float, 32, 4);
639 /* Check vld2/vld2q. */
640 clean_results ();
641 #define TEST_MSG "VLD2/VLD2Q"
642 TEST_ALL_VLDX(2);
643 CHECK_RESULTS_VLDX (TEST_MSG, expected_vld2_0, "chunk 0");
645 TEST_ALL_EXTRA_CHUNKS(2, 1);
646 CHECK_RESULTS_VLDX (TEST_MSG, expected_vld2_1, "chunk 1");
648 /* Check vld3/vld3q. */
649 clean_results ();
650 #undef TEST_MSG
651 #define TEST_MSG "VLD3/VLD3Q"
652 TEST_ALL_VLDX(3);
653 CHECK_RESULTS_VLDX (TEST_MSG, expected_vld3_0, "chunk 0");
655 TEST_ALL_EXTRA_CHUNKS(3, 1);
656 CHECK_RESULTS_VLDX (TEST_MSG, expected_vld3_1, "chunk 1");
658 TEST_ALL_EXTRA_CHUNKS(3, 2);
659 CHECK_RESULTS_VLDX (TEST_MSG, expected_vld3_2, "chunk 2");
661 /* Check vld4/vld4q. */
662 clean_results ();
663 #undef TEST_MSG
664 #define TEST_MSG "VLD4/VLD4Q"
665 TEST_ALL_VLDX(4);
666 CHECK_RESULTS_VLDX (TEST_MSG, expected_vld4_0, "chunk 0");
668 TEST_ALL_EXTRA_CHUNKS(4, 1);
669 CHECK_RESULTS_VLDX (TEST_MSG, expected_vld4_1, "chunk 1");
671 TEST_ALL_EXTRA_CHUNKS(4, 2);
672 CHECK_RESULTS_VLDX (TEST_MSG, expected_vld4_2, "chunk 2");
674 TEST_ALL_EXTRA_CHUNKS(4, 3);
675 CHECK_RESULTS_VLDX (TEST_MSG, expected_vld4_3, "chunk 3");
678 int main (void)
680 exec_vldX ();
681 return 0;