aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames E Wilson <wilson@specifixinc.com>2004-08-17 21:42:44 +0000
committerJim Wilson <wilson@gcc.gnu.org>2004-08-17 14:42:44 -0700
commit743a0a34cafa5fe742274f8b36afc3ca948a10f0 (patch)
tree723739641f016c76c5e59e9fbad19dcb06658850
parent67e90093984469e9d9b8573092e09d5ef47decc5 (diff)
downloadgcc-743a0a34cafa5fe742274f8b36afc3ca948a10f0.zip
gcc-743a0a34cafa5fe742274f8b36afc3ca948a10f0.tar.gz
gcc-743a0a34cafa5fe742274f8b36afc3ca948a10f0.tar.bz2
Testcases for canonical mips nmadd/nmsub patterns with or w/o fast-math.
* gcc.dg/mips-nmadd-1.c: New test. * gcc.dg/mips-nmadd-2.c: New test. From-SVN: r86147
-rw-r--r--gcc/testsuite/ChangeLog3
-rw-r--r--gcc/testsuite/gcc.dg/mips-nmadd-1.c30
-rw-r--r--gcc/testsuite/gcc.dg/mips-nmadd-2.c30
3 files changed, 63 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 74abe0e..1a4dad7 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
index 0000000..1d84042
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/mips-nmadd-1.c
@@ -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
index 0000000..d0098cb
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/mips-nmadd-2.c
@@ -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);
+}