From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4546 invoked by alias); 14 Jul 2009 10:51:45 -0000 Received: (qmail 4496 invoked by uid 48); 14 Jul 2009 10:51:31 -0000 Date: Tue, 14 Jul 2009 10:51:00 -0000 Message-ID: <20090714105131.4495.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/39715] [4.5 Regression][cond-optab] extra sign extensions on Thumb In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "bonzini at gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2009-07/txt/msg01101.txt.bz2 ------- Comment #2 from bonzini at gnu dot org 2009-07-14 10:51 ------- Here combine simplifies the zero extension from (lshiftrt:SI (ashift:SI (subreg:SI (reg:QI 138) 0) (const_int 24 [0x18])) (const_int 24 [0x18])) to (ne:SI (subreg:SI (reg:QI 138)). From there it cannot derive anymore that nonzero_bits of the operand is 1 and thus the NE is redundant. But shouldn't the subreg actually be a ZERO_EXTEND? -- bonzini at gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rsandifo at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39715