[AARCH64, NEON] Any regression testcase for AARCH64 NEON intrinsics in GCC testsuite?
Yangfei (Felix)
felix.yang@huawei.com
Tue Nov 11 08:45:00 GMT 2014
> > Hello,
> >
> > I have written a testsuite for AArch32 Neon intrinsics, available at
> > https://gitorious.org/arm-neon-tests
> >
> > I am in the process of converting in into DejaGnu form for integration into GCC.
> >
> > My most recent submission was
> > https://gcc.gnu.org/ml/gcc-patches/2014-07/msg00022.html
> > but I plan to submit another version soon.
> >
> > As you'll notice, this first submission only covers a small subset of
> > the original testsuite, but I do plan to convert it all.
> >
> > That being said, the current testsuite only covers AArch32 Neon
> > intrinsics, and needs to be expanded to cover the AArch64. It is still
> > useful to test the AArch32 subset on AArch64.
> >
> > Christophe.
Hello Christophe,
Is the testsuite https://gitorious.org/arm-neon-tests written for little-endian?
I noticed that some testcases treat "result_int8x8" as an array and access it by array indexing when checking the test result.
And this will not work for big-endian.
An example:
exec_vzip
{
int8_t buffer_int8x8 [] = { (int8_t)-16, (int8_t)-15, (int8_t)-14, (int8_t)-13, (int8_t)-12, (int8_t)-11, (int8_t)-10, (int8_t)-9, };
int8x8_t vector1_int8x8;
int8x8_t vector2_int8x8;
vector1_int8x8 = vld1_s8(buffer_int8x8);
vector2_int8x8 = vdup_n_s8(0x11);
result_vec_int8x8x2 = vzip_s8(vector1_int8x8, vector2_int8x8);
vst2_s8(result_bis_int8x8, result_vec_int8x8x2);
memcpy(result_int8x8, result_bis_int8x8, sizeof(result_int8x8));
{ { int i; for(i=0; i<8 ; i++) { if (result_int8x8[i] != expected0_int8x8[i]) { fprintf(stderr, "ERROR in %s (%s line %d in buffer '%s') at type %s " "index %d: got 0x%" "x" " != 0x%" "x" " %s\n", "VZIP/VZIPQ", "./gcc.target/aarch64/advsimd-intrinsics/vzip.c", 232, "expected0", "int8x8", i, result_int8x8[i], expected0_int8x8[i], strlen("(chunk 0)") > 0 ? "(chunk 0)" : ""); abort(); } } }; };
}
More information about the Gcc-patches
mailing list