Hi All, this is a respin with the changes suggested. Note that this patch is no 8/8 in the series.
Regtested on arm-none-eabi, armeb-none-eabi, aarch64-none-elf and aarch64_be-none-elf with no issues found. Ok for trunk? gcc/testsuite 2017-10-06 Tamar Christina <tamar.christ...@arm.com> * gcc.dg/vect/vect-reduc-dot-s8a.c (dg-additional-options, dg-require-effective-target): Add +dotprod. * gcc.dg/vect/vect-reduc-dot-u8a.c (dg-additional-options, dg-require-effective-target): Add +dotprod. ________________________________________ From: Tamar Christina Sent: Monday, September 4, 2017 12:35:39 PM To: James Greenhalgh Cc: gcc-patches@gcc.gnu.org; nd; Richard Earnshaw; Marcus Shawcroft Subject: RE: [PATCH][GCC][Testsuite][ARM][AArch64] Enable Dot Product for generic tests for ARM and AArch64 [Patch (7/8)] > I'm surprised that this worked! > > It looks like you unconditionally add the -march=armv8.2-a+dotprod options, > which should cause you to generate instructions which will not execute on > targets which don't support this instruction. As far as I can see, this is an > execute test, so that should cause undefined instruction exceptions on an > Armv8-A target at the very least. It's not, there is no dg-do specified, which means it defaults to "compile" This is a straight compilation tests that checks to see if the target can do the reduction. There may be a main, but it's never executed, which is why I don't have a hardware check against it. The unconditional armv8.2+dotprod is for this reason. It doesn't matter what hardware. > > So, not OK in its current form. > > Thanks, > James > > > > > Ok for trunk? > > > > gcc/testsuite > > 2017-09-01 Tamar Christina <tamar.christ...@arm.com> > > > > * gcc.dg/vect/vect-reduc-dot-s8a.c > > (dg-additional-options, dg-require-effective-target): Add +dotprod. > > * gcc.dg/vect/vect-reduc-dot-u8a.c > > (dg-additional-options, dg-require-effective-target): Add +dotprod. > > > > --
diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c index dc4f52019d5435edbbc811b73dee0f98ff44c1b1..acb6862f8274fb954f69bd45e8edeedcdca4cbf7 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c @@ -1,4 +1,7 @@ /* { dg-require-effective-target vect_int } */ +/* { dg-require-effective-target arm_v8_2a_dotprod_neon_hw { target { aarch64*-*-* || arm*-*-* } } } */ +/* { dg-additional-options "-O3 -march=armv8.2-a+dotprod" { target { aarch64*-*-* || arm*-*-* } } } */ +/* { dg-add-options arm_v8_2a_dotprod_neon } */ #include <stdarg.h> #include "tree-vect.h" diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c index f3cc6c78c25305d91becd585be8949514ebc521c..c23fe5df252b94d6722708096b8aba7edd100f1a 100644 --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c @@ -1,4 +1,7 @@ /* { dg-require-effective-target vect_int } */ +/* { dg-require-effective-target arm_v8_2a_dotprod_neon_hw { target { aarch64*-*-* || arm*-*-* } } } */ +/* { dg-additional-options "-O3 -march=armv8.2-a+dotprod" { target { aarch64*-*-* || arm*-*-* } } } */ +/* { dg-add-options arm_v8_2a_dotprod_neon } */ #include <stdarg.h> #include "tree-vect.h"