Firstborn/Library/PackageCache/com.unity.burst@1.8.4/Documentation~/csharp-burst-intrinsics-neo...
Schaken-Mods 9092858a58 updated to the latest editor
I updated everything to the latest Unity Editor. Also realized I had the wrong shaders on my hairs, those are fixed and the hairs look MUCH better!
2023-05-07 17:43:11 -05:00

184 KiB

uid
neon-intrinsics

Burst Arm Neon intrinsics reference

This page contains an ordered reference for the APIs in Unity.Burst.Intrinsics.Arm.Neon. For information on how to use these, see the documentation on Processor specific SIMD extensions.

Intrinsics type creation and conversion

Operation Description APIs
vcreate Create vector
Click here to expand the API listvcreate_f16
vcreate_f32
vcreate_f64
vcreate_s16
vcreate_s32
vcreate_s64
vcreate_s8
vcreate_u16
vcreate_u32
vcreate_u64
vcreate_u8
vdup_n Duplicate (splat) value
Click here to expand the API listvdup_n_f32
vdup_n_f64
vdup_n_s16
vdup_n_s32
vdup_n_s64
vdup_n_s8
vdup_n_u16
vdup_n_u32
vdup_n_u64
vdup_n_u8
vdupq_n_f32
vdupq_n_f64
vdupq_n_s16
vdupq_n_s32
vdupq_n_s64
vdupq_n_s8
vdupq_n_u16
vdupq_n_u32
vdupq_n_u64
vdupq_n_u8
vdup_lane Duplicate (splat) vector element
Click here to expand the API listvdup_lane_f32
vdup_lane_f64
vdup_lane_s16
vdup_lane_s32
vdup_lane_s64
vdup_lane_s8
vdup_lane_u16
vdup_lane_u32
vdup_lane_u64
vdup_lane_u8
vdup_laneq_f32
vdup_laneq_f64
vdup_laneq_s16
vdup_laneq_s32
vdup_laneq_s64
vdup_laneq_s8
vdup_laneq_u16
vdup_laneq_u32
vdup_laneq_u64
vdup_laneq_u8
vdupq_lane_f32
vdupq_lane_f64
vdupq_lane_s16
vdupq_lane_s32
vdupq_lane_s64
vdupq_lane_s8
vdupq_lane_u16
vdupq_lane_u32
vdupq_lane_u64
vdupq_lane_u8
vdupq_laneq_f32
vdupq_laneq_f64
vdupq_laneq_s16
vdupq_laneq_s32
vdupq_laneq_s64
vdupq_laneq_s8
vdupq_laneq_u16
vdupq_laneq_u32
vdupq_laneq_u64
vdupq_laneq_u8
vdups_lane_f32
vdups_lane_s32
vdups_lane_u32
vdups_laneq_f32
vdups_laneq_s32
vdups_laneq_u32
vdupb_lane_s8
vdupb_lane_u8
vdupb_laneq_s8
vdupb_laneq_u8
vdupd_lane_f64
vdupd_lane_s64
vdupd_lane_u64
vdupd_laneq_f64
vdupd_laneq_s64
vdupd_laneq_u64
vduph_lane_s16
vduph_lane_u16
vduph_laneq_s16
vduph_laneq_u16
vmov_n Duplicate (splat) value
Click here to expand the API listvmov_n_f32
vmov_n_f64
vmov_n_s16
vmov_n_s32
vmov_n_s64
vmov_n_s8
vmov_n_u16
vmov_n_u32
vmov_n_u64
vmov_n_u8
vmovq_n_f32
vmovq_n_f64
vmovq_n_s16
vmovq_n_s32
vmovq_n_s64
vmovq_n_s8
vmovq_n_u16
vmovq_n_u32
vmovq_n_u64
vmovq_n_u8
vcopy_lane Insert vector element from another vector element
Click here to expand the API listvcopy_lane_f32
vcopy_lane_f64
vcopy_lane_s16
vcopy_lane_s32
vcopy_lane_s64
vcopy_lane_s8
vcopy_lane_u16
vcopy_lane_u32
vcopy_lane_u64
vcopy_lane_u8
vcopy_laneq_f32
vcopy_laneq_f64
vcopy_laneq_s16
vcopy_laneq_s32
vcopy_laneq_s64
vcopy_laneq_s8
vcopy_laneq_u16
vcopy_laneq_u32
vcopy_laneq_u64
vcopy_laneq_u8
vcopyq_lane_f32
vcopyq_lane_f64
vcopyq_lane_s16
vcopyq_lane_s32
vcopyq_lane_s64
vcopyq_lane_s8
vcopyq_lane_u16
vcopyq_lane_u32
vcopyq_lane_u64
vcopyq_lane_u8
vcopyq_laneq_f32
vcopyq_laneq_f64
vcopyq_laneq_s16
vcopyq_laneq_s32
vcopyq_laneq_s64
vcopyq_laneq_s8
vcopyq_laneq_u16
vcopyq_laneq_u32
vcopyq_laneq_u64
vcopyq_laneq_u8
vcombine Join two vectors into a larger vector
Click here to expand the API listvcombine_f16
vcombine_f32
vcombine_f64
vcombine_s16
vcombine_s32
vcombine_s64
vcombine_s8
vcombine_u16
vcombine_u32
vcombine_u64
vcombine_u8
vget_high Get the higher half of the vector
Click here to expand the API listvget_high_f32
vget_high_f64
vget_high_s16
vget_high_s32
vget_high_s64
vget_high_s8
vget_high_u16
vget_high_u32
vget_high_u64
vget_high_u8
vget_low Get the lower half of the vector
Click here to expand the API listvget_low_f32
vget_low_f64
vget_low_s16
vget_low_s32
vget_low_s64
vget_low_s8
vget_low_u16
vget_low_u32
vget_low_u64
vget_low_u8

Arithmetic

