title: What is __ext_vector_type__ and simd?
body: <p>I'm playing with Apple Metal API along with so called <em>simd</em> library. There's such code in a header:</p>
  
  <pre><code>typedef __attribute__((__ext_vector_type__(3))) float vector_float3;
  </code></pre>
  
  <p>And I'm curious what it actually does and why the compiler doesn't allow references to <strong>vector_float3</strong> in a function's argument or in the next manner:</p>
  
  <pre><code>vector_float3  v;
  vector_float3&amp; ref = v;
  </code></pre>