mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
Lots of handwritten/stenciled code is now untouched by human hands For certain combinations of operation-arity and type, there is an option to use a flaky version of a test helper, that only requires "close enough". For example: testFloat32x4TernaryFlaky(t, simd.Float32x4.FusedMultiplyAdd, fmaSlice[float32], 0.001) Some of the quirkier operations have their behavior captured in their test-simulation, for example, ceilResidue regards infinities as integers (therefore their residue is zero). Change-Id: I8242914e5ab399edbe226da8586988441cffa83f Reviewed-on: https://go-review.googlesource.com/c/go/+/690575 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
217 lines
7.7 KiB
Go
217 lines
7.7 KiB
Go
// Code generated by 'go run genfiles.go'; DO NOT EDIT.
|
|
|
|
//go:build goexperiment.simd
|
|
|
|
package simd
|
|
|
|
import "unsafe"
|
|
|
|
// paInt8x16 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paInt8x16(s []int8) *[16]int8 {
|
|
return (*[16]int8)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paInt16x8 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paInt16x8(s []int16) *[8]int16 {
|
|
return (*[8]int16)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paInt32x4 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paInt32x4(s []int32) *[4]int32 {
|
|
return (*[4]int32)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paInt64x2 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paInt64x2(s []int64) *[2]int64 {
|
|
return (*[2]int64)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paUint8x16 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paUint8x16(s []uint8) *[16]uint8 {
|
|
return (*[16]uint8)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paUint16x8 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paUint16x8(s []uint16) *[8]uint16 {
|
|
return (*[8]uint16)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paUint32x4 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paUint32x4(s []uint32) *[4]uint32 {
|
|
return (*[4]uint32)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paUint64x2 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paUint64x2(s []uint64) *[2]uint64 {
|
|
return (*[2]uint64)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paFloat32x4 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paFloat32x4(s []float32) *[4]float32 {
|
|
return (*[4]float32)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paFloat64x2 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paFloat64x2(s []float64) *[2]float64 {
|
|
return (*[2]float64)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paInt8x32 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paInt8x32(s []int8) *[32]int8 {
|
|
return (*[32]int8)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paInt16x16 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paInt16x16(s []int16) *[16]int16 {
|
|
return (*[16]int16)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paInt32x8 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paInt32x8(s []int32) *[8]int32 {
|
|
return (*[8]int32)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paInt64x4 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paInt64x4(s []int64) *[4]int64 {
|
|
return (*[4]int64)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paUint8x32 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paUint8x32(s []uint8) *[32]uint8 {
|
|
return (*[32]uint8)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paUint16x16 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paUint16x16(s []uint16) *[16]uint16 {
|
|
return (*[16]uint16)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paUint32x8 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paUint32x8(s []uint32) *[8]uint32 {
|
|
return (*[8]uint32)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paUint64x4 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paUint64x4(s []uint64) *[4]uint64 {
|
|
return (*[4]uint64)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paFloat32x8 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paFloat32x8(s []float32) *[8]float32 {
|
|
return (*[8]float32)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paFloat64x4 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paFloat64x4(s []float64) *[4]float64 {
|
|
return (*[4]float64)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paInt8x64 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paInt8x64(s []int8) *[64]int8 {
|
|
return (*[64]int8)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paInt16x32 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paInt16x32(s []int16) *[32]int16 {
|
|
return (*[32]int16)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paInt32x16 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paInt32x16(s []int32) *[16]int32 {
|
|
return (*[16]int32)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paInt64x8 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paInt64x8(s []int64) *[8]int64 {
|
|
return (*[8]int64)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paUint8x64 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paUint8x64(s []uint8) *[64]uint8 {
|
|
return (*[64]uint8)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paUint16x32 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paUint16x32(s []uint16) *[32]uint16 {
|
|
return (*[32]uint16)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paUint32x16 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paUint32x16(s []uint32) *[16]uint32 {
|
|
return (*[16]uint32)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paUint64x8 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paUint64x8(s []uint64) *[8]uint64 {
|
|
return (*[8]uint64)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paFloat32x16 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paFloat32x16(s []float32) *[16]float32 {
|
|
return (*[16]float32)(unsafe.Pointer(&s[0]))
|
|
}
|
|
|
|
// paFloat64x8 returns a type-unsafe pointer to array that can
|
|
// only be used with partial load/store operations that only
|
|
// access the known-safe portions of the array.
|
|
func paFloat64x8(s []float64) *[8]float64 {
|
|
return (*[8]float64)(unsafe.Pointer(&s[0]))
|
|
}
|