1 /* { dg-do compile { target { ! ia32 } } }  */
2 /* { dg-options "-mno-sse -Wvector-operation-performance" }  */
3 #define vector(elcount, type)  \
4 __attribute__((vector_size((elcount)*sizeof(type)))) type
5 
main(int argc,char * argv[])6 int main (int argc, char *argv[])
7 {
8   vector (16, signed char) v0 = {argc, 1, 15, 38, 12, -1, argc, 2,
9 				 argc, 1, 15, 38, 12, -1, argc, 2};
10   vector (16, signed char) v1 = {-4, argc, 2, 11, 1, 17, -8, argc,
11 				 argc, 1, 15, 38, 12, -1, argc, 2};
12   vector (16, signed char) res[] =
13   {
14     v0 + v1,		  /* { dg-warning "expanded in parallel" }  */
15     v0 - v1,              /* { dg-warning "expanded in parallel" }  */
16     v0 > v1,              /* { dg-warning "expanded piecewise" }  */
17     v0 & v1,              /* { dg-warning "expanded in parallel" }  */
18     __builtin_shuffle (v0, v1),        /* { dg-warning "expanded piecewise" }  */
19     __builtin_shuffle (v0, v1, v1)     /* { dg-warning "expanded piecewise" }  */
20   };
21 
22   return res[argc][argc];
23 }
24