Skip to main content

ShuffleExt

Trait ShuffleExt 

Source
pub trait ShuffleExt: Sealed {
    type Indices;
    type Output;

    // Required methods
    fn shuffle(self, indices: Self::Indices) -> Self::Output;
    fn shuffle_zeroing(self, indices: Self::Indices) -> Self::Output;
    fn shuffle_wrapping(self, indices: Self::Indices) -> Self::Output;
}
Expand description

An extension trait implemented for arrays of SIMD vectors, which provides shuffling from multiple input vectors.

§Example

use wide::{f32x4, ShuffleExt, u32x4};

let simd_a = f32x4::new([0.0, 1.0, 2.0, 3.0]);
let simd_b = f32x4::new([100.0, 101.0, 102.0, 103.0]);

// Here, indices `0..4` map to `simd_a`, and indices `4..8` map to `simd_b`
let from_two_vectors = [simd_a, simd_b].shuffle(u32x4::new([2, 3, 4, 5]));

assert_eq!(from_two_vectors, f32x4::new([2.0, 3.0, 100.0, 101.0]));

Required Associated Types§

Source

type Indices

The type representing indices.

This is always a SIMD vector of the unsigned integer with the same size as T and the same number of elements.

Source

type Output

The type returned by shuffle functions.

This is always the type of SIMD vector contained in the array.

Required Methods§

Source

fn shuffle(self, indices: Self::Indices) -> Self::Output

Returns a SIMD vector whose elements are selected from multiple input vectors using the corresponding runtime indices.

If N is the number of elements in each vector, indices in the range 0..N select values from self[0], indices in the range N..N * 2 select values from self[1], etc.

If an index is out of bounds (greater than or equal to N * INPUTS), the corresponding result element is unspecified.

§Example
use wide::{f32x4, ShuffleExt, u32x4};

let simd_a = f32x4::new([0.0, 1.0, 2.0, 3.0]);
let simd_b = f32x4::new([100.0, 101.0, 102.0, 103.0]);

// Here, indices `0..4` map to `simd_a`, and indices `4..8` map to `simd_b`
let from_two_vectors = [simd_a, simd_b].shuffle(u32x4::new([2, 3, 4, 5]));

assert_eq!(from_two_vectors, f32x4::new([2.0, 3.0, 100.0, 101.0]));
§Type-specific guarantees

For all 8-bit types, it is guaranteed that for out of bounds indices, either zero is returned or the index wraps around, non-deterministically (unlike other types, which can return arbitrary values).

Source

fn shuffle_zeroing(self, indices: Self::Indices) -> Self::Output

Returns a SIMD vector whose elements are selected from multiple input vectors using the corresponding runtime indices.

If N is the number of elements in each vector, indices in the range 0..N select values from self[0], indices in the range N..N * 2 select values from self[1], etc.

If an index is out of bounds (greater than or equal to N * INPUTS), the corresponding result element is the number zero.

§Example
use wide::{f32x4, ShuffleExt, u32x4};

let simd_a = f32x4::new([0.0, 1.0, 2.0, 3.0]);
let simd_b = f32x4::new([100.0, 101.0, 102.0, 103.0]);

// Here, indices `0..4` map to `simd_a`, and indices `4..8` map to `simd_b`
let from_two_vectors = [simd_a, simd_b].shuffle_zeroing(u32x4::new([2, 3, 100, 5]));

assert_eq!(from_two_vectors, f32x4::new([2.0, 3.0, 0.0, 101.0]));
Source

fn shuffle_wrapping(self, indices: Self::Indices) -> Self::Output

Returns a SIMD vector whose elements are selected from multiple input vectors using the corresponding runtime indices.

If N is the number of elements in each vector, indices in the range 0..N select values from self[0], indices in the range N..N * 2 select values from self[1], etc.

Indices are wrapped by N * INPUTS.

§Example
use wide::{f32x4, ShuffleExt, u32x4};

let simd_a = f32x4::new([0.0, 1.0, 2.0, 3.0]);
let simd_b = f32x4::new([100.0, 101.0, 102.0, 103.0]);

// Here, indices `0..4` map to `simd_a`, and indices `4..8` map to `simd_b`
let from_two_vectors = [simd_a, simd_b].shuffle_wrapping(u32x4::new([2, 3, 9, 5]));

assert_eq!(from_two_vectors, f32x4::new([2.0, 3.0, 1.0, 101.0]));

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl ShuffleExt for [f32x4; 2]

