diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2019-10-21 06:41:15 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2019-10-21 06:41:15 +0000 |
commit | db8374a63fd0ea84f72ac76cc899be44df36df6a (patch) | |
tree | 087b69e9dada6d34ac381e187dac95c166c0a69b /gcc | |
parent | 6c261c667801eee46a6221d3681d17493c0bbd65 (diff) | |
download | gcc-db8374a63fd0ea84f72ac76cc899be44df36df6a.zip gcc-db8374a63fd0ea84f72ac76cc899be44df36df6a.tar.gz gcc-db8374a63fd0ea84f72ac76cc899be44df36df6a.tar.bz2 |
Pass a vec_info to supportable_narrowing_operation
2019-10-21 Richard Sandiford <richard.sandiford@arm.com>
gcc/
* tree-vectorizer.h (supportable_narrowing_operation): Take a vec_info.
* tree-vect-stmts.c (supportable_narrowing_operation): Likewise.
(simple_integer_narrowing): Update call accordingly.
(vectorizable_conversion): Likewise.
From-SVN: r277231
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/tree-vect-stmts.c | 16 | ||||
-rw-r--r-- | gcc/tree-vectorizer.h | 4 |
3 files changed, 17 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f29cdda..d5b25ce 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 2019-10-21 Richard Sandiford <richard.sandiford@arm.com> + * tree-vectorizer.h (supportable_narrowing_operation): Take a vec_info. + * tree-vect-stmts.c (supportable_narrowing_operation): Likewise. + (simple_integer_narrowing): Update call accordingly. + (vectorizable_conversion): Likewise. + +2019-10-21 Richard Sandiford <richard.sandiford@arm.com> + * tree-vect-stmts.c (simple_integer_narrowing): Take a vec_info. (vectorizable_call): Update call accordingly. diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c index 55651eb..92c31ab 100644 --- a/gcc/tree-vect-stmts.c +++ b/gcc/tree-vect-stmts.c @@ -3175,7 +3175,7 @@ vectorizable_bswap (stmt_vec_info stmt_info, gimple_stmt_iterator *gsi, *CONVERT_CODE. */ static bool -simple_integer_narrowing (vec_info *, tree vectype_out, tree vectype_in, +simple_integer_narrowing (vec_info *vinfo, tree vectype_out, tree vectype_in, tree_code *convert_code) { if (!INTEGRAL_TYPE_P (TREE_TYPE (vectype_out)) @@ -3185,8 +3185,8 @@ simple_integer_narrowing (vec_info *, tree vectype_out, tree vectype_in, tree_code code; int multi_step_cvt = 0; auto_vec <tree, 8> interm_types; - if (!supportable_narrowing_operation (NOP_EXPR, vectype_out, vectype_in, - &code, &multi_step_cvt, + if (!supportable_narrowing_operation (vinfo, NOP_EXPR, vectype_out, + vectype_in, &code, &multi_step_cvt, &interm_types) || multi_step_cvt) return false; @@ -4957,8 +4957,8 @@ vectorizable_conversion (stmt_vec_info stmt_info, gimple_stmt_iterator *gsi, case NARROW: gcc_assert (op_type == unary_op); - if (supportable_narrowing_operation (code, vectype_out, vectype_in, - &code1, &multi_step_cvt, + if (supportable_narrowing_operation (vinfo, code, vectype_out, + vectype_in, &code1, &multi_step_cvt, &interm_types)) break; @@ -4974,8 +4974,8 @@ vectorizable_conversion (stmt_vec_info stmt_info, gimple_stmt_iterator *gsi, if (!supportable_convert_operation (code, cvt_type, vectype_in, &decl1, &codecvt1)) goto unsupported; - if (supportable_narrowing_operation (NOP_EXPR, vectype_out, cvt_type, - &code1, &multi_step_cvt, + if (supportable_narrowing_operation (vinfo, NOP_EXPR, vectype_out, + cvt_type, &code1, &multi_step_cvt, &interm_types)) break; goto unsupported; @@ -11649,7 +11649,7 @@ supportable_widening_operation (enum tree_code code, stmt_vec_info stmt_info, narrowing operation (short in the above example). */ bool -supportable_narrowing_operation (enum tree_code code, +supportable_narrowing_operation (vec_info *, enum tree_code code, tree vectype_out, tree vectype_in, enum tree_code *code1, int *multi_step_cvt, vec<tree> *interm_types) diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h index e363d27..71b1da5 100644 --- a/gcc/tree-vectorizer.h +++ b/gcc/tree-vectorizer.h @@ -1603,8 +1603,8 @@ extern bool supportable_widening_operation (enum tree_code, stmt_vec_info, tree, tree, enum tree_code *, enum tree_code *, int *, vec<tree> *); -extern bool supportable_narrowing_operation (enum tree_code, tree, tree, - enum tree_code *, +extern bool supportable_narrowing_operation (vec_info *, enum tree_code, tree, + tree, enum tree_code *, int *, vec<tree> *); extern unsigned record_stmt_cost (stmt_vector_for_cost *, int, enum vect_cost_for_stmt, stmt_vec_info, |