OSDN Git Service

* gcc.target/mips/dsp-ctrl.c: New test.
authorclm <clm@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 3 Nov 2008 23:58:10 +0000 (23:58 +0000)
committerclm <clm@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 3 Nov 2008 23:58:10 +0000 (23:58 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141569 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/mips/dsp-ctrl.c [new file with mode: 0644]

index 72ef87d..28f2ad9 100644 (file)
@@ -1,3 +1,7 @@
+2008-11-03  Chao-ying Fu  <fu@mips.com>
+
+       * gcc.target/mips/dsp-ctrl.c: New test. 
+
 2008-11-03  Steve Ellcey  <sje@cup.hp.com>
 
        * gfortran.dg/f2003_io_1.f03: XFAIL until PR37839 is fixed.
 2008-11-03  Steve Ellcey  <sje@cup.hp.com>
 
        * gfortran.dg/f2003_io_1.f03: XFAIL until PR37839 is fixed.
diff --git a/gcc/testsuite/gcc.target/mips/dsp-ctrl.c b/gcc/testsuite/gcc.target/mips/dsp-ctrl.c
new file mode 100644 (file)
index 0000000..97e93bc
--- /dev/null
@@ -0,0 +1,80 @@
+/* { dg-do run { target mips*-*-* } } */
+/* { dg-options "-O2" } */
+
+extern void abort (void);
+extern void exit (int);
+#if __mips_dsp
+
+void __attribute__ ((noinline))
+test1 (int i)
+{
+  __builtin_mips_wrdsp (i, 63);
+}
+
+void __attribute__ ((noinline))
+test2 ()
+{
+  long long a = 0;
+  __builtin_mips_extpdp (a, 3);
+}
+
+void __attribute__ ((noinline))
+test3 (int i)
+{
+  long long a = 0;
+  __builtin_mips_extpdp (a, i);
+}
+
+void __attribute__ ((noinline))
+test4 ()
+{
+  long long a = 0;
+  int i = 0;
+  __builtin_mips_mthlip (a, i);
+}
+
+int
+main ()
+{
+  int cntl;
+
+  /* Test 1: wrdsp */
+  __builtin_mips_wrdsp (0,63);
+  test1 (63);
+  cntl = __builtin_mips_rddsp (63);
+  if (cntl != 63)
+    abort ();
+
+  /* Test 2: extpdp */
+  __builtin_mips_wrdsp (63,63);
+  test2 ();
+  cntl = __builtin_mips_rddsp (63);
+  if (cntl != 59)
+    abort ();
+
+  /* Test 3: extpdpv */
+  __builtin_mips_wrdsp (63,63);
+  test3 (10);
+  cntl = __builtin_mips_rddsp (63);
+  if (cntl != 52)
+    abort ();
+
+  /* Test 4: mthlip */
+  __builtin_mips_wrdsp (8,63);
+  test4 ();
+  cntl = __builtin_mips_rddsp (63);
+  if (cntl != 40)
+    abort ();
+
+  exit (0);
+}
+
+#else
+
+int
+main ()
+{
+  exit (0); 
+}
+
+#endif