aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2016-02-22 15:22:07 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2016-02-22 15:22:07 +0100
commit09c92f1c27eb8f5028ef5f0164774b6088a493d0 (patch)
treec1b4c25e80a4b73aab6055d66f956ff80820f7bd /gcc
parentf91d04e77d33e9f09758b6e5cb69a7d5555a3e39 (diff)
downloadgcc-09c92f1c27eb8f5028ef5f0164774b6088a493d0.zip
gcc-09c92f1c27eb8f5028ef5f0164774b6088a493d0.tar.gz
gcc-09c92f1c27eb8f5028ef5f0164774b6088a493d0.tar.bz2
re PR bootstrap/69885 (ICE in maybe_legitimize_operand, at optabs.c:6903 on m68k-linux-gnu)
PR target/69885 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use SImode for last match_operand. * gcc.dg/pr69885.c: New test. From-SVN: r233603
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/m68k/m68k.md6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr69885.c13
4 files changed, 27 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3230400..6d1a557 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-02-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/69885
+ * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
+ SImode for last match_operand.
+
2016-02-22 Martin Liska <mliska@suse.cz>
* hsa-gen.c (gen_hsa_clrsb): In case of zero value,
diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md
index 5731780..ec37bd7 100644
--- a/gcc/config/m68k/m68k.md
+++ b/gcc/config/m68k/m68k.md
@@ -4544,7 +4544,7 @@
(define_expand "ashldi3"
[(set (match_operand:DI 0 "register_operand" "")
(ashift:DI (match_operand:DI 1 "register_operand" "")
- (match_operand 2 "const_int_operand" "")))]
+ (match_operand:SI 2 "const_int_operand" "")))]
"!TARGET_COLDFIRE"
{
/* ??? This is a named pattern like this is not allowed to FAIL based
@@ -4813,7 +4813,7 @@
(define_expand "ashrdi3"
[(set (match_operand:DI 0 "register_operand" "")
(ashiftrt:DI (match_operand:DI 1 "register_operand" "")
- (match_operand 2 "const_int_operand" "")))]
+ (match_operand:SI 2 "const_int_operand" "")))]
"!TARGET_COLDFIRE"
{
/* ??? This is a named pattern like this is not allowed to FAIL based
@@ -5082,7 +5082,7 @@
(define_expand "lshrdi3"
[(set (match_operand:DI 0 "register_operand" "")
(lshiftrt:DI (match_operand:DI 1 "register_operand" "")
- (match_operand 2 "const_int_operand" "")))]
+ (match_operand:SI 2 "const_int_operand" "")))]
"!TARGET_COLDFIRE"
{
/* ??? This is a named pattern like this is not allowed to FAIL based
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 927af63..0b82dae 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2016-02-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/69885
+ * gcc.dg/pr69885.c: New test.
+
2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
PR target/69806
diff --git a/gcc/testsuite/gcc.dg/pr69885.c b/gcc/testsuite/gcc.dg/pr69885.c
new file mode 100644
index 0000000..e3a218b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr69885.c
@@ -0,0 +1,13 @@
+/* PR target/69885 */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+/* { dg-additional-options "-m68000" { target m68k*-*-* } } */
+
+void bar (void);
+
+void
+foo (long long x)
+{
+ if (x >> 1)
+ bar ();
+}