Commit ccbf5bb4 by Richard Guenther Committed by Richard Biener

re PR middle-end/49536 (latent bug with creation of vector of arrays)

2011-06-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49536
	* tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
	For non-scalar inner types use a scalar type according to
	the scalar inner mode.

From-SVN: r175475
parent fe4cd14b
2011-06-27 Richard Guenther <rguenther@suse.de>
PR tree-optimization/49536
* tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
For non-scalar inner types use a scalar type according to
the scalar inner mode.
2011-06-27 Richard Guenther <rguenther@suse.de>
PR tree-optimization/49365
* params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
......
......@@ -5350,6 +5350,15 @@ get_vectype_for_scalar_type_and_size (tree scalar_type, unsigned size)
&& GET_MODE_CLASS (inner_mode) != MODE_FLOAT)
return NULL_TREE;
/* We shouldn't end up building VECTOR_TYPEs of non-scalar components.
When the component mode passes the above test simply use a type
corresponding to that mode. The theory is that any use that
would cause problems with this will disable vectorization anyway. */
if (!SCALAR_FLOAT_TYPE_P (scalar_type)
&& !INTEGRAL_TYPE_P (scalar_type)
&& !POINTER_TYPE_P (scalar_type))
scalar_type = lang_hooks.types.type_for_mode (inner_mode, 1);
/* If no size was supplied use the mode the target prefers. Otherwise
lookup a vector mode of the specified size. */
if (size == 0)
......
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