The midway deep copier built the emulation copy (VecLen == 0) with the original selector name node. Type checking runs again after the rewrite. The re-check resolved the emulation copy and wrote the bridge object into info.Uses of the shared node. The original simd.BroadcastUint8s then resolved to the bridge object, while its cached TypeAndValue still held the simd signature. The export writer emitted the bridge object with the simd type. The reader then hit the exprReshape assert on two non-shape types that differ. Build a fresh name in both emulation branches, as the non-emulation branches already do. The ICE becomes the documented BUG(global initialization) link error. A full fix for simd var initializers needs the TODO at midway/rewrite.go:242 and stays open. Updates #80689 Change-Id: Iad5103bc01b0b22a109be41fb5204f5a79997ee2 Reviewed-on: https://go-review.googlesource.com/c/go/+/841367 LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Junyang Shao <shaojunyang@google.com>