aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.h
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2023-12-01 11:14:53 +0100
committerRichard Biener <rguenther@suse.de>2023-12-01 12:54:50 +0100
commit8332b991e42dbffd1f2a7b7aa9a23f5aa242e602 (patch)
treee8406475ce237b1e007dca695cbf49320c93f5db /gcc/tree-vectorizer.h
parent9e6885467476da963e941986b14ffb57fee6bf50 (diff)
downloadgcc-8332b991e42dbffd1f2a7b7aa9a23f5aa242e602.zip
gcc-8332b991e42dbffd1f2a7b7aa9a23f5aa242e602.tar.gz
gcc-8332b991e42dbffd1f2a7b7aa9a23f5aa242e602.tar.bz2
Fix ambiguity between vect_get_vec_defs with/without vectype
When querying a single set of vector defs with the overloaded vect_get_vec_defs API then when you try to use the overload with the vector type specified the call will be ambiguous with the variant without the vector type. The following fixes this by re-ordering the vector type argument to come before the output def vector argument. I've changed vectorizable_conversion as that triggered this so it has coverage showing this works. The motivation is to reduce the number of (redundant) get_vectype_for_scalar_type calls. * tree-vectorizer.h (vect_get_vec_defs): Re-order arguments. * tree-vect-stmts.cc (vect_get_vec_defs): Likewise. (vectorizable_condition): Update caller. (vectorizable_comparison_1): Likewise. (vectorizable_conversion): Specify the vector type to be used for invariant/external defs. * tree-vect-loop.cc (vect_transform_reduction): Update caller.
Diffstat (limited to 'gcc/tree-vectorizer.h')
-rw-r--r--gcc/tree-vectorizer.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h
index e4d7ab4..1810833 100644
--- a/gcc/tree-vectorizer.h
+++ b/gcc/tree-vectorizer.h
@@ -2263,10 +2263,10 @@ void vect_get_vec_defs (vec_info *, stmt_vec_info, slp_tree, unsigned,
tree = NULL, vec<tree> * = NULL,
tree = NULL, vec<tree> * = NULL);
void vect_get_vec_defs (vec_info *, stmt_vec_info, slp_tree, unsigned,
- tree, vec<tree> *, tree,
- tree = NULL, vec<tree> * = NULL, tree = NULL,
- tree = NULL, vec<tree> * = NULL, tree = NULL,
- tree = NULL, vec<tree> * = NULL, tree = NULL);
+ tree, tree, vec<tree> *,
+ tree = NULL, tree = NULL, vec<tree> * = NULL,
+ tree = NULL, tree = NULL, vec<tree> * = NULL,
+ tree = NULL, tree = NULL, vec<tree> * = NULL);
extern tree vect_init_vector (vec_info *, stmt_vec_info, tree, tree,
gimple_stmt_iterator *);
extern tree vect_get_slp_vect_def (slp_tree, unsigned);