diff options
author | Jakub Jelinek <jakub@redhat.com> | 2016-02-22 15:22:07 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2016-02-22 15:22:07 +0100 |
commit | 09c92f1c27eb8f5028ef5f0164774b6088a493d0 (patch) | |
tree | c1b4c25e80a4b73aab6055d66f956ff80820f7bd /gcc | |
parent | f91d04e77d33e9f09758b6e5cb69a7d5555a3e39 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/m68k/m68k.md | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr69885.c | 13 |
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 (); +} |