3
int main(int nargs, char **args)
5
double *x, *y, *z, ans[4];
7
void do_vmacc(double *z, double *x, double *y);
10
vp = malloc(4*3*sizeof(double) + 32);
11
x = (double*) ( 32 + ((((size_t)(vp))>>5)<<5) );
14
x[0] = 1.0; x[1] = 2.0; x[2] = 4.0; x[3] = 8.0;
15
y[0] = -4.0; y[1] = -8.0; y[2] = -16.0; y[3] = -32.0;
16
z[0] = 0.0; z[1] = 1.0; z[2] = -1.0; z[3] = -4.0;
18
ans[i] = z[i] + x[i] * y[i];
19
do_vmacc(z, x, y); /* z += x * y */
20
if (z[0] != ans[0] || z[1] != ans[1] || z[2] != ans[2] || z[3] != ans[3])
23
"wanted={%.2f,%.2f,%.2f,%.2f}, got={%.2f,%.2f,%.2f,%.2f}\n",
24
ans[0], ans[1], ans[2], ans[3], z[0], z[1], z[2], z[3]);