Add sparc fmaf test.
authorDavid S. Miller <davem@davemloft.net>
Wed, 26 Oct 2011 23:57:20 +0000 (23:57 +0000)
committerDavid S. Miller <davem@gcc.gnu.org>
Wed, 26 Oct 2011 23:57:20 +0000 (16:57 -0700)
gcc/testsuite/

* gcc.target/sparc/fmaf-1.c: New test.

From-SVN: r180551

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/sparc/fmaf-1.c [new file with mode: 0644]

index 2879dfe06f6ef867f175a614917bc8f40a3a92d0..6078fdd3b9bb83d29f3dcd1bdcebef92a5cddb5e 100644 (file)
@@ -1,5 +1,7 @@
 2011-10-26  David S. Miller  <davem@davemloft.net>
 
+       * gcc.target/sparc/fmaf-1.c: New test.
+
        * gcc.target/sparc/setcc-1.c: New test.
        * gcc.target/sparc/setcc-2.c: New test.
 
diff --git a/gcc/testsuite/gcc.target/sparc/fmaf-1.c b/gcc/testsuite/gcc.target/sparc/fmaf-1.c
new file mode 100644 (file)
index 0000000..948b926
--- /dev/null
@@ -0,0 +1,51 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -mfmaf" } */
+
+float fmadds (float a, float b, float c)
+{
+  return a * b + c;
+}
+
+float fmsubs (float a, float b, float c)
+{
+  return a * b - c;
+}
+
+float fnmadds (float a, float b, float c)
+{
+  return -(a * b + c);
+}
+
+float fnmsubs (float a, float b, float c)
+{
+  return -(a * b - c);
+}
+
+double fmaddd (double a, double b, double c)
+{
+  return a * b + c;
+}
+
+double fmsubd (double a, double b, double c)
+{
+  return a * b - c;
+}
+
+double fnmaddd (double a, double b, double c)
+{
+  return -(a * b + c);
+}
+
+double fnmsubd (double a, double b, double c)
+{
+  return -(a * b - c);
+}
+
+/* { dg-final { scan-assembler "fmadds\t%" } } */
+/* { dg-final { scan-assembler "fmsubs\t%" } } */
+/* { dg-final { scan-assembler "fnmadds\t%" } } */
+/* { dg-final { scan-assembler "fnmsubs\t%" } } */
+/* { dg-final { scan-assembler "fmaddd\t%" } } */
+/* { dg-final { scan-assembler "fmsubd\t%" } } */
+/* { dg-final { scan-assembler "fnmaddd\t%" } } */
+/* { dg-final { scan-assembler "fnmsubd\t%" } } */