Operation Description APIs
vadd Add
Click here to expand the API listvadd_f32
vadd_f64
vadd_s16
vadd_s32
vadd_s64
vadd_s8
vadd_u16
vadd_u32
vadd_u64
vadd_u8
vaddq_f32
vaddq_f64
vaddq_s16
vaddq_s32
vaddq_s64
vaddq_s8
vaddq_u16
vaddq_u32
vaddq_u64
vaddq_u8
vaddd_s64
vaddd_u64
vaddv Add across vector
Click here to expand the API listvaddv_f32
vaddv_s16
vaddv_s32
vaddv_s8
vaddv_u16
vaddv_u32
vaddv_u8
vaddvq_f32
vaddvq_f64
vaddvq_s16
vaddvq_s32
vaddvq_s64
vaddvq_s8
vaddvq_u16
vaddvq_u32
vaddvq_u64
vaddvq_u8
vaddl Add long
Click here to expand the API listvaddl_s16
vaddl_s32
vaddl_s8
vaddl_u16
vaddl_u32
vaddl_u8
vaddl_high_s16
vaddl_high_s32
vaddl_high_s8
vaddl_high_u16
vaddl_high_u32
vaddl_high_u8
vaddlv Add long across Vector
Click here to expand the API listvaddlv_s16
vaddlv_s32
vaddlv_s8
vaddlv_u16
vaddlv_u32
vaddlv_u8
vaddlvq_s16
vaddlvq_s32
vaddlvq_s8
vaddlvq_u16
vaddlvq_u32
vaddlvq_u8
vaddw Add wide
Click here to expand the API listvaddw_s16
vaddw_s32
vaddw_s8
vaddw_u16
vaddw_u32
vaddw_u8
vaddw_high_s16
vaddw_high_s32
vaddw_high_s8
vaddw_high_u16
vaddw_high_u32
vaddw_high_u8
vhadd Halving add
Click here to expand the API listvhadd_s16
vhadd_s32
vhadd_s8
vhadd_u16
vhadd_u32
vhadd_u8
vhaddq_s16
vhaddq_s32
vhaddq_s8
vhaddq_u16
vhaddq_u32
vhaddq_u8
vrhadd Rounding halving add
Click here to expand the API listvrhadd_s16
vrhadd_s32
vrhadd_s8
vrhadd_u16
vrhadd_u32
vrhadd_u8
vrhaddq_s16
vrhaddq_s32
vrhaddq_s8
vrhaddq_u16
vrhaddq_u32
vrhaddq_u8
vqadd Saturating add
Click here to expand the API listvqadd_s16
vqadd_s32
vqadd_s64
vqadd_s8
vqadd_u16
vqadd_u32
vqadd_u64
vqadd_u8
vqaddq_s16
vqaddq_s32
vqaddq_s64
vqaddq_s8
vqaddq_u16
vqaddq_u32
vqaddq_u64
vqaddq_u8
vqaddb_s8
vqaddb_u8
vqaddh_s16
vqaddh_u16
vqadds_s32
vqadds_u32
vqaddd_s64
vqaddd_u64
vsqadd Unsigned saturating Accumulate of signed value
Click here to expand the API listvsqadd_u16
vsqadd_u32
vsqadd_u64
vsqadd_u8
vsqaddq_u16
vsqaddq_u32
vsqaddq_u64
vsqaddq_u8
vsqaddb_u8
vsqaddh_u16
vsqadds_u32
vsqaddd_u64
vuqadd Signed saturating Accumulate of unsigned value
Click here to expand the API listvuqadd_s16
vuqadd_s32
vuqadd_s64
vuqadd_s8
vuqaddq_s16
vuqaddq_s32
vuqaddq_s64
vuqaddq_s8
vuqaddb_s8
vuqaddh_s16
vuqadds_s32
vuqaddd_s64
vaddhn Add returning high narrow
Click here to expand the API listvaddhn_s16
vaddhn_s32
vaddhn_s64
vaddhn_u16
vaddhn_u32
vaddhn_u64
vaddhn_high_s16
vaddhn_high_s32
vaddhn_high_s64
vaddhn_high_u16
vaddhn_high_u32
vaddhn_high_u64
vraddhn Rounding add returning high narrow
Click here to expand the API listvraddhn_s16
vraddhn_s32
vraddhn_s64
vraddhn_u16
vraddhn_u32
vraddhn_u64
vraddhn_high_s16
vraddhn_high_s32
vraddhn_high_s64
vraddhn_high_u16
vraddhn_high_u32
vraddhn_high_u64
vpadd Add pairwise (vector)
Click here to expand the API listvpadd_f32
vpadd_s16
vpadd_s32
vpadd_s8
vpadd_u16
vpadd_u32
vpadd_u8
vpaddq_f32
vpaddq_f64
vpaddq_s16
vpaddq_s32
vpaddq_s64
vpaddq_s8
vpaddq_u16
vpaddq_u32
vpaddq_u64
vpaddq_u8
vpadds_f32
vpaddd_f64
vpaddd_s64
vpaddd_u64
vpaddl Signed add long pairwise
Click here to expand the API listvpaddl_s16
vpaddl_s32
vpaddl_s8
vpaddl_u16
vpaddl_u32
vpaddl_u8
vpaddlq_s16
vpaddlq_s32
vpaddlq_s8
vpaddlq_u16
vpaddlq_u32
vpaddlq_u8
vpadal Signed add and accumulate long pairwise
Click here to expand the API listvpadal_s16
vpadal_s32
vpadal_s8
vpadal_u16
vpadal_u32
vpadal_u8
vpadalq_s16
vpadalq_s32
vpadalq_s8
vpadalq_u16
vpadalq_u32
vpadalq_u8
vsub Subtract
Click here to expand the API listvsub_f32
vsub_f64
vsub_s16
vsub_s32
vsub_s64
vsub_s8
vsub_u16
vsub_u32
vsub_u64
vsub_u8
vsubq_f32
vsubq_f64
vsubq_s16
vsubq_s32
vsubq_s64
vsubq_s8
vsubq_u16
vsubq_u32
vsubq_u64
vsubq_u8
vsubd_s64
vsubd_u64
vsubl Subtract long
Click here to expand the API listvsubl_s16
vsubl_s32
vsubl_s8
vsubl_u16
vsubl_u32
vsubl_u8
vsubl_high_s16
vsubl_high_s32
vsubl_high_s8
vsubl_high_u16
vsubl_high_u32
vsubl_high_u8
vsubw Subtract wide
Click here to expand the API listvsubw_s16
vsubw_s32
vsubw_s8
vsubw_u16
vsubw_u32
vsubw_u8
vsubw_high_s16
vsubw_high_s32
vsubw_high_s8
vsubw_high_u16
vsubw_high_u32
vsubw_high_u8
vhsub Halving subtract
Click here to expand the API listvhsub_s16
vhsub_s32
vhsub_s8
vhsub_u16
vhsub_u32
vhsub_u8
vhsubq_s16
vhsubq_s32
vhsubq_s8
vhsubq_u16
vhsubq_u32
vhsubq_u8
vqsub Saturating subtract
Click here to expand the API listvqsub_s16
vqsub_s32
vqsub_s64
vqsub_s8
vqsub_u16
vqsub_u32
vqsub_u64
vqsub_u8
vqsubq_s16
vqsubq_s32
vqsubq_s64
vqsubq_s8
vqsubq_u16
vqsubq_u32
vqsubq_u64
vqsubq_u8
vqsubb_s8
vqsubb_u8
vqsubh_s16
vqsubh_u16
vqsubs_s32
vqsubs_u32
vqsubd_s64
vqsubd_u64
vsubhn Subtract returning high narrow
Click here to expand the API listvsubhn_s16
vsubhn_s32
vsubhn_s64
vsubhn_u16
vsubhn_u32
vsubhn_u64
vsubhn_high_s16
vsubhn_high_s32
vsubhn_high_s64
vsubhn_high_u16
vsubhn_high_u32
vsubhn_high_u64
vrsubhn Rounding subtract returning high narrow
Click here to expand the API listvrsubhn_s16
vrsubhn_s32
vrsubhn_s64
vrsubhn_u16
vrsubhn_u32
vrsubhn_u64
vrsubhn_high_s16
vrsubhn_high_s32
vrsubhn_high_s64
vrsubhn_high_u16
vrsubhn_high_u32
vrsubhn_high_u64

Multiply

