From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id C8B173858C1F; Tue, 22 Nov 2022 12:54:07 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C8B173858C1F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1669121647; bh=vm8s5ArO3dseE9pgo7Rz+8dndVK6vT7nU3whQvxrjPM=; h=From:To:Subject:Date:From; b=AH1nkSMCZw4wxN4JMbD1yxmSpXB1oWy3HLUJmpt3thUKWUnqG54oIQVdhcuFZ2snl Nb81Z5is21XEFrFUo3n//ggpn8i/txgLCQkVsrdcmFzdI4I+fBHTmh/4a+CDvpFGhw fnuki+Mwt1Qmk3dxY6q9Voqx1aibYx463Gk5lR0k= From: "jakub at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/107812] New: [11/12/13 Regression] RTL SSA forwprop introduced regression Date: Tue, 22 Nov 2022 12:54:07 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 13.0 X-Bugzilla-Keywords: missed-optimization X-Bugzilla-Severity: normal X-Bugzilla-Who: jakub 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: bug_id short_desc product version bug_status keywords bug_severity priority component assigned_to reporter cc dependson target_milestone cf_gcctarget Message-ID: 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=3D107812 Bug ID: 107812 Summary: [11/12/13 Regression] RTL SSA forwprop introduced regression Product: gcc Version: 13.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: jakub at gcc dot gnu.org CC: crazylht at gmail dot com, hjl.tools at gmail dot com, jakub at gcc dot gnu.org, law at gcc dot gnu.org, marxin at gcc dot gnu.org, sayle at gcc dot gnu.org, unassigned at gcc dot gnu.org, uros at gcc dot gnu.org, vmakarov at gcc dot gnu.org Depends on: 107627 Target Milestone: --- Target: x86_64-*-* i?86-*-* +++ This bug was initially created as a clone of Bug #107627 +++ static inline unsigned long long qux (unsigned int x, unsigned int y) { return ((unsigned long long) x << 32) | y; } static inline unsigned int corge (unsigned int x, unsigned int y, unsigned z) { return qux (x, y) >> (z % 32); } void garply (unsigned int *x, const unsigned int *y, unsigned z) { x[0] =3D corge (y[0], y[1], z); } with -m32 -O2 -mno-sse on x86_64-linux regressed with r11-6188-g0b76990a9d75d97b84014e37519086b81824c307 Previously: pushl %ebx movl 12(%esp), %ebx movl 16(%esp), %ecx movl (%ebx), %edx movl 4(%ebx), %eax shrdl %edx, %eax movl 8(%esp), %edx movl %eax, (%edx) popl %ebx ret After: pushl %edi xorl %edi, %edi pushl %esi pushl %ebx movl 20(%esp), %ebx movl 24(%esp), %ecx movl 4(%ebx), %esi movl (%ebx), %edx movl %esi, %eax orl %edi, %edx shrdl %edx, %eax movl 16(%esp), %edx movl %eax, (%edx) popl %ebx popl %esi popl %edi ret Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D107627 [Bug 107627] [13 Regression] int128_t shift generates extra xor/or.=