Skip to documentation
SLOP

tiny.simd.mulHigh

Reference tiny.simd mulHigh

Defined in multiply.

Called byCallstest sourcelib.simd.src.multiplytest: Highway multiply variants prese...tiny.simdphastPositionPairFromHashesAndSeedsShardMulmulAndXorprivate sourcelib.simd.src.multiplyrequireIntegermultiplymulHigh
Static calls · unresolved targets: 0 · external targets: 0.

Source

Source: lib/simd/src/multiply.zig:42

zig
pub fn mulHigh(comptime D: type, a: D.Vector, b: D.Vector) D.Vector {    requireInteger(D.Lane, "mulHigh");    const bits = @bitSizeOf(D.Lane);    const WideSigned = @Int(.signed, bits * 2);    const WideUnsigned = @Int(.unsigned, bits * 2);    const Unsigned = @Int(.unsigned, bits);    var result: D.Vector = undefined;    inline for (0..D.lane_count) |index| {        const high: Unsigned = if (@typeInfo(D.Lane).int.signedness == .signed) blk: {            const product = @as(WideSigned, a[index]) * @as(WideSigned, b[index]);            const product_bits: WideUnsigned = @bitCast(product);            break :blk @truncate(product_bits >> bits);        } else blk: {            const product = @as(WideUnsigned, a[index]) * @as(WideUnsigned, b[index]);            break :blk @truncate(product >> bits);        };        result[index] = @bitCast(high);    }    return result;}

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

zig
pub const mulHigh = multiply.mulHigh;

Audit

Definitions1
Public names2
Members0
Version26.7.0
Revisiondaab053ee433