Skip to documentation
SLOP

tiny.simd.UnrollerUnit

Reference tiny.simd UnrollerUnit

Defined in unroller.

Called byCallsprivate sourcelib.simd.src.unrollerAccumulateUnitprivate sourcelib.simd.src.unrollerConvertUnitprivate sourcelib.simd.src.unrollerFindUnitprivate sourcelib.simd.src.unrollerMinUnittest sourcelib.simd.src.unrollertest: Highway unroller descriptors us...private sourcelib.simd.src.unrollerunitBasetagScalableTagprivate sourcelib.simd.src.unrollerloadFullprivate sourcelib.simd.src.unrollerloadPartialprivate sourcelib.simd.src.unrollersignedLaneprivate sourcelib.simd.src.unrollerstoreFull+2 moreunrollerUnrollerUnit
Static calls · unresolved targets: 2 · external targets: 0.

Source

Source: lib/simd/src/unroller.zig:11

zig
pub fn UnrollerUnit(comptime InputLane: type, comptime OutputLane: type) type {    validateLane(InputLane);    validateLane(OutputLane);    const LargerLane = signedLane(@max(@sizeOf(InputLane), @sizeOf(OutputLane)));    const LargerTag = tag.ScalableTag(LargerLane);    return struct {        pub const input_count: usize = 1;        pub const Input: type = InputLane;        pub const Output: type = OutputLane;        pub const Larger: type = LargerLane;        pub const Tag: type = LargerTag;        pub const InputTag: type = LargerTag.rebind(InputLane);        pub const OutputTag: type = LargerTag.rebind(OutputLane);        pub const InputVector: type = InputTag.Vector;        pub const OutputVector: type = OutputTag.Vector;        pub const XVector: type = InputVector;        pub const YVector: type = OutputVector;        pub const max_unit_lanes: usize = LargerTag.lane_count;        pub const actual_lanes: usize = LargerTag.lane_count;        pub fn maxUnitLanes() usize {            return max_unit_lanes;        }        pub fn actualLanes() usize {            return actual_lanes;        }        pub fn x0Init() InputVector {            return @splat(0);        }        pub fn yInit() OutputVector {            return @splat(0);        }        pub fn load(index: isize, input: []const Input) InputVector {            return loadFull(InputTag, index, input);        }        pub fn maskLoad(index: isize, input: []const Input, places: isize) InputVector {            return maskLoadOr(@splat(0), index, input, places);        }        pub fn maskLoadOr(            inactive: InputVector,            index: isize,            input: []const Input,            places: isize,        ) InputVector {            return loadPartial(InputTag, inactive, index, input, places);        }        pub fn storeAndShortCircuit(            index: isize,            output: []Output,            value: OutputVector,        ) bool {            storeFull(OutputTag, index, output, value);            return true;        }        pub fn maskStore(            index: isize,            output: []Output,            value: OutputVector,            places: isize,        ) usize {            return storePartial(OutputTag, index, output, value, places);        }        pub fn reduceFinal(_: OutputVector, _: []Output) usize {            return 0;        }        pub fn reduceUnrolled(            _: OutputVector,            _: OutputVector,            _: OutputVector,            value: OutputVector,        ) OutputVector {            return value;        }    };}

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

zig
pub const UnrollerUnit = unroller.UnrollerUnit;

Complete call list

7 direct calls.

Audit

Definitions1
Public names2
Members0
Version26.7.0
Revisiondaab053ee433