public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Repost: [PATCH] Deal with prefixed loads/stores in tests, PR testsuite/100166
@ 2021-07-07 20:03 Michael Meissner
  2021-07-12 15:32 ` Bill Schmidt
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Michael Meissner @ 2021-07-07 20:03 UTC (permalink / raw)
  To: gcc-patches, Michael Meissner, Segher Boessenkool,
	David Edelsohn, Bill Schmidt, Peter Bergner, Will Schmidt

[PATCH] Deal with prefixed loads/stores in tests, PR testsuite/100166

This patch updates the various tests in the testsuite to treat plxv
and pstxv as being vector loads/stores.  This shows up if you run the
testsuite with a compiler configured with the option: --with-cpu=power10.

I have verified that these tests now all pass when I build and test a compiler
on a power10 system using --with-cpu=power10.  I have verified that they
continue to run on power9 little endian and power8 big endian systems.

Can I check this into the master branch?

2021-07-07  Michael Meissner  <meissner@linux.ibm.com>

gcc/testsuite/
	PR testsuite/100166
	* gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a-pr63175.c:
	* gcc.target/powerpc/fold-vec-load-builtin_vec_xl-char.c:
	* gcc.target/powerpc/fold-vec-load-builtin_vec_xl-double.c:
	* gcc.target/powerpc/fold-vec-load-builtin_vec_xl-float.c:
	* gcc.target/powerpc/fold-vec-load-builtin_vec_xl-int.c:
	* gcc.target/powerpc/fold-vec-load-builtin_vec_xl-longlong.c:
	* gcc.target/powerpc/fold-vec-load-builtin_vec_xl-short.c:
	* gcc.target/powerpc/fold-vec-load-vec_vsx_ld-char.c:
	* gcc.target/powerpc/fold-vec-load-vec_vsx_ld-double.c:
	* gcc.target/powerpc/fold-vec-load-vec_vsx_ld-float.c:
	* gcc.target/powerpc/fold-vec-load-vec_vsx_ld-int.c:
	* gcc.target/powerpc/fold-vec-load-vec_vsx_ld-longlong.c:
	* gcc.target/powerpc/fold-vec-load-vec_vsx_ld-short.c:
	* gcc.target/powerpc/fold-vec-load-vec_xl-char.c:
	* gcc.target/powerpc/fold-vec-load-vec_xl-double.c:
	* gcc.target/powerpc/fold-vec-load-vec_xl-float.c:
	* gcc.target/powerpc/fold-vec-load-vec_xl-int.c:
	* gcc.target/powerpc/fold-vec-load-vec_xl-longlong.c:
	* gcc.target/powerpc/fold-vec-load-vec_xl-short.c:
	* gcc.target/powerpc/fold-vec-splat-floatdouble.c:
	* gcc.target/powerpc/fold-vec-splat-longlong.c:
	* gcc.target/powerpc/fold-vec-store-builtin_vec_xst-char.c:
	* gcc.target/powerpc/fold-vec-store-builtin_vec_xst-double.c:
	* gcc.target/powerpc/fold-vec-store-builtin_vec_xst-float.c:
	* gcc.target/powerpc/fold-vec-store-builtin_vec_xst-int.c:
	* gcc.target/powerpc/fold-vec-store-builtin_vec_xst-longlong.c:
	* gcc.target/powerpc/fold-vec-store-builtin_vec_xst-short.c:
	* gcc.target/powerpc/fold-vec-store-vec_vsx_st-char.c:
	* gcc.target/powerpc/fold-vec-store-vec_vsx_st-double.c:
	* gcc.target/powerpc/fold-vec-store-vec_vsx_st-float.c:
	* gcc.target/powerpc/fold-vec-store-vec_vsx_st-int.c:
	* gcc.target/powerpc/fold-vec-store-vec_vsx_st-longlong.c:
	* gcc.target/powerpc/fold-vec-store-vec_vsx_st-short.c:
	* gcc.target/powerpc/fold-vec-store-vec_xst-char.c:
	* gcc.target/powerpc/fold-vec-store-vec_xst-double.c:
	* gcc.target/powerpc/fold-vec-store-vec_xst-float.c:
	* gcc.target/powerpc/fold-vec-store-vec_xst-int.c:
	* gcc.target/powerpc/fold-vec-store-vec_xst-longlong.c:
	* gcc.target/powerpc/fold-vec-store-vec_xst-short.c:
	* gcc.target/powerpc/lvsl-lvsr.c:
	* gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c:
	Update insn counts to account for power10 prefixed loads and
	stores.
---
 .../vect/costmodel/ppc/costmodel-bb-slp-9a-pr63175.c       | 2 +-
 .../gcc.target/powerpc/fold-vec-load-builtin_vec_xl-char.c | 2 +-
 .../powerpc/fold-vec-load-builtin_vec_xl-double.c          | 2 +-
 .../powerpc/fold-vec-load-builtin_vec_xl-float.c           | 2 +-
 .../gcc.target/powerpc/fold-vec-load-builtin_vec_xl-int.c  | 2 +-
 .../powerpc/fold-vec-load-builtin_vec_xl-longlong.c        | 2 +-
 .../powerpc/fold-vec-load-builtin_vec_xl-short.c           | 2 +-
 .../gcc.target/powerpc/fold-vec-load-vec_vsx_ld-char.c     | 2 +-
 .../gcc.target/powerpc/fold-vec-load-vec_vsx_ld-double.c   | 2 +-
 .../gcc.target/powerpc/fold-vec-load-vec_vsx_ld-float.c    | 2 +-
 .../gcc.target/powerpc/fold-vec-load-vec_vsx_ld-int.c      | 2 +-
 .../gcc.target/powerpc/fold-vec-load-vec_vsx_ld-longlong.c | 2 +-
 .../gcc.target/powerpc/fold-vec-load-vec_vsx_ld-short.c    | 2 +-
 .../gcc.target/powerpc/fold-vec-load-vec_xl-char.c         | 2 +-
 .../gcc.target/powerpc/fold-vec-load-vec_xl-double.c       | 2 +-
 .../gcc.target/powerpc/fold-vec-load-vec_xl-float.c        | 2 +-
 .../gcc.target/powerpc/fold-vec-load-vec_xl-int.c          | 2 +-
 .../gcc.target/powerpc/fold-vec-load-vec_xl-longlong.c     | 2 +-
 .../gcc.target/powerpc/fold-vec-load-vec_xl-short.c        | 2 +-
 .../gcc.target/powerpc/fold-vec-splat-floatdouble.c        | 7 ++++---
 gcc/testsuite/gcc.target/powerpc/fold-vec-splat-longlong.c | 2 +-
 .../powerpc/fold-vec-store-builtin_vec_xst-char.c          | 2 +-
 .../powerpc/fold-vec-store-builtin_vec_xst-double.c        | 2 +-
 .../powerpc/fold-vec-store-builtin_vec_xst-float.c         | 2 +-
 .../powerpc/fold-vec-store-builtin_vec_xst-int.c           | 2 +-
 .../powerpc/fold-vec-store-builtin_vec_xst-longlong.c      | 2 +-
 .../powerpc/fold-vec-store-builtin_vec_xst-short.c         | 2 +-
 .../gcc.target/powerpc/fold-vec-store-vec_vsx_st-char.c    | 2 +-
 .../gcc.target/powerpc/fold-vec-store-vec_vsx_st-double.c  | 2 +-
 .../gcc.target/powerpc/fold-vec-store-vec_vsx_st-float.c   | 2 +-
 .../gcc.target/powerpc/fold-vec-store-vec_vsx_st-int.c     | 2 +-
 .../powerpc/fold-vec-store-vec_vsx_st-longlong.c           | 2 +-
 .../gcc.target/powerpc/fold-vec-store-vec_vsx_st-short.c   | 2 +-
 .../gcc.target/powerpc/fold-vec-store-vec_xst-char.c       | 2 +-
 .../gcc.target/powerpc/fold-vec-store-vec_xst-double.c     | 2 +-
 .../gcc.target/powerpc/fold-vec-store-vec_xst-float.c      | 2 +-
 .../gcc.target/powerpc/fold-vec-store-vec_xst-int.c        | 2 +-
 .../gcc.target/powerpc/fold-vec-store-vec_xst-longlong.c   | 2 +-
 .../gcc.target/powerpc/fold-vec-store-vec_xst-short.c      | 2 +-
 gcc/testsuite/gcc.target/powerpc/lvsl-lvsr.c               | 2 +-
 gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c | 2 +-
 41 files changed, 44 insertions(+), 43 deletions(-)

diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a-pr63175.c b/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a-pr63175.c
index 246f38fa6d1..d9f173b521e 100644
--- a/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a-pr63175.c
+++ b/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a-pr63175.c
@@ -25,6 +25,6 @@ main1 (void)
    with no word loads (lw, lwu, lwz, lwzu, or their indexed forms)
    or word stores (stw, stwu, stwx, stwux, or their indexed forms).  */
 
-/* { dg-final { scan-assembler "\t(lvx|lxv|lvsr|stxv)" } } */
+/* { dg-final { scan-assembler "\t(lvx|lxv|lvsr|stxv|plxv|pstxv)" } } */
 /* { dg-final { scan-assembler-not "\tlwz?u?x? " { xfail { powerpc-ibm-aix* } } } } */
 /* { dg-final { scan-assembler-not "\tstwu?x? " } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-char.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-char.c
index 9b199c219bf..104710700c8 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-char.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-char.c
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned char, signed long long, vector unsigned
 BUILD_VAR_TEST( test11, vector unsigned char, signed int, vector unsigned char);
 BUILD_CST_TEST( test12, vector unsigned char, 8, vector unsigned char);
 
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-double.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-double.c
index c49dfe8d95b..bfb3cfbc081 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-double.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-double.c
@@ -28,4 +28,4 @@ BUILD_VAR_TEST( test4, vector double, signed long long, vector double);
 BUILD_VAR_TEST( test5, vector double, signed int, vector double);
 BUILD_CST_TEST( test6, vector double, 12, vector double);
 
-/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 6 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-float.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-float.c
index cdded361b12..373bead2e60 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-float.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-float.c
@@ -28,4 +28,4 @@ BUILD_VAR_TEST( test4, vector float, signed long long, vector float);
 BUILD_VAR_TEST( test5, vector float, signed int, vector float);
 BUILD_CST_TEST( test6, vector float, 12, vector float);
 
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 6 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-int.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-int.c
index bc18bebb1d6..744b96780f1 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-int.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-int.c
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned int, signed long long, vector unsigned i
 BUILD_VAR_TEST( test11, vector unsigned int, signed int, vector unsigned int);
 BUILD_CST_TEST( test12, vector unsigned int, 12, vector unsigned int);
 
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-longlong.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-longlong.c
index 66e953a2fbc..249b3eb8cff 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-longlong.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-longlong.c
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10,  vector unsigned long long, signed long long, vector uns
 BUILD_VAR_TEST( test11,  vector unsigned long long, signed int, vector unsigned long long);
 BUILD_CST_TEST( test12,  vector unsigned long long, 12, vector unsigned long long);
 
-/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-short.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-short.c
index 0ef1c590d94..997f6f89a9d 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-short.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-short.c
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10,  vector unsigned short, signed long long, vector unsigne
 BUILD_VAR_TEST( test11,  vector unsigned short, signed int, vector unsigned short);
 BUILD_CST_TEST( test12,  vector unsigned short, 12, vector unsigned short);
 
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-char.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-char.c
index 0b76341b1de..6aae43583f6 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-char.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-char.c
@@ -35,5 +35,5 @@ BUILD_VAR_TEST( test10,  vector unsigned char, signed long long, vector unsigned
 BUILD_VAR_TEST( test11,  vector unsigned char, signed int, vector unsigned char);
 BUILD_CST_TEST( test12,  vector unsigned char, 12, vector unsigned char);
 
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
 
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-double.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-double.c
index beb6d037a6b..b3f3b7fcd07 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-double.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-double.c
@@ -27,4 +27,4 @@ BUILD_VAR_TEST( test4, vector  double, int, vector double);
 BUILD_VAR_TEST( test5, vector  double, long long, vector double);
 BUILD_CST_TEST( test6, vector  double, 12, vector double);
 
-/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 6 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-float.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-float.c
index 5f9b6d35830..56cbe9ad102 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-float.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-float.c
@@ -27,4 +27,4 @@ BUILD_VAR_TEST( test5,  vector float, signed long long, vector float);
 BUILD_VAR_TEST( test7,  vector float, signed int, vector float);
 BUILD_CST_TEST( test8,  vector float, 12, vector float);
 
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 6 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-int.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-int.c
index a59f52fbb1e..2cde9f5b6dd 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-int.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-int.c
@@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10,  vector unsigned int, signed long long, vector unsigned
 BUILD_VAR_TEST( test11,  vector unsigned int, signed int, vector unsigned int);
 BUILD_CST_TEST( test12,  vector unsigned int, 12, vector unsigned int);
 
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-longlong.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-longlong.c
index 5c121fa26bd..cf2b7f9b5bc 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-longlong.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-longlong.c
@@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10,  vector unsigned long long, signed long long, vector uns
 BUILD_VAR_TEST( test11,  vector unsigned long long, signed int, vector unsigned long long);
 BUILD_CST_TEST( test12,  vector unsigned long long, 12, vector unsigned long long);
 
-/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-short.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-short.c
index 07154d811a1..cfc0e307d80 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-short.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-short.c
@@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10,  vector unsigned short, signed long long, vector unsigne
 BUILD_VAR_TEST( test11,  vector unsigned short, signed int, vector unsigned short);
 BUILD_CST_TEST( test12,  vector unsigned short, 12, vector unsigned short);
 
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-char.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-char.c
index 04c4f31deef..7281b3cca7a 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-char.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-char.c
@@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10,  vector unsigned char, signed long long, unsigned char);
 BUILD_VAR_TEST( test11,  vector unsigned char, signed int, unsigned char);
 BUILD_CST_TEST( test12,  vector unsigned char, 12, unsigned char);
 
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-double.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-double.c
index 1958d65be89..3f3d985c45b 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-double.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-double.c
@@ -28,4 +28,4 @@ BUILD_VAR_TEST( test4,  vector double, signed long long, double);
 BUILD_VAR_TEST( test5,  vector double, signed int, double);
 BUILD_CST_TEST( test6,  vector double, 12, double);
 
-/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 6 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-float.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-float.c
index 5578138d2f1..eafe3053771 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-float.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-float.c
@@ -27,4 +27,4 @@ BUILD_VAR_TEST( test4,  vector float, signed long long, vector float);
 BUILD_VAR_TEST( test5,  vector float, signed int, vector float);
 BUILD_CST_TEST( test6,  vector float, 12, vector float);
 
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 6 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-int.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-int.c
index 8ba880ea61f..a2267218af9 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-int.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-int.c
@@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10,  vector unsigned int, signed long long, vector unsigned
 BUILD_VAR_TEST( test11,  vector unsigned int, signed int, vector unsigned int);
 BUILD_CST_TEST( test12,  vector unsigned int, 12, vector unsigned int);
 
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-longlong.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-longlong.c
index 6df3c79fd1b..f2e5469ab74 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-longlong.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-longlong.c
@@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10,  vector unsigned long long, signed long long, vector uns
 BUILD_VAR_TEST( test11,  vector unsigned long long, signed int, vector unsigned long long);
 BUILD_CST_TEST( test12,  vector unsigned long long, 12, vector unsigned long long);
 
-/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-short.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-short.c
index c5088ab177e..2d64b4f11d2 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-short.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-short.c
@@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10,  vector unsigned short, signed long long, vector unsigne
 BUILD_VAR_TEST( test11,  vector unsigned short, signed int, vector unsigned short);
 BUILD_CST_TEST( test12,  vector unsigned short, 12, vector unsigned short);
 
-/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-splat-floatdouble.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-splat-floatdouble.c
index ab396967c3d..76619177388 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-splat-floatdouble.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-splat-floatdouble.c
@@ -20,11 +20,12 @@ vector double testd_01 (vector double x) { return vec_splat (x, 0b00001); }
 vector double test_dc ()
 { const vector double y = { 3.0, 5.0 }; return vec_splat (y, 0b00010); }
 
-/* If the source vector is a known constant, we will generate a load.  */
-/* { dg-final { scan-assembler-times {\mlvx\M|\mlxvd2x\M|\mlxv\M} 2 } } */
+/* If the source vector is a known constant, we will generate a load or possibly
+   XXSPLTIW.  */
+/* { dg-final { scan-assembler-times {\mlvx\M|\mlxvd2x\M|\mlxv\M|\mplxv\M|\mxxspltiw\M} 2 } } */
 
 /* For float types, we generate a splat.  */
-/* { dg-final { scan-assembler-times "vspltw|xxspltw" 3 } } */
+/* { dg-final { scan-assembler-times {\mvspltw\M|\mxxspltw\M} 3 } } */
 
 /* For double types, we will generate xxpermdi instructions.  */
 /* { dg-final { scan-assembler-times "xxpermdi" 3 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-splat-longlong.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-splat-longlong.c
index 4fa06c85ecc..b95b987abce 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-splat-longlong.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-splat-longlong.c
@@ -25,7 +25,7 @@ vector signed long long test_sll () { const vector signed long long y = {34, 45}
 vector unsigned long long test_ull () { const vector unsigned long long y = {56, 67}; return vec_splat (y, 0b00010); }
 
 /* Assorted load instructions for the initialization with known constants. */
-/* { dg-final { scan-assembler-times {\mlvx\M|\mlxvd2x\M|\mlxv\M} 3 } } */
+/* { dg-final { scan-assembler-times {\mlvx\M|\mlxvd2x\M|\mlxv\M|\mplxv\M} 3 } } */
 
 /* xxpermdi for vec_splat of long long vectors.
  At the time of this writing, the number of xxpermdi instructions
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-char.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-char.c
index d1100d01a83..162563caed4 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-char.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-char.c
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10,  vector unsigned char, signed long long, vector unsigned
 BUILD_VAR_TEST( test11,  vector unsigned char, signed int, vector unsigned char );
 BUILD_CST_TEST( test12,  vector unsigned char, 12, vector unsigned char );
 
-/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-double.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-double.c
index 74e34c307fd..c42a720d361 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-double.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-double.c
@@ -28,4 +28,4 @@ BUILD_VAR_TEST( test4,  vector double, signed long long, double );
 BUILD_VAR_TEST( test5,  vector double, signed int, double );
 BUILD_CST_TEST( test6,  vector double, 12, double );
 
-/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 6 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-float.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-float.c
index db6bd331829..b200c47fd2f 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-float.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-float.c
@@ -28,4 +28,4 @@ BUILD_VAR_TEST( test4,  vector float, signed long long, vector float );
 BUILD_VAR_TEST( test5,  vector float, signed int, vector float );
 BUILD_CST_TEST( test6,  vector float, 12, vector float );
 
-/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 6 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-int.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-int.c
index 2a328897cbb..d9848820b3a 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-int.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-int.c
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned int, signed long long, vector unsigned i
 BUILD_VAR_TEST( test11, vector unsigned int, signed int, vector unsigned int );
 BUILD_CST_TEST( test12, vector unsigned int, 12, vector unsigned int );
 
-/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-longlong.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-longlong.c
index a62ca516f95..bb72d9b2a99 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-longlong.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-longlong.c
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10,  vector unsigned long long, signed long long, vector uns
 BUILD_VAR_TEST( test11,  vector unsigned long long, signed int, vector unsigned long long );
 BUILD_CST_TEST( test12,  vector unsigned long long, 12, vector unsigned long long );
 
-/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-short.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-short.c
index 2b1e1c0b90e..f4dbb702583 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-short.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-short.c
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned short, signed long long, vector unsigned
 BUILD_VAR_TEST( test11, vector unsigned short, signed int, vector unsigned short );
 BUILD_CST_TEST( test12, vector unsigned short, 12, vector unsigned short );
 
-/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-char.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-char.c
index 82bb891a9c9..ae5cf8ef0b4 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-char.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-char.c
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned char, signed long long, vector unsigned
 BUILD_VAR_TEST( test11, vector unsigned char, signed int, vector unsigned char );
 BUILD_CST_TEST( test12, vector unsigned char, 12, vector unsigned char );
 
-/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-double.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-double.c
index 34772cfe135..1360f4d4ce9 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-double.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-double.c
@@ -28,4 +28,4 @@ BUILD_VAR_TEST( test7,  vector double, signed long long, vector double );
 BUILD_VAR_TEST( test8,  vector double, signed int, vector double );
 BUILD_CST_TEST( test9,  vector double, 12, vector double );
 
-/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 6 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-float.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-float.c
index cf13f2a7ec1..1b70f2a80f7 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-float.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-float.c
@@ -28,4 +28,4 @@ BUILD_VAR_TEST( test7,  vector float, signed long long, vector float );
 BUILD_VAR_TEST( test8,  vector float, signed int, vector float );
 BUILD_CST_TEST( test9,  vector float, 12, vector float );
 
-/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 6 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-int.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-int.c
index a9e189ddadd..4e4a499eaad 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-int.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-int.c
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned int, signed long long, vector unsigned i
 BUILD_VAR_TEST( test11, vector unsigned int, signed int, vector unsigned int );
 BUILD_CST_TEST( test12, vector unsigned int, 12, vector unsigned int );
 
-/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-longlong.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-longlong.c
index f50e2b93da1..b57c126b9ab 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-longlong.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-longlong.c
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned long long, signed long long, vector unsi
 BUILD_VAR_TEST( test11, vector unsigned long long, signed int, vector unsigned long long );
 BUILD_CST_TEST( test12, vector unsigned long long, 12, vector unsigned long long );
 
-/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-short.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-short.c
index 0f8a93ad371..7593f425258 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-short.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-short.c
@@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned short, signed long long, vector unsigned
 BUILD_VAR_TEST( test11, vector unsigned short, signed int, vector unsigned short );
 BUILD_CST_TEST( test12, vector unsigned short, 12, vector unsigned short );
 
-/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-char.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-char.c
index 4f5930aa909..fdd2ed5648d 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-char.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-char.c
@@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10, vector unsigned char, signed long long, vector unsigned
 BUILD_VAR_TEST( test11, vector unsigned char, signed int, vector unsigned char );
 BUILD_CST_TEST( test12, vector unsigned char, 12, vector unsigned char );
 
-/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-double.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-double.c
index 511d5fe7299..62f8552fdde 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-double.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-double.c
@@ -27,4 +27,4 @@ BUILD_VAR_TEST( test7,  vector double, signed long long, vector double );
 BUILD_VAR_TEST( test8,  vector double, signed int, vector double );
 BUILD_CST_TEST( test9,  vector double, 12, vector double );
 
-/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 6 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-float.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-float.c
index 13e6cb6e7af..ad15a5a2b51 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-float.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-float.c
@@ -27,4 +27,4 @@ BUILD_VAR_TEST( test7,  vector float, signed long long, vector float );
 BUILD_VAR_TEST( test8,  vector float, signed int, vector float );
 BUILD_CST_TEST( test9,  vector float, 12, vector float );
 
-/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 6 } } */
+/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 6 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-int.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-int.c
index fd6ff78509b..abe93dfb235 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-int.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-int.c
@@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10, vector unsigned int, signed long long, vector unsigned i
 BUILD_VAR_TEST( test11, vector unsigned int, signed int, vector unsigned int );
 BUILD_CST_TEST( test12, vector unsigned int, 12, vector unsigned int );
 
-/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-longlong.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-longlong.c
index a669481b0d8..6859593bf0a 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-longlong.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-longlong.c
@@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10, vector unsigned long long, signed long long, vector unsi
 BUILD_VAR_TEST( test11, vector unsigned long long, signed int, vector unsigned long long );
 BUILD_CST_TEST( test12,  vector unsigned long long, 12, vector unsigned long long );
 
-/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-short.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-short.c
index 78eae57fb23..6c54873db20 100644
--- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-short.c
+++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-short.c
@@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10, vector unsigned short, signed long long, vector unsigned
 BUILD_VAR_TEST( test11, vector unsigned short, signed int, vector unsigned short );
 BUILD_CST_TEST( test12, vector unsigned short, 12, vector unsigned short );
 
-/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
+/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/lvsl-lvsr.c b/gcc/testsuite/gcc.target/powerpc/lvsl-lvsr.c
index 93843c09f35..26aadbcbc63 100644
--- a/gcc/testsuite/gcc.target/powerpc/lvsl-lvsr.c
+++ b/gcc/testsuite/gcc.target/powerpc/lvsl-lvsr.c
@@ -6,7 +6,7 @@
 /* { dg-options "-O0 -Wno-deprecated" } */
 /* { dg-final { scan-assembler-times "lvsl" 2 } } */
 /* { dg-final { scan-assembler-times "lvsr" 2 } } */
-/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxv\M} 2 } } */
+/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mp?lxv\M} 2 } } */
 /* { dg-final { scan-assembler-times {\m(?:v|xx)permr?\M} 2 } } */
 
 
diff --git a/gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c b/gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c
index 1269fe635c6..d5ed700b9bc 100644
--- a/gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c
+++ b/gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c
@@ -30,5 +30,5 @@ vector signed long long splats4(void)
 
 /* { dg-final { scan-assembler-times {\mvspltis[bhw]\M} 0 } } */
 /* { dg-final { scan-assembler-times {\mvsl[bhwd]\M} 0 } } */
-/* { dg-final { scan-assembler-times {\mlvx\M|\mlxv\M|\mlxvd2x\M} 2 } } */
+/* { dg-final { scan-assembler-times {\mlvx\M|\mlxv\M|\mlxvd2x\M|\mplvx\M} 2 } } */
 
-- 
2.31.1


-- 
Michael Meissner, IBM
IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA
email: meissner@linux.ibm.com, phone: +1 (978) 899-4797

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Repost: [PATCH] Deal with prefixed loads/stores in tests, PR testsuite/100166
  2021-07-07 20:03 Repost: [PATCH] Deal with prefixed loads/stores in tests, PR testsuite/100166 Michael Meissner
@ 2021-07-12 15:32 ` Bill Schmidt
  2021-07-12 20:46   ` Segher Boessenkool
  2021-07-13  4:19   ` Michael Meissner
  2021-07-12 19:32 ` David Edelsohn
  2021-07-12 20:52 ` Segher Boessenkool
  2 siblings, 2 replies; 6+ messages in thread
