https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89229
--- Comment #18 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to Jakub Jelinek from comment #14) > Comment on attachment 45685 [details] > I am testing this > > The movsi change doesn't look entirely right to me. While OImode or TImode > is not allowed in ext sse regs unless AVX512VL, that is not the case for > SImode, so for SImode if one or both operands are ext sse regs and > !TARGET_AVX512VL, we need to use MODE_XI and use the pattern with %g1, %g0 > in there. No need to set MODE_XI: if (EXT_REX_SSE_REG_P (operands[0]) || EXT_REX_SSE_REG_P (operands[1])) { if (TARGET_AVX512VL) return "vmovdqa32\t{%1, %0|%0, %1}"; else return "vmovdqa32\t{%g1, %0|%0, %g1}"; } else return "%vmovdqa\t{%1, %0|%0, %1}";