[3/3] Adjust MMA tests to account for no store vector pair.
Commit Message
[PATCH 3/3] Adjust MMA tests to account for no store vector pair.
In changing the default for generating the store vector pair instructions,
I had to adjust several of the MMA tests to remove checking for these
instructions. Mostly I just deleted the scan-assembler lines checking for
stxvp. In two of the tests, I added the -mstore-vector-pair option since
the point of the test was to check for specific cases with store vector
pair instructions.
I have built bootstrap compilers and run the regression tests on three
different systems:
1) Little endian power10 using the --with-cpu=power10 option.
2) Little endian power9 using the --with-cpu=power9 option.
3) Big endian power8 using the --with-cpu=power8 option. On this system,
both 64-bit and 32-bit code generation was tested.
There were no regressions in the runs. Can I check this patch into the
trunk? If there are no changes needed for the backports, can I check this
code into the active branches after a burn-in period?
2022-06-06 Michael Meissner <meissner@linux.ibm.com>
gcc/testsuite/
* gcc.target/powerpc/mma-builtin-1.c: Eliminate checking for store
vector pair instructions.
* gcc.target/powerpc/mma-builtin-10-pair.c: Likewise.
* gcc.target/powerpc/mma-builtin-10-quit.c: Likewise.
* gcc.target/powerpc/mma-builtin-2.c: Likewise.
* gcc.target/powerpc/mma-builtin-3.c: Likewise.
* gcc.target/powerpc/mma-builtin-4.c: Likewise.
* gcc.target/powerpc/mma-builtin-5.c: Likewise.
* gcc.target/powerpc/mma-builtin-6.c: Likewise.
* gcc.target/powerpc/mma-builtin-7.c: Likewise.
* gcc.target/powerpc/mma-builtin-9.c: Likewise.
* gcc.target/powerpc/mma-builtin-8.c: Add -mstore-vector-pair.
* gcc.target/powerpc/pr102976.c: Likewise.
---
gcc/testsuite/gcc.target/powerpc/mma-builtin-1.c | 1 -
gcc/testsuite/gcc.target/powerpc/mma-builtin-10-pair.c | 2 --
gcc/testsuite/gcc.target/powerpc/mma-builtin-10-quad.c | 2 --
gcc/testsuite/gcc.target/powerpc/mma-builtin-2.c | 1 -
gcc/testsuite/gcc.target/powerpc/mma-builtin-3.c | 1 -
gcc/testsuite/gcc.target/powerpc/mma-builtin-4.c | 2 --
gcc/testsuite/gcc.target/powerpc/mma-builtin-5.c | 2 --
gcc/testsuite/gcc.target/powerpc/mma-builtin-6.c | 1 -
gcc/testsuite/gcc.target/powerpc/mma-builtin-7.c | 2 --
gcc/testsuite/gcc.target/powerpc/mma-builtin-8.c | 2 +-
gcc/testsuite/gcc.target/powerpc/mma-builtin-9.c | 2 --
gcc/testsuite/gcc.target/powerpc/pr102976.c | 6 +++++-
12 files changed, 6 insertions(+), 18 deletions(-)
Comments
On Mon, 2022-06-06 at 20:56 -0400, Michael Meissner wrote:
> [PATCH 3/3] Adjust MMA tests to account for no store vector pair.
>
> In changing the default for generating the store vector pair instructions,
> I had to adjust several of the MMA tests to remove checking for these
> instructions. Mostly I just deleted the scan-assembler lines checking for
> stxvp. In two of the tests, I added the -mstore-vector-pair option since
> the point of the test was to check for specific cases with store vector
> pair instructions.
>
> I have built bootstrap compilers and run the regression tests on three
> different systems:
>
> 1) Little endian power10 using the --with-cpu=power10 option.
>
> 2) Little endian power9 using the --with-cpu=power9 option.
>
> 3) Big endian power8 using the --with-cpu=power8 option. On this system,
> both 64-bit and 32-bit code generation was tested.
>
> There were no regressions in the runs. Can I check this patch into the
> trunk? If there are no changes needed for the backports, can I check this
> code into the active branches after a burn-in period?
>
> 2022-06-06 Michael Meissner <meissner@linux.ibm.com>
>
> gcc/testsuite/
>
> * gcc.target/powerpc/mma-builtin-1.c: Eliminate checking for store
> vector pair instructions.
> * gcc.target/powerpc/mma-builtin-10-pair.c: Likewise.
> * gcc.target/powerpc/mma-builtin-10-quit.c: Likewise.
> * gcc.target/powerpc/mma-builtin-2.c: Likewise.
> * gcc.target/powerpc/mma-builtin-3.c: Likewise.
> * gcc.target/powerpc/mma-builtin-4.c: Likewise.
> * gcc.target/powerpc/mma-builtin-5.c: Likewise.
> * gcc.target/powerpc/mma-builtin-6.c: Likewise.
> * gcc.target/powerpc/mma-builtin-7.c: Likewise.
> * gcc.target/powerpc/mma-builtin-9.c: Likewise.
> * gcc.target/powerpc/mma-builtin-8.c: Add -mstore-vector-pair.
> * gcc.target/powerpc/pr102976.c: Likewise.
> ---
> gcc/testsuite/gcc.target/powerpc/mma-builtin-1.c | 1 -
> gcc/testsuite/gcc.target/powerpc/mma-builtin-10-pair.c | 2 --
> gcc/testsuite/gcc.target/powerpc/mma-builtin-10-quad.c | 2 --
> gcc/testsuite/gcc.target/powerpc/mma-builtin-2.c | 1 -
> gcc/testsuite/gcc.target/powerpc/mma-builtin-3.c | 1 -
> gcc/testsuite/gcc.target/powerpc/mma-builtin-4.c | 2 --
> gcc/testsuite/gcc.target/powerpc/mma-builtin-5.c | 2 --
> gcc/testsuite/gcc.target/powerpc/mma-builtin-6.c | 1 -
> gcc/testsuite/gcc.target/powerpc/mma-builtin-7.c | 2 --
> gcc/testsuite/gcc.target/powerpc/mma-builtin-8.c | 2 +-
> gcc/testsuite/gcc.target/powerpc/mma-builtin-9.c | 2 --
> gcc/testsuite/gcc.target/powerpc/pr102976.c | 6 +++++-
> 12 files changed, 6 insertions(+), 18 deletions(-)
>
> diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-1.c b/gcc/testsuite/gcc.target/powerpc/mma-builtin-1.c
> index 69ee826e1be..47b45b00403 100644
> --- a/gcc/testsuite/gcc.target/powerpc/mma-builtin-1.c
> +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-1.c
> @@ -260,7 +260,6 @@ foo13b (__vector_quad *dst, __vector_quad *src, vec_t *vec)
>
> /* { dg-final { scan-assembler-times {\mlxv\M} 40 } } */
> /* { dg-final { scan-assembler-times {\mlxvp\M} 12 } } */
> -/* { dg-final { scan-assembler-times {\mstxvp\M} 40 } } */
> /* { dg-final { scan-assembler-times {\mxxmfacc\M} 20 } } */
> /* { dg-final { scan-assembler-times {\mxxmtacc\M} 6 } } */
> /* { dg-final { scan-assembler-times {\mxvbf16ger2\M} 1 } } */
<snip>
This all seems straightforward. LGTM, thanks.
-Will
@@ -260,7 +260,6 @@ foo13b (__vector_quad *dst, __vector_quad *src, vec_t *vec)
/* { dg-final { scan-assembler-times {\mlxv\M} 40 } } */
/* { dg-final { scan-assembler-times {\mlxvp\M} 12 } } */
-/* { dg-final { scan-assembler-times {\mstxvp\M} 40 } } */
/* { dg-final { scan-assembler-times {\mxxmfacc\M} 20 } } */
/* { dg-final { scan-assembler-times {\mxxmtacc\M} 6 } } */
/* { dg-final { scan-assembler-times {\mxvbf16ger2\M} 1 } } */
@@ -16,6 +16,4 @@ foo (__vector_pair *dst, vec_t *src)
}
/* { dg-final { scan-assembler-not {\mlxv\M} } } */
-/* { dg-final { scan-assembler-not {\mstxv\M} } } */
/* { dg-final { scan-assembler-times {\mlxvp\M} 1 } } */
-/* { dg-final { scan-assembler-times {\mstxvp\M} 2 } } */
@@ -16,8 +16,6 @@ foo (__vector_quad *dst, vec_t *src)
}
/* { dg-final { scan-assembler-not {\mlxv\M} } } */
-/* { dg-final { scan-assembler-not {\mstxv\M} } } */
/* { dg-final { scan-assembler-times {\mlxvp\M} 4 } } */
/* { dg-final { scan-assembler-times {\mxxmtacc\M} 2 } } */
/* { dg-final { scan-assembler-times {\mxxmfacc\M} 2 } } */
-/* { dg-final { scan-assembler-times {\mstxvp\M} 4 } } */
@@ -59,7 +59,6 @@ foo3 (__vector_quad *dst, __vector_quad *src, vec_t *vec, __vector_pair *pvecp)
/* { dg-final { scan-assembler-times {\mxxmtacc\M} 2 } } */
/* { dg-final { scan-assembler-times {\mlxv\M} 4 } } */
/* { dg-final { scan-assembler-times {\mlxvp\M} 8 } } */
-/* { dg-final { scan-assembler-times {\mstxvp\M} 8 } } */
/* { dg-final { scan-assembler-times {\mxvf64ger\M} 1 } } */
/* { dg-final { scan-assembler-times {\mxvf64gerpp\M} 1 } } */
/* { dg-final { scan-assembler-times {\mxvf64gerpn\M} 1 } } */
@@ -26,6 +26,5 @@ foo1 (vec_t *vec)
/* { dg-final { scan-assembler-times {\mlxv\M} 2 } } */
/* { dg-final { scan-assembler-times {\mstxv\M} 2 } } */
/* { dg-final { scan-assembler-not {\mlxvp\M} } } */
-/* { dg-final { scan-assembler-not {\mstxvp\M} } } */
/* { dg-final { scan-assembler-times {\mxvcvspbf16\M} 1 } } */
/* { dg-final { scan-assembler-times {\mxvcvbf16spn\M} 1 } } */
@@ -68,6 +68,4 @@ bar2 (vec_t *dst, __vector_pair *src)
/* { dg-final { scan-assembler-times {\mlxv\M} 6 } } */
/* { dg-final { scan-assembler-times {\mlxvp\M} 2 } } */
-/* { dg-final { scan-assembler-times {\mstxv\M} 4 } } */
-/* { dg-final { scan-assembler-times {\mstxvp\M} 3 } } */
@@ -41,7 +41,5 @@ bar (vec_t *dst, __vector_quad *src)
/* { dg-final { scan-assembler-times {\mlxv\M} 8 } } */
/* { dg-final { scan-assembler-times {\mlxvp\M} 2 } } */
-/* { dg-final { scan-assembler-times {\mstxv\M} 4 } } */
-/* { dg-final { scan-assembler-times {\mstxvp\M} 4 } } */
/* { dg-final { scan-assembler-times {\mxxmfacc\M} 3 } } */
/* { dg-final { scan-assembler-times {\mxxmtacc\M} 3 } } */
@@ -17,4 +17,3 @@ foo (__vector_quad *dst)
/* { dg-final { scan-assembler-not {\mxxmtacc\M} } } */
/* { dg-final { scan-assembler-times {\mxxsetaccz\M} 2 } } */
/* { dg-final { scan-assembler-times {\mxxmfacc\M} 2 } } */
-/* { dg-final { scan-assembler-times {\mstxvp\M} 4 } } */
@@ -19,8 +19,6 @@ foo (__vector_pair *dst, __vector_pair *src, long idx)
#endif
/* { dg-final { scan-assembler-not {\mlxv\M} } } */
-/* { dg-final { scan-assembler-not {\mstxv\M} } } */
/* { dg-final { scan-assembler-times {\mlxvp\M} 3 } } */
/* { dg-final { scan-assembler-times {\mlxvpx\M} 1 } } */
/* { dg-final { scan-assembler-times {\mplxvp\M} 1 } } */
-/* { dg-final { scan-assembler-times {\mstxvp\M} 5 } } */
@@ -1,6 +1,6 @@
/* { dg-do compile } */
/* { dg-require-effective-target power10_ok } */
-/* { dg-options "-mdejagnu-cpu=power10 -O2" } */
+/* { dg-options "-mdejagnu-cpu=power10 -O2 -mstore-vector-pair" } */
void
foo (__vector_pair *dst, __vector_pair *src, long idx)
@@ -23,6 +23,4 @@ bar (__vector_quad *dst, vec_t *src)
}
/* { dg-final { scan-assembler-not {\mlxv\M} } } */
-/* { dg-final { scan-assembler-not {\mstxv\M} } } */
/* { dg-final { scan-assembler-times {\mlxvp\M} 3 } } */
-/* { dg-final { scan-assembler-times {\mstxvp\M} 3 } } */
@@ -1,7 +1,11 @@
/* { dg-require-effective-target power10_ok } */
-/* { dg-options "-O2 -mdejagnu-cpu=power10" } */
+/* { dg-options "-O2 -mdejagnu-cpu=power10 -mstore-vector-pair" } */
#include <altivec.h>
+
+/* The test relies on store vector pair being generated. Otherwise, it
+ will generate 2 stxv instructions. */
+
void
bug (__vector_pair *dst)
{