Check your knowledge
ARM’s developer website includes documentation, tutorials, support resources and more.
Over the next few months we will be adding more developer resources and documentation for all the products and technologies that ARM provides.Close
Sorry, your browser is not supported. We recommend upgrading your browser. We have done our best to make all the documentation and resources available on old versions of Internet Explorer, but vector image support and the layout may not be optimal. Technical documentation is available as a PDF Download.
Neon is the implementation of the Advanced SIMD extension to the Arm architecture.
All processors compliant with the Armv8-A architecture (for example, the Cortex-A76 or Cortex-A57) include Neon. In the programmer's view, Neon provides an additional 32 128-bit registers with instructions that operate on 8, 16, 32, or 64 bit lanes within these registers.
#include <arm_neon.h> must appear before the use of any Neon intrinsics.
float64_tis a scalar type which is a 64-bit floating-point type.
poly64x2_tis a vector type of two 64-bit polynomial scalars.
int8x8x3_tis a vector array type of three vectors of eight 8-bit signed integers.
mul in the function name is a hint that this intrinsic uses the
MUL instruction. Based on the types of the arguments and return value, sixteen bytes of signed integers, we might guess this intrinsic maps to the following instruction:
MUL Vd.16B, Vn.16B, Vm.16B
So this function multiplies corresponding elements of
b and returns the result. Checking the definition shows this is indeed true.