This CL contains API renamings: Loads: Adjust these names to be "scalable first" LoadT => LoadTArray LoadTSlice => LoadT LoadTSlicePart(s []E) T => LoadTPart(s []E) T (note: the next CL will further refine it to return the elements loaded) LoadTMasked - Let's drop this for now. Passing an array defeats the main purpose of suppressing faults. Passing a slice would require extra work bounds-checking work. It's not clear how to translate this into Go. Stores: T.Store => T.StoreArray (not necessary, but gives symmetry and compile-time bounds checking) T.StoreSlice => T.Store T.StoreSlicePart => T.StorePart T.StoreMasked => T.StoreArrayMasked We may want a slice version of masked store, but we'll leave it out for now. It requires bounds checking. Mostly this will be served by StorePart. For #78979. Change-Id: I16dbc269b4566380c19e769892ea55d849024e53 Reviewed-on: https://go-review.googlesource.com/c/go/+/775600 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>
25 lines
409 B
Go
25 lines
409 B
Go
// run -gcflags=all=-d=checkptr
|
|
|
|
//go:build goexperiment.simd && amd64
|
|
|
|
// Copyright 2026 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// Test case for issue #78413.
|
|
|
|
package main
|
|
|
|
import (
|
|
"simd/archsimd"
|
|
)
|
|
|
|
//go:noinline
|
|
func F() []int32 {
|
|
return []int32{0}
|
|
}
|
|
|
|
func main() {
|
|
archsimd.LoadInt32x8Part(F())
|
|
}
|