https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89071
--- Comment #19 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to Uroš Bizjak from comment #18) > The only remaining question is on cvtsd2ss mem->xmm, where ICC goes with the > same strategy as with other non-conversion SSE unops: > > vmovsd d(%rip), %xmm0 > vcvtsd2ss %xmm0, %xmm0, %xmm0 > > but with cvtss2sd: > > vxorpd %xmm0, %xmm0, %xmm0 > vcvtss2sd f(%rip), %xmm0, %xmm0 > > Do we need XOR for cvtsd2ss mem->xmm? Yes, we do since vcvtss2sd f(%rip), %xmm0, %xmm0 partially updates %xmm0.