Operation Description APIs
vmul Multiply (vector)
Click here to expand the API listvmul_f32
vmul_f64
vmul_s16
vmul_s32
vmul_s8
vmul_u16
vmul_u32
vmul_u8
vmulq_f32
vmulq_f64
vmulq_s16
vmulq_s32
vmulq_s8
vmulq_u16
vmulq_u32
vmulq_u8
vmul_n Vector multiply by scalar
Click here to expand the API listvmul_n_f32
vmul_n_f64
vmul_n_s16
vmul_n_s32
vmul_n_u16
vmul_n_u32
vmulq_n_f32
vmulq_n_f64
vmulq_n_s16
vmulq_n_s32
vmulq_n_u16
vmulq_n_u32
vmul_lane Multiply (vector)
Click here to expand the API listvmul_lane_f32
vmul_lane_f64
vmul_lane_s16
vmul_lane_s32
vmul_lane_u16
vmul_lane_u32
vmul_laneq_f32
vmul_laneq_f64
vmul_laneq_s16
vmul_laneq_s32
vmul_laneq_u16
vmul_laneq_u32
vmulq_lane_f32
vmulq_lane_f64
vmulq_lane_s16
vmulq_lane_s32
vmulq_lane_u16
vmulq_lane_u32
vmulq_laneq_f32
vmulq_laneq_f64
vmulq_laneq_s16
vmulq_laneq_s32
vmulq_laneq_u16
vmulq_laneq_u32
vmuls_lane_f32
vmuls_laneq_f32
vmuld_lane_f64
vmuld_laneq_f64
vmull Multiply long (vector)
Click here to expand the API listvmull_s16
vmull_s32
vmull_s8
vmull_u16
vmull_u32
vmull_u8
vmull_high_s16
vmull_high_s32
vmull_high_s8
vmull_high_u16
vmull_high_u32
vmull_high_u8
vmull_n Vector long multiply by scalar
Click here to expand the API listvmull_n_s16
vmull_n_s32
vmull_n_u16
vmull_n_u32
vmull_high_n_s16
vmull_high_n_s32
vmull_high_n_u16
vmull_high_n_u32
vmull_lane Multiply long (vector)
Click here to expand the API listvmull_lane_s16
vmull_lane_s32
vmull_lane_u16
vmull_lane_u32
vmull_laneq_s16
vmull_laneq_s32
vmull_laneq_u16
vmull_laneq_u32
vmull_high_lane_s16
vmull_high_lane_s32
vmull_high_lane_u16
vmull_high_lane_u32
vmull_high_laneq_s16
vmull_high_laneq_s32
vmull_high_laneq_u16
vmull_high_laneq_u32
vmulx Floating-point multiply extended
Click here to expand the API listvmulx_f32
vmulx_f64
vmulx_lane_f32
vmulx_lane_f64
vmulx_laneq_f32
vmulx_laneq_f64
vmulxq_f32
vmulxq_f64
vmulxq_lane_f32
vmulxq_lane_f64
vmulxq_laneq_f32
vmulxq_laneq_f64
vmulxs_f32
vmulxs_lane_f32
vmulxs_laneq_f32
vmulxd_f64
vmulxd_lane_f64
vmulxd_laneq_f64
vmla Multiply-add to accumulator (vector)
Click here to expand the API listvmla_f32
vmla_f64
vmla_s16
vmla_s32
vmla_s8
vmla_u16
vmla_u32
vmla_u8
vmlaq_f32
vmlaq_f64
vmlaq_s16
vmlaq_s32
vmlaq_s8
vmlaq_u16
vmlaq_u32
vmlaq_u8
vmla_lane Vector multiply accumulate with scalar
Click here to expand the API listvmla_lane_f32
vmla_lane_s16
vmla_lane_s32
vmla_lane_u16
vmla_lane_u32
vmla_laneq_f32
vmla_laneq_s16
vmla_laneq_s32
vmla_laneq_u16
vmla_laneq_u32
vmlaq_lane_f32
vmlaq_lane_s16
vmlaq_lane_s32
vmlaq_lane_u16
vmlaq_lane_u32
vmlaq_laneq_f32
vmlaq_laneq_s16
vmlaq_laneq_s32
vmlaq_laneq_u16
vmlaq_laneq_u32
vmla_n Vector multiply accumulate with scalar
Click here to expand the API listvmla_n_f32
vmla_n_s16
vmla_n_s32
vmla_n_u16
vmla_n_u32
vmlaq_n_f32
vmlaq_n_s16
vmlaq_n_s32
vmlaq_n_u16
vmlaq_n_u32
vmlal Multiply-accumulate long (vector)
Click here to expand the API listvmlal_s16
vmlal_s32
vmlal_s8
vmlal_u16
vmlal_u32
vmlal_u8
vmlal_high_s16
vmlal_high_s32
vmlal_high_s8
vmlal_high_u16
vmlal_high_u32
vmlal_high_u8
vmlal_lane Multiply-accumulate long with scalar
Click here to expand the API listvmlal_lane_s16
vmlal_lane_s32
vmlal_lane_u16
vmlal_lane_u32
vmlal_laneq_s16
vmlal_laneq_s32
vmlal_laneq_u16
vmlal_laneq_u32
vmlal_high_lane_s16
vmlal_high_lane_s32
vmlal_high_lane_u16
vmlal_high_lane_u32
vmlal_high_laneq_s16
vmlal_high_laneq_s32
vmlal_high_laneq_u16
vmlal_high_laneq_u32
vmlal_n Multiply-accumulate long with scalar
Click here to expand the API listvmlal_n_s16
vmlal_n_s32
vmlal_n_u16
vmlal_n_u32
vmlal_high_n_s16
vmlal_high_n_s32
vmlal_high_n_u16
vmlal_high_n_u32
vmls Multiply-subtract from accumulator (vector)
Click here to expand the API listvmls_f32
vmls_f64
vmls_s16
vmls_s32
vmls_s8
vmls_u16
vmls_u32
vmls_u8
vmlsq_f32
vmlsq_f64
vmlsq_s16
vmlsq_s32
vmlsq_s8
vmlsq_u16
vmlsq_u32
vmlsq_u8
vmls_lane Vector multiply subtract with scalar
Click here to expand the API listvmls_lane_f32
vmls_lane_s16
vmls_lane_s32
vmls_lane_u16
vmls_lane_u32
vmls_laneq_f32
vmls_laneq_s16
vmls_laneq_s32
vmls_laneq_u16
vmls_laneq_u32
vmlsq_lane_f32
vmlsq_lane_s16
vmlsq_lane_s32
vmlsq_lane_u16
vmlsq_lane_u32
vmlsq_laneq_f32
vmlsq_laneq_s16
vmlsq_laneq_s32
vmlsq_laneq_u16
vmlsq_laneq_u32
vmls_n Vector multiply subtract with scalar
Click here to expand the API listvmls_n_f32
vmls_n_s16
vmls_n_s32
vmls_n_u16
vmls_n_u32
vmlsq_n_f32
vmlsq_n_s16
vmlsq_n_s32
vmlsq_n_u16
vmlsq_n_u32
vmlsl Multiply-subtract long (vector)
Click here to expand the API listvmlsl_s16
vmlsl_s32
vmlsl_s8
vmlsl_u16
vmlsl_u32
vmlsl_u8
vmlsl_high_s16
vmlsl_high_s32
vmlsl_high_s8
vmlsl_high_u16
vmlsl_high_u32
vmlsl_high_u8
vmlsl_lane Vector multiply-subtract long with scalar
Click here to expand the API listvmlsl_lane_s16
vmlsl_lane_s32
vmlsl_lane_u16
vmlsl_lane_u32
vmlsl_laneq_s16
vmlsl_laneq_s32
vmlsl_laneq_u16
vmlsl_laneq_u32
vmlsl_high_lane_s16
vmlsl_high_lane_s32
vmlsl_high_lane_u16
vmlsl_high_lane_u32
vmlsl_high_laneq_s16
vmlsl_high_laneq_s32
vmlsl_high_laneq_u16
vmlsl_high_laneq_u32
vmlsl_n Vector multiply-subtract long with scalar
Click here to expand the API listvmlsl_n_s16
vmlsl_n_s32
vmlsl_n_u16
vmlsl_n_u32
vmlsl_high_n_s16
vmlsl_high_n_s32
vmlsl_high_n_u16
vmlsl_high_n_u32
vqdmull Signed saturating doubling multiply long
Click here to expand the API listvqdmull_s16
vqdmull_s32
vqdmullh_s16
vqdmulls_s32
vqdmull_high_s16
vqdmull_high_s32
vqdmull_lane Vector saturating doubling multiply long with scalar
Click here to expand the API listvqdmull_lane_s16
vqdmull_lane_s32
vqdmull_laneq_s16
vqdmull_laneq_s32
vqdmullh_lane_s16
vqdmullh_laneq_s16
vqdmulls_lane_s32
vqdmulls_laneq_s32
vqdmull_high_lane_s16
vqdmull_high_lane_s32
vqdmull_high_laneq_s16
vqdmull_high_laneq_s32
vqdmull_n Vector saturating doubling multiply long with scalar
Click here to expand the API listvqdmull_n_s16
vqdmull_n_s32
vqdmull_high_n_s16
vqdmull_high_n_s32
vqdmulh Saturating doubling multiply returning high half
Click here to expand the API listvqdmulh_s16
vqdmulh_s32
vqdmulhq_s16
vqdmulhq_s32
vqdmulhh_s16
vqdmulhs_s32
vqdmulh_lane Vector saturating doubling multiply high by scalar
Click here to expand the API listvqdmulh_lane_s16
vqdmulh_lane_s32
vqdmulh_laneq_s16
vqdmulh_laneq_s32
vqdmulhq_lane_s16
vqdmulhq_lane_s32
vqdmulhq_laneq_s16
vqdmulhq_laneq_s32
vqdmulhh_lane_s16
vqdmulhh_laneq_s16
vqdmulhs_lane_s32
vqdmulhs_laneq_s32
vqdmulh_n Vector saturating doubling multiply high by scalar
Click here to expand the API listvqdmulh_n_s16
vqdmulh_n_s32
vqdmulhq_n_s16
vqdmulhq_n_s32
vqrdmulh Saturating rounding doubling multiply returning high half
Click here to expand the API listvqrdmulh_s16
vqrdmulh_s32
vqrdmulhq_s16
vqrdmulhq_s32
vqrdmulhh_s16
vqrdmulhs_s32
vqrdmulh_lane Vector saturating rounding doubling multiply high with scalar
Click here to expand the API listvqrdmulh_lane_s16
vqrdmulh_lane_s32
vqrdmulh_laneq_s16
vqrdmulh_laneq_s32
vqrdmulhq_lane_s16
vqrdmulhq_lane_s32
vqrdmulhq_laneq_s16
vqrdmulhq_laneq_s32
vqrdmulhh_lane_s16
vqrdmulhh_laneq_s16
vqrdmulhs_lane_s32
vqrdmulhs_laneq_s32
vqrdmulh_n Vector saturating rounding doubling multiply high with scalar
Click here to expand the API listvqrdmulh_n_s16
vqrdmulh_n_s32
vqrdmulhq_n_s16
vqrdmulhq_n_s32
vqdmlal Saturating doubling multiply-add long
Click here to expand the API listvqdmlal_s16
vqdmlal_s32
vqdmlalh_s16
vqdmlals_s32
vqdmlal_high_s16
vqdmlal_high_s32
vqdmlal_lane Vector saturating doubling multiply-accumulate long
with scalar
Click here to expand the API listvqdmlal_lane_s16
vqdmlal_lane_s32
vqdmlal_laneq_s16
vqdmlal_laneq_s32
vqdmlalh_lane_s16
vqdmlalh_laneq_s16
vqdmlals_lane_s32
vqdmlals_laneq_s32
vqdmlal_high_lane_s16
vqdmlal_high_lane_s32
vqdmlal_high_laneq_s16
vqdmlal_high_laneq_s32
vqdmlal_n Vector saturating doubling multiply-accumulate long
with scalar
Click here to expand the API listvqdmlal_n_s16
vqdmlal_n_s32
vqdmlal_high_n_s16
vqdmlal_high_n_s32
vqdmlsl Signed saturating doubling multiply-subtract long
Click here to expand the API listvqdmlsl_s16
vqdmlsl_s32
vqdmlslh_s16
vqdmlsls_s32
vqdmlsl_high_s16
vqdmlsl_high_s32
vqdmlsl_lane Vector saturating doubling multiply-subtract long
with scalar
Click here to expand the API listvqdmlsl_lane_s16
vqdmlsl_lane_s32
vqdmlsl_laneq_s16
vqdmlsl_laneq_s32
vqdmlslh_lane_s16
vqdmlslh_laneq_s16
vqdmlsls_lane_s32
vqdmlsls_laneq_s32
vqdmlsl_high_lane_s16
vqdmlsl_high_lane_s32
vqdmlsl_high_laneq_s16
vqdmlsl_high_laneq_s32
vqdmlsl_n Vector saturating doubling multiply-subtract long
with scalar
Click here to expand the API listvqdmlsl_n_s16
vqdmlsl_n_s32
vqdmlsl_high_n_s16
vqdmlsl_high_n_s32
vqrdmlah Saturating rounding doubling multiply accumulate
returning high half (vector)
Click here to expand the API listvqrdmlah_s16
vqrdmlah_s32
vqrdmlahq_s16
vqrdmlahq_s32
vqrdmlahh_s16
vqrdmlahs_s32
vqrdmlah_lane Saturating rounding doubling multiply accumulate
returning high half (vector)
Click here to expand the API listvqrdmlah_lane_s16
vqrdmlah_lane_s32
vqrdmlah_laneq_s16
vqrdmlah_laneq_s32
vqrdmlahq_lane_s16
vqrdmlahq_lane_s32
vqrdmlahq_laneq_s16
vqrdmlahq_laneq_s32
vqrdmlahh_lane_s16
vqrdmlahh_laneq_s16
vqrdmlahs_lane_s32
vqrdmlsh Saturating rounding doubling multiply subtract
returning high half (vector)
Click here to expand the API listvqrdmlsh_s16
vqrdmlsh_s32
vqrdmlshq_s16
vqrdmlshq_s32
vqrdmlshh_s16
vqrdmlshs_s32
vqrdmlsh_lane Saturating rounding doubling multiply subtract
returning high half (vector)
Click here to expand the API listvqrdmlsh_lane_s16
vqrdmlsh_lane_s32
vqrdmlsh_laneq_s16
vqrdmlsh_laneq_s32
vqrdmlshq_lane_s16
vqrdmlshq_lane_s32
vqrdmlshq_laneq_s16
vqrdmlshq_laneq_s32
vqrdmlshh_lane_s16
vqrdmlshh_laneq_s16
vqrdmlshs_lane_s32
vfma Floating-point fused multiply-add to accumulator (vector)
Click here to expand the API listvfma_f32
vfma_f64
vfmaq_f32
vfmaq_f64
vfma_n Floating-point fused multiply-add to accumulator (vector)
Click here to expand the API listvfma_n_f32
vfma_n_f64
vfmaq_n_f32
vfmaq_n_f64
vfma_lane Floating-point fused multiply-add to accumulator (vector)
Click here to expand the API listvfma_lane_f32
vfma_lane_f64
vfma_laneq_f32
vfma_laneq_f64
vfmaq_lane_f32
vfmaq_lane_f64
vfmaq_laneq_f32
vfmaq_laneq_f64
vfmas_lane_f32
vfmas_laneq_f32
vfmad_lane_f64
vfmad_laneq_f64
vfms Floating-point fused multiply-subtract
from accumulator (vector)
Click here to expand the API listvfms_f32
vfms_f64
vfmsq_f32
vfmsq_f64
vfms_n Floating-point fused multiply-subtract
from accumulator (vector)
Click here to expand the API listvfms_n_f32
vfms_n_f64
vfmsq_n_f32
vfmsq_n_f64
vfms_lane Floating-point fused multiply-subtract
from accumulator (vector)
Click here to expand the API listvfms_lane_f32
vfms_lane_f64
vfms_laneq_f32
vfms_laneq_f64
vfmsd_lane_f64
vfmsd_laneq_f64
vfmsq_lane_f32
vfmsq_lane_f64
vfmsq_laneq_f32
vfmsq_laneq_f64
vfmss_lane_f32
vfmss_laneq_f32
vdiv Floating-point divide (vector)
Click here to expand the API listvdiv_f32
vdiv_f64
vdivq_f32
vdivq_f64

