summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/mips/octeon-exts-4.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.target/mips/octeon-exts-4.c')
-rw-r--r--gcc/testsuite/gcc.target/mips/octeon-exts-4.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/mips/octeon-exts-4.c b/gcc/testsuite/gcc.target/mips/octeon-exts-4.c
new file mode 100644
index 000000000..7e6a578a1
--- /dev/null
+++ b/gcc/testsuite/gcc.target/mips/octeon-exts-4.c
@@ -0,0 +1,20 @@
+/* { dg-do compile } */
+/* { dg-options "-O -march=octeon -mgp64" } */
+/* { dg-final { scan-assembler-not "\tsll\t\[^\n\]*,0" } } */
+/* { dg-final { scan-assembler-times "\texts\t" 6 } } */
+
+#define TEST(ID, TYPE, SHIFT) \
+ int NOMIPS16 \
+ f##ID (long long y) \
+ { \
+ return (TYPE) ((TYPE) (y >> SHIFT) + 1); \
+ } \
+ int NOMIPS16 \
+ g##ID (unsigned long long y) \
+ { \
+ return (TYPE) ((TYPE) (y >> SHIFT) + 1); \
+ }
+
+TEST (1, int, 10)
+TEST (2, short, 5)
+TEST (3, char, 31)