summaryrefslogtreecommitdiff
path: root/gcc/tree-vect-stmts.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2010-04-09 13:21:43 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2010-04-09 13:21:43 +0000
commit88dd71504e89d86f723861404153b071d3113b39 (patch)
tree25782c93a9adf744980ea7689e440093b39185ad /gcc/tree-vect-stmts.c
parent7d7a1fe85989e4f3998060ed9f2d4d6973e39eed (diff)
downloadgcc-88dd71504e89d86f723861404153b071d3113b39.tar.gz
target.h (builtin_conversion): Pass in input and output types.
2010-04-09 Richard Guenther <rguenther@suse.de> * target.h (builtin_conversion): Pass in input and output types. * targhooks.c (default_builtin_vectorized_conversion): Adjust. * targhooks.h (default_builtin_vectorized_conversion): Likewise. * tree-vect-stmts.c (vectorizable_conversion): Adjust. * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust. * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust. Handle AVX modes. * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust. From-SVN: r158162
Diffstat (limited to 'gcc/tree-vect-stmts.c')
-rw-r--r--gcc/tree-vect-stmts.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index 26b9ca20520..4868f73e684 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -1564,7 +1564,6 @@ vectorizable_conversion (gimple stmt, gimple_stmt_iterator *gsi,
int i;
VEC(tree,heap) *vec_oprnds0 = NULL;
tree vop0;
- tree integral_type;
VEC(tree,heap) *dummy = NULL;
int dummy_int;
@@ -1620,8 +1619,6 @@ vectorizable_conversion (gimple stmt, gimple_stmt_iterator *gsi,
else
return false;
- integral_type = INTEGRAL_TYPE_P (rhs_type) ? vectype_in : vectype_out;
-
if (modifier == NARROW)
ncopies = LOOP_VINFO_VECT_FACTOR (loop_vinfo) / nunits_out;
else
@@ -1638,7 +1635,7 @@ vectorizable_conversion (gimple stmt, gimple_stmt_iterator *gsi,
/* Supportable by target? */
if ((modifier == NONE
- && !targetm.vectorize.builtin_conversion (code, integral_type))
+ && !targetm.vectorize.builtin_conversion (code, vectype_out, vectype_in))
|| (modifier == WIDEN
&& !supportable_widening_operation (code, stmt,
vectype_out, vectype_in,
@@ -1689,7 +1686,8 @@ vectorizable_conversion (gimple stmt, gimple_stmt_iterator *gsi,
vect_get_vec_defs_for_stmt_copy (dt, &vec_oprnds0, NULL);
builtin_decl =
- targetm.vectorize.builtin_conversion (code, integral_type);
+ targetm.vectorize.builtin_conversion (code,
+ vectype_out, vectype_in);
for (i = 0; VEC_iterate (tree, vec_oprnds0, i, vop0); i++)
{
/* Arguments are ready. create the new vector stmt. */