Oct 27, 2026

Go 1.27 extends its experimental archsimd package to arm64 and WebAssembly

The low-level SIMD API, enabled with GOEXPERIMENT=simd, now covers more than amd64 and aims to remove the need for assembly.

The Go team has described the architecture-specific SIMD support in Go 1.27. The experimental simd/archsimd package began on amd64 in Go 1.26 and now also supports arm64 and wasm, enabled by building with GOEXPERIMENT=simd.

SIMD instructions work on wide registers holding several values at once, which can speed up suitable algorithms considerably. Until now Go developers who wanted this had to write assembly.

The API uses distinct vector types such as Float32x4 and methods with consistent names, so element-wise addition is a single Add method across widths. Where instructions differ in edge-case behavior across architectures, the names differ too, to avoid silent surprises.

amd64 has the widest coverage, including AVX, AVX2 and several AVX-512 extensions. arm64 covers NEON, with SVE work in progress. The team is asking for feedback on usability and performance, so performance-sensitive Go developers may want to try it on a test build.

Sources

Verified Oct 27, 2026 (official source). gosimdperformance