Skip to documentation
SLOP

tiny.simd.equal

Reference tiny.simd equal

Defined in algo.

Called byCallstest sourcelib.simd.src.algotest: span equality finds one changed...private sourcelib.simd.src.algoverifyAllTypeAlgorithmsprivate sourcelib.simd.src.algoverifySpanEqualityprivate sourcelib.simd.src.algorequireIntegeralgoequal
Static calls · unresolved targets: 0 · external targets: 0.

Source

Source: lib/simd/src/algo.zig:125

zig
pub fn equal(comptime D: type, left: []const D.Lane, right: []const D.Lane) bool {    requireInteger(D.Lane, "equal");    if (left.len != right.len) return false;    if (left.len <= D.lane_count) return std.mem.eql(D.Lane, left, right);    if (left.ptr == right.ptr) return true;    const last = left.len - D.lane_count;    var index: usize = 0;    while (index < last) : (index += D.lane_count) {        const first: D.Vector = left[index..][0..D.lane_count].*;        const second: D.Vector = right[index..][0..D.lane_count].*;        if (@reduce(.Or, first != second)) return false;    }    std.debug.assert(index >= last);    std.debug.assert(index - last < D.lane_count);    const first: D.Vector = left[last..][0..D.lane_count].*;    const second: D.Vector = right[last..][0..D.lane_count].*;    return !@reduce(.Or, first != second);}

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

zig
pub const equal = algo.equal;

Audit

Definitions1
Public names2
Members0
Version26.7.0
Revisiondaab053ee433