re PR tree-optimization/92405 (ICE in vect_get_vec_def_for_stmt_copy, at tree-vect-stmts.c:1683)

2019-11-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/92405
	* tree-vect-loop.c (vectorizable_reduction): Appropriately
	restrict lane-reducing ops to single stmt chains.

From-SVN: r277921
This commit is contained in:
Richard Biener 2019-11-07 11:49:09 +00:00 committed by Richard Biener
parent 7313607478
commit 084d390246
2 changed files with 18 additions and 0 deletions

View file

@ -1,3 +1,9 @@
2019-11-07 Richard Biener <rguenther@suse.de>
PR tree-optimization/92405
* tree-vect-loop.c (vectorizable_reduction): Appropriately
restrict lane-reducing ops to single stmt chains.
2019-11-07 Martin Jambor <mjambor@suse.cz>
PR lto/70929

View file

@ -5865,6 +5865,18 @@ vectorizable_reduction (stmt_vec_info stmt_info, slp_tree slp_node,
reduc_chain_length++;
}
/* For lane-reducing ops we're reducing the number of reduction PHIs
which means the only use of that may be in the lane-reducing operation. */
if (lane_reduc_code_p
&& reduc_chain_length != 1
&& !only_slp_reduc_chain)
{
if (dump_enabled_p ())
dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
"lane-reducing reduction with extra stmts.\n");
return false;
}
reduc_def = PHI_RESULT (reduc_def_phi);
for (i = 0; i < op_type; i++)
{