Compiling<p><pre><code>  #include &lt;stdint.h&gt;
  uint64_t inc(uint64_t x) { return x + 1; }
</code></pre>
With -O0 gives me:<p><pre><code>  48 83 c0 01          	add    $0x1,%rax
</code></pre>
and with -O2:<p><pre><code>  48 8d 47 01          	lea    0x1(%rdi),%rax
</code></pre>
That is, both are four bytes.