Re: [PATCH] Fix tree parts of PR18041

2011-05-11 Thread Richard Guenther
On Tue, 10 May 2011, Richard Guenther wrote: > And I now get > > FAIL: gcc.target/i386/pr45903.c scan-assembler-not shr[qdl] > > because the optimization Jakub put in place relies on operations > carried out in smaller modes. > > That's of course a conflict of interest. I'm going to sit on thi

Re: [PATCH] Fix tree parts of PR18041

2011-05-11 Thread Richard Guenther
On Tue, 10 May 2011, Steven Bosscher wrote: > On Tue, May 10, 2011 at 1:25 PM, Richard Guenther wrote: > > The generated code is > > the same though, and still contains too many masking operations. > > The lowering you're planning -- does that mean lowering all bitfield > ops for all targets? Yo

Re: [PATCH] Fix tree parts of PR18041

2011-05-10 Thread Steven Bosscher
On Tue, May 10, 2011 at 1:25 PM, Richard Guenther wrote: > The generated code is > the same though, and still contains too many masking operations. The lowering you're planning -- does that mean lowering all bitfield ops for all targets? You've noticed "expand" makes some very conservative assump

Re: [PATCH] Fix tree parts of PR18041

2011-05-10 Thread Richard Guenther
On Tue, 10 May 2011, Richard Guenther wrote: > On Tue, 10 May 2011, Michael Matz wrote: > > > Hi, > > > > On Tue, 10 May 2011, Richard Guenther wrote: > > > > > struct B { > > > unsigned bit0 : 1; > > > unsigned bit1 : 1; > > > }; > > > > > > void > > > foo (struct B *b) > > > { > > > b-

Re: [PATCH] Fix tree parts of PR18041

2011-05-10 Thread Richard Guenther
On Tue, 10 May 2011, Michael Matz wrote: > Hi, > > On Tue, 10 May 2011, Richard Guenther wrote: > > > struct B { > > unsigned bit0 : 1; > > unsigned bit1 : 1; > > }; > > > > void > > foo (struct B *b) > > { > > b->bit0 = b->bit0 | b->bit1; > > } > > > > we with this patch generate > > >

Re: [PATCH] Fix tree parts of PR18041

2011-05-10 Thread Michael Matz
Hi, On Tue, 10 May 2011, Richard Guenther wrote: > struct B { > unsigned bit0 : 1; > unsigned bit1 : 1; > }; > > void > foo (struct B *b) > { > b->bit0 = b->bit0 | b->bit1; > } > > we with this patch generate > > D.2686_2 = b_1(D)->bit0; > D.2688_4 = b_1(D)->bit1; > D.2693_10 = D.2