diff mbox

[rs6000] Improve tests for Power9 vector absolute difference unsigned instructions

Message ID 5762E625.9080007@linux.vnet.ibm.com
State New
Headers show

Commit Message

Kelvin Nilsen June 16, 2016, 5:47 p.m. UTC
This patch improves upon a recently committed patch to add support for
Power9 vector absolute difference unsigned instructions in two ways:

1. The dg-require-effective-target directive is changed in all tests to
allow the test to run even though the tests are not run on a Power9
platform, as long as the associated as tool understands Power9
instructions.  A dg-skip-if directive is added to all tests to disable
these tests on aix hosts, because that platform is known to have
incompatibilities for these tests.

2. The body of the vadsdub-2.c test is modified to test different
behavior than is tested by vadsdub-1.c.  In the previous commit, these
two tests were identical.

gcc/testsuite/ChangeLog:

2016-06-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	* gcc.target/powerpc/vadsdu-0.c: Replace
	dg-require-effective-target directive to allow test to run on more
	platforms, and add dg-skip-if directive to disable test on aix
	platforms because of known incompatibilities.
	* gcc.target/powerpc/vadsdu-1.c: Likewise.
	* gcc.target/powerpc/vadsdu-2.c: Likewise.
	* gcc.target/powerpc/vadsdu-3.c: Likewise.
	* gcc.target/powerpc/vadsdu-4.c: Likewise.
	* gcc.target/powerpc/vadsdu-5.c: Likewise.
	* gcc.target/powerpc/vadsdub-1.c: Likewise.
	* gcc.target/powerpc/vadsdub-2.c: Replace
	dg-require-effective-target directive to allow test to run on more
	platforms, and add dg-skip-if directive to disable test on aix
	platforms because of known incompatibilities.
	(doAbsoluteDifferenceUnsigned): Replace __builtin_vec_vadub call
	with vec_absdb call to differentiate this test from vadsdub-1.c.
	* gcc.target/powerpc/vadsduh-1.c: Replace
	dg-require-effective-target directive to allow test to run on more
	platforms, and add dg-skip-if directive to disable test on aix
	platforms because of known incompatibilities.
	* gcc.target/powerpc/vadsduh-2.c: Likewise.
	* gcc.target/powerpc/vadsduw-1.c: Likewise.
	* gcc.target/powerpc/vadsduw-2.c: Likewise.

Comments

Kelvin Nilsen June 16, 2016, 5:58 p.m. UTC | #1
On 06/16/2016 11:47 AM, Kelvin Nilsen wrote:
> This patch improves upon a recently committed patch to add support for
> Power9 vector absolute difference unsigned instructions in two ways:
> 
> 1. The dg-require-effective-target directive is changed in all tests to
> allow the test to run even though the tests are not run on a Power9
> platform, as long as the associated as tool understands Power9
> instructions.  A dg-skip-if directive is added to all tests to disable
> these tests on aix hosts, because that platform is known to have
> incompatibilities for these tests.
> 
> 2. The body of the vadsdub-2.c test is modified to test different
> behavior than is tested by vadsdub-1.c.  In the previous commit, these
> two tests were identical.
> 

Sorry for quick-fingering my post.  I meant to add before posting that I
have bootstrapped and regression tested on powerpc64le-unkonwn-linux-gnu
with no regressions.  Is this ok for trunk?  Is it ok for gcc-6 after a
few days of burn-in on the trunk?

Thanks.
Segher Boessenkool June 16, 2016, 11:12 p.m. UTC | #2
On Thu, Jun 16, 2016 at 11:47:17AM -0600, Kelvin Nilsen wrote:
> This patch improves upon a recently committed patch to add support for
> Power9 vector absolute difference unsigned instructions in two ways:

This is okay for trunk, and 6 after a while.  Thanks.  One comment:

> +/* { dg-skip-if "" { powerpc*-*-aix* } { "*" } { "" } } */

You can write that as just

/* { dg-skip-if "" { powerpc*-*-aix* } } */


Segher
diff mbox

Patch

Index: gcc/testsuite/gcc.target/powerpc/vadsdu-0.c
===================================================================
--- gcc/testsuite/gcc.target/powerpc/vadsdu-0.c	(revision 237462)
+++ gcc/testsuite/gcc.target/powerpc/vadsdu-0.c	(working copy)
@@ -1,6 +1,7 @@ 
 /* { dg-do compile { target { powerpc*-*-* } } } */
 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */
