Struct Avx

Source
pub struct Avx {
    _private: (),
}
Expand description

A token for AVX intrinsics on x86 and x86_64.

Fields§

§_private: ()

Implementations§

Source§

impl Avx

Source

pub unsafe fn new_unchecked() -> Self

Create a SIMD token.

§Safety

The required CPU features must be available.

Source

pub fn _mm256_add_pd(self, a: __m256d, b: __m256d) -> __m256d

Source

pub fn _mm256_add_ps(self, a: __m256, b: __m256) -> __m256

Source

pub fn _mm256_and_pd(self, a: __m256d, b: __m256d) -> __m256d

Source

pub fn _mm256_and_ps(self, a: __m256, b: __m256) -> __m256

Source

pub fn _mm256_or_pd(self, a: __m256d, b: __m256d) -> __m256d

Source

pub fn _mm256_or_ps(self, a: __m256, b: __m256) -> __m256

Source

pub fn _mm256_shuffle_pd<const MASK: i32>( self, a: __m256d, b: __m256d, ) -> __m256d

Source

pub fn _mm256_shuffle_ps<const MASK: i32>(self, a: __m256, b: __m256) -> __m256

Source

pub fn _mm256_andnot_pd(self, a: __m256d, b: __m256d) -> __m256d

Source

pub fn _mm256_andnot_ps(self, a: __m256, b: __m256) -> __m256

Source

pub fn _mm256_max_pd(self, a: __m256d, b: __m256d) -> __m256d

Source

pub fn _mm256_max_ps(self, a: __m256, b: __m256) -> __m256

Source

pub fn _mm256_min_pd(self, a: __m256d, b: __m256d) -> __m256d

Source

pub fn _mm256_min_ps(self, a: __m256, b: __m256) -> __m256

Source

pub fn _mm256_mul_pd(self, a: __m256d, b: __m256d) -> __m256d

Source

pub fn _mm256_mul_ps(self, a: __m256, b: __m256) -> __m256

Source

pub fn _mm256_addsub_pd(self, a: __m256d, b: __m256d) -> __m256d

Source

pub fn _mm256_addsub_ps(self, a: __m256, b: __m256) -> __m256

Source

pub fn _mm256_sub_pd(self, a: __m256d, b: __m256d) -> __m256d

Source

pub fn _mm256_sub_ps(self, a: __m256, b: __m256) -> __m256

Source

pub fn _mm256_div_ps(self, a: __m256, b: __m256) -> __m256

Source

pub fn _mm256_div_pd(self, a: __m256d, b: __m256d) -> __m256d

Source

pub fn _mm256_round_pd<const ROUNDING: i32>(self, a: __m256d) -> __m256d

Source

pub fn _mm256_ceil_pd(self, a: __m256d) -> __m256d

Source

pub fn _mm256_floor_pd(self, a: __m256d) -> __m256d

Source

pub fn _mm256_round_ps<const ROUNDING: i32>(self, a: __m256) -> __m256

Source

pub fn _mm256_ceil_ps(self, a: __m256) -> __m256

Source

pub fn _mm256_floor_ps(self, a: __m256) -> __m256

Source

pub fn _mm256_sqrt_ps(self, a: __m256) -> __m256

Source

pub fn _mm256_sqrt_pd(self, a: __m256d) -> __m256d

Source

pub fn _mm256_blend_pd<const IMM4: i32>(self, a: __m256d, b: __m256d) -> __m256d

Source

pub fn _mm256_blend_ps<const IMM8: i32>(self, a: __m256, b: __m256) -> __m256

Source

pub fn _mm256_blendv_pd(self, a: __m256d, b: __m256d, c: __m256d) -> __m256d

Source

pub fn _mm256_blendv_ps(self, a: __m256, b: __m256, c: __m256) -> __m256

Source

pub fn _mm256_dp_ps<const IMM8: i32>(self, a: __m256, b: __m256) -> __m256

Source

pub fn _mm256_hadd_pd(self, a: __m256d, b: __m256d) -> __m256d

Source

pub fn _mm256_hadd_ps(self, a: __m256, b: __m256) -> __m256

Source

pub fn _mm256_hsub_pd(self, a: __m256d, b: __m256d) -> __m256d

Source

pub fn _mm256_hsub_ps(self, a: __m256, b: __m256) -> __m256

Source

