re PR middle-end/21969 (ICE on float __attribute__((vector_size(2048))))

PR middle-end/21969
	* tree.h (TYPE_VECTOR_SUBPARTS): Change to shift expression.
	(SET_TYPE_VECTOR_SUBPARTS): New.
	* tree.c (make_vector_type): Replace TYPE_VECTOR_SUBPARTS with
	SET_TYPE_VECTOR_SUBPARTS.
	* tree-vect-transform.c (vect_transform_loop): Add cast.

From-SVN: r101423
This commit is contained in:
Steve Ellcey 2005-06-29 15:34:57 +00:00 committed by Steve Ellcey
parent 63296cb1fe
commit a4e8ea7f41
4 changed files with 17 additions and 3 deletions

View File

@ -1,3 +1,12 @@
2005-06-29 Steve Ellcey <sje@cup.hp.com>
PR middle-end/21969
* tree.h (TYPE_VECTOR_SUBPARTS): Change to shift expression.
(SET_TYPE_VECTOR_SUBPARTS): New.
* tree.c (make_vector_type): Replace TYPE_VECTOR_SUBPARTS with
SET_TYPE_VECTOR_SUBPARTS.
* tree-vect-transform.c (vect_transform_loop): Add cast.
2005-06-29 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (s390_decompose_address): Accept invalid

View File

@ -2771,7 +2771,7 @@ vect_transform_loop (loop_vec_info loop_vinfo,
units and no inner unrolling is necessary. */
gcc_assert
(TYPE_VECTOR_SUBPARTS (STMT_VINFO_VECTYPE (stmt_info))
== vectorization_factor);
== (unsigned HOST_WIDE_INT) vectorization_factor);
/* -------- vectorize statement ------------ */
if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))

View File

@ -5710,7 +5710,7 @@ make_vector_type (tree innertype, int nunits, enum machine_mode mode)
tree t = make_node (VECTOR_TYPE);
TREE_TYPE (t) = TYPE_MAIN_VARIANT (innertype);
TYPE_VECTOR_SUBPARTS (t) = nunits;
SET_TYPE_VECTOR_SUBPARTS (t, nunits);
TYPE_MODE (t) = mode;
TYPE_READONLY (t) = TYPE_READONLY (innertype);
TYPE_VOLATILE (t) = TYPE_VOLATILE (innertype);

View File

@ -1667,7 +1667,12 @@ struct tree_block GTY(())
/* For a VECTOR_TYPE, this is the number of sub-parts of the vector. */
#define TYPE_VECTOR_SUBPARTS(VECTOR_TYPE) \
(VECTOR_TYPE_CHECK (VECTOR_TYPE)->type.precision)
(((unsigned HOST_WIDE_INT) 1) \
<< VECTOR_TYPE_CHECK (VECTOR_TYPE)->type.precision)
/* Set precision to n when we have 2^n sub-parts of the vector. */
#define SET_TYPE_VECTOR_SUBPARTS(VECTOR_TYPE, X) \
(VECTOR_TYPE_CHECK (VECTOR_TYPE)->type.precision = exact_log2 (X))
/* Indicates that objects of this type must be initialized by calling a
function when they are created. */