Data processing

Operation Description APIs
vpmax Maximum pairwise
Click here to expand the API listvpmax_f32
vpmax_s16
vpmax_s32
vpmax_s8
vpmax_u16
vpmax_u32
vpmax_u8
vpmaxq_f32
vpmaxq_f64
vpmaxq_s16
vpmaxq_s32
vpmaxq_s8
vpmaxq_u16
vpmaxq_u32
vpmaxq_u8
vpmaxs_f32
vpmaxqd_f64
vpmaxnm Floating-point maximum number pairwise (vector)
Click here to expand the API listvpmaxnm_f32
vpmaxnmq_f32
vpmaxnmq_f64
vpmaxnms_f32
vpmaxnmqd_f64
vpmin Minimum pairwise
Click here to expand the API listvpmin_f32
vpmin_s16
vpmin_s32
vpmin_s8
vpmin_u16
vpmin_u32
vpmin_u8
vpminq_f32
vpminq_f64
vpminq_s16
vpminq_s32
vpminq_s8
vpminq_u16
vpminq_u32
vpminq_u8
vpmins_f32
vpminqd_f64
vpminnm Floating-point minimum number pairwise (vector)
Click here to expand the API listvpminnm_f32
vpminnmq_f32
vpminnmq_f64
vpminnms_f32
vpminnmqd_f64
vabd Absolute difference
Click here to expand the API listvabd_f32
vabd_f64
vabd_s16
vabd_s32
vabd_s8
vabd_u16
vabd_u32
vabd_u8
vabdq_f32
vabdq_f64
vabdq_s16
vabdq_s32
vabdq_s8
vabdq_u16
vabdq_u32
vabdq_u8
vabds_f32
vabdd_f64
vabdl Absolute difference long
Click here to expand the API listvabdl_s16
vabdl_s32
vabdl_s8
vabdl_u16
vabdl_u32
vabdl_u8
vabdl_high_s16
vabdl_high_s32
vabdl_high_s8
vabdl_high_u16
vabdl_high_u32
vabdl_high_u8
vaba Absolute difference and accumulate
Click here to expand the API listvaba_s16
vaba_s32
vaba_s8
vaba_u16
vaba_u32
vaba_u8
vabaq_s16
vabaq_s32
vabaq_s8
vabaq_u16
vabaq_u32
vabaq_u8
vabal Absolute difference and accumulate long
Click here to expand the API listvabal_s16
vabal_s32
vabal_s8
vabal_u16
vabal_u32
vabal_u8
vabal_high_s16
vabal_high_s32
vabal_high_s8
vabal_high_u16
vabal_high_u32
vabal_high_u8
vmax Maximum
Click here to expand the API listvmax_f32
vmax_f64
vmax_s16
vmax_s32
vmax_s8
vmax_u16
vmax_u32
vmax_u8
vmaxq_f32
vmaxq_f64
vmaxq_s16
vmaxq_s32
vmaxq_s8
vmaxq_u16
vmaxq_u32
vmaxq_u8
vmaxnm Floating-point maximum number
Click here to expand the API listvmaxnm_f32
vmaxnm_f64
vmaxnmq_f32
vmaxnmq_f64
vmaxnmv_f32
vmaxnmvq_f32
vmaxnmvq_f64
vmaxv Maximum across vector
Click here to expand the API listvmaxv_f32
vmaxv_s16
vmaxv_s32
vmaxv_s8
vmaxv_u16
vmaxv_u32
vmaxv_u8
vmaxvq_f32
vmaxvq_f64
vmaxvq_s16
vmaxvq_s32
vmaxvq_s8
vmaxvq_u16
vmaxvq_u32
vmaxvq_u8
vmin Minimum
Click here to expand the API listvmin_f32
vmin_f64
vmin_s16
vmin_s32
vmin_s8
vmin_u16
vmin_u32
vmin_u8
vminq_f32
vminq_f64
vminq_s16
vminq_s32
vminq_s8
vminq_u16
vminq_u32
vminq_u8
vminnm Floating-point minimum number
Click here to expand the API listvminnm_f32
vminnm_f64
vminnmq_f32
vminnmq_f64
vminnmv_f32
vminnmvq_f32
vminnmvq_f64
vminv Minimum across vector
Click here to expand the API listvminv_f32
vminv_s16
vminv_s32
vminv_s8
vminv_u16
vminv_u32
vminv_u8
vminvq_f32
vminvq_f64
vminvq_s16
vminvq_s32
vminvq_s8
vminvq_u16
vminvq_u32
vminvq_u8
vabs Absolute value
Click here to expand the API listvabs_f32
vabs_f64
vabs_s16
vabs_s32
vabs_s64
vabs_s8
vabsq_f32
vabsq_f64
vabsq_s16
vabsq_s32
vabsq_s64
vabsq_s8
vabsd_s64
vqabs Saturating absolute value
Click here to expand the API listvqabs_s16
vqabs_s32
vqabs_s64
vqabs_s8
vqabsq_s16
vqabsq_s32
vqabsq_s64
vqabsq_s8
vqabsb_s8
vqabsh_s16
vqabss_s32
vqabsd_s64
vneg Negate
Click here to expand the API listvneg_f32
vneg_f64
vneg_s16
vneg_s32
vneg_s64
vneg_s8
vnegd_s64
vnegq_f32
vnegq_f64
vnegq_s16
vnegq_s32
vnegq_s64
vnegq_s8
vqneg Saturating negate
Click here to expand the API listvqneg_s16
vqneg_s32
vqneg_s64
vqneg_s8
vqnegq_s16
vqnegq_s32
vqnegq_s64
vqnegq_s8
vqnegb_s8
vqnegh_s16
vqnegs_s32
vqnegd_s64
vcls Count leading sign bits
Click here to expand the API listvcls_s16
vcls_s32
vcls_s8
vclsq_s16
vclsq_s32
vclsq_s8
vclz Count leading zero bits
Click here to expand the API listvclz_s16
vclz_s32
vclz_s8
vclz_u16
vclz_u32
vclz_u8
vclzq_s16
vclzq_s32
vclzq_s8
vclzq_u16
vclzq_u32
vclzq_u8
vcnt Population count per byte
Click here to expand the API listvcnt_s8
vcnt_u8
vcntq_s8
vcntq_u8
vrecpe Reciprocal estimate
Click here to expand the API listvrecpe_f32
vrecpe_f64
vrecpe_u32
vrecpeq_f32
vrecpeq_f64
vrecpeq_u32
vrecpes_f32
vrecped_f64
vrecps Reciprocal step
Click here to expand the API listvrecps_f32
vrecps_f64
vrecpsq_f32
vrecpsq_f64
vrecpss_f32
vrecpsd_f64
vrecpx Floating-point reciprocal exponent
Click here to expand the API listvrecpxd_f64
vrecpxs_f32
vrsqrte Reciprocal square root estimate
Click here to expand the API listvrsqrte_f32
vrsqrte_f64
vrsqrte_u32
vrsqrteq_f32
vrsqrteq_f64
vrsqrteq_u32
vrsqrtes_f32
vrsqrted_f64
vrsqrts Reciprocal square root step
Click here to expand the API listvrsqrts_f32
vrsqrts_f64
vrsqrtsq_f32
vrsqrtsq_f64
vrsqrtss_f32
vrsqrtsd_f64
vmovn Extract narrow
Click here to expand the API listvmovn_s16
vmovn_s32
vmovn_s64
vmovn_u16
vmovn_u32
vmovn_u64
vmovn_high_s16
vmovn_high_s32
vmovn_high_s64
vmovn_high_u16
vmovn_high_u32
vmovn_high_u64
vmovl Extract long
Click here to expand the API listvmovl_s16
vmovl_s32
vmovl_s8
vmovl_u16
vmovl_u32
vmovl_u8
vmovl_high_s16
vmovl_high_s32
vmovl_high_s8
vmovl_high_u16
vmovl_high_u32
vmovl_high_u8
vqmovn Saturating extract narrow
Click here to expand the API listvqmovn_s16
vqmovn_s32
vqmovn_s64
vqmovn_u16
vqmovn_u32
vqmovn_u64
vqmovn_high_s16
vqmovn_high_s32
vqmovn_high_s64
vqmovn_high_u16
vqmovn_high_u32
vqmovn_high_u64
vqmovnh_s16
vqmovnh_u16
vqmovns_s32
vqmovns_u32
vqmovnd_s64
vqmovnd_u64
vqmovun Signed saturating extract unsigned narrow
Click here to expand the API listvqmovun_s16
vqmovun_s32
vqmovun_s64
vqmovun_high_s16
vqmovun_high_s32
vqmovun_high_s64
vqmovunh_s16
vqmovuns_s32
vqmovund_s64

