title: Multiply-add `a = a*2 + b` instruction on CPU?
body: <p>The classical Multiply-Accumulate operation is <code>a = a + b*c</code>. But I currently wonder if there exist an instruction that allows to do the following operations on integer in 1 clock cycle: (<strong>a and b are unsigned 64-bit integers: <code>unsigned long long int</code></strong>)</p>
  
  <pre><code>a = a*2-1
  a = a*2+b
  </code></pre>
  
  <p>Currently, I use:</p>
  
  <pre><code>a *= 2
  --a
  </code></pre>
  
  <p>for the first one and</p>
  
  <pre><code>a *= 2
  a += b
  </code></pre>
  
  <p>for the second one. And I think that each one is translated to 2 instructions in ASM. But is there a way to use 1 ASM instruction instead (and with which instruction set extension on Intel CPU)?</p>
  
  <p>(I search that because I do this operation billions times)</p>