Struct v128

1.54.0 · Source
#[repr(simd)]
pub struct v128([i32; 4]);
Available on target_family="wasm" only.
Expand description

WASM-specific 128-bit wide SIMD vector type.

This type corresponds to the v128 type in the WebAssembly SIMD proposal. This type is 128-bits large and the meaning of all the bits is defined within the context of how this value is used.

This same type is used simultaneously for all 128-bit-wide SIMD types, for example:

  • sixteen 8-bit integers (both i8 and u8)
  • eight 16-bit integers (both i16 and u16)
  • four 32-bit integers (both i32 and u32)
  • two 64-bit integers (both i64 and u64)
  • four 32-bit floats (f32)
  • two 64-bit floats (f64)

The v128 type in Rust is intended to be quite analogous to the v128 type in WebAssembly. Operations on v128 can only be performed with the functions in this module.

Tuple Fields§

§0: [i32; 4]

Implementations§

Source§

impl v128

Source

fn splat(value: i32) -> v128

Using my_simd([x; N]) seemingly fails tests, so use this internal helper for it instead.

Source

const fn as_array(&self) -> &[i32; 4]

Returns an array reference containing the entire SIMD vector.

Source

fn as_mut_array(&mut self) -> &mut [i32; 4]

Returns a mutable array reference containing the entire SIMD vector.

Source§

impl v128

Source

pub(crate) fn as_u8x16(self) -> u8x16

Source

pub(crate) fn as_u16x8(self) -> u16x8

Source

pub(crate) fn as_u32x4(self) -> u32x4

Source

pub(crate) fn as_u64x2(self) -> u64x2

Source

pub(crate) fn as_i8x16(self) -> i8x16

Source

pub(crate) fn as_i16x8(self) -> i16x8

Source

pub(crate) fn as_i32x4(self) -> i32x4

Source

pub(crate) fn as_i64x2(self) -> i64x2

Source

pub(crate) fn as_f32x4(self) -> f32x4

Source

pub(crate) fn as_f64x2(self) -> f64x2

Trait Implementations§

1.54.0 · Source§

impl Clone for v128

Source§

fn clone(&self) -> v128

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

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

Performs copy-assignment from source. Read more
1.54.0 · Source§

impl Debug for v128

Source§

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

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

impl Copy for v128

Auto Trait Implementations§

§

impl Freeze for v128

§

impl RefUnwindSafe for v128

§

impl Send for v128

§

impl Sync for v128

§

impl Unpin for v128

§

impl UnsafeUnpin for v128

§

impl UnwindSafe for v128

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 #126799)
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> SizedTypeProperties for T

Source§

#[doc(hidden)] const IS_ZST: bool = _

🔬This is a nightly-only experimental API. (sized_type_properties)
true if this type requires no storage. false if its size is greater than zero. Read more
Source§

#[doc(hidden)] const LAYOUT: Layout = _

🔬This is a nightly-only experimental API. (sized_type_properties)
Source§

#[doc(hidden)] const MAX_SLICE_LEN: usize = _

🔬This is a nightly-only experimental API. (sized_type_properties)
The largest safe length for a [Self]. 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.
Source§

impl<T> NonDrop for T
where T: Copy,

Source§

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