pub fn _mm256_xor_pd(self, a: __m256d, b: __m256d) -> __m256d

Source

pub fn _mm256_xor_ps(self, a: __m256, b: __m256) -> __m256

Source

pub fn _mm_cmp_pd<const IMM5: i32>(self, a: __m128d, b: __m128d) -> __m128d

Source

pub fn _mm256_cmp_pd<const IMM5: i32>(self, a: __m256d, b: __m256d) -> __m256d

Source

pub fn _mm_cmp_ps<const IMM5: i32>(self, a: __m128, b: __m128) -> __m128

Source

pub fn _mm256_cmp_ps<const IMM5: i32>(self, a: __m256, b: __m256) -> __m256

Source

pub fn _mm_cmp_sd<const IMM5: i32>(self, a: __m128d, b: __m128d) -> __m128d

Source

pub fn _mm_cmp_ss<const IMM5: i32>(self, a: __m128, b: __m128) -> __m128

Source

pub fn _mm256_cvtepi32_pd(self, a: __m128i) -> __m256d

Source

pub fn _mm256_cvtepi32_ps(self, a: __m256i) -> __m256

Source

pub fn _mm256_cvtpd_ps(self, a: __m256d) -> __m128

Source

pub fn _mm256_cvtps_epi32(self, a: __m256) -> __m256i

Source

pub fn _mm256_cvtps_pd(self, a: __m128) -> __m256d

Source

pub fn _mm256_cvttpd_epi32(self, a: __m256d) -> __m128i

Source

pub fn _mm256_cvtpd_epi32(self, a: __m256d) -> __m128i

Source

pub fn _mm256_cvttps_epi32(self, a: __m256) -> __m256i

Source

pub fn _mm256_extractf128_ps<const IMM1: i32>(self, a: __m256) -> __m128

Source

pub fn _mm256_extractf128_pd<const IMM1: i32>(self, a: __m256d) -> __m128d

Source

pub fn _mm256_extractf128_si256<const IMM1: i32>(self, a: __m256i) -> __m128i

Source

pub fn _mm256_zeroall(self)

Source

pub fn _mm256_zeroupper(self)

Source

pub fn _mm256_permutevar_ps(self, a: __m256, b: __m256i) -> __m256

Source

pub fn _mm_permutevar_ps(self, a: __m128, b: __m128i) -> __m128

Source

pub fn _mm256_permute_ps<const IMM8: i32>(self, a: __m256) -> __m256

Source

pub fn _mm_permute_ps<const IMM8: i32>(self, a: __m128) -> __m128

Source

pub fn _mm256_permutevar_pd(self, a: __m256d, b: __m256i) -> __m256d

Source

pub fn _mm_permutevar_pd(self, a: __m128d, b: __m128i) -> __m128d

Source

pub fn _mm256_permute_pd<const IMM4: i32>(self, a: __m256d) -> __m256d

Source

pub fn _mm_permute_pd<const IMM2: i32>(self, a: __m128d) -> __m128d

Source

pub fn _mm256_permute2f128_ps<const IMM8: i32>( self, a: __m256, b: __m256, ) -> __m256

Source

pub fn _mm256_permute2f128_pd<const IMM8: i32>( self, a: __m256d, b: __m256d, ) -> __m256d

Source

pub fn _mm256_permute2f128_si256<const IMM8: i32>( self, a: __m256i, b: __m256i, ) -> __m256i

Source

pub fn _mm256_broadcast_ss(self, f: &f32) -> __m256

Source

pub fn _mm_broadcast_ss(self, f: &f32) -> __m128

Source

pub fn _mm256_broadcast_sd(self, f: &f64) -> __m256d

Source

pub fn _mm256_broadcast_ps(self, a: &__m128) -> __m256

Source

pub fn _mm256_broadcast_pd(self, a: &__m128d) -> __m256d

Source

pub fn _mm256_insertf128_ps<const IMM1: i32>( self, a: __m256, b: __m128, ) -> __m256

Source

pub fn _mm256_insertf128_pd<const IMM1: i32>( self, a: __m256d, b: __m128d, ) -> __m256d

Source

pub fn _mm256_insertf128_si256<const IMM1: i32>( self, a: __m256i, b: __m128i, ) -> __m256i

Source

pub fn _mm256_insert_epi8<const INDEX: i32>(self, a: __m256i, i: i8) -> __m256i

