Use SCALAR_TYPE_MODE in vect_create_epilog_for_reduction

This follows on from similar changes a couple of months ago and
is needed when general modes have variable size.

2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	* tree-vect-loop.c (vect_create_epilog_for_reduction): Use
	SCALAR_TYPE_MODE instead of TYPE_MODE.

From-SVN: r254002
This commit is contained in:
Richard Sandiford 2017-10-23 09:40:51 +00:00 committed by Richard Sandiford
parent 1fc50bea21
commit 3ec43c5e31
2 changed files with 6 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
* tree-vect-loop.c (vect_create_epilog_for_reduction): Use
SCALAR_TYPE_MODE instead of TYPE_MODE.
2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>

View File

@ -4487,7 +4487,7 @@ vect_create_epilog_for_reduction (vec<tree> vect_defs, gimple *stmt,
gcc_assert (gimple_assign_rhs_code (vec_stmt) == VEC_COND_EXPR);
int scalar_precision
= GET_MODE_PRECISION (TYPE_MODE (TREE_TYPE (vectype)));
= 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));