From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 8628C3858D28; Fri, 3 Nov 2023 10:30:20 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8628C3858D28 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1699007420; bh=JNGTNQQMAiRsk/YQOgA+hrUEuPyTFLBmHWfBS8v2i5E=; h=From:To:Subject:Date:In-Reply-To:References:From; b=gVf7VELh++cEiOFKD/urFv57sjyEnnvFfGH6jvpB5c5LCqPJ/8vmhLnNd352z5c1/ ZQWKBU8mjnR8l4KOlieTmPqJeeElGTGUldM7nSc91pkiFileHVjZZJyrWW88vdQZK+ DVYN8sqgitTDTspeZaIVHSrFlR3EYNhDt7jskn+8= From: "rguenth at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/112366] ICE in vectorizable_live_operation, at tree-vect-loop.cc:10798 Date: Fri, 03 Nov 2023 10:30:20 +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: 14.0 X-Bugzilla-Keywords: ice-checking X-Bugzilla-Severity: normal X-Bugzilla-Who: rguenth at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: rguenth 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 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D112366 --- Comment #3 from Richard Biener --- _33 =3D (int) rd_27; ... _103 =3D _93 ^ _33; <--- use of _33 ... __asm__("" : "=3Dr" rd_41 : "" tt2_40); _113 =3D {rd_27, rd_41}; vect__33.17_123 =3D (vector(2) int) _113; _133 =3D BIT_FIELD_REF ; _42 =3D (int) rd_41; and here's the vector result of the conversion. The { rd_27, rd_41 } CTOR can appear only after the last scalar def but there are other uses of the components earlier. The other uses are not really constrained in any way, so the assert is bougs. I'll just remove it. Ideally we'd avoid having any scalar ops participating in the SLP that dominate any of the external defs (as traditionally external defs happen before the vector code, not interleaved as we have it here after we build operands from scalar defs from inside the vectorized region).=