From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1923) id C69F53858C62; Wed, 17 Jan 2024 19:15:47 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C69F53858C62 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1705518947; bh=tl4Mbv2MH7/lZydVb88VxKEpLBehQTKen9X951jdNeM=; h=From:To:Subject:Date:From; b=O+yyg+vlLNo/F3y6iaScckB2Ruw2XDNCuEvYMCcY+05Oq45Ga3LfZuJg0yu+uHKxM 5x0JeS9gFkEBJjg2DKUg7Ajbstm5CZ+ZIV9p3D4+shUUW1p3hh7ksCY2IJUveFBTSc 9eXs9+yAOzIMXWEGEqGvFg9V25OwSBXkLTlIOREY= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Philipp Tomsich To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/vendors/vrull/heads/slp-improvements)] Fix: Check for gassign before calling gimple_assign_rhs_code X-Act-Checkin: gcc X-Git-Author: Manolis Tsamis X-Git-Refname: refs/vendors/vrull/heads/slp-improvements X-Git-Oldrev: 5a4c75b62cdb21fa5c31efee626e35c6ff327d02 X-Git-Newrev: 95f071f025a7f27a66e1a78a921a32ae078e3864 Message-Id: <20240117191547.C69F53858C62@sourceware.org> Date: Wed, 17 Jan 2024 19:15:47 +0000 (GMT) List-Id: https://gcc.gnu.org/g:95f071f025a7f27a66e1a78a921a32ae078e3864 commit 95f071f025a7f27a66e1a78a921a32ae078e3864 Author: Manolis Tsamis Date: Thu Jan 4 13:56:21 2024 +0100 Fix: Check for gassign before calling gimple_assign_rhs_code Ref #342 Diff: --- gcc/tree-vect-slp.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc index 704996afe7a..e5842f022f1 100644 --- a/gcc/tree-vect-slp.cc +++ b/gcc/tree-vect-slp.cc @@ -1838,14 +1838,17 @@ try_rearrange_oprnd_info (vec &oprnds_info, unsigned group_size) if (oprnds_info.length() != 2 || group_size % 4 != 0) return SLP_OPRND_PATTERN_NONE; - enum tree_code code = oprnds_info[0]->def_stmts[0] ? - gimple_assign_rhs_code (oprnds_info[0]->def_stmts[0]->stmt) - : ERROR_MARK; + if (!oprnds_info[0]->def_stmts[0] + || !is_a (oprnds_info[0]->def_stmts[0]->stmt)) + return SLP_OPRND_PATTERN_NONE; + enum tree_code code + = gimple_assign_rhs_code (oprnds_info[0]->def_stmts[0]->stmt); FOR_EACH_VEC_ELT (oprnds_info, i, oprnd_info) for (unsigned int j = 0; j < group_size; j += 1) { if (!oprnd_info->def_stmts[j] + || !is_a (oprnd_info->def_stmts[j]->stmt) || STMT_VINFO_DATA_REF (oprnd_info->def_stmts[j])) return SLP_OPRND_PATTERN_NONE; /* Don't mix different operations. */