mirror of git://gcc.gnu.org/git/gcc.git
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
This commit is contained in:
parent
fe4cd14b45
commit
ccbf5bb4ae
|
@ -1,3 +1,10 @@
|
||||||
|
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>
|
2011-06-27 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
PR tree-optimization/49365
|
PR tree-optimization/49365
|
||||||
|
|
|
@ -5350,6 +5350,15 @@ get_vectype_for_scalar_type_and_size (tree scalar_type, unsigned size)
|
||||||
&& GET_MODE_CLASS (inner_mode) != MODE_FLOAT)
|
&& GET_MODE_CLASS (inner_mode) != MODE_FLOAT)
|
||||||
return NULL_TREE;
|
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
|
/* If no size was supplied use the mode the target prefers. Otherwise
|
||||||
lookup a vector mode of the specified size. */
|
lookup a vector mode of the specified size. */
|
||||||
if (size == 0)
|
if (size == 0)
|
||||||
|
|
Loading…
Reference in New Issue