aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-vect-loop.c5
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 28564f7..21dd1aa 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
+ * 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.
+
+2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
+
* tree-vect-loop.c (update_epilogue_loop_vinfo): Update DR_REF
for any type of gather or scatter, including strided accesses.
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