diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/tree-vect-loop.c | 5 |
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 |