Source§

type Indices = u32x4

Source§

type Output = f32x4

Source§

fn shuffle(self: [f32x4; 2], indices: u32x4) -> f32x4

Source§

fn shuffle_zeroing(self: [f32x4; 2], indices: u32x4) -> f32x4

Source§

fn shuffle_wrapping(self: [f32x4; 2], indices: u32x4) -> f32x4

Source§

impl ShuffleExt for [f32x4; 3]

Source§

type Indices = u32x4

Source§

type Output = f32x4

Source§

fn shuffle(self: [f32x4; 3], indices: u32x4) -> f32x4

Source§

fn shuffle_zeroing(self: [f32x4; 3], indices: u32x4) -> f32x4

Source§

fn shuffle_wrapping(self: [f32x4; 3], indices: u32x4) -> f32x4

Source§

impl ShuffleExt for [f32x4; 4]

Source§

type Indices = u32x4

Source§

type Output = f32x4

Source§

fn shuffle(self: [f32x4; 4], indices: u32x4) -> f32x4

Source§

fn shuffle_zeroing(self: [f32x4; 4], indices: u32x4) -> f32x4

Source§

fn shuffle_wrapping(self: [f32x4; 4], indices: u32x4) -> f32x4

Source§

impl ShuffleExt for [f32x8; 2]

Source§

type Indices = u32x8

Source§

type Output = f32x8

Source§

fn shuffle(self: [f32x8; 2], indices: u32x8) -> f32x8

Source§

fn shuffle_zeroing(self: [f32x8; 2], indices: u32x8) -> f32x8

Source§

fn shuffle_wrapping(self: [f32x8; 2], indices: u32x8) -> f32x8

Source§

impl ShuffleExt for [f32x8; 3]

Source§

type Indices = u32x8

Source§

type Output = f32x8

Source§

fn shuffle(self: [f32x8; 3], indices: u32x8) -> f32x8

Source§

fn shuffle_zeroing(self: [f32x8; 3], indices: u32x8) -> f32x8

Source§

fn shuffle_wrapping(self: [f32x8; 3], indices: u32x8) -> f32x8

Source§

impl ShuffleExt for [f32x8; 4]

Source§

type Indices = u32x8

Source§

type Output = f32x8

Source§

fn shuffle(self: [f32x8; 4], indices: u32x8) -> f32x8

Source§

fn shuffle_zeroing(self: [f32x8; 4], indices: u32x8) -> f32x8

Source§

fn shuffle_wrapping(self: [f32x8; 4], indices: u32x8) -> f32x8

Source§

impl ShuffleExt for [f32x16; 2]

Source§

impl ShuffleExt for [f32x16; 3]

Source§

impl ShuffleExt for [f32x16; 4]

Source§

impl ShuffleExt for [f64x2; 2]

Source§

type Indices = u64x2

Source§

type Output = f64x2

Source§

fn shuffle(self: [f64x2; 2], indices: u64x2) -> f64x2

Source§

fn shuffle_zeroing(self: [f64x2; 2], indices: u64x2) -> f64x2

Source§

fn shuffle_wrapping(self: [f64x2; 2], indices: u64x2) -> f64x2

Source§

impl ShuffleExt for [f64x2; 3]

Source§

type Indices = u64x2

Source§

type Output = f64x2

Source§

fn shuffle(self: [f64x2; 3], indices: u64x2) -> f64x2

Source§

fn shuffle_zeroing(self: [f64x2; 3], indices: u64x2) -> f64x2

Source§

fn shuffle_wrapping(self: [f64x2; 3], indices: u64x2) -> f64x2

Source§

impl ShuffleExt for [f64x2; 4]

Source§

type Indices = u64x2

Source§

type Output = f64x2

Source§

fn shuffle(self: [f64x2; 4], indices: u64x2) -> f64x2

Source§

fn shuffle_zeroing(self: [f64x2; 4], indices: u64x2) -> f64x2

Source§

fn shuffle_wrapping(self: [f64x2; 4], indices: u64x2) -> f64x2

Source§

impl ShuffleExt for [f64x4; 2]

Source§

type Indices = u64x4

Source§

type Output = f64x4

Source§

fn shuffle(self: [f64x4; 2], indices: u64x4) -> f64x4

Source§

fn shuffle_zeroing(self: [f64x4; 2], indices: u64x4) -> f64x4

Source§

fn shuffle_wrapping(self: [f64x4; 2], indices: u64x4) -> f64x4

