title: What is the difference between the ADC and ADCX instructions on ia32/ia64?
body: <p>I was looking through the Intel software developer manual when I encountered the <code>ADCX</code> instruction, which was previously unknown to me; its encoding is <code>66 0F 38 F6</code>. It seems to be almost identical to the <code>ADC</code> instruction, so why would you use <code>ADCX</code> when: </p>
  
  <ul>
  <li>it is only supported in modern CPUs</li>
  <li>instruction encoding takes more space (4 bytes versus 1 for <code>ADC</code>)</li>
  </ul>
  
  <p>Is there some other side effect, or special case, where <code>ADCX</code> proves advantageous over <code>ADC</code>? There must have been some good reason why this was added to the instruction repertoire.</p>