Clarify the documentation of ext_vector, and add a small example. Hopefully

this will alleviate some confusion about the existence of this feature.

Comments/improvements welcome.

llvm-svn: 94645
This commit is contained in:
Owen Anderson 2010-01-27 01:22:36 +00:00
parent b473083fcd
commit 029eb7d243
1 changed files with 19 additions and 3 deletions

View File

@ -205,12 +205,28 @@ is used in the file argument.</p>
<h2 id="vectors">Vectors and Extended Vectors</h2>
<!-- ======================================================================= -->
<p>Supports the GCC vector extensions, plus some stuff like V[1]. ext_vector
with V.xyzw syntax and other tidbits. See also <a
href="#__builtin_shufflevector">__builtin_shufflevector</a>.</p>
<p>Supports the GCC vector extensions, plus some stuff like V[1].</p>
<p>Also supports <tt>ext_vector</tt>, which additionally support for V.xyzw
syntax and other tidbits as seen in OpenCL. An example is:</p>
<blockquote>
<pre>
typedef float float4 <b>__attribute__((ext_vector_type(4)))</b>;
typedef float float2 <b>__attribute__((ext_vector_type(2)))</b>;
float4 foo(float2 a, float2 b) {
float4 c;
c.xz = a;
c.yw = b;
return c;
}
</blockquote>
<p>Query for this feature with __has_feature(attribute_ext_vector_type).</p>
<p>See also <a href="#__builtin_shufflevector">__builtin_shufflevector</a>.</p>
<!-- ======================================================================= -->
<h2 id="checking_language_features">Checks for Standard Language Features</h2>
<!-- ======================================================================= -->