aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.target/frv/fr550-builtins-4.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.target/frv/fr550-builtins-4.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/frv/fr550-builtins-4.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/frv/fr550-builtins-4.c b/gcc-4.9/gcc/testsuite/gcc.target/frv/fr550-builtins-4.c
new file mode 100644
index 000000000..801dfee20
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.target/frv/fr550-builtins-4.c
@@ -0,0 +1,48 @@
+/* Test the __M{,D}{ADD,SUB}ACC functions. */
+/* { dg-do run } */
+extern void abort (void);
+extern void exit (int);
+
+int
+main ()
+{
+ __MWTACC (6, 10);
+ __MWTACC (7, 25);
+ __MADDACCS (5, 6);
+ if (__MRDACC (5) != 35)
+ abort ();
+ __MSUBACCS (4, 6);
+ if (__MRDACC (4) != -15)
+ abort ();
+ __MASACCS (4, 6);
+ if (__MRDACC (4) != 35 || __MRDACC (5) != -15)
+ abort ();
+
+ __MWTACC (0, 100);
+ __MWTACC (1, 150);
+ __MWTACC (2, 1000);
+ __MWTACC (3, 1500);
+ __MDADDACCS (2, 0);
+ if (__MRDACC (2) != 250 || __MRDACC (3) != 2500)
+ abort ();
+
+ __MWTACC (0, 100);
+ __MWTACC (1, 150);
+ __MWTACC (2, 1000);
+ __MWTACC (3, 1500);
+ __MDSUBACCS (2, 0);
+ if (__MRDACC (2) != -50 || __MRDACC (3) != -500)
+ abort ();
+
+ __MWTACC (0, 100);
+ __MWTACC (1, 150);
+ __MWTACC (2, 1000);
+ __MWTACC (3, 1500);
+ __MDASACCS (0, 0);
+ if (__MRDACC (0) != 250 || __MRDACC (1) != -50)
+ abort ();
+ if (__MRDACC (2) != 2500 || __MRDACC (3) != -500)
+ abort ();
+
+ exit (0);
+}