From: Bill Schmidt @ 2021-07-12 15:32 UTC (permalink / raw)
  To: Michael Meissner, gcc-patches, Segher Boessenkool,
	David Edelsohn, Peter Bergner, Will Schmidt

Hi Mike,

On 7/7/21 3:03 PM, Michael Meissner wrote:
> [PATCH] Deal with prefixed loads/stores in tests, PR testsuite/100166
>
> This patch updates the various tests in the testsuite to treat plxv
> and pstxv as being vector loads/stores.  This shows up if you run the
> testsuite with a compiler configured with the option: --with-cpu=power10.
>
> I have verified that these tests now all pass when I build and test a compiler
> on a power10 system using --with-cpu=power10.  I have verified that they
> continue to run on power9 little endian and power8 big endian systems.
>
> Can I check this into the master branch?
>
> 2021-07-07  Michael Meissner  <meissner@linux.ibm.com>
>
> gcc/testsuite/
> 	PR testsuite/100166
> 	* gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a-pr63175.c:
Please drop the gcc/testsuite/ part from this line.
> 	* gcc.target/powerpc/fold-vec-load-builtin_vec_xl-char.c:
> 	* gcc.target/powerpc/fold-vec-load-builtin_vec_xl-double.c:
> 	* gcc.target/powerpc/fold-vec-load-builtin_vec_xl-float.c:
> 	* gcc.target/powerpc/fold-vec-load-builtin_vec_xl-int.c:
> 	* gcc.target/powerpc/fold-vec-load-builtin_vec_xl-longlong.c:
> 	* gcc.target/powerpc/fold-vec-load-builtin_vec_xl-short.c:
> 	* gcc.target/powerpc/fold-vec-load-vec_vsx_ld-char.c:
> 	* gcc.target/powerpc/fold-vec-load-vec_vsx_ld-double.c:
> 	* gcc.target/powerpc/fold-vec-load-vec_vsx_ld-float.c:
> 	* gcc.target/powerpc/fold-vec-load-vec_vsx_ld-int.c:
> 	* gcc.target/powerpc/fold-vec-load-vec_vsx_ld-longlong.c:
> 	* gcc.target/powerpc/fold-vec-load-vec_vsx_ld-short.c:
> 	* gcc.target/powerpc/fold-vec-load-vec_xl-char.c:
> 	* gcc.target/powerpc/fold-vec-load-vec_xl-double.c:
> 	* gcc.target/powerpc/fold-vec-load-vec_xl-float.c:
> 	* gcc.target/powerpc/fold-vec-load-vec_xl-int.c:
> 	* gcc.target/powerpc/fold-vec-load-vec_xl-longlong.c:
> 	* gcc.target/powerpc/fold-vec-load-vec_xl-short.c:
> 	* gcc.target/powerpc/fold-vec-splat-floatdouble.c:
> 	* gcc.target/powerpc/fold-vec-splat-longlong.c:
> 	* gcc.target/powerpc/fold-vec-store-builtin_vec_xst-char.c:
> 	* gcc.target/powerpc/fold-vec-store-builtin_vec_xst-double.c:
> 	* gcc.target/powerpc/fold-vec-store-builtin_vec_xst-float.c:
> 	* gcc.target/powerpc/fold-vec-store-builtin_vec_xst-int.c:
> 	* gcc.target/powerpc/fold-vec-store-builtin_vec_xst-longlong.c:
> 	* gcc.target/powerpc/fold-vec-store-builtin_vec_xst-short.c:
> 	* gcc.target/powerpc/fold-vec-store-vec_vsx_st-char.c:
> 	* gcc.target/powerpc/fold-vec-store-vec_vsx_st-double.c:
> 	* gcc.target/powerpc/fold-vec-store-vec_vsx_st-float.c:
> 	* gcc.target/powerpc/fold-vec-store-vec_vsx_st-int.c:
> 	* gcc.target/powerpc/fold-vec-store-vec_vsx_st-longlong.c:
> 	* gcc.target/powerpc/fold-vec-store-vec_vsx_st-short.c:
> 	* gcc.target/powerpc/fold-vec-store-vec_xst-char.c:
> 	* gcc.target/powerpc/fold-vec-store-vec_xst-double.c:
> 	* gcc.target/powerpc/fold-vec-store-vec_xst-float.c:
> 	* gcc.target/powerpc/fold-vec-store-vec_xst-int.c:
> 	* gcc.target/powerpc/fold-vec-store-vec_xst-longlong.c:
> 	* gcc.target/powerpc/fold-vec-store-vec_xst-short.c:
> 	* gcc.target/powerpc/lvsl-lvsr.c:
> 	* gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c:
> 	Update insn counts to account for power10 prefixed loads and
> 	stores.
Also here.
> ---
>   .../vect/costmodel/ppc/costmodel-bb-slp-9a-pr63175.c       | 2 +-
>   .../gcc.target/powerpc/fold-vec-load-builtin_vec_xl-char.c | 2 +-
>   .../powerpc/fold-vec-load-builtin_vec_xl-double.c          | 2 +-
>   .../powerpc/fold-vec-load-builtin_vec_xl-float.c           | 2 +-
>   .../gcc.target/powerpc/fold-vec-load-builtin_vec_xl-int.c  | 2 +-
>   .../powerpc/fold-vec-load-builtin_vec_xl-longlong.c        | 2 +-
>   .../powerpc/fold-vec-load-builtin_vec_xl-short.c           | 2 +-
>   .../gcc.target/powerpc/fold-vec-load-vec_vsx_ld-char.c     | 2 +-
>   .../gcc.target/powerpc/fold-vec-load-vec_vsx_ld-double.c   | 2 +-
>   .../gcc.target/powerpc/fold-vec-load-vec_vsx_ld-float.c    | 2 +-
>   .../gcc.target/powerpc/fold-vec-load-vec_vsx_ld-int.c      | 2 +-
>   .../gcc.target/powerpc/fold-vec-load-vec_vsx_ld-longlong.c | 2 +-
>   .../gcc.target/powerpc/fold-vec-load-vec_vsx_ld-short.c    | 2 +-
>   .../gcc.target/powerpc/fold-vec-load-vec_xl-char.c         | 2 +-
>   .../gcc.target/powerpc/fold-vec-load-vec_xl-double.c       | 2 +-
>   .../gcc.target/powerpc/fold-vec-load-vec_xl-float.c        | 2 +-
>   .../gcc.target/powerpc/fold-vec-load-vec_xl-int.c          | 2 +-
>   .../gcc.target/powerpc/fold-vec-load-vec_xl-longlong.c     | 2 +-
>   .../gcc.target/powerpc/fold-vec-load-vec_xl-short.c        | 2 +-
>   .../gcc.target/powerpc/fold-vec-splat-floatdouble.c        | 7 ++++---
>   gcc/testsuite/gcc.target/powerpc/fold-vec-splat-longlong.c | 2 +-
>   .../powerpc/fold-vec-store-builtin_vec_xst-char.c          | 2 +-
>   .../powerpc/fold-vec-store-builtin_vec_xst-double.c        | 2 +-
>   .../powerpc/fold-vec-store-builtin_vec_xst-float.c         | 2 +-
>   .../powerpc/fold-vec-store-builtin_vec_xst-int.c           | 2 +-
>   .../powerpc/fold-vec-store-builtin_vec_xst-longlong.c      | 2 +-
>   .../powerpc/fold-vec-store-builtin_vec_xst-short.c         | 2 +-
>   .../gcc.target/powerpc/fold-vec-store-vec_vsx_st-char.c    | 2 +-
>   .../gcc.target/powerpc/fold-vec-store-vec_vsx_st-double.c  | 2 +-
>   .../gcc.target/powerpc/fold-vec-store-vec_vsx_st-float.c   | 2 +-
>   .../gcc.target/powerpc/fold-vec-store-vec_vsx_st-int.c     | 2 +-
>   .../powerpc/fold-vec-store-vec_vsx_st-longlong.c           | 2 +-
>   .../gcc.target/powerpc/fold-vec-store-vec_vsx_st-short.c   | 2 +-
>   .../gcc.target/powerpc/fold-vec-store-vec_xst-char.c       | 2 +-
>   .../gcc.target/powerpc/fold-vec-store-vec_xst-double.c     | 2 +-
>   .../gcc.target/powerpc/fold-vec-store-vec_xst-float.c      | 2 +-
>   .../gcc.target/powerpc/fold-vec-store-vec_xst-int.c        | 2 +-
>   .../gcc.target/powerpc/fold-vec-store-vec_xst-longlong.c   | 2 +-
>   .../gcc.target/powerpc/fold-vec-store-vec_xst-short.c      | 2 +-
>   gcc/testsuite/gcc.target/powerpc/lvsl-lvsr.c               | 2 +-
>   gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c | 2 +-
>   41 files changed, 44 insertions(+), 43 deletions(-)
>
> diff --git a/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a-pr63175.c b/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a-pr63175.c
> index 246f38fa6d1..d9f173b521e 100644
> --- a/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a-pr63175.c
> +++ b/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a-pr63175.c
> @@ -25,6 +25,6 @@ main1 (void)
>      with no word loads (lw, lwu, lwz, lwzu, or their indexed forms)
>      or word stores (stw, stwu, stwx, stwux, or their indexed forms).  */
>   
> -/* { dg-final { scan-assembler "\t(lvx|lxv|lvsr|stxv)" } } */
> +/* { dg-final { scan-assembler "\t(lvx|lxv|lvsr|stxv|plxv|pstxv)" } } */
>   /* { dg-final { scan-assembler-not "\tlwz?u?x? " { xfail { powerpc-ibm-aix* } } } } */
>   /* { dg-final { scan-assembler-not "\tstwu?x? " } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-char.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-char.c
> index 9b199c219bf..104710700c8 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-char.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-char.c
> @@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned char, signed long long, vector unsigned
>   BUILD_VAR_TEST( test11, vector unsigned char, signed int, vector unsigned char);
>   BUILD_CST_TEST( test12, vector unsigned char, 8, vector unsigned char);
>   
> -/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-double.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-double.c
> index c49dfe8d95b..bfb3cfbc081 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-double.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-double.c
> @@ -28,4 +28,4 @@ BUILD_VAR_TEST( test4, vector double, signed long long, vector double);
>   BUILD_VAR_TEST( test5, vector double, signed int, vector double);
>   BUILD_CST_TEST( test6, vector double, 12, vector double);
>   
> -/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M} 6 } } */
> +/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 6 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-float.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-float.c
> index cdded361b12..373bead2e60 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-float.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-float.c
> @@ -28,4 +28,4 @@ BUILD_VAR_TEST( test4, vector float, signed long long, vector float);
>   BUILD_VAR_TEST( test5, vector float, signed int, vector float);
>   BUILD_CST_TEST( test6, vector float, 12, vector float);
>   
> -/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 6 } } */
> +/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 6 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-int.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-int.c
> index bc18bebb1d6..744b96780f1 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-int.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-int.c
> @@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned int, signed long long, vector unsigned i
>   BUILD_VAR_TEST( test11, vector unsigned int, signed int, vector unsigned int);
>   BUILD_CST_TEST( test12, vector unsigned int, 12, vector unsigned int);
>   
> -/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-longlong.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-longlong.c
> index 66e953a2fbc..249b3eb8cff 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-longlong.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-longlong.c
> @@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10,  vector unsigned long long, signed long long, vector uns
>   BUILD_VAR_TEST( test11,  vector unsigned long long, signed int, vector unsigned long long);
>   BUILD_CST_TEST( test12,  vector unsigned long long, 12, vector unsigned long long);
>   
> -/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-short.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-short.c
> index 0ef1c590d94..997f6f89a9d 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-short.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-builtin_vec_xl-short.c
> @@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10,  vector unsigned short, signed long long, vector unsigne
>   BUILD_VAR_TEST( test11,  vector unsigned short, signed int, vector unsigned short);
>   BUILD_CST_TEST( test12,  vector unsigned short, 12, vector unsigned short);
>   
> -/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-char.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-char.c
> index 0b76341b1de..6aae43583f6 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-char.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-char.c
> @@ -35,5 +35,5 @@ BUILD_VAR_TEST( test10,  vector unsigned char, signed long long, vector unsigned
>   BUILD_VAR_TEST( test11,  vector unsigned char, signed int, vector unsigned char);
>   BUILD_CST_TEST( test12,  vector unsigned char, 12, vector unsigned char);
>   
> -/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
>   
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-double.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-double.c
> index beb6d037a6b..b3f3b7fcd07 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-double.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-double.c
> @@ -27,4 +27,4 @@ BUILD_VAR_TEST( test4, vector  double, int, vector double);
>   BUILD_VAR_TEST( test5, vector  double, long long, vector double);
>   BUILD_CST_TEST( test6, vector  double, 12, vector double);
>   
> -/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M} 6 } } */
> +/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 6 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-float.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-float.c
> index 5f9b6d35830..56cbe9ad102 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-float.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-float.c
> @@ -27,4 +27,4 @@ BUILD_VAR_TEST( test5,  vector float, signed long long, vector float);
>   BUILD_VAR_TEST( test7,  vector float, signed int, vector float);
>   BUILD_CST_TEST( test8,  vector float, 12, vector float);
>   
> -/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 6 } } */
> +/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 6 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-int.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-int.c
> index a59f52fbb1e..2cde9f5b6dd 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-int.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-int.c
> @@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10,  vector unsigned int, signed long long, vector unsigned
>   BUILD_VAR_TEST( test11,  vector unsigned int, signed int, vector unsigned int);
>   BUILD_CST_TEST( test12,  vector unsigned int, 12, vector unsigned int);
>   
> -/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-longlong.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-longlong.c
> index 5c121fa26bd..cf2b7f9b5bc 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-longlong.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-longlong.c
> @@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10,  vector unsigned long long, signed long long, vector uns
>   BUILD_VAR_TEST( test11,  vector unsigned long long, signed int, vector unsigned long long);
>   BUILD_CST_TEST( test12,  vector unsigned long long, 12, vector unsigned long long);
>   
> -/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-short.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-short.c
> index 07154d811a1..cfc0e307d80 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-short.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_vsx_ld-short.c
> @@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10,  vector unsigned short, signed long long, vector unsigne
>   BUILD_VAR_TEST( test11,  vector unsigned short, signed int, vector unsigned short);
>   BUILD_CST_TEST( test12,  vector unsigned short, 12, vector unsigned short);
>   
> -/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-char.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-char.c
> index 04c4f31deef..7281b3cca7a 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-char.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-char.c
> @@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10,  vector unsigned char, signed long long, unsigned char);
>   BUILD_VAR_TEST( test11,  vector unsigned char, signed int, unsigned char);
>   BUILD_CST_TEST( test12,  vector unsigned char, 12, unsigned char);
>   
> -/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-double.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-double.c
> index 1958d65be89..3f3d985c45b 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-double.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-double.c
> @@ -28,4 +28,4 @@ BUILD_VAR_TEST( test4,  vector double, signed long long, double);
>   BUILD_VAR_TEST( test5,  vector double, signed int, double);
>   BUILD_CST_TEST( test6,  vector double, 12, double);
>   
> -/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M} 6 } } */
> +/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 6 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-float.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-float.c
> index 5578138d2f1..eafe3053771 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-float.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-float.c
> @@ -27,4 +27,4 @@ BUILD_VAR_TEST( test4,  vector float, signed long long, vector float);
>   BUILD_VAR_TEST( test5,  vector float, signed int, vector float);
>   BUILD_CST_TEST( test6,  vector float, 12, vector float);
>   
> -/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 6 } } */
> +/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 6 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-int.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-int.c
> index 8ba880ea61f..a2267218af9 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-int.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-int.c
> @@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10,  vector unsigned int, signed long long, vector unsigned
>   BUILD_VAR_TEST( test11,  vector unsigned int, signed int, vector unsigned int);
>   BUILD_CST_TEST( test12,  vector unsigned int, 12, vector unsigned int);
>   
> -/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-longlong.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-longlong.c
> index 6df3c79fd1b..f2e5469ab74 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-longlong.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-longlong.c
> @@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10,  vector unsigned long long, signed long long, vector uns
>   BUILD_VAR_TEST( test11,  vector unsigned long long, signed int, vector unsigned long long);
>   BUILD_CST_TEST( test12,  vector unsigned long long, 12, vector unsigned long long);
>   
> -/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-short.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-short.c
> index c5088ab177e..2d64b4f11d2 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-short.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-load-vec_xl-short.c
> @@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10,  vector unsigned short, signed long long, vector unsigne
>   BUILD_VAR_TEST( test11,  vector unsigned short, signed int, vector unsigned short);
>   BUILD_CST_TEST( test12,  vector unsigned short, 12, vector unsigned short);
>   
> -/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-splat-floatdouble.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-splat-floatdouble.c
> index ab396967c3d..76619177388 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-splat-floatdouble.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-splat-floatdouble.c
> @@ -20,11 +20,12 @@ vector double testd_01 (vector double x) { return vec_splat (x, 0b00001); }
>   vector double test_dc ()
>   { const vector double y = { 3.0, 5.0 }; return vec_splat (y, 0b00010); }
>   
> -/* If the source vector is a known constant, we will generate a load.  */
> -/* { dg-final { scan-assembler-times {\mlvx\M|\mlxvd2x\M|\mlxv\M} 2 } } */
> +/* If the source vector is a known constant, we will generate a load or possibly
> +   XXSPLTIW.  */
> +/* { dg-final { scan-assembler-times {\mlvx\M|\mlxvd2x\M|\mlxv\M|\mplxv\M|\mxxspltiw\M} 2 } } */
>   
>   /* For float types, we generate a splat.  */
> -/* { dg-final { scan-assembler-times "vspltw|xxspltw" 3 } } */
> +/* { dg-final { scan-assembler-times {\mvspltw\M|\mxxspltw\M} 3 } } */
>   
>   /* For double types, we will generate xxpermdi instructions.  */
>   /* { dg-final { scan-assembler-times "xxpermdi" 3 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-splat-longlong.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-splat-longlong.c
> index 4fa06c85ecc..b95b987abce 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-splat-longlong.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-splat-longlong.c
> @@ -25,7 +25,7 @@ vector signed long long test_sll () { const vector signed long long y = {34, 45}
>   vector unsigned long long test_ull () { const vector unsigned long long y = {56, 67}; return vec_splat (y, 0b00010); }
>   
>   /* Assorted load instructions for the initialization with known constants. */
> -/* { dg-final { scan-assembler-times {\mlvx\M|\mlxvd2x\M|\mlxv\M} 3 } } */
> +/* { dg-final { scan-assembler-times {\mlvx\M|\mlxvd2x\M|\mlxv\M|\mplxv\M} 3 } } */
>   
>   /* xxpermdi for vec_splat of long long vectors.
>    At the time of this writing, the number of xxpermdi instructions
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-char.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-char.c
> index d1100d01a83..162563caed4 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-char.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-char.c
> @@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10,  vector unsigned char, signed long long, vector unsigned
>   BUILD_VAR_TEST( test11,  vector unsigned char, signed int, vector unsigned char );
>   BUILD_CST_TEST( test12,  vector unsigned char, 12, vector unsigned char );
>   
> -/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-double.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-double.c
> index 74e34c307fd..c42a720d361 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-double.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-double.c
> @@ -28,4 +28,4 @@ BUILD_VAR_TEST( test4,  vector double, signed long long, double );
>   BUILD_VAR_TEST( test5,  vector double, signed int, double );
>   BUILD_CST_TEST( test6,  vector double, 12, double );
>   
> -/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 6 } } */
> +/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 6 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-float.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-float.c
> index db6bd331829..b200c47fd2f 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-float.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-float.c
> @@ -28,4 +28,4 @@ BUILD_VAR_TEST( test4,  vector float, signed long long, vector float );
>   BUILD_VAR_TEST( test5,  vector float, signed int, vector float );
>   BUILD_CST_TEST( test6,  vector float, 12, vector float );
>   
> -/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 6 } } */
> +/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 6 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-int.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-int.c
> index 2a328897cbb..d9848820b3a 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-int.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-int.c
> @@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned int, signed long long, vector unsigned i
>   BUILD_VAR_TEST( test11, vector unsigned int, signed int, vector unsigned int );
>   BUILD_CST_TEST( test12, vector unsigned int, 12, vector unsigned int );
>   
> -/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-longlong.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-longlong.c
> index a62ca516f95..bb72d9b2a99 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-longlong.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-longlong.c
> @@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10,  vector unsigned long long, signed long long, vector uns
>   BUILD_VAR_TEST( test11,  vector unsigned long long, signed int, vector unsigned long long );
>   BUILD_CST_TEST( test12,  vector unsigned long long, 12, vector unsigned long long );
>   
> -/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-short.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-short.c
> index 2b1e1c0b90e..f4dbb702583 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-short.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-builtin_vec_xst-short.c
> @@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned short, signed long long, vector unsigned
>   BUILD_VAR_TEST( test11, vector unsigned short, signed int, vector unsigned short );
>   BUILD_CST_TEST( test12, vector unsigned short, 12, vector unsigned short );
>   
> -/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-char.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-char.c
> index 82bb891a9c9..ae5cf8ef0b4 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-char.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-char.c
> @@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned char, signed long long, vector unsigned
>   BUILD_VAR_TEST( test11, vector unsigned char, signed int, vector unsigned char );
>   BUILD_CST_TEST( test12, vector unsigned char, 12, vector unsigned char );
>   
> -/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-double.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-double.c
> index 34772cfe135..1360f4d4ce9 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-double.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-double.c
> @@ -28,4 +28,4 @@ BUILD_VAR_TEST( test7,  vector double, signed long long, vector double );
>   BUILD_VAR_TEST( test8,  vector double, signed int, vector double );
>   BUILD_CST_TEST( test9,  vector double, 12, vector double );
>   
> -/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 6 } } */
> +/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 6 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-float.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-float.c
> index cf13f2a7ec1..1b70f2a80f7 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-float.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-float.c
> @@ -28,4 +28,4 @@ BUILD_VAR_TEST( test7,  vector float, signed long long, vector float );
>   BUILD_VAR_TEST( test8,  vector float, signed int, vector float );
>   BUILD_CST_TEST( test9,  vector float, 12, vector float );
>   
> -/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 6 } } */
> +/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 6 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-int.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-int.c
> index a9e189ddadd..4e4a499eaad 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-int.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-int.c
> @@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned int, signed long long, vector unsigned i
>   BUILD_VAR_TEST( test11, vector unsigned int, signed int, vector unsigned int );
>   BUILD_CST_TEST( test12, vector unsigned int, 12, vector unsigned int );
>   
> -/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-longlong.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-longlong.c
> index f50e2b93da1..b57c126b9ab 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-longlong.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-longlong.c
> @@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned long long, signed long long, vector unsi
>   BUILD_VAR_TEST( test11, vector unsigned long long, signed int, vector unsigned long long );
>   BUILD_CST_TEST( test12, vector unsigned long long, 12, vector unsigned long long );
>   
> -/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-short.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-short.c
> index 0f8a93ad371..7593f425258 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-short.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_vsx_st-short.c
> @@ -36,4 +36,4 @@ BUILD_VAR_TEST( test10, vector unsigned short, signed long long, vector unsigned
>   BUILD_VAR_TEST( test11, vector unsigned short, signed int, vector unsigned short );
>   BUILD_CST_TEST( test12, vector unsigned short, 12, vector unsigned short );
>   
> -/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-char.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-char.c
> index 4f5930aa909..fdd2ed5648d 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-char.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-char.c
> @@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10, vector unsigned char, signed long long, vector unsigned
>   BUILD_VAR_TEST( test11, vector unsigned char, signed int, vector unsigned char );
>   BUILD_CST_TEST( test12, vector unsigned char, 12, vector unsigned char );
>   
> -/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-double.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-double.c
> index 511d5fe7299..62f8552fdde 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-double.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-double.c
> @@ -27,4 +27,4 @@ BUILD_VAR_TEST( test7,  vector double, signed long long, vector double );
>   BUILD_VAR_TEST( test8,  vector double, signed int, vector double );
>   BUILD_CST_TEST( test9,  vector double, 12, vector double );
>   
> -/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 6 } } */
> +/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 6 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-float.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-float.c
> index 13e6cb6e7af..ad15a5a2b51 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-float.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-float.c
> @@ -27,4 +27,4 @@ BUILD_VAR_TEST( test7,  vector float, signed long long, vector float );
>   BUILD_VAR_TEST( test8,  vector float, signed int, vector float );
>   BUILD_CST_TEST( test9,  vector float, 12, vector float );
>   
> -/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 6 } } */
> +/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 6 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-int.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-int.c
> index fd6ff78509b..abe93dfb235 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-int.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-int.c
> @@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10, vector unsigned int, signed long long, vector unsigned i
>   BUILD_VAR_TEST( test11, vector unsigned int, signed int, vector unsigned int );
>   BUILD_CST_TEST( test12, vector unsigned int, 12, vector unsigned int );
>   
> -/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-longlong.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-longlong.c
> index a669481b0d8..6859593bf0a 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-longlong.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-longlong.c
> @@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10, vector unsigned long long, signed long long, vector unsi
>   BUILD_VAR_TEST( test11, vector unsigned long long, signed int, vector unsigned long long );
>   BUILD_CST_TEST( test12,  vector unsigned long long, 12, vector unsigned long long );
>   
> -/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-short.c b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-short.c
> index 78eae57fb23..6c54873db20 100644
> --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-short.c
> +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-store-vec_xst-short.c
> @@ -35,4 +35,4 @@ BUILD_VAR_TEST( test10, vector unsigned short, signed long long, vector unsigned
>   BUILD_VAR_TEST( test11, vector unsigned short, signed int, vector unsigned short );
>   BUILD_CST_TEST( test12, vector unsigned short, 12, vector unsigned short );
>   
> -/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M} 12 } } */
> +/* { dg-final { scan-assembler-times {\mstxvw4x\M|\mstxvd2x\M|\mstxvx\M|\mstvx\M|\mpstxv\M} 12 } } */
> diff --git a/gcc/testsuite/gcc.target/powerpc/lvsl-lvsr.c b/gcc/testsuite/gcc.target/powerpc/lvsl-lvsr.c
> index 93843c09f35..26aadbcbc63 100644
> --- a/gcc/testsuite/gcc.target/powerpc/lvsl-lvsr.c
> +++ b/gcc/testsuite/gcc.target/powerpc/lvsl-lvsr.c
> @@ -6,7 +6,7 @@
>   /* { dg-options "-O0 -Wno-deprecated" } */
>   /* { dg-final { scan-assembler-times "lvsl" 2 } } */
>   /* { dg-final { scan-assembler-times "lvsr" 2 } } */
> -/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxv\M} 2 } } */
> +/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mp?lxv\M} 2 } } */
>   /* { dg-final { scan-assembler-times {\m(?:v|xx)permr?\M} 2 } } */
>   
>   
> diff --git a/gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c b/gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c
> index 1269fe635c6..d5ed700b9bc 100644
> --- a/gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c
> +++ b/gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c
> @@ -30,5 +30,5 @@ vector signed long long splats4(void)
>   
>   /* { dg-final { scan-assembler-times {\mvspltis[bhw]\M} 0 } } */
>   /* { dg-final { scan-assembler-times {\mvsl[bhwd]\M} 0 } } */
> -/* { dg-final { scan-assembler-times {\mlvx\M|\mlxv\M|\mlxvd2x\M} 2 } } */
> +/* { dg-final { scan-assembler-times {\mlvx\M|\mlxv\M|\mlxvd2x\M|\mplvx\M} 2 } } */

