code wiki / (root) / nx_simd_madd_probe.nx

nx_simd_madd_probe.nx

buildroot/runtime/nx_simd_madd_probe.nx

2170 B65 linesdepth 2pulls 2 transitivereach 0 importersview sourcekind probetopic simd
docsdependenciesstructsconstsfunctions

about

nx_simd_madd_probe.nx -- test the x86 integer-SIMD primitive __i16x16_madd (vpmaddwd) on nx_cc_known_good. __simd_vdot_i16_x16 is RISC-V-only codegen (nx_parse.nx:1436 says nx_riscv.nx). But __i16x16_madd (nx_parse.nx:1497) is documented as x86 vpmaddwd: *acc(i32x8) += a(i16x16) . b(i16x16) pairwise. If THIS works on x86, the integer GEMM can be SIMD-accelerated here -> the whole perf-exceed unblocks. Golden: a=b=[1..16], vpmaddwd pairs -> 8 i32, sum = sum(i^2, 1..16) = 1496. license_tier: ORIGINAL

dependencies 2 imports · 0 importers

nx_syscalls.nx nx_tier.nx nx_simd_madd_probe.nx

imports: nx_syscalls.nxnx_tier.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 sp3_pack

structs

none

consts

10const K_MAGIC_1496: i64 = 1496
11const K_MAGIC_2992: i64 = 2992

functions

13func sp3_pack(a: i64, b: i64, c: i64, d: i64) -> i64
called by 1: main
17func main() -> i64