From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id D9C523858C31; Wed, 27 Mar 2024 19:08:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D9C523858C31 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1711566525; bh=idHTWELs39wAmLlcgS/XA4X1xxbBl+REJPrUlJj98c4=; h=From:To:Subject:Date:In-Reply-To:References:From; b=rv1UPDc7eHK1MJVIxMghVyiVeWVpGKXqJH5ElfgzMUEH7lzxd6YWuA1QrCo5PBbFV NRxl14tOhYBea6H6EjQ0StcfVoW/URMWqxyKD03OX6nM2gVPsJRXRQuYOU0UfFEe6m lDNtyLuur8kB3Ml/Bj5NqGA3ZW6elmzBh/M42fI0= From: "pinskia at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/114490] Optimization: x86 "shl" condition codes never reused Date: Wed, 27 Mar 2024 19:08:39 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 13.2.0 X-Bugzilla-Keywords: missed-optimization X-Bugzilla-Severity: enhancement X-Bugzilla-Who: pinskia at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: keywords bug_severity Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D114490 Andrew Pinski changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |missed-optimization Severity|normal |enhancement --- Comment #6 from Andrew Pinski --- (In reply to Kang-Che Sung from comment #4) > I don't know if GCC > can do this internally. If GCC can't do this for now, that's OK for me (t= he > example I posted can be rewritten to another pattern that might produce e= ven > smaller code in x86). But maybe label this as a WONTFIX and not INVALID? The way GCC tracks the flags register is either clobber or set. Almost never merge. In the case of the shift it is either set (for constant case) or clobber.=20 Changing this will almost surely be a very invasive patch to the backend fo= r a very small gain. I will leave it up to the target maintainers to decide if = they want to do it or not.=