tiny.simd.satWidenMulAccumFixedPoint
Defined in multiply.
Source
Source: lib/simd/src/multiply.zig:147
zig
pub fn satWidenMulAccumFixedPoint( comptime DW: type, a: anytype, b: @TypeOf(a), sum: DW.Vector,) DW.Vector { if (comptime DW.Lane != i32 or sourceLane(@TypeOf(a)) != i16 or sourceLaneCount(@TypeOf(a)) != DW.lane_count) { @compileError("satWidenMulAccumFixedPoint requires same-lane-count i16 sources with i32 output"); } var result: DW.Vector = undefined; inline for (0..DW.lane_count) |index| { const value = @as(i64, sum[index]) + @as(i64, a[index]) * @as(i64, b[index]) * 2; result[index] = @intCast(std.math.clamp( value, @as(i64, std.math.minInt(i32)), @as(i64, std.math.maxInt(i32)), )); } return result;}Source: lib/simd/src/root.zig:350
zig
pub const satWidenMulAccumFixedPoint = multiply.satWidenMulAccumFixedPoint;Audit
| Definitions | 1 |
|---|---|
| Public names | 2 |
| Members | 0 |
| Version | 26.7.0 |
| Revision | daab053ee433 |