Oopsie.  I think you mean "plxv" for this one.

Otherwise LGTM.  I can't approve, but recommend approval with those changes.

Thanks,
Bill

>   

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Repost: [PATCH] Deal with prefixed loads/stores in tests, PR testsuite/100166
  2021-07-07 20:03 Repost: [PATCH] Deal with prefixed loads/stores in tests, PR testsuite/100166 Michael Meissner
  2021-07-12 15:32 ` Bill Schmidt
@ 2021-07-12 19:32 ` David Edelsohn
  2021-07-12 20:52 ` Segher Boessenkool
  2 siblings, 0 replies; 6+ messages in thread
From: David Edelsohn @ 2021-07-12 19:32 UTC (permalink / raw)
  To: Michael Meissner, GCC Patches, Segher Boessenkool, Bill Schmidt,
	Peter Bergner, Will Schmidt

On Wed, Jul 7, 2021 at 4:03 PM Michael Meissner <meissner@linux.ibm.com> wrote:
>
> [PATCH] Deal with prefixed loads/stores in tests, PR testsuite/100166
>
> This patch updates the various tests in the testsuite to treat plxv
> and pstxv as being vector loads/stores.  This shows up if you run the
> testsuite with a compiler configured with the option: --with-cpu=power10.
>
> I have verified that these tests now all pass when I build and test a compiler
> on a power10 system using --with-cpu=power10.  I have verified that they
> continue to run on power9 little endian and power8 big endian systems.
>
> Can I check this into the master branch?
>
> 2021-07-07  Michael Meissner  <meissner@linux.ibm.com>
>
> gcc/testsuite/
>         PR testsuite/100166
>         * gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a-pr63175.c:
>         * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-char.c:
>         * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-double.c:
>         * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-float.c:
>         * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-int.c:
>         * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-longlong.c:
>         * gcc.target/powerpc/fold-vec-load-builtin_vec_xl-short.c:
>         * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-char.c:
>         * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-double.c:
>         * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-float.c:
>         * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-int.c:
>         * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-longlong.c:
>         * gcc.target/powerpc/fold-vec-load-vec_vsx_ld-short.c:
>         * gcc.target/powerpc/fold-vec-load-vec_xl-char.c:
>         * gcc.target/powerpc/fold-vec-load-vec_xl-double.c:
>         * gcc.target/powerpc/fold-vec-load-vec_xl-float.c:
>         * gcc.target/powerpc/fold-vec-load-vec_xl-int.c:
>         * gcc.target/powerpc/fold-vec-load-vec_xl-longlong.c:
>         * gcc.target/powerpc/fold-vec-load-vec_xl-short.c:
>         * gcc.target/powerpc/fold-vec-splat-floatdouble.c:
>         * gcc.target/powerpc/fold-vec-splat-longlong.c:
>         * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-char.c:
>         * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-double.c:
>         * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-float.c:
>         * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-int.c:
>         * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-longlong.c:
>         * gcc.target/powerpc/fold-vec-store-builtin_vec_xst-short.c:
>         * gcc.target/powerpc/fold-vec-store-vec_vsx_st-char.c:
>         * gcc.target/powerpc/fold-vec-store-vec_vsx_st-double.c:
>         * gcc.target/powerpc/fold-vec-store-vec_vsx_st-float.c:
>         * gcc.target/powerpc/fold-vec-store-vec_vsx_st-int.c:
>         * gcc.target/powerpc/fold-vec-store-vec_vsx_st-longlong.c:
>         * gcc.target/powerpc/fold-vec-store-vec_vsx_st-short.c:
>         * gcc.target/powerpc/fold-vec-store-vec_xst-char.c:
>         * gcc.target/powerpc/fold-vec-store-vec_xst-double.c:
>         * gcc.target/powerpc/fold-vec-store-vec_xst-float.c:
>         * gcc.target/powerpc/fold-vec-store-vec_xst-int.c:
>         * gcc.target/powerpc/fold-vec-store-vec_xst-longlong.c:
>         * gcc.target/powerpc/fold-vec-store-vec_xst-short.c:
>         * gcc.target/powerpc/lvsl-lvsr.c:
>         * gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c:
>         Update insn counts to account for power10 prefixed loads and
>         stores.

This is okay, modulo the one plvx -> plxv typo mentioned by Bill.

Thanks, David

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Repost: [PATCH] Deal with prefixed loads/stores in tests, PR testsuite/100166
  2021-07-12 15:32 ` Bill Schmidt
