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"

Reply via email to