diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 28564f723e18ea2127a94ed697d123576ca0224b..21dd1aa29c8222a1a7344350c5a0bc9077656ccc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+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
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 1fa3ba6d932e594bdafbbe52cb1c6ef39312dbc3..faf816116de2ca7ca76e9f05370542a7e329c30c 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