111
|
1 /* { dg-add-options stack_size } */
|
145
|
2 /* { dg-require-stack-size "[dg-effective-target-value stack_size]*2" } */
|
111
|
3
|
|
4 void
|
|
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
|
|
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
|
|
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
|
|
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 }
|