1 #if __SIZEOF_SHORT__ == 2
2 typedef unsigned short V __attribute__((vector_size(16), may_alias));
11 { 0x1111, 0x2222, 0x3333, 0x4444, 0x5555, 0x6666, 0x7777, 0x8888 },
12 { 0, 1, 2, 3, 4, 5, 6, 7 },
13 { 0x1111, 0x2222, 0x3333, 0x4444, 0x5555, 0x6666, 0x7777, 0x8888 },
16 { 0x1111, 0x2222, 0x3333, 0x4444, 0x5555, 0x6666, 0x7777, 0x8888 },
17 { 0x10, 0x21, 0x32, 0x43, 0x54, 0x65, 0x76, 0x87 },
18 { 0x1111, 0x2222, 0x3333, 0x4444, 0x5555, 0x6666, 0x7777, 0x8888 },
21 { 0x1111, 0x2222, 0x3333, 0x4444, 0x5555, 0x6666, 0x7777, 0x8888 },
22 { 7, 6, 5, 4, 3, 2, 1, 0 },
23 { 0x8888, 0x7777, 0x6666, 0x5555, 0x4444, 0x3333, 0x2222, 0x1111 },
26 { 0x1111, 0x2222, 0x3333, 0x4444, 0x5555, 0x6666, 0x7777, 0x8888 },
27 { 7, 0, 5, 3, 2, 4, 1, 6 },
28 { 0x8888, 0x1111, 0x6666, 0x4444, 0x3333, 0x5555, 0x2222, 0x7777 },
31 { 0x1111, 0x2222, 0x3333, 0x4444, 0x5555, 0x6666, 0x7777, 0x8888 },
32 { 0, 2, 1, 3, 4, 6, 5, 7 },
33 { 0x1111, 0x3333, 0x2222, 0x4444, 0x5555, 0x7777, 0x6666, 0x8888 },
36 { 0x1122, 0x3344, 0x5566, 0x7788, 0x99aa, 0xbbcc, 0xddee, 0xff00 },
37 { 3, 1, 2, 0, 7, 5, 6, 4 },
38 { 0x7788, 0x3344, 0x5566, 0x1122, 0xff00, 0xbbcc, 0xddee, 0x99aa },
41 { 0x1122, 0x3344, 0x5566, 0x7788, 0x99aa, 0xbbcc, 0xddee, 0xff00 },
43 { 0x1122, 0x1122, 0x1122, 0x1122, 0x1122, 0x1122, 0x1122, 0x1122 },
46 { 0x1122, 0x3344, 0x5566, 0x7788, 0x99aa, 0xbbcc, 0xddee, 0xff00 },
47 { 1, 6, 1, 6, 1, 6, 1, 6 },
48 { 0x3344, 0xddee, 0x3344, 0xddee, 0x3344, 0xddee, 0x3344, 0xddee },
52 extern void abort(void);
58 for (i = 0; i < sizeof(tests)/sizeof(tests[0]); ++i)
60 V r = __builtin_shuffle(tests[i].in, tests[i].mask);
61 if (memcmp(&r, &tests[i].out, sizeof(V)) != 0)
68 #endif /* SIZEOF_SHORT */