tiny.simd.per4LaneBlockShuffle
Defined in block.
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.
tiny.simd.block.shuffle0123[function] atlib/simd/src/block.zig:150tiny.simd.block.shuffle0321[function] atlib/simd/src/block.zig:127tiny.simd.block.shuffle1032[function] atlib/simd/src/block.zig:122tiny.simd.block.shuffle2103[function] atlib/simd/src/block.zig:132tiny.simd.block.shuffle2301[function] atlib/simd/src/block.zig:137lib.simd.src.block.test_Highway_per-four-lane_shuffle_repeats_its_pattern[function] — test source atlib/simd/src/block.zig:421in nearest public ownertiny.simd.blocklib.simd.src.test.verifyArrangeOracle[function] — private source atlib/simd/src/test.zig:239in nearest public ownerlib.simd.src.test
Audit
| Definitions | 1 |
|---|---|
| Public names | 2 |
| Members | 0 |
| Version | 26.7.0 |
| Revision | daab053ee433 |