Struct m256

#[repr(simd)]
pub struct m256(pub(in ::core_arch::loongarch64::lasx::types) [f32; 8]);

256-bit wide set of eight f32 values, LoongArch-specific

This type is the same as the __m256 type defined in lasxintrin.h, representing a 256-bit SIMD register which internally consists of eight packed f32 instances. Usage of this type typically occurs in conjunction with the lasx target features for LoongArch.

Note that unlike m256i, the integer version of the 256-bit registers, this m256 type has one interpretation. Each instance of m256 always corresponds to f32x8, or eight f32 values packed together.

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 between two consecutive elements); 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.

Most intrinsics using m256 are prefixed with lasx_ and are suffixed with "s".

Fields

0: [f32; 8]

Implementations

impl m256

fn splat(value: f32) -> m256

Put the same value in every lane.

const fn as_array(&self) -> &[f32; 8]

Returns an array reference containing the entire SIMD vector.

fn as_mut_array(&mut self) -> &mut [f32; 8]

Returns a mutable array reference containing the entire SIMD vector.

Trait Implementations

impl Clone for m256

fn clone(&self) -> m256

impl Copy for m256

impl Debug for m256

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

impl From<Simd<f32, 8>> for m256

fn from(simd: Simd<f32, 8>) -> Self

impl TrivialClone for m256

Auto Trait Implementations

impl Freeze for m256

impl RefUnwindSafe for m256

impl Send for m256

impl Sync for m256

impl Unpin for m256

impl UnsafeUnpin for m256

impl UnwindSafe for m256

Blanket Implementations

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

fn type_id(&self) -> TypeId

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

fn borrow(&self) -> &T

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

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

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

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

impl<T> From<T> for m256

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> Printable for m256 where T: Copy + Debug,

impl<T> SizeHint for m256 where T: ?Sized,

fn lower_bound(&self) -> usize
fn upper_bound(&self) -> Option<usize>

impl<T> SizedTypeProperties for m256

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

fn into(self) -> U

Calls U::from(self).

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

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

type Error = never;
fn try_from(value: U) -> Result<T, never>

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

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