mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-11 16:25:06 +08:00
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:
parent
e5f3cd6b64
commit
9938b5d971
@ -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.
|
||||
|
@ -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. */
|
||||
|
3
gcc/testsuite/gcc.c-torture/compile/simd-6.c
Normal file
3
gcc/testsuite/gcc.c-torture/compile/simd-6.c
Normal file
@ -0,0 +1,3 @@
|
||||
typedef int __attribute__((mode(V2SI))) vec;
|
||||
|
||||
vec a[] = {(vec) {1, 2}, {3, 4}};
|
Loading…
Reference in New Issue
Block a user