From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 03C1E3943548; Wed, 2 Sep 2020 14:54:44 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 03C1E3943548 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1599058485; bh=vV36guZDRXPIEjYidfy0M103ugdjQDaQK/0lM4o2SE4=; h=From:To:Subject:Date:In-Reply-To:References:From; b=KPaGiuLSgO49ar8Krmfu3Jg4kqA9GQU4yv/M76tNCte+HngxfDLmS0kdh5BJ+li94 BaMeftP3MzV+duNjr7kZBAp0u65GqnT2wFtQnDir0AEvGIehwyh+bEv9ALwI0Xl+mv n+gig1b7HtfmWuwJbl1hdH/3wOW/Vu85uAc6Txb0= From: "marxin at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/96814] [11 Regression] wrong code with -march=cascadelake since r11-1445-g502d63b6d6141597 Date: Wed, 02 Sep 2020 14:54:44 +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: 11.0 X-Bugzilla-Keywords: wrong-code X-Bugzilla-Severity: normal X-Bugzilla-Who: marxin at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: marxin at gcc dot gnu.org X-Bugzilla-Target-Milestone: 11.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: cc 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: Wed, 02 Sep 2020 14:54:45 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D96814 Martin Li=C5=A1ka changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu.org --- Comment #2 from Martin Li=C5=A1ka --- So before the revision we generated: _1 =3D { 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }; _2 =3D VEC_COND_EXPR <_1, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -= 1, -1, -1, -1, -1 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }>; _3 =3D VIEW_CONVERT_EXPR(_2); x =3D _3; but now we have: : _1 =3D { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; _24 =3D VIEW_CONVERT_EXPR(_1); _25 =3D { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; _26 =3D BIT_FIELD_REF <_25, 1, 0>; _27 =3D _26; _28 =3D { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 = }; _29 =3D BIT_FIELD_REF <_28, 1, 0>; _30 =3D _29; _31 =3D _24 & 1; _32 =3D _31 !=3D 0 ? _27 : _30; ... _151 =3D _24 & 32768; _152 =3D _151 !=3D 0 ? _147 : _150; _2 =3D {_32, _40, _48, _56, _64, _72, _80, _88, _96, _104, _112, _120, _1= 28, _136, _144, _152}; _3 =3D .VCOND_MASK (_2, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,= -1, -1, -1, -1 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }); _4 =3D VIEW_CONVERT_EXPR(_3); x =3D _4; i_15 =3D 0; goto ; [INV] It's because veclower sees: _1 =3D { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; _2 =3D VEC_COND_EXPR <_1, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, = 0 }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }>; _3 =3D VEC_COND_EXPR <_2, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -= 1, -1, -1, -1, -1 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }>; _4 =3D VIEW_CONVERT_EXPR(_3); and if I see correctly the creation of the mask _2 is broken in RTL (probab= ly one can't build one from a vector costructor)? Anyway SSA_NAMEs like _128 don't have any use. @Richi: Can you please help me with that? I'm looking into it for quite some time :/=