Comparison

Operation Description APIs
vceq Compare bitwise equal
Click here to expand the API listvceq_f32
vceq_f64
vceq_s16
vceq_s32
vceq_s64
vceq_s8
vceq_u16
vceq_u32
vceq_u64
vceq_u8
vceqq_f32
vceqq_f64
vceqq_s16
vceqq_s32
vceqq_s64
vceqq_s8
vceqq_u16
vceqq_u32
vceqq_u64
vceqq_u8
vceqs_f32
vceqd_f64
vceqd_s64
vceqd_u64
vceqz Compare bitwise equal to zero
Click here to expand the API listvceqz_f32
vceqz_f64
vceqz_s16
vceqz_s32
vceqz_s64
vceqz_s8
vceqz_u16
vceqz_u32
vceqz_u64
vceqz_u8
vceqzq_f32
vceqzq_f64
vceqzq_s16
vceqzq_s32
vceqzq_s64
vceqzq_s8
vceqzq_u16
vceqzq_u32
vceqzq_u64
vceqzq_u8
vceqzs_f32
vceqzd_f64
vceqzd_s64
vceqzd_u64
vcge Compare greater than or equal
Click here to expand the API listvcge_f32
vcge_f64
vcge_s16
vcge_s32
vcge_s64
vcge_s8
vcge_u16
vcge_u32
vcge_u64
vcge_u8
vcgeq_f32
vcgeq_f64
vcgeq_s16
vcgeq_s32
vcgeq_s64
vcgeq_s8
vcgeq_u16
vcgeq_u32
vcgeq_u64
vcgeq_u8
vcges_f32
vcged_f64
vcged_s64
vcged_u64
vcgez Compare greater than or equal to zero
Click here to expand the API listvcgez_f32
vcgez_f64
vcgez_s16
vcgez_s32
vcgez_s64
vcgez_s8
vcgezq_f32
vcgezq_f64
vcgezq_s16
vcgezq_s32
vcgezq_s64
vcgezq_s8
vcgezs_f32
vcgezd_f64
vcgezd_s64
vcle Compare less than or equal
Click here to expand the API listvcle_f32
vcle_f64
vcle_s16
vcle_s32
vcle_s64
vcle_s8
vcle_u16
vcle_u32
vcle_u64
vcle_u8
vcleq_f32
vcleq_f64
vcleq_s16
vcleq_s32
vcleq_s64
vcleq_s8
vcleq_u16
vcleq_u32
vcleq_u64
vcleq_u8
vcles_f32
vcled_f64
vcled_s64
vcled_u64
vclez Compare less than or equal to zero
Click here to expand the API listvclez_f32
vclez_f64
vclez_s16
vclez_s32
vclez_s64
vclez_s8
vclezq_f32
vclezq_f64
vclezq_s16
vclezq_s32
vclezq_s64
vclezq_s8
vclezs_f32
vclezd_f64
vclezd_s64
vcgt Compare greater than
Click here to expand the API listvcgt_f32
vcgt_f64
vcgt_s16
vcgt_s32
vcgt_s64
vcgt_s8
vcgt_u16
vcgt_u32
vcgt_u64
vcgt_u8
vcgtq_f32
vcgtq_f64
vcgtq_s16
vcgtq_s32
vcgtq_s64
vcgtq_s8
vcgtq_u16
vcgtq_u32
vcgtq_u64
vcgtq_u8
vcgts_f32
vcgtd_f64
vcgtd_s64
vcgtd_u64
vcgtz Compare greater than zero
Click here to expand the API listvcgtz_f32
vcgtz_f64
vcgtz_s16
vcgtz_s32
vcgtz_s64
vcgtz_s8
vcgtzq_f32
vcgtzq_f64
vcgtzq_s16
vcgtzq_s32
vcgtzq_s64
vcgtzq_s8
vcgtzs_f32
vcgtzd_f64
vcgtzd_s64
vclt Compare less than
Click here to expand the API listvclt_f32
vclt_f64
vclt_s16
vclt_s32
vclt_s64
vclt_s8
vclt_u16
vclt_u32
vclt_u64
vclt_u8
vcltq_f32
vcltq_f64
vcltq_s16
vcltq_s32
vcltq_s64
vcltq_s8
vcltq_u16
vcltq_u32
vcltq_u64
vcltq_u8
vclts_f32
vcltd_f64
vcltd_s64
vcltd_u64
vcltz Compare less than zero
Click here to expand the API listvcltz_f32
vcltz_f64
vcltz_s16
vcltz_s32
vcltz_s64
vcltz_s8
vcltzq_f32
vcltzq_f64
vcltzq_s16
vcltzq_s32
vcltzq_s64
vcltzq_s8
vcltzs_f32
vcltzd_f64
vcltzd_s64
vcage Floating-point absolute compare greater than or equal
Click here to expand the API listvcage_f32
vcage_f64
vcageq_f32
vcageq_f64
vcages_f32
vcaged_f64
vcagt Floating-point absolute compare greater than
Click here to expand the API listvcagt_f32
vcagt_f64
vcagtq_f32
vcagtq_f64
vcagts_f32
vcagtd_f64
vcale Floating-point absolute compare less than or equal
Click here to expand the API listvcale_f32
vcale_f64
vcaleq_f32
vcaleq_f64
vcales_f32
vcaled_f64
vcalt Floating-point absolute compare less than
Click here to expand the API listvcalt_f32
vcalt_f64
vcaltq_f32
vcaltq_f64
vcalts_f32
vcaltd_f64

