From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 80F3B3851C2C; Tue, 16 Jun 2020 07:15:11 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 80F3B3851C2C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1592291711; bh=U+7p084rAVzyW0MYjJPkoD+qg5Yyhyf0c21du7K5eo8=; h=From:To:Subject:Date:In-Reply-To:References:From; b=GGkeYkT25pt3OqJg0LZh8OKws0hoWBsQyQUBAv2A49NV4iYq5ykvAtsxYr1bjCl6T duwDA7ZgJZUu2Z81XXGTIU8Q3fMMLJWfiyTyvuwG47VYmhdj1lmgO7+aQpnTaYPTIp 0Echy9QnU1DIqw7aJPuzo82XBtrLLNpiWE0fzyJ8= From: "ubizjak at gmail dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/95632] Redundant zero extension Date: Tue, 16 Jun 2020 07:15:11 +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: 10.1.0 X-Bugzilla-Keywords: missed-optimization X-Bugzilla-Severity: normal X-Bugzilla-Who: ubizjak at gmail dot com X-Bugzilla-Status: NEW 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: 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 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Jun 2020 07:15:11 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D95632 --- Comment #5 from Uro=C5=A1 Bizjak --- (In reply to Mel Chen from comment #2) > Is it possible to pretend that we have a pattern that can match xor (reg:= SI > 80), (reg: SI 72), 0xa001 in combine pass? > And then, if the constant part is too large to put in to the immediate pa= rt, > it can be split to 2 xor in split pass. Please note that the combine pass has its own (rather limited) splitter, it= is documented in the second part of "Defining How to Split Instructions" paragraph. The example is dealing with the instruction that has too large immediate part, and looks similar to your problem.=