https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93459
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Also __builtin_ia32_pbroadcastd512_gpr_mask __builtin_ia32_psllv16si_mask __builtin_ia32_vec_ext_v4si __builtin_ia32_extracti32x4_mask and many others. #include <x86intrin.h> void link_error (void); void foo (void) { __m128i a = _mm_set1_epi32 (0xffffffffU); __m128i b = _mm_setr_epi32 (16, 31, -34, 3); __m128i c = _mm_sllv_epi32 (a, b); __m512i d = _mm512_set1_epi32 (0xffffffffU); __m512i e = _mm512_setr_epi32 (16, 31, -34, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3); __m512i f = _mm512_sllv_epi32 (d, e); if (_mm_extract_epi32 (c, 0) != 0xffff0000U || _mm_extract_epi32 (c, 1) != 0x80000000U || _mm_extract_epi32 (c, 2) != 0 || _mm_extract_epi32 (c, 3) != 0xfffffff8U) link_error (); __m128i g = _mm512_extracti32x4_epi32 (f, 0); if (_mm_extract_epi32 (g, 0) != 0xffff0000U || _mm_extract_epi32 (g, 1) != 0x80000000U || _mm_extract_epi32 (g, 2) != 0 || _mm_extract_epi32 (g, 3) != 0xfffffff8U) link_error (); }