### 5.5.3. Normal, Long, Wide, Narrow, and saturating instructions in NEON

Many NEON data processing instructions are available in Normal, Long, Wide, Narrow, and saturating variants.

NEON instructions can operate on:

• Doubleword vectors consisting of:

• eight 8-bit elements

• four 16-bit elements

• two 32-bit elements

• one 64-bit element.

• sixteen 8-bit elements

• eight 16-bit elements

• four 32-bit elements

• two 64-bit elements.

#### Normal instructions

Normal instructions can operate on any of these vector types, and produce result vectors the same size, and usually the same type, as the operand vectors.

You can specify that the operands and result of a normal instruction must all be Quadwords by appending a `Q` to the instruction mnemonic. If you do this, the assembler produces an error if the operands or result are not quadwords.

#### Long instructions

Long instructions operate on Doubleword vector operands and produce a Quadword vector result. The elements of the result are usually twice the width of the elements of the operands, and the same type.

Long instructions are specified using an `L` appended to the instruction mnemonic.

#### Wide instructions

Wide instructions operate on one Doubleword vector operand and one Quadword vector operand. They produce a Quadword vector result. The elements of the result and the first operand are twice the width of the elements of the second operand.

Wide instructions are specified using a `W` appended to the instruction mnemonic.

#### Narrow instructions

Narrow instructions operate on Quadword vector operands, and produce a Doubleword vector result. The elements of the result are usually half the width of the elements of the operands.

Narrow instructions are specified using an `N` appended to the instruction mnemonic.

#### Saturating instructions

For a general description of what saturating instructions do, see Saturating instructions. See Table 5.7 for the ranges that NEON saturating instructions saturate to.

Saturating instructions are specified using a `Q` prefix between the `V` and the instruction mnemonic.

Table 5.7. NEON saturation ranges

Data typeSaturation range of `x`
`S8`-27 <= `x` < 27
`S16`-215 <= `x` < 215
`S32`-231 <= `x` < 231
`S64`-263 <= `x` < 263
`U8`0 <= `x` < 28
`U16`0 <= `x` < 216
`U32`0 <= `x` < 232
`U64`0 <= `x` < 264