1/* { dg-do compile { target powerpc*-*-* } } */
2/* { dg-require-effective-target powerpc_altivec_ok } */
3/* { dg-options "-maltivec" } */
4
5/* Program to test the vector_size attribute.  This needs to run on a
6   target that has vectors, so use AltiVec.  */
7
8#define vector __attribute__((vector_size(16)))
9
10vector int foobar;
11
12/* Only floats and integrals allowed.  We don't care if they map to SIs.  */
13struct X { int frances; };
14vector struct X hotdog;	/* { dg-error "invalid vector type" } */
15
16/* Arrays of vectors.  */
17vector char b[10], ouch;
18
19/* Pointers of vectors.  */
20vector short *shoe, polish;
21
22int xxx[sizeof(foobar) == 16 ? 69 : -1];
23
24int nc17[sizeof(shoe) == sizeof (char *) ? 69 : -1];
25
26code ()
27{
28  *shoe = polish;
29  b[1] = ouch;
30}
31
32vector short
33hoop ()
34{
35  return polish;
36}
37