#include <stdlib.h>
#include <stdio.h>
void
copy_unrolling(const char* src, short* dst, int n)
{
int i = n;
while ((i - 4) >= 0) {
*dst++ = *src++; *dst++ = *src++;
*dst++ = *src++; *dst++ = *src++;
i -= 4;
}
while(i--) {
*dst++ = *src++;
}
}
void
copy(const char* src, short* dst, int n)
{
while(n--) {
*dst++ = *src++;
}
}
void
make_data(char* src, int n)
{
for (int i = 0; i < n; i++) {
src[i] = i;
}
}
int main(void)
{
char src[100000];
short dst[100000];
make_data(src, 100000);
for (int i = 0; i < 10000; i++) {
//copy(src, dst, 100000);
copy_unrolling(src, dst, 100000);
}
}