You copied the Doc URL to your clipboard.

1.2. What is NEON?

ARMv7 architecture introduced the Advanced SIMD extension as an optional extension to the ARMv7-A and ARMv7-R profiles. It extends the SIMD concept by defining groups of instructions operating on vectors stored in 64-bit D, doubleword, registers and 128-bit Q, quadword, vector registers.

The implementation of the Advanced SIMD extension used in ARM processors is called NEON, and this is the common terminology used outside architecture specifications. NEON technology is implemented on all current ARM Cortex-A series processors.

NEON instructions are executed as part of the ARM or Thumb instruction stream. This simplifies software development, debugging, and integration compared to using an external accelerator. Traditional ARM or Thumb instructions manage all program flow and synchronization. The NEON instructions perform:

  • memory accesses

  • data copying between NEON and general purpose registers

  • data type conversion

  • data processing.

Figure 1.2 shows how the VADD.I16 Q0, Q1, Q2 instruction performs a parallel addition of eight lanes of 16-bit elements from vectors in Q1 and Q2, storing the result in Q0.

Figure 1.2. 8-way 16-bit integer add operation

Figure 1.2. 8-way 16-bit integer add operation