1 |
691 |
jeremybenn |
/* PR target/49411 */
|
2 |
|
|
/* { dg-do compile } */
|
3 |
|
|
/* { dg-options "-O0 -mxop" } */
|
4 |
|
|
|
5 |
|
|
#include <x86intrin.h>
|
6 |
|
|
|
7 |
|
|
__m128i i1, i2, i3, i4;
|
8 |
|
|
__m128 a1, a2, a3, a4;
|
9 |
|
|
__m128d d1, d2, d3, d4;
|
10 |
|
|
__m256i l1, l2, l3, l4;
|
11 |
|
|
__m256 b1, b2, b3, b4;
|
12 |
|
|
__m256d e1, e2, e3, e4;
|
13 |
|
|
__m64 m1, m2, m3, m4;
|
14 |
|
|
int k1, k2, k3, k4;
|
15 |
|
|
float f1, f2, f3, f4;
|
16 |
|
|
|
17 |
|
|
void
|
18 |
|
|
test2bit (void)
|
19 |
|
|
{
|
20 |
|
|
d1 = _mm_permute2_pd (d2, d3, i1, 17); /* { dg-error "the last argument must be a 2-bit immediate" } */
|
21 |
|
|
e1 = _mm256_permute2_pd (e2, e3, l1, 17); /* { dg-error "the last argument must be a 2-bit immediate" } */
|
22 |
|
|
a1 = _mm_permute2_ps (a2, a3, i1, 17); /* { dg-error "the last argument must be a 2-bit immediate" } */
|
23 |
|
|
b1 = _mm256_permute2_ps (b2, b3, l1, 17); /* { dg-error "the last argument must be a 2-bit immediate" } */
|
24 |
|
|
d1 = _mm_permute2_pd (d2, d3, i1, k4); /* { dg-error "the last argument must be a 2-bit immediate" } */
|
25 |
|
|
e1 = _mm256_permute2_pd (e2, e3, l1, k4); /* { dg-error "the last argument must be a 2-bit immediate" } */
|
26 |
|
|
a1 = _mm_permute2_ps (a2, a3, i1, k4); /* { dg-error "the last argument must be a 2-bit immediate" } */
|
27 |
|
|
b1 = _mm256_permute2_ps (b2, b3, l1, k4); /* { dg-error "the last argument must be a 2-bit immediate" } */
|
28 |
|
|
}
|
29 |
|
|
|
30 |
|
|
void
|
31 |
|
|
test2args (void)
|
32 |
|
|
{
|
33 |
|
|
i1 = _mm_extracti_si64 (i2, 256, 0); /* { dg-error "the next to last argument must be an 8-bit immediate" } */
|
34 |
|
|
i1 = _mm_extracti_si64 (i2, 0, 256); /* { dg-error "the last argument must be an 8-bit immediate" } */
|
35 |
|
|
i1 = _mm_inserti_si64 (i2, i3, 256, 0); /* { dg-error "the next to last argument must be an 8-bit immediate" } */
|
36 |
|
|
i2 = _mm_inserti_si64 (i2, i3, 0, 256); /* { dg-error "the last argument must be an 8-bit immediate" } */
|
37 |
|
|
i1 = _mm_extracti_si64 (i2, k4, 0); /* { dg-error "the next to last argument must be an 8-bit immediate" } */
|
38 |
|
|
i1 = _mm_extracti_si64 (i2, 0, k4); /* { dg-error "the last argument must be an 8-bit immediate" } */
|
39 |
|
|
i1 = _mm_inserti_si64 (i2, i3, k4, 0); /* { dg-error "the next to last argument must be an 8-bit immediate" } */
|
40 |
|
|
i2 = _mm_inserti_si64 (i2, i3, 0, k4); /* { dg-error "the last argument must be an 8-bit immediate" } */
|
41 |
|
|
}
|