diff --git a/Intrinsics_Reference/ch_biendian.xml b/Intrinsics_Reference/ch_biendian.xml index a0b9423..af0b792 100644 --- a/Intrinsics_Reference/ch_biendian.xml +++ b/Intrinsics_Reference/ch_biendian.xml @@ -593,8 +593,7 @@ a[3] = c; Let's move from scalars to arrays, which are more interesting to - us since we can use vector registers to operate on arrays, or - portions of larger arrays. Suppose we + us since we can map arrays into vector registers. Suppose we have an array of bytes with values 0 through 15, as shown in . Note that each byte is a separate data element with only one possible representation in diff --git a/Intrinsics_Reference/ch_vec_reference.xml b/Intrinsics_Reference/ch_vec_reference.xml index 4db517b..a02f004 100644 --- a/Intrinsics_Reference/ch_vec_reference.xml +++ b/Intrinsics_Reference/ch_vec_reference.xml @@ -29410,12 +29410,197 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref"> Then each byte element i of r is determined as follows. The start bit sb is obtained from bits 5:7 of byte element - i of a. Then + i of b. Then the contents of bits sb:sb+7 of the halfword in byte elements i:i+1 of v are placed into byte element i of r. + An example follows: + + + + + + + + + + + + + + + + + + + + + + + a + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + + + b + + + 00 + + + 01 + + + 02 + + + 03 + + + 04 + + + 05 + + + 06 + + + 07 + + + 08 + + + 09 + + + 0A + + + 0B + + + 0C + + + 0D + + + 0E + + + 0F + + + + + r + + + 0F + + + 1E + + + 3C + + + 78 + + + F0 + + + E1 + + + C3 + + + 87 + + + 0F + + + 1E + + + 3C + + + 78 + + + F0 + + + E1 + + + C3 + + + 80 + + + + + + + Endian considerations: All bit and byte element numbers are specified in big-endian order. This intrinsic is not endian-neutral. @@ -31644,11 +31829,195 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref"> r is determined as follows. The start bit sb is obtained from bits 5:7 of byte element i of a. Then the contents of bits + role="bold">b. Then the contents of bits (8 – sb):(15 – sb) of the halfword in byte elements i:i+1 of v are placed into byte element i of r. + An example follows: + + + + + + + + + + + + + + + + + + + + + + + a + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + 0F + + + + + b + + + 0F + + + 0E + + + 0D + + + 0C + + + 0B + + + 0A + + + 09 + + + 08 + + + 07 + + + 06 + + + 05 + + + 04 + + + 03 + + + 02 + + + 01 + + + 00 + + + + + r + + + 00 + + + 3C + + + 78 + + + F0 + + + E1 + + + C3 + + + 87 + + + 0F + + + 1E + + + 3C + + + 78 + + + F0 + + + E1 + + + C3 + + + 87 + + + 0F + + + + + + Endian considerations: All bit and byte element numbers are specified in big-endian order. This intrinsic is not endian-neutral.