public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [Patch ARM/AArch64 00/11][testsuite] AdvSIMD intrinsics update
@ 2016-05-11 13:24 Christophe Lyon
  2016-05-11 13:24 ` [Patch ARM/AArch64 09/11] Add missing vrnd{,a,m,n,p,x} tests Christophe Lyon
  0 siblings, 1 reply; 9+ messages in thread
From: Christophe Lyon @ 2016-05-11 13:24 UTC (permalink / raw)
  To: gcc-patches

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

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-06-08  9:08 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20160607154025.GC6963@e103625-lin.cambridge.arm.com>
     [not found] ` <AM3PR08MB00886D803EBB28921F1C9E96835D0@AM3PR08MB0088.eurprd08.prod.outlook.com>
2016-06-08  7:37   ` [Patch ARM/AArch64 09/11] Add missing vrnd{,a,m,n,p,x} tests Christophe Lyon
2016-06-08  8:47     ` Christophe Lyon
2016-06-08  9:08       ` Christophe Lyon
2016-05-11 13:24 [Patch ARM/AArch64 00/11][testsuite] AdvSIMD intrinsics update Christophe Lyon
2016-05-11 13:24 ` [Patch ARM/AArch64 09/11] Add missing vrnd{,a,m,n,p,x} tests Christophe Lyon
2016-05-12  8:45   ` Jiong Wang
2016-05-12 12:56     ` Christophe Lyon
2016-05-13  8:39       ` Jiong Wang
2016-05-13 14:56   ` James Greenhalgh
2016-05-19 16:22   ` Kyrill Tkachov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).