1 /* { dg-add-options stack_size } */
2 /* { dg-require-stack-size "[dg-effective-target-value stack_size]*2" } */
3
4 void
bcopy1(s,d,c)5 bcopy1 (s, d, c)
6 long long *s;
7 long long *d;
8 int c;
9 {
10 int i;
11 c = c / 8;
12 for (i = 0; i < c; i++)
13 d[i] = s[i];
14 }
15
16 void
bcopy2(s,d,c)17 bcopy2 (s, d, c)
18 long *s;
19 long *d;
20 int c;
21 {
22 int i;
23 c = c / 4;
24 for (i = 0; i < c; i++)
25 d[i] = s[i];
26 }
27
28
29 void
bcopy3(s,d,c)30 bcopy3 (s, d, c)
31 char *s;
32 char *d;
33 int c;
34 {
35 long long z0, z1;
36 int r = d - s;
37
38 int i;
39
40 c /= 16;
41
42 z0 = *((long long *) s);
43 s += 8;
44 z1 = *((long long *) s);
45 s += 8;
46 for (i = 0; i < c; i++)
47 {
48 *(long long *)(s + r) = z0;
49 z0 = *((long long *) s);
50 s += 8;
51 *(long long *)(s + r) = z1;
52 z1 = *((long long *) s);
53 s += 8;
54 }
55 }
56
57 #if defined(STACK_SIZE) && STACK_SIZE < 16384
58 #define BYTES STACK_SIZE
59 #else
60 #define BYTES 16384
61 #endif
62
main()63 main ()
64 {
65 long long s[BYTES / 8];
66 long long d[BYTES / 8];
67 int i;
68
69 for (i = 1; i < 67108864 / BYTES; i++)
70 bcopy (s, d, BYTES);
71 }
72