/* { dg-do compile { target { ! { ia32 } } } } */ /* { dg-options "-mno-sse -Wvector-operation-performance" } */ #define vector(elcount, type) \ __attribute__((vector_size((elcount)*sizeof(type)))) type int main (int argc, char *argv[]) { vector (4, int) v0 = {argc, 1, 15, 38}; vector (4, int) v1 = {-4, argc, 2, 11}; vector (4, int) res[] = { v0 + v1, /* { dg-warning "expanded piecewise" } */ v0 - v1, /* { dg-warning "expanded piecewise" } */ v0 > v1, /* { dg-warning "expanded piecewise" } */ v0 & v1, /* { dg-warning "expanded in parallel" } */ __builtin_shuffle (v0, v1), /* { dg-warning "expanded piecewise" } */ __builtin_shuffle (v0, v1, v1) /* { dg-warning "expanded piecewise" } */ }; return res[argc][argc]; }