> > 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(); } } }; }; }