1 /* { dg-do compile } */
2 /* { dg-options "-O2 -mavx512vl -mno-avx512bw" } */
7 f1 (__m128i a
, __m128i b
)
9 return _mm_packs_epi16 (a
, b
);
12 /* { dg-final { scan-assembler-times "vpacksswb\[^\n\r\]*xmm\[0-9\]" 1 } } */
15 f2 (__m128i a
, __m128i b
)
17 return _mm_packs_epi32 (a
, b
);
20 /* { dg-final { scan-assembler-times "vpackssdw\[^\n\r\]*xmm\[0-9\]" 1 } } */
23 f3 (__m128i a
, __m128i b
)
25 return _mm_packus_epi16 (a
, b
);
28 /* { dg-final { scan-assembler-times "vpackuswb\[^\n\r\]*xmm\[0-9\]" 1 } } */
31 f4 (__m128i a
, __m128i b
)
33 return _mm_packus_epi32 (a
, b
);
36 /* { dg-final { scan-assembler-times "vpackusdw\[^\n\r\]*xmm\[0-9\]" 1 } } */
39 f5 (__m256i a
, __m256i b
)
41 return _mm256_packs_epi16 (a
, b
);
44 /* { dg-final { scan-assembler-times "vpacksswb\[^\n\r\]*ymm\[0-9\]" 1 } } */
47 f6 (__m256i a
, __m256i b
)
49 return _mm256_packs_epi32 (a
, b
);
52 /* { dg-final { scan-assembler-times "vpackssdw\[^\n\r\]*ymm\[0-9\]" 1 } } */
55 f7 (__m256i a
, __m256i b
)
57 return _mm256_packus_epi16 (a
, b
);
60 /* { dg-final { scan-assembler-times "vpackuswb\[^\n\r\]*ymm\[0-9\]" 1 } } */
63 f8 (__m256i a
, __m256i b
)
65 return _mm256_packus_epi32 (a
, b
);
68 /* { dg-final { scan-assembler-times "vpackusdw\[^\n\r\]*ymm\[0-9\]" 1 } } */