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