title: error: 'uint16_t' undeclared?
body: <p>I have the code </p>
  
  <pre><code>#include &lt;emmintrin.h&gt;
  #include &lt;stdio.h&gt;
  
  void print128_num(__m128i var)
  {
      uint16_t *val = (uint16_t*) &amp;var;
      printf("Numerical: %i %i %i %i %i %i %i %i \n",
             val[0], val[1], val[2], val[3], val[4], val[5],
             val[6], val[7]);
  }
  int main(void)
  {
      __m128i a = _mm_set_epi32(4, 3, 2, 1);
      __m128i b = _mm_set_epi32(7, 6, 5, 4);
      __m128i c = _mm_add_epi32(a, b);
  
      print128_num(c);
  
      return 0;
  }
  </code></pre>
  
  <p>and I'm getting an error where <code>uint16_t</code> isn't declared. I'm using GCC with MINGW.</p>
  
  <p>Heres the complete error.</p>
  
  <pre><code>||In function 'print128_num':|
  |6|error: 'uint16_t' undeclared (first use in this function)|
  |6|error: (Each undeclared identifier is reported only once|
  |6|error: for each function it appears in.)|
  |6|error: 'val' undeclared (first use in this function)|
  |6|error: expected expression before ')' token|
  </code></pre>