title: how to pass parameters to const value in intel SSE intrinsics?
body: <p>I know the use of <strong>const value</strong> in arguments ; when you don't want the function to modify the parameter. </p>
  
  <p>So this test code is running well : </p>
  
  <pre><code>#include "stdafx.h"
  #include &lt;io.h&gt;
  #include &lt;iostream&gt;
  using namespace std;
  
  void foo (const int y ) 
  {
      printf ( "x = %d \n" , y*2 ) ;  
  }
  
  int _tmain(int argc, _TCHAR* argv[])
  {
      int y = 3;
      foo ( y );
      system("pause");
      return 0;
  }
  </code></pre>
  
  <p>But when I was doing the same on intel SSE intrinsics for example *_mm_blend_epi16* function, I get this error :</p>
  
  <pre><code>error C2057: expected constant expression
  </code></pre>
  
  <p>The code for this error was : </p>
  
  <pre><code>#include "stdafx.h"
  #include &lt;io.h&gt;
  #include &lt;iostream&gt;
  using namespace std;
  
  int _tmain(int argc, _TCHAR* argv[])
  {
      int y = 3 ;
      __m128i x1,x2;
      _mm_blend_epi16(x1,x2,y);
      system("pause");
      return 0;
  }
  </code></pre>
  
  <p>And the <strong>_mm_blend_epi16</strong> definition is :     </p>
  
  <pre><code>__m128i _mm_blend_epi16( __m128i a, __m128i b, const int mask )
  </code></pre>
  
  <p>So, What is the problem ? Am I doing something wrong ?   </p>
  
  <p><strong>EDIT</strong><br>
  <strong>And what's is the solution ?</strong> </p>