From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id EDAAA3858D37; Fri, 21 Apr 2023 07:07:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EDAAA3858D37 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1682060830; bh=mPpX01oyrbmfqZSPC0gJ2itx56xk4pptIJEfShif77Q=; h=From:To:Subject:Date:In-Reply-To:References:From; b=Y1/bRARPe6/lP4w/bsWQ8RCuEyo5x1mnUCEscLpqjmRZh4MVimkqFBJY4fJIlJhTH 2WtgaQtE//eZYj0PaIya/6W3/JUfMLDF1bgPINDW2mRMXr3UyPiU6/Iejlt9wJQdWq IF53G1vEsHVA4quKO90a+5q9E9GO8sKcN1Yezryw= From: "rguenth at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/109573] [12/13/14 regression] ICE in vectorizable_live_operation, at tree-vect-loop.cc:9060 when building chromium's maglev-assembler-x64.cc with -march=ivybridge Date: Fri, 21 Apr 2023 07:07:10 +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, needs-reduction X-Bugzilla-Severity: normal X-Bugzilla-Who: rguenth at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: rguenth at gcc dot gnu.org X-Bugzilla-Target-Milestone: 12.3 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: everconfirmed priority cf_reconfirmed_on bug_status assigned_to 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=3D109573 Richard Biener changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Priority|P3 |P2 Last reconfirmed| |2023-04-21 Status|UNCONFIRMED |ASSIGNED Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot = gnu.org --- Comment #2 from Richard Biener --- The assert is just a bit overzealous. (gdb) p debug_bb ($2) [local count: 708959595]: # prephitmp_152 =3D PHI <_276(45), pretmp_2(46)> # prephitmp_205 =3D PHI <_85(45), pretmp_341(46)> # prephitmp_556 =3D PHI <_86(45), pretmp_298(46)> # prephitmp_353 =3D PHI <_275(45), pretmp_555(46)> result_282 =3D (void *) prephitmp_152; _283 =3D prephitmp_152 + 8; MEM[(struct Zone *)_86].position_ =3D _283; vectp.1975_450 =3D result_282; MEM [(int *)vectp.1975_450] =3D { 0, 0 }; use_stmt is the last stmt so code is SSA_NAME. But it's also an odd SLP gr= aph as we have two graphs we vectorize separately where parts of one graph are used in address computes of another (the addresses we don't model in SLP so we "fail" to merge the SLP graphs). Going to be interesting to see whether a reduced testcase reproduces that. Anyway, the easiest "fix" is to simply remove the assert. The assert is not technically necessary, it's just there trying to "prove" we understand the situations this hack is necessary (I don't think we do ;)).=