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
and WebAssembly 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
.