title: What is the purpose of xorps on the same register?
body: <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>