NonConfidential  PDF version  ARM DUI0472J  


Home > Using NEON Support > Vector data types 
Vector data types represent vectors of varying type and size.
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 16bit integer.
The following table lists the vector data types.
Table 181 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

float16x4_t

float16x8_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 in the following table.
The vector data types and arrays of the vector data types cannot be initialized by direct literal assignment. You must initialize them using one of the load intrinsics.