This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[Patch ARM/AArch64 00/11][testsuite] AdvSIMD intrinsics update
- From: Christophe Lyon <christophe dot lyon at linaro dot org>
- To: gcc-patches at gcc dot gnu dot org
- Date: Wed, 11 May 2016 15:23:50 +0200
- Subject: [Patch ARM/AArch64 00/11][testsuite] AdvSIMD intrinsics update
- Authentication-results: sourceware.org; auth=none
Hi,
A few months ago, we decided it was time to remove neon-testgen.ml
and its generated tests. I did it, just to realize too late that
some intrinsics were not covered anymore, so I reverted the removal.
This patch series performs a little bit of cleanup and adds the
missing tests to cover all what is defined in arm_neon.h for AArch32.
Globally, this consists in adding tests for:
- missing poly8 and poly16 for vreinterpret and vtst
- fp16 tests for vget_lane, vstX_lane and vreinterpret
- armv8 vrnd{,a,m,n,p,x}
- tests for poly64 and poly128 intrinsics
Some intrinsics are not covered in aarch64/advsimd-intrinsics, but in
arm/crypto: vldrq, vstrq, vaes, vsha1, vsha256, vmull_p64,
vmull_high_p64.
Patches 1-4 are cleanup.
Patch 5 adds the missing poly8 and poly16 tests for vreinterpret.
Patch 6 adds the missing tests for vtst_p8 and vtstq_p8.
Patches 7,8, 11 add the missing fp16 tests
Patch 9 adds armv8 vrnd{,a,m,n,p,x} tests
Patch 10 adds tests for poly64 and poly128 operations
I've checked the coverage by building the list of intrinsics tested
via neon-testgen.ml, the list of intrinsics defined in arm_neon.h, and
running the advsimd-intrinsics.exp tests with -save-temps to gather
the list of actually tested intrinsics.
This series partly addresses PR 70369 which I created to keep track
of these missing intrinsics tests: several AArch64 AdvSIMD intrinsics
are still missing tests.
Tested with QEMU on arm* and aarch64*, with no regression, and
several new PASSes.
OK for trunk?
Christophe
Christophe Lyon (11):
Fix typo in vreinterpret.c test comment.
We can remove useless #ifdefs from these tests: vmul, vshl and vtst.
AdvSIMD tests: be more verbose.
Add forgotten vsliq_n_u64 test.
Add missing vreinterpretq_p{8,16} tests.
Add missing vtst_p8 and vtstq_p8 tests.
Add missing vget_lane fp16 tests.
Add missing vstX_lane fp16 tests.
Add missing vrnd{,a,m,n,p,x} tests.
Add missing tests for intrinsics operating on poly64 and poly128
types.
Add missing tests for vreinterpret, operating of fp16 type.
.../aarch64/advsimd-intrinsics/arm-neon-ref.h | 13 +-
.../aarch64/advsimd-intrinsics/compute-ref-data.h | 16 +
.../aarch64/advsimd-intrinsics/p64_p128.c | 691 +++++++++++++++++++++
.../aarch64/advsimd-intrinsics/vget_lane.c | 19 +
.../gcc.target/aarch64/advsimd-intrinsics/vmul.c | 2 -
.../aarch64/advsimd-intrinsics/vreinterpret.c | 255 +++++++-
.../aarch64/advsimd-intrinsics/vreinterpret_p128.c | 160 +++++
.../aarch64/advsimd-intrinsics/vreinterpret_p64.c | 202 ++++++
.../gcc.target/aarch64/advsimd-intrinsics/vrnd.c | 16 +
.../aarch64/advsimd-intrinsics/vrndX.inc | 43 ++
.../gcc.target/aarch64/advsimd-intrinsics/vrnda.c | 16 +
.../gcc.target/aarch64/advsimd-intrinsics/vrndm.c | 16 +
.../gcc.target/aarch64/advsimd-intrinsics/vrndn.c | 16 +
.../gcc.target/aarch64/advsimd-intrinsics/vrndp.c | 16 +
.../gcc.target/aarch64/advsimd-intrinsics/vrndx.c | 16 +
.../gcc.target/aarch64/advsimd-intrinsics/vshl.c | 2 -
.../gcc.target/aarch64/advsimd-intrinsics/vsli_n.c | 1 +
.../aarch64/advsimd-intrinsics/vstX_lane.c | 105 +++-
.../gcc.target/aarch64/advsimd-intrinsics/vtst.c | 20 +-
19 files changed, 1612 insertions(+), 13 deletions(-)
create mode 100644 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/p64_p128.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p128.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p64.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrnd.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndX.inc
create mode 100644 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrnda.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndm.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndn.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndp.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vrndx.c
--
1.9.1