From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1892 invoked by alias); 3 Feb 2008 13:29:48 -0000 Received: (qmail 1789 invoked by alias); 3 Feb 2008 13:29:04 -0000 Date: Sun, 03 Feb 2008 13:29:00 -0000 Message-ID: <20080203132904.1788.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug middle-end/34627] Incorrect branching with -Ox on hppa In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "rguenther at suse dot de" 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: 2008-02/txt/msg00292.txt.bz2 ------- Comment #12 from rguenther at suse dot de 2008-02-03 13:29 ------- Subject: Re: Incorrect branching with -Ox on hppa On Sun, 3 Feb 2008, steven at gcc dot gnu dot org wrote: > ------- Comment #10 from steven at gcc dot gnu dot org 2008-02-03 13:19 ------- > The following code from simplify_if_then_else() triggers: > > /* Look for cases where we have (abs x) or (neg (abs X)). */ In fact, this transformation is only valid for signed x because iff x == 0x8000, (abs x) is undefined while (neg x) is not. So depending on how abs is implemented in the md file the transformation may be value changing; thus I suggest to rip it out. Richard. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34627