| |||

Home > Using NEON Support > Vector data types |

The following types are defined to represent vectors. NEON vector data types are named according to the following pattern:

<type><size>x<number of lanes>_t

For example, `int16x4_t`

is a vector containing
four lanes each containing a signed 16-bit integer. Table E.1 lists the vector
data types.

**Table E.1. Vector data types**

`int8x8_t` | `int8x16_t` |

`int16x4_t` | `int16x8_t` |

`int32x2_t` | `int32x4_t` |

`int64x1_t` | `int64x2_t` |

`uint8x8_t` | `uint8x16_t` |

`uint16x4_t` | `uint16x8_t` |

`uint32x2_t` | `uint32x4_t` |

`uint64x1_t` | `uint64x2_t` |

`float32x2_t` | `float32x4_t` |

`poly8x8_t` | `poly8x16_t` |

`poly16x4_t` | `poly16x8_t` |

Some intrinsics use an array of vector types of the form:

<type><size>x<number of lanes>x<length of array>_t

These types are treated as ordinary C structures containing
a single element named `val`

.

An example structure definition is:

struct int16x4x2_t { int16x4_t val[2]; };

There are array types defined for array lengths between 2 and 4, with any of the vector types listed above.