From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 22C243860017; Wed, 3 Jun 2020 06:22:46 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 22C243860017 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1591165366; bh=g6EnCGh9r1vbly6DuHVJ2pTxDVAu0kZ6RHXdoTmE5bg=; h=From:To:Subject:Date:In-Reply-To:References:From; b=lxvsPXhGrYG/YzjO1n8BBsYNiPWvTw8RWToT+4CpVDJeY6EGb6qrqAD+zk3GyZHID DPQ3jrz8d4z9eUA58S/eWZfKTSpctIXFmqasNowj+dqnF75Kozx4hZZWyWUtTa2qVX qj0Yk57Oo2rl7DmtF/ZUSt5JFw9+U92g/vNk8ayc= From: "rguenth at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/95487] [10/11 Regression] ICE: verify_gimple failed (error: invalid vector types in nop conversion) with -O3 -march=skylake-avx512 since r10-1052-gc29c92c789d93848 Date: Wed, 03 Jun 2020 06:22:45 +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: 11.0 X-Bugzilla-Keywords: ice-on-valid-code X-Bugzilla-Severity: normal X-Bugzilla-Who: rguenth 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: 10.2 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: cf_gcctarget target_milestone 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, 03 Jun 2020 06:22:46 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D95487 Richard Biener changed: What |Removed |Added ---------------------------------------------------------------------------- Target| |x86_64-*-* i?86-*-* Target Milestone|--- |10.2 CC| |jakub at gcc dot gnu.org, | |rguenth at gcc dot gnu.org --- Comment #2 from Richard Biener --- So the issue is in the scatter store the mask is vectorized with V32QImode but we expect a vector boolean (it seems). And we run into if (TYPE_MODE (masktype) =3D=3D TYPE_MODE (optype)) utype =3D masktype; else utype =3D lang_hooks.types.type_for_mode (TYPE_MODE (optype= ), 1); with maskype QImode and optype V32QImode. utype is V32QImode as well after the above and then with masktype still QImode we do if (!useless_type_conversion_p (masktype, utype)) { gcc_assert (TYPE_PRECISION (utype) <=3D TYPE_PRECISION (masktype)); var =3D vect_get_new_ssa_name (masktype, vect_scalar_var); new_stmt =3D gimple_build_assign (var, NOP_EXPR, mask_arg= ); vect_finish_stmt_generation (vinfo, stmt_info, new_stmt, gsi); mask_arg =3D var; and emit the bogus NOP_EXPR trying to convert from V32QImode to QImode. Oo= ps? Jakub, you added the scatter support - do you remember what the code tries = to do here?=