Testcases for canonical mips nmadd/nmsub patterns with or w/o fast-math.
authorJames E Wilson <wilson@specifixinc.com>
Tue, 17 Aug 2004 21:42:44 +0000 (21:42 +0000)
committerJim Wilson <wilson@gcc.gnu.org>
Tue, 17 Aug 2004 21:42:44 +0000 (14:42 -0700)
* gcc.dg/mips-nmadd-1.c: New test.
* gcc.dg/mips-nmadd-2.c: New test.

From-SVN: r86147

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/mips-nmadd-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/mips-nmadd-2.c [new file with mode: 0644]

index 74abe0e465712e81653de000815bffba56c60df5..1a4dad700e047e7d153efecc426b9fecc265f086 100644 (file)
@@ -4,6 +4,9 @@
        * gcc.dg/mips-movcc-2.c: New test.
        * gcc.dg/mips-movcc-3.c: New test.
 
+       * gcc.dg/mips-nmadd-1.c: New test.
+       * gcc.dg/mips-nmadd-2.c: New test.
+
 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
 
        PR c++/15871
diff --git a/gcc/testsuite/gcc.dg/mips-nmadd-1.c b/gcc/testsuite/gcc.dg/mips-nmadd-1.c
new file mode 100644 (file)
index 0000000..1d84042
--- /dev/null
@@ -0,0 +1,30 @@
+/* { dg-do compile { target "mips*-*-*" } } */
+/* { dg-options "-O2 -ffast-math -mips4" } */
+/* { dg-final { scan-assembler "nmadd.s" } } */
+/* { dg-final { scan-assembler "nmadd.d" } } */
+/* { dg-final { scan-assembler "nmsub.s" } } */
+/* { dg-final { scan-assembler "nmsub.d" } } */
+
+float
+sub1 (float f, float g, float h)
+{
+  return -((f * g) + h);
+}
+
+double
+sub2 (double f, double g, double h)
+{
+  return -((f * g) + h);
+}
+
+float
+sub3 (float f, float g, float h)
+{
+  return -((f * g) - h);
+}
+
+double
+sub4 (double f, double g, double h)
+{
+  return -((f * g) - h);
+}
diff --git a/gcc/testsuite/gcc.dg/mips-nmadd-2.c b/gcc/testsuite/gcc.dg/mips-nmadd-2.c
new file mode 100644 (file)
index 0000000..d0098cb
--- /dev/null
@@ -0,0 +1,30 @@
+/* { dg-do compile { target "mips*-*-*" } } */
+/* { dg-options "-O2 -mips4" } */
+/* { dg-final { scan-assembler "nmadd.s" } } */
+/* { dg-final { scan-assembler "nmadd.d" } } */
+/* { dg-final { scan-assembler "nmsub.s" } } */
+/* { dg-final { scan-assembler "nmsub.d" } } */
+
+float
+sub1 (float f, float g, float h)
+{
+  return -((f * g) + h);
+}
+
+double
+sub2 (double f, double g, double h)
+{
+  return -((f * g) + h);
+}
+
+float
+sub3 (float f, float g, float h)
+{
+  return -((f * g) - h);
+}
+
+double
+sub4 (double f, double g, double h)
+{
+  return -((f * g) - h);
+}