[Bug target/87317] Missed optimisation: merging VMOVQ with operations that only use the low 8 bytes
glisse at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Sep 16 08:01:00 GMT 2018
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);
}
More information about the Gcc-bugs
mailing list