@ 2021-07-12 20:46   ` Segher Boessenkool
  2021-07-13  4:19   ` Michael Meissner
  1 sibling, 0 replies; 6+ messages in thread
From: Segher Boessenkool @ 2021-07-12 20:46 UTC (permalink / raw)
  To: Bill Schmidt
  Cc: Michael Meissner, gcc-patches, David Edelsohn, Peter Bergner,
	Will Schmidt

On Mon, Jul 12, 2021 at 10:32:47AM -0500, Bill Schmidt wrote:
> >	* gcc.target/powerpc/fold-vec-load-builtin_vec_xl-char.c:

There should be something after the ":".  If you want to say the same
thing for many files, you can say somethin like "ditto" for all but the
first.

> >-/* { dg-final { scan-assembler "\t(lvx|lxv|lvsr|stxv)" } } */
> >+/* { dg-final { scan-assembler "\t(lvx|lxv|lvsr|stxv|plxv|pstxv)" } } */

Please use p?lxv etc.

> >-/* { dg-final { scan-assembler-times 
> >{\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 12 } } */
> >+/* { dg-final { scan-assembler-times 
> >{\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 12 } } */

Same here.  p?lxvx? I suppose.  Unless there is a reason plain lxv
would be bad here?

> >-/* { dg-final { scan-assembler-times {\mlxvd2x\M|\mlxvx\M|\mlvx\M} 6 } } 
> >*/
> >+/* { dg-final { scan-assembler-times 
> >{\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 6 } } */

