[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