This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/43438] [4.3/4.4/4.5 Regression] possible wrong code bug
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 19 Mar 2010 12:40:48 -0000
- Subject: [Bug rtl-optimization/43438] [4.3/4.4/4.5 Regression] possible wrong code bug
- References: <bug-43438-12544@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #7 from rguenth at gcc dot gnu dot org 2010-03-19 12:40 -------
make_extraction (mode=SImode, inner=0x7ffff5b48ac8, pos=0, pos_rtx=0x0, len=8,
unsignedp=1, in_dest=0, in_compare=0)
at /space/rguenther/src/svn/trunk/gcc/combine.c:6648
6648 enum machine_mode is_mode = GET_MODE (inner);
(gdb) call debug_rtx (inner)
(subreg:SI (ior:QI (subreg:QI (ior:SI (reg:SI 67 [ g_9 ])
(const_int 1 [0x1])) 0)
(const_int -2 [0xfffffffffffffffe])) 0)
if (CONST_INT_P (new_rtx))
return gen_int_mode (INTVAL (new_rtx), mode);
misses the nececssary truncation. Dropping the special casing works
(but doesn't optimize). Fixing the appearantly many issues works as well.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43438