111
|
1 /* Test memcmp/strncmp builtin expansion for compilation and proper execution. */
|
|
2 /* { dg-do run } */
|
|
3 /* { dg-options "-O2" } */
|
|
4 /* { dg-require-effective-target ptr32plus } */
|
|
5
|
|
6 #include <stdio.h>
|
|
7 #include <stdlib.h>
|
|
8 #include <string.h>
|
|
9 #include <stdint.h>
|
|
10
|
131
|
11 #define STR1(X) #X
|
|
12 #define STR2(X) STR1(X)
|
|
13
|
|
14 int lib_memcmp(const void *a, const void *b, size_t n)
|
|
15 asm(STR2(__USER_LABEL_PREFIX__) "memcmp");
|
|
16 int lib_strncmp(const char *a, const char *b, size_t n)
|
|
17 asm(STR2(__USER_LABEL_PREFIX__) "strncmp");
|
111
|
18
|
|
19 #ifndef NRAND
|
131
|
20 #ifdef TEST_ALL
|
111
|
21 #define NRAND 10000
|
131
|
22 #else
|
|
23 #define NRAND 500
|
|
24 #endif
|
|
25 #endif
|
|
26 #ifndef TZONE
|
|
27 #ifdef TEST_ALL
|
|
28 #define TZONE 16
|
|
29 #else
|
|
30 #define TZONE 8
|
|
31 #endif
|
111
|
32 #endif
|
131
|
33
|
|
34 #define MAX_SZ 600
|
|
35
|
|
36 #define DEF_RS(ALIGN) \
|
|
37 static void test_memcmp_runtime_size_ ## ALIGN (const char *str1, \
|
|
38 const char *str2, \
|
|
39 size_t sz, int expect) \
|
|
40 { \
|
|
41 char three[8192] __attribute__ ((aligned (4096))); \
|
|
42 char four[8192] __attribute__ ((aligned (4096))); \
|
|
43 char *a, *b; \
|
|
44 int i,j,a1,a2,r; \
|
|
45 for (j = 0; j < 2; j++) \
|
|
46 { \
|
|
47 for (i = 0; i < 2; i++) \
|
|
48 { \
|
|
49 a = three+i*ALIGN+j*(4096-2*i*ALIGN); \
|
|
50 b = four+i*ALIGN+j*(4096-2*i*ALIGN); \
|
|
51 memcpy(a,str1,sz); \
|
|
52 memcpy(b,str2,sz); \
|
|
53 r = memcmp(a,b,sz); \
|
|
54 if ( r < 0 && !(expect < 0) ) abort(); \
|
|
55 if ( r > 0 && !(expect > 0) ) abort(); \
|
|
56 if ( r == 0 && !(expect == 0) ) abort(); \
|
|
57 } \
|
|
58 } \
|
|
59 }
|
|
60
|
|
61 DEF_RS(1)
|
|
62 DEF_RS(2)
|
|
63 DEF_RS(4)
|
|
64 DEF_RS(8)
|
|
65 DEF_RS(16)
|
|
66
|
|
67 static void test_memcmp_runtime_size (const char *str1, const char *str2,
|
|
68 size_t sz, int expect)
|
|
69 {
|
|
70 char three[8192] __attribute__ ((aligned (4096)));
|
|
71 char four[8192] __attribute__ ((aligned (4096)));
|
|
72 char *a, *b;
|
|
73 int i,j,a1,a2,r;
|
|
74 test_memcmp_runtime_size_1 (str1,str2,sz,expect);
|
|
75 test_memcmp_runtime_size_2 (str1,str2,sz,expect);
|
|
76 test_memcmp_runtime_size_4 (str1,str2,sz,expect);
|
|
77 test_memcmp_runtime_size_8 (str1,str2,sz,expect);
|
|
78 test_memcmp_runtime_size_16 (str1,str2,sz,expect);
|
|
79 for (j = 0; j < 2; j++)
|
|
80 {
|
|
81 for (i = 0; i < 2; i++)
|
|
82 {
|
|
83 for (a1=0; a1 < 2*sizeof(void *); a1++)
|
|
84 {
|
|
85 a = three+i*a1+j*(4096-2*i*a1);
|
|
86 memcpy(a,str1,sz);
|
|
87 for (a2=0; a2 < 2*sizeof(void *); a2++)
|
|
88 {
|
|
89 b = four+i*a2+j*(4096-2*i*a2);
|
|
90 memcpy(b,str2,sz);
|
|
91 r = memcmp(a,b,sz);
|
|
92 if ( r < 0 && !(expect < 0) ) abort();
|
|
93 if ( r > 0 && !(expect > 0) ) abort();
|
|
94 if ( r == 0 && !(expect == 0) ) abort();
|
|
95 }
|
|
96 }
|
|
97 }
|
|
98 }
|
|
99 }
|
111
|
100
|
|
101 static void test_driver_memcmp (void (test_memcmp)(const char *, const char *, int),
|
|
102 void (test_strncmp)(const char *, const char *, int),
|
131
|
103 size_t sz, int align)
|
111
|
104 {
|
131
|
105 char buf1[MAX_SZ*2+TZONE],buf2[MAX_SZ*2+TZONE];
|
111
|
106 size_t test_sz = (sz<MAX_SZ)?sz:MAX_SZ;
|
|
107 size_t diff_pos, zero_pos;
|
|
108 uint32_t e;
|
|
109 int i,j,l;
|
|
110 for(l=0;l<sz;l++) {
|
|
111 for(i=0;i<NRAND/sz;i++) {
|
|
112 for(j=0;j<l;j++) {
|
|
113 buf1[j] = rand() & 0xff;
|
|
114 buf2[j] = buf1[j];
|
|
115 }
|
|
116 for(j=l;j<sz;j++) {
|
|
117 buf1[j] = rand() & 0xff;
|
|
118 buf2[j] = rand() & 0xff;
|
|
119 }
|
131
|
120 e = lib_memcmp(buf1,buf2,sz);
|
|
121 (*test_memcmp)(buf1,buf2,e);
|
|
122 test_memcmp_runtime_size (buf1, buf2, sz, e);
|
|
123 e = lib_strncmp(buf1,buf2,sz);
|
|
124 (*test_strncmp)(buf1,buf2,e);
|
111
|
125 }
|
|
126 }
|
131
|
127 for(diff_pos = ((test_sz>TZONE)?(test_sz-TZONE):0); diff_pos < test_sz+TZONE; diff_pos++)
|
|
128 for(zero_pos = ((test_sz>TZONE)?(test_sz-TZONE):0); zero_pos < test_sz+TZONE; zero_pos++)
|
111
|
129 {
|
|
130 memset(buf1, 'A', 2*test_sz);
|
|
131 memset(buf2, 'A', 2*test_sz);
|
|
132 buf2[diff_pos] = 'B';
|
|
133 buf1[zero_pos] = 0;
|
|
134 buf2[zero_pos] = 0;
|
|
135 e = lib_memcmp(buf1,buf2,sz);
|
|
136 (*test_memcmp)(buf1,buf2,e);
|
|
137 (*test_memcmp)(buf2,buf1,-e);
|
|
138 (*test_memcmp)(buf2,buf2,0);
|
131
|
139 test_memcmp_runtime_size (buf1, buf2, sz, e);
|
|
140 test_memcmp_runtime_size (buf2, buf1, sz, -e);
|
111
|
141 e = lib_strncmp(buf1,buf2,sz);
|
|
142 (*test_strncmp)(buf1,buf2,e);
|
|
143 (*test_strncmp)(buf2,buf1,-e);
|
|
144 (*test_strncmp)(buf2,buf2,0);
|
|
145 /* differing length: */
|
|
146 buf2[diff_pos] = 0;
|
|
147 e = lib_memcmp(buf1,buf2,sz);
|
|
148 (*test_memcmp)(buf1,buf2,e);
|
131
|
149 test_memcmp_runtime_size (buf1, buf2, sz, e);
|
111
|
150 e = lib_strncmp(buf1,buf2,sz);
|
|
151 (*test_strncmp)(buf1,buf2,e);
|
|
152 memset(buf2+diff_pos,'B',sizeof(buf2)-diff_pos);
|
|
153 buf2[zero_pos] = 0;
|
|
154 e = lib_memcmp(buf1,buf2,sz);
|
|
155 (*test_memcmp)(buf1,buf2,e);
|
|
156 (*test_memcmp)(buf2,buf1,-e);
|
131
|
157 test_memcmp_runtime_size (buf1, buf2, sz, e);
|
|
158 test_memcmp_runtime_size (buf2, buf1, sz, -e);
|
111
|
159 e = lib_strncmp(buf1,buf2,sz);
|
|
160 (*test_strncmp)(buf1,buf2,e);
|
|
161 (*test_strncmp)(buf2,buf1,-e);
|
|
162 }
|
|
163 }
|
|
164
|
|
165 #define RUN_TEST(SZ, ALIGN) test_driver_memcmp (test_memcmp_ ## SZ ## _ ## ALIGN, test_strncmp_ ## SZ ## _ ## ALIGN, SZ, ALIGN);
|
|
166
|
|
167 #define DEF_TEST(SZ, ALIGN) \
|
|
168 static void test_memcmp_ ## SZ ## _ ## ALIGN (const char *str1, const char *str2, int expect) \
|
|
169 { \
|
|
170 char three[8192] __attribute__ ((aligned (4096))); \
|
|
171 char four[8192] __attribute__ ((aligned (4096))); \
|
|
172 char *a, *b; \
|
|
173 int i,j,r; \
|
|
174 for (j = 0; j < 2; j++) \
|
|
175 { \
|
|
176 for (i = 0; i < 2; i++) \
|
|
177 { \
|
|
178 a = three+i*ALIGN+j*(4096-2*i*ALIGN); \
|
|
179 b = four+i*ALIGN+j*(4096-2*i*ALIGN); \
|
|
180 memcpy(a,str1,SZ); \
|
|
181 memcpy(b,str2,SZ); \
|
|
182 r = memcmp(a,b,SZ); \
|
|
183 if ( r < 0 && !(expect < 0) ) abort(); \
|
|
184 if ( r > 0 && !(expect > 0) ) abort(); \
|
|
185 if ( r == 0 && !(expect == 0) ) abort(); \
|
|
186 } \
|
|
187 } \
|
|
188 } \
|
|
189 static void test_strncmp_ ## SZ ## _ ## ALIGN (const char *str1, const char *str2, int expect) \
|
|
190 { \
|
|
191 char three[8192] __attribute__ ((aligned (4096))); \
|
|
192 char four[8192] __attribute__ ((aligned (4096))); \
|
|
193 char *a, *b; \
|
|
194 int i,j,r; \
|
|
195 for (j = 0; j < 2; j++) \
|
|
196 { \
|
|
197 for (i = 0; i < 2; i++) \
|
|
198 { \
|
|
199 a = three+i*ALIGN+j*(4096-2*i*ALIGN); \
|
|
200 b = four+i*ALIGN+j*(4096-2*i*ALIGN); \
|
|
201 memcpy(a,str1,SZ); \
|
|
202 memcpy(b,str2,SZ); \
|
|
203 r = strncmp(a,b,SZ); \
|
|
204 if ( r < 0 && !(expect < 0) ) abort(); \
|
|
205 if ( r > 0 && !(expect > 0) ) abort(); \
|
|
206 if ( r == 0 && !(expect == 0) ) abort(); \
|
|
207 } \
|
|
208 } \
|
|
209 }
|
|
210
|
|
211 #ifdef TEST_ALL
|
|
212 DEF_TEST(1,1)
|
|
213 DEF_TEST(1,2)
|
|
214 DEF_TEST(1,4)
|
|
215 DEF_TEST(1,8)
|
|
216 DEF_TEST(1,16)
|
|
217 DEF_TEST(2,1)
|
|
218 DEF_TEST(2,2)
|
|
219 DEF_TEST(2,4)
|
|
220 DEF_TEST(2,8)
|
|
221 DEF_TEST(2,16)
|
|
222 DEF_TEST(3,1)
|
|
223 DEF_TEST(3,2)
|
|
224 DEF_TEST(3,4)
|
|
225 DEF_TEST(3,8)
|
|
226 DEF_TEST(3,16)
|
|
227 DEF_TEST(4,1)
|
|
228 DEF_TEST(4,2)
|
|
229 DEF_TEST(4,4)
|
|
230 DEF_TEST(4,8)
|
|
231 DEF_TEST(4,16)
|
|
232 DEF_TEST(5,1)
|
|
233 DEF_TEST(5,2)
|
|
234 DEF_TEST(5,4)
|
|
235 DEF_TEST(5,8)
|
|
236 DEF_TEST(5,16)
|
|
237 DEF_TEST(6,1)
|
|
238 DEF_TEST(6,2)
|
|
239 DEF_TEST(6,4)
|
|
240 DEF_TEST(6,8)
|
|
241 DEF_TEST(6,16)
|
|
242 DEF_TEST(7,1)
|
|
243 DEF_TEST(7,2)
|
|
244 DEF_TEST(7,4)
|
|
245 DEF_TEST(7,8)
|
|
246 DEF_TEST(7,16)
|
|
247 DEF_TEST(8,1)
|
|
248 DEF_TEST(8,2)
|
|
249 DEF_TEST(8,4)
|
|
250 DEF_TEST(8,8)
|
|
251 DEF_TEST(8,16)
|
|
252 DEF_TEST(9,1)
|
|
253 DEF_TEST(9,2)
|
|
254 DEF_TEST(9,4)
|
|
255 DEF_TEST(9,8)
|
|
256 DEF_TEST(9,16)
|
|
257 DEF_TEST(10,1)
|
|
258 DEF_TEST(10,2)
|
|
259 DEF_TEST(10,4)
|
|
260 DEF_TEST(10,8)
|
|
261 DEF_TEST(10,16)
|
|
262 DEF_TEST(11,1)
|
|
263 DEF_TEST(11,2)
|
|
264 DEF_TEST(11,4)
|
|
265 DEF_TEST(11,8)
|
|
266 DEF_TEST(11,16)
|
|
267 DEF_TEST(12,1)
|
|
268 DEF_TEST(12,2)
|
|
269 DEF_TEST(12,4)
|
|
270 DEF_TEST(12,8)
|
|
271 DEF_TEST(12,16)
|
|
272 DEF_TEST(13,1)
|
|
273 DEF_TEST(13,2)
|
|
274 DEF_TEST(13,4)
|
|
275 DEF_TEST(13,8)
|
|
276 DEF_TEST(13,16)
|
|
277 DEF_TEST(14,1)
|
|
278 DEF_TEST(14,2)
|
|
279 DEF_TEST(14,4)
|
|
280 DEF_TEST(14,8)
|
|
281 DEF_TEST(14,16)
|
|
282 DEF_TEST(15,1)
|
|
283 DEF_TEST(15,2)
|
|
284 DEF_TEST(15,4)
|
|
285 DEF_TEST(15,8)
|
|
286 DEF_TEST(15,16)
|
|
287 DEF_TEST(16,1)
|
|
288 DEF_TEST(16,2)
|
|
289 DEF_TEST(16,4)
|
|
290 DEF_TEST(16,8)
|
|
291 DEF_TEST(16,16)
|
|
292 DEF_TEST(17,1)
|
|
293 DEF_TEST(17,2)
|
|
294 DEF_TEST(17,4)
|
|
295 DEF_TEST(17,8)
|
|
296 DEF_TEST(17,16)
|
|
297 DEF_TEST(18,1)
|
|
298 DEF_TEST(18,2)
|
|
299 DEF_TEST(18,4)
|
|
300 DEF_TEST(18,8)
|
|
301 DEF_TEST(18,16)
|
|
302 DEF_TEST(19,1)
|
|
303 DEF_TEST(19,2)
|
|
304 DEF_TEST(19,4)
|
|
305 DEF_TEST(19,8)
|
|
306 DEF_TEST(19,16)
|
|
307 DEF_TEST(20,1)
|
|
308 DEF_TEST(20,2)
|
|
309 DEF_TEST(20,4)
|
|
310 DEF_TEST(20,8)
|
|
311 DEF_TEST(20,16)
|
|
312 DEF_TEST(21,1)
|
|
313 DEF_TEST(21,2)
|
|
314 DEF_TEST(21,4)
|
|
315 DEF_TEST(21,8)
|
|
316 DEF_TEST(21,16)
|
|
317 DEF_TEST(22,1)
|
|
318 DEF_TEST(22,2)
|
|
319 DEF_TEST(22,4)
|
|
320 DEF_TEST(22,8)
|
|
321 DEF_TEST(22,16)
|
|
322 DEF_TEST(23,1)
|
|
323 DEF_TEST(23,2)
|
|
324 DEF_TEST(23,4)
|
|
325 DEF_TEST(23,8)
|
|
326 DEF_TEST(23,16)
|
|
327 DEF_TEST(24,1)
|
|
328 DEF_TEST(24,2)
|
|
329 DEF_TEST(24,4)
|
|
330 DEF_TEST(24,8)
|
|
331 DEF_TEST(24,16)
|
|
332 DEF_TEST(25,1)
|
|
333 DEF_TEST(25,2)
|
|
334 DEF_TEST(25,4)
|
|
335 DEF_TEST(25,8)
|
|
336 DEF_TEST(25,16)
|
|
337 DEF_TEST(26,1)
|
|
338 DEF_TEST(26,2)
|
|
339 DEF_TEST(26,4)
|
|
340 DEF_TEST(26,8)
|
|
341 DEF_TEST(26,16)
|
|
342 DEF_TEST(27,1)
|
|
343 DEF_TEST(27,2)
|
|
344 DEF_TEST(27,4)
|
|
345 DEF_TEST(27,8)
|
|
346 DEF_TEST(27,16)
|
|
347 DEF_TEST(28,1)
|
|
348 DEF_TEST(28,2)
|
|
349 DEF_TEST(28,4)
|
|
350 DEF_TEST(28,8)
|
|
351 DEF_TEST(28,16)
|
|
352 DEF_TEST(29,1)
|
|
353 DEF_TEST(29,2)
|
|
354 DEF_TEST(29,4)
|
|
355 DEF_TEST(29,8)
|
|
356 DEF_TEST(29,16)
|
|
357 DEF_TEST(30,1)
|
|
358 DEF_TEST(30,2)
|
|
359 DEF_TEST(30,4)
|
|
360 DEF_TEST(30,8)
|
|
361 DEF_TEST(30,16)
|
|
362 DEF_TEST(31,1)
|
|
363 DEF_TEST(31,2)
|
|
364 DEF_TEST(31,4)
|
|
365 DEF_TEST(31,8)
|
|
366 DEF_TEST(31,16)
|
|
367 DEF_TEST(32,1)
|
|
368 DEF_TEST(32,2)
|
|
369 DEF_TEST(32,4)
|
|
370 DEF_TEST(32,8)
|
|
371 DEF_TEST(32,16)
|
|
372 DEF_TEST(33,1)
|
|
373 DEF_TEST(33,2)
|
|
374 DEF_TEST(33,4)
|
|
375 DEF_TEST(33,8)
|
|
376 DEF_TEST(33,16)
|
|
377 DEF_TEST(34,1)
|
|
378 DEF_TEST(34,2)
|
|
379 DEF_TEST(34,4)
|
|
380 DEF_TEST(34,8)
|
|
381 DEF_TEST(34,16)
|
|
382 DEF_TEST(35,1)
|
|
383 DEF_TEST(35,2)
|
|
384 DEF_TEST(35,4)
|
|
385 DEF_TEST(35,8)
|
|
386 DEF_TEST(35,16)
|
|
387 DEF_TEST(36,1)
|
|
388 DEF_TEST(36,2)
|
|
389 DEF_TEST(36,4)
|
|
390 DEF_TEST(36,8)
|
|
391 DEF_TEST(36,16)
|
|
392 DEF_TEST(37,1)
|
|
393 DEF_TEST(37,2)
|
|
394 DEF_TEST(37,4)
|
|
395 DEF_TEST(37,8)
|
|
396 DEF_TEST(37,16)
|
|
397 DEF_TEST(38,1)
|
|
398 DEF_TEST(38,2)
|
|
399 DEF_TEST(38,4)
|
|
400 DEF_TEST(38,8)
|
|
401 DEF_TEST(38,16)
|
|
402 DEF_TEST(39,1)
|
|
403 DEF_TEST(39,2)
|
|
404 DEF_TEST(39,4)
|
|
405 DEF_TEST(39,8)
|
|
406 DEF_TEST(39,16)
|
|
407 DEF_TEST(40,1)
|
|
408 DEF_TEST(40,2)
|
|
409 DEF_TEST(40,4)
|
|
410 DEF_TEST(40,8)
|
|
411 DEF_TEST(40,16)
|
|
412 DEF_TEST(41,1)
|
|
413 DEF_TEST(41,2)
|
|
414 DEF_TEST(41,4)
|
|
415 DEF_TEST(41,8)
|
|
416 DEF_TEST(41,16)
|
|
417 DEF_TEST(42,1)
|
|
418 DEF_TEST(42,2)
|
|
419 DEF_TEST(42,4)
|
|
420 DEF_TEST(42,8)
|
|
421 DEF_TEST(42,16)
|
|
422 DEF_TEST(43,1)
|
|
423 DEF_TEST(43,2)
|
|
424 DEF_TEST(43,4)
|
|
425 DEF_TEST(43,8)
|
|
426 DEF_TEST(43,16)
|
|
427 DEF_TEST(44,1)
|
|
428 DEF_TEST(44,2)
|
|
429 DEF_TEST(44,4)
|
|
430 DEF_TEST(44,8)
|
|
431 DEF_TEST(44,16)
|
|
432 DEF_TEST(45,1)
|
|
433 DEF_TEST(45,2)
|
|
434 DEF_TEST(45,4)
|
|
435 DEF_TEST(45,8)
|
|
436 DEF_TEST(45,16)
|
|
437 DEF_TEST(46,1)
|
|
438 DEF_TEST(46,2)
|
|
439 DEF_TEST(46,4)
|
|
440 DEF_TEST(46,8)
|
|
441 DEF_TEST(46,16)
|
|
442 DEF_TEST(47,1)
|
|
443 DEF_TEST(47,2)
|
|
444 DEF_TEST(47,4)
|
|
445 DEF_TEST(47,8)
|
|
446 DEF_TEST(47,16)
|
|
447 DEF_TEST(48,1)
|
|
448 DEF_TEST(48,2)
|
|
449 DEF_TEST(48,4)
|
|
450 DEF_TEST(48,8)
|
|
451 DEF_TEST(48,16)
|
|
452 DEF_TEST(49,1)
|
|
453 DEF_TEST(49,2)
|
|
454 DEF_TEST(49,4)
|
|
455 DEF_TEST(49,8)
|
|
456 DEF_TEST(49,16)
|
|
457 DEF_TEST(100,1)
|
|
458 DEF_TEST(100,2)
|
|
459 DEF_TEST(100,4)
|
|
460 DEF_TEST(100,8)
|
|
461 DEF_TEST(100,16)
|
131
|
462 DEF_TEST(191,1)
|
|
463 DEF_TEST(192,1)
|
|
464 DEF_TEST(193,1)
|
|
465 DEF_TEST(200,1)
|
|
466 DEF_TEST(400,1)
|
111
|
467 #else
|
131
|
468 DEF_TEST(1,1)
|
|
469 DEF_TEST(2,1)
|
111
|
470 DEF_TEST(3,1)
|
|
471 DEF_TEST(4,1)
|
|
472 DEF_TEST(5,1)
|
|
473 DEF_TEST(5,8)
|
|
474 DEF_TEST(6,1)
|
|
475 DEF_TEST(6,4)
|
|
476 DEF_TEST(6,8)
|
|
477 DEF_TEST(7,1)
|
|
478 DEF_TEST(7,2)
|
|
479 DEF_TEST(7,4)
|
|
480 DEF_TEST(7,8)
|
|
481 DEF_TEST(8,1)
|
|
482 DEF_TEST(9,1)
|
|
483 DEF_TEST(16,1)
|
|
484 DEF_TEST(32,1)
|
131
|
485 DEF_TEST(33,8)
|
|
486 DEF_TEST(49,1)
|
111
|
487 #endif
|
|
488
|
|
489 int
|
|
490 main(int argc, char **argv)
|
|
491 {
|
|
492 #ifdef TEST_ALL
|
131
|
493 RUN_TEST(1,1)
|
111
|
494 RUN_TEST(1,2)
|
|
495 RUN_TEST(1,4)
|
|
496 RUN_TEST(1,8)
|
|
497 RUN_TEST(1,16)
|
|
498 RUN_TEST(2,1)
|
|
499 RUN_TEST(2,2)
|
|
500 RUN_TEST(2,4)
|
|
501 RUN_TEST(2,8)
|
|
502 RUN_TEST(2,16)
|
|
503 RUN_TEST(3,1)
|
|
504 RUN_TEST(3,2)
|
|
505 RUN_TEST(3,4)
|
|
506 RUN_TEST(3,8)
|
|
507 RUN_TEST(3,16)
|
|
508 RUN_TEST(4,1)
|
|
509 RUN_TEST(4,2)
|
|
510 RUN_TEST(4,4)
|
|
511 RUN_TEST(4,8)
|
|
512 RUN_TEST(4,16)
|
|
513 RUN_TEST(5,1)
|
|
514 RUN_TEST(5,2)
|
|
515 RUN_TEST(5,4)
|
|
516 RUN_TEST(5,8)
|
|
517 RUN_TEST(5,16)
|
|
518 RUN_TEST(6,1)
|
|
519 RUN_TEST(6,2)
|
|
520 RUN_TEST(6,4)
|
|
521 RUN_TEST(6,8)
|
|
522 RUN_TEST(6,16)
|
|
523 RUN_TEST(7,1)
|
|
524 RUN_TEST(7,2)
|
|
525 RUN_TEST(7,4)
|
|
526 RUN_TEST(7,8)
|
|
527 RUN_TEST(7,16)
|
|
528 RUN_TEST(8,1)
|
|
529 RUN_TEST(8,2)
|
|
530 RUN_TEST(8,4)
|
|
531 RUN_TEST(8,8)
|
|
532 RUN_TEST(8,16)
|
|
533 RUN_TEST(9,1)
|
|
534 RUN_TEST(9,2)
|
|
535 RUN_TEST(9,4)
|
|
536 RUN_TEST(9,8)
|
|
537 RUN_TEST(9,16)
|
|
538 RUN_TEST(10,1)
|
|
539 RUN_TEST(10,2)
|
|
540 RUN_TEST(10,4)
|
|
541 RUN_TEST(10,8)
|
|
542 RUN_TEST(10,16)
|
|
543 RUN_TEST(11,1)
|
|
544 RUN_TEST(11,2)
|
|
545 RUN_TEST(11,4)
|
|
546 RUN_TEST(11,8)
|
|
547 RUN_TEST(11,16)
|
|
548 RUN_TEST(12,1)
|
|
549 RUN_TEST(12,2)
|
|
550 RUN_TEST(12,4)
|
|
551 RUN_TEST(12,8)
|
|
552 RUN_TEST(12,16)
|
|
553 RUN_TEST(13,1)
|
|
554 RUN_TEST(13,2)
|
|
555 RUN_TEST(13,4)
|
|
556 RUN_TEST(13,8)
|
|
557 RUN_TEST(13,16)
|
|
558 RUN_TEST(14,1)
|
|
559 RUN_TEST(14,2)
|
|
560 RUN_TEST(14,4)
|
|
561 RUN_TEST(14,8)
|
|
562 RUN_TEST(14,16)
|
|
563 RUN_TEST(15,1)
|
|
564 RUN_TEST(15,2)
|
|
565 RUN_TEST(15,4)
|
|
566 RUN_TEST(15,8)
|
|
567 RUN_TEST(15,16)
|
|
568 RUN_TEST(16,1)
|
|
569 RUN_TEST(16,2)
|
|
570 RUN_TEST(16,4)
|
|
571 RUN_TEST(16,8)
|
|
572 RUN_TEST(16,16)
|
|
573 RUN_TEST(17,1)
|
|
574 RUN_TEST(17,2)
|
|
575 RUN_TEST(17,4)
|
|
576 RUN_TEST(17,8)
|
|
577 RUN_TEST(17,16)
|
|
578 RUN_TEST(18,1)
|
|
579 RUN_TEST(18,2)
|
|
580 RUN_TEST(18,4)
|
|
581 RUN_TEST(18,8)
|
|
582 RUN_TEST(18,16)
|
|
583 RUN_TEST(19,1)
|
|
584 RUN_TEST(19,2)
|
|
585 RUN_TEST(19,4)
|
|
586 RUN_TEST(19,8)
|
|
587 RUN_TEST(19,16)
|
|
588 RUN_TEST(20,1)
|
|
589 RUN_TEST(20,2)
|
|
590 RUN_TEST(20,4)
|
|
591 RUN_TEST(20,8)
|
|
592 RUN_TEST(20,16)
|
|
593 RUN_TEST(21,1)
|
|
594 RUN_TEST(21,2)
|
|
595 RUN_TEST(21,4)
|
|
596 RUN_TEST(21,8)
|
|
597 RUN_TEST(21,16)
|
|
598 RUN_TEST(22,1)
|
|
599 RUN_TEST(22,2)
|
|
600 RUN_TEST(22,4)
|
|
601 RUN_TEST(22,8)
|
|
602 RUN_TEST(22,16)
|
|
603 RUN_TEST(23,1)
|
|
604 RUN_TEST(23,2)
|
|
605 RUN_TEST(23,4)
|
|
606 RUN_TEST(23,8)
|
|
607 RUN_TEST(23,16)
|
|
608 RUN_TEST(24,1)
|
|
609 RUN_TEST(24,2)
|
|
610 RUN_TEST(24,4)
|
|
611 RUN_TEST(24,8)
|
|
612 RUN_TEST(24,16)
|
|
613 RUN_TEST(25,1)
|
|
614 RUN_TEST(25,2)
|
|
615 RUN_TEST(25,4)
|
|
616 RUN_TEST(25,8)
|
|
617 RUN_TEST(25,16)
|
|
618 RUN_TEST(26,1)
|
|
619 RUN_TEST(26,2)
|
|
620 RUN_TEST(26,4)
|
|
621 RUN_TEST(26,8)
|
|
622 RUN_TEST(26,16)
|
|
623 RUN_TEST(27,1)
|
|
624 RUN_TEST(27,2)
|
|
625 RUN_TEST(27,4)
|
|
626 RUN_TEST(27,8)
|
|
627 RUN_TEST(27,16)
|
|
628 RUN_TEST(28,1)
|
|
629 RUN_TEST(28,2)
|
|
630 RUN_TEST(28,4)
|
|
631 RUN_TEST(28,8)
|
|
632 RUN_TEST(28,16)
|
|
633 RUN_TEST(29,1)
|
|
634 RUN_TEST(29,2)
|
|
635 RUN_TEST(29,4)
|
|
636 RUN_TEST(29,8)
|
|
637 RUN_TEST(29,16)
|
|
638 RUN_TEST(30,1)
|
|
639 RUN_TEST(30,2)
|
|
640 RUN_TEST(30,4)
|
|
641 RUN_TEST(30,8)
|
|
642 RUN_TEST(30,16)
|
|
643 RUN_TEST(31,1)
|
|
644 RUN_TEST(31,2)
|
|
645 RUN_TEST(31,4)
|
|
646 RUN_TEST(31,8)
|
|
647 RUN_TEST(31,16)
|
|
648 RUN_TEST(32,1)
|
|
649 RUN_TEST(32,2)
|
|
650 RUN_TEST(32,4)
|
|
651 RUN_TEST(32,8)
|
|
652 RUN_TEST(32,16)
|
|
653 RUN_TEST(33,1)
|
|
654 RUN_TEST(33,2)
|
|
655 RUN_TEST(33,4)
|
|
656 RUN_TEST(33,8)
|
|
657 RUN_TEST(33,16)
|
|
658 RUN_TEST(34,1)
|
|
659 RUN_TEST(34,2)
|
|
660 RUN_TEST(34,4)
|
|
661 RUN_TEST(34,8)
|
|
662 RUN_TEST(34,16)
|
|
663 RUN_TEST(35,1)
|
|
664 RUN_TEST(35,2)
|
|
665 RUN_TEST(35,4)
|
|
666 RUN_TEST(35,8)
|
|
667 RUN_TEST(35,16)
|
|
668 RUN_TEST(36,1)
|
|
669 RUN_TEST(36,2)
|
|
670 RUN_TEST(36,4)
|
|
671 RUN_TEST(36,8)
|
|
672 RUN_TEST(36,16)
|
|
673 RUN_TEST(37,1)
|
|
674 RUN_TEST(37,2)
|
|
675 RUN_TEST(37,4)
|
|
676 RUN_TEST(37,8)
|
|
677 RUN_TEST(37,16)
|
|
678 RUN_TEST(38,1)
|
|
679 RUN_TEST(38,2)
|
|
680 RUN_TEST(38,4)
|
|
681 RUN_TEST(38,8)
|
|
682 RUN_TEST(38,16)
|
|
683 RUN_TEST(39,1)
|
|
684 RUN_TEST(39,2)
|
|
685 RUN_TEST(39,4)
|
|
686 RUN_TEST(39,8)
|
|
687 RUN_TEST(39,16)
|
|
688 RUN_TEST(40,1)
|
|
689 RUN_TEST(40,2)
|
|
690 RUN_TEST(40,4)
|
|
691 RUN_TEST(40,8)
|
|
692 RUN_TEST(40,16)
|
|
693 RUN_TEST(41,1)
|
|
694 RUN_TEST(41,2)
|
|
695 RUN_TEST(41,4)
|
|
696 RUN_TEST(41,8)
|
|
697 RUN_TEST(41,16)
|
|
698 RUN_TEST(42,1)
|
|
699 RUN_TEST(42,2)
|
|
700 RUN_TEST(42,4)
|
|
701 RUN_TEST(42,8)
|
|
702 RUN_TEST(42,16)
|
|
703 RUN_TEST(43,1)
|
|
704 RUN_TEST(43,2)
|
|
705 RUN_TEST(43,4)
|
|
706 RUN_TEST(43,8)
|
|
707 RUN_TEST(43,16)
|
|
708 RUN_TEST(44,1)
|
|
709 RUN_TEST(44,2)
|
|
710 RUN_TEST(44,4)
|
|
711 RUN_TEST(44,8)
|
|
712 RUN_TEST(44,16)
|
|
713 RUN_TEST(45,1)
|
|
714 RUN_TEST(45,2)
|
|
715 RUN_TEST(45,4)
|
|
716 RUN_TEST(45,8)
|
|
717 RUN_TEST(45,16)
|
|
718 RUN_TEST(46,1)
|
|
719 RUN_TEST(46,2)
|
|
720 RUN_TEST(46,4)
|
|
721 RUN_TEST(46,8)
|
|
722 RUN_TEST(46,16)
|
|
723 RUN_TEST(47,1)
|
|
724 RUN_TEST(47,2)
|
|
725 RUN_TEST(47,4)
|
|
726 RUN_TEST(47,8)
|
|
727 RUN_TEST(47,16)
|
|
728 RUN_TEST(48,1)
|
|
729 RUN_TEST(48,2)
|
|
730 RUN_TEST(48,4)
|
|
731 RUN_TEST(48,8)
|
|
732 RUN_TEST(48,16)
|
|
733 RUN_TEST(49,1)
|
|
734 RUN_TEST(49,2)
|
|
735 RUN_TEST(49,4)
|
|
736 RUN_TEST(49,8)
|
|
737 RUN_TEST(49,16)
|
|
738 RUN_TEST(100,1)
|
|
739 RUN_TEST(100,2)
|
|
740 RUN_TEST(100,4)
|
|
741 RUN_TEST(100,8)
|
|
742 RUN_TEST(100,16)
|
131
|
743 RUN_TEST(191,1)
|
|
744 RUN_TEST(192,1)
|
|
745 RUN_TEST(193,1)
|
|
746 RUN_TEST(200,1)
|
|
747 RUN_TEST(400,1)
|
111
|
748 #else
|
131
|
749 RUN_TEST(1,1)
|
|
750 RUN_TEST(2,1)
|
111
|
751 RUN_TEST(3,1)
|
|
752 RUN_TEST(4,1)
|
|
753 RUN_TEST(5,1)
|
|
754 RUN_TEST(5,8)
|
|
755 RUN_TEST(6,1)
|
|
756 RUN_TEST(6,4)
|
|
757 RUN_TEST(6,8)
|
|
758 RUN_TEST(7,1)
|
|
759 RUN_TEST(7,2)
|
|
760 RUN_TEST(7,4)
|
|
761 RUN_TEST(7,8)
|
|
762 RUN_TEST(8,1)
|
|
763 RUN_TEST(9,1)
|
|
764 RUN_TEST(16,1)
|
|
765 RUN_TEST(32,1)
|
131
|
766 RUN_TEST(33,8)
|
|
767 RUN_TEST(49,1)
|
111
|
768 #endif
|
|
769 }
|