Bitwise

Operation Description APIs
vtst Test bits nonzero
Click here to expand the API listvtst_s16
vtst_s32
vtst_s64
vtst_s8
vtst_u16
vtst_u32
vtst_u64
vtst_u8
vtstd_s64
vtstd_u64
vtstq_s16
vtstq_s32
vtstq_s64
vtstq_s8
vtstq_u16
vtstq_u32
vtstq_u64
vtstq_u8
vmvn Bitwise NOT
Click here to expand the API listvmvn_s16
vmvn_s32
vmvn_s8
vmvn_u16
vmvn_u32
vmvn_u8
vmvnq_s16
vmvnq_s32
vmvnq_s8
vmvnq_u16
vmvnq_u32
vmvnq_u8
vand Bitwise AND
Click here to expand the API listvand_s16
vand_s32
vand_s64
vand_s8
vand_u16
vand_u32
vand_u64
vand_u8
vandq_s16
vandq_s32
vandq_s64
vandq_s8
vandq_u16
vandq_u32
vandq_u64
vandq_u8
vorr Bitwise OR
Click here to expand the API listvorr_s16
vorr_s32
vorr_s64
vorr_s8
vorr_u16
vorr_u32
vorr_u64
vorr_u8
vorrq_s16
vorrq_s32
vorrq_s64
vorrq_s8
vorrq_u16
vorrq_u32
vorrq_u64
vorrq_u8
vorn Bitwise OR NOT
Click here to expand the API listvorn_s16
vorn_s32
vorn_s64
vorn_s8
vorn_u16
vorn_u32
vorn_u64
vorn_u8
vornq_s16
vornq_s32
vornq_s64
vornq_s8
vornq_u16
vornq_u32
vornq_u64
vornq_u8
veor Bitwise exclusive OR
Click here to expand the API listveor_s16
veor_s32
veor_s64
veor_s8
veor_u16
veor_u32
veor_u64
veor_u8
veorq_s16
veorq_s32
veorq_s64
veorq_s8
veorq_u16
veorq_u32
veorq_u64
veorq_u8
vbic Bitwise bit clear
Click here to expand the API listvbic_s16
vbic_s32
vbic_s64
vbic_s8
vbic_u16
vbic_u32
vbic_u64
vbic_u8
vbicq_s16
vbicq_s32
vbicq_s64
vbicq_s8
vbicq_u16
vbicq_u32
vbicq_u64
vbicq_u8
vbsl Bitwise select
Click here to expand the API listvbsl_f32
vbsl_f64
vbsl_s16
vbsl_s32
vbsl_s64
vbsl_s8
vbsl_u16
vbsl_u32
vbsl_u64
vbsl_u8
vbslq_f32
vbslq_f64
vbslq_s16
vbslq_s32
vbslq_s64
vbslq_s8
vbslq_u16
vbslq_u32
vbslq_u64
vbslq_u8

Shift

Operation Description APIs
vshl Shift left (register)
Click here to expand the API listvshl_s16
vshl_s32
vshl_s64
vshl_s8
vshl_u16
vshl_u32
vshl_u64
vshl_u8
vshlq_s16
vshlq_s32
vshlq_s64
vshlq_s8
vshlq_u16
vshlq_u32
vshlq_u64
vshlq_u8
vshld_s64
vshld_u64
vqshl Saturating shift left (register)
Click here to expand the API listvqshl_s16
vqshl_s32
vqshl_s64
vqshl_s8
vqshl_u16
vqshl_u32
vqshl_u64
vqshl_u8
vqshlq_s16
vqshlq_s32
vqshlq_s64
vqshlq_s8
vqshlq_u16
vqshlq_u32
vqshlq_u64
vqshlq_u8
vqshlb_s8
vqshlb_u8
vqshlh_s16
vqshlh_u16
vqshls_s32
vqshls_u32
vqshld_s64
vqshld_u64
vqshl_n Saturating shift left (immediate)
Click here to expand the API listvqshl_n_s16
vqshl_n_s32
vqshl_n_s64
vqshl_n_s8
vqshl_n_u16
vqshl_n_u32
vqshl_n_u64
vqshl_n_u8
vqshlq_n_s16
vqshlq_n_s32
vqshlq_n_s64
vqshlq_n_s8
vqshlq_n_u16
vqshlq_n_u32
vqshlq_n_u64
vqshlq_n_u8
vqshlb_n_s8
vqshlb_n_u8
vqshlh_n_s16
vqshlh_n_u16
vqshls_n_s32
vqshls_n_u32
vqshld_n_s64
vqshld_n_u64
vqshlu_n Saturating shift left unsigned (immediate)
Click here to expand the API listvqshlu_n_s16
vqshlu_n_s32
vqshlu_n_s64
vqshlu_n_s8
vqshlub_n_s8
vqshlud_n_s64
vqshluh_n_s16
vqshluq_n_s16
vqshluq_n_s32
vqshluq_n_s64
vqshluq_n_s8
vqshlus_n_s32
vrshl Rounding shift left (register)
Click here to expand the API listvrshl_s16
vrshl_s32
vrshl_s64
vrshl_s8
vrshl_u16
vrshl_u32
vrshl_u64
vrshl_u8
vrshlq_s16
vrshlq_s32
vrshlq_s64
vrshlq_s8
vrshlq_u16
vrshlq_u32
vrshlq_u64
vrshlq_u8
vrshld_s64
vrshld_u64
vqrshl Saturating rounding shift left (register)
Click here to expand the API listvqrshl_s16
vqrshl_s32
vqrshl_s64
vqrshl_s8
vqrshl_u16
vqrshl_u32
vqrshl_u64
vqrshl_u8
vqrshlq_s16
vqrshlq_s32
vqrshlq_s64
vqrshlq_s8
vqrshlq_u16
vqrshlq_u32
vqrshlq_u64
vqrshlq_u8
vqrshlb_s8
vqrshlb_u8
vqrshlh_s16
vqrshlh_u16
vqrshls_s32
vqrshls_u32
vqrshld_s64
vqrshld_u64
vshl_n Shift left (immediate)
Click here to expand the API listvshl_n_s16
vshl_n_s32
vshl_n_s64
vshl_n_s8
vshl_n_u16
vshl_n_u32
vshl_n_u64
vshl_n_u8
vshlq_n_s16
vshlq_n_s32
vshlq_n_s64
vshlq_n_s8
vshlq_n_u16
vshlq_n_u32
vshlq_n_u64
vshlq_n_u8
vshld_n_s64
vshld_n_u64
vshll_n Shift left long (immediate)
Click here to expand the API listvshll_n_s16
vshll_n_s32
vshll_n_s8
vshll_n_u16
vshll_n_u32
vshll_n_u8
vshll_high_n_s16
vshll_high_n_s32
vshll_high_n_s8
vshll_high_n_u16
vshll_high_n_u32
vshll_high_n_u8
vshr_n Shift right (immediate)
Click here to expand the API listvshr_n_s16
vshr_n_s32
vshr_n_s64
vshr_n_s8
vshr_n_u16
vshr_n_u32
vshr_n_u64
vshr_n_u8
vshrq_n_s16
vshrq_n_s32
vshrq_n_s64
vshrq_n_s8
vshrq_n_u16
vshrq_n_u32
vshrq_n_u64
vshrq_n_u8
vshrd_n_s64
vshrd_n_u64
vrshr_n Rounding right left (register)
Click here to expand the API listvrshr_n_s16
vrshr_n_s32
vrshr_n_s64
vrshr_n_s8
vrshr_n_u16
vrshr_n_u32
vrshr_n_u64
vrshr_n_u8
vrshrq_n_s16
vrshrq_n_s32
vrshrq_n_s64
vrshrq_n_s8
vrshrq_n_u16
vrshrq_n_u32
vrshrq_n_u64
vrshrq_n_u8
vrshrd_n_s64
vrshrd_n_u64
vshrn_n Shift right narrow (immediate)
Click here to expand the API listvshrn_n_s16
vshrn_n_s32
vshrn_n_s64
vshrn_n_u16
vshrn_n_u32
vshrn_n_u64
vshrn_high_n_s16
vshrn_high_n_s32
vshrn_high_n_s64
vshrn_high_n_u16
vshrn_high_n_u32
vshrn_high_n_u64
vqshrun_n Signed saturating shift right
unsigned narrow (immediate)
Click here to expand the API listvqshrun_n_s16
vqshrun_n_s32
vqshrun_n_s64
vqshrunh_n_s16
vqshruns_n_s32
vqshrund_n_s64
vqshrun_high_n_s16
vqshrun_high_n_s32
vqshrun_high_n_s64
vqrshrun_n Signed saturating rounded shift right
unsigned narrow (immediate)
Click here to expand the API listvqrshrun_n_s16
vqrshrun_n_s32
vqrshrun_n_s64
vqrshrunh_n_s16
vqrshruns_n_s32
vqrshrund_n_s64
vqrshrun_high_n_s16
vqrshrun_high_n_s32
vqrshrun_high_n_s64
vqshrn_n Signed saturating shift right narrow (immediate)
Click here to expand the API listvqshrn_n_s16
vqshrn_n_s32
vqshrn_n_s64
vqshrn_n_u16
vqshrn_n_u32
vqshrn_n_u64
vqshrnh_n_s16
vqshrnh_n_u16
vqshrns_n_s32
vqshrns_n_u32
vqshrnd_n_s64
vqshrnd_n_u64
vqshrn_high_n_s16
vqshrn_high_n_s32
vqshrn_high_n_s64
vqshrn_high_n_u16
vqshrn_high_n_u32
vqshrn_high_n_u64
vrshrn_n Rounding shift right narrow (immediate)
Click here to expand the API listvrshrn_n_s16
vrshrn_n_s32
vrshrn_n_s64
vrshrn_n_u16
vrshrn_n_u32
vrshrn_n_u64
vrshrn_high_n_s16
vrshrn_high_n_s32
vrshrn_high_n_s64
vrshrn_high_n_u16
vrshrn_high_n_u32
vrshrn_high_n_u64
vqrshrn_n Signed saturating rounded shift right narrow (immediate)
Click here to expand the API listvqrshrn_n_s16
vqrshrn_n_s32
vqrshrn_n_s64
vqrshrn_n_u16
vqrshrn_n_u32
vqrshrn_n_u64
vqrshrnh_n_s16
vqrshrnh_n_u16
vqrshrns_n_s32
vqrshrns_n_u32
vqrshrnd_n_s64
vqrshrnd_n_u64
vqrshrn_high_n_s16
vqrshrn_high_n_s32
vqrshrn_high_n_s64
vqrshrn_high_n_u16
vqrshrn_high_n_u32
vqrshrn_high_n_u64
vsra_n Signed shift right and accumulate (immediate)
Click here to expand the API listvsra_n_s16
vsra_n_s32
vsra_n_s64
vsra_n_s8
vsra_n_u16
vsra_n_u32
vsra_n_u64
vsra_n_u8
vsraq_n_s16
vsraq_n_s32
vsraq_n_s64
vsraq_n_s8
vsraq_n_u16
vsraq_n_u32
vsraq_n_u64
vsraq_n_u8
vsrad_n_s64
vsrad_n_u64
vrsra_n Signed rounding shift right and accumulate (immediate)
Click here to expand the API listvrsra_n_s16
vrsra_n_s32
vrsra_n_s64
vrsra_n_s8
vrsra_n_u16
vrsra_n_u32
vrsra_n_u64
vrsra_n_u8
vrsraq_n_s16
vrsraq_n_s32
vrsraq_n_s64
vrsraq_n_s8
vrsraq_n_u16
vrsraq_n_u32
vrsraq_n_u64
vrsraq_n_u8
vrsrad_n_s64
vrsrad_n_u64
vsri_n Shift right and insert (immediate)
Click here to expand the API listvsri_n_s16
vsri_n_s32
vsri_n_s64
vsri_n_s8
vsri_n_u16
vsri_n_u32
vsri_n_u64
vsri_n_u8
vsriq_n_s16
vsriq_n_s32
vsriq_n_s64
vsriq_n_s8
vsriq_n_u16
vsriq_n_u32
vsriq_n_u64
vsriq_n_u8
vsrid_n_s64
vsrid_n_u64
vsli_n Shift left and insert (immediate)
Click here to expand the API listvsli_n_s16
vsli_n_s32
vsli_n_s64
vsli_n_s8
vsli_n_u16
vsli_n_u32
vsli_n_u64
vsli_n_u8
vsliq_n_s16
vsliq_n_s32
vsliq_n_s64
vsliq_n_s8
vsliq_n_u16
vsliq_n_u32
vsliq_n_u64
vsliq_n_u8
vslid_n_s64
vslid_n_u64

