core::arch::wasm

Function i8x16_shuffle

Source
pub fn i8x16_shuffle<const I0: usize, const I1: usize, const I2: usize, const I3: usize, const I4: usize, const I5: usize, const I6: usize, const I7: usize, const I8: usize, const I9: usize, const I10: usize, const I11: usize, const I12: usize, const I13: usize, const I14: usize, const I15: usize>(
    a: v128,
    b: v128,
) -> v128
🔬This is a nightly-only experimental API. (simd_wasm64 #90599)
Available on target_family="wasm" and target feature simd128 only.
Expand description

Returns a new vector with lanes selected from the lanes of the two input vectors $a and $b specified in the 16 immediate operands.

The $a and $b expressions must have type v128, and this function generates a wasm instruction that is encoded with 16 bytes providing the indices of the elements to return. The indices i in range [0, 15] select the i-th element of a. The indices in range [16, 31] select the i - 16-th element of b.

Note that this is a macro due to the codegen requirements of all of the index expressions $i* must be constant. A compiler error will be generated if any of the expressions are not constant.

All indexes $i* must have the type u32.