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