Coin Brief ENDE

SIMD-0645 proposes a JIT intrinsic for 128-bit multiplication using 75% less compute

SIMD-0645, "SVM JIT Intrinsics", by Dean Little and Claire Fan, is an open proposal in the Solana Improvement Documents repository; its pull request was updated on 13 October. It introduces one operation, sol_multi3, for wrapping multiplication of two unsigned 128-bit values.

The problem. BPF has no native instructions for many wide arithmetic or vector operations, so programs implement them as long sequences of instructions even when the host CPU could do the same work in one step. SBPF v2 exposed wide multiplication through Solana-specific instructions, LMUL64 and UHMUL64, but those are deprecated because they are not part of the upstream eBPF instruction set.

The approach. Instead of a new instruction, sol_multi3 is a static call: opcode 0x85 with the immediate field set to murmur32("sol_multi3"), which is 0xDB0F6D13 — the same mechanism used to identify static syscalls. When a program is loaded, a static call with that immediate is treated as the multiplication; all other static calls keep the existing syscall resolution. A virtual machine can then use its JIT to lower the call to native wide multiplication on x86-64. The register convention matches the __multi3 BPF ABI: operands in r1–r4 as low and high halves, the result's low half in r0 and high half in r2, computed modulo 2^128.

SIMD-0645 proposes a JIT intrinsic for 128-bit multiplication using 75% less compute
SIMD-0645 proposes a JIT intrinsic for 128-bit multiplication using 75% less compute — Coin Brief

The numbers. The authors prototyped the operation in the sbpf virtual machine. In a benchmark of 10,000 u128 multiplications, the JIT-lowered version consumed about 75% less compute — 110,000 versus 450,000 compute units — and ran roughly twice as fast in wall-clock time.

Why it matters. Programs that multiply u128 values would pay fewer compute units for the same result, without changing their logic. The proposal also positions the technique as a pattern: the same JIT lowering could later be applied to SIMD and other host-specific instructions.

Status. The SIMD is a Draft with its feature gate still to be assigned; it changes nothing on the network until accepted and activated.

Source: Solana Improvement Documents, SIMD-0645 "SVM JIT Intrinsics" — https://github.com/solana-foundation/solana-improvement-documents/pull/645

Written by Victoria Shinder.