Sorry, your browser is not supported. We recommend upgrading your browser.
We have done our best to make all the documentation and resources available on old versions of Internet Explorer, but vector image support and the layout may not be optimal. Technical documentation is available as a PDF Download.
NEON and VFP data types
Most NEON and VFP instructions use a data type specifier to define the size and type of data that the instruction operates on.
NEON registers holding more than one element of the same size and type are called vectors. NEON technology supports 64-bit doubleword vectors and 128-bit quadword vectors.
Normal, long, wide, and narrow NEON operation
Many NEON data processing instructions are available in long, wide, and narrow variants. In long, wide, and narrow operation, the result vector is a different width from one or both operand vectors.
Saturating NEON instructions
Saturating instructions saturate the result to the value of the upper limit or lower limit if the result overflows or underflows.
Some NEON instructions act on scalars in combination with vectors. NEON scalars can be 8-bit, 16-bit, 32-bit, or 64-bit.
The assembler supports an extension to the architectural NEON and VFP assembly syntax, called extended notation. This allows you to define register names that include data type specifiers or scalar indexes, for convenience.
VFP vector mode
VFP vector mode allows you to use VFP instructions on vectors of floating-point numbers. ARM deprecates VFP vector mode.
Vectors in the VFP extension register bank
In VFP vector mode, the VFP extension register bank can be viewed as a collection of smaller banks. A vector consists of multiple registers from the same bank. Each of these smaller banks is treated either as a bank of 8 single-precision registers or 4 double-precision registers.
VFP vector wrap-around
In VFP vector mode, if a vector extends beyond the end of a bank, it wraps around to the beginning of the same bank.
VFP vector stride
In VFP vector mode, vectors can occupy consecutive or alternate registers. This is controlled by the STRIDE bits in the FPSCR.
Control of scalar, vector, and mixed operations
Whether a VFP arithmetic instruction operates on scalars, vectors, or a mixture of both depends on the LEN bits in the FPSCR and also on which register bank the destination and operand registers are in.