Maybe you even want

/* { dg-final { scan-assembler-times {\m(?:p?lxv|lvx\M)} 6 } } */

or such?

> >-/* { dg-final { scan-assembler-times 
> >{\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M} 6 } } */
> >+/* { dg-final { scan-assembler-times 
> >{\mlxvw4x\M|\mlxvd2x\M|\mlxvx\M|\mlvx\M|\mplxv\M} 6 } } */

(Something caused these lines to be wrapped btw, please fix that in the
mail config -- not sure where it happened)

> >--- a/gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c
> >+++ b/gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c
> >@@ -30,5 +30,5 @@ vector signed long long splats4(void)
> >  
> >  /* { dg-final { scan-assembler-times {\mvspltis[bhw]\M} 0 } } */
> >  /* { dg-final { scan-assembler-times {\mvsl[bhwd]\M} 0 } } */
> >-/* { dg-final { scan-assembler-times {\mlvx\M|\mlxv\M|\mlxvd2x\M} 2 } } */
> >+/* { dg-final { scan-assembler-times 
> >{\mlvx\M|\mlxv\M|\mlxvd2x\M|\mplvx\M} 2 } } */
> 
> Oopsie.  I think you mean "plxv" for this one.

So why did testing not catch it?

Thanks for the review Bill!  :-)


