public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc(refs/users/meissner/heads/work133-vpair)] Add more vector pair builtin tests.
@ 2023-08-31 17:21 Michael Meissner
  0 siblings, 0 replies; only message in thread
From: Michael Meissner @ 2023-08-31 17:21 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:a5dedc87cd9f06e330dba66a695cc226c5b1fb84

commit a5dedc87cd9f06e330dba66a695cc226c5b1fb84
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Thu Aug 31 13:20:08 2023 -0400

    Add more vector pair builtin tests.
    
    2023-08-31  Michael Meissner  <meissner@linux.ibm.com>
    
    gcc/testsuite/
    
            * gcc.target/powerpc/vector-pair-01.c: Add more tests.
            * gcc.target/powerpc/vector-pair-02.c: Likewise.

Diff:
---
 gcc/testsuite/gcc.target/powerpc/vector-pair-01.c | 58 +++++++++++++++++------
 gcc/testsuite/gcc.target/powerpc/vector-pair-02.c | 35 ++++++++++++--
 2 files changed, 75 insertions(+), 18 deletions(-)

diff --git a/gcc/testsuite/gcc.target/powerpc/vector-pair-01.c b/gcc/testsuite/gcc.target/powerpc/vector-pair-01.c
index bc0ebbb06e7b..46c9ce1a8518 100644
--- a/gcc/testsuite/gcc.target/powerpc/vector-pair-01.c
+++ b/gcc/testsuite/gcc.target/powerpc/vector-pair-01.c
@@ -32,6 +32,24 @@ test_multiply (__vector_pair *dest,
   *dest = __builtin_vpair_f64_mul (*x, *y);
 }
 
+void
+test_min (__vector_pair *dest,
+	  __vector_pair *x,
+	  __vector_pair *y)
+{
+  /* 2 lxvp, 2 xvmindp, 1 stxvp.  */
+  *dest = __builtin_vpair_f64_smin (*x, *y);
+}
+
+void
+test_max (__vector_pair *dest,
+	  __vector_pair *x,
+	  __vector_pair *y)
+{
+  /* 2 lxvp, 2 xvmaxdp, 1 stxvp.  */
+  *dest = __builtin_vpair_f64_smax (*x, *y);
+}
+
 void
 test_negate (__vector_pair *dest,
 	     __vector_pair *x)
@@ -129,18 +147,28 @@ test_get_vector_1 (__vector_pair *x)
   return __builtin_vpair_f64_get_vector (*x, 1);
 }
 
-/* { dg-final { scan-assembler-times {\mlxv\M}          2 } } */
-/* { dg-final { scan-assembler-times {\mlxvp\M}        21 } } */
-/* { dg-final { scan-assembler-times {\mstxvp\M}       12 } } */
-/* { dg-final { scan-assembler-times {\mxvabsdp\M}      2 } } */
-/* { dg-final { scan-assembler-times {\mxvadddp\M}      2 } } */
-/* { dg-final { scan-assembler-times {\mxvmadd.dp\M}    2 } } */
-/* { dg-final { scan-assembler-times {\mxvmsub.dp\M}    2 } } */
-/* { dg-final { scan-assembler-times {\mxvmuldp\M}      2 } } */
-/* { dg-final { scan-assembler-times {\mxvnabsdp\M}     2 } } */
-/* { dg-final { scan-assembler-times {\mxvnegdp\M}      2 } } */
-/* { dg-final { scan-assembler-times {\mxvnmadd.dp\M}   2 } } */
-/* { dg-final { scan-assembler-times {\mxvnmsub.dp\M}   2 } } */
-/* { dg-final { scan-assembler-times {\mxvsubdp\M}      2 } } */
-/* { dg-final { scan-assembler-times {\mxxpermdi\M}     1 } } */
-/* { dg-final { scan-assembler-times {\mxxspltb\M}      2 } } */
+double
+test_add_elements (__vector_pair *x)
+{
+  /* 1 lxvp, 1 xvadddp, 1 xxpermdi, 1 fadd/xsadddp.  */
+  return __builtin_vpair_f64_add_elements (*x);
+}
+
+/* { dg-final { scan-assembler-times {\mfadd\|xsadddp\M} 1 } } */
+/* { dg-final { scan-assembler-times {\mlxv\M}           2 } } */
+/* { dg-final { scan-assembler-times {\mlxvp\M}         26 } } */
+/* { dg-final { scan-assembler-times {\mstxvp\M}        14 } } */
+/* { dg-final { scan-assembler-times {\mxvabsdp\M}       2 } } */
+/* { dg-final { scan-assembler-times {\mxvadddp\M}       3 } } */
+/* { dg-final { scan-assembler-times {\mxvmadd.dp\M}     2 } } */
+/* { dg-final { scan-assembler-times {\mxvmindp\M}       2 } } */
+/* { dg-final { scan-assembler-times {\mxvmaxdp\M}       2 } } */
+/* { dg-final { scan-assembler-times {\mxvmsub.dp\M}     2 } } */
+/* { dg-final { scan-assembler-times {\mxvmuldp\M}       2 } } */
+/* { dg-final { scan-assembler-times {\mxvnabsdp\M}      2 } } */
+/* { dg-final { scan-assembler-times {\mxvnegdp\M}       2 } } */
+/* { dg-final { scan-assembler-times {\mxvnmadd.dp\M}    2 } } */
+/* { dg-final { scan-assembler-times {\mxvnmsub.dp\M}    2 } } */
+/* { dg-final { scan-assembler-times {\mxvsubdp\M}       2 } } */
+/* { dg-final { scan-assembler-times {\mxxpermdi\M}      2 } } */
+/* { dg-final { scan-assembler-times {\mxxspltb\M}       2 } } */
diff --git a/gcc/testsuite/gcc.target/powerpc/vector-pair-02.c b/gcc/testsuite/gcc.target/powerpc/vector-pair-02.c
index 140c1590f542..84b6f13e5011 100644
--- a/gcc/testsuite/gcc.target/powerpc/vector-pair-02.c
+++ b/gcc/testsuite/gcc.target/powerpc/vector-pair-02.c
@@ -32,6 +32,24 @@ test_multiply (__vector_pair *dest,
   *dest = __builtin_vpair_f32_mul (*x, *y);
 }
 
