https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87317

--- Comment #4 from Marc Glisse <glisse at gcc dot gnu.org> ---
> (match_operand:DI 1 "nonimmediate_operand" "m,*m,m")

Does it have to come from memory, can't it also come from a (sub)register?

int f(__m64 x){
  __m128i y = _mm_movpi64_epi64(x); // or harder _mm_set1_epi64(x)
  __m128i z = _mm_cvtepu8_epi16(y);
  return _mm_cvtsi128_si32(z);
}

Reply via email to