Source§

impl ShuffleExt for [f64x4; 3]

Source§

type Indices = u64x4

Source§

type Output = f64x4

Source§

fn shuffle(self: [f64x4; 3], indices: u64x4) -> f64x4

Source§

fn shuffle_zeroing(self: [f64x4; 3], indices: u64x4) -> f64x4

Source§

fn shuffle_wrapping(self: [f64x4; 3], indices: u64x4) -> f64x4

Source§

impl ShuffleExt for [f64x4; 4]

Source§

type Indices = u64x4

Source§

type Output = f64x4

Source§

fn shuffle(self: [f64x4; 4], indices: u64x4) -> f64x4

Source§

fn shuffle_zeroing(self: [f64x4; 4], indices: u64x4) -> f64x4

Source§

fn shuffle_wrapping(self: [f64x4; 4], indices: u64x4) -> f64x4

Source§

impl ShuffleExt for [f64x8; 2]

Source§

type Indices = u64x8

Source§

type Output = f64x8

Source§

fn shuffle(self: [f64x8; 2], indices: u64x8) -> f64x8

Source§

fn shuffle_zeroing(self: [f64x8; 2], indices: u64x8) -> f64x8

Source§

fn shuffle_wrapping(self: [f64x8; 2], indices: u64x8) -> f64x8

Source§

impl ShuffleExt for [f64x8; 3]

Source§

type Indices = u64x8

Source§

type Output = f64x8

Source§

fn shuffle(self: [f64x8; 3], indices: u64x8) -> f64x8

Source§

fn shuffle_zeroing(self: [f64x8; 3], indices: u64x8) -> f64x8

Source§

fn shuffle_wrapping(self: [f64x8; 3], indices: u64x8) -> f64x8

Source§

impl ShuffleExt for [f64x8; 4]

Source§

type Indices = u64x8

Source§

type Output = f64x8

Source§

fn shuffle(self: [f64x8; 4], indices: u64x8) -> f64x8

Source§

fn shuffle_zeroing(self: [f64x8; 4], indices: u64x8) -> f64x8

Source§

fn shuffle_wrapping(self: [f64x8; 4], indices: u64x8) -> f64x8

Source§

impl ShuffleExt for [i8x16; 2]

Source§

type Indices = u8x16

Source§

type Output = i8x16

Source§

fn shuffle(self: [i8x16; 2], indices: u8x16) -> i8x16

Source§

fn shuffle_zeroing(self: [i8x16; 2], indices: u8x16) -> i8x16

Source§

fn shuffle_wrapping(self: [i8x16; 2], indices: u8x16) -> i8x16

Source§

impl ShuffleExt for [i8x16; 3]

Source§

type Indices = u8x16

Source§

type Output = i8x16

Source§

fn shuffle(self: [i8x16; 3], indices: u8x16) -> i8x16

Source§

fn shuffle_zeroing(self: [i8x16; 3], indices: u8x16) -> i8x16

Source§

fn shuffle_wrapping(self: [i8x16; 3], indices: u8x16) -> i8x16

Source§

impl ShuffleExt for [i8x16; 4]

Source§

type Indices = u8x16

Source§

type Output = i8x16

Source§

fn shuffle(self: [i8x16; 4], indices: u8x16) -> i8x16

Source§

fn shuffle_zeroing(self: [i8x16; 4], indices: u8x16) -> i8x16

Source§

fn shuffle_wrapping(self: [i8x16; 4], indices: u8x16) -> i8x16

Source§

impl ShuffleExt for [i8x32; 2]

Source§

type Indices = u8x32

Source§

type Output = i8x32

Source§

fn shuffle(self: [i8x32; 2], indices: u8x32) -> i8x32

Source§

fn shuffle_zeroing(self: [i8x32; 2], indices: u8x32) -> i8x32

Source§

fn shuffle_wrapping(self: [i8x32; 2], indices: u8x32) -> i8x32

Source§

impl ShuffleExt for [i8x32; 3]

Source§

type Indices = u8x32

Source§

type Output = i8x32

Source§

fn shuffle(self: [i8x32; 3], indices: u8x32) -> i8x32

Source§

fn shuffle_zeroing(self: [i8x32; 3], indices: u8x32) -> i8x32

Source§

fn shuffle_wrapping(self: [i8x32; 3], indices: u8x32) -> i8x32

Source§

impl ShuffleExt for [i8x32; 4]

Source§

type Indices = u8x32

