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 512c063b019c4fb750fa65da927b342407e14866..0c1c8f2610440367c421f1660075ddf254a31af8 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 |
@@ -208,9 +208,8 @@ typedef int v4s __attribute__((vector_size(VECTOR_BYTES))); |
v4s a = {1,2,3,4}; |
v4s b = {5,6,7,8}; |
v4s c, d, e; |
-c = b + 1; /* c = b + {1,1,1,1}; */ |
-d = 2 * b; /* d = {2,2,2,2} * b; */ |
-e = c + d; |
+c = a + b; /* c = {6,8,10,12} */ |
+d = b >> a; /* d = {2,1,0,0} */ |
</pre> |
<p>Vector comparisons are represented as a bitmask as wide as the compared |
elements of all <code>0</code> or all <code>1</code>:</p> |
@@ -331,21 +330,30 @@ to the number of indices specified.</p> |
// 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) |
+// "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) |
+// 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 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) |
+// 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> |
+<p>One common use of <code>__builtin_shufflevector</code> is to perform |
+vector-scalar operations:</p> |
+<pre class="prettyprint"> |
+typedef int v4s __attribute__((vector_size(16))); |
+v4s shift_right_by(v4s shift_me, int shift_amount) { |
+ v4s tmp = {shift_amount}; |
+ return shift_me >> __builtin_shuffle_vector(tmp, tmp, 0, 0, 0, 0); |
+} |
+</pre> |
</section><section id="auto-vectorization"> |
<h3 id="auto-vectorization">Auto-Vectorization</h3> |
<p>Auto-vectorization is currently not enabled for Portable Native Client, |