Fix type of bitstart in vectorizable_live_operation

This patch changes the type of the multiplier applied by
vectorizable_live_operation from unsigned_type_node to bitsizetype,
which matches the type of TYPE_SIZE and is the type expected of a
BIT_FIELD_REF bit position.  This is shown by existing tests when
SVE is added.

2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
	    Alan Hayward  <alan.hayward@arm.com>
	    David Sherwood  <david.sherwood@arm.com>

gcc/
	* tree-vect-loop.c (vectorizable_live_operation): Fix type of
	bitstart.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>

From-SVN: r252931
This commit is contained in:
Richard Sandiford 2017-09-18 15:28:55 +00:00 committed by Richard Sandiford
parent dd25e724a4
commit e009b0558e
2 changed files with 8 additions and 1 deletions

View File

@ -1,3 +1,10 @@
2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com>
* tree-vect-loop.c (vectorizable_live_operation): Fix type of
bitstart.
2017-09-18 Richard Sandiford <richard.sandiford@linaro.org> 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
Alan Hayward <alan.hayward@arm.com> Alan Hayward <alan.hayward@arm.com>
David Sherwood <david.sherwood@arm.com> David Sherwood <david.sherwood@arm.com>

View File

@ -7091,7 +7091,7 @@ vectorizable_live_operation (gimple *stmt,
vec_lhs = gimple_get_lhs (SLP_TREE_VEC_STMTS (slp_node)[vec_entry]); vec_lhs = gimple_get_lhs (SLP_TREE_VEC_STMTS (slp_node)[vec_entry]);
/* Get entry to use. */ /* Get entry to use. */
bitstart = build_int_cst (unsigned_type_node, vec_index); bitstart = bitsize_int (vec_index);
bitstart = int_const_binop (MULT_EXPR, bitsize, bitstart); bitstart = int_const_binop (MULT_EXPR, bitsize, bitstart);
} }
else else