simd-6.c: New.

2003-05-05  Aldy Hernandez  <aldyh@redhat.com>

        * testsuite/gcc.c-torture/compile/simd-6.c: New.

        * c-typeck.c (digest_init): Handle arrays of vector constants.

From-SVN: r66501
This commit is contained in:
Aldy Hernandez 2003-05-05 20:31:45 +00:00 committed by Aldy Hernandez
parent e5f3cd6b64
commit 9938b5d971
3 changed files with 20 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2003-05-05 Aldy Hernandez <aldyh@redhat.com>
* testsuite/gcc.c-torture/compile/simd-6.c: New.
* c-typeck.c (digest_init): Handle arrays of vector constants.
2003-05-05 Jakub Jelinek <jakub@redhat.com>
* builtins.c (expand_builtin_mempcpy): New function.

View File

@ -4787,10 +4787,17 @@ digest_init (type, init, require_constant)
/* Build a VECTOR_CST from a *constant* vector constructor. If the
vector constructor is not constant (e.g. {1,2,3,foo()}) then punt
below and handle as a constructor. */
if (code == VECTOR_TYPE
&& comptypes (TREE_TYPE (inside_init), type)
&& TREE_CONSTANT (inside_init))
return build_vector (type, CONSTRUCTOR_ELTS (inside_init));
if (code == VECTOR_TYPE
&& comptypes (TREE_TYPE (inside_init), type)
&& TREE_CONSTANT (inside_init))
{
if (TREE_CODE (inside_init) == VECTOR_CST
&& comptypes (TYPE_MAIN_VARIANT (TREE_TYPE (inside_init)),
TYPE_MAIN_VARIANT (type)))
return inside_init;
else
return build_vector (type, CONSTRUCTOR_ELTS (inside_init));
}
/* Any type can be initialized
from an expression of the same type, optionally with braces. */

View File

@ -0,0 +1,3 @@
typedef int __attribute__((mode(V2SI))) vec;
vec a[] = {(vec) {1, 2}, {3, 4}};