Floating-point

Operation Description APIs
vcvt Convert to/from another precision or fixed point,
rounding towards zero
Click here to expand the API listvcvt_f32_f64
vcvt_f32_s32
vcvt_f32_u32
vcvt_f64_f32
vcvt_f64_s64
vcvt_f64_u64
vcvt_s32_f32
vcvt_s64_f64
vcvt_u32_f32
vcvt_u64_f64
vcvtq_f32_s32
vcvtq_f32_u32
vcvtq_f64_s64
vcvtq_f64_u64
vcvtq_s32_f32
vcvtq_s64_f64
vcvtq_u32_f32
vcvtq_u64_f64
vcvts_f32_s32
vcvts_f32_u32
vcvts_s32_f32
vcvts_u32_f32
vcvtd_f64_s64
vcvtd_f64_u64
vcvtd_s64_f64
vcvtd_u64_f64
vcvt_high_f32_f64
vcvt_high_f64_f32
vcvta Convert to integer, rounding to nearest with ties to away
Click here to expand the API listvcvta_s32_f32
vcvta_s64_f64
vcvta_u32_f32
vcvta_u64_f64
vcvtad_s64_f64
vcvtad_u64_f64
vcvtaq_s32_f32
vcvtaq_s64_f64
vcvtaq_u32_f32
vcvtaq_u64_f64
vcvtas_s32_f32
vcvtas_u32_f32
vcvtm Convert to integer, rounding towards minus infinity
Click here to expand the API listvcvtm_s32_f32
vcvtm_s64_f64
vcvtm_u32_f32
vcvtm_u64_f64
vcvtmq_s32_f32
vcvtmq_s64_f64
vcvtmq_u32_f32
vcvtmq_u64_f64
vcvtms_s32_f32
vcvtms_u32_f32
vcvtmd_s64_f64
vcvtmd_u64_f64
vcvtn Convert to integer, rounding to nearest with ties to even
Click here to expand the API listvcvtn_s32_f32
vcvtn_s64_f64
vcvtn_u32_f32
vcvtn_u64_f64
vcvtnq_s32_f32
vcvtnq_s64_f64
vcvtnq_u32_f32
vcvtnq_u64_f64
vcvtns_s32_f32
vcvtns_u32_f32
vcvtnd_s64_f64
vcvtnd_u64_f64
vcvtp Convert to integer, rounding towards plus infinity
Click here to expand the API listvcvtp_s32_f32
vcvtp_s64_f64
vcvtp_u32_f32
vcvtp_u64_f64
vcvtpq_s32_f32
vcvtpq_s64_f64
vcvtpq_u32_f32
vcvtpq_u64_f64
vcvtps_s32_f32
vcvtps_u32_f32
vcvtpd_s64_f64
vcvtpd_u64_f64
vcvtx Convert to lower precision,
rounding to nearest with ties to odd
Click here to expand the API listvcvtx_f32_f64
vcvtx_high_f32_f64
vcvtxd_f32_f64
vcvt_n Convert to/from fixed point, rounding towards zero
Click here to expand the API listvcvt_n_f32_s32
vcvt_n_f32_u32
vcvt_n_f64_s64
vcvt_n_f64_u64
vcvt_n_s32_f32
vcvt_n_s64_f64
vcvt_n_u32_f32
vcvt_n_u64_f64
vcvtq_n_f32_s32
vcvtq_n_f32_u32
vcvtq_n_f64_s64
vcvtq_n_f64_u64
vcvtq_n_s32_f32
vcvtq_n_s64_f64
vcvtq_n_u32_f32
vcvtq_n_u64_f64
vcvts_n_f32_s32
vcvts_n_f32_u32
vcvts_n_s32_f32
vcvts_n_u32_f32
vcvtd_n_f64_s64
vcvtd_n_f64_u64
vcvtd_n_s64_f64
vcvtd_n_u64_f64
vrnd Round to Integral, toward zero
Click here to expand the API listvrnd_f32
vrnd_f64
vrndq_f32
vrndq_f64
vrnda Round to Integral, with ties to away
Click here to expand the API listvrnda_f32
vrnda_f64
vrndaq_f32
vrndaq_f64
vrndi Round to Integral, using current rounding mode
Click here to expand the API listvrndi_f32
vrndi_f64
vrndiq_f32
vrndiq_f64
vrndm Round to Integral, towards minus infinity
Click here to expand the API listvrndm_f32
vrndm_f64
vrndmq_f32
vrndmq_f64
vrndn Round to Integral, with ties to even
Click here to expand the API listvrndn_f32
vrndn_f64
vrndnq_f32
vrndnq_f64
vrndns_f32
vrndp Round to Integral, towards plus infinity
Click here to expand the API listvrndp_f32
vrndp_f64
vrndpq_f32
vrndpq_f64
vrndx Round to Integral exact
Click here to expand the API listvrndx_f32
vrndx_f64
vrndxq_f32
vrndxq_f64