-/* { dg-require-effective-target p9vector_hw } */
+/* { dg-require-effective-target powerpc_p9vector_ok } */
+/* { dg-skip-if "" { powerpc*-*-aix* } { "*" } { "" } } */
 /* { dg-options "-mcpu=power9" } */
 
 /* This test should succeed on both 32- and 64-bit configurations.  */
Index: gcc/testsuite/gcc.target/powerpc/vadsdu-1.c
===================================================================
--- gcc/testsuite/gcc.target/powerpc/vadsdu-1.c	(revision 237462)
+++ gcc/testsuite/gcc.target/powerpc/vadsdu-1.c	(working copy)
@@ -1,6 +1,7 @@ 
 /* { dg-do compile { target { powerpc*-*-* } } } */
 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */
-/* { dg-require-effective-target p9vector_hw } */
+/* { dg-require-effective-target powerpc_p9vector_ok } */
+/* { dg-skip-if "" { powerpc*-*-aix* } { "*" } { "" } } */
 /* { dg-options "-mcpu=power9" } */
 
 /* This test should succeed on both 32- and 64-bit configurations.  */
Index: gcc/testsuite/gcc.target/powerpc/vadsdu-2.c
===================================================================
--- gcc/testsuite/gcc.target/powerpc/vadsdu-2.c	(revision 237462)
+++ gcc/testsuite/gcc.target/powerpc/vadsdu-2.c	(working copy)
@@ -1,6 +1,7 @@ 
 /* { dg-do compile { target { powerpc*-*-* } } } */
 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */
-/* { dg-require-effective-target p9vector_hw } */
+/* { dg-require-effective-target powerpc_p9vector_ok } */
+/* { dg-skip-if "" { powerpc*-*-aix* } { "*" } { "" } } */
 /* { dg-options "-mcpu=power9" } */
 
 /* This test should succeed on both 32- and 64-bit configurations.  */
Index: gcc/testsuite/gcc.target/powerpc/vadsdu-3.c
===================================================================
--- gcc/testsuite/gcc.target/powerpc/vadsdu-3.c	(revision 237462)
+++ gcc/testsuite/gcc.target/powerpc/vadsdu-3.c	(working copy)
@@ -1,6 +1,7 @@ 
 /* { dg-do compile { target { powerpc*-*-* } } } */
 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */
-/* { dg-require-effective-target p9vector_hw } */
+/* { dg-require-effective-target powerpc_p9vector_ok } */
+/* { dg-skip-if "" { powerpc*-*-aix* } { "*" } { "" } } */
 /* { dg-options "-mcpu=power9" } */
 
 /* This test should succeed on both 32- and 64-bit configurations.  */
Index: gcc/testsuite/gcc.target/powerpc/vadsdu-4.c
===================================================================
--- gcc/testsuite/gcc.target/powerpc/vadsdu-4.c	(revision 237462)
+++ gcc/testsuite/gcc.target/powerpc/vadsdu-4.c	(working copy)
@@ -1,6 +1,7 @@ 
 /* { dg-do compile { target { powerpc*-*-* } } } */
 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */
-/* { dg-require-effective-target p9vector_hw } */
+/* { dg-require-effective-target powerpc_p9vector_ok } */
+/* { dg-skip-if "" { powerpc*-*-aix* } { "*" } { "" } } */
 /* { dg-options "-mcpu=power9" } */
 
 /* This test should succeed on both 32- and 64-bit configurations.  */
Index: gcc/testsuite/gcc.target/powerpc/vadsdu-5.c
===================================================================
--- gcc/testsuite/gcc.target/powerpc/vadsdu-5.c	(revision 237462)
+++ gcc/testsuite/gcc.target/powerpc/vadsdu-5.c	(working copy)
@@ -1,6 +1,7 @@ 
 /* { dg-do compile { target { powerpc*-*-* } } } */
 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */
-/* { dg-require-effective-target p9vector_hw } */
+/* { dg-require-effective-target powerpc_p9vector_ok } */
+/* { dg-skip-if "" { powerpc*-*-aix* } { "*" } { "" } } */
 /* { dg-options "-mcpu=power9" } */
 
 /* This test should succeed on both 32- and 64-bit configurations.  */
Index: gcc/testsuite/gcc.target/powerpc/vadsdub-1.c
===================================================================
--- gcc/testsuite/gcc.target/powerpc/vadsdub-1.c	(revision 237462)
+++ gcc/testsuite/gcc.target/powerpc/vadsdub-1.c	(working copy)
@@ -1,6 +1,7 @@ 
 /* { dg-do compile { target { powerpc*-*-* } } } */
 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */
