Commit a4e8ea7f by Steve Ellcey Committed by Steve Ellcey

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
parent 63296cb1
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> 2005-06-29 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (s390_decompose_address): Accept invalid * config/s390/s390.c (s390_decompose_address): Accept invalid
......
...@@ -2771,7 +2771,7 @@ vect_transform_loop (loop_vec_info loop_vinfo, ...@@ -2771,7 +2771,7 @@ vect_transform_loop (loop_vec_info loop_vinfo,
units and no inner unrolling is necessary. */ units and no inner unrolling is necessary. */
gcc_assert gcc_assert
(TYPE_VECTOR_SUBPARTS (STMT_VINFO_VECTYPE (stmt_info)) (TYPE_VECTOR_SUBPARTS (STMT_VINFO_VECTYPE (stmt_info))
== vectorization_factor); == (unsigned HOST_WIDE_INT) vectorization_factor);
/* -------- vectorize statement ------------ */ /* -------- vectorize statement ------------ */
if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC)) if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
......
...@@ -5710,7 +5710,7 @@ make_vector_type (tree innertype, int nunits, enum machine_mode mode) ...@@ -5710,7 +5710,7 @@ make_vector_type (tree innertype, int nunits, enum machine_mode mode)
tree t = make_node (VECTOR_TYPE); tree t = make_node (VECTOR_TYPE);
TREE_TYPE (t) = TYPE_MAIN_VARIANT (innertype); TREE_TYPE (t) = TYPE_MAIN_VARIANT (innertype);
TYPE_VECTOR_SUBPARTS (t) = nunits; SET_TYPE_VECTOR_SUBPARTS (t, nunits);
TYPE_MODE (t) = mode; TYPE_MODE (t) = mode;
TYPE_READONLY (t) = TYPE_READONLY (innertype); TYPE_READONLY (t) = TYPE_READONLY (innertype);
TYPE_VOLATILE (t) = TYPE_VOLATILE (innertype); TYPE_VOLATILE (t) = TYPE_VOLATILE (innertype);
......
...@@ -1667,7 +1667,12 @@ struct tree_block GTY(()) ...@@ -1667,7 +1667,12 @@ struct tree_block GTY(())
/* For a VECTOR_TYPE, this is the number of sub-parts of the vector. */ /* For a VECTOR_TYPE, this is the number of sub-parts of the vector. */
#define TYPE_VECTOR_SUBPARTS(VECTOR_TYPE) \ #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 /* Indicates that objects of this type must be initialized by calling a
function when they are created. */ function when they are created. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment