From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27651 invoked by alias); 21 May 2009 10:49:23 -0000 Received: (qmail 27622 invoked by uid 48); 21 May 2009 10:49:13 -0000 Date: Thu, 21 May 2009 10:49:00 -0000 Message-ID: <20090521104913.27621.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: "rearnsha at gcc dot 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-05/txt/msg01789.txt.bz2 ------- Comment #1 from rearnsha at gcc dot gnu dot org 2009-05-21 10:49 ------- Another case, compile with -mcpu=arm1136jf-s -mthumb -O2 void f(unsigned a, unsigned b, unsigned c, unsigned d) { if (a <= b || c > d) foo(); else bar(); } f: push {r4, lr} cmp r3, r2 sbc r2, r2, r2 @ r2 = 0 or -1 neg r2, r2 @ r2 = 0 or 1 cmp r2, #0 beq .L7 .L5: bl foo .L1: @ sp needed for prologue pop {r4, pc} .L7: cmp r1, r0 @ r2 = 0 (by flow control) adc r2, r2, r2 @ r2 = 0 / 1 uxtb r2, r2 @ so this is redundant cmp r2, #0 bne .L5 bl bar b .L1 -- rearnsha at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2009-05-21 10:49:12 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39715