From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1923) id 829893858014; Tue, 23 Jan 2024 20:59:04 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 829893858014 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1706043544; bh=ilziZZbo+viiogWgwAsY1KBd46X1DulO7HckBVzpoj0=; h=From:To:Subject:Date:From; b=gkesooLfbepk36lrlu6JxV66JPk3x3kuBEezHEiBYumiISoRQZs8XbxZCByrNWpKm FWiTh3Fg+60DPRBDN3c+Dg6fEAiXaHipQLUFLzTH6fCBfTFGXZMCLfYKgQmWVWwVBM Kt4Rqffq2aJUiXu51aWQAc71xN+FGqRMyl89m0tY= 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: 441e8bc477724c8be1b18132c9f39fe355daea79 X-Git-Newrev: 977270bbadbae7828d903c70342436c61a6baca6 Message-Id: <20240123205904.829893858014@sourceware.org> Date: Tue, 23 Jan 2024 20:59:04 +0000 (GMT) List-Id: https://gcc.gnu.org/g:977270bbadbae7828d903c70342436c61a6baca6 commit 977270bbadbae7828d903c70342436c61a6baca6 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 04184cab1cf..16bc447b0f0 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. */