[Bug rtl-optimization/29797] Miscompiles bit test / set in OpenOffice

2006-11-10 Thread pinskia at gcc dot gnu dot org
--- Comment #11 from pinskia at gcc dot gnu dot org 2006-11-10 17:28 --- This is a regression because I know that code is new, Roger added it -- pinskia at gcc dot gnu dot org changed: What|Removed |Added -

[Bug rtl-optimization/29797] Miscompiles bit test / set in OpenOffice

2006-11-10 Thread matz at gcc dot gnu dot org
--- Comment #10 from matz at gcc dot gnu dot org 2006-11-10 16:48 --- Yes, I think all uses in combine.c are okay. In addition also the occurrence in rtlanal.c is okay, as it doesn't use the bitpos, but the width in bits to generate the mask, I just misread that part. I now looked at a

[Bug rtl-optimization/29797] Miscompiles bit test / set in OpenOffice

2006-11-10 Thread schwab at suse dot de
--- Comment #9 from schwab at suse dot de 2006-11-10 16:27 --- (In reply to comment #7) > combine.c:find_split_point: When the destination is a zero_extract, it does > adjust the bitpos when BITS_BIG_ENDIAN, but it doesn't look at > BYTES_BIT_ENDIAN at all. I think this is ok, because w

[Bug rtl-optimization/29797] Miscompiles bit test / set in OpenOffice

2006-11-10 Thread matz at gcc dot gnu dot org
--- Comment #8 from matz at gcc dot gnu dot org 2006-11-10 15:51 --- At least this patch fixes the bug at hand, but I'm sceptical if by chance or for real: Index: ifcvt.c === --- ifcvt.c (revision 118648) +++ ifcvt.c

[Bug rtl-optimization/29797] Miscompiles bit test / set in OpenOffice

2006-11-10 Thread matz at gcc dot gnu dot org
--- Comment #7 from matz at gcc dot gnu dot org 2006-11-10 15:47 --- Just from looking at various places which handle ZERO_EXTRACT this seems to by used highly inconsistent. E.g.: rtlanal:nonzero_bits1: Doesn't look at BITS_BIG_ENDIAN or BYTES_BIG_ENDIAN at all, but does use the bitpos

[Bug rtl-optimization/29797] Miscompiles bit test / set in OpenOffice

2006-11-10 Thread rguenth at gcc dot gnu dot org
--- Comment #6 from rguenth at gcc dot gnu dot org 2006-11-10 15:45 --- Note that we still cannot do this transformation on the tree-level. There were some patches for that though: http://gcc.gnu.org/ml/gcc-patches/2006-08/msg00390.html -- http://gcc.gnu.org/bugzilla/show_bug.cgi?i

[Bug rtl-optimization/29797] Miscompiles bit test / set in OpenOffice

2006-11-10 Thread ebotcazou at gcc dot gnu dot org
--- Comment #5 from ebotcazou at gcc dot gnu dot org 2006-11-10 15:01 --- In case someone is still doubtful. :-) -- ebotcazou at gcc dot gnu dot org changed: What|Removed |Added -

[Bug rtl-optimization/29797] Miscompiles bit test / set in OpenOffice

2006-11-10 Thread rguenth at gcc dot gnu dot org
--- Comment #4 from rguenth at gcc dot gnu dot org 2006-11-10 14:35 --- /* Optimize away "if (x & C) x |= C" and similar bit manipulation transformations. */ static int noce_try_bitop (struct noce_if_info *if_info) { ... /* ??? We could also handle AND here. */ if (GET_CODE (co

[Bug rtl-optimization/29797] Miscompiles bit test / set in OpenOffice

2006-11-10 Thread rguenth at gcc dot gnu dot org
--- Comment #3 from rguenth at gcc dot gnu dot org 2006-11-10 13:28 --- combine combines (insn 10 8 11 2 (parallel [ (set (reg:SI 121) (and:SI (reg/v:SI 119 [ nStyle ]) (const_int 32768 [0x8000]))) (clobber (scratch:CC))