https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104322
Bug ID: 104322 Summary: Dead code in gcc/tree-vect-loop.cc Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: rguenth at gcc dot gnu.org Target Milestone: --- I noticed the following dead code: gcc/tree-vect-loop.cc:6643 if (STMT_VINFO_DEF_TYPE (stmt_info) == vect_reduction_def) stmt_info = vect_stmt_to_vectorize (STMT_VINFO_REDUC_DEF (stmt_info)); else { gcc_assert (STMT_VINFO_DEF_TYPE (stmt_info) == vect_double_reduction_def); use_operand_p use_p; gimple *use_stmt; bool res = single_imm_use (gimple_phi_result (stmt_info->stmt), &use_p, &use_stmt); gcc_assert (res); phi_info = loop_vinfo->lookup_stmt (use_stmt); stmt_info = vect_stmt_to_vectorize (STMT_VINFO_REDUC_DEF (phi_info)); } /* PHIs should not participate in patterns. */ gcc_assert (!STMT_VINFO_RELATED_STMT (phi_info)); gphi *reduc_def_phi = as_a <gphi *> (phi_info->stmt); /* Verify following REDUC_IDX from the latch def leads us back to the PHI and compute the reduction chain length. Discover the real reduction operation stmt on the way (stmt_info and slp_for_stmt_info). */ tree reduc_def = PHI_ARG_DEF_FROM_EDGE (reduc_def_phi, loop_latch_edge (gimple_bb (reduc_def_phi)->loop_father)); unsigned reduc_chain_length = 0; bool only_slp_reduc_chain = true; stmt_info = NULL; As seen the 2 assignments to stmt_info are dead.