You copied the Doc URL to your clipboard.

ARMv6 SIMD intrinsics by prefix

Table 33 shows the intrinsics according to prefix name.

The __sel() intrinsic falls outside the classifications shown in the table. This intrinsic selects bytes according to GE bit values.

Table 33. ARMv6 SIMD intrinsics by prefix
 ARMv6 SIMD instruction intrinsics grouped by prefix
Intrinsic classification__s[a]__q[b]__sh[c]__u[d]__uq[e]

__uh[f]

Byte addition__sadd8__qadd8__shadd8__uadd8__uqadd8__uhadd8
Byte subtraction__ssub8__qsub8__shsub8__usub8__uqsub8__uhsub8
Halfword addition__sadd16__qadd16__shadd16__uadd16__uqadd16__uhadd16
Halfword subtraction__ssub16__qsub16__shsub16__usub16__uqsub16__uhsub16
Exchange halfwords within one operand, add high halfwords, subtract low halfwords__sasx__qasx__shasx__uasx__uqasx__uhasx
Exchange halfwords within one operand, subtract high halfwords, add low halfwords__ssax__qsax__shsax__usax__uqsax__uhsax
Unsigned sum of absolute difference---__usad8--
Unsigned sum of absolute difference and accumulate---__usada8--
Saturation to selected width__ssat16--__usat16--
Extract values (bit positions [23:16][7:0]), zero-extend to 16 bits---__uxtb16--
Extract values (bit positions [23:16][7:0]) from second operand, zero-extend to 16 bits, add to first operand---__uxtab16--
Sign-extend__sxtb16-----
Sign-extend, add__sxtab16-----
Signed multiply, add products__smuad-----
Exchange halfwords of one operand, signed multiply, add products__smuadx-----
Signed multiply, subtract products__smusd-----
Exchange halfwords of one operand, signed multiply, subtract products__smusdx-----
Signed multiply, add both results to another operand__smlad-----
Exchange halfwords of one operand, perform 2x16-bit multiplication, add both results to another operand__smladx-----
Perform 2x16-bit multiplication, add both results to another operand__smlald-----
Exchange halfwords of one operand, perform 2x16-bit multiplication, add both results to another operand__smlaldx-----
Perform 2x16-bit signed multiplications, take difference of products, subtracting high halfword product from low halfword product, and add difference to a 32-bit accumulate operand__smlsd-----
Exchange halfwords of one operand, perform two signed 16-bit multiplications, add difference of products to a 32-bit accumulate operand__smlsdx-----
Perform 2x16-bit signed multiplications, take difference of products, subtracting high halfword product from low halfword product, add difference to a 64-bit accumulate operand__smlsld-----
Exchange halfwords of one operand, perform 2x16-bit multiplications, add difference of products to a 64-bit accumulate operand__smlsldx-----

[a] Signed

[b] Signed saturating

[c] Signed halving

[d] Unsigned

[e] Unsigned saturating

[f] Unsigned halving.


Was this page helpful? Yes No