From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 5EDF9385624E; Tue, 5 Jul 2022 08:10:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5EDF9385624E From: "rguenth at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/106192] [11/12/13 Regression] ICE in vect_loop_versioning, at tree-vect-loop-manip.cc:3522 Date: Tue, 05 Jul 2022 08:10:55 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: tree-optimization X-Bugzilla-Version: 13.0 X-Bugzilla-Keywords: ice-on-valid-code, needs-bisection, openmp X-Bugzilla-Severity: normal X-Bugzilla-Who: rguenth at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 11.4 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: cc everconfirmed bug_status keywords cf_known_to_work priority cf_known_to_fail cf_reconfirmed_on 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, 05 Jul 2022 08:10:56 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D106192 Richard Biener changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org, | |matz at gcc dot gnu.org, | |rguenth at gcc dot gnu.org Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Keywords| |needs-bisection Known to work| |10.3.0 Priority|P3 |P2 Known to fail| |11.3.0, 12.1.0, 13.0 Last reconfirmed| |2022-07-05 --- Comment #1 from Richard Biener --- Confirmed. LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND is _15 and we have the loop header [local count: 696725737]: # i.2_29 =3D PHI <1(3), i.2_22(11)> # ivtmp_24 =3D PHI <100(3), ivtmp_16(11)> .GOMP_SIMD_LANE (simduid.6_17(D), 0, _12); _13 =3D i.2_29 + -1; _18 =3D (integer(kind=3D8)) _13; _19 =3D a[_18]; _20 =3D _19 + 1; a[_18] =3D _20; i.2_22 =3D i.2_29 + 1; _3 =3D j.0_28 + 1; _15 =3D _3 <=3D 59; .GOMP_SIMD_LANE (simduid.6_17(D), 0, _15); _8 =3D _19 + 2; a[_18] =3D _8; ivtmp_16 =3D ivtmp_24 - 1; if (ivtmp_16 !=3D 0) goto ; [87.50%] else goto ; [12.50%] so the bb !=3D loop->header part of the assert already fires. The condition is loop invariant but it wasn't hoisted for some reason. Or rather it looks like we unrolled the loop once which we might not do to .GOMP_SIMD_LA= NE bbs IIRC. unroll-and-jam does this.=