Commit 895e8371 by Marc Glisse Committed by Marc Glisse

re PR middle-end/54915 (ICE: verify_gimple failed: type mismatch in vector permute expression)

2012-10-15  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/54915

gcc/
	* tree-ssa-forwprop.c (simplify_vector_constructor): Check
	argument's type.

gcc/testsuite/
	* gcc.dg/tree-ssa/pr54915.c: New testcase.

From-SVN: r192461
parent 8135e1e6
2012-10-15 Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/54915
* tree-ssa-forwprop.c (simplify_vector_constructor): Check
argument's type.
2012-10-15 Richard Biener <rguenther@suse.de> 2012-10-15 Richard Biener <rguenther@suse.de>
* data-streamer.h (bp_pack_string_with_length): New function. * data-streamer.h (bp_pack_string_with_length): New function.
2012-10-15 Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/54915
* gcc.dg/tree-ssa/pr54915.c: New testcase.
2012-10-15 Richard Guenther <rguenther@suse.de> 2012-10-15 Richard Guenther <rguenther@suse.de>
PR tree-optimization/54920 PR tree-optimization/54920
......
/* { dg-do compile } */
/* { dg-options "-O2" } */
typedef double v2df __attribute__ ((__vector_size__ (16)));
typedef double v4df __attribute__ ((__vector_size__ (32)));
void f (v2df *ret, v4df* xp)
{
v4df x = *xp;
v2df xx = { x[2], x[3] };
*ret = xx;
}
...@@ -2840,6 +2840,8 @@ simplify_vector_constructor (gimple_stmt_iterator *gsi) ...@@ -2840,6 +2840,8 @@ simplify_vector_constructor (gimple_stmt_iterator *gsi)
{ {
if (TREE_CODE (ref) != SSA_NAME) if (TREE_CODE (ref) != SSA_NAME)
return false; return false;
if (!useless_type_conversion_p (type, TREE_TYPE (ref)))
return false;
orig = ref; orig = ref;
} }
if (TREE_INT_CST_LOW (TREE_OPERAND (op1, 1)) != elem_size) if (TREE_INT_CST_LOW (TREE_OPERAND (op1, 1)) != elem_size)
......
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