Message ID | 20201030083014.GE15956@bubble.grove.modra.org |
---|---|
State | New |
Headers | show |
Series | [RS6000] Adjust testcases for power10 instructions V3 | expand |
Ping. On Tue, Jan 12, 2021 at 02:03:18PM +1030, Alan Modra wrote: > Ping > https://gcc.gnu.org/pipermail/gcc-patches/2020-October/557587.html > > On Fri, Oct 30, 2020 at 07:00:14PM +1030, Alan Modra wrote: > > And now waking up to what you meant by the lvsl-lvsr.c \s comment, > > plus a revised ppc-ne0-1.c scan-assembler. > > > > I think this covers all previous review corrections. Regression tested > > powerpc64-linux power7 and powerpc64le-linux power10. OK? > > > > * lib/target-supports.exp (check_effective_target_has_arch_pwr10): New. > > * gcc.dg/pr56727-2.c, > > 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-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.target/powerpc/ppc-eq0-1.c, > > gcc.target/powerpc/ppc-ne0-1.c, > > gcc.target/powerpc/pr86731-fwrapv-longlong.c: Match power10 insns. > > * gcc.target/powerpc/lvsl-lvsr.c: Avoid file name match. > > > > diff --git a/gcc/testsuite/gcc.dg/pr56727-2.c b/gcc/testsuite/gcc.dg/pr56727-2.c > > index c54369ed25e..f055116772a 100644 > > --- a/gcc/testsuite/gcc.dg/pr56727-2.c > > +++ b/gcc/testsuite/gcc.dg/pr56727-2.c > > @@ -18,4 +18,4 @@ void h () > > > > /* { dg-final { scan-assembler "@(PLT|plt)" { target i?86-*-* x86_64-*-* } } } */ > > /* { dg-final { scan-assembler "@(PLT|plt)" { target { powerpc*-*-linux* && ilp32 } } } } */ > > -/* { dg-final { scan-assembler "bl f\n\\s*nop" { target { powerpc*-*-linux* && lp64 } } } } */ > > +/* { dg-final { scan-assembler {bl f(\n\s*nop|@notoc\n)} { target { powerpc*-*-linux* && lp64 } } } } */ > > 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..1cff4550f28 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|p?lxv|lvsr|p?stxv)" } } */ > > /* { 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..867b4f00e76 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,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 {\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..9b0f839ded4 100644 > > --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-splat-floatdouble.c > > +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-splat-floatdouble.c > > @@ -21,7 +21,7 @@ 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 } } */ > > +/* { dg-final { scan-assembler-times {\mlvx\M|\mlxvd2x\M|\mp?lxv\M} 2 } } */ > > > > /* For float types, we generate a splat. */ > > /* { dg-final { scan-assembler-times "vspltw|xxspltw" 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..079e9509fd2 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|\mp?lxv\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-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..45cf2c8b352 100644 > > --- a/gcc/testsuite/gcc.target/powerpc/lvsl-lvsr.c > > +++ b/gcc/testsuite/gcc.target/powerpc/lvsl-lvsr.c > > @@ -1,12 +1,12 @@ > > /* Test expected code generation for lvsl and lvsr on little endian. > > - Note that lvsl and lvsr are each produced once, but the filename > > - causes them to appear twice in the file. */ > > + Note that \s is used in the lvsl/lvsr matches so we don't match > > + on '.file "lvsl-lvsr.c"'. */ > > > > /* { dg-do compile { target { powerpc64le-*-* } } } */ > > /* { 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 {\slvsl\s} 1 } } */ > > +/* { dg-final { scan-assembler-times {\slvsr\s} 1 } } */ > > +/* { 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/ppc-eq0-1.c b/gcc/testsuite/gcc.target/powerpc/ppc-eq0-1.c > > index 496a6e340c0..63799a6c8a8 100644 > > --- a/gcc/testsuite/gcc.target/powerpc/ppc-eq0-1.c > > +++ b/gcc/testsuite/gcc.target/powerpc/ppc-eq0-1.c > > @@ -7,4 +7,4 @@ int foo(int x) > > return x == 0; > > } > > > > -/* { dg-final { scan-assembler "cntlzw|isel" } } */ > > +/* { dg-final { scan-assembler {\mcntlzw\M|\misel\M|\msetbc\M} } } */ > > diff --git a/gcc/testsuite/gcc.target/powerpc/ppc-ne0-1.c b/gcc/testsuite/gcc.target/powerpc/ppc-ne0-1.c > > index 63c4b6087df..dd9597a68fa 100644 > > --- a/gcc/testsuite/gcc.target/powerpc/ppc-ne0-1.c > > +++ b/gcc/testsuite/gcc.target/powerpc/ppc-ne0-1.c > > @@ -2,9 +2,11 @@ > > /* { dg-do compile } */ > > /* { dg-options "-O2 -mno-isel" } */ > > > > -/* { dg-final { scan-assembler-times "addic" 4 } } */ > > -/* { dg-final { scan-assembler-times "subfe" 1 } } */ > > -/* { dg-final { scan-assembler-times "addze" 3 } } */ > > +/* { dg-final { scan-assembler-times {\maddic\M} 4 { target { ! has_arch_pwr10 } } } } */ > > +/* { dg-final { scan-assembler-times {\msubfe\M} 1 { target { ! has_arch_pwr10 } } } } */ > > +/* { dg-final { scan-assembler-times {\maddic\M} 3 { target { has_arch_pwr10 } } } } */ > > +/* { dg-final { scan-assembler-times {\msetbcr\M} 1 { target { has_arch_pwr10 } } } } */ > > +/* { dg-final { scan-assembler-times {\maddze\M} 3 } } */ > > > > long ne0(long a) > > { > > diff --git a/gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c b/gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c > > index 1269fe635c6..72b83ef9d08 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|\mp?lxv\M|\mlxvd2x\M} 2 } } */ > > > > diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp > > index 8439720baea..7e2dd358640 100644 > > --- a/gcc/testsuite/lib/target-supports.exp > > +++ b/gcc/testsuite/lib/target-supports.exp > > @@ -5903,6 +5903,16 @@ proc check_effective_target_has_arch_pwr9 { } { > > }] > > } > > > > +proc check_effective_target_has_arch_pwr10 { } { > > + return [check_no_compiler_messages arch_pwr10 assembly { > > + #ifndef _ARCH_PWR10 > > + #error does not have power10 support. > > + #else > > + /* "has power10 support" */ > > + #endif > > + }] > > +} > > + > > # Return 1 if this is a PowerPC target supporting -mcpu=power10. > > # Limit this to 64-bit linux systems for now until other targets support > > # power10.
diff --git a/gcc/testsuite/gcc.dg/pr56727-2.c b/gcc/testsuite/gcc.dg/pr56727-2.c index c54369ed25e..f055116772a 100644 --- a/gcc/testsuite/gcc.dg/pr56727-2.c +++ b/gcc/testsuite/gcc.dg/pr56727-2.c @@ -18,4 +18,4 @@ void h () /* { dg-final { scan-assembler "@(PLT|plt)" { target i?86-*-* x86_64-*-* } } } */ /* { dg-final { scan-assembler "@(PLT|plt)" { target { powerpc*-*-linux* && ilp32 } } } } */ -/* { dg-final { scan-assembler "bl f\n\\s*nop" { target { powerpc*-*-linux* && lp64 } } } } */ +/* { dg-final { scan-assembler {bl f(\n\s*nop|@notoc\n)} { target { powerpc*-*-linux* && lp64 } } } } */ 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..1cff4550f28 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|p?lxv|lvsr|p?stxv)" } } */ /* { 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..867b4f00e76 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,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 {\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..9b0f839ded4 100644 --- a/gcc/testsuite/gcc.target/powerpc/fold-vec-splat-floatdouble.c +++ b/gcc/testsuite/gcc.target/powerpc/fold-vec-splat-floatdouble.c @@ -21,7 +21,7 @@ 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 } } */ +/* { dg-final { scan-assembler-times {\mlvx\M|\mlxvd2x\M|\mp?lxv\M} 2 } } */ /* For float types, we generate a splat. */ /* { dg-final { scan-assembler-times "vspltw|xxspltw" 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..079e9509fd2 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|\mp?lxv\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-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..45cf2c8b352 100644 --- a/gcc/testsuite/gcc.target/powerpc/lvsl-lvsr.c +++ b/gcc/testsuite/gcc.target/powerpc/lvsl-lvsr.c @@ -1,12 +1,12 @@ /* Test expected code generation for lvsl and lvsr on little endian. - Note that lvsl and lvsr are each produced once, but the filename - causes them to appear twice in the file. */ + Note that \s is used in the lvsl/lvsr matches so we don't match + on '.file "lvsl-lvsr.c"'. */ /* { dg-do compile { target { powerpc64le-*-* } } } */ /* { 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 {\slvsl\s} 1 } } */ +/* { dg-final { scan-assembler-times {\slvsr\s} 1 } } */ +/* { 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/ppc-eq0-1.c b/gcc/testsuite/gcc.target/powerpc/ppc-eq0-1.c index 496a6e340c0..63799a6c8a8 100644 --- a/gcc/testsuite/gcc.target/powerpc/ppc-eq0-1.c +++ b/gcc/testsuite/gcc.target/powerpc/ppc-eq0-1.c @@ -7,4 +7,4 @@ int foo(int x) return x == 0; } -/* { dg-final { scan-assembler "cntlzw|isel" } } */ +/* { dg-final { scan-assembler {\mcntlzw\M|\misel\M|\msetbc\M} } } */ diff --git a/gcc/testsuite/gcc.target/powerpc/ppc-ne0-1.c b/gcc/testsuite/gcc.target/powerpc/ppc-ne0-1.c index 63c4b6087df..dd9597a68fa 100644 --- a/gcc/testsuite/gcc.target/powerpc/ppc-ne0-1.c +++ b/gcc/testsuite/gcc.target/powerpc/ppc-ne0-1.c @@ -2,9 +2,11 @@ /* { dg-do compile } */ /* { dg-options "-O2 -mno-isel" } */ -/* { dg-final { scan-assembler-times "addic" 4 } } */ -/* { dg-final { scan-assembler-times "subfe" 1 } } */ -/* { dg-final { scan-assembler-times "addze" 3 } } */ +/* { dg-final { scan-assembler-times {\maddic\M} 4 { target { ! has_arch_pwr10 } } } } */ +/* { dg-final { scan-assembler-times {\msubfe\M} 1 { target { ! has_arch_pwr10 } } } } */ +/* { dg-final { scan-assembler-times {\maddic\M} 3 { target { has_arch_pwr10 } } } } */ +/* { dg-final { scan-assembler-times {\msetbcr\M} 1 { target { has_arch_pwr10 } } } } */ +/* { dg-final { scan-assembler-times {\maddze\M} 3 } } */ long ne0(long a) { diff --git a/gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c b/gcc/testsuite/gcc.target/powerpc/pr86731-fwrapv-longlong.c index 1269fe635c6..72b83ef9d08 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|\mp?lxv\M|\mlxvd2x\M} 2 } } */ diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 8439720baea..7e2dd358640 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -5903,6 +5903,16 @@ proc check_effective_target_has_arch_pwr9 { } { }] } +proc check_effective_target_has_arch_pwr10 { } { + return [check_no_compiler_messages arch_pwr10 assembly { + #ifndef _ARCH_PWR10 + #error does not have power10 support. + #else + /* "has power10 support" */ + #endif + }] +} + # Return 1 if this is a PowerPC target supporting -mcpu=power10. # Limit this to 64-bit linux systems for now until other targets support # power10.