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 10 vector int foobar; 11 12 /* Only floats and integrals allowed. We don't care if they map to SIs. */ 13 struct X { int frances; }; 14 vector struct X hotdog; /* { dg-error "invalid vector type" } */ 15 16 /* Arrays of vectors. */ 17 vector char b[10], ouch; 18 19 /* Pointers of vectors. */ 20 vector short *shoe, polish; 21 22 int xxx[sizeof(foobar) == 16 ? 69 : -1]; 23 24 int nc17[sizeof(shoe) == sizeof (char *) ? 69 : -1]; 25 26 void code()27code () 28 { 29 *shoe = polish; 30 b[1] = ouch; 31 } 32 33 vector short hoop()34hoop () 35 { 36 return polish; 37 } 38