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.

Reply via email to