Commit c0d942d2 by Ulrich Weigand Committed by Ulrich Weigand

re PR tree-optimization/52870 (ICE during SLP pattern matching)

	gcc/
	PR tree-optimization/52870
	* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
	presumed pattern statement is within the same loop or basic block.

	gcc/testsuite/
	PR tree-optimization/52870
	* gcc.dg/vect/pr52870.c: New test.

From-SVN: r186272
parent 5973ae1a
2012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
PR tree-optimization/52870
* tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
presumed pattern statement is within the same loop or basic block.
2012-04-10 Tristan Gingold <gingold@adacore.com>
* gengtype.c (main): Make uintptr_t a known type.
......
2012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
PR tree-optimization/52870
* gcc.dg/vect/pr52870.c: New test.
2012-04-09 Mike Stump <mikestump@comcast.net>
* g++.dg/cpp0x/udlit-raw-op.C: Don't use CRLF endings.
......
/* { dg-do compile } */
/* { dg-options "-O1 -ftree-vectorize" } */
long
test (int *x)
{
unsigned long sx, xprec;
sx = *x >= 0 ? *x : -*x;
xprec = sx * 64;
if (sx < 16384)
foo (sx);
return xprec;
}
......@@ -564,6 +564,16 @@ vect_recog_widen_mult_pattern (VEC (gimple, heap) **stmts,
VEC (tree, heap) *dummy_vec;
bool op1_ok;
bool promotion;
loop_vec_info loop_vinfo;
struct loop *loop = NULL;
bb_vec_info bb_vinfo;
stmt_vec_info stmt_vinfo;
stmt_vinfo = vinfo_for_stmt (last_stmt);
loop_vinfo = STMT_VINFO_LOOP_VINFO (stmt_vinfo);
bb_vinfo = STMT_VINFO_BB_VINFO (stmt_vinfo);
if (loop_vinfo)
loop = LOOP_VINFO_LOOP (loop_vinfo);
if (!is_gimple_assign (last_stmt))
return NULL;
......@@ -635,6 +645,11 @@ vect_recog_widen_mult_pattern (VEC (gimple, heap) **stmts,
|| gimple_assign_rhs_code (use_stmt) != NOP_EXPR)
return NULL;
if (!gimple_bb (use_stmt)
|| (loop && !flow_bb_inside_loop_p (loop, gimple_bb (use_stmt)))
|| (!loop && gimple_bb (use_stmt) != BB_VINFO_BB (bb_vinfo)))
return NULL;
use_lhs = gimple_assign_lhs (use_stmt);
use_type = TREE_TYPE (use_lhs);
if (!INTEGRAL_TYPE_P (use_type)
......
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