Load and store

Operation Description APIs
vld1 Load vector from memory
Click here to expand the API listvld1_f32
vld1_f64
vld1_s16
vld1_s32
vld1_s64
vld1_s8
vld1_u16
vld1_u32
vld1_u64
vld1_u8
vld1q_f32
vld1q_f64
vld1q_s16
vld1q_s32
vld1q_s64
vld1q_s8
vld1q_u16
vld1q_u32
vld1q_u64
vld1q_u8
vst1 Store vector to memory
Click here to expand the API listvst1_f32
vst1_f64
vst1_s16
vst1_s32
vst1_s64
vst1_s8
vst1_u16
vst1_u32
vst1_u64
vst1_u8
vst1q_f32
vst1q_f64
vst1q_s16
vst1q_s32
vst1q_s64
vst1q_s8
vst1q_u16
vst1q_u32
vst1q_u64
vst1q_u8
vget_lane Get vector element
Click here to expand the API listvget_lane_f32
vget_lane_f64
vget_lane_s16
vget_lane_s32
vget_lane_s64
vget_lane_s8
vget_lane_u16
vget_lane_u32
vget_lane_u64
vget_lane_u8
vgetq_lane_f32
vgetq_lane_f64
vgetq_lane_s16
vgetq_lane_s32
vgetq_lane_s64
vgetq_lane_s8
vgetq_lane_u16
vgetq_lane_u32
vgetq_lane_u64
vgetq_lane_u8
vset_lane Set vector element
Click here to expand the API listvset_lane_f32
vset_lane_f64
vset_lane_s16
vset_lane_s32
vset_lane_s64
vset_lane_s8
vset_lane_u16
vset_lane_u32
vset_lane_u64
vset_lane_u8
vsetq_lane_f32
vsetq_lane_f64
vsetq_lane_s16
vsetq_lane_s32
vsetq_lane_s64
vsetq_lane_s8
vsetq_lane_u16
vsetq_lane_u32
vsetq_lane_u64
vsetq_lane_u8

Permutation

Operation Description APIs
vext Extract vector from pair of vectors
Click here to expand the API listvext_f32
vext_f64
vext_s16
vext_s32
vext_s64
vext_s8
vext_u16
vext_u32
vext_u64
vext_u8
vextq_f32
vextq_f64
vextq_s16
vextq_s32
vextq_s64
vextq_s8
vextq_u16
vextq_u32
vextq_u64
vextq_u8
vtbl1 Table vector Lookup
Click here to expand the API listvtbl1_s8
vtbl1_u8
vtbx1 Table vector lookup extension
Click here to expand the API listvtbx1_s8
vtbx1_u8
vqtbl1 Table vector Lookup
Click here to expand the API listvqtbl1_s8
vqtbl1_u8
vqtbl1q_s8
vqtbl1q_u8
vqtbx1 Table vector lookup extension
Click here to expand the API listvqtbx1_s8
vqtbx1_u8
vqtbx1q_s8
vqtbx1q_u8
vrbit Reverse bit order
Click here to expand the API listvrbit_s8
vrbit_u8
vrbitq_s8
vrbitq_u8
vrev16 Reverse elements in 16-bit halfwords
Click here to expand the API listvrev16_s8
vrev16_u8
vrev16q_s8
vrev16q_u8
vrev32 Reverse elements in 32-bit words
Click here to expand the API listvrev32_s16
vrev32_s8
vrev32_u16
vrev32_u8
vrev32q_s16
vrev32q_s8
vrev32q_u16
vrev32q_u8
vrev64 Reverse elements in 64-bit doublewords
Click here to expand the API listvrev64_f32
vrev64_s16
vrev64_s32
vrev64_s8
vrev64_u16
vrev64_u32
vrev64_u8
vrev64q_f32
vrev64q_s16
vrev64q_s32
vrev64q_s8
vrev64q_u16
vrev64q_u32
vrev64q_u8
vtrn1 Transpose vectors (primary)
Click here to expand the API listvtrn1_f32
vtrn1_s16
vtrn1_s32
vtrn1_s8
vtrn1_u16
vtrn1_u32
vtrn1_u8
vtrn1q_f32
vtrn1q_f64
vtrn1q_s16
vtrn1q_s32
vtrn1q_s64
vtrn1q_s8
vtrn1q_u16
vtrn1q_u32
vtrn1q_u64
vtrn1q_u8
vtrn2 Transpose vectors (secondary)
Click here to expand the API listvtrn2_f32
vtrn2_s16
vtrn2_s32
vtrn2_s8
vtrn2_u16
vtrn2_u32
vtrn2_u8
vtrn2q_f32
vtrn2q_f64
vtrn2q_s16
vtrn2q_s32
vtrn2q_s64
vtrn2q_s8
vtrn2q_u16
vtrn2q_u32
vtrn2q_u64
vtrn2q_u8
vzip1 Zip vectors (primary)
Click here to expand the API listvzip1_f32
vzip1_s16
vzip1_s32
vzip1_s8
vzip1_u16
vzip1_u32
vzip1_u8
vzip1q_f32
vzip1q_f64
vzip1q_s16
vzip1q_s32
vzip1q_s64
vzip1q_s8
vzip1q_u16
vzip1q_u32
vzip1q_u64
vzip1q_u8
vzip2 Zip vectors (secondary)
Click here to expand the API listvzip2_f32
vzip2_s16
vzip2_s32
vzip2_s8
vzip2_u16
vzip2_u32
vzip2_u8<br/vzip2q_f32
vzip2q_f64
vzip2q_s16
vzip2q_s32
vzip2q_s64
vzip2q_s8
vzip2q_u16
vzip2q_u32
vzip2q_u64
vzip2q_u8
vuzp1 Unzip vectors (primary)
Click here to expand the API listvuzp1_f32
vuzp1_s16
vuzp1_s32
vuzp1_s8
vuzp1_u16
vuzp1_u32
vuzp1_u8
vuzp1q_f32
vuzp1q_f64
vuzp1q_s16
vuzp1q_s32
vuzp1q_s64
vuzp1q_s8
vuzp1q_u16
vuzp1q_u32
vuzp1q_u64
vuzp1q_u8
vuzp2 Unzip vectors (secondary)
Click here to expand the API listvuzp2_f32
vuzp2_s16
vuzp2_s32
vuzp2_s8
vuzp2_u16
vuzp2_u32
vuzp2_u8
vuzp2q_f32
vuzp2q_f64
vuzp2q_s16
vuzp2q_s32
vuzp2q_s64
vuzp2q_s8
vuzp2q_u16
vuzp2q_u32
vuzp2q_u64
vuzp2q_u8

Cryptographic

Operation APIs
CRC32
Click here to expand the API list__crc32b
__crc32cb
__crc32cd
__crc32ch
__crc32cw
__crc32d
__crc32h
__crc32w
SHA1
Click here to expand the API listvsha1cq_u32
vsha1h_u32
vsha1mq_u32
vsha1pq_u32
vsha1su0q_u32
vsha1su1q_u32
SHA256
Click here to expand the API listvsha256h2q_u32
vsha256hq_u32
vsha256su0q_u32
vsha256su1q_u32
AES
Click here to expand the API listvaesdq_u8
vaeseq_u8
vaesimcq_u8
vaesmcq_u8

Miscellaneous

Operation Description APIs
vsqrt Square root
Click here to expand the API listvsqrt_f32
vsqrt_f64
vsqrtq_f32
vsqrtq_f64
vdot Dot product
Click here to expand the API listvdot_s32
vdot_u32
vdotq_s32
vdotq_u32
vdot_lane Dot product
Click here to expand the API listvdot_lane_s32
vdot_lane_u32
vdot_laneq_s32
vdot_laneq_u32
vdotq_lane_s32
vdotq_lane_u32
vdotq_laneq_s32
vdotq_laneq_u32