6bc475c
--- gcc/config/m68k/m68k.md.jj	2016-01-20 10:55:16.000000000 +0100
6bc475c
+++ gcc/config/m68k/m68k.md	2016-02-22 11:14:01.789697673 +0100
6bc475c
@@ -4544,7 +4544,7 @@ (define_insn "*ashldi3"
6bc475c
 (define_expand "ashldi3"
6bc475c
   [(set (match_operand:DI 0 "register_operand" "")
6bc475c
 	(ashift:DI (match_operand:DI 1 "register_operand" "")
6bc475c
-		   (match_operand 2 "const_int_operand" "")))]
6bc475c
+		   (match_operand:SI 2 "const_int_operand" "")))]
6bc475c
   "!TARGET_COLDFIRE"
6bc475c
 {
6bc475c
   /* ???  This is a named pattern like this is not allowed to FAIL based
6bc475c
@@ -4813,7 +4813,7 @@ (define_insn "ashrdi_const"
6bc475c
 (define_expand "ashrdi3"
6bc475c
   [(set (match_operand:DI 0 "register_operand" "")
6bc475c
 	(ashiftrt:DI (match_operand:DI 1 "register_operand" "")
6bc475c
-		     (match_operand 2 "const_int_operand" "")))]
6bc475c
+		     (match_operand:SI 2 "const_int_operand" "")))]
6bc475c
   "!TARGET_COLDFIRE"
6bc475c
 {
6bc475c
   /* ???  This is a named pattern like this is not allowed to FAIL based
6bc475c
@@ -5082,7 +5082,7 @@ (define_insn "*lshrdi3_const"
6bc475c
 (define_expand "lshrdi3"
6bc475c
   [(set (match_operand:DI 0 "register_operand" "")
6bc475c
 	(lshiftrt:DI (match_operand:DI 1 "register_operand" "")
6bc475c
-		     (match_operand 2 "const_int_operand" "")))]
6bc475c
+		     (match_operand:SI 2 "const_int_operand" "")))]
6bc475c
   "!TARGET_COLDFIRE"
6bc475c
 {
6bc475c
   /* ???  This is a named pattern like this is not allowed to FAIL based
6bc475c
--- gcc/testsuite/gcc.dg/pr69885.c.jj	2016-02-22 11:14:50.981023120 +0100
6bc475c
+++ gcc/testsuite/gcc.dg/pr69885.c	2016-02-22 11:13:45.000000000 +0100
6bc475c
@@ -0,0 +1,13 @@ 
6bc475c
+/* PR target/69885 */
6bc475c
+/* { dg-do compile } */
6bc475c
+/* { dg-options "-O2" } */
6bc475c
+/* { dg-additional-options "-m68000" { target m68k*-*-* } } */
6bc475c
+
6bc475c
+void bar (void);
6bc475c
+
6bc475c
+void
6bc475c
+foo (long long x)
6bc475c
+{
6bc475c
+  if (x >> 1)
6bc475c
+    bar ();
6bc475c
+}