aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-loop.c
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2020-01-10 14:56:31 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2020-01-10 14:56:31 +0000
commitd29c7f605fc6b531eaf351bf5909e7c551fc6b9e (patch)
treea7aef92f03f334b036508365f41954f61b6f3d83 /gcc/tree-vect-loop.c
parentac190fcea1bebf87a2c8c3963548a0e5272c42ec (diff)
downloadgcc-d29c7f605fc6b531eaf351bf5909e7c551fc6b9e.zip
gcc-d29c7f605fc6b531eaf351bf5909e7c551fc6b9e.tar.gz
gcc-d29c7f605fc6b531eaf351bf5909e7c551fc6b9e.tar.bz2
Use get_related_vectype_for_scalar_type for reduction indices
The related_vector_mode series missed this case in vect_create_epilog_for_reduction, where we want to create the unsigned integer equivalent of another vector. Without it we could mix SVE and Advanced SIMD vectors in the same operation. This showed up on existing tests when testing with fixed-length -msve-vector-bits=128. 2020-01-10 Richard Sandiford <richard.sandiford@arm.com> gcc/ * tree-vect-loop.c (vect_create_epilog_for_reduction): Use get_related_vectype_for_scalar_type rather than build_vector_type to create the index type for a conditional reduction. From-SVN: r280112
Diffstat (limited to 'gcc/tree-vect-loop.c')
-rw-r--r--gcc/tree-vect-loop.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 1fa3ba6..faf8161 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -4566,8 +4566,9 @@ vect_create_epilog_for_reduction (stmt_vec_info stmt_info,
int scalar_precision
= GET_MODE_PRECISION (SCALAR_TYPE_MODE (TREE_TYPE (vectype)));
tree cr_index_scalar_type = make_unsigned_type (scalar_precision);
- tree cr_index_vector_type = build_vector_type
- (cr_index_scalar_type, TYPE_VECTOR_SUBPARTS (vectype));
+ tree cr_index_vector_type = get_related_vectype_for_scalar_type
+ (TYPE_MODE (vectype), cr_index_scalar_type,
+ TYPE_VECTOR_SUBPARTS (vectype));
/* First we create a simple vector induction variable which starts
with the values {1,2,3,...} (SERIES_VECT) and increments by the