Source

pub fn _mm256_insert_epi16<const INDEX: i32>( self, a: __m256i, i: i16, ) -> __m256i

Source

pub fn _mm256_insert_epi32<const INDEX: i32>( self, a: __m256i, i: i32, ) -> __m256i

Source

pub unsafe fn _mm256_load_pd(self, mem_addr: *const f64) -> __m256d

Source

pub unsafe fn _mm256_store_pd(self, mem_addr: *mut f64, a: __m256d)

Source

pub unsafe fn _mm256_load_ps(self, mem_addr: *const f32) -> __m256

Source

pub unsafe fn _mm256_store_ps(self, mem_addr: *mut f32, a: __m256)

Source

pub unsafe fn _mm256_loadu_pd(self, mem_addr: *const f64) -> __m256d

Source

pub unsafe fn _mm256_storeu_pd(self, mem_addr: *mut f64, a: __m256d)

Source

pub unsafe fn _mm256_loadu_ps(self, mem_addr: *const f32) -> __m256

Source

pub unsafe fn _mm256_storeu_ps(self, mem_addr: *mut f32, a: __m256)

Source

pub unsafe fn _mm256_load_si256(self, mem_addr: *const __m256i) -> __m256i

Source

pub unsafe fn _mm256_store_si256(self, mem_addr: *mut __m256i, a: __m256i)

Source

pub unsafe fn _mm256_loadu_si256(self, mem_addr: *const __m256i) -> __m256i

Source

pub unsafe fn _mm256_storeu_si256(self, mem_addr: *mut __m256i, a: __m256i)

Source

pub unsafe fn _mm256_maskload_pd( self, mem_addr: *const f64, mask: __m256i, ) -> __m256d

Source

pub unsafe fn _mm256_maskstore_pd( self, mem_addr: *mut f64, mask: __m256i, a: __m256d, )

Source

pub unsafe fn _mm_maskload_pd( self, mem_addr: *const f64, mask: __m128i, ) -> __m128d

Source

pub unsafe fn _mm_maskstore_pd( self, mem_addr: *mut f64, mask: __m128i, a: __m128d, )

Source

pub unsafe fn _mm256_maskload_ps( self, mem_addr: *const f32, mask: __m256i, ) -> __m256

Source

pub unsafe fn _mm256_maskstore_ps( self, mem_addr: *mut f32, mask: __m256i, a: __m256, )

Source

pub unsafe fn _mm_maskload_ps( self, mem_addr: *const f32, mask: __m128i, ) -> __m128

Source

pub unsafe fn _mm_maskstore_ps( self, mem_addr: *mut f32, mask: __m128i, a: __m128, )

Source

pub fn _mm256_movehdup_ps(self, a: __m256) -> __m256

Source

pub fn _mm256_moveldup_ps(self, a: __m256) -> __m256

Source

pub fn _mm256_movedup_pd(self, a: __m256d) -> __m256d

Source

pub unsafe fn _mm256_lddqu_si256(self, mem_addr: *const __m256i) -> __m256i

Source

pub unsafe fn _mm256_stream_si256(self, mem_addr: *mut __m256i, a: __m256i)

Source

pub unsafe fn _mm256_stream_pd(self, mem_addr: *mut f64, a: __m256d)

Source

pub unsafe fn _mm256_stream_ps(self, mem_addr: *mut f32, a: __m256)

Source

pub fn _mm256_rcp_ps(self, a: __m256) -> __m256

Source

pub fn _mm256_rsqrt_ps(self, a: __m256) -> __m256

Source

pub fn _mm256_unpackhi_pd(self, a: __m256d, b: __m256d) -> __m256d

Source

pub fn _mm256_unpackhi_ps(self, a: __m256, b: __m256) -> __m256

Source

pub fn _mm256_unpacklo_pd(self, a: __m256d, b: __m256d) -> __m256d

Source

pub fn _mm256_unpacklo_ps(self, a: __m256, b: __m256) -> __m256

Source

pub fn _mm256_testz_si256(self, a: __m256i, b: __m256i) -> i32

Source

pub fn _mm256_testc_si256(self, a: __m256i, b: __m256i) -> i32

Source

pub fn _mm256_testnzc_si256(self, a: __m256i, b: __m256i) -> i32

Source

