1/* Test builtin-memcpy (which may emit different code for different N).  */
2#include <string.h>
3
4#define TESTSIZE 80
5
6char src[TESTSIZE] __attribute__ ((aligned));
7char dst[TESTSIZE] __attribute__ ((aligned));
8
9void
10check (char *test, char *match, int n)
11{
12  if (memcmp (test, match, n))
13    abort ();
14}
15
16#define TN(n) \
17{ memset (dst, 0, n); memcpy (dst, src, n); check (dst, src, n); }
18#define T(n) \
19TN (n) \
20TN ((n) + 1) \
21TN ((n) + 2) \
22TN ((n) + 3)
23
24main ()
25{
26  int i,j;
27
28  for (i = 0; i < sizeof (src); ++i)
29      src[i] = 'a' + i % 26;
30
31  T (0);
32  T (4);
33  T (8);
34  T (12);
35  T (16);
36  T (20);
37  T (24);
38  T (28);
39  T (32);
40  T (36);
41  T (40);
42  T (44);
43  T (48);
44  T (52);
45  T (56);
46  T (60);
47  T (64);
48  T (68);
49  T (72);
50  T (76);
51
52  return 0;
53}
54