title: Get member of __m128 by index?
body: <p>I've got some code, originally given to me by someone working with MSVC, and I'm trying to get it to work on Clang. Here's the function that I'm having trouble with:</p>
  
  <pre><code>float vectorGetByIndex( __m128 V, unsigned int i )
  {
      assert( i &lt;= 3 );
      return V.m128_f32[i];
  }
  </code></pre>
  
  <p>The error I get is as follows:</p>
  
  <pre><code>Member reference has base type '__m128' is not a structure or union.
  </code></pre>
  
  <p>I've looked around and found that Clang (and maybe GCC) has a problem with treating __m128 as a struct or union. However I haven't managed to find a straight answer as to how I can get these values back. I've tried using the subscript operator and couldn't do that, and I've glanced around the huge list of SSE intrinsics functions and haven't yet found an appropriate one.</p>