1/* Driver fragment for __builtin_shuffle of any vector shape.  */
2
3// { dg-do run { target c++11 } }
4
5extern "C" void abort(void);
6
7int main()
8{
9#ifndef UNSUPPORTED
10  int i;
11
12  for (i = 0; i < sizeof(in1)/sizeof(in1[0]); ++i)
13    {
14      V r = __builtin_shuffle(in1[i], mask1[i]);
15      if (__builtin_memcmp(&r, &out1[i], sizeof(V)) != 0)
16	abort();
17    }
18
19  for (i = 0; i < sizeof(in2)/sizeof(in2[0]); ++i)
20    {
21      V r = __builtin_shuffle(in2[i], in3, mask2[i]);
22      if (__builtin_memcmp(&r, &out2[i], sizeof(V)) != 0)
23	abort();
24    }
25#endif
26
27  return 0;
28}
29