#[repr(simd)]pub struct __m256i([i64; 4]);Expand description
256-bit wide integer vector type, x86-specific
This type is the same as the __m256i type defined by Intel,
representing a 256-bit SIMD register. Usage of this type typically
corresponds to the avx and up target features for x86/x86_64.
Internally this type may be viewed as:
i8x32- thirty twoi8variables packed togetheri16x16- sixteeni16variables packed togetheri32x8- eighti32variables packed togetheri64x4- fouri64variables packed together
(as well as unsigned versions). Each intrinsic may interpret the internal bits differently, check the documentation of the intrinsic to see how it’s being used.
The in-memory representation of this type is the same as the one of an equivalent array (i.e. the in-memory order of elements is the same, and there is no padding); however, the alignment is different and equal to the size of the type. Note that the ABI for function calls may not be the same.
Note that this means that an instance of __m256i typically just means
a “bag of bits” which is left up to interpretation at the point of use.
§Examples
Tuple Fields§
§0: [i64; 4]Implementations§
Source§impl __m256i
impl __m256i
Sourcefn splat(value: i64) -> __m256i
fn splat(value: i64) -> __m256i
Using my_simd([x; N]) seemingly fails tests,
so use this internal helper for it instead.
Sourceconst fn as_array(&self) -> &[i64; 4]
const fn as_array(&self) -> &[i64; 4]
Returns an array reference containing the entire SIMD vector.
Sourcefn as_mut_array(&mut self) -> &mut [i64; 4]
fn as_mut_array(&mut self) -> &mut [i64; 4]
Returns a mutable array reference containing the entire SIMD vector.
Source§impl __m256i
impl __m256i
pub(crate) fn as_u8x32(self) -> u8x32
pub(crate) fn as_u16x16(self) -> u16x16
pub(crate) fn as_u32x8(self) -> u32x8
pub(crate) fn as_u64x4(self) -> u64x4
pub(crate) fn as_i8x32(self) -> i8x32
pub(crate) fn as_i16x16(self) -> i16x16
pub(crate) fn as_i32x8(self) -> i32x8
pub(crate) fn as_i64x4(self) -> i64x4
Trait Implementations§
impl Copy for __m256i
impl TrivialClone for __m256i
Auto Trait Implementations§
impl Freeze for __m256i
impl RefUnwindSafe for __m256i
impl Send for __m256i
impl Sync for __m256i
impl Unpin for __m256i
impl UnsafeUnpin for __m256i
impl UnwindSafe for __m256i
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> SizedTypeProperties for T
impl<T> SizedTypeProperties for T
Source§#[doc(hidden)] const SIZE: usize = _
#[doc(hidden)] const SIZE: usize = _
sized_type_properties)Source§#[doc(hidden)] const ALIGN: usize = _
#[doc(hidden)] const ALIGN: usize = _
sized_type_properties)Source§#[doc(hidden)] const IS_ZST: bool = _
#[doc(hidden)] const IS_ZST: bool = _
sized_type_properties)Source§#[doc(hidden)] const LAYOUT: Layout = _
#[doc(hidden)] const LAYOUT: Layout = _
sized_type_properties)Source§#[doc(hidden)] const MAX_SLICE_LEN: usize = _
#[doc(hidden)] const MAX_SLICE_LEN: usize = _
sized_type_properties)[Self]. Read more