SIMD module

shuffle

procedureextension2 overloadssince 0.31.0Source

Lane i is a[order[i]]. The order is a constant, so this becomes one shuffle instruction.

shuffle :: (a: Vector($T, $N), $order: [] int) -> Vector(T, N)

Parameters

a: Vector($T, $N)
$order: [] int

Returns

Vector(T, N)
shuffle :: (a: Vector($T, $N), b: Vector(T, N), $order: [] int) -> Vector(T, N)

Lane i is lane order[i] of a followed by b: indices below N pick from a, the rest from b.

Parameters

a: Vector($T, $N)
b: Vector(T, N)
$order: [] int

Returns

Vector(T, N)

See also