Patchwork [i386] : Fix PR target/45327, ICE: SIGSEGV in rtx_equal_p

login
register
mail settings
Submitter Uros Bizjak
Date Aug. 18, 2010, 10:46 p.m.
Message ID <AANLkTinfP6yXfynzTtw=Y_nWhGGRh-fzDkn7RhHYxWvQ@mail.gmail.com>
Download mbox | patch
Permalink /patch/62094/
State New
Headers show

Comments

Uros Bizjak - Aug. 18, 2010, 10:46 p.m.
Hello!

ix86_binary_operator_ok needs output operand in addition to two input operands.

2010-08-18  Uros Bizjak  <ubizjak@gmail.com>

	PR target/45327
	* config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
	ix86_binary_operator_ok.

Tested on x86_64-pc-linux-gnu and committed to 4.5 and SVN mainline.

Uros.
H.J. Lu - Aug. 18, 2010, 11:06 p.m.
On Wed, Aug 18, 2010 at 3:46 PM, Uros Bizjak <ubizjak@gmail.com> wrote:
> Hello!
>
> ix86_binary_operator_ok needs output operand in addition to two input operands.
>
> 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
>
>        PR target/45327
>        * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
>        ix86_binary_operator_ok.
>
> Tested on x86_64-pc-linux-gnu and committed to 4.5 and SVN mainline.
>

Can you add the testcase?

Thanks.
Uros Bizjak - Aug. 18, 2010, 11:25 p.m.
On Wed, 2010-08-18 at 16:06 -0700, H.J. Lu wrote:
> On Wed, Aug 18, 2010 at 3:46 PM, Uros Bizjak <ubizjak@gmail.com> wrote:
> > Hello!
> >
> > ix86_binary_operator_ok needs output operand in addition to two input operands.
> >
> > 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
> >
> >        PR target/45327
> >        * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
> >        ix86_binary_operator_ok.
> >
> > Tested on x86_64-pc-linux-gnu and committed to 4.5 and SVN mainline.
> >
> 
> Can you add the testcase?

Well, it was a typo, so I think we can live without.  No way this
failure triggers again.

Uros.

Patch

Index: i386.md
===================================================================
--- i386.md	(revision 163353)
+++ i386.md	(working copy)
@@ -8456,7 +8456,7 @@ 
 		 (const_int 0)))
    (clobber (match_scratch:SWI 0 "=<r>"))]
   "ix86_match_ccmode (insn, CCNOmode)
-   && ix86_binary_operator_ok (<CODE>, <MODE>mode, operands)"
+   && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
   "<logic>{<imodesuffix>}\t{%2, %0|%0, %2}"
   [(set_attr "type" "alu")
    (set_attr "mode" "<MODE>")])