This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[Patch ARM/testsuite 00/22] Neon intrinsics executable tests
- From: Christophe Lyon <christophe dot lyon at linaro dot org>
- To: gcc-patches at gcc dot gnu dot org
- Date: Fri, 6 Jun 2014 00:04:20 +0200
- Subject: [Patch ARM/testsuite 00/22] Neon intrinsics executable tests
- Authentication-results: sourceware.org; auth=none
This is patch series is a more complete version of the patch I sent
some time ago:
https://gcc.gnu.org/ml/gcc-patches/2013-10/msg00624.html
I have created a series of patches to help review. The 1st one adds
some documentation, the common .h files defining helpers used in the
actual tests, and two real tests (vaba and vld1) to show how the
various macros are used.
The next patches add other tests (grouped when they use a common
framework).
Looking at the .exp file, you'll notice that the tests are performed twice:
* once using c-torture-execute to make sure they execute correctly
under various levels of optimization. In this case dejagnu
directives embedded in each .c test file are ignored.
* once using gcc-dg-runtest, which enables compiling with various
optimization levels and scanning the generated assembly for some
code sequences. Currently, only the vadd test contains some
scan-assembler-times directives, as an example. We can add such
directives to other tests later.
Regarding the results of these tests on target
arm-none-linux-gnueabihf, note that:
* vclz tests currently fail at optimization levels starting with -O1
* vqadd test fails when compiled with -Os
* vadd scan-assembler fails for vadd.i64 (because the compiler uses
core registers instead of Neon ones. Not sure if this should be
considered as a bug or if the test should be changed)
* this gives 1164 PASS and 18 FAIL
I have not looked at the results in detail on other arm* and aarch64*
targets, but there are some other failures.
I have many more tests to convert (currently 40 done, 96 remain), and
my plan is to work on the rest once this set has been accepted.
As of the ChangeLog entry, this patch only adds new files in
testsuite/gcc.target/arm/neon-intrinsics (which is new too).
OK for trunk?
Thanks,
Christophe.
Christophe Lyon (22):
Neon intrinsics execution tests initial framework.
Add unary operators: vabs and vneg.
Add binary operators: vadd, vand, vbic, veor, vorn, vorr, vsub.
Add comparison operators: vceq, vcge, vcgt, vcle and vclt.
Add comparison operators with floating-point operands: vcage, vcagt,
vcale and cvalt.
Add unary saturating operators: vqabs and vqneg.
Add binary saturating operators: vqadd, vqsub.
Add vabal tests.
Add vabd tests.
Add vabdl tests.
Add vaddhn tests.
Add vaddl tests.
Add vaddw tests.
Add vbsl tests.
Add vclz tests.
Add vdup and vmov tests.
Add vld1_dup tests.
Add vld2/vld3/vld4 tests.
Add vld2_lane, vld3_lane and vld4_lane tests.
Add vmul tests.
Add vshl tests.
Add vuzp and vzip tests.