#[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 twoi8
variables packed togetheri16x16
- sixteeni16
variables packed togetheri32x8
- eighti32
variables packed togetheri64x4
- fouri64
variables 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
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 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