------- Comment #16 from rguenther at suse dot de  2008-06-22 22:23 -------
Subject: Re:  [4.4 Regression] FAIL:
 gcc.c-torture/execute/20040709-1.c execution at -O2 and above

On Sun, 22 Jun 2008, dave at hiauly1 dot hia dot nrc dot ca wrote:

> 
> 
> ------- Comment #15 from dave at hiauly1 dot hia dot nrc dot ca  2008-06-22 
> 21:34 -------
> Subject: Re:  [4.4 Regression] FAIL: gcc.c-torture/execute/20040709-1.c
> execution at -O2 and above
> 
> > >   x$B0F7_8 = BIT_FIELD_REF <x, 7, 0>;
> > >   D.1258.i ={v} x$i_5;
> > >   D.1258.j ={v} x$j_7;
> > >   SR.12_9 = x$B0F7_8 >> 1;
> > >   BIT_FIELD_REF <D.1258, 7, 0> ={v} SR.12_9;
> > >   return D.1258;
> 
> > Well, SRA is broken (cost-wise at least) since lxos changes.
> 
> Why the shift?  It seems incorrect.

It looks like it is only assigning the 6-bit part of the k, l
combination.  Is the above after the SRA pass in question or after
some more optimizations?

Eventually this is a bit-field-ref vs. BITS_BIG_ENDIAN/BYTES_BIG_ENDIAN
issue -- it was never clear to me how the bit-field position in
a bit-field-ref relates to those.

> SRA also seems to be manipulating the k and l fields together for
> some reason.  Why not all the fields since K is packed and the total
> bit length is less than a word?

The cost metric is of course simply broken.

I'll try to investigate at some point with a cross.

Richard.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35518

Reply via email to