/* * unsigned long vsx[32] * unsigned long load[128]
*/ int validate_vsx(unsignedlong *vsx, unsignedlong *load)
{ int i;
for (i = 0; i < VSX_MAX; i++) { if (vsx[i] != load[2 * i + 1]) {
printf("vsx[%d]: %lx load[%d] %lx\n",
i, vsx[i], 2 * i + 1, load[2 * i + 1]); return TEST_FAIL;
}
} return TEST_PASS;
}
/* * unsigned long vmx[32][2] * unsigned long load[128]
*/ int validate_vmx(unsignedlong vmx[][2], unsignedlong *load)
{ int i;
for (i = 0; i < VMX_MAX; i++) { #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ if ((vmx[i][0] != load[64 + 2 * i]) ||
(vmx[i][1] != load[65 + 2 * i])) {
printf("vmx[%d][0]: %lx load[%d] %lx\n",
i, vmx[i][0], 64 + 2 * i,
load[64 + 2 * i]);
printf("vmx[%d][1]: %lx load[%d] %lx\n",
i, vmx[i][1], 65 + 2 * i,
load[65 + 2 * i]); return TEST_FAIL;
} #else/* * In LE each value pair is stored in an * alternate manner.
*/ if ((vmx[i][0] != load[65 + 2 * i]) ||
(vmx[i][1] != load[64 + 2 * i])) {
printf("vmx[%d][0]: %lx load[%d] %lx\n",
i, vmx[i][0], 65 + 2 * i,
load[65 + 2 * i]);
printf("vmx[%d][1]: %lx load[%d] %lx\n",
i, vmx[i][1], 64 + 2 * i,
load[64 + 2 * i]); return TEST_FAIL;
} #endif
} return TEST_PASS;
}
/* * unsigned long store[128] * unsigned long load[128]
*/ int compare_vsx_vmx(unsignedlong *store, unsignedlong *load)
{ int i;
for (i = 0; i < VSX_MAX; i++) { if (store[1 + 2 * i] != load[1 + 2 * i]) {
printf("store[%d]: %lx load[%d] %lx\n",
1 + 2 * i, store[i],
1 + 2 * i, load[i]); return TEST_FAIL;
}
}
#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ for (i = 64; i < VEC_MAX; i++) { if (store[i] != load[i]) {
printf("store[%d]: %lx load[%d] %lx\n",
i, store[i], i, load[i]); return TEST_FAIL;
}
} #else/* In LE each value pair is stored in an alternate manner */ for (i = 64; i < VEC_MAX; i++) { if (!(i % 2) && (store[i] != load[i+1])) {
printf("store[%d]: %lx load[%d] %lx\n",
i, store[i], i+1, load[i+1]); return TEST_FAIL;
} if ((i % 2) && (store[i] != load[i-1])) {
printf("here store[%d]: %lx load[%d] %lx\n",
i, store[i], i-1, load[i-1]); return TEST_FAIL;
}
} #endif return TEST_PASS;
}
void load_vsx_vmx(unsignedlong *load, unsignedlong *vsx, unsignedlong vmx[][2])
{ int i;
for (i = 0; i < VSX_MAX; i++)
vsx[i] = load[1 + 2 * i];
for (i = 0; i < VMX_MAX; i++) {
vmx[i][0] = load[64 + 2 * i];
vmx[i][1] = load[65 + 2 * i];
}
}
void loadvsx(void *p, int tmp); void storevsx(void *p, int tmp);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.