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.

TABLE D-1: NEON 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.

TABLE D-2: Data Lane Types

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.