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  
       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 piecewise" }  */
      15      v0 - v1,              /* { dg-warning "expanded piecewise" }  */
      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  }