pub fn _mm256_testz_pd(self, a: __m256d, b: __m256d) -> i32

Source

pub fn _mm256_testc_pd(self, a: __m256d, b: __m256d) -> i32

Source

pub fn _mm256_testnzc_pd(self, a: __m256d, b: __m256d) -> i32

Source

pub fn _mm_testz_pd(self, a: __m128d, b: __m128d) -> i32

Source

pub fn _mm_testc_pd(self, a: __m128d, b: __m128d) -> i32

Source

pub fn _mm_testnzc_pd(self, a: __m128d, b: __m128d) -> i32

Source

pub fn _mm256_testz_ps(self, a: __m256, b: __m256) -> i32

Source

pub fn _mm256_testc_ps(self, a: __m256, b: __m256) -> i32

Source

pub fn _mm256_testnzc_ps(self, a: __m256, b: __m256) -> i32

Source

pub fn _mm_testz_ps(self, a: __m128, b: __m128) -> i32

Source

pub fn _mm_testc_ps(self, a: __m128, b: __m128) -> i32

Source

pub fn _mm_testnzc_ps(self, a: __m128, b: __m128) -> i32

Source

pub fn _mm256_movemask_pd(self, a: __m256d) -> i32

Source

pub fn _mm256_movemask_ps(self, a: __m256) -> i32

Source

pub fn _mm256_setzero_pd(self) -> __m256d

Source

pub fn _mm256_setzero_ps(self) -> __m256

Source

pub fn _mm256_setzero_si256(self) -> __m256i

Source

pub fn _mm256_set_pd(self, a: f64, b: f64, c: f64, d: f64) -> __m256d

Source

pub fn _mm256_set_ps( self, a: f32, b: f32, c: f32, d: f32, e: f32, f: f32, g: f32, h: f32, ) -> __m256

Source

pub fn _mm256_set_epi8( self, e00: i8, e01: i8, e02: i8, e03: i8, e04: i8, e05: i8, e06: i8, e07: i8, e08: i8, e09: i8, e10: i8, e11: i8, e12: i8, e13: i8, e14: i8, e15: i8, e16: i8, e17: i8, e18: i8, e19: i8, e20: i8, e21: i8, e22: i8, e23: i8, e24: i8, e25: i8, e26: i8, e27: i8, e28: i8, e29: i8, e30: i8, e31: i8, ) -> __m256i

Source

pub fn _mm256_set_epi16( self, e00: i16, e01: i16, e02: i16, e03: i16, e04: i16, e05: i16, e06: i16, e07: i16, e08: i16, e09: i16, e10: i16, e11: i16, e12: i16, e13: i16, e14: i16, e15: i16, ) -> __m256i

Source

pub fn _mm256_set_epi32( self, e0: i32, e1: i32, e2: i32, e3: i32, e4: i32, e5: i32, e6: i32, e7: i32, ) -> __m256i

Source

pub fn _mm256_set_epi64x(self, a: i64, b: i64, c: i64, d: i64) -> __m256i

Source

pub fn _mm256_setr_pd(self, a: f64, b: f64, c: f64, d: f64) -> __m256d

Source

pub fn _mm256_setr_ps( self, a: f32, b: f32, c: f32, d: f32, e: f32, f: f32, g: f32, h: f32, ) -> __m256

Source

pub fn _mm256_setr_epi8( self, e00: i8, e01: i8, e02: i8, e03: i8, e04: i8, e05: i8, e06: i8, e07: i8, e08: i8, e09: i8, e10: i8, e11: i8, e12: i8, e13: i8, e14: i8, e15: i8, e16: i8, e17: i8, e18: i8, e19: i8, e20: i8, e21: i8, e22: i8, e23: i8, e24: i8, e25: i8, e26: i8, e27: i8, e28: i8, e29: i8, e30: i8, e31: i8, ) -> __m256i

Source

pub fn _mm256_setr_epi16( self, e00: i16, e01: i16, e02: i16, e03: i16, e04: i16, e05: i16, e06: i16, e07: i16, e08: i16, e09: i16, e10: i16, e11: i16, e12: i16, e13: i16, e14: i16, e15: i16, ) -> __m256i

Source

pub fn _mm256_setr_epi32( self, e0: i32, e1: i32, e2: i32, e3: i32, e4: i32, e5: i32, e6: i32, e7: i32, ) -> __m256i

Source