Segher

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Repost: [PATCH] Deal with prefixed loads/stores in tests, PR testsuite/100166
  2021-07-07 20:03 Repost: [PATCH] Deal with prefixed loads/stores in tests, PR testsuite/100166 Michael Meissner
  2021-07-12 15:32 ` Bill Schmidt
  2021-07-12 19:32 ` David Edelsohn
@ 2021-07-12 20:52 ` Segher Boessenkool
  2 siblings, 0 replies; 6+ messages in thread
From: Segher Boessenkool @ 2021-07-12 20:52 UTC (permalink / raw)
  To: Michael Meissner, gcc-patches, David Edelsohn, Bill Schmidt,
	Peter Bergner, Will Schmidt

On Wed, Jul 07, 2021 at 04:03:20PM -0400, Michael Meissner wrote:
> This patch updates the various tests in the testsuite to treat plxv
> and pstxv as being vector loads/stores.

(That is a not a very good description)

The reason it is hard to review this patch is there was no rationale
whatsoever for any of these changes, and the approach is different for
every case as well.  This means every case needs separate checking
whether it is correct, which is more work than doing the changes in the
first place.

Mechanically just changing things so the test cases pass is **wrong**.


Segher

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Repost: [PATCH] Deal with prefixed loads/stores in tests, PR testsuite/100166
  2021-07-12 15:32 ` Bill Schmidt
  2021-07-12 20:46   ` Segher Boessenkool
@ 2021-07-13  4:19   ` Michael Meissner
  1 sibling, 0 replies; 6+ messages in thread
