Skip to documentation
SLOP

tiny.simd.UnrollerUnit2D

Reference tiny.simd UnrollerUnit2D

Defined in unroller.

Called byCallsprivate sourcelib.simd.src.unrollerDotUnitprivate sourcelib.simd.src.unrollerMultiplyUnittest 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 moreunrollerUnrollerUnit2D
Static calls · unresolved targets: 3 · external targets: 0.

Source

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

zig
pub fn UnrollerUnit2D(    comptime Input0Lane: type,    comptime Input1Lane: type,    comptime OutputLane: type,) type {    validateLane(Input0Lane);    validateLane(Input1Lane);    validateLane(OutputLane);    const LargerLane = signedLane(@max(        @sizeOf(Input0Lane),        @max(@sizeOf(Input1Lane), @sizeOf(OutputLane)),    ));    const LargerTag = tag.ScalableTag(LargerLane);    return struct {        pub const input_count: usize = 2;        pub const Input0: type = Input0Lane;        pub const Input1: type = Input1Lane;        pub const Output: type = OutputLane;        pub const Larger: type = LargerLane;        pub const Tag: type = LargerTag;        pub const Input0Tag: type = LargerTag.rebind(Input0Lane);        pub const Input1Tag: type = LargerTag.rebind(Input1Lane);        pub const OutputTag: type = LargerTag.rebind(OutputLane);        pub const Input0Vector: type = Input0Tag.Vector;        pub const Input1Vector: type = Input1Tag.Vector;        pub const OutputVector: type = OutputTag.Vector;        pub const X0Vector: type = Input0Vector;        pub const X1Vector: type = Input1Vector;        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() Input0Vector {            return @splat(0);        }        pub fn x1Init() Input1Vector {            return @splat(0);        }        pub fn yInit() OutputVector {            return @splat(0);        }        pub fn load0(index: isize, input: []const Input0) Input0Vector {            return loadFull(Input0Tag, index, input);        }        pub fn load1(index: isize, input: []const Input1) Input1Vector {            return loadFull(Input1Tag, index, input);        }        pub fn maskLoad0(            index: isize,            input: []const Input0,            places: isize,        ) Input0Vector {            return maskLoad0Or(@splat(0), index, input, places);        }        pub fn maskLoad0Or(            inactive: Input0Vector,            index: isize,            input: []const Input0,            places: isize,        ) Input0Vector {            return loadPartial(Input0Tag, inactive, index, input, places);        }        pub fn maskLoad1(            index: isize,            input: []const Input1,            places: isize,        ) Input1Vector {            return maskLoad1Or(@splat(0), index, input, places);        }        pub fn maskLoad1Or(            inactive: Input1Vector,            index: isize,            input: []const Input1,            places: isize,        ) Input1Vector {            return loadPartial(Input1Tag, 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:534

zig
pub const UnrollerUnit2D = unroller.UnrollerUnit2D;

Complete call list

7 direct calls.

Audit

Definitions1
Public names2
Members0
Version26.7.0
Revisiondaab053ee433