What is the purpose of xorps on the same register?
<p>I was looking at the following disassembled c++ code</p>

<pre><code>    auto test2 = convert&lt;years, weeks&gt;(2.0);
00007FF6D6475ECC  mov         eax,16Dh  
00007FF6D6475ED1  xorps       xmm1,xmm1  
00007FF6D6475ED4  cvtsi2sd    xmm1,rax  
00007FF6D6475ED9  mulsd       xmm1,mmword ptr [__real@4000000000000000 (07FF6D64AFE38h)]  
00007FF6D6475EE1  divsd       xmm1,mmword ptr [__real@401c000000000000 (07FF6D64AFE58h)] 
</code></pre>

<p>and was curious as to what the point of the <code>xorps xmm1, xmm1</code> instruction was. It seems like any number xor itself would just give 0? If so, what's the purpose of clearing the register?</p>

<p>Note: I'm just asking this out of pure curiosity. I know very little about assembly language.</p>