On Wed, 2026-08-26 at 13:25 +0530, Surya Kumari Jangala wrote:
> Hi,
> 
> The comments in the new .h files have to be changed.
> For example, in mma-builtin-1.h, the comment says:
> 
> /* Header file for mma-builtin-1.c test - contains test functions
> only */
> 
> The file name has to be changed from mma-builtin-1.c to 
> mma-builtin-1.dmf.c and mma-builtin-1.nodmf.c, or
> mma-builtin-1.*.c.
> 
> Please send across a patch with these changes.

Thank you. I have updated these comments and submitted the patch:
https://gcc.gnu.org/pipermail/gcc-patches/2026-September/729980.html

Regards,
Avinash Jayakar

> 
> -Surya
> 
> 
> 
> On 23/07/26 3:09 PM, Avinash Jayakar wrote:
> > From: Avinash Jayakar <[email protected]>
> > 
> > Changes from v1:
> > * Use dmf, nodmf instead of p10 and future in updated test file
> > names.
> > * Use powerpc_future_compile_ok for dmf tests.
> > * Use -mno-dense-math for nodmf tests.
> > 
> > This patch splits the mma related test cases for powerpc into
> > power10
> > and future.
> > 
> > gcc/testsuite/ChangeLog:
> >         * gcc.target/powerpc/mma-builtin-1.c: Move to...
> >         * gcc.target/powerpc/mma-builtin-1.h: ...here.
> >         * gcc.target/powerpc/mma-builtin-10-pair.c: Move to...
> >         * gcc.target/powerpc/mma-builtin-10-pair.h: ...here.
> >         * gcc.target/powerpc/mma-builtin-2.c: Move to...
> >         * gcc.target/powerpc/mma-builtin-2.h: ...here.
> >         * gcc.target/powerpc/mma-builtin-3.c: Move to...
> >         * gcc.target/powerpc/mma-builtin-3.nodmf.c: ...here.
> >         * gcc.target/powerpc/mma-builtin-4.c: Move to...
> >         * gcc.target/powerpc/mma-builtin-4.h: ...here.
> >         * gcc.target/powerpc/mma-builtin-5.c: Move to...
> >         * gcc.target/powerpc/mma-builtin-5.h: ...here.
> >         * gcc.target/powerpc/mma-builtin-6.c: Move to...
> >         * gcc.target/powerpc/mma-builtin-6.nodmf.c: ...here.
> >         * gcc.target/powerpc/mma-builtin-7.c: Move to...
> >         * gcc.target/powerpc/mma-builtin-7.h: ...here.
> >         * gcc.target/powerpc/mma-builtin-8.c: Move to...
> >         * gcc.target/powerpc/mma-builtin-8.h: ...here.
> >         * gcc.target/powerpc/mma-builtin-9.c: Move to...
> >         * gcc.target/powerpc/mma-builtin-9.h: ...here.
> >         * gcc.target/powerpc/mma-builtin-10-quad.c: Removed.
> >         * gcc.target/powerpc/mma-builtin-1.dmf.c: New test.
> >         * gcc.target/powerpc/mma-builtin-1.nodmf.c: New test.
> >         * gcc.target/powerpc/mma-builtin-10-pair.dmf.c: New test.
> >         * gcc.target/powerpc/mma-builtin-10-pair.nodmf.c: New test.
> >         * gcc.target/powerpc/mma-builtin-10-quad.dmf.c: New test.
> >         * gcc.target/powerpc/mma-builtin-10-quad.h: New test.
> >         * gcc.target/powerpc/mma-builtin-10-quad.nodmf.c: New test.
> >         * gcc.target/powerpc/mma-builtin-2.dmf.c: New test.
> >         * gcc.target/powerpc/mma-builtin-2.nodmf.c: New test.
> >         * gcc.target/powerpc/mma-builtin-3.dmf.c: New test.
> >         * gcc.target/powerpc/mma-builtin-3.h: New test.
> >         * gcc.target/powerpc/mma-builtin-4.dmf.c: New test.
> >         * gcc.target/powerpc/mma-builtin-4.nodmf.c: New test.
> >         * gcc.target/powerpc/mma-builtin-5.dmf.c: New test.
> >         * gcc.target/powerpc/mma-builtin-5.nodmf.c: New test.
> >         * gcc.target/powerpc/mma-builtin-6.dmf.c: New test.
> >         * gcc.target/powerpc/mma-builtin-6.h: New test.
> >         * gcc.target/powerpc/mma-builtin-7.dmf.c: New test.
> >         * gcc.target/powerpc/mma-builtin-7.nodmf.c: New test.
> >         * gcc.target/powerpc/mma-builtin-8.dmf.c: New test.
> >         * gcc.target/powerpc/mma-builtin-8.nodmf.c: New test.
> >         * gcc.target/powerpc/mma-builtin-9.dmf.c: New test.
> >         * gcc.target/powerpc/mma-builtin-9.nodmf.c: New test.
> > ---
> >  .../gcc.target/powerpc/mma-builtin-1.dmf.c    | 58
> > ++++++++++++++++++
> >  .../{mma-builtin-1.c => mma-builtin-1.h}      | 58 +--------------
> > ---
> >  .../gcc.target/powerpc/mma-builtin-1.nodmf.c  | 59
> > +++++++++++++++++++
> >  .../powerpc/mma-builtin-10-pair.dmf.c         |  9 +++
> >  ...uiltin-10-pair.c => mma-builtin-10-pair.h} |  8 +--
> >  .../powerpc/mma-builtin-10-pair.nodmf.c       |  9 +++
> >  .../gcc.target/powerpc/mma-builtin-10-quad.c  | 23 --------
> >  .../powerpc/mma-builtin-10-quad.dmf.c         | 10 ++++
> >  .../gcc.target/powerpc/mma-builtin-10-quad.h  | 15 +++++
> >  .../powerpc/mma-builtin-10-quad.nodmf.c       | 11 ++++
> >  .../gcc.target/powerpc/mma-builtin-2.dmf.c    | 20 +++++++
> >  .../{mma-builtin-2.c => mma-builtin-2.h}      | 20 +------
> >  .../gcc.target/powerpc/mma-builtin-2.nodmf.c  | 21 +++++++
> >  .../gcc.target/powerpc/mma-builtin-3.dmf.c    | 12 ++++
> >  .../gcc.target/powerpc/mma-builtin-3.h        | 20 +++++++
> >  ...{mma-builtin-3.c => mma-builtin-3.nodmf.c} | 21 +------
> >  .../gcc.target/powerpc/mma-builtin-4.dmf.c    | 10 ++++
> >  .../{mma-builtin-4.c => mma-builtin-4.h}      | 10 +---
> >  .../gcc.target/powerpc/mma-builtin-4.nodmf.c  | 10 ++++
> >  .../gcc.target/powerpc/mma-builtin-5.dmf.c    | 10 ++++
> >  .../{mma-builtin-5.c => mma-builtin-5.h}      | 11 +---
> >  .../gcc.target/powerpc/mma-builtin-5.nodmf.c  | 12 ++++
> >  .../gcc.target/powerpc/mma-builtin-6.dmf.c    | 11 ++++
> >  .../gcc.target/powerpc/mma-builtin-6.h        | 11 ++++
> >  ...{mma-builtin-6.c => mma-builtin-6.nodmf.c} | 12 +---
> >  .../gcc.target/powerpc/mma-builtin-7.dmf.c    | 12 ++++
> >  .../{mma-builtin-7.c => mma-builtin-7.h}      | 11 +---
> >  .../gcc.target/powerpc/mma-builtin-7.nodmf.c  | 12 ++++
> >  .../gcc.target/powerpc/mma-builtin-8.dmf.c    | 12 ++++
> >  .../{mma-builtin-8.c => mma-builtin-8.h}      | 11 +---
> >  .../gcc.target/powerpc/mma-builtin-8.nodmf.c  | 12 ++++
> >  .../gcc.target/powerpc/mma-builtin-9.dmf.c    | 10 ++++
> >  .../{mma-builtin-9.c => mma-builtin-9.h}      |  9 +--
> >  .../gcc.target/powerpc/mma-builtin-9.nodmf.c  | 10 ++++
> >  34 files changed, 388 insertions(+), 182 deletions(-)
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 1.dmf.c
> >  rename gcc/testsuite/gcc.target/powerpc/{mma-builtin-1.c => mma-
> > builtin-1.h} (61%)
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 1.nodmf.c
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 10-pair.dmf.c
> >  rename gcc/testsuite/gcc.target/powerpc/{mma-builtin-10-pair.c =>
> > mma-builtin-10-pair.h} (55%)
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 10-pair.nodmf.c
> >  delete mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 10-quad.c
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 10-quad.dmf.c
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 10-quad.h
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 10-quad.nodmf.c
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 2.dmf.c
> >  rename gcc/testsuite/gcc.target/powerpc/{mma-builtin-2.c => mma-
> > builtin-2.h} (55%)
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 2.nodmf.c
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 3.dmf.c
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 3.h
> >  rename gcc/testsuite/gcc.target/powerpc/{mma-builtin-3.c => mma-
> > builtin-3.nodmf.c} (56%)
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 4.dmf.c
> >  rename gcc/testsuite/gcc.target/powerpc/{mma-builtin-4.c => mma-
> > builtin-4.h} (79%)
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 4.nodmf.c
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 5.dmf.c
> >  rename gcc/testsuite/gcc.target/powerpc/{mma-builtin-5.c => mma-
> > builtin-5.h} (61%)
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 5.nodmf.c
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 6.dmf.c
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 6.h
> >  rename gcc/testsuite/gcc.target/powerpc/{mma-builtin-6.c => mma-
> > builtin-6.nodmf.c} (64%)
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 7.dmf.c
> >  rename gcc/testsuite/gcc.target/powerpc/{mma-builtin-7.c => mma-
> > builtin-7.h} (51%)
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 7.nodmf.c
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 8.dmf.c
> >  rename gcc/testsuite/gcc.target/powerpc/{mma-builtin-8.c => mma-
> > builtin-8.h} (52%)
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 8.nodmf.c
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 9.dmf.c
> >  rename gcc/testsuite/gcc.target/powerpc/{mma-builtin-9.c => mma-
> > builtin-9.h} (58%)
> >  create mode 100644 gcc/testsuite/gcc.target/powerpc/mma-builtin-
> > 9.nodmf.c
> > 
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-1.dmf.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-1.dmf.c
> > new file mode 100644
> > index 00000000000..b4d4c41cbce
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-1.dmf.c
> > @@ -0,0 +1,58 @@
> > +/* { dg-do compile } */
> > +/* { dg-require-effective-target powerpc_future_compile_ok } */
> > +/* { dg-options "-Wno-psabi -mdejagnu-cpu=future -O2" } */
> > +
> > +#include "mma-builtin-1.h"
> > +
> > +/* { dg-final { scan-assembler-times {\mlxv\M} 40 } } */
> > +/* { dg-final { scan-assembler-times {\mlxvp\M} 12 } } */
> > +/* { dg-final { scan-assembler-times {\mstxvp\M} 40 } } */
> > +
> > +/* { dg-final { scan-assembler-times {\mxvbf16ger2\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvbf16ger2nn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvbf16ger2np\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvbf16ger2pn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvbf16ger2pp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf16ger2\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf16ger2nn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf16ger2np\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf16ger2pn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf16ger2pp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf32ger\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf32gernn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf32gernp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf32gerpn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf32gerpp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvi16ger2\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvi16ger2pp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvi16ger2s\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvi16ger2spp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvi4ger8\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvi4ger8pp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvi8ger4\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvi8ger4pp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvi8ger4spp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvbf16ger2\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvbf16ger2nn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvbf16ger2np\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvbf16ger2pn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvbf16ger2pp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf16ger2\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf16ger2nn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf16ger2np\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf16ger2pn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf16ger2pp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf32ger\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf32gernn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf32gernp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf32gerpn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf32gerpp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvi16ger2\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvi16ger2pp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvi16ger2s\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvi16ger2spp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvi4ger8\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvi4ger8pp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvi8ger4\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvi8ger4pp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvi8ger4spp\M} 1 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-1.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-1.h
> > similarity index 61%
> > rename from gcc/testsuite/gcc.target/powerpc/mma-builtin-1.c
> > rename to gcc/testsuite/gcc.target/powerpc/mma-builtin-1.h
> > index 69ee826e1be..c2f3c2a3b4b 100644
> > --- a/gcc/testsuite/gcc.target/powerpc/mma-builtin-1.c
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-1.h
> > @@ -1,6 +1,4 @@
> > -/* { dg-do compile } */
> > -/* { dg-require-effective-target power10_ok } */
> > -/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2" } */
> > +/* Header file for mma-builtin-1.c test - contains test functions
> > only */
> >  
> >  typedef unsigned char  vec_t __attribute__((vector_size(16)));
> >  
> > @@ -257,57 +255,3 @@ foo13b (__vector_quad *dst, __vector_quad
> > *src, vec_t *vec)
> >    __builtin_mma_pmxvf32gernn (&acc, vec0, vec1, 15, 15);
> >    dst[13] = acc;
> >  }
> > -
> > -/* { dg-final { scan-assembler-times {\mlxv\M} 40 } } */
> > -/* { dg-final { scan-assembler-times {\mlxvp\M} 12 } } */
> > -/* { dg-final { scan-assembler-times {\mstxvp\M} 40 } } */
> > -/* { dg-final { scan-assembler-times {\mxxmfacc\M} 20 } } */
> > -/* { dg-final { scan-assembler-times {\mxxmtacc\M} 6 } } */
> > -/* { dg-final { scan-assembler-times {\mxvbf16ger2\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvbf16ger2nn\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvbf16ger2np\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvbf16ger2pn\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvbf16ger2pp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvf16ger2\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvf16ger2nn\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvf16ger2np\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvf16ger2pn\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvf16ger2pp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvf32ger\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvf32gernn\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvf32gernp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvf32gerpn\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvf32gerpp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvi16ger2\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvi16ger2pp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvi16ger2s\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvi16ger2spp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvi4ger8\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvi4ger8pp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvi8ger4\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvi8ger4pp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvi8ger4spp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvbf16ger2\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvbf16ger2nn\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvbf16ger2np\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvbf16ger2pn\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvbf16ger2pp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvf16ger2\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvf16ger2nn\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvf16ger2np\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvf16ger2pn\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvf16ger2pp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvf32ger\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvf32gernn\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvf32gernp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvf32gerpn\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvf32gerpp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvi16ger2\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvi16ger2pp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvi16ger2s\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvi16ger2spp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvi4ger8\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvi4ger8pp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvi8ger4\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvi8ger4pp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvi8ger4spp\M} 1 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-1.nodmf.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-1.nodmf.c
> > new file mode 100644
> > index 00000000000..f2ae5bbc5e7
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-1.nodmf.c
> > @@ -0,0 +1,59 @@
> > +/* { dg-do compile } */
> > +/* { dg-require-effective-target power10_ok } */
> > +/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2 -mno-dense-
> > math" } */
> > +
> > +#include "mma-builtin-1.h"
> > +
> > +/* { dg-final { scan-assembler-times {\mlxv\M} 40 } } */
> > +/* { dg-final { scan-assembler-times {\mlxvp\M} 12 } } */
> > +/* { dg-final { scan-assembler-times {\mstxvp\M} 40 } } */
> > +/* { dg-final { scan-assembler-times {\mxxmfacc\M} 20 } } */
> > +/* { dg-final { scan-assembler-times {\mxxmtacc\M} 6 } } */
> > +/* { dg-final { scan-assembler-times {\mxvbf16ger2\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvbf16ger2nn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvbf16ger2np\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvbf16ger2pn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvbf16ger2pp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf16ger2\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf16ger2nn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf16ger2np\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf16ger2pn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf16ger2pp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf32ger\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf32gernn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf32gernp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf32gerpn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf32gerpp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvi16ger2\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvi16ger2pp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvi16ger2s\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvi16ger2spp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvi4ger8\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvi4ger8pp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvi8ger4\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvi8ger4pp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvi8ger4spp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvbf16ger2\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvbf16ger2nn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvbf16ger2np\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvbf16ger2pn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvbf16ger2pp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf16ger2\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf16ger2nn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf16ger2np\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf16ger2pn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf16ger2pp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf32ger\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf32gernn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf32gernp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf32gerpn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf32gerpp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvi16ger2\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvi16ger2pp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvi16ger2s\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvi16ger2spp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvi4ger8\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvi4ger8pp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvi8ger4\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvi8ger4pp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvi8ger4spp\M} 1 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-10-
> > pair.dmf.c b/gcc/testsuite/gcc.target/powerpc/mma-builtin-10-
> > pair.dmf.c
> > new file mode 100644
> > index 00000000000..284ab82f275
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-10-pair.dmf.c
> > @@ -0,0 +1,9 @@
> > +/* { dg-require-effective-target powerpc_future_compile_ok } */
> > +/* { dg-options "-mdejagnu-cpu=future -O2" } */
> > +
> > +#include "mma-builtin-10-pair.h"
> > +
> > +/* { dg-final { scan-assembler-not {\mlxv\M} } } */
> > +/* { dg-final { scan-assembler-not {\mstxv\M} } } */
> > +/* { dg-final { scan-assembler-times {\mlxvp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mstxvp\M} 2 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-10-pair.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-10-pair.h
> > similarity index 55%
> > rename from gcc/testsuite/gcc.target/powerpc/mma-builtin-10-pair.c
> > rename to gcc/testsuite/gcc.target/powerpc/mma-builtin-10-pair.h
> > index d8748d8e7d0..17ff4e95e58 100644
> > --- a/gcc/testsuite/gcc.target/powerpc/mma-builtin-10-pair.c
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-10-pair.h
> > @@ -1,5 +1,4 @@
> > -/* { dg-require-effective-target power10_ok } */
> > -/* { dg-options "-mdejagnu-cpu=power10 -O2" } */
> > +/* Header file for mma-builtin-10-pair.c test - contains test
> > functions only */
> >  
> >  typedef unsigned char  vec_t __attribute__((vector_size(16)));
> >  
> > @@ -14,8 +13,3 @@ foo (__vector_pair *dst, vec_t *src)
> >    dst[0] = pair0;
> >    dst[2] = pair1;
> >  }
> > -
> > -/* { dg-final { scan-assembler-not {\mlxv\M} } } */
> > -/* { dg-final { scan-assembler-not {\mstxv\M} } } */
> > -/* { dg-final { scan-assembler-times {\mlxvp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mstxvp\M} 2 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-10-
> > pair.nodmf.c b/gcc/testsuite/gcc.target/powerpc/mma-builtin-10-
> > pair.nodmf.c
> > new file mode 100644
> > index 00000000000..93caf7fb065
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-10-pair.nodmf.c
> > @@ -0,0 +1,9 @@
> > +/* { dg-require-effective-target power10_ok } */
> > +/* { dg-options "-mdejagnu-cpu=power10 -O2 -mno-dense-math" } */
> > +
> > +#include "mma-builtin-10-pair.h"
> > +
> > +/* { dg-final { scan-assembler-not {\mlxv\M} } } */
> > +/* { dg-final { scan-assembler-not {\mstxv\M} } } */
> > +/* { dg-final { scan-assembler-times {\mlxvp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mstxvp\M} 2 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-10-quad.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-10-quad.c
> > deleted file mode 100644
> > index 02342c76f5f..00000000000
> > --- a/gcc/testsuite/gcc.target/powerpc/mma-builtin-10-quad.c
> > +++ /dev/null
> > @@ -1,23 +0,0 @@
> > -/* { dg-require-effective-target power10_ok } */
> > -/* { dg-options "-mdejagnu-cpu=power10 -O2" } */
> > -
> > -typedef unsigned char  vec_t __attribute__((vector_size(16)));
> > -
> > -void
> > -foo (__vector_quad *dst, vec_t *src)
> > -{
> > -  __vector_quad quad0, quad1;
> > -  /* Adjacent loads should be combined into two lxvp instructions.
> > -     and identical build accs should not be combined.  */
> > -  __builtin_mma_build_acc (&quad0, src[0], src[1], src[2],
> > src[3]);
> > -  __builtin_mma_build_acc (&quad1, src[0], src[1], src[2],
> > src[3]);
> > -  dst[0] = quad0;
> > -  dst[2] = quad1;
> > -}
> > -
> > -/* { dg-final { scan-assembler-not {\mlxv\M} } } */
> > -/* { dg-final { scan-assembler-not {\mstxv\M} } } */
> > -/* { dg-final { scan-assembler-times {\mlxvp\M} 4 } } */
> > -/* { dg-final { scan-assembler-times {\mxxmtacc\M} 2 } } */
> > -/* { dg-final { scan-assembler-times {\mxxmfacc\M} 2 } } */
> > -/* { dg-final { scan-assembler-times {\mstxvp\M} 4 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-10-
> > quad.dmf.c b/gcc/testsuite/gcc.target/powerpc/mma-builtin-10-
> > quad.dmf.c
> > new file mode 100644
> > index 00000000000..5ab7d40223a
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-10-quad.dmf.c
> > @@ -0,0 +1,10 @@
> > +/* { dg-require-effective-target powerpc_future_compile_ok } */
> > +/* { dg-options "-mdejagnu-cpu=future -O2" } */
> > +
> > +#include "mma-builtin-10-quad.h"
> > +
> > +/* { dg-final { scan-assembler-not {\mlxv\M} } } */
> > +/* { dg-final { scan-assembler-not {\mstxv\M} } } */
> > +// 2 loads compared to 4 in power, since vsx and dmr regs are
> > independent.
> > +/* { dg-final { scan-assembler-times {\mlxvp\M} 2 } } */
> > +/* { dg-final { scan-assembler-times {\mstxvp\M} 4 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-10-quad.h
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-10-quad.h
> > new file mode 100644
> > index 00000000000..2047cefa428
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-10-quad.h
> > @@ -0,0 +1,15 @@
> > +/* Header file for mma-builtin-10-quad.c test - contains test
> > functions only */
> > +
> > +typedef unsigned char  vec_t __attribute__((vector_size(16)));
> > +
> > +void
> > +foo (__vector_quad *dst, vec_t *src)
> > +{
> > +  __vector_quad quad0, quad1;
> > +  /* Adjacent loads should be combined into two lxvp instructions.
> > +     and identical build accs should not be combined.  */
> > +  __builtin_mma_build_acc (&quad0, src[0], src[1], src[2],
> > src[3]);
> > +  __builtin_mma_build_acc (&quad1, src[0], src[1], src[2],
> > src[3]);
> > +  dst[0] = quad0;
> > +  dst[2] = quad1;
> > +}
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-10-
> > quad.nodmf.c b/gcc/testsuite/gcc.target/powerpc/mma-builtin-10-
> > quad.nodmf.c
> > new file mode 100644
> > index 00000000000..bd8ac6876b0
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-10-quad.nodmf.c
> > @@ -0,0 +1,11 @@
> > +/* { dg-require-effective-target power10_ok } */
> > +/* { dg-options "-mdejagnu-cpu=power10 -O2 -mno-dense-math" } */
> > +
> > +#include "mma-builtin-10-quad.h"
> > +
> > +/* { dg-final { scan-assembler-not {\mlxv\M} } } */
> > +/* { dg-final { scan-assembler-not {\mstxv\M} } } */
> > +/* { dg-final { scan-assembler-times {\mlxvp\M} 4 } } */
> > +/* { dg-final { scan-assembler-times {\mxxmtacc\M} 2 } } */
> > +/* { dg-final { scan-assembler-times {\mxxmfacc\M} 2 } } */
> > +/* { dg-final { scan-assembler-times {\mstxvp\M} 4 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-2.dmf.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-2.dmf.c
> > new file mode 100644
> > index 00000000000..86ba8c797b0
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-2.dmf.c
> > @@ -0,0 +1,20 @@
> > +/* { dg-do compile } */
> > +/* { dg-require-effective-target powerpc_future_compile_ok } */
> > +/* { dg-options "-Wno-psabi -mdejagnu-cpu=future -O2" } */
> > +
> > +#include "mma-builtin-2.h"
> > +
> > +
> > +/* { dg-final { scan-assembler-times {\mlxv\M} 4 } } */
> > +/* { dg-final { scan-assembler-times {\mlxvp\M} 8 } } */
> > +/* { dg-final { scan-assembler-times {\mstxvp\M} 8 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf64ger\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf64gerpp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf64gerpn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf64gernp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf64gernn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf64ger\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf64gerpp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf64gerpn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf64gernp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf64gernn\M} 1 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-2.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-2.h
> > similarity index 55%
> > rename from gcc/testsuite/gcc.target/powerpc/mma-builtin-2.c
> > rename to gcc/testsuite/gcc.target/powerpc/mma-builtin-2.h
> > index 0230d727657..353f5994628 100644
> > --- a/gcc/testsuite/gcc.target/powerpc/mma-builtin-2.c
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-2.h
> > @@ -1,6 +1,4 @@
> > -/* { dg-do compile } */
> > -/* { dg-require-effective-target power10_ok } */
> > -/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2" } */
> > +/* Header file for mma-builtin-2.c test - contains test functions
> > only */
> >  
> >  typedef unsigned char  vec_t __attribute__((vector_size(16)));
> >  
> > @@ -54,19 +52,3 @@ foo3 (__vector_quad *dst, __vector_quad *src,
> > vec_t *vec, __vector_pair *pvecp)
> >    __builtin_mma_pmxvf64gernn (&acc, vecp0, vec1, 15, 3);
> >    dst[1] = acc;
> >  }
> > -
> > -/* { dg-final { scan-assembler-times {\mxxmfacc\M} 4 } } */
> > -/* { dg-final { scan-assembler-times {\mxxmtacc\M} 2 } } */
> > -/* { dg-final { scan-assembler-times {\mlxv\M} 4 } } */
> > -/* { dg-final { scan-assembler-times {\mlxvp\M} 8 } } */
> > -/* { dg-final { scan-assembler-times {\mstxvp\M} 8 } } */
> > -/* { dg-final { scan-assembler-times {\mxvf64ger\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvf64gerpp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvf64gerpn\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvf64gernp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mxvf64gernn\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvf64ger\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvf64gerpp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvf64gerpn\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvf64gernp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpmxvf64gernn\M} 1 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-2.nodmf.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-2.nodmf.c
> > new file mode 100644
> > index 00000000000..cd56f8a7b33
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-2.nodmf.c
> > @@ -0,0 +1,21 @@
> > +/* { dg-do compile } */
> > +/* { dg-require-effective-target power10_ok } */
> > +/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2 -mno-dense-
> > math" } */
> > +
> > +#include "mma-builtin-2.h"
> > +
> > +/* { dg-final { scan-assembler-times {\mxxmfacc\M} 4 } } */
> > +/* { dg-final { scan-assembler-times {\mxxmtacc\M} 2 } } */
> > +/* { dg-final { scan-assembler-times {\mlxv\M} 4 } } */
> > +/* { dg-final { scan-assembler-times {\mlxvp\M} 8 } } */
> > +/* { dg-final { scan-assembler-times {\mstxvp\M} 8 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf64ger\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf64gerpp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf64gerpn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf64gernp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvf64gernn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf64ger\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf64gerpp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf64gerpn\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf64gernp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpmxvf64gernn\M} 1 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-3.dmf.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-3.dmf.c
> > new file mode 100644
> > index 00000000000..4000839e69b
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-3.dmf.c
> > @@ -0,0 +1,12 @@
> > +/* { dg-do compile } */
> > +/* { dg-require-effective-target powerpc_future_compile_ok } */
> > +/* { dg-options "-Wno-psabi -mdejagnu-cpu=future -O2" } */
> > +
> > +#include "mma-builtin-3.h"
> > +
> > +/* { dg-final { scan-assembler-times {\mlxv\M} 2 } } */
> > +/* { dg-final { scan-assembler-times {\mstxv\M} 2 } } */
> > +/* { dg-final { scan-assembler-not {\mlxvp\M} } } */
> > +/* { dg-final { scan-assembler-not {\mstxvp\M} } } */
> > +/* { dg-final { scan-assembler-times {\mxvcvspbf16\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mxvcvbf16spn\M} 1 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-3.h
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-3.h
> > new file mode 100644
> > index 00000000000..1d685d16acc
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-3.h
> > @@ -0,0 +1,20 @@
> > +/* Header file for mma-builtin-3.c test - contains test functions
> > only */
> > +
> > +void
> > +foo0 (void)
> > +{
> > +  __vector_quad acc;
> > +  asm ("#..." : "=d" (acc));
> > +  __builtin_mma_xxmtacc (&acc);
> > +  __builtin_mma_xxmfacc (&acc);
> > +  asm ("#..." :: "d" (acc));
> > +}
> > +
> > +typedef unsigned char  vec_t __attribute__((vector_size(16)));
> > +
> > +void
> > +foo1 (vec_t *vec)
> > +{
> > +  vec[1] = __builtin_vsx_xvcvspbf16 (vec[0]);
> > +  vec[3] = __builtin_vsx_xvcvbf16spn (vec[2]);
> > +}
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-3.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-3.nodmf.c
> > similarity index 56%
> > rename from gcc/testsuite/gcc.target/powerpc/mma-builtin-3.c
> > rename to gcc/testsuite/gcc.target/powerpc/mma-builtin-3.nodmf.c
> > index 9bec78d333f..25d61b5efb7 100644
> > --- a/gcc/testsuite/gcc.target/powerpc/mma-builtin-3.c
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-3.nodmf.c
> > @@ -1,25 +1,8 @@
> >  /* { dg-do compile } */
> >  /* { dg-require-effective-target power10_ok } */
> > -/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2" } */
> > +/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2 -mno-dense-
> > math" } */
> >  
> > -void
> > -foo0 (void)
> > -{
> > -  __vector_quad acc;
> > -  asm ("#..." : "=d" (acc));
> > -  __builtin_mma_xxmtacc (&acc);
> > -  __builtin_mma_xxmfacc (&acc);
> > -  asm ("#..." :: "d" (acc));
> > -}
> > -
> > -typedef unsigned char  vec_t __attribute__((vector_size(16)));
> > -
> > -void
> > -foo1 (vec_t *vec)
> > -{
> > -  vec[1] = __builtin_vsx_xvcvspbf16 (vec[0]);
> > -  vec[3] = __builtin_vsx_xvcvbf16spn (vec[2]);
> > -}
> > +#include "mma-builtin-3.h"
> >  
> >  /* { dg-final { scan-assembler-times {\mxxmtacc\M} 1 } } */
> >  /* { dg-final { scan-assembler-times {\mxxmfacc\M} 1 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-4.dmf.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-4.dmf.c
> > new file mode 100644
> > index 00000000000..c858017036b
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-4.dmf.c
> > @@ -0,0 +1,10 @@
> > +/* { dg-do compile } */
> > +/* { dg-require-effective-target powerpc_future_compile_ok } */
> > +/* { dg-options "-Wno-psabi -mdejagnu-cpu=future -O2" } */
> > +
> > +#include "mma-builtin-4.h"
> > +
> > +/* { dg-final { scan-assembler-times {\mlxv\M} 6 } } */
> > +/* { dg-final { scan-assembler-times {\mlxvp\M} 2 } } */
> > +/* { dg-final { scan-assembler-times {\mstxv\M} 4 } } */
> > +/* { dg-final { scan-assembler-times {\mstxvp\M} 3 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-4.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-4.h
> > similarity index 79%
> > rename from gcc/testsuite/gcc.target/powerpc/mma-builtin-4.c
> > rename to gcc/testsuite/gcc.target/powerpc/mma-builtin-4.h
> > index a9fb0107d12..b4b7be378df 100644
> > --- a/gcc/testsuite/gcc.target/powerpc/mma-builtin-4.c
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-4.h
> > @@ -1,6 +1,4 @@
> > -/* { dg-do compile } */
> > -/* { dg-require-effective-target power10_ok } */
> > -/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2" } */
> > +/* Header file for mma-builtin-4.c test - contains test functions
> > only */
> >  
> >  typedef unsigned char vec_t __attribute__((vector_size(16)));
> >  
> > @@ -65,9 +63,3 @@ bar2 (vec_t *dst, __vector_pair *src)
> >  #if !__has_builtin (__builtin_vsx_build_pair)
> >  #  error "__has_builtin (__builtin_vsx_build_pair) failed"
> >  #endif
> > -
> > -/* { dg-final { scan-assembler-times {\mlxv\M} 6 } } */
> > -/* { dg-final { scan-assembler-times {\mlxvp\M} 2 } } */
> > -/* { dg-final { scan-assembler-times {\mstxv\M} 4 } } */
> > -/* { dg-final { scan-assembler-times {\mstxvp\M} 3 } } */
> > -
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-4.nodmf.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-4.nodmf.c
> > new file mode 100644
> > index 00000000000..71affa7bdf0
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-4.nodmf.c
> > @@ -0,0 +1,10 @@
> > +/* { dg-do compile } */
> > +/* { dg-require-effective-target power10_ok } */
> > +/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2 -mno-dense-
> > math" } */
> > +
> > +#include "mma-builtin-4.h"
> > +
> > +/* { dg-final { scan-assembler-times {\mlxv\M} 6 } } */
> > +/* { dg-final { scan-assembler-times {\mlxvp\M} 2 } } */
> > +/* { dg-final { scan-assembler-times {\mstxv\M} 4 } } */
> > +/* { dg-final { scan-assembler-times {\mstxvp\M} 3 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-5.dmf.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-5.dmf.c
> > new file mode 100644
> > index 00000000000..302e57f6414
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-5.dmf.c
> > @@ -0,0 +1,10 @@
> > +/* { dg-do compile } */
> > +/* { dg-require-effective-target powerpc_future_compile_ok } */
> > +/* { dg-options "-Wno-psabi -mdejagnu-cpu=future -O2" } */
> > +
> > +#include "mma-builtin-5.h"
> > +
> > +/* { dg-final { scan-assembler-times {\mlxv\M} 8 } } */
> > +/* { dg-final { scan-assembler-times {\mlxvp\M} 2 } } */
> > +/* { dg-final { scan-assembler-times {\mstxv\M} 4 } } */
> > +/* { dg-final { scan-assembler-times {\mstxvp\M} 4 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-5.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-5.h
> > similarity index 61%
> > rename from gcc/testsuite/gcc.target/powerpc/mma-builtin-5.c
> > rename to gcc/testsuite/gcc.target/powerpc/mma-builtin-5.h
> > index 00503b7343d..945b35bc92e 100644
> > --- a/gcc/testsuite/gcc.target/powerpc/mma-builtin-5.c
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-5.h
> > @@ -1,6 +1,4 @@
> > -/* { dg-do compile } */
> > -/* { dg-require-effective-target power10_ok } */
> > -/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2" } */
> > +/* Header file for mma-builtin-5.c test - contains test functions
> > only */
> >  
> >  typedef unsigned char vec_t __attribute__((vector_size(16)));
> >  
> > @@ -38,10 +36,3 @@ bar (vec_t *dst, __vector_quad *src)
> >  #if !__has_builtin (__builtin_mma_build_acc)
> >  #  error "__has_builtin (__builtin_mma_build_acc) failed"
> >  #endif
> > -
> > -/* { dg-final { scan-assembler-times {\mlxv\M} 8 } } */
> > -/* { dg-final { scan-assembler-times {\mlxvp\M} 2 } } */
> > -/* { dg-final { scan-assembler-times {\mstxv\M} 4 } } */
> > -/* { dg-final { scan-assembler-times {\mstxvp\M} 4 } } */
> > -/* { dg-final { scan-assembler-times {\mxxmfacc\M} 3 } } */
> > -/* { dg-final { scan-assembler-times {\mxxmtacc\M} 3 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-5.nodmf.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-5.nodmf.c
> > new file mode 100644
> > index 00000000000..bd4ee7c8719
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-5.nodmf.c
> > @@ -0,0 +1,12 @@
> > +/* { dg-do compile } */
> > +/* { dg-require-effective-target power10_ok } */
> > +/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2 -mno-dense-
> > math" } */
> > +
> > +#include "mma-builtin-5.h"
> > +
> > +/* { dg-final { scan-assembler-times {\mlxv\M} 8 } } */
> > +/* { dg-final { scan-assembler-times {\mlxvp\M} 2 } } */
> > +/* { dg-final { scan-assembler-times {\mstxv\M} 4 } } */
> > +/* { dg-final { scan-assembler-times {\mstxvp\M} 4 } } */
> > +/* { dg-final { scan-assembler-times {\mxxmfacc\M} 3 } } */
> > +/* { dg-final { scan-assembler-times {\mxxmtacc\M} 3 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-6.dmf.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-6.dmf.c
> > new file mode 100644
> > index 00000000000..b09cfdd125e
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-6.dmf.c
> > @@ -0,0 +1,11 @@
> > +/* { dg-do compile } */
> > +/* { dg-require-effective-target powerpc_future_compile_ok } */
> > +/* { dg-options "-Wno-psabi -mdejagnu-cpu=future -O2" } */
> > +
> > +#include "mma-builtin-6.h"
> > +
> > +/* { dg-final { scan-assembler-not {\mlxv\M} } } */
> > +/* { dg-final { scan-assembler-not {\mlxvp\M} } } */
> > +/* { dg-final { scan-assembler-not {\mxxmtacc\M} } } */
> > +/* { dg-final { scan-assembler-times {\mxxsetaccz\M} 2 } } */
> > +/* { dg-final { scan-assembler-times {\mstxvp\M} 4 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-6.h
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-6.h
> > new file mode 100644
> > index 00000000000..fefe182ea43
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-6.h
> > @@ -0,0 +1,11 @@
> > +/* Header file for mma-builtin-6.c test - contains test functions
> > only */
> > +
> > +void
> > +foo (__vector_quad *dst)
> > +{
> > +  __vector_quad acc0, acc1;
> > +  __builtin_mma_xxsetaccz (&acc0);
> > +  __builtin_mma_xxsetaccz (&acc1);
> > +  dst[0] = acc0;
> > +  dst[1] = acc1;
> > +}
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-6.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-6.nodmf.c
> > similarity index 64%
> > rename from gcc/testsuite/gcc.target/powerpc/mma-builtin-6.c
> > rename to gcc/testsuite/gcc.target/powerpc/mma-builtin-6.nodmf.c
> > index 715b28138e9..87771cb33d2 100644
> > --- a/gcc/testsuite/gcc.target/powerpc/mma-builtin-6.c
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-6.nodmf.c
> > @@ -1,16 +1,8 @@
> >  /* { dg-do compile } */
> >  /* { dg-require-effective-target power10_ok } */
> > -/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2" } */
> > +/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2 -mno-dense-
> > math" } */
> >  
> > -void
> > -foo (__vector_quad *dst)
> > -{
> > -  __vector_quad acc0, acc1;
> > -  __builtin_mma_xxsetaccz (&acc0);
> > -  __builtin_mma_xxsetaccz (&acc1);
> > -  dst[0] = acc0;
> > -  dst[1] = acc1;
> > -}
> > +#include "mma-builtin-6.h"
> >  
> >  /* { dg-final { scan-assembler-not {\mlxv\M} } } */
> >  /* { dg-final { scan-assembler-not {\mlxvp\M} } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-7.dmf.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-7.dmf.c
> > new file mode 100644
> > index 00000000000..407009a49c4
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-7.dmf.c
> > @@ -0,0 +1,12 @@
> > +/* { dg-do compile } */
> > +/* { dg-require-effective-target powerpc_future_compile_ok } */
> > +/* { dg-options "-mdejagnu-cpu=future -O2" } */
> > +
> > +#include "mma-builtin-7.h"
> > +
> > +/* { dg-final { scan-assembler-not {\mlxv\M} } } */
> > +/* { dg-final { scan-assembler-not {\mstxv\M} } } */
> > +/* { dg-final { scan-assembler-times {\mlxvp\M} 3 } } */
> > +/* { dg-final { scan-assembler-times {\mlxvpx\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mplxvp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mstxvp\M} 5 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-7.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-7.h
> > similarity index 51%
> > rename from gcc/testsuite/gcc.target/powerpc/mma-builtin-7.c
> > rename to gcc/testsuite/gcc.target/powerpc/mma-builtin-7.h
> > index c661a4b84bc..176b56b61e1 100644
> > --- a/gcc/testsuite/gcc.target/powerpc/mma-builtin-7.c
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-7.h
> > @@ -1,6 +1,4 @@
> > -/* { dg-do compile } */
> > -/* { dg-require-effective-target power10_ok } */
> > -/* { dg-options "-mdejagnu-cpu=power10 -O2" } */
> > +/* Header file for mma-builtin-7.c test - contains test functions
> > only */
> >  
> >  void
> >  foo (__vector_pair *dst, __vector_pair *src, long idx)
> > @@ -17,10 +15,3 @@ foo (__vector_pair *dst, __vector_pair *src,
> > long idx)
> >  #if !__has_builtin (__builtin_vsx_lxvp)
> >  #  error "__has_builtin (__builtin_vsx_lxvp) failed"
> >  #endif
> > -
> > -/* { dg-final { scan-assembler-not {\mlxv\M} } } */
> > -/* { dg-final { scan-assembler-not {\mstxv\M} } } */
> > -/* { dg-final { scan-assembler-times {\mlxvp\M} 3 } } */
> > -/* { dg-final { scan-assembler-times {\mlxvpx\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mplxvp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mstxvp\M} 5 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-7.nodmf.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-7.nodmf.c
> > new file mode 100644
> > index 00000000000..5614d2e7113
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-7.nodmf.c
> > @@ -0,0 +1,12 @@
> > +/* { dg-do compile } */
> > +/* { dg-require-effective-target power10_ok } */
> > +/* { dg-options "-mdejagnu-cpu=power10 -O2 -mno-dense-math" } */
> > +
> > +#include "mma-builtin-7.h"
> > +
> > +/* { dg-final { scan-assembler-not {\mlxv\M} } } */
> > +/* { dg-final { scan-assembler-not {\mstxv\M} } } */
> > +/* { dg-final { scan-assembler-times {\mlxvp\M} 3 } } */
> > +/* { dg-final { scan-assembler-times {\mlxvpx\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mplxvp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mstxvp\M} 5 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-8.dmf.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-8.dmf.c
> > new file mode 100644
> > index 00000000000..ee9d60a36f5
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-8.dmf.c
> > @@ -0,0 +1,12 @@
> > +/* { dg-do compile } */
> > +/* { dg-require-effective-target powerpc_future_compile_ok } */
> > +/* { dg-options "-mdejagnu-cpu=future -O2" } */
> > +
> > +#include "mma-builtin-8.h"
> > +
> > +/* { dg-final { scan-assembler-not {\mlxv\M} } } */
> > +/* { dg-final { scan-assembler-not {\mstxv\M} } } */
> > +/* { dg-final { scan-assembler-times {\mlxvp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mstxvp\M} 3 } } */
> > +/* { dg-final { scan-assembler-times {\mstxvpx\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpstxvp\M} 1 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-8.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-8.h
> > similarity index 52%
> > rename from gcc/testsuite/gcc.target/powerpc/mma-builtin-8.c
> > rename to gcc/testsuite/gcc.target/powerpc/mma-builtin-8.h
> > index af29e479f83..a0ee6286369 100644
> > --- a/gcc/testsuite/gcc.target/powerpc/mma-builtin-8.c
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-8.h
> > @@ -1,6 +1,4 @@
> > -/* { dg-do compile } */
> > -/* { dg-require-effective-target power10_ok } */
> > -/* { dg-options "-mdejagnu-cpu=power10 -O2" } */
> > +/* Header file for mma-builtin-8.c test - contains test functions
> > only */
> >  
> >  void
> >  foo (__vector_pair *dst, __vector_pair *src, long idx)
> > @@ -18,10 +16,3 @@ foo (__vector_pair *dst, __vector_pair *src,
> > long idx)
> >  #if !__has_builtin (__builtin_vsx_stxvp)
> >  #  error "__has_builtin (__builtin_vsx_stxvp) failed"
> >  #endif
> > -
> > -/* { dg-final { scan-assembler-not {\mlxv\M} } } */
> > -/* { dg-final { scan-assembler-not {\mstxv\M} } } */
> > -/* { dg-final { scan-assembler-times {\mlxvp\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mstxvp\M} 3 } } */
> > -/* { dg-final { scan-assembler-times {\mstxvpx\M} 1 } } */
> > -/* { dg-final { scan-assembler-times {\mpstxvp\M} 1 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-8.nodmf.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-8.nodmf.c
> > new file mode 100644
> > index 00000000000..2f2738c0133
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-8.nodmf.c
> > @@ -0,0 +1,12 @@
> > +/* { dg-do compile } */
> > +/* { dg-require-effective-target power10_ok } */
> > +/* { dg-options "-mdejagnu-cpu=power10 -O2 -mno-dense-math" } */
> > +
> > +#include "mma-builtin-8.h"
> > +
> > +/* { dg-final { scan-assembler-not {\mlxv\M} } } */
> > +/* { dg-final { scan-assembler-not {\mstxv\M} } } */
> > +/* { dg-final { scan-assembler-times {\mlxvp\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mstxvp\M} 3 } } */
> > +/* { dg-final { scan-assembler-times {\mstxvpx\M} 1 } } */
> > +/* { dg-final { scan-assembler-times {\mpstxvp\M} 1 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-9.dmf.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-9.dmf.c
> > new file mode 100644
> > index 00000000000..a5e0c36e19b
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-9.dmf.c
> > @@ -0,0 +1,10 @@
> > +/* { dg-do compile } */
> > +/* { dg-require-effective-target powerpc_future_compile_ok } */
> > +/* { dg-options "-mdejagnu-cpu=future -O2" } */
> > +
> > +#include "mma-builtin-9.h"
> > +
> > +/* { dg-final { scan-assembler-not {\mlxv\M} } } */
> > +/* { dg-final { scan-assembler-not {\mstxv\M} } } */
> > +/* { dg-final { scan-assembler-times {\mlxvp\M} 3 } } */
> > +/* { dg-final { scan-assembler-times {\mstxvp\M} 3 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-9.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-9.h
> > similarity index 58%
> > rename from gcc/testsuite/gcc.target/powerpc/mma-builtin-9.c
> > rename to gcc/testsuite/gcc.target/powerpc/mma-builtin-9.h
> > index 397d0f1db35..c45c3e80311 100644
> > --- a/gcc/testsuite/gcc.target/powerpc/mma-builtin-9.c
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-9.h
> > @@ -1,6 +1,4 @@
> > -/* { dg-do compile } */
> > -/* { dg-require-effective-target power10_ok } */
> > -/* { dg-options "-mdejagnu-cpu=power10 -O2" } */
> > +/* Header file for mma-builtin-9.c test - contains test functions
> > only */
> >  
> >  typedef unsigned char  vec_t __attribute__((vector_size(16)));
> >  
> > @@ -21,8 +19,3 @@ bar (__vector_quad *dst, vec_t *src)
> >    __builtin_mma_build_acc (&quad, src[0], src[1], src[2], src[3]);
> >    *dst = quad;
> >  }
> > -
> > -/* { dg-final { scan-assembler-not {\mlxv\M} } } */
> > -/* { dg-final { scan-assembler-not {\mstxv\M} } } */
> > -/* { dg-final { scan-assembler-times {\mlxvp\M} 3 } } */
> > -/* { dg-final { scan-assembler-times {\mstxvp\M} 3 } } */
> > diff --git a/gcc/testsuite/gcc.target/powerpc/mma-builtin-9.nodmf.c
> > b/gcc/testsuite/gcc.target/powerpc/mma-builtin-9.nodmf.c
> > new file mode 100644
> > index 00000000000..8b81597e2ba
> > --- /dev/null
> > +++ b/gcc/testsuite/gcc.target/powerpc/mma-builtin-9.nodmf.c
> > @@ -0,0 +1,10 @@
> > +/* { dg-do compile } */
> > +/* { dg-require-effective-target power10_ok } */
> > +/* { dg-options "-mdejagnu-cpu=power10 -O2 -mno-dense-math" } */
> > +
> > +#include "mma-builtin-9.h"
> > +
> > +/* { dg-final { scan-assembler-not {\mlxv\M} } } */
> > +/* { dg-final { scan-assembler-not {\mstxv\M} } } */
> > +/* { dg-final { scan-assembler-times {\mlxvp\M} 3 } } */
> > +/* { dg-final { scan-assembler-times {\mstxvp\M} 3 } } */

Reply via email to