On 11 November 2014 09:37, Yangfei (Felix) <felix.y...@huawei.com> wrote:
>> > 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(); } } }; };
>

Hi,

The vzip test you mention has been ported to the GCC Dejagnu
testsuite, and it does pass on armeb* targets. It currently fails on
aarch64_be (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63652), but I
suspect it's because we also have vldX/vldX_lane failing on aarch64_be
(https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63653). There is WIP to
fix this.

Regarding the testsuite on gitorious, I didn't have an environment
suitable to properly run tests in big-endian mode, so there may be
some problems left.

Christophe.

Reply via email to