| Index: native_client_sdk/doc_generated/reference/pnacl-c-cpp-language-support.html
|
| diff --git a/native_client_sdk/doc_generated/reference/pnacl-c-cpp-language-support.html b/native_client_sdk/doc_generated/reference/pnacl-c-cpp-language-support.html
|
| index 5fc75ec1b9a35bba72c2d63527055f7ed9ea61f0..512c063b019c4fb750fa65da927b342407e14866 100644
|
| --- a/native_client_sdk/doc_generated/reference/pnacl-c-cpp-language-support.html
|
| +++ b/native_client_sdk/doc_generated/reference/pnacl-c-cpp-language-support.html
|
| @@ -203,7 +203,8 @@ are well supported by different hardware platforms and don’t require any
|
| new compiler intrinsics.</p>
|
| <p>Vector types can be used through the <code>vector_size</code> attribute:</p>
|
| <pre class="prettyprint">
|
| -typedef int v4s __attribute__((vector_size(16)));
|
| +#define VECTOR_BYTES 16
|
| +typedef int v4s __attribute__((vector_size(VECTOR_BYTES)));
|
| v4s a = {1,2,3,4};
|
| v4s b = {5,6,7,8};
|
| v4s c, d, e;
|
| @@ -312,7 +313,39 @@ void print(const T v) {
|
| std::cout << std::endl;
|
| }
|
| </pre>
|
| -<p>Vector shuffles are currently unsupported but will be added soon.</p>
|
| +<p>Vector shuffles (often called permutation or swizzle) operations are
|
| +supported through <code>__builtin_shufflevector</code>. The builtin has two
|
| +vector arguments of the same element type, followed by a list of
|
| +constant integers that specify the element indices of the first two
|
| +vectors that should be extracted and returned in a new vector. These
|
| +element indices are numbered sequentially starting with the first
|
| +vector, continuing into the second vector. Thus, if <code>vec1</code> is a
|
| +4-element vector, index <code>5</code> would refer to the second element of
|
| +<code>vec2</code>. An index of <code>-1</code> can be used to indicate that the
|
| +corresponding element in the returned vector is a don’t care and can be
|
| +optimized by the backend.</p>
|
| +<p>The result of <code>__builtin_shufflevector</code> is a vector with the same
|
| +element type as <code>vec1</code> / <code>vec2</code> but that has an element count equal
|
| +to the number of indices specified.</p>
|
| +<pre class="prettyprint">
|
| +// identity operation - return 4-element vector v1.
|
| +__builtin_shufflevector(v1, v1, 0, 1, 2, 3)
|
| +
|
| +// "Splat" element 0 of V1 into a 4-element result.
|
| +__builtin_shufflevector(V1, V1, 0, 0, 0, 0)
|
| +
|
| +// Reverse 4-element vector V1.
|
| +__builtin_shufflevector(V1, V1, 3, 2, 1, 0)
|
| +
|
| +// Concatenate every other element of 4-element vectors V1 and V2.
|
| +__builtin_shufflevector(V1, V2, 0, 2, 4, 6)
|
| +
|
| +// Concatenate every other element of 8-element vectors V1 and V2.
|
| +__builtin_shufflevector(V1, V2, 0, 2, 4, 6, 8, 10, 12, 14)
|
| +
|
| +// Shuffle v1 with some elements being undefined
|
| +__builtin_shufflevector(v1, v1, 3, -1, 1, -1)
|
| +</pre>
|
| </section><section id="auto-vectorization">
|
| <h3 id="auto-vectorization">Auto-Vectorization</h3>
|
| <p>Auto-vectorization is currently not enabled for Portable Native Client,
|
|
|