Source§

type Output = i8x32

Source§

fn shuffle(self: [i8x32; 4], indices: u8x32) -> i8x32

Source§

fn shuffle_zeroing(self: [i8x32; 4], indices: u8x32) -> i8x32

Source§

fn shuffle_wrapping(self: [i8x32; 4], indices: u8x32) -> i8x32

Source§

impl ShuffleExt for [i8x64; 2]

Source§

type Indices = u8x64

Source§

type Output = i8x64

Source§

fn shuffle(self: [i8x64; 2], indices: u8x64) -> i8x64

Source§

fn shuffle_zeroing(self: [i8x64; 2], indices: u8x64) -> i8x64

Source§

fn shuffle_wrapping(self: [i8x64; 2], indices: u8x64) -> i8x64

Source§

impl ShuffleExt for [i8x64; 3]

Source§

type Indices = u8x64

Source§

type Output = i8x64

Source§

fn shuffle(self: [i8x64; 3], indices: u8x64) -> i8x64

Source§

fn shuffle_zeroing(self: [i8x64; 3], indices: u8x64) -> i8x64

Source§

fn shuffle_wrapping(self: [i8x64; 3], indices: u8x64) -> i8x64

Source§

impl ShuffleExt for [i8x64; 4]

Source§

type Indices = u8x64

Source§

type Output = i8x64

Source§

fn shuffle(self: [i8x64; 4], indices: u8x64) -> i8x64

Source§

fn shuffle_zeroing(self: [i8x64; 4], indices: u8x64) -> i8x64

Source§

fn shuffle_wrapping(self: [i8x64; 4], indices: u8x64) -> i8x64

Source§

impl ShuffleExt for [i16x8; 2]

Source§

type Indices = u16x8

Source§

type Output = i16x8

Source§

fn shuffle(self: [i16x8; 2], indices: u16x8) -> i16x8

Source§

fn shuffle_zeroing(self: [i16x8; 2], indices: u16x8) -> i16x8

Source§

fn shuffle_wrapping(self: [i16x8; 2], indices: u16x8) -> i16x8

Source§

impl ShuffleExt for [i16x8; 3]

Source§

type Indices = u16x8

Source§

type Output = i16x8

Source§

fn shuffle(self: [i16x8; 3], indices: u16x8) -> i16x8

Source§

fn shuffle_zeroing(self: [i16x8; 3], indices: u16x8) -> i16x8

Source§

fn shuffle_wrapping(self: [i16x8; 3], indices: u16x8) -> i16x8

Source§

impl ShuffleExt for [i16x8; 4]

Source§

type Indices = u16x8

Source§

type Output = i16x8

Source§

fn shuffle(self: [i16x8; 4], indices: u16x8) -> i16x8

Source§

fn shuffle_zeroing(self: [i16x8; 4], indices: u16x8) -> i16x8

Source§

fn shuffle_wrapping(self: [i16x8; 4], indices: u16x8) -> i16x8

Source§

impl ShuffleExt for [i16x16; 2]

Source§

impl ShuffleExt for [i16x16; 3]

Source§

impl ShuffleExt for [i16x16; 4]

Source§

impl ShuffleExt for [i16x32; 2]

Source§

impl ShuffleExt for [i16x32; 3]

Source§

impl ShuffleExt for [i16x32; 4]

Source§

impl ShuffleExt for [i32x4; 2]

Source§

type Indices = u32x4

Source§

type Output = i32x4

Source§

fn shuffle(self: [i32x4; 2], indices: u32x4) -> i32x4

Source§

fn shuffle_zeroing(self: [i32x4; 2], indices: u32x4) -> i32x4

Source§

fn shuffle_wrapping(self: [i32x4; 2], indices: u32x4) -> i32x4

Source§

impl ShuffleExt for [i32x4; 3]

Source§

type Indices = u32x4

Source§

type Output = i32x4

Source§

fn shuffle(self: [i32x4; 3], indices: u32x4) -> i32x4

Source§

fn shuffle_zeroing(self: [i32x4; 3], indices: u32x4) -> i32x4

Source§

fn shuffle_wrapping(self: [i32x4; 3], indices: u32x4) -> i32x4

Source§

impl ShuffleExt for [i32x4; 4]

Source§

type Indices = u32x4

Source§

type Output = i32x4

Source§

fn shuffle(self: [i32x4; 4], indices: u32x4) -> i32x4

Source§

fn shuffle_zeroing(self: [i32x4; 4], indices: u32x4) -> i32x4

