Go: SIMD Development and Tooling Fixes
The Go team merged significant SIMD functionality from a development branch while addressing critical tooling issues including a gofmt symlink bug and GODEBUG settings compatibility for future releases.
Duration: PT2M9S
https://podlog.io/listen/go-e282e2e6/episode/go-simd-development-and-tooling-fixes-3131b83d
Transcript
Good morning. This is your Go developer briefing for June 2nd, 2026.
The major development today centers on SIMD vectorization capabilities being integrated into the main Go codebase, alongside critical fixes to core development tools.
The biggest change is a reverse merge from the development SIMD branch into master, bringing carryless multiply operations for both ARM64 and WebAssembly platforms. This includes new polynomial multiply instructions using ARM64's PMULL and PMULL2, plus a GODEBUG equals simd equals 0 switch for testing and fallback when minimum CPU features are missing. The team has been working through output ordering issues in the SIMD code generation and added CPU feature detection for Intel's VPCLMULQDQ instruction set.
Two critical tooling fixes address long-standing developer pain points. Pull request 79774 fixes a gofmt bug where the tool failed to properly truncate symlinked files, comparing symlink path lengths instead of actual file sizes. This was causing silent corruption during code formatting. Meanwhile, commit 0153438 updates the module system to handle removed GODEBUG settings more gracefully. Starting with Go 1.27, deprecated settings like gotypesalias can still be used if they specify the new default behavior, but builds will fail if they try to use old non-final values.
Additional fixes include an encoding/json error offset regression that was breaking error reporting compatibility, and performance improvements to ELF debugging symbol processing that eliminate unnecessary loops in dynamic version handling.
Looking ahead, the SIMD merge represents a significant step toward better vectorization support in Go, while the GODEBUG changes signal more breaking changes coming in the 1.27 release cycle. Developers should audit their build configurations for deprecated debug settings and test symlinked code formatting workflows.
That's your Go update for today.