diff --git a/Intrinsics_Reference/ch_biendian.xml b/Intrinsics_Reference/ch_biendian.xml index a0b9423..b9bf262 100644 --- a/Intrinsics_Reference/ch_biendian.xml +++ b/Intrinsics_Reference/ch_biendian.xml @@ -755,6 +755,13 @@ a[3] = c; compiler are free to use other methods to implement the specified semantics. + + Of course, most built-in functions operate only on corresponding + sets of elements of input vectors to produce output vectors, and + thus are not "endian-sensitive." A complete list of + endian-sensitive built-in functions can be found in . +
Extended Data Movement Functions @@ -768,6 +775,22 @@ a[3] = c; 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 @@ -864,22 +887,6 @@ a[3] = c;
- - 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. - Instead, it is recommended that programmers use the vec_xl and vec_xst vector built-in @@ -888,6 +895,236 @@ a[3] = c; linkend="VIPR.vec-ref" /> for further description and implementation details. + + Endian-Sensitive Built-In Functions + + + + + + + + vec_bperm + + + vec_mergeo + + + vec_sld + + + + + vec_cipher_be + + + vec_mfvscr + + + vec_sldw + + + + + vec_cipherlast_be + + + vec_mule + + + vec_sll + + + + + vec_doublee + + + vec_mulo + + + vec_slo + + + + + vec_doubleh + + + vec_ncipher_be + + + vec_slv + + + + + vec_doublel + + + vec_ncipherlast_be + + + vec_splat + + + + + vec_doubleo + + + vec_pack + + + vec_srl + + + + + vec_extract + + + vec_pack_to_short_fp32 + + + vec_sro + + + + + vec_extract_fp32_from_shorth + + + vec_packpx + + + vec_srv + + + + + vec_extract_fp32_from_shortl + + + vec_packs + + + vec_sum2s + + + + + vec_extract_4b + + + vec_packsu + + + vec_sums + + + + + vec_float2 + + + vec_perm + + + vec_unpackh + + + + + vec_floate + + + vec_permxor + + + vec_unpackl + + + + + vec_floato + + + vec_pmsum_be + + + vec_unsigned2 + + + + + vec_gb + + + vec_reve + + + vec_unsignede + + + + + vec_insert + + + vec_sbox_be + + + vec_unsignedo + + + + + vec_insert_4b + + + vec_shasigma_be + + + vec_xl (ISA 2.07 only) + + + + + vec_mergee + + + vec_signed2 + + + vec_xl_be + + + + + vec_mergeh + + + vec_signede + + + vec_xst (ISA 2.07 only) + + + + + vec_mergel + + + vec_signedo + + + vec_xst_be + + + + +
Big-Endian Vector Layout in Little-Endian Environments