Skip to documentation
SLOP

tiny.simd.per4LaneBlockShuffle

Reference tiny.simd per4LaneBlockShuffle

Defined in block.

Called byCallsNo direct callsblockshuffle0123blockshuffle0321blockshuffle1032blockshuffle2103blockshuffle2301+2 moreblockper4LaneBlockShuffle
Static calls · unresolved targets: 0 · external targets: 0.

Source

Source: lib/simd/src/block.zig:100

zig
pub fn per4LaneBlockShuffle(    comptime D: type,    comptime index3: usize,    comptime index2: usize,    comptime index1: usize,    comptime index0: usize,    value: D.Vector,) D.Vector {    inline for (.{ index0, index1, index2, index3 }) |index| {        if (comptime index >= 4) @compileError("per-four-lane shuffle index must be below four");    }    const group = @min(D.lane_count, 4);    const indices = [4]usize{ index0, index1, index2, index3 };    const lanes: [D.lane_count]D.Lane = @bitCast(value);    var result: [D.lane_count]D.Lane = undefined;    inline for (0..D.lane_count) |lane| {        const source = indices[lane % group];        result[lane] = if (source < group) lanes[lane / group * group + source] else lanes[lane];    }    return @bitCast(result);}

Source: lib/simd/src/root.zig:854

zig
pub const per4LaneBlockShuffle = block.per4LaneBlockShuffle;

Complete caller list

7 direct callers.

Audit

Definitions1
Public names2
Members0
Version26.7.0
Revisiondaab053ee433