]> granicus.if.org Git - clang/commitdiff
Clarify the documentation of ext_vector, and add a small example. Hopefully
authorOwen Anderson <resistor@mac.com>
Wed, 27 Jan 2010 01:22:36 +0000 (01:22 +0000)
committerOwen Anderson <resistor@mac.com>
Wed, 27 Jan 2010 01:22:36 +0000 (01:22 +0000)
this will alleviate some confusion about the existence of this feature.

Comments/improvements welcome.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94645 91177308-0d34-0410-b5e6-96231b3b80d8

docs/LanguageExtensions.html

index e2a44eaed0b9edabcfb281258089628af67dddec..d32842b5d23d11db365ab594983b687c8c83b817 100644 (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>
 <!-- ======================================================================= -->