title: Do complex addressing modes have extra overhead for loads from memory?
body: <p>Is there a difference in performance between these <code>mov</code> load instructions?  Do the more complex addressing modes have extra <em>overhead</em> (latency or throughput) compared to the simple ones?</p>
  
  <pre><code># AT&amp;T syntax                       # Intel syntax:
  movq (%rsi), %rax                   mov  rax, [rsi]
  
  movq (%rdi, %rsi), %rax             mov  rax, [rdi + rsi]
  
  movq (%rdi, %rsi, 4), %rax          mov  rax, [rdi + rsi*4]
  </code></pre>