https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70509
--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #7) > - if (sel & (1 << UINTVAL (j))) > + if (sel & (HOST_WIDE_INT_1U << UINTVAL (j))) > > change in simplify-rtx.c is preapproved, but it would be nice to have a > testcase. Note I haven't succeeded with creating a testcase for this. To trigger that one needs a problematic VEC_MERGE inside of VEC_SELECT, and most of the VEC_SELECTS have VEC_CONCAT as their first operand, the exception are e.g. broadcasts, but following doesn't trigger it anyway: #include <x86intrin.h> __v64qi f1 (__m512i a, __m512i b) { __v64qi c = (__v64qi) _mm512_mask_blend_epi8 (0x1234ffffffffULL, a, b); __v64qi d = (__v64qi) { 0 }; return __builtin_shuffle (c, d); } So it is likely just a theoretical fix for now.