+void
+test_max (__vector_pair *dest,
+	  __vector_pair *x,
+	  __vector_pair *y)
+{
+  /* 2 lxvp, 2 xvmaxsp, 1 stxvp.  */
+  *dest = __builtin_vpair_f32_smax (*x, *y);
+}
+
+void
+test_min (__vector_pair *dest,
+	  __vector_pair *x,
+	  __vector_pair *y)
+{
+  /* 2 lxvp, 2 xvminsp, 1 stxvp.  */
+  *dest = __builtin_vpair_f32_smin (*x, *y);
+}
+
 void
 test_negate (__vector_pair *dest,
 	     __vector_pair *x)
@@ -129,13 +147,24 @@ test_get_vector_1 (__vector_pair *x)
   return __builtin_vpair_f32_get_vector (*x, 1);
 }
 
+float
+test_add_elements (__vector_pair *x)
+{
+  /* 1 lxp, 3 xvaddsp, 2 vsldoi, 1 xscvspdp.  */
+  return __builtin_vpair_f32_add_elements (*x);
+}
+
 /* { dg-final { scan-assembler-times {\mlxv\M}          2 } } */
-/* { dg-final { scan-assembler-times {\mlxvp\M}        21 } } */
-/* { dg-final { scan-assembler-times {\mstxvp\M}       12 } } */
+/* { dg-final { scan-assembler-times {\mlxvp\M}        26 } } */
+/* { dg-final { scan-assembler-times {\mstxvp\M}       14 } } */
+/* { dg-final { scan-assembler-times {\mvsldoi\M}       2 } } */
 /* { dg-final { scan-assembler-times {\mxscvdpspn\M}    1 } } */
+/* { dg-final { scan-assembler-times {\mxscvspdp\M}     1 } } */
 /* { dg-final { scan-assembler-times {\mxvabssp\M}      2 } } */
-/* { dg-final { scan-assembler-times {\mxvaddsp\M}      2 } } */
+/* { dg-final { scan-assembler-times {\mxvaddsp\M}      5 } } */
 /* { dg-final { scan-assembler-times {\mxvmadd.sp\M}    2 } } */
+/* { dg-final { scan-assembler-times {\mxvmaxsp\M}      2 } } */
+/* { dg-final { scan-assembler-times {\mxvminsp\M}      2 } } */
 /* { dg-final { scan-assembler-times {\mxvmsub.sp\M}    2 } } */
 /* { dg-final { scan-assembler-times {\mxvmulsp\M}      2 } } */
 /* { dg-final { scan-assembler-times {\mxvnabssp\M}     2 } } */

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-08-31 17:21 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-31 17:21 [gcc(refs/users/meissner/heads/work133-vpair)] Add more vector pair builtin tests Michael Meissner

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