title: Reliable information about x86 string instruction performance?
body: <p>Common widsom is that <code>rep movsb</code> is much slower than <code>rep movsd</code> (or on 64-bit, <code>rep movsq</code>) when performing identical operations. However, I've been testing on a few modern machines, and the run times are coming out identical (up to measurement noise) across a huge range of buffer sizes (10 bytes to 2 megs). So far I have just tested on 2 machines (32-bit Intel Atom D510 and 64-bit AMD FX 8120).</p>
  
  <ul>
  <li><p>Are there any modern x86 (32- or 64-bit) machines where <code>rep movsb</code> is slower than <code>rep movsd</code> (or <code>rep movsq</code>)?</p></li>
  <li><p>If not, what was the last machine where the difference was significant, and how significant was it?</p></li>
  </ul>
  
  <p>I'm asking this question from a standpoint of wanting to avoid cargo-culting a bunch of tests to break memory up into unaligned head/tail and aligned middle for the sake of using <code>rep movsd</code> or <code>rep movsq</code> if there's no actual benefit to doing this...</p>