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 <kel...@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. 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. */