summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/mips/extend-1.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.target/mips/extend-1.c')
-rw-r--r--gcc/testsuite/gcc.target/mips/extend-1.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/mips/extend-1.c b/gcc/testsuite/gcc.target/mips/extend-1.c
new file mode 100644
index 000000000..429510686
--- /dev/null
+++ b/gcc/testsuite/gcc.target/mips/extend-1.c
@@ -0,0 +1,14 @@
+/* { dg-options "-O -mgp64 forbid_cpu=octeon" } */
+/* { dg-final { scan-assembler-times "\tdsll\t" 5 } } */
+/* { dg-final { scan-assembler-times "\tdsra\t" 5 } } */
+/* { dg-final { scan-assembler-not "\tsll\t" } } */
+
+#define TEST_CHAR(T, N) \
+ NOMIPS16 T f##N (long long d, T *a, T *r) { T b = (char) d; *r = b + *a; }
+#define TEST_SHORT(T, N) \
+ NOMIPS16 T g##N (long long d, T *a, T *r) { T b = (short) d; *r = b + *a; }
+#define TEST(T, N) TEST_CHAR (T, N) TEST_SHORT (T, N)
+
+TEST (int, 1);
+TEST (long long, 2);
+TEST_CHAR (short, 3);