Advanced SIMD is a 64-bit and 128-bit hybrid Single Instruction Multiple Data (SIMD) technology targeted at advanced media and signal processing applications and embedded processors.
Advanced SIMD is implemented as part of the ARM core, but has its own execution pipelines and a register bank that is distinct from the ARM core register bank.
Advanced SIMD instructions are available in both A32 and A64. The A64 Advanced SIMD instructions are based on those in A32. The main differences are the following:
- Different instruction mnemonics and syntax.
- Thirty-two 128-bit vector registers, increased from sixteen in A32.
- A different register packing scheme:
- In A64, smaller registers occupy the low order bits of larger registers. For example, S31 maps to bits[31:0] of D31.
- In A32, smaller registers are packed into larger registers. For example, S31 maps to bits[63:32] of D15.
- A64 Advanced SIMD instructions support both single-precision and double-precision floating-point data types and arithmetic.
- A32 Advanced SIMD instructions support only single-precision floating-point data types.