152
|
1 /* { dg-do compile } */
|
|
2 /* { dg-options "-mavx512vbmi2 -mavx512bw -O2" } */
|
|
3 /* { dg-final { scan-assembler-times "vpshldw\[ \\t\]+\[^\{\n\]*\\\$3\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
|
|
4 /* { dg-final { scan-assembler-times "vpshldw\[ \\t\]+\[^\{\n\]*\\\$3\[^\n\r]*%zmm\[0-9\]+\[^\\n\\r]*%zmm\[0-9\]+\[^\\n\\r\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
|
|
5 /* { dg-final { scan-assembler-times "vpshldw\[ \\t\]+\[^\{\n\]*\\\$3\[^\n\r]*%zmm\[0-9\]+\[^\\n\\r]*%zmm\[0-9\]+\[^\\n\\r\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
|
|
6 /* { dg-final { scan-assembler-times "vpshldd\[ \\t\]+\[^\{\n\]*\\\$3\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
|
|
7 /* { dg-final { scan-assembler-times "vpshldd\[ \\t\]+\[^\{\n\]*\\\$3\[^\n\r]*%zmm\[0-9\]+\[^\\n\\r]*%zmm\[0-9\]+\[^\\n\\r\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
|
|
8 /* { dg-final { scan-assembler-times "vpshldd\[ \\t\]+\[^\{\n\]*\\\$3\[^\n\r]*%zmm\[0-9\]+\[^\\n\\r]*%zmm\[0-9\]+\[^\\n\\r\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
|
|
9 /* { dg-final { scan-assembler-times "vpshldq\[ \\t\]+\[^\{\n\]*\\\$3\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+\[^\n\r]*%zmm\[0-9\]+(?:\n|\[ \\t\]+#)" 1 } } */
|
|
10 /* { dg-final { scan-assembler-times "vpshldq\[ \\t\]+\[^\{\n\]*\\\$3\[^\n\r]*%zmm\[0-9\]+\[^\\n\\r]*%zmm\[0-9\]+\[^\\n\\r\]*%zmm\[0-9\]+\{%k\[1-7\]\}(?:\n|\[ \\t\]+#)" 1 } } */
|
|
11 /* { dg-final { scan-assembler-times "vpshldq\[ \\t\]+\[^\{\n\]*\\\$3\[^\n\r]*%zmm\[0-9\]+\[^\\n\\r]*%zmm\[0-9\]+\[^\\n\\r\]*%zmm\[0-9\]+\{%k\[1-7\]\}\{z\}(?:\n|\[ \\t\]+#)" 1 } } */
|
|
12
|
|
13 #include <immintrin.h>
|
|
14
|
|
15 volatile __m512i x,y;
|
|
16 volatile __mmask32 m32;
|
|
17 volatile __mmask16 m16;
|
|
18 volatile __mmask8 m8;
|
|
19
|
|
20 void extern
|
|
21 avx512f_test (void)
|
|
22 {
|
|
23 x = _mm512_shldi_epi16 (x, y, 3);
|
|
24 x = _mm512_maskz_shldi_epi16 (m32, x, y, 3);
|
|
25 x = _mm512_mask_shldi_epi16 (x, m32, y, x, 3);
|
|
26
|
|
27 x = _mm512_shldi_epi32 (x, y, 3);
|
|
28 x = _mm512_maskz_shldi_epi32 (m16, x, y, 3);
|
|
29 x = _mm512_mask_shldi_epi32 (x, m16, y, x, 3);
|
|
30
|
|
31 x = _mm512_shldi_epi64 (x, y, 3);
|
|
32 x = _mm512_maskz_shldi_epi64 (m8, x, y, 3);
|
|
33 x = _mm512_mask_shldi_epi64 (x, m8, y, x, 3);
|
|
34 }
|