Appendix D
NEON Intrinsics and Instructions
This appendix contains information on, and a list of instructions used with, the NEON engine. Data types, lane types, and intrinsics are listed.
DATA TYPES
Table D-1 lists the different data types supported on the NEON engine, and the corresponding C data types.
DATA TYPE | D-REGISTER (64 BITS) | Q-REGISTER (128 BITS) |
Signed integers | int8x8_t | int8x16_t |
int16x4_t | int16x8_t | |
int32x2_t | int32x4_t | |
int64x1_t | int64x2_t | |
Unsigned integers | uint8x8_t | uint8x16_t |
uint16x4_t | uint16x8_t | |
uint32x2_t | uint32x4_t | |
uint64x1_t | uint64x2_t | |
Floating-point | float16x4_t | float16x8_t |
float32x2_t | float32x4_t | |
Polynomial | poly8x8_t | poly8x16_t |
poly16x4_t | poly16x8_t |
LANE TYPES
Table D-2 lists the different lane types per class, and the amount of possible types for each class.
CLASS | COUNT | TYPES |
int | 6 | int8, int16, int32, uint8, uint16, uint32 |
int/64 | 8 | int8, int16, int32, int64, uint8, uint16, uint32, uint64 |
sint | 3 | int8, int16, int32 |
sint16/32 | 2 | int16, int32 |
int32 | 2 | int32, uint32 |
8-bit | 3 | int8, uint8, poly8 |
int/poly8 | 7 | int8, int16, int32, uint8, uint16, uint32, poly8 |
int/64/poly | 10 | int8, int16, int32, int64, uint8, uint16, uint32, uint64, poly8, poly16 |
arith | 7 | int8, int16, int32, uint8, uint16, uint32, float32 |
arith/64 | 9 | int8, int16, int32, int64, uint8, uint16, uint32, uint64, float32 |
arith/poly8 | 8 | int8, int16, int32, uint8, uint16, uint32, poly8, float32 |
Get Professional Embedded ARM Development now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.