aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.target/frv/fr450-builtins-9.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.target/frv/fr450-builtins-9.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.target/frv/fr450-builtins-9.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/frv/fr450-builtins-9.c b/gcc-4.9/gcc/testsuite/gcc.target/frv/fr450-builtins-9.c
new file mode 100644
index 000000000..5f32ba281
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.target/frv/fr450-builtins-9.c
@@ -0,0 +1,23 @@
+/* Test a situation in which an M6 instruction (mdcutssi) and M4 instruction
+ (mqmulhu) can be issued together. */
+/* { dg-options "-O2 -mcpu=fr450" } */
+/* { dg-do compile } */
+/* { dg-final { scan-assembler "mqmulhu.p\[^\t\]*\t*mdcutssi" } } */
+extern void abort (void);
+extern void exit (int);
+
+int
+main ()
+{
+ __MQMULHU (0, 0x0001001101111111ULL, 0x0001000200030004ULL);
+ __MQMULHU (8, 0x0002002202222222ULL, 0x0004000400040004ULL);
+ if (__MDCUTSSI (0, 8)
+ + __MDCUTSSI (2, 8)
+ + __MDCUTSSI (8, 8)
+ + __MDCUTSSI (10, 8)
+ != (0x0000000100000022ULL + 0x0000033300004444ULL
+ + 0x0000000800000088ULL + 0x0000088800008888ULL))
+ abort ();
+
+ exit (0);
+}