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