From: Michael Meissner @ 2021-07-13  4:19 UTC (permalink / raw)
  To: Bill Schmidt
  Cc: Michael Meissner, gcc-patches, Segher Boessenkool,
	David Edelsohn, Peter Bergner, Will Schmidt

On Mon, Jul 12, 2021 at 10:32:47AM -0500, Bill Schmidt wrote:
> Hi Mike,
> >diff --git a/gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c b/gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c
> >index 1269fe635c6..d5ed700b9bc 100644
> >--- a/gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c
> >+++ b/gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c
> >@@ -30,5 +30,5 @@ vector signed long long splats4(void)
> >  /* { dg-final { scan-assembler-times {\mvspltis[bhw]\M} 0 } } */
> >  /* { dg-final { scan-assembler-times {\mvsl[bhwd]\M} 0 } } */
> >-/* { dg-final { scan-assembler-times {\mlvx\M|\mlxv\M|\mlxvd2x\M} 2 } } */
> >+/* { dg-final { scan-assembler-times {\mlvx\M|\mlxv\M|\mlxvd2x\M|\mplvx\M} 2 } } */
> 
> Oopsie.  I think you mean "plxv" for this one.
> 
> Otherwise LGTM.  I can't approve, but recommend approval with those changes.

Yes I did.  Good catch. 

-- 
Michael Meissner, IBM
IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA
email: meissner@linux.ibm.com, phone: +1 (978) 899-4797

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-07-13  4:19 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-07 20:03 Repost: [PATCH] Deal with prefixed loads/stores in tests, PR testsuite/100166 Michael Meissner
2021-07-12 15:32 ` Bill Schmidt
2021-07-12 20:46   ` Segher Boessenkool
2021-07-13  4:19   ` Michael Meissner
2021-07-12 19:32 ` David Edelsohn
2021-07-12 20:52 ` Segher Boessenkool

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).