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
This commit is contained in:
Jakub Jelinek 2016-02-22 15:22:07 +01:00 committed by Jakub Jelinek
parent f91d04e77d
commit 09c92f1c27
4 changed files with 27 additions and 3 deletions

View file

@ -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,

View file

@ -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

View file

@ -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

View file

@ -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 ();
}