/* { 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 (8, short) v0 = {argc, 1, 15, 38, 12, -1, argc, 2}; vector (8, short) v1 = {-4, argc, 2, 11, 1, 17, -8, argc}; vector (8, short) res[] = { v0 + v1, /* { dg-warning "expanded in parallel" } */ v0 - v1, /* { dg-warning "expanded in parallel" } */ 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]; }