diff options
author | Richard Guenther <rguenther@suse.de> | 2010-04-09 13:21:43 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2010-04-09 13:21:43 +0000 |
commit | 88dd71504e89d86f723861404153b071d3113b39 (patch) | |
tree | 25782c93a9adf744980ea7689e440093b39185ad /gcc/tree-vect-stmts.c | |
parent | 7d7a1fe85989e4f3998060ed9f2d4d6973e39eed (diff) | |
download | gcc-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.c | 8 |
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. */ |