code wiki / (root) / nx_i8dot32a_kat.nx

nx_i8dot32a_kat.nx

buildroot/runtime/nx_i8dot32a_kat.nx

1999 B57 linesdepth 4pulls 5 transitivereach 0 importersview sourcekind tool
docsdependenciesstructsconstsfunctions

about

nx_i8dot32a_kat.nx -- KAT for the AVX2 __f32_i8dot32a intrinsic. __f32_i8dot32a(a:*i8[32], b:*f32[32]) = sum_{j<32} sext(a[j]) * b[j], with 2-accumulator AVX2 summation. Exact-INTEGER inputs (int8 x small-int f32, all products+sums exactly representable) so the result is order-INDEPENDENT -> must equal BOTH the scalar reference AND the SSE __f32_i8dot32 exactly. That proves the AVX2 codegen (vpmovsxbd/vcvtdq2ps/vmulps/vaddps + 2-acc combine + hsum) computes the right values. expect_exit: 0 (77/78/79 fail)

dependencies 3 imports · 0 importers

nx_syscalls.nx nx_f32.nx nx_f32_cvt.nx nx_i8dot32a_kat.nx

imports: nx_syscalls.nxnx_f32.nxnx_f32_cvt.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main sys_mmap k_st4 nx_i32_to_f32

structs

none

consts

none

functions

12func k_st4(p: *u8, idx: i64, bits: i64) -> i64
called by 1: main
20func main() -> i64