https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81600
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- I think the following is the correct fix. Index: gcc/tree-vect-loop.c =================================================================== --- gcc/tree-vect-loop.c (revision 250659) +++ gcc/tree-vect-loop.c (working copy) @@ -6071,8 +6071,10 @@ vectorizable_reduction (gimple *stmt, gi { /* Only call during the analysis stage, otherwise we'll lose STMT_VINFO_TYPE. */ - if (!vec_stmt && !vectorizable_condition (stmt, gsi, NULL, - ops[reduc_index], 0, NULL)) + if (!vec_stmt + && (reduc_index == -1 + || !vectorizable_condition (stmt, gsi, NULL, + ops[reduc_index], 0, NULL))) { if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,