tiny.simd.UnrollerUnit
Defined in unroller.
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.
tiny.simd.tag.ScalableTag[function] atlib/simd/src/tag.zig:61lib.simd.src.unroller.loadFull[function] — private source atlib/simd/src/unroller.zig:525in nearest public ownertiny.simd.unrollerlib.simd.src.unroller.loadPartial[function] — private source atlib/simd/src/unroller.zig:533in nearest public ownertiny.simd.unrollerlib.simd.src.unroller.signedLane[function] — private source atlib/simd/src/unroller.zig:621in nearest public ownertiny.simd.unrollerlib.simd.src.unroller.storeFull[function] — private source atlib/simd/src/unroller.zig:548in nearest public ownertiny.simd.unrollerlib.simd.src.unroller.storePartial[function] — private source atlib/simd/src/unroller.zig:561in nearest public ownertiny.simd.unrollerlib.simd.src.unroller.validateLane[function] — private source atlib/simd/src/unroller.zig:617in nearest public ownertiny.simd.unroller
Audit
| Definitions | 1 |
|---|---|
| Public names | 2 |
| Members | 0 |
| Version | 26.7.0 |
| Revision | daab053ee433 |