From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 662493858C2F; Tue, 6 Sep 2022 04:49:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 662493858C2F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1662439772; bh=/b9DgQMtW/ZRfGqATuLUEWZP3egHjHvXOKXId2ibdFI=; h=From:To:Subject:Date:In-Reply-To:References:From; b=lddQefilVZUn75Jurb8zYUyGxAgBqy3xIb4Cdwur6BLoskdbFe714cmL6AruTUWhH lvkqVUsGnB63RDeAbkqwQ5FYZRrkCM77nFqm6RkLCWOcksyUJHvtEOOk68ISLMynll 3pciqMrV0XRhY95j/7PNW0TvLSOSnxExgGvUYFKE= From: "marxin at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/106841] [12/13 Regression] ICE in vect_get_vec_defs_for_operand, at tree-vect-stmts.cc:1509 since r12-2733-g31855ba6b16cd138 Date: Tue, 06 Sep 2022 04:49:32 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Version: 12.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: marxin at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 12.3 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: short_desc bug_status target_milestone cf_reconfirmed_on cc everconfirmed 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=3D106841 Martin Li=C5=A1ka changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|ice in |[12/13 Regression] ICE in |vect_get_vec_defs_for_opera |vect_get_vec_defs_for_opera |nd, at |nd, at |tree-vect-stmts.cc:1509 |tree-vect-stmts.cc:1509 | |since | |r12-2733-g31855ba6b16cd138 Status|UNCONFIRMED |NEW Target Milestone|--- |12.3 Last reconfirmed| |2022-09-06 CC| |marxin at gcc dot gnu.org, | |rguenth at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #3 from Martin Li=C5=A1ka --- Thanks for the report! Reduced to: $ cat pr106841.C struct R3 { double z; R3(R3 A, R3 B) : z(B.z - A.z) {} double norme() { return z; } }; struct TBoundaryEdge { int *vertices[2]; int &operator[](int i) { return *vertices[i]; } }; struct Mesh { int vertices; TBoundaryEdge *bedges; int operator()(int &vv) { return &vv - &vertices; } TBoundaryEdge be(int i) { return bedges[i]; } }; template struct GenericElement { typedef typename Data::V Vertex; static const int nv =3D Data::NbOfVertices; Vertex *vertices[nv]; double mes; void set(int *iv) { Vertex *v0; for (int i =3D 0; i < nv; ++i) vertices[i] =3D v0 + iv[i]; mes =3D Data::mesure(vertices); } }; struct DataSeg3 { static const int NbOfVertices =3D 2; typedef R3 V; static double mesure(V *pv[]) { return R3(*pv[0], *pv[1]).norme(); } }; struct MeshS { MeshS(); }; template struct Movemesh_Op { int operator()() const; }; template <> int Movemesh_Op::operator()() const { Mesh pTh; GenericElement *bS =3D new GenericElement; for (int ibe; ibe; ibe++) { TBoundaryEdge K(pTh.be(ibe)); int iv[2]; for (int i =3D 0; i < 2; i++) { int &__trans_tmp_2 =3D K[i]; iv[i] =3D pTh(__trans_tmp_2); } bS[ibe].set(iv); } MeshS T_Th; } $ g++ pr106841.C -c -w -O3 -ffast-math -march=3Dbdver2 during GIMPLE pass: vect pr106841.C: In member function =E2=80=98int Movemesh_Op< >::operator()() const [with =3D int]=E2=80=99: pr106841.C:37:17: internal compiler error: in vect_get_vec_defs_for_operand= , at tree-vect-stmts.cc:1509 37 | template <> int Movemesh_Op::operator()() const { | ^~~~~~~~~~~~~~~~ 0x9ea8b8 vect_get_vec_defs_for_operand(vec_info*, _stmt_vec_info*, unsigned int, tree_node*, vec*, tree_node*) /home/marxin/Programming/gcc/gcc/tree-vect-stmts.cc:1509 0x2236ade vect_get_gather_scatter_ops /home/marxin/Programming/gcc/gcc/tree-vect-stmts.cc:3066 0x2247d85 vectorizable_load /home/marxin/Programming/gcc/gcc/tree-vect-stmts.cc:9627 0x2250120 vect_transform_stmt(vec_info*, _stmt_vec_info*, gimple_stmt_iterator*, _slp_tree*, _slp_instance*) /home/marxin/Programming/gcc/gcc/tree-vect-stmts.cc:11344 0x15081f1 vect_transform_loop_stmt /home/marxin/Programming/gcc/gcc/tree-vect-loop.cc:9606 0x1523202 vect_transform_loop(_loop_vec_info*, gimple*) /home/marxin/Programming/gcc/gcc/tree-vect-loop.cc:10042 0x15649de vect_transform_loops /home/marxin/Programming/gcc/gcc/tree-vectorizer.cc:1007 0x1564fbf try_vectorize_loop_1 /home/marxin/Programming/gcc/gcc/tree-vectorizer.cc:1153 0x1564fbf try_vectorize_loop /home/marxin/Programming/gcc/gcc/tree-vectorizer.cc:1183 0x1565354 execute /home/marxin/Programming/gcc/gcc/tree-vectorizer.cc:1299 Please submit a full bug report, with preprocessed source (by using -freport-bug). Please include the complete backtrace with any bug report. See for instructions. And it started with r12-2733-g31855ba6b16cd138=