re PR target/46088 (ICE: SIGSEGV in ix86_binary_operator_ok (i386.c:15025) with -Os -fnon-call-exceptions -fpeel-loops)
PR target/46088 * config/i386/i386.md (*ashl<mode>3_cconly, *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok, change nonimmediate_operand predicate to register_operand. * gcc.dg/pr46088.c: New test. From-SVN: r166635
This commit is contained in:
parent
8fb1546627
commit
94252ac254
4 changed files with 97 additions and 75 deletions
|
@ -1,3 +1,10 @@
|
|||
2010-11-12 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR target/46088
|
||||
* config/i386/i386.md (*ashl<mode>3_cconly,
|
||||
*<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
|
||||
change nonimmediate_operand predicate to register_operand.
|
||||
|
||||
2010-11-11 Paolo Bonzini <bonzini@gnu.org>
|
||||
|
||||
* Makefile.in (gengtype-lex.c): Include bconfig.h first.
|
||||
|
|
|
@ -9714,7 +9714,7 @@
|
|||
(define_insn "*ashl<mode>3_cconly"
|
||||
[(set (reg FLAGS_REG)
|
||||
(compare
|
||||
(ashift:SWI (match_operand:SWI 1 "nonimmediate_operand" "0")
|
||||
(ashift:SWI (match_operand:SWI 1 "register_operand" "0")
|
||||
(match_operand:QI 2 "<shift_immediate_operand>" "<S>"))
|
||||
(const_int 0)))
|
||||
(clobber (match_scratch:SWI 0 "=<r>"))]
|
||||
|
@ -9723,8 +9723,7 @@
|
|||
|| (operands[2] == const1_rtx
|
||||
&& (TARGET_SHIFT1
|
||||
|| TARGET_DOUBLE_WITH_ADD)))
|
||||
&& ix86_match_ccmode (insn, CCGOCmode)
|
||||
&& ix86_binary_operator_ok (ASHIFT, <MODE>mode, operands)"
|
||||
&& ix86_match_ccmode (insn, CCGOCmode)"
|
||||
{
|
||||
switch (get_attr_type (insn))
|
||||
{
|
||||
|
@ -10081,7 +10080,7 @@
|
|||
[(set (reg FLAGS_REG)
|
||||
(compare
|
||||
(any_shiftrt:SWI
|
||||
(match_operand:SWI 1 "nonimmediate_operand" "0")
|
||||
(match_operand:SWI 1 "register_operand" "0")
|
||||
(match_operand:QI 2 "<shift_immediate_operand>" "<S>"))
|
||||
(const_int 0)))
|
||||
(clobber (match_scratch:SWI 0 "=<r>"))]
|
||||
|
@ -10089,8 +10088,7 @@
|
|||
|| !TARGET_PARTIAL_FLAG_REG_STALL
|
||||
|| (operands[2] == const1_rtx
|
||||
&& TARGET_SHIFT1))
|
||||
&& ix86_match_ccmode (insn, CCGOCmode)
|
||||
&& ix86_binary_operator_ok (<CODE>, <MODE>mode, operands)"
|
||||
&& ix86_match_ccmode (insn, CCGOCmode)"
|
||||
{
|
||||
if (operands[2] == const1_rtx
|
||||
&& (TARGET_SHIFT1 || optimize_function_for_size_p (cfun)))
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2010-11-12 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR target/46088
|
||||
* gcc.dg/pr46088.c: New test.
|
||||
|
||||
2010-11-11 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||
|
||||
* gfortran.dg/empty_derived_type.f90: New test.
|
||||
|
@ -1016,7 +1021,7 @@
|
|||
PR target/46253
|
||||
* gcc.target/i386/pr46253.c: New.
|
||||
|
||||
2010-11-02 Steven G. Kargl < kargl@gcc.gnu.org>
|
||||
2010-11-02 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||
Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/45170
|
||||
|
@ -3107,7 +3112,7 @@
|
|||
* gfortran.dg/io_constraints_7.f03: New test.
|
||||
* gfortran.dg/newunit_2.f90: New test.
|
||||
|
||||
2010-09-24 Steven G. Kargl < kargl@gcc.gnu.org>
|
||||
2010-09-24 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||
|
||||
* gfortran.dg/operator_c1202.f90: New test.
|
||||
|
||||
|
|
12
gcc/testsuite/gcc.dg/pr46088.c
Normal file
12
gcc/testsuite/gcc.dg/pr46088.c
Normal file
|
@ -0,0 +1,12 @@
|
|||
/* PR target/46088 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-Os -fnon-call-exceptions -fpeel-loops" } */
|
||||
|
||||
extern void bar (void);
|
||||
|
||||
void
|
||||
foo (int i)
|
||||
{
|
||||
if (i >> 3)
|
||||
bar ();
|
||||
}
|
Loading…
Add table
Reference in a new issue