diff --git a/Intrinsics_Reference/ch_biendian.xml b/Intrinsics_Reference/ch_biendian.xml
index b18f13f..8c4d76a 100644
--- a/Intrinsics_Reference/ch_biendian.xml
+++ b/Intrinsics_Reference/ch_biendian.xml
@@ -762,391 +762,369 @@ a[3] = c;
endian-sensitive built-in functions can be found in .
-
- Endian-Sensitive Built-In Functions
-
+
+ Extended Data Movement Functions
+
+ The built-in functions in map to Altivec/VMX load and
+ store instructions and provide access to the “auto-aligning”
+ memory instructions of the VMX ISA where low-order address
+ bits are discarded before performing a memory access. These
+ instructions load and store data in accordance with the
+ program's current endian mode, and do not need to be adapted
+ by the compiler to reflect little-endian operation during code
+ generation.
+
+
+ Before the bi-endian programming model was introduced, the
+ vec_lvsl
and vec_lvsr
intrinsics
+ were supported. These could be used in conjunction with
+ vec_perm
and VMX load and store instructions for
+ unaligned access. The vec_lvsl
and
+ vec_lvsr
interfaces are deprecated in accordance
+ with the interfaces specified here. For compatibility, the
+ built-in pseudo sequences published in previous VMX documents
+ continue to work with little-endian data layout and the
+ little-endian vector layout described in this document.
+ However, the use of these sequences in new code is discouraged
+ and usually results in worse performance. It is recommended
+ that compilers issue a warning when these functions are used
+ in little-endian environments.
+
+
+ VMX Memory Access Built-In Functions
+
-
-
-
-
-
- vec_bperm
-
-
- vec_mergeh
-
-
- vec_signedo
-
-
+
+
+
- vec_cipher_be
+
+ Built-in Function
+
- vec_mergel
+
+ Corresponding Power
+ Instructions
+
-
- vec_sld
+
+
+ Implementation Notes
+
+
+
- vec_cipherlast_be
+ vec_ld
- vec_mergeo
+ lvx
- vec_sldw
+ Hardware works as a function of endian mode.
- vec_doublee
+ vec_lde
- vec_mfvscr
+ lvebx, lvehx, lvewx
- vec_sll
+ Hardware works as a function of endian mode.
- vec_doubleh
+ vec_ldl
- vec_mule
+ lvxl
- vec_slo
+ Hardware works as a function of endian mode.
- vec_doublel
+ vec_st
- vec_mulo
+ stvx
- vec_slv
+ Hardware works as a function of endian mode.
- vec_doubleo
+ vec_ste
- vec_ncipher_be
+ stvebx, stvehx, stvewx
- vec_splat
+ Hardware works as a function of endian mode.
- vec_extract
+ vec_stl
- vec_ncipherlast_be
+ stvxl
- vec_srl
+ Hardware works as a function of endian mode.
+
+
+
+
+ Instead, it is recommended that programmers use the
+ vec_xl
and vec_xst
vector built-in
+ functions to access unaligned data streams. See the
+ descriptions of these instructions in for further description and
+ implementation details.
+
+
+ Endian-Sensitive Built-In Functions
+
+
+
+
+
- vec_extract_fp32_from_shorth
+ vec_bperm
- vec_pack
+ vec_mergeo
- vec_sro
+ vec_sld
- vec_extract_fp32_from_shortl
+ vec_cipher_be
- vec_pack_to_short_fp32
+ vec_mfvscr
- vec_srv
+ vec_sldw
- vec_extract4b
+ vec_cipherlast_be
- vec_packpx
+ vec_mule
- vec_sum2s
+ vec_sll
- vec_first_match_index
+ vec_doublee
- vec_packs
+ vec_mulo
- vec_sums
+ vec_slo
- vec_first_match_or_eos_index
+ vec_doubleh
- vec_packsu
+ vec_ncipher_be
- vec_unpackh
+ vec_slv
- vec_first_mismatch_index
+ vec_doublel
- vec_perm
+ vec_ncipherlast_be
- vec_unpackl
+ vec_splat
- vec_first_mismatch_or_eos_index
+ vec_doubleo
- vec_permxor
+ vec_pack
- vec_unsigned2
+ vec_srl
- vec_float2
+ vec_extract
- vec_pmsum_be
+ vec_pack_to_short_fp32
- vec_unsignede
+ vec_sro
- vec_floate
+ vec_extract_fp32_from_shorth
- vec_reve
+ vec_packpx
- vec_unsignedo
+ vec_srv
- vec_floato
+ vec_extract_fp32_from_shortl
- vec_sbox_be
+ vec_packs
- vec_xl (ISA 2.07 only)
+ vec_sum2s
- vec_gb
+ vec_extract_4b
- vec_shasigma_be
+ vec_packsu
- vec_xl_be
+ vec_sums
- vec_insert
+ vec_float2
- vec_signed2
+ vec_perm
- vec_xst (ISA 2.07 only)
+ vec_unpackh
- vec_insert4b
+ vec_floate
- vec_signede
+ vec_permxor
- vec_xst_be
+ vec_unpackl
- vec_mergee
-
-
-
-
-
-
+ vec_floato
-
-
-
-
-
- Extended Data Movement Functions
-
- The built-in functions in map to Altivec/VMX load and
- store instructions and provide access to the “auto-aligning”
- memory instructions of the VMX ISA where low-order address
- bits are discarded before performing a memory access. These
- instructions load and store data in accordance with the
- program's current endian mode, and do not need to be adapted
- by the compiler to reflect little-endian operation during code
- generation.
-
-
- Before the bi-endian programming model was introduced, the
- vec_lvsl
and vec_lvsr
intrinsics
- were supported. These could be used in conjunction with
- vec_perm
and VMX load and store instructions for
- unaligned access. The vec_lvsl
and
- vec_lvsr
interfaces are deprecated in accordance
- with the interfaces specified here. For compatibility, the
- built-in pseudo sequences published in previous VMX documents
- continue to work with little-endian data layout and the
- little-endian vector layout described in this document.
- However, the use of these sequences in new code is discouraged
- and usually results in worse performance. It is recommended
- that compilers issue a warning when these functions are used
- in little-endian environments.
-
-
- VMX Memory Access Built-In Functions
-
-
-
-
-
-
-
- Built-in Function
-
+ vec_pmsum_be
-
- Corresponding Power
- Instructions
-
-
-
-
- Implementation Notes
-
+ vec_unsigned2
-
-
- vec_ld
+ vec_gb
- lvx
+ vec_reve
- Hardware works as a function of endian mode.
+ vec_unsignede
- vec_lde
+ vec_insert
- lvebx, lvehx, lvewx
+ vec_sbox_be
- Hardware works as a function of endian mode.
+ vec_unsignedo
- vec_ldl
+ vec_insert_4b
- lvxl
+ vec_shasigma_be
- Hardware works as a function of endian mode.
+ vec_xl (ISA 2.07 only)
- vec_st
+ vec_mergee
- stvx
+ vec_signed2
- Hardware works as a function of endian mode.
+ vec_xl_be
- vec_ste
+ vec_mergeh
- stvebx, stvehx, stvewx
+ vec_signede
- Hardware works as a function of endian mode.
+ vec_xst (ISA 2.07 only)
- vec_stl
+ vec_mergel
- stvxl
+ vec_signedo
- Hardware works as a function of endian mode.
+ vec_xst_be
-
-
+
+
-
- Instead, it is recommended that programmers use the
- vec_xl
and vec_xst
vector built-in
- functions to access unaligned data streams. See the
- descriptions of these instructions in for further description and
- implementation details.
-
Big-Endian Vector Layout in Little-Endian Environments
diff --git a/Intrinsics_Reference/ch_vec_reference.xml b/Intrinsics_Reference/ch_vec_reference.xml
index 387a029..4c170be 100644
--- a/Intrinsics_Reference/ch_vec_reference.xml
+++ b/Intrinsics_Reference/ch_vec_reference.xml
@@ -13606,8 +13606,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
natural element order. If no match, returns the number of
characters as an element count in the vector argument.
Endian considerations:
- The element numbering within a register is left-to-right for big-endian
- targets, and right-to-left for little-endian targets.
+ None.
@@ -13881,8 +13880,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
terminator. If no match or terminator, returns the number of
characters as an element count in the vector argument.
Endian considerations:
- The element numbering within a register is left-to-right for big-endian
- targets, and right-to-left for little-endian targets.
+ None.
@@ -14223,8 +14221,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
natural element order. If no mismatch, returns the number of
characters as an element count in the vector argument.
Endian considerations:
- The element numbering within a register is left-to-right for big-endian
- targets, and right-to-left for little-endian targets.
+ None.
@@ -14482,8 +14479,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
terminator. If no mismatch or terminator, returns the number of
characters as an element count in the vector argument.
Endian considerations:
- The element numbering within a register is left-to-right for big-endian
- targets, and right-to-left for little-endian targets.
+ None.
@@ -16240,7 +16236,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector bool char *
+ vector bool char *
@@ -16256,7 +16252,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const signed char *
+ signed char *
@@ -16272,7 +16268,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector signed char *
+ vector signed char *
@@ -16288,7 +16284,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const unsigned char *
+ unsigned char *
@@ -16304,7 +16300,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector unsigned char *
+ vector unsigned char *
@@ -16320,7 +16316,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector bool short *
+ vector bool short *
@@ -16336,7 +16332,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const signed short *
+ signed short *
@@ -16352,7 +16348,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector signed short *
+ vector signed short *
@@ -16368,7 +16364,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const unsigned short *
+ unsigned short *
@@ -16384,7 +16380,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector unsigned short *
+ vector unsigned short *
@@ -16400,7 +16396,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector pixel *
+ vector pixel *
@@ -16416,7 +16412,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector bool int *
+ vector bool int *
@@ -16432,7 +16428,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const signed int *
+ signed int *
@@ -16448,7 +16444,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector signed int *
+ vector signed int *
@@ -16464,7 +16460,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const unsigned int *
+ unsigned int *
@@ -16480,7 +16476,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector unsigned int *
+ vector unsigned int *
@@ -16496,7 +16492,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector bool long long *
+ vector bool long long *
@@ -16512,7 +16508,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const signed long long *
+ signed long long *
@@ -16528,7 +16524,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector signed long long *
+ vector signed long long *
@@ -16544,7 +16540,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const unsigned long long *
+ unsigned long long *
@@ -16560,7 +16556,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector unsigned long long *
+ vector unsigned long long *
@@ -16576,7 +16572,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const signed __int128 *
+ signed __int128 *
@@ -16592,7 +16588,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector signed __int128 *
+ vector signed __int128 *
@@ -16608,7 +16604,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const unsigned __int128 *
+ unsigned __int128 *
@@ -16624,7 +16620,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector unsigned __int128 *
+ vector unsigned __int128 *
@@ -16640,7 +16636,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const float *
+ float *
@@ -16656,7 +16652,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector float *
+ vector float *
@@ -16672,7 +16668,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const double *
+ double *
@@ -16688,7 +16684,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector double *
+ vector double *
@@ -16789,7 +16785,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const signed char *
+ signed char *
@@ -16805,7 +16801,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const unsigned char *
+ unsigned char *
@@ -16821,7 +16817,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const signed short *
+ signed short *
@@ -16837,7 +16833,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const unsigned short *
+ unsigned short *
@@ -16853,7 +16849,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const signed int *
+ signed int *
@@ -16869,7 +16865,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const unsigned int *
+ unsigned int *
@@ -16885,7 +16881,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const float *
+ float *
@@ -16972,7 +16968,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector bool char *
+ vector bool char *
@@ -16988,7 +16984,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const signed char *
+ signed char *
@@ -17004,7 +17000,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector signed char *
+ vector signed char *
@@ -17020,7 +17016,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const unsigned char *
+ unsigned char *
@@ -17036,7 +17032,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector unsigned char *
+ vector unsigned char *
@@ -17052,7 +17048,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector bool short *
+ vector bool short *
@@ -17068,7 +17064,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const signed short *
+ signed short *
@@ -17084,7 +17080,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector signed short *
+ vector signed short *
@@ -17100,7 +17096,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const unsigned short *
+ unsigned short *
@@ -17116,7 +17112,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector unsigned short *
+ vector unsigned short *
@@ -17132,7 +17128,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector pixel *
+ vector pixel *
@@ -17148,7 +17144,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector bool int *
+ vector bool int *
@@ -17164,7 +17160,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const signed int *
+ signed int *
@@ -17180,7 +17176,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector signed int *
+ vector signed int *
@@ -17196,7 +17192,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const unsigned int *
+ unsigned int *
@@ -17212,7 +17208,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector unsigned int *
+ vector unsigned int *
@@ -17228,7 +17224,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector bool long long *
+ vector bool long long *
@@ -17244,7 +17240,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const signed long long *
+ signed long long *
@@ -17260,7 +17256,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector signed long long *
+ vector signed long long *
@@ -17276,7 +17272,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const unsigned long long *
+ unsigned long long *
@@ -17292,7 +17288,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector unsigned long long *
+ vector unsigned long long *
@@ -17308,7 +17304,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const float *
+ float *
@@ -17324,7 +17320,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector float *
+ vector float *
@@ -17340,7 +17336,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const double *
+ double *
@@ -17356,7 +17352,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const vector double *
+ vector double *
@@ -25153,7 +25149,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
- vector signed char
+ vector unsigned char
vector signed char
@@ -35164,6 +35160,100 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
role="bold">r contains the saturated sum of elements 2 and 3
of a and element 3 of b.
+ An example follows:
+
+
+
+
+
+
+
+
+
+
+ a
+
+
+ -2
+ (FFFFFFFE)
+
+
+ -3
+ (FFFFFFFD)
+
+
+ 7
+ (00000007)
+
+
+ 15
+ (0000000F)
+
+
+
+
+ b
+
+
+ 31
+ (0000001F)
+
+
+ -61
+ (FFFFFFC3)
+
+
+ 121
+ (000000F0)
+
+
+ 2147483647
+ (7FFFFFFF)
+ (MAXINT)
+
+
+
+
+ calculation
+
+
+ 0
+
+
+ -2 + -3 + -61
+
+
+ 0
+
+
+ 7 + 15 + 2147483647
+
+
+
+
+ r
+
+
+ 00000000
+
+
+ -66
+ (FFFFFFBE)
+
+
+ 00000000
+
+
+ 2147483647
+ (7FFFFFFF)
+ (saturated)
+
+
+
+
+
+
+
Endian considerations:
The element numbering within a register is left-to-right for big-endian
targets, and right-to-left for little-endian targets.
@@ -35286,6 +35376,246 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
+ An example for input a
+ of type vector unsigned char follows:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a
+
+
+ 01
+
+
+ 03
+
+
+ 07
+
+
+ 0F
+
+
+ FF
+
+
+ EE
+
+
+ BB
+
+
+ 66
+
+
+ 11
+
+
+ 22
+
+
+ 44
+
+
+ 88
+
+
+ 00
+
+
+ 00
+
+
+ 00
+
+
+ 01
+
+
+
+
+ sum across
+
+
+ 0000001A
+
+
+ 0000030E
+
+
+ 000000FF
+
+
+ 00000001
+
+
+
+
+ b
+
+
+ 0000FF00
+
+
+ 10203040
+
+
+ 0000FFFF
+
+
+ FFFFFFFF
+
+
+
+
+ r
+
+
+ 0000FF1A
+
+
+ 1020334E
+
+
+ 000100FE
+
+
+ FFFFFFFF
+ (saturated)
+
+
+
+
+
+
+
+ An example for input a
+ of type vector signed short follows:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ a
+
+
+ FFFF
+
+
+ FFFE
+
+
+ 7FFF
+
+
+ 7FFE
+
+
+ 0124
+
+
+ 4210
+
+
+ FFFE
+
+
+ 0001
+
+
+
+
+ sum across
+
+
+ FFFFFFFD
+
+
+ 0000FFFD
+
+
+ 00004334
+
+
+ FFFFFFFF
+
+
+
+
+ b
+
+
+ 00000003
+
+
+ 12340000
+
+
+ 7FFFFF00
+
+
+ FFFFFFFF
+
+
+
+
+ r
+
+
+ 00000000
+
+
+ 1234FFFD
+
+
+ 7FFFFFFF
+ (saturated)
+
+
+ FFFFFFFE
+
+
+
+
+
+
+
Endian considerations:
None.
@@ -35405,6 +35735,92 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
of r are 0. Element 3 is the saturated
sum of all the elements of a and
element 3 of b.
+ An example follows:
+
+
+
+
+
+
+
+
+
+
+
+ a
+
+
+ 00000001
+
+
+ 00000003
+
+
+ 00000007
+
+
+ 0000000F
+
+
+
+
+ sum across
+
+
+ 00000000
+
+
+ 00000000
+
+
+ 00000000
+
+
+ 0000001A
+
+
+
+
+ b
+
+
+ ????????
+ (ignored)
+
+
+ ????????
+ (ignored)
+
+
+ ????????
+ (ignored)
+
+
+ 87654321
+
+
+
+
+ r
+
+
+ 00000000
+
+
+ 00000000
+
+
+ 00000000
+
+
+ 8765433B
+
+
+
+
+
+
+
Endian considerations:
The element numbering within a register is left-to-right for big-endian
targets, and right-to-left for little-endian targets.
@@ -36501,53 +36917,6 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
3 of r are undefined. Truncation
of a negative number to an unsigned integer results in a value of
zero.
- An example follows:
-
-
-
-
-
-
-
-
-
-
-
-
- a
-
-
- 1.7
-
-
- -1.0
-
-
-
-
- r
-
-
- 00000001
-
-
- ????????
- (undefined)
-
-
- 00000000
- (truncation of a negative number to unsigned is 0)
-
-
- ????????
- (undefined)
-
-
-
-
-
-
-
Endian considerations:
The element numbering within a register is left-to-right for big-endian
targets, and right-to-left for little-endian targets.
@@ -36638,53 +37007,6 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
and 2 of r are undefined. Truncation
of a negative number to an unsigned integer results in a value of
zero.
- An example follows:
-
-
-
-
-
-
-
-
-
-
-
-
- a
-
-
- 1.7
-
-
- -1.0
-
-
-
-
- r
-
-
- ????????
- (undefined)
-
-
- 00000001
-
-
- ????????
- (undefined)
-
-
- 00000000
- (truncation of a negative number to unsigned is 0)
-
-
-
-
-
-
-
Endian considerations:
The element numbering within a register is left-to-right for big-endian
targets, and right-to-left for little-endian targets.
@@ -36845,7 +37167,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const signed char *
+ signed char *
@@ -36861,7 +37183,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const unsigned char *
+ unsigned char *
@@ -36877,7 +37199,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const signed short *
+ signed short *
@@ -36893,7 +37215,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const unsigned short *
+ unsigned short *
@@ -36909,7 +37231,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const signed int *
+ signed int *
@@ -36925,7 +37247,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const unsigned int *
+ unsigned int *
@@ -36941,7 +37263,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const signed long long *
+ signed long long *
@@ -36957,7 +37279,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const unsigned long long *
+ unsigned long long *
@@ -36973,7 +37295,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const signed __int128 *
+ signed __int128 *
@@ -36989,7 +37311,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const unsigned __int128 *
+ unsigned __int128 *
@@ -37005,7 +37327,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const float *
+ float *
@@ -37021,7 +37343,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const double *
+ double *
@@ -37125,7 +37447,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const signed char *
+ signed char *
@@ -37146,7 +37468,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const unsigned char *
+ unsigned char *
@@ -37167,7 +37489,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const signed short *
+ signed short *
@@ -37188,7 +37510,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const unsigned short *
+ unsigned short *
@@ -37209,7 +37531,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const signed int *
+ signed int *
@@ -37230,7 +37552,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const unsigned int *
+ unsigned int *
@@ -37251,7 +37573,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const signed long long *
+ signed long long *
@@ -37272,7 +37594,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const unsigned long long *
+ unsigned long long *
@@ -37293,7 +37615,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const signed __int128 *
+ signed __int128 *
@@ -37314,7 +37636,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const unsigned __int128 *
+ unsigned __int128 *
@@ -37335,7 +37657,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const float *
+ float *
@@ -37356,7 +37678,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
signed long long
- const double *
+ double *
@@ -37454,7 +37776,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector signed char
- const signed char *
+ signed char *
size_t
@@ -37474,7 +37796,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector unsigned char
- const unsigned char *
+ unsigned char *
size_t
@@ -37494,7 +37816,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector signed short
- const signed short *
+ signed short *
size_t
@@ -37514,7 +37836,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector unsigned short
- const unsigned short *
+ unsigned short *
size_t
@@ -37534,7 +37856,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector signed int
- const signed int *
+ signed int *
size_t
@@ -37554,7 +37876,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector unsigned int
- const unsigned int *
+ unsigned int *
size_t
@@ -37574,7 +37896,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector signed long long
- const signed long long *
+ signed long long *
size_t
@@ -37594,7 +37916,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector unsigned long long
- const unsigned long long *
+ unsigned long long *
size_t
@@ -37614,7 +37936,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector signed __int128
- const signed __int128 *
+ signed __int128 *
size_t
@@ -37634,7 +37956,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector unsigned __int128
- const unsigned __int128 *
+ unsigned __int128 *
size_t
@@ -37654,7 +37976,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector float
- const float *
+ float *
size_t
@@ -37674,7 +37996,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector double
- const double *
+ double *
size_t
@@ -37782,7 +38104,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector unsigned char
- const unsigned char *
+ unsigned char *
size_t