tree-optimization/92260 - improve fix

This improves the fix for PR92260 changing the number of vector
computation to the canonical one, not needing to look at the
using stmt.

2020-05-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/92260
	* tree-vect-slp.c (vect_get_constant_vectors): Compute
	the number of vector stmts in a canonical way.
This commit is contained in:
Richard Biener 2020-05-15 11:14:53 +02:00
parent f8e1c0c018
commit 584a3c080b
2 changed files with 12 additions and 13 deletions

View File

@ -1,3 +1,9 @@
2020-05-15 Richard Biener <rguenther@suse.de>
PR tree-optimization/92260
* tree-vect-slp.c (vect_get_constant_vectors): Compute
the number of vector stmts in a canonical way.
2020-05-15 Martin Liska <mliska@suse.cz>
* hsa-gen.c (get_symbol_for_decl): Fix misleading indentation

View File

@ -3561,19 +3561,12 @@ vect_get_constant_vectors (vec_info *vinfo,
else
vector_type = get_vectype_for_scalar_type (vinfo, TREE_TYPE (op), op_node);
/* ??? For lane-reducing ops we should also have the required number
of vector stmts initialized rather than second-guessing here. */
unsigned int number_of_vectors;
if (is_gimple_assign (stmt_vinfo->stmt)
&& (gimple_assign_rhs_code (stmt_vinfo->stmt) == SAD_EXPR
|| gimple_assign_rhs_code (stmt_vinfo->stmt) == DOT_PROD_EXPR
|| gimple_assign_rhs_code (stmt_vinfo->stmt) == WIDEN_SUM_EXPR))
number_of_vectors = SLP_TREE_NUMBER_OF_VEC_STMTS (slp_node);
else
number_of_vectors
= vect_get_num_vectors (SLP_TREE_NUMBER_OF_VEC_STMTS (slp_node)
* TYPE_VECTOR_SUBPARTS (stmt_vectype),
vector_type);
poly_uint64 vf = 1;
if (loop_vec_info loop_vinfo = dyn_cast <loop_vec_info> (vinfo))
vf = loop_vinfo->vectorization_factor;
unsigned int number_of_vectors
= vect_get_num_vectors (vf * group_size, vector_type);
vec_oprnds->create (number_of_vectors);
auto_vec<tree> voprnds (number_of_vectors);