pub fn _mm256_setr_epi64x(self, a: i64, b: i64, c: i64, d: i64) -> __m256i

Source

pub fn _mm256_set1_pd(self, a: f64) -> __m256d

Source

pub fn _mm256_set1_ps(self, a: f32) -> __m256

Source

pub fn _mm256_set1_epi8(self, a: i8) -> __m256i

Source

pub fn _mm256_set1_epi16(self, a: i16) -> __m256i

Source

pub fn _mm256_set1_epi32(self, a: i32) -> __m256i

Source

pub fn _mm256_set1_epi64x(self, a: i64) -> __m256i

Source

pub fn _mm256_castpd_ps(self, a: __m256d) -> __m256

Source

pub fn _mm256_castps_pd(self, a: __m256) -> __m256d

Source

pub fn _mm256_castps_si256(self, a: __m256) -> __m256i

Source

pub fn _mm256_castsi256_ps(self, a: __m256i) -> __m256

Source

pub fn _mm256_castpd_si256(self, a: __m256d) -> __m256i

Source

pub fn _mm256_castsi256_pd(self, a: __m256i) -> __m256d

Source

pub fn _mm256_castps256_ps128(self, a: __m256) -> __m128

Source

pub fn _mm256_castpd256_pd128(self, a: __m256d) -> __m128d

Source

pub fn _mm256_castsi256_si128(self, a: __m256i) -> __m128i

Source

pub fn _mm256_castps128_ps256(self, a: __m128) -> __m256

Source

pub fn _mm256_castpd128_pd256(self, a: __m128d) -> __m256d

Source

pub fn _mm256_castsi128_si256(self, a: __m128i) -> __m256i

Source

pub fn _mm256_zextps128_ps256(self, a: __m128) -> __m256

Source

pub fn _mm256_zextsi128_si256(self, a: __m128i) -> __m256i

Source

pub fn _mm256_zextpd128_pd256(self, a: __m128d) -> __m256d

Source

pub fn _mm256_undefined_ps(self) -> __m256

Source

pub fn _mm256_undefined_pd(self) -> __m256d

Source

pub fn _mm256_undefined_si256(self) -> __m256i

Source

pub fn _mm256_set_m128(self, hi: __m128, lo: __m128) -> __m256

Source

pub fn _mm256_set_m128d(self, hi: __m128d, lo: __m128d) -> __m256d

Source

pub fn _mm256_set_m128i(self, hi: __m128i, lo: __m128i) -> __m256i

Source

pub fn _mm256_setr_m128(self, lo: __m128, hi: __m128) -> __m256

Source

pub fn _mm256_setr_m128d(self, lo: __m128d, hi: __m128d) -> __m256d

Source

pub fn _mm256_setr_m128i(self, lo: __m128i, hi: __m128i) -> __m256i

Source

pub unsafe fn _mm256_loadu2_m128( self, hiaddr: *const f32, loaddr: *const f32, ) -> __m256

Source

pub unsafe fn _mm256_loadu2_m128d( self, hiaddr: *const f64, loaddr: *const f64, ) -> __m256d

Source

pub unsafe fn _mm256_loadu2_m128i( self, hiaddr: *const __m128i, loaddr: *const __m128i, ) -> __m256i

Source

pub unsafe fn _mm256_storeu2_m128( self, hiaddr: *mut f32, loaddr: *mut f32, a: __m256, )

Source

pub unsafe fn _mm256_storeu2_m128d( self, hiaddr: *mut f64, loaddr: *mut f64, a: __m256d, )

Source

pub unsafe fn _mm256_storeu2_m128i( self, hiaddr: *mut __m128i, loaddr: *mut __m128i, a: __m256i, )

Source

pub fn _mm256_cvtss_f32(self, a: __m256) -> f32

Trait Implementations§

Source§

impl Clone for Avx

Source§

fn clone(&self) -> Avx

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Avx

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Copy for Avx

Auto Trait Implementations§

§

impl Freeze for Avx

§

impl RefUnwindSafe for Avx

§

impl Send for Avx

§

impl Sync for Avx

§

impl Unpin for Avx

§

impl UnwindSafe for Avx

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, S> SimdFrom<T, S> for T
where S: Simd,

Source§

fn simd_from(value: T, _simd: S) -> T

Source§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

Source§

fn simd_into(self, simd: S) -> T

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.