https://gcc.gnu.org/g:a944e57506fc64b8eede79c2405ba0b498461f0b
commit r15-1462-ga944e57506fc64b8eede79c2405ba0b498461f0b Author: Feng Xue <f...@os.amperecomputing.com> Date: Sun Jun 16 12:08:56 2024 +0800 vect: Remove duplicated check on reduction operand In vectorizable_reduction, one check on a reduction operand via index could be contained by another one check via pointer, so remove the former. 2024-06-16 Feng Xue <f...@os.amperecomputing.com> gcc/ * tree-vect-loop.cc (vectorizable_reduction): Remove the duplicated check. Diff: --- gcc/tree-vect-loop.cc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc index eeb75c09e91a..aab408d1019d 100644 --- a/gcc/tree-vect-loop.cc +++ b/gcc/tree-vect-loop.cc @@ -7815,11 +7815,9 @@ vectorizable_reduction (loop_vec_info loop_vinfo, "use not simple.\n"); return false; } - if (i == STMT_VINFO_REDUC_IDX (stmt_info)) - continue; - /* For an IFN_COND_OP we might hit the reduction definition operand - twice (once as definition, once as else). */ + /* Skip reduction operands, and for an IFN_COND_OP we might hit the + reduction operand twice (once as definition, once as else). */ if (op.ops[i] == op.ops[STMT_VINFO_REDUC_IDX (stmt_info)]) continue;