Source§

fn shuffle_wrapping(self: [i32x4; 4], indices: u32x4) -> i32x4

Source§

impl ShuffleExt for [i32x8; 2]

Source§

type Indices = u32x8

Source§

type Output = i32x8

Source§

fn shuffle(self: [i32x8; 2], indices: u32x8) -> i32x8

Source§

fn shuffle_zeroing(self: [i32x8; 2], indices: u32x8) -> i32x8

Source§

fn shuffle_wrapping(self: [i32x8; 2], indices: u32x8) -> i32x8

Source§

impl ShuffleExt for [i32x8; 3]

Source§

type Indices = u32x8

Source§

type Output = i32x8

Source§

fn shuffle(self: [i32x8; 3], indices: u32x8) -> i32x8

Source§

fn shuffle_zeroing(self: [i32x8; 3], indices: u32x8) -> i32x8

Source§

fn shuffle_wrapping(self: [i32x8; 3], indices: u32x8) -> i32x8

Source§

impl ShuffleExt for [i32x8; 4]

Source§

type Indices = u32x8

Source§

type Output = i32x8

Source§

fn shuffle(self: [i32x8; 4], indices: u32x8) -> i32x8

Source§

fn shuffle_zeroing(self: [i32x8; 4], indices: u32x8) -> i32x8

Source§

fn shuffle_wrapping(self: [i32x8; 4], indices: u32x8) -> i32x8

Source§

impl ShuffleExt for [i32x16; 2]

Source§

impl ShuffleExt for [i32x16; 3]

Source§

impl ShuffleExt for [i32x16; 4]

Source§

impl ShuffleExt for [i64x2; 2]

Source§

type Indices = u64x2

Source§

type Output = i64x2

Source§

fn shuffle(self: [i64x2; 2], indices: u64x2) -> i64x2

Source§

fn shuffle_zeroing(self: [i64x2; 2], indices: u64x2) -> i64x2

Source§

fn shuffle_wrapping(self: [i64x2; 2], indices: u64x2) -> i64x2

Source§

impl ShuffleExt for [i64x2; 3]

Source§

type Indices = u64x2

Source§

type Output = i64x2

Source§

fn shuffle(self: [i64x2; 3], indices: u64x2) -> i64x2

Source§

fn shuffle_zeroing(self: [i64x2; 3], indices: u64x2) -> i64x2

Source§

fn shuffle_wrapping(self: [i64x2; 3], indices: u64x2) -> i64x2

Source§

impl ShuffleExt for [i64x2; 4]

Source§

type Indices = u64x2

Source§

type Output = i64x2

Source§

fn shuffle(self: [i64x2; 4], indices: u64x2) -> i64x2

Source§

fn shuffle_zeroing(self: [i64x2; 4], indices: u64x2) -> i64x2

Source§

fn shuffle_wrapping(self: [i64x2; 4], indices: u64x2) -> i64x2

Source§

impl ShuffleExt for [i64x4; 2]

Source§

type Indices = u64x4

Source§

type Output = i64x4

Source§

fn shuffle(self: [i64x4; 2], indices: u64x4) -> i64x4

Source§

fn shuffle_zeroing(self: [i64x4; 2], indices: u64x4) -> i64x4

Source§

fn shuffle_wrapping(self: [i64x4; 2], indices: u64x4) -> i64x4

Source§

impl ShuffleExt for [i64x4; 3]

Source§

type Indices = u64x4

Source§

type Output = i64x4

Source§

fn shuffle(self: [i64x4; 3], indices: u64x4) -> i64x4

Source§

fn shuffle_zeroing(self: [i64x4; 3], indices: u64x4) -> i64x4

Source§

fn shuffle_wrapping(self: [i64x4; 3], indices: u64x4) -> i64x4

Source§

impl ShuffleExt for [i64x4; 4]

Source§

type Indices = u64x4

Source§

type Output = i64x4

Source§

fn shuffle(self: [i64x4; 4], indices: u64x4) -> i64x4

Source§

fn shuffle_zeroing(self: [i64x4; 4], indices: u64x4) -> i64x4

Source§

fn shuffle_wrapping(self: [i64x4; 4], indices: u64x4) -> i64x4

Source§

impl ShuffleExt for [i64x8; 2]

Source§

type Indices = u64x8

Source§

type Output = i64x8

Source§

fn shuffle(self: [i64x8; 2], indices: u64x8) -> i64x8

