🔬This is a nightly-only experimental API. (
stdsimd
#48556)Available on AArch64 only.
Expand description
ARMv8 ASIMD intrinsics
Re-exports
pub use self::generated::*;
Experimental
Modules
Structs
- ARM-specific 64-bit wide vector of one packed
f64
. - ARM-specific type containing two
float64x1_t
vectors. - ARM-specific type containing three
float64x1_t
vectors. - ARM-specific type containing four
float64x1_t
vectors. - ARM-specific 128-bit wide vector of two packed
f64
. - ARM-specific type containing two
float64x2_t
vectors. - ARM-specific type containing three
float64x2_t
vectors. - ARM-specific type containing four
float64x2_t
vectors.
Functions
- SM3TT1A
- SM3TT1B
- SM3TT2A
- SM3TT2B
- Exclusive OR and rotate
- vabs_s64⚠
neon
Absolute Value (wrapping). - vabsd_s64⚠
neon
Absolute Value (wrapping). - vabsq_s64⚠
neon
Absolute Value (wrapping). - vadd_f64⚠
neon
Vector add. - vadd_s64⚠
neon
Vector add. - vadd_u64⚠
neon
Vector add. - vaddd_s64⚠
neon
Vector add. - vaddd_u64⚠
neon
Vector add. - vaddlv_s8⚠
neon
Signed Add Long across Vector - vaddlv_u8⚠
neon
Unsigned Add Long across Vector - vaddlvq_s8⚠
neon
Signed Add Long across Vector - vaddlvq_u8⚠
neon
Unsigned Add Long across Vector - vaddq_f64⚠
neon
Vector add. - vaddv_s8⚠
neon
Add across vector - vaddv_s16⚠
neon
Add across vector - vaddv_s32⚠
neon
Add across vector - vaddv_u8⚠
neon
Add across vector - vaddv_u16⚠
neon
Add across vector - vaddv_u32⚠
neon
Add across vector - vaddvq_s8⚠
neon
Add across vector - vaddvq_s16⚠
neon
Add across vector - vaddvq_s32⚠
neon
Add across vector - vaddvq_s64⚠
neon
Add across vector - vaddvq_u8⚠
neon
Add across vector - vaddvq_u16⚠
neon
Add across vector - vaddvq_u32⚠
neon
Add across vector - vaddvq_u64⚠
neon
Add across vector - vbsl_f64⚠
neon
Bitwise Select instructions. This instruction sets each bit in the destination SIMD&FP register to the corresponding bit from the first source SIMD&FP register when the original destination bit was 1, otherwise from the second source SIMD&FP register. - vbsl_p64⚠
neon
Bitwise Select. - vbslq_f64⚠
neon
Bitwise Select. (128-bit) - vbslq_p64⚠
neon
Bitwise Select. (128-bit) - vcombine_f64⚠
neon
Vector combine - vcopy_lane_f64⚠
neon
Duplicate vector element to vector or scalar - vcopy_lane_p64⚠
neon
Duplicate vector element to vector or scalar - vcopy_lane_s64⚠
neon
Duplicate vector element to vector or scalar - vcopy_lane_u64⚠
neon
Duplicate vector element to vector or scalar - vcopy_laneq_f64⚠
neon
Duplicate vector element to vector or scalar - vcopy_laneq_p64⚠
neon
Duplicate vector element to vector or scalar - vcopy_laneq_s64⚠
neon
Duplicate vector element to vector or scalar - vcopy_laneq_u64⚠
neon
Duplicate vector element to vector or scalar - vdup_n_f64⚠
neon
Duplicate vector element to vector or scalar - vdup_n_p64⚠
neon
Duplicate vector element to vector or scalar - vdupq_n_f64⚠
neon
Duplicate vector element to vector or scalar - vdupq_n_p64⚠
neon
Duplicate vector element to vector or scalar - vext_f64⚠
neon
Extract vector from pair of vectors - vext_p64⚠
neon
Extract vector from pair of vectors - vget_high_f64⚠
neon
Duplicate vector element to vector or scalar - vget_high_p64⚠
neon
Duplicate vector element to vector or scalar - vget_lane_f64⚠
neon
Duplicate vector element to vector or scalar - vget_low_f64⚠
neon
Duplicate vector element to vector or scalar - vget_low_p64⚠
neon
Duplicate vector element to vector or scalar - vgetq_lane_f64⚠
neon
Duplicate vector element to vector or scalar - vld1_dup_f64⚠
neon
Load multiple single-element structures to one, two, three, or four registers - vld1_f32⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1_f64⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1_lane_f64⚠
neon
Load one single-element structure to one lane of one register. - vld1_p8⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1_p16⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1_p64⚠
neon,aes
Load multiple single-element structures to one, two, three, or four registers. - vld1_s8⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1_s16⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1_s32⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1_s64⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1_u8⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1_u16⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1_u32⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1_u64⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1q_dup_f64⚠
neon
Load multiple single-element structures to one, two, three, or four registers - vld1q_f32⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1q_f64⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1q_lane_f64⚠
neon
Load one single-element structure to one lane of one register. - vld1q_p8⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1q_p16⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1q_p64⚠
neon,aes
Load multiple single-element structures to one, two, three, or four registers. - vld1q_s8⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1q_s16⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1q_s32⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1q_s64⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1q_u8⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1q_u16⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1q_u32⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vld1q_u64⚠
neon
Load multiple single-element structures to one, two, three, or four registers. - vmaxv_f32⚠
neon
Horizontal vector max. - vmaxv_s8⚠
neon
Horizontal vector max. - vmaxv_s16⚠
neon
Horizontal vector max. - vmaxv_s32⚠
neon
Horizontal vector max. - vmaxv_u8⚠
neon
Horizontal vector max. - vmaxv_u16⚠
neon
Horizontal vector max. - vmaxv_u32⚠
neon
Horizontal vector max. - vmaxvq_f32⚠
neon
Horizontal vector max. - vmaxvq_f64⚠
neon
Horizontal vector max. - vmaxvq_s8⚠
neon
Horizontal vector max. - vmaxvq_s16⚠
neon
Horizontal vector max. - vmaxvq_s32⚠
neon
Horizontal vector max. - vmaxvq_u8⚠
neon
Horizontal vector max. - vmaxvq_u16⚠
neon
Horizontal vector max. - vmaxvq_u32⚠
neon
Horizontal vector max. - vminv_f32⚠
neon
Horizontal vector min. - vminv_s8⚠
neon
Horizontal vector min. - vminv_s16⚠
neon
Horizontal vector min. - vminv_s32⚠
neon
Horizontal vector min. - vminv_u8⚠
neon
Horizontal vector min. - vminv_u16⚠
neon
Horizontal vector min. - vminv_u32⚠
neon
Horizontal vector min. - vminvq_f32⚠
neon
Horizontal vector min. - vminvq_f64⚠
neon
Horizontal vector min. - vminvq_s8⚠
neon
Horizontal vector min. - vminvq_s16⚠
neon
Horizontal vector min. - vminvq_s32⚠
neon
Horizontal vector min. - vminvq_u8⚠
neon
Horizontal vector min. - vminvq_u16⚠
neon
Horizontal vector min. - vminvq_u32⚠
neon
Horizontal vector min. - vmov_n_f64⚠
neon
Duplicate vector element to vector or scalar - vmov_n_p64⚠
neon
Duplicate vector element to vector or scalar - vmovq_n_f64⚠
neon
Duplicate vector element to vector or scalar - vmovq_n_p64⚠
neon
Duplicate vector element to vector or scalar - vpaddd_s64⚠
neon
Add pairwise - vpaddd_u64⚠
neon
Add pairwise - vpaddq_s8⚠
neon
Add pairwise - vpaddq_s16⚠
neon
Add pairwise - vpaddq_s32⚠
neon
Add pairwise - vpaddq_s64⚠
neon
Add pairwise - vpaddq_u8⚠
neon
Add pairwise - vpaddq_u16⚠
neon
Add pairwise - vpaddq_u32⚠
neon
Add pairwise - vpaddq_u64⚠
neon
Add pairwise - vpmaxq_f32⚠
neon
Folding maximum of adjacent pairs - vpmaxq_f64⚠
neon
Folding maximum of adjacent pairs - vpmaxq_s8⚠
neon
Folding maximum of adjacent pairs - vpmaxq_s16⚠
neon
Folding maximum of adjacent pairs - vpmaxq_s32⚠
neon
Folding maximum of adjacent pairs - vpmaxq_u8⚠
neon
Folding maximum of adjacent pairs - vpmaxq_u16⚠
neon
Folding maximum of adjacent pairs - vpmaxq_u32⚠
neon
Folding maximum of adjacent pairs - vpminq_f32⚠
neon
Folding minimum of adjacent pairs - vpminq_f64⚠
neon
Folding minimum of adjacent pairs - vpminq_s8⚠
neon
Folding minimum of adjacent pairs - vpminq_s16⚠
neon
Folding minimum of adjacent pairs - vpminq_s32⚠
neon
Folding minimum of adjacent pairs - vpminq_u8⚠
neon
Folding minimum of adjacent pairs - vpminq_u16⚠
neon
Folding minimum of adjacent pairs - vpminq_u32⚠
neon
Folding minimum of adjacent pairs - vqtbl1_p8⚠
neon
Table look-up - vqtbl1_s8⚠
neon
Table look-up - vqtbl1_u8⚠
neon
Table look-up - vqtbl1q_p8⚠
neon
Table look-up - vqtbl1q_s8⚠
neon
Table look-up - vqtbl1q_u8⚠
neon
Table look-up - vqtbl2_p8⚠
neon
Table look-up - vqtbl2_s8⚠
neon
Table look-up - vqtbl2_u8⚠
neon
Table look-up - vqtbl2q_p8⚠
neon
Table look-up - vqtbl2q_s8⚠
neon
Table look-up - vqtbl2q_u8⚠
neon
Table look-up - vqtbl3_p8⚠
neon
Table look-up - vqtbl3_s8⚠
neon
Table look-up - vqtbl3_u8⚠
neon
Table look-up - vqtbl3q_p8⚠
neon
Table look-up - vqtbl3q_s8⚠
neon
Table look-up - vqtbl3q_u8⚠
neon
Table look-up - vqtbl4_p8⚠
neon
Table look-up - vqtbl4_s8⚠
neon
Table look-up - vqtbl4_u8⚠
neon
Table look-up - vqtbl4q_p8⚠
neon
Table look-up - vqtbl4q_s8⚠
neon
Table look-up - vqtbl4q_u8⚠
neon
Table look-up - vqtbx1_p8⚠
neon
Extended table look-up - vqtbx1_s8⚠
neon
Extended table look-up - vqtbx1_u8⚠
neon
Extended table look-up - vqtbx1q_p8⚠
neon
Extended table look-up - vqtbx1q_s8⚠
neon
Extended table look-up - vqtbx1q_u8⚠
neon
Extended table look-up - vqtbx2_p8⚠
neon
Extended table look-up - vqtbx2_s8⚠
neon
Extended table look-up - vqtbx2_u8⚠
neon
Extended table look-up - vqtbx2q_p8⚠
neon
Extended table look-up - vqtbx2q_s8⚠
neon
Extended table look-up - vqtbx2q_u8⚠
neon
Extended table look-up - vqtbx3_p8⚠
neon
Extended table look-up - vqtbx3_s8⚠
neon
Extended table look-up - vqtbx3_u8⚠
neon
Extended table look-up - vqtbx3q_p8⚠
neon
Extended table look-up - vqtbx3q_s8⚠
neon
Extended table look-up - vqtbx3q_u8⚠
neon
Extended table look-up - vqtbx4_p8⚠
neon
Extended table look-up - vqtbx4_s8⚠
neon
Extended table look-up - vqtbx4_u8⚠
neon
Extended table look-up - vqtbx4q_p8⚠
neon
Extended table look-up - vqtbx4q_s8⚠
neon
Extended table look-up - vqtbx4q_u8⚠
neon
Extended table look-up - vshld_n_s64⚠
neon
Shift left - vshld_n_u64⚠
neon
Shift left - vshrd_n_s64⚠
neon
Signed shift right - vshrd_n_u64⚠
neon
Unsigned shift right - vsli_n_p8⚠
neon
Shift Left and Insert (immediate) - vsli_n_p16⚠
neon
Shift Left and Insert (immediate) - vsli_n_p64⚠
neon,aes
Shift Left and Insert (immediate) - vsli_n_s8⚠
neon
Shift Left and Insert (immediate) - vsli_n_s16⚠
neon
Shift Left and Insert (immediate) - vsli_n_s32⚠
neon
Shift Left and Insert (immediate) - vsli_n_s64⚠
neon
Shift Left and Insert (immediate) - vsli_n_u8⚠
neon
Shift Left and Insert (immediate) - vsli_n_u16⚠
neon
Shift Left and Insert (immediate) - vsli_n_u32⚠
neon
Shift Left and Insert (immediate) - vsli_n_u64⚠
neon
Shift Left and Insert (immediate) - vsliq_n_p8⚠
neon
Shift Left and Insert (immediate) - vsliq_n_p16⚠
neon
Shift Left and Insert (immediate) - vsliq_n_p64⚠
neon,aes
Shift Left and Insert (immediate) - vsliq_n_s8⚠
neon
Shift Left and Insert (immediate) - vsliq_n_s16⚠
neon
Shift Left and Insert (immediate) - vsliq_n_s32⚠
neon
Shift Left and Insert (immediate) - vsliq_n_s64⚠
neon
Shift Left and Insert (immediate) - vsliq_n_u8⚠
neon
Shift Left and Insert (immediate) - vsliq_n_u16⚠
neon
Shift Left and Insert (immediate) - vsliq_n_u32⚠
neon
Shift Left and Insert (immediate) - vsliq_n_u64⚠
neon
Shift Left and Insert (immediate) - vsqadd_u8⚠
neon
Unsigned saturating Accumulate of Signed value. - vsqadd_u16⚠
neon
Unsigned saturating Accumulate of Signed value. - vsqadd_u32⚠
neon
Unsigned saturating Accumulate of Signed value. - vsqadd_u64⚠
neon
Unsigned saturating Accumulate of Signed value. - vsqaddq_u8⚠
neon
Unsigned saturating Accumulate of Signed value. - vsqaddq_u16⚠
neon
Unsigned saturating Accumulate of Signed value. - vsqaddq_u32⚠
neon
Unsigned saturating Accumulate of Signed value. - vsqaddq_u64⚠
neon
Unsigned saturating Accumulate of Signed value. - vsrad_n_s64⚠
neon
Signed shift right and accumulate - vsrad_n_u64⚠
neon
Unsigned shift right and accumulate - vsri_n_p8⚠
neon
Shift Right and Insert (immediate) - vsri_n_p16⚠
neon
Shift Right and Insert (immediate) - vsri_n_p64⚠
neon,aes
Shift Right and Insert (immediate) - vsri_n_s8⚠
neon
Shift Right and Insert (immediate) - vsri_n_s16⚠
neon
Shift Right and Insert (immediate) - vsri_n_s32⚠
neon
Shift Right and Insert (immediate) - vsri_n_s64⚠
neon
Shift Right and Insert (immediate) - vsri_n_u8⚠
neon
Shift Right and Insert (immediate) - vsri_n_u16⚠
neon
Shift Right and Insert (immediate) - vsri_n_u32⚠
neon
Shift Right and Insert (immediate) - vsri_n_u64⚠
neon
Shift Right and Insert (immediate) - vsriq_n_p8⚠
neon
Shift Right and Insert (immediate) - vsriq_n_p16⚠
neon
Shift Right and Insert (immediate) - vsriq_n_p64⚠
neon,aes
Shift Right and Insert (immediate) - vsriq_n_s8⚠
neon
Shift Right and Insert (immediate) - vsriq_n_s16⚠
neon
Shift Right and Insert (immediate) - vsriq_n_s32⚠
neon
Shift Right and Insert (immediate) - vsriq_n_s64⚠
neon
Shift Right and Insert (immediate) - vsriq_n_u8⚠
neon
Shift Right and Insert (immediate) - vsriq_n_u16⚠
neon
Shift Right and Insert (immediate) - vsriq_n_u32⚠
neon
Shift Right and Insert (immediate) - vsriq_n_u64⚠
neon
Shift Right and Insert (immediate) - vst1_f32⚠
neon
- vst1_f64⚠
neon
- vst1_p8⚠
neon
Store multiple single-element structures from one, two, three, or four registers. - vst1_p16⚠
neon
Store multiple single-element structures from one, two, three, or four registers. - vst1_p64⚠
neon,aes
- vst1_s8⚠
neon
Store multiple single-element structures from one, two, three, or four registers. - vst1_s16⚠
neon
Store multiple single-element structures from one, two, three, or four registers. - vst1_s32⚠
neon
Store multiple single-element structures from one, two, three, or four registers. - vst1_s64⚠
neon
Store multiple single-element structures from one, two, three, or four registers. - vst1_u8⚠
neon
Store multiple single-element structures from one, two, three, or four registers. - vst1_u16⚠
neon
Store multiple single-element structures from one, two, three, or four registers. - vst1_u32⚠
neon
Store multiple single-element structures from one, two, three, or four registers. - vst1_u64⚠
neon
Store multiple single-element structures from one, two, three, or four registers. - vst1q_f32⚠
neon
- vst1q_f64⚠
neon
- vst1q_p8⚠
neon
Store multiple single-element structures from one, two, three, or four registers. - vst1q_p16⚠
neon
Store multiple single-element structures from one, two, three, or four registers. - vst1q_p64⚠
neon,aes
- vst1q_s8⚠
neon
Store multiple single-element structures from one, two, three, or four registers. - vst1q_s16⚠
neon
Store multiple single-element structures from one, two, three, or four registers. - vst1q_s32⚠
neon
Store multiple single-element structures from one, two, three, or four registers. - vst1q_s64⚠
neon
Store multiple single-element structures from one, two, three, or four registers. - vst1q_u8⚠
neon
Store multiple single-element structures from one, two, three, or four registers. - vst1q_u16⚠
neon
Store multiple single-element structures from one, two, three, or four registers. - vst1q_u32⚠
neon
Store multiple single-element structures from one, two, three, or four registers. - vst1q_u64⚠
neon
Store multiple single-element structures from one, two, three, or four registers. - vtbl1_p8⚠
neon
Table look-up - vtbl1_s8⚠
neon
Table look-up - vtbl1_u8⚠
neon
Table look-up - vtbl2_p8⚠
neon
Table look-up - vtbl2_s8⚠
neon
Table look-up - vtbl2_u8⚠
neon
Table look-up - vtbl3_p8⚠
neon
Table look-up - vtbl3_s8⚠
neon
Table look-up - vtbl3_u8⚠
neon
Table look-up - vtbl4_p8⚠
neon
Table look-up - vtbl4_s8⚠
neon
Table look-up - vtbl4_u8⚠
neon
Table look-up - vtbx1_p8⚠
neon
Extended table look-up - vtbx1_s8⚠
neon
Extended table look-up - vtbx1_u8⚠
neon
Extended table look-up - vtbx2_p8⚠
neon
Extended table look-up - vtbx2_s8⚠
neon
Extended table look-up - vtbx2_u8⚠
neon
Extended table look-up - vtbx3_p8⚠
neon
Extended table look-up - vtbx3_s8⚠
neon
Extended table look-up - vtbx3_u8⚠
neon
Extended table look-up - vtbx4_p8⚠
neon
Extended table look-up - vtbx4_s8⚠
neon
Extended table look-up - vtbx4_u8⚠
neon
Extended table look-up - vuqadd_s8⚠
neon
Signed saturating Accumulate of Unsigned value. - vuqadd_s16⚠
neon
Signed saturating Accumulate of Unsigned value. - vuqadd_s32⚠
neon
Signed saturating Accumulate of Unsigned value. - vuqadd_s64⚠
neon
Signed saturating Accumulate of Unsigned value. - vuqaddq_s8⚠
neon
Signed saturating Accumulate of Unsigned value. - vuqaddq_s16⚠
neon
Signed saturating Accumulate of Unsigned value. - vuqaddq_s32⚠
neon
Signed saturating Accumulate of Unsigned value. - vuqaddq_s64⚠
neon
Signed saturating Accumulate of Unsigned value.