title: Fastest way to multiply two vectors of 32bit integers in C++, with SSE
body: <p>I have two unsigned vectors, both with size 4</p>
  
  <pre><code>vector&lt;unsigned&gt; v1 = {2, 4, 6, 8}
  vector&lt;unsigned&gt; v2 = {1, 10, 11, 13}
  </code></pre>
  
  <p>Now I want to multiply these two vectors and get a new one</p>
  
  <pre><code>vector&lt;unsigned&gt; v_result = {2*1, 4*10, 6*11, 8*13}
  </code></pre>
  
  <p>What is the SSE operation to use? Is it cross platform or only
  in some specified platforms?</p>
  
  <p>Adding:
  If my goal is adding not multiplication, I can do this super fast:</p>
  
  <pre><code>__m128i a = _mm_set_epi32(1,2,3,4);
  __m128i b = _mm_set_epi32(1,2,3,4);
  __m128i c;
  c = _mm_add_epi32(a,b);
  </code></pre>