-/* { dg-require-effective-target p9vector_hw } */
+/* { dg-require-effective-target powerpc_p9vector_ok } */
+/* { dg-skip-if "" { powerpc*-*-aix* } { "*" } { "" } } */
 /* { dg-options "-mcpu=power9" } */
 
 /* This test should succeed on both 32- and 64-bit configurations.  */
Index: gcc/testsuite/gcc.target/powerpc/vadsdub-2.c
===================================================================
--- gcc/testsuite/gcc.target/powerpc/vadsdub-2.c	(revision 237462)
+++ gcc/testsuite/gcc.target/powerpc/vadsdub-2.c	(working copy)
@@ -1,6 +1,7 @@ 
 /* { dg-do compile { target { powerpc*-*-* } } } */
 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */
-/* { dg-require-effective-target p9vector_hw } */
+/* { dg-require-effective-target powerpc_p9vector_ok } */
+/* { dg-skip-if "" { powerpc*-*-aix* } { "*" } { "" } } */
 /* { dg-options "-mcpu=power9" } */
 
 /* This test should succeed on both 32- and 64-bit configurations.  */
@@ -16,7 +17,7 @@  doAbsoluteDifferenceUnsigned (__vector unsigned ch
   source_1 = *p;
   source_2 = *q;
 
-  uc_result = __builtin_vec_vadub (source_1, source_2);
+  uc_result = vec_absdb (source_1, source_2);
   return uc_result;
 }
 
Index: gcc/testsuite/gcc.target/powerpc/vadsduh-1.c
===================================================================
--- gcc/testsuite/gcc.target/powerpc/vadsduh-1.c	(revision 237462)
+++ gcc/testsuite/gcc.target/powerpc/vadsduh-1.c	(working copy)
@@ -1,6 +1,7 @@ 
 /* { dg-do compile { target { powerpc*-*-* } } } */
 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */
-/* { dg-require-effective-target p9vector_hw } */
+/* { dg-require-effective-target powerpc_p9vector_ok } */
+/* { dg-skip-if "" { powerpc*-*-aix* } { "*" } { "" } } */
 /* { dg-options "-mcpu=power9" } */
 
 /* This test should succeed on both 32- and 64-bit configurations.  */
Index: gcc/testsuite/gcc.target/powerpc/vadsduh-2.c
===================================================================
--- gcc/testsuite/gcc.target/powerpc/vadsduh-2.c	(revision 237462)
+++ gcc/testsuite/gcc.target/powerpc/vadsduh-2.c	(working copy)
@@ -1,6 +1,7 @@ 
 /* { dg-do compile { target { powerpc*-*-* } } } */
 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */
-/* { dg-require-effective-target p9vector_hw } */
+/* { dg-require-effective-target powerpc_p9vector_ok } */
+/* { dg-skip-if "" { powerpc*-*-aix* } { "*" } { "" } } */
 /* { dg-options "-mcpu=power9" } */
 
 /* This test should succeed on both 32- and 64-bit configurations.  */
Index: gcc/testsuite/gcc.target/powerpc/vadsduw-1.c
===================================================================
--- gcc/testsuite/gcc.target/powerpc/vadsduw-1.c	(revision 237462)
+++ gcc/testsuite/gcc.target/powerpc/vadsduw-1.c	(working copy)
@@ -1,6 +1,7 @@ 
 /* { dg-do compile { target { powerpc*-*-* } } } */
 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */
-/* { dg-require-effective-target p9vector_hw } */
+/* { dg-require-effective-target powerpc_p9vector_ok } */
+/* { dg-skip-if "" { powerpc*-*-aix* } { "*" } { "" } } */
 /* { dg-options "-mcpu=power9" } */
 
 /* This test should succeed on both 32- and 64-bit configurations.  */
Index: gcc/testsuite/gcc.target/powerpc/vadsduw-2.c
===================================================================
--- gcc/testsuite/gcc.target/powerpc/vadsduw-2.c	(revision 237462)
+++ gcc/testsuite/gcc.target/powerpc/vadsduw-2.c	(working copy)
@@ -1,6 +1,7 @@ 
 /* { dg-do compile { target { powerpc*-*-* } } } */
 /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */
-/* { dg-require-effective-target p9vector_hw } */
+/* { dg-require-effective-target powerpc_p9vector_ok } */
+/* { dg-skip-if "" { powerpc*-*-aix* } { "*" } { "" } } */
 /* { dg-options "-mcpu=power9" } */
 
 /* This test should succeed on both 32- and 64-bit configurations.  */