Commit 318bd8c6 by Richard Biener

re PR tree-optimization/92260 (ICE in exact_div, at poly-int.h:2162)

2019-10-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/92260
	* tree-vect-slp.c (vect_get_constant_vectors): Special-case
	lane-reducing ops.

	* gcc.dg/pr92260.c: New testcase.

From-SVN: r277571
parent 97c14603
2019-10-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/92260
* tree-vect-slp.c (vect_get_constant_vectors): Special-case
lane-reducing ops.
2019-10-29 Andre Vieira <andre.simoesdiasvieira@arm.com>
PR 88915
PR tree-optimization/88915
* tree-ssa-loop-niter.h (simplify_replace_tree): Change declaration.
* tree-ssa-loop-niter.c (simplify_replace_tree): Add context parameter
and make the valueize function pointer also take a void pointer.
2019-10-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/92260
* gcc.dg/pr92260.c: New testcase.
2019-10-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/65930
* gcc.dg/vect/pr65930-1.c: New testcase.
......
/* { dg-do compile } */
/* { dg-options "-O3" } */
extern int abs(int);
int e(const unsigned char *g, long h, unsigned char m)
{
int i = 0;
for (int j = 0; j < h; j++)
{
for (int k = 0; k < 4; k++)
i += abs(g[k] - m);
g += h;
}
return i;
}
......@@ -3395,10 +3395,19 @@ vect_get_constant_vectors (slp_tree op_node, slp_tree slp_node,
else
vector_type = get_vectype_for_scalar_type (vinfo, TREE_TYPE (op));
unsigned int number_of_vectors
= vect_get_num_vectors (SLP_TREE_NUMBER_OF_VEC_STMTS (slp_node)
* TYPE_VECTOR_SUBPARTS (stmt_vectype),
vector_type);
/* ??? 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);
vec_oprnds->create (number_of_vectors);
auto_vec<tree> voprnds (number_of_vectors);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment