[gcc r17-2681] testsuite: Split rs6000 mma tests into power10 and future
Avinash Jayakar via Gcc-cvs <[email protected]>
| Newsgroups | gmane.comp.gcc.cvs |
|---|---|
| Message-ID | <[email protected]> |
https://gcc.gnu.org/g:d96ac42a4456b5b83142a6bf2893c2171723e0d2 commit r17-2681-gd96ac42a4456b5b83142a6bf2893c2171723e0d2 Author: Avinash Jayakar <[email protected]> Date: Fri Jul 17 05:20:51 2026 -0500 testsuite: Split rs6000 mma tests into power10 and future 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. Diff: --- .../gcc.target/powerpc/mma-builtin-1.dmf.c | 58 +++++++++++++++++++++ .../powerpc/{mma-builtin-1.c => mma-builtin-1.h} | 58 +-------------------- .../gcc.target/powerpc/mma-builtin-1.nodmf.c | 59 ++++++++++++++++++++++ .../gcc.target/powerpc/mma-builtin-10-pair.dmf.c | 9 ++++ ...mma-builtin-10-pair.c => mma-builtin-10-pair.h} | 8 +-- .../gcc.target/powerpc/mma-builtin-10-pair.nodmf.c | 9 ++++ .../gcc.target/powerpc/mma-builtin-10-quad.c | 23 --------- .../gcc.target/powerpc/mma-builtin-10-quad.dmf.c | 10 ++++ .../gcc.target/powerpc/mma-builtin-10-quad.h | 15 ++++++ .../gcc.target/powerpc/mma-builtin-10-quad.nodmf.c | 11 ++++ .../gcc.target/powerpc/mma-builtin-2.dmf.c | 20 ++++++++ .../powerpc/{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/testsuite/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 ++++ .../powerpc/{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 ++++ .../powerpc/{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/testsuite/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 +++++ .../powerpc/{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 +++++ .../powerpc/{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 ++++ .../powerpc/{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(-) 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 000000000000..b4d4c41cbcea --- /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 69ee826e1be9..c2f3c2a3b4bf 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 000000000000..f2ae5bbc5e7c --- /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 000000000000..284ab82f2753 --- /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 d8748d8e7d0a..17ff4e95e58f 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 000000000000..93caf7fb0656 --- /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 02342c76f5f5..000000000000 --- 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 000000000000..5ab7d40223a3 --- /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 000000000000..2047cefa4280 --- /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 000000000000..bd8ac6876b03 --- /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 000000000000..86ba8c797b07 --- /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 0230d727657f..353f59946284 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 000000000000..cd56f8a7b330 --- /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 000000000000..4000839e69bf --- /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 000000000000..1d685d16acc4 --- /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 9bec78d333fb..25d61b5efb75 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 000000000000..c858017036be --- /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 a9fb0107d12d..b4b7be378dff 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 000000000000..71affa7bdf08 --- /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 000000000000..302e57f6414c --- /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 00503b7343d2..945b35bc92e6 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 000000000000..bd4ee7c8719d --- /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 000000000000..b09cfdd125e0 --- /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 000000000000..fefe182ea437 --- /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 715b28138e9e..87771cb33d27 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 000000000000..407009a49c41 --- /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 c661a4b84bc7..176b56b61e15 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 000000000000..5614d2e7113c --- /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 000000000000..ee9d60a36f5e --- /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 af29e479f835..a0ee62863699 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 000000000000..2f2738c01336 --- /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 000000000000..a5e0c36e19b7 --- /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 397d0f1db359..c45c3e80311b 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 000000000000..8b81597e2bad --- /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 } } */