modernc.org/cc@v1.0.1/testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/compile/bcopy.c (about) 1 void 2 bcopy1 (s, d, c) 3 long long *s; 4 long long *d; 5 int c; 6 { 7 int i; 8 c = c / 8; 9 for (i = 0; i < c; i++) 10 d[i] = s[i]; 11 } 12 13 void 14 bcopy2 (s, d, c) 15 long *s; 16 long *d; 17 int c; 18 { 19 int i; 20 c = c / 4; 21 for (i = 0; i < c; i++) 22 d[i] = s[i]; 23 } 24 25 26 void 27 bcopy3 (s, d, c) 28 char *s; 29 char *d; 30 int c; 31 { 32 long long z0, z1; 33 int r = d - s; 34 35 int i; 36 37 c /= 16; 38 39 z0 = *((long long *) s); 40 s += 8; 41 z1 = *((long long *) s); 42 s += 8; 43 for (i = 0; i < c; i++) 44 { 45 *(long long *)(s + r) = z0; 46 z0 = *((long long *) s); 47 s += 8; 48 *(long long *)(s + r) = z1; 49 z1 = *((long long *) s); 50 s += 8; 51 } 52 } 53 54 #if defined(STACK_SIZE) && STACK_SIZE < 16384 55 #define BYTES STACK_SIZE 56 #else 57 #define BYTES 16384 58 #endif 59 60 main () 61 { 62 long long s[BYTES / 8]; 63 long long d[BYTES / 8]; 64 int i; 65 66 for (i = 1; i < 67108864 / BYTES; i++) 67 bcopy (s, d, BYTES); 68 }