]>
Commit | Line | Data |
---|---|---|
322db86f JJ |
1 | /* PR target/93430 */ |
2 | /* { dg-do compile } */ | |
3 | /* { dg-options "-O2" } */ | |
4 | /* { dg-additional-options "-mavx -mno-avx2" { target avx } } */ | |
5 | ||
6 | typedef double V __attribute__((vector_size (4 * sizeof (double)))); | |
7 | typedef long long VI __attribute__((vector_size (4 * sizeof (long long)))); | |
8 | ||
9 | #if __SIZEOF_DOUBLE__ == __SIZEOF_LONG_LONG__ | |
10 | void | |
11 | foo (V *x, V *y) | |
12 | { | |
13 | y[0] = __builtin_shuffle (x[0], x[0], (VI) { 0, 0, 0, 0 }); | |
14 | } | |
15 | ||
16 | void | |
17 | bar (V *x, V *y) | |
18 | { | |
19 | y[0] = __builtin_shuffle (x[0], x[0], (VI) { 1, 1, 1, 1 }); | |
20 | } | |
21 | ||
22 | void | |
23 | baz (V *x, V *y) | |
24 | { | |
25 | y[0] = __builtin_shuffle (x[0], x[0], (VI) { 2, 2, 2, 2 }); | |
26 | } | |
27 | ||
28 | void | |
29 | qux (V *x, V *y) | |
30 | { | |
31 | y[0] = __builtin_shuffle (x[0], x[0], (VI) { 3, 3, 3, 3 }); | |
32 | } | |
33 | #endif |