title: inlining failed in call to always_inline '__m128i _mm_cvtepu8_epi32(__m128i)': target specific option mismatch _mm_cvtepu8_epi32 (__m128i __X)
body: <p>I am trying to compile <a href="https://github.com/norishigefukushima/WeightedJointBilateralFilter" rel="noreferrer">this project</a> from github which is implemented in C++ with SIMD intrinsic (SSE4.1). The project in github is given as a Visual Studio solution, but I am trying to port it in Qtcreator with cmake. While I am trying to compile it I get the following error:</p>
  
  <pre><code>/usr/lib/gcc/x86_64-unknown-linux-gnu/5.3.0/include/smmintrin.h:520:1: error: inlining failed in call to always_inline '__m128i _mm_cvtepu8_epi32(__m128i)': target specific option mismatch
   _mm_cvtepu8_epi32 (__m128i __X)
  </code></pre>
  
  <p>which I am sure it has to do with the SSE optimization part, but since I am not that familiar with this subject I do not really know what it means and how I can solve it and in the net that I searched I couldn't really get something useful. The code that gives the following problem is the following:</p>
  
  <pre><code>static void cvt8u32f(const Mat&amp; src, Mat&amp; dest, const float amp)
  {
      const int imsize = src.size().area()/8;
      const int nn = src.size().area()- imsize*8 ;
      uchar* s = (uchar*)src.ptr(0);
      float* d = dest.ptr&lt;float&gt;(0);
      const __m128 mamp = _mm_set_ps1(amp);
      const __m128i zero = _mm_setzero_si128();
      for(int i=imsize;i--;)
      {
          __m128i s1 = _mm_loadl_epi64((__m128i*)s);
  
          _mm_store_ps(d,_mm_mul_ps(mamp,_mm_cvtepi32_ps(_mm_cvtepu8_epi32(s1))));
          _mm_store_ps(d+4,_mm_mul_ps(mamp,_mm_cvtepi32_ps(_mm_cvtepu8_epi32(_mm_srli_si128(s1,4)))));
          s+=8;
          d+=8;
      }
      for(int i=0;i&lt;nn;i++)
      {
          *d = (float)*s * amp;
          s++,d++;
      }
  
  }
  </code></pre>
  
  <p>can someone explain me what is the issue and what I am missing. Thanks in advance.</p>