d1 = test_func(img1, ptr, WIDTH, 16); d2 = ref_func(img1, ptr, WIDTH, 16);
d1 = test_func(img1, ptr, WIDTH); d2 = ref_func(img1, ptr, WIDTH);
void test_motion(const char *name,                 motion_func *test_func, motion_func *ref_func){    int x, y, d1, d2, it;    UINT8 *ptr;    INT64 ti;    printf("testing '%s'\n", name);    /* test correctness */    for(it=0;it<20;it++) {        fill_random(img1, WIDTH * HEIGHT);        fill_random(img2, WIDTH * HEIGHT);                for(y=0;y<HEIGHT-17;y++) {            for(x=0;x<WIDTH-17;x++) {                ptr = img2 + y * WIDTH + x;                 d1 = test_func(img1, ptr, WIDTH, 16);                d2 = ref_func(img1, ptr, WIDTH, 16);                if (d1 != d2) {                    printf("error: mmx=%d c=%d\n", d1, d2);                }            }        }    }    emms();        /* speed test */    ti = gettime();    d1 = 0;    for(it=0;it<NB_ITS;it++) {        for(y=0;y<HEIGHT-17;y++) {            for(x=0;x<WIDTH-17;x++) {                ptr = img2 + y * WIDTH + x;                 d1 += test_func(img1, ptr, WIDTH, 16);            }        }    }    emms();    dummy = d1; /* avoid optimisation */    ti = gettime() - ti;        printf("  %0.0f kop/s\n",            (double)NB_ITS * (WIDTH - 16) * (HEIGHT - 16) /            (double)(ti / 1000.0));}