Source§

fn shuffle_zeroing(self: [i64x8; 2], indices: u64x8) -> i64x8

Source§

fn shuffle_wrapping(self: [i64x8; 2], indices: u64x8) -> i64x8

Source§

impl ShuffleExt for [i64x8; 3]

Source§

type Indices = u64x8

Source§

type Output = i64x8

Source§

fn shuffle(self: [i64x8; 3], indices: u64x8) -> i64x8

Source§

fn shuffle_zeroing(self: [i64x8; 3], indices: u64x8) -> i64x8

Source§

fn shuffle_wrapping(self: [i64x8; 3], indices: u64x8) -> i64x8

Source§

impl ShuffleExt for [i64x8; 4]

Source§

type Indices = u64x8

Source§

type Output = i64x8

Source§

fn shuffle(self: [i64x8; 4], indices: u64x8) -> i64x8

Source§

fn shuffle_zeroing(self: [i64x8; 4], indices: u64x8) -> i64x8

Source§

fn shuffle_wrapping(self: [i64x8; 4], indices: u64x8) -> i64x8

Source§

impl ShuffleExt for [u8x16; 2]

Source§

type Indices = u8x16

Source§

type Output = u8x16

Source§

fn shuffle(self: [u8x16; 2], indices: u8x16) -> u8x16

Source§

fn shuffle_zeroing(self: [u8x16; 2], indices: u8x16) -> u8x16

Source§

fn shuffle_wrapping(self: [u8x16; 2], indices: u8x16) -> u8x16

Source§

impl ShuffleExt for [u8x16; 3]

Source§

type Indices = u8x16

Source§

type Output = u8x16

Source§

fn shuffle(self: [u8x16; 3], indices: u8x16) -> u8x16

Source§

fn shuffle_zeroing(self: [u8x16; 3], indices: u8x16) -> u8x16

Source§

fn shuffle_wrapping(self: [u8x16; 3], indices: u8x16) -> u8x16

Source§

impl ShuffleExt for [u8x16; 4]

Source§

type Indices = u8x16

Source§

type Output = u8x16

Source§

fn shuffle(self: [u8x16; 4], indices: u8x16) -> u8x16

Source§

fn shuffle_zeroing(self: [u8x16; 4], indices: u8x16) -> u8x16

Source§

fn shuffle_wrapping(self: [u8x16; 4], indices: u8x16) -> u8x16

Source§

impl ShuffleExt for [u8x32; 2]

Source§

type Indices = u8x32

Source§

type Output = u8x32

Source§

fn shuffle(self: [u8x32; 2], indices: u8x32) -> u8x32

Source§

fn shuffle_zeroing(self: [u8x32; 2], indices: u8x32) -> u8x32

Source§

fn shuffle_wrapping(self: [u8x32; 2], indices: u8x32) -> u8x32

Source§

impl ShuffleExt for [u8x32; 3]

Source§

type Indices = u8x32

Source§

type Output = u8x32

Source§

fn shuffle(self: [u8x32; 3], indices: u8x32) -> u8x32

Source§

fn shuffle_zeroing(self: [u8x32; 3], indices: u8x32) -> u8x32

Source§

fn shuffle_wrapping(self: [u8x32; 3], indices: u8x32) -> u8x32

Source§

impl ShuffleExt for [u8x32; 4]

Source§

type Indices = u8x32

Source§

type Output = u8x32

Source§

fn shuffle(self: [u8x32; 4], indices: u8x32) -> u8x32

Source§

fn shuffle_zeroing(self: [u8x32; 4], indices: u8x32) -> u8x32

Source§

fn shuffle_wrapping(self: [u8x32; 4], indices: u8x32) -> u8x32

Source§

impl ShuffleExt for [u8x64; 2]

Source§

type Indices = u8x64

Source§

type Output = u8x64

Source§

fn shuffle(self: [u8x64; 2], indices: u8x64) -> u8x64

Source§

fn shuffle_zeroing(self: [u8x64; 2], indices: u8x64) -> u8x64

Source§

fn shuffle_wrapping(self: [u8x64; 2], indices: u8x64) -> u8x64

Source§

impl ShuffleExt for [u8x64; 3]

Source§

type Indices = u8x64

Source§

type Output = u8x64

Source§

fn shuffle(self: [u8x64; 3], indices: u8x64) -> u8x64

Source§

fn shuffle_zeroing(self: [u8x64; 3], indices: u8x64) -> u8x64

Source§

fn shuffle_wrapping(self: [u8x64; 3], indices: u8x64) -> u8x64

Source§

impl ShuffleExt for [u8x64; 4]

Source§

type Indices = u8x64

Source§

type Output = u8x64

Source§

fn shuffle(self: [u8x64; 4], indices: u8x64) -> u8x64

Source§

fn shuffle_zeroing(self: [u8x64; 4], indices: u8x64) -> u8x64

Source§

fn shuffle_wrapping(self: [u8x64; 4], indices: u8x64) -> u8x64

Source§

impl ShuffleExt for [u16x8; 2]

Source§

type Indices = u16x8

Source§

type Output = u16x8

Source§

fn shuffle(self: [u16x8; 2], indices: u16x8) -> u16x8

Source§

fn shuffle_zeroing(self: [u16x8; 2], indices: u16x8) -> u16x8

Source§

fn shuffle_wrapping(self: [u16x8; 2], indices: u16x8) -> u16x8

Source§

impl ShuffleExt for [u16x8; 3]

Source§

type Indices = u16x8

Source§

type Output = u16x8

Source§

fn shuffle(self: [u16x8; 3], indices: u16x8) -> u16x8

Source§

fn shuffle_zeroing(self: [u16x8; 3], indices: u16x8) -> u16x8

Source§

fn shuffle_wrapping(self: [u16x8; 3], indices: u16x8) -> u16x8

Source§

impl ShuffleExt for [u16x8; 4]

Source§

type Indices = u16x8

Source§

type Output = u16x8

Source§

fn shuffle(self: [u16x8; 4], indices: u16x8) -> u16x8

Source§

fn shuffle_zeroing(self: [u16x8; 4], indices: u16x8) -> u16x8

Source§

fn shuffle_wrapping(self: [u16x8; 4], indices: u16x8) -> u16x8

Source§

impl ShuffleExt for [u16x16; 2]

Source§

impl ShuffleExt for [u16x16; 3]

Source§

impl ShuffleExt for [u16x16; 4]

Source§

impl ShuffleExt for [u16x32; 2]

Source§

impl ShuffleExt for [u16x32; 3]

Source§

impl ShuffleExt for [u16x32; 4]

Source§

impl ShuffleExt for [u32x4; 2]

Source§

type Indices = u32x4

Source§

type Output = u32x4

Source§

fn shuffle(self: [u32x4; 2], indices: u32x4) -> u32x4

Source§

fn shuffle_zeroing(self: [u32x4; 2], indices: u32x4) -> u32x4

Source§

fn shuffle_wrapping(self: [u32x4; 2], indices: u32x4) -> u32x4

Source§

impl ShuffleExt for [u32x4; 3]

Source§

type Indices = u32x4

Source§

type Output = u32x4

Source§

fn shuffle(self: [u32x4; 3], indices: u32x4) -> u32x4

Source§

fn shuffle_zeroing(self: [u32x4; 3], indices: u32x4) -> u32x4

Source§

fn shuffle_wrapping(self: [u32x4; 3], indices: u32x4) -> u32x4

Source§

impl ShuffleExt for [u32x4; 4]

Source§

type Indices = u32x4

Source§

type Output = u32x4

Source§

fn shuffle(self: [u32x4; 4], indices: u32x4) -> u32x4

Source§

fn shuffle_zeroing(self: [u32x4; 4], indices: u32x4) -> u32x4

Source§

fn shuffle_wrapping(self: [u32x4; 4], indices: u32x4) -> u32x4

Source§

impl ShuffleExt for [u32x8; 2]

Source§

type Indices = u32x8

Source§

type Output = u32x8

Source§

fn shuffle(self: [u32x8; 2], indices: u32x8) -> u32x8

Source§

fn shuffle_zeroing(self: [u32x8; 2], indices: u32x8) -> u32x8

Source§

fn shuffle_wrapping(self: [u32x8; 2], indices: u32x8) -> u32x8

Source§

impl ShuffleExt for [u32x8; 3]

Source§

type Indices = u32x8

Source§

type Output = u32x8

Source§

fn shuffle(self: [u32x8; 3], indices: u32x8) -> u32x8

Source§

fn shuffle_zeroing(self: [u32x8; 3], indices: u32x8) -> u32x8

Source§

fn shuffle_wrapping(self: [u32x8; 3], indices: u32x8) -> u32x8

Source§

impl ShuffleExt for [u32x8; 4]

Source§

type Indices = u32x8

Source§

type Output = u32x8

Source§

fn shuffle(self: [u32x8; 4], indices: u32x8) -> u32x8

Source§

fn shuffle_zeroing(self: [u32x8; 4], indices: u32x8) -> u32x8

Source§

fn shuffle_wrapping(self: [u32x8; 4], indices: u32x8) -> u32x8

Source§

impl ShuffleExt for [u32x16; 2]

Source§

impl ShuffleExt for [u32x16; 3]

Source§

impl ShuffleExt for [u32x16; 4]

Source§

impl ShuffleExt for [u64x2; 2]

Source§

type Indices = u64x2

Source§

type Output = u64x2

Source§

fn shuffle(self: [u64x2; 2], indices: u64x2) -> u64x2

Source§

fn shuffle_zeroing(self: [u64x2; 2], indices: u64x2) -> u64x2

Source§

fn shuffle_wrapping(self: [u64x2; 2], indices: u64x2) -> u64x2

Source§

impl ShuffleExt for [u64x2; 3]

Source§

type Indices = u64x2

Source§

type Output = u64x2

Source§

fn shuffle(self: [u64x2; 3], indices: u64x2) -> u64x2

Source§

fn shuffle_zeroing(self: [u64x2; 3], indices: u64x2) -> u64x2

Source§

fn shuffle_wrapping(self: [u64x2; 3], indices: u64x2) -> u64x2

Source§

impl ShuffleExt for [u64x2; 4]

Source§

type Indices = u64x2

Source§

type Output = u64x2

Source§

fn shuffle(self: [u64x2; 4], indices: u64x2) -> u64x2

Source§

fn shuffle_zeroing(self: [u64x2; 4], indices: u64x2) -> u64x2

Source§

fn shuffle_wrapping(self: [u64x2; 4], indices: u64x2) -> u64x2

Source§

impl ShuffleExt for [u64x4; 2]

Source§

type Indices = u64x4

Source§

type Output = u64x4

Source§

fn shuffle(self: [u64x4; 2], indices: u64x4) -> u64x4

Source§

fn shuffle_zeroing(self: [u64x4; 2], indices: u64x4) -> u64x4

Source§

fn shuffle_wrapping(self: [u64x4; 2], indices: u64x4) -> u64x4

Source§

impl ShuffleExt for [u64x4; 3]

Source§

type Indices = u64x4

Source§

type Output = u64x4

Source§

fn shuffle(self: [u64x4; 3], indices: u64x4) -> u64x4

Source§

fn shuffle_zeroing(self: [u64x4; 3], indices: u64x4) -> u64x4

Source§

fn shuffle_wrapping(self: [u64x4; 3], indices: u64x4) -> u64x4

Source§

impl ShuffleExt for [u64x4; 4]

Source§

type Indices = u64x4

Source§

type Output = u64x4

Source§

fn shuffle(self: [u64x4; 4], indices: u64x4) -> u64x4

Source§

fn shuffle_zeroing(self: [u64x4; 4], indices: u64x4) -> u64x4

Source§

fn shuffle_wrapping(self: [u64x4; 4], indices: u64x4) -> u64x4

Source§

impl ShuffleExt for [u64x8; 2]

Source§

type Indices = u64x8

Source§

type Output = u64x8

Source§

fn shuffle(self: [u64x8; 2], indices: u64x8) -> u64x8

Source§

fn shuffle_zeroing(self: [u64x8; 2], indices: u64x8) -> u64x8

Source§

fn shuffle_wrapping(self: [u64x8; 2], indices: u64x8) -> u64x8

Source§

impl ShuffleExt for [u64x8; 3]

Source§

type Indices = u64x8

Source§

type Output = u64x8

Source§

fn shuffle(self: [u64x8; 3], indices: u64x8) -> u64x8

Source§

fn shuffle_zeroing(self: [u64x8; 3], indices: u64x8) -> u64x8

Source§

fn shuffle_wrapping(self: [u64x8; 3], indices: u64x8) -> u64x8

Source§

impl ShuffleExt for [u64x8; 4]

Source§

type Indices = u64x8

Source§

type Output = u64x8

Source§

fn shuffle(self: [u64x8; 4], indices: u64x8) -> u64x8

Source§

fn shuffle_zeroing(self: [u64x8; 4], indices: u64x8) -> u64x8

Source§

fn shuffle_wrapping(self: [u64x8; 4], indices: u64x8) -> u64x8

Implementors§