Commit cd481d83 by Ira Rosen Committed by Ira Rosen

re PR tree-optimization/42709 (error: type mismatch in pointer plus expression)


	PR tree-optimization/42709
	* tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
	as scalar type in creation of constant vector operand.

From-SVN: r155882
parent a7bf45de
2010-01-14 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/42709
* tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
as scalar type in creation of constant vector operand.
2010-01-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 2010-01-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
PR testsuite/42414 PR testsuite/42414
......
2010-01-14 Ira Rosen <irar@il.ibm.com>
PR tree-optimization/42709
* gcc.dg/vect/pr42709.c: New test.
2010-01-14 Paul Thomas <pault@gcc.gnu.org> 2010-01-14 Paul Thomas <pault@gcc.gnu.org>
PR fortran/41478 PR fortran/41478
......
/* { dg-do compile } */
/* { dg-require-effective-target vect_int } */
#include <stdarg.h>
#include "tree-vect.h"
#define N 128
int *res[N];
int
main1 (int *a, int *b, int *c, int *d, int dummy)
{
int i;
for (i = 0; i < N/2; i+=4)
{
res[i] = a + 16;
res[i+1] = b + 16;
res[i+2] = c + 16;
res[i+3] = d + 16;
if (dummy == 32)
abort ();
}
}
/* { dg-final { cleanup-tree-dump "vect" } } */
...@@ -1421,7 +1421,6 @@ vect_get_constant_vectors (slp_tree slp_node, VEC(tree,heap) **vec_oprnds, ...@@ -1421,7 +1421,6 @@ vect_get_constant_vectors (slp_tree slp_node, VEC(tree,heap) **vec_oprnds,
VEC (gimple, heap) *stmts = SLP_TREE_SCALAR_STMTS (slp_node); VEC (gimple, heap) *stmts = SLP_TREE_SCALAR_STMTS (slp_node);
gimple stmt = VEC_index (gimple, stmts, 0); gimple stmt = VEC_index (gimple, stmts, 0);
stmt_vec_info stmt_vinfo = vinfo_for_stmt (stmt); stmt_vec_info stmt_vinfo = vinfo_for_stmt (stmt);
tree vectype = STMT_VINFO_VECTYPE (stmt_vinfo);
int nunits; int nunits;
tree vec_cst; tree vec_cst;
tree t = NULL_TREE; tree t = NULL_TREE;
...@@ -1446,16 +1445,12 @@ vect_get_constant_vectors (slp_tree slp_node, VEC(tree,heap) **vec_oprnds, ...@@ -1446,16 +1445,12 @@ vect_get_constant_vectors (slp_tree slp_node, VEC(tree,heap) **vec_oprnds,
} }
if (CONSTANT_CLASS_P (op)) if (CONSTANT_CLASS_P (op))
{
vector_type = vectype;
constant_p = true; constant_p = true;
}
else else
{ constant_p = false;
vector_type = get_vectype_for_scalar_type (TREE_TYPE (op)); vector_type = get_vectype_for_scalar_type (TREE_TYPE (op));
gcc_assert (vector_type); gcc_assert (vector_type);
constant_p = false;
}
nunits = TYPE_VECTOR_SUBPARTS (vector_type); nunits = TYPE_VECTOR_SUBPARTS (vector_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