blob: 745c0a05682d4b5d295c112c1324c1713411b414 [file]
// Code generated by 'go run -C $GOROOT/src/simd/archsimd/_gen/midway'; DO NOT EDIT.
//go:build goexperiment.simd && (amd64 || wasm || arm64)
// Computed intersection of methods for supported SIMD architectures and vector widths
package simd
// internal SIMD marker.
type _simd struct {
_ [0]func(*_simd) *_simd
}
// Int8s represents a vector of 8-bit signed integers.
type Int8s struct {
_ _simd
atLeast [2]uint64 // the actual vector size may be larger.
}
// LoadInt8 loads a slice of int8 into an Int8s vector.
func LoadInt8s([]int8) Int8s
// LoadInt8Part loads a partial slice of int8 into an Int8s vector, returning the vector and the number of elements loaded.
func LoadInt8sPart([]int8) (Int8s, int)
// BroadcastInt8 fills the elements of a slice with its argument value.
func BroadcastInt8s(int8) Int8s
// Abs returns the element-wise absolute value of x.
func (x Int8s) Abs() Int8s
// Add returns the element-wise sum of x and y.
func (x Int8s) Add(y Int8s) Int8s
// AddSaturated returns the element-wise saturated sum of x and y.
func (x Int8s) AddSaturated(y Int8s) Int8s
// And returns the bitwise AND of x and y.
func (x Int8s) And(y Int8s) Int8s
// AndNot returns the bitwise AND NOT of x and y.
func (x Int8s) AndNot(y Int8s) Int8s
// ConvertToUint8 converts the vector elements to uint8.
func (x Int8s) ConvertToUint8() Uint8s
// Equal returns a mask indicating where x and y are equal.
func (x Int8s) Equal(y Int8s) Mask8s
// Greater returns a mask indicating where x is greater than y.
func (x Int8s) Greater(y Int8s) Mask8s
// GreaterEqual returns a mask indicating where x is greater than or equal to y.
func (x Int8s) GreaterEqual(y Int8s) Mask8s
// IfElse returns a new vector with elements from x where mask is true, and y where mask is false.
func (x Int8s) IfElse(mask Mask8s, y Int8s) Int8s
// Len returns the number of elements in the vector.
func (x Int8s) Len() int
// Less returns a mask indicating where x is less than y.
func (x Int8s) Less(y Int8s) Mask8s
// LessEqual returns a mask indicating where x is less than or equal to y.
func (x Int8s) LessEqual(y Int8s) Mask8s
// Masked returns a new vector with elements from x where mask is true, and zero elsewhere.
func (x Int8s) Masked(mask Mask8s) Int8s
// Max returns the element-wise maximum of x and y.
func (x Int8s) Max(y Int8s) Int8s
// Min returns the element-wise minimum of x and y.
func (x Int8s) Min(y Int8s) Int8s
// Mul returns the element-wise product of x and y.
func (x Int8s) Mul(y Int8s) Int8s
// Neg returns the element-wise negation of x.
func (x Int8s) Neg() Int8s
// Not returns the bitwise NOT of x.
func (x Int8s) Not() Int8s
// NotEqual returns a mask indicating where x and y are not equal.
func (x Int8s) NotEqual(y Int8s) Mask8s
// Or returns the bitwise OR of x and y.
func (x Int8s) Or(y Int8s) Int8s
// StoreSlice stores the vector elements into the slice s.
func (x Int8s) Store(s []int8)
// StoreSlicePart stores a partial vector into the slice s.
func (x Int8s) StorePart(s []int8) int
// String returns a string representation of the vector.
func (x Int8s) String() string
// Sub returns the element-wise difference of x and y.
func (x Int8s) Sub(y Int8s) Int8s
// SubSaturated returns the element-wise saturated difference of x and y.
func (x Int8s) SubSaturated(y Int8s) Int8s
// ToBits reinterprets the vector bits as an unsigned integer vector.
func (x Int8s) ToBits() Uint8s
// ToMask returns a mask representation of the vector.
func (x Int8s) ToMask() (to Mask8s)
// Xor returns the bitwise XOR of x and y.
func (x Int8s) Xor(y Int8s) Int8s
// Int16s represents a vector of 16-bit signed integers.
type Int16s struct {
_ _simd
atLeast [2]uint64 // the actual vector size may be larger.
}
// LoadInt16 loads a slice of int16 into an Int16s vector.
func LoadInt16s([]int16) Int16s
// LoadInt16Part loads a partial slice of int16 into an Int16s vector, returning the vector and the number of elements loaded.
func LoadInt16sPart([]int16) (Int16s, int)
// BroadcastInt16 fills the elements of a slice with its argument value.
func BroadcastInt16s(int16) Int16s
// Abs returns the element-wise absolute value of x.
func (x Int16s) Abs() Int16s
// Add returns the element-wise sum of x and y.
func (x Int16s) Add(y Int16s) Int16s
// AddSaturated returns the element-wise saturated sum of x and y.
func (x Int16s) AddSaturated(y Int16s) Int16s
// And returns the bitwise AND of x and y.
func (x Int16s) And(y Int16s) Int16s
// AndNot returns the bitwise AND NOT of x and y.
func (x Int16s) AndNot(y Int16s) Int16s
// ConvertToUint16 converts the vector elements to uint16.
func (x Int16s) ConvertToUint16() Uint16s
// Equal returns a mask indicating where x and y are equal.
func (x Int16s) Equal(y Int16s) Mask16s
// Greater returns a mask indicating where x is greater than y.
func (x Int16s) Greater(y Int16s) Mask16s
// GreaterEqual returns a mask indicating where x is greater than or equal to y.
func (x Int16s) GreaterEqual(y Int16s) Mask16s
// IfElse returns a new vector with elements from x where mask is true, and y where mask is false.
func (x Int16s) IfElse(mask Mask16s, y Int16s) Int16s
// Len returns the number of elements in the vector.
func (x Int16s) Len() int
// Less returns a mask indicating where x is less than y.
func (x Int16s) Less(y Int16s) Mask16s
// LessEqual returns a mask indicating where x is less than or equal to y.
func (x Int16s) LessEqual(y Int16s) Mask16s
// Masked returns a new vector with elements from x where mask is true, and zero elsewhere.
func (x Int16s) Masked(mask Mask16s) Int16s
// Max returns the element-wise maximum of x and y.
func (x Int16s) Max(y Int16s) Int16s
// Min returns the element-wise minimum of x and y.
func (x Int16s) Min(y Int16s) Int16s
// Mul returns the element-wise product of x and y.
func (x Int16s) Mul(y Int16s) Int16s
// Neg returns the element-wise negation of x.
func (x Int16s) Neg() Int16s
// Not returns the bitwise NOT of x.
func (x Int16s) Not() Int16s
// NotEqual returns a mask indicating where x and y are not equal.
func (x Int16s) NotEqual(y Int16s) Mask16s
// Or returns the bitwise OR of x and y.
func (x Int16s) Or(y Int16s) Int16s
// RotatesAllLeft rotates all elements left by y bits.
func (x Int16s) RotateAllLeft(dist uint64) Int16s
// RotatesAllRight rotates all elements right by y bits.
func (x Int16s) RotateAllRight(dist uint64) Int16s
// ShiftAllLeft shifts all elements left by y bits.
func (x Int16s) ShiftAllLeft(shift uint64) Int16s
// ShiftAllRight shifts all elements right by y bits.
func (x Int16s) ShiftAllRight(shift uint64) Int16s
// StoreSlice stores the vector elements into the slice s.
func (x Int16s) Store(s []int16)
// StoreSlicePart stores a partial vector into the slice s.
func (x Int16s) StorePart(s []int16) int
// String returns a string representation of the vector.
func (x Int16s) String() string
// Sub returns the element-wise difference of x and y.
func (x Int16s) Sub(y Int16s) Int16s
// SubSaturated returns the element-wise saturated difference of x and y.
func (x Int16s) SubSaturated(y Int16s) Int16s
// ToBits reinterprets the vector bits as an unsigned integer vector.
func (x Int16s) ToBits() Uint16s
// ToMask returns a mask representation of the vector.
func (x Int16s) ToMask() (to Mask16s)
// Xor returns the bitwise XOR of x and y.
func (x Int16s) Xor(y Int16s) Int16s
// Int32s represents a vector of 32-bit signed integers.
type Int32s struct {
_ _simd
atLeast [2]uint64 // the actual vector size may be larger.
}
// LoadInt32 loads a slice of int32 into an Int32s vector.
func LoadInt32s([]int32) Int32s
// LoadInt32Part loads a partial slice of int32 into an Int32s vector, returning the vector and the number of elements loaded.
func LoadInt32sPart([]int32) (Int32s, int)
// BroadcastInt32 fills the elements of a slice with its argument value.
func BroadcastInt32s(int32) Int32s
// Abs returns the element-wise absolute value of x.
func (x Int32s) Abs() Int32s
// Add returns the element-wise sum of x and y.
func (x Int32s) Add(y Int32s) Int32s
// And returns the bitwise AND of x and y.
func (x Int32s) And(y Int32s) Int32s
// AndNot returns the bitwise AND NOT of x and y.
func (x Int32s) AndNot(y Int32s) Int32s
// ConvertToFloat32 converts the vector elements to float32.
func (x Int32s) ConvertToFloat32() Float32s
// ConvertToUint32 converts the vector elements to uint32.
func (x Int32s) ConvertToUint32() Uint32s
// Equal returns a mask indicating where x and y are equal.
func (x Int32s) Equal(y Int32s) Mask32s
// Greater returns a mask indicating where x is greater than y.
func (x Int32s) Greater(y Int32s) Mask32s
// GreaterEqual returns a mask indicating where x is greater than or equal to y.
func (x Int32s) GreaterEqual(y Int32s) Mask32s
// IfElse returns a new vector with elements from x where mask is true, and y where mask is false.
func (x Int32s) IfElse(mask Mask32s, y Int32s) Int32s
// Len returns the number of elements in the vector.
func (x Int32s) Len() int
// Less returns a mask indicating where x is less than y.
func (x Int32s) Less(y Int32s) Mask32s
// LessEqual returns a mask indicating where x is less than or equal to y.
func (x Int32s) LessEqual(y Int32s) Mask32s
// Masked returns a new vector with elements from x where mask is true, and zero elsewhere.
func (x Int32s) Masked(mask Mask32s) Int32s
// Max returns the element-wise maximum of x and y.
func (x Int32s) Max(y Int32s) Int32s
// Min returns the element-wise minimum of x and y.
func (x Int32s) Min(y Int32s) Int32s
// Mul returns the element-wise product of x and y.
func (x Int32s) Mul(y Int32s) Int32s
// Neg returns the element-wise negation of x.
func (x Int32s) Neg() Int32s
// Not returns the bitwise NOT of x.
func (x Int32s) Not() Int32s
// NotEqual returns a mask indicating where x and y are not equal.
func (x Int32s) NotEqual(y Int32s) Mask32s
// Or returns the bitwise OR of x and y.
func (x Int32s) Or(y Int32s) Int32s
// RotatesAllLeft rotates all elements left by y bits.
func (x Int32s) RotateAllLeft(dist uint64) Int32s
// RotatesAllRight rotates all elements right by y bits.
func (x Int32s) RotateAllRight(dist uint64) Int32s
// ShiftAllLeft shifts all elements left by y bits.
func (x Int32s) ShiftAllLeft(shift uint64) Int32s
// ShiftAllRight shifts all elements right by y bits.
func (x Int32s) ShiftAllRight(shift uint64) Int32s
// StoreSlice stores the vector elements into the slice s.
func (x Int32s) Store(s []int32)
// StoreSlicePart stores a partial vector into the slice s.
func (x Int32s) StorePart(s []int32) int
// String returns a string representation of the vector.
func (x Int32s) String() string
// Sub returns the element-wise difference of x and y.
func (x Int32s) Sub(y Int32s) Int32s
// ToBits reinterprets the vector bits as an unsigned integer vector.
func (x Int32s) ToBits() Uint32s
// ToMask returns a mask representation of the vector.
func (x Int32s) ToMask() (to Mask32s)
// Xor returns the bitwise XOR of x and y.
func (x Int32s) Xor(y Int32s) Int32s
// Int64s represents a vector of 64-bit signed integers.
type Int64s struct {
_ _simd
atLeast [2]uint64 // the actual vector size may be larger.
}
// LoadInt64 loads a slice of int64 into an Int64s vector.
func LoadInt64s([]int64) Int64s
// LoadInt64Part loads a partial slice of int64 into an Int64s vector, returning the vector and the number of elements loaded.
func LoadInt64sPart([]int64) (Int64s, int)
// BroadcastInt64 fills the elements of a slice with its argument value.
func BroadcastInt64s(int64) Int64s
// Add returns the element-wise sum of x and y.
func (x Int64s) Add(y Int64s) Int64s
// And returns the bitwise AND of x and y.
func (x Int64s) And(y Int64s) Int64s
// AndNot returns the bitwise AND NOT of x and y.
func (x Int64s) AndNot(y Int64s) Int64s
// ConvertToUint64 converts the vector elements to uint64.
func (x Int64s) ConvertToUint64() Uint64s
// Equal returns a mask indicating where x and y are equal.
func (x Int64s) Equal(y Int64s) Mask64s
// Greater returns a mask indicating where x is greater than y.
func (x Int64s) Greater(y Int64s) Mask64s
// GreaterEqual returns a mask indicating where x is greater than or equal to y.
func (x Int64s) GreaterEqual(y Int64s) Mask64s
// IfElse returns a new vector with elements from x where mask is true, and y where mask is false.
func (x Int64s) IfElse(mask Mask64s, y Int64s) Int64s
// Len returns the number of elements in the vector.
func (x Int64s) Len() int
// Less returns a mask indicating where x is less than y.
func (x Int64s) Less(y Int64s) Mask64s
// LessEqual returns a mask indicating where x is less than or equal to y.
func (x Int64s) LessEqual(y Int64s) Mask64s
// Masked returns a new vector with elements from x where mask is true, and zero elsewhere.
func (x Int64s) Masked(mask Mask64s) Int64s
// Neg returns the element-wise negation of x.
func (x Int64s) Neg() Int64s
// Not returns the bitwise NOT of x.
func (x Int64s) Not() Int64s
// NotEqual returns a mask indicating where x and y are not equal.
func (x Int64s) NotEqual(y Int64s) Mask64s
// Or returns the bitwise OR of x and y.
func (x Int64s) Or(y Int64s) Int64s
// RotatesAllLeft rotates all elements left by y bits.
func (x Int64s) RotateAllLeft(dist uint64) Int64s
// RotatesAllRight rotates all elements right by y bits.
func (x Int64s) RotateAllRight(dist uint64) Int64s
// ShiftAllLeft shifts all elements left by y bits.
func (x Int64s) ShiftAllLeft(shift uint64) Int64s
// StoreSlice stores the vector elements into the slice s.
func (x Int64s) Store(s []int64)
// StoreSlicePart stores a partial vector into the slice s.
func (x Int64s) StorePart(s []int64) int
// String returns a string representation of the vector.
func (x Int64s) String() string
// Sub returns the element-wise difference of x and y.
func (x Int64s) Sub(y Int64s) Int64s
// ToBits reinterprets the vector bits as an unsigned integer vector.
func (x Int64s) ToBits() Uint64s
// ToMask returns a mask representation of the vector.
func (x Int64s) ToMask() (to Mask64s)
// Xor returns the bitwise XOR of x and y.
func (x Int64s) Xor(y Int64s) Int64s
// Uint8s represents a vector of 8-bit unsigned integers.
type Uint8s struct {
_ _simd
atLeast [2]uint64 // the actual vector size may be larger.
}
// LoadUint8 loads a slice of uint8 into an Uint8s vector.
func LoadUint8s([]uint8) Uint8s
// LoadUint8Part loads a partial slice of uint8 into an Uint8s vector, returning the vector and the number of elements loaded.
func LoadUint8sPart([]uint8) (Uint8s, int)
// BroadcastUint8 fills the elements of a slice with its argument value.
func BroadcastUint8s(uint8) Uint8s
// Add returns the element-wise sum of x and y.
func (x Uint8s) Add(y Uint8s) Uint8s
// AddSaturated returns the element-wise saturated sum of x and y.
func (x Uint8s) AddSaturated(y Uint8s) Uint8s
// And returns the bitwise AND of x and y.
func (x Uint8s) And(y Uint8s) Uint8s
// AndNot returns the bitwise AND NOT of x and y.
func (x Uint8s) AndNot(y Uint8s) Uint8s
// Average returns the element-wise average of x and y.
func (x Uint8s) Average(y Uint8s) Uint8s
// BitsToInt8 reinterprets the vector bits as an Int8s vector.
func (x Uint8s) BitsToInt8() Int8s
// ConvertToInt8 converts the vector elements to int8.
func (x Uint8s) ConvertToInt8() Int8s
// Equal returns a mask indicating where x and y are equal.
func (x Uint8s) Equal(y Uint8s) Mask8s
// IfElse returns a new vector with elements from x where mask is true, and y where mask is false.
func (x Uint8s) IfElse(mask Mask8s, y Uint8s) Uint8s
// Len returns the number of elements in the vector.
func (x Uint8s) Len() int
// Masked returns a new vector with elements from x where mask is true, and zero elsewhere.
func (x Uint8s) Masked(mask Mask8s) Uint8s
// Max returns the element-wise maximum of x and y.
func (x Uint8s) Max(y Uint8s) Uint8s
// Min returns the element-wise minimum of x and y.
func (x Uint8s) Min(y Uint8s) Uint8s
// Mul returns the element-wise product of x and y.
func (x Uint8s) Mul(y Uint8s) Uint8s
// Not returns the bitwise NOT of x.
func (x Uint8s) Not() Uint8s
// NotEqual returns a mask indicating where x and y are not equal.
func (x Uint8s) NotEqual(y Uint8s) Mask8s
// Or returns the bitwise OR of x and y.
func (x Uint8s) Or(y Uint8s) Uint8s
// ReshapeToUint16s reinterprets the vector bits as a Uint16s vector.
func (x Uint8s) ReshapeToUint16s() Uint16s
// ReshapeToUint32s reinterprets the vector bits as a Uint32s vector.
func (x Uint8s) ReshapeToUint32s() Uint32s
// ReshapeToUint64s reinterprets the vector bits as a Uint64s vector.
func (x Uint8s) ReshapeToUint64s() Uint64s
// StoreSlice stores the vector elements into the slice s.
func (x Uint8s) Store(s []uint8)
// StoreSlicePart stores a partial vector into the slice s.
func (x Uint8s) StorePart(s []uint8) int
// String returns a string representation of the vector.
func (x Uint8s) String() string
// Sub returns the element-wise difference of x and y.
func (x Uint8s) Sub(y Uint8s) Uint8s
// SubSaturated returns the element-wise saturated difference of x and y.
func (x Uint8s) SubSaturated(y Uint8s) Uint8s
// Xor returns the bitwise XOR of x and y.
func (x Uint8s) Xor(y Uint8s) Uint8s
// Uint16s represents a vector of 16-bit unsigned integers.
type Uint16s struct {
_ _simd
atLeast [2]uint64 // the actual vector size may be larger.
}
// LoadUint16 loads a slice of uint16 into an Uint16s vector.
func LoadUint16s([]uint16) Uint16s
// LoadUint16Part loads a partial slice of uint16 into an Uint16s vector, returning the vector and the number of elements loaded.
func LoadUint16sPart([]uint16) (Uint16s, int)
// BroadcastUint16 fills the elements of a slice with its argument value.
func BroadcastUint16s(uint16) Uint16s
// Add returns the element-wise sum of x and y.
func (x Uint16s) Add(y Uint16s) Uint16s
// AddSaturated returns the element-wise saturated sum of x and y.
func (x Uint16s) AddSaturated(y Uint16s) Uint16s
// And returns the bitwise AND of x and y.
func (x Uint16s) And(y Uint16s) Uint16s
// AndNot returns the bitwise AND NOT of x and y.
func (x Uint16s) AndNot(y Uint16s) Uint16s
// Average returns the element-wise average of x and y.
func (x Uint16s) Average(y Uint16s) Uint16s
// BitsToInt16 reinterprets the vector bits as an Int16s vector.
func (x Uint16s) BitsToInt16() Int16s
// ConvertToInt16 converts the vector elements to int16.
func (x Uint16s) ConvertToInt16() Int16s
// Equal returns a mask indicating where x and y are equal.
func (x Uint16s) Equal(y Uint16s) Mask16s
// Greater returns a mask indicating where x is greater than y.
func (x Uint16s) Greater(y Uint16s) Mask16s
// GreaterEqual returns a mask indicating where x is greater than or equal to y.
func (x Uint16s) GreaterEqual(y Uint16s) Mask16s
// IfElse returns a new vector with elements from x where mask is true, and y where mask is false.
func (x Uint16s) IfElse(mask Mask16s, y Uint16s) Uint16s
// Len returns the number of elements in the vector.
func (x Uint16s) Len() int
// Less returns a mask indicating where x is less than y.
func (x Uint16s) Less(y Uint16s) Mask16s
// LessEqual returns a mask indicating where x is less than or equal to y.
func (x Uint16s) LessEqual(y Uint16s) Mask16s
// Masked returns a new vector with elements from x where mask is true, and zero elsewhere.
func (x Uint16s) Masked(mask Mask16s) Uint16s
// Max returns the element-wise maximum of x and y.
func (x Uint16s) Max(y Uint16s) Uint16s
// Min returns the element-wise minimum of x and y.
func (x Uint16s) Min(y Uint16s) Uint16s
// Mul returns the element-wise product of x and y.
func (x Uint16s) Mul(y Uint16s) Uint16s
// Not returns the bitwise NOT of x.
func (x Uint16s) Not() Uint16s
// NotEqual returns a mask indicating where x and y are not equal.
func (x Uint16s) NotEqual(y Uint16s) Mask16s
// Or returns the bitwise OR of x and y.
func (x Uint16s) Or(y Uint16s) Uint16s
// ReshapeToUint32s reinterprets the vector bits as a Uint32s vector.
func (x Uint16s) ReshapeToUint32s() Uint32s
// ReshapeToUint64s reinterprets the vector bits as a Uint64s vector.
func (x Uint16s) ReshapeToUint64s() Uint64s
// ReshapeToUint8s reinterprets the vector bits as a Uint8s vector.
func (x Uint16s) ReshapeToUint8s() Uint8s
// RotatesAllLeft rotates all elements left by y bits.
func (x Uint16s) RotateAllLeft(dist uint64) Uint16s
// RotatesAllRight rotates all elements right by y bits.
func (x Uint16s) RotateAllRight(dist uint64) Uint16s
// ShiftAllLeft shifts all elements left by y bits.
func (x Uint16s) ShiftAllLeft(shift uint64) Uint16s
// ShiftAllRight shifts all elements right by y bits.
func (x Uint16s) ShiftAllRight(shift uint64) Uint16s
// StoreSlice stores the vector elements into the slice s.
func (x Uint16s) Store(s []uint16)
// StoreSlicePart stores a partial vector into the slice s.
func (x Uint16s) StorePart(s []uint16) int
// String returns a string representation of the vector.
func (x Uint16s) String() string
// Sub returns the element-wise difference of x and y.
func (x Uint16s) Sub(y Uint16s) Uint16s
// SubSaturated returns the element-wise saturated difference of x and y.
func (x Uint16s) SubSaturated(y Uint16s) Uint16s
// Xor returns the bitwise XOR of x and y.
func (x Uint16s) Xor(y Uint16s) Uint16s
// Uint32s represents a vector of 32-bit unsigned integers.
type Uint32s struct {
_ _simd
atLeast [2]uint64 // the actual vector size may be larger.
}
// LoadUint32 loads a slice of uint32 into an Uint32s vector.
func LoadUint32s([]uint32) Uint32s
// LoadUint32Part loads a partial slice of uint32 into an Uint32s vector, returning the vector and the number of elements loaded.
func LoadUint32sPart([]uint32) (Uint32s, int)
// BroadcastUint32 fills the elements of a slice with its argument value.
func BroadcastUint32s(uint32) Uint32s
// Add returns the element-wise sum of x and y.
func (x Uint32s) Add(y Uint32s) Uint32s
// And returns the bitwise AND of x and y.
func (x Uint32s) And(y Uint32s) Uint32s
// AndNot returns the bitwise AND NOT of x and y.
func (x Uint32s) AndNot(y Uint32s) Uint32s
// BitsToFloat32 reinterprets the vector bits as a Float32s vector.
func (x Uint32s) BitsToFloat32() Float32s
// BitsToInt32 reinterprets the vector bits as an Int32s vector.
func (x Uint32s) BitsToInt32() Int32s
// ConvertToInt32 converts the vector elements to int32.
func (x Uint32s) ConvertToInt32() Int32s
// Equal returns a mask indicating where x and y are equal.
func (x Uint32s) Equal(y Uint32s) Mask32s
// Greater returns a mask indicating where x is greater than y.
func (x Uint32s) Greater(y Uint32s) Mask32s
// GreaterEqual returns a mask indicating where x is greater than or equal to y.
func (x Uint32s) GreaterEqual(y Uint32s) Mask32s
// IfElse returns a new vector with elements from x where mask is true, and y where mask is false.
func (x Uint32s) IfElse(mask Mask32s, y Uint32s) Uint32s
// Len returns the number of elements in the vector.
func (x Uint32s) Len() int
// Less returns a mask indicating where x is less than y.
func (x Uint32s) Less(y Uint32s) Mask32s
// LessEqual returns a mask indicating where x is less than or equal to y.
func (x Uint32s) LessEqual(y Uint32s) Mask32s
// Masked returns a new vector with elements from x where mask is true, and zero elsewhere.
func (x Uint32s) Masked(mask Mask32s) Uint32s
// Max returns the element-wise maximum of x and y.
func (x Uint32s) Max(y Uint32s) Uint32s
// Min returns the element-wise minimum of x and y.
func (x Uint32s) Min(y Uint32s) Uint32s
// Mul returns the element-wise product of x and y.
func (x Uint32s) Mul(y Uint32s) Uint32s
// Not returns the bitwise NOT of x.
func (x Uint32s) Not() Uint32s
// NotEqual returns a mask indicating where x and y are not equal.
func (x Uint32s) NotEqual(y Uint32s) Mask32s
// Or returns the bitwise OR of x and y.
func (x Uint32s) Or(y Uint32s) Uint32s
// ReshapeToUint16s reinterprets the vector bits as a Uint16s vector.
func (x Uint32s) ReshapeToUint16s() Uint16s
// ReshapeToUint64s reinterprets the vector bits as a Uint64s vector.
func (x Uint32s) ReshapeToUint64s() Uint64s
// ReshapeToUint8s reinterprets the vector bits as a Uint8s vector.
func (x Uint32s) ReshapeToUint8s() Uint8s
// RotatesAllLeft rotates all elements left by y bits.
func (x Uint32s) RotateAllLeft(dist uint64) Uint32s
// RotatesAllRight rotates all elements right by y bits.
func (x Uint32s) RotateAllRight(dist uint64) Uint32s
// ShiftAllLeft shifts all elements left by y bits.
func (x Uint32s) ShiftAllLeft(shift uint64) Uint32s
// ShiftAllRight shifts all elements right by y bits.
func (x Uint32s) ShiftAllRight(shift uint64) Uint32s
// StoreSlice stores the vector elements into the slice s.
func (x Uint32s) Store(s []uint32)
// StoreSlicePart stores a partial vector into the slice s.
func (x Uint32s) StorePart(s []uint32) int
// String returns a string representation of the vector.
func (x Uint32s) String() string
// Sub returns the element-wise difference of x and y.
func (x Uint32s) Sub(y Uint32s) Uint32s
// Xor returns the bitwise XOR of x and y.
func (x Uint32s) Xor(y Uint32s) Uint32s
// Uint64s represents a vector of 64-bit unsigned integers.
type Uint64s struct {
_ _simd
atLeast [2]uint64 // the actual vector size may be larger.
}
// LoadUint64 loads a slice of uint64 into an Uint64s vector.
func LoadUint64s([]uint64) Uint64s
// LoadUint64Part loads a partial slice of uint64 into an Uint64s vector, returning the vector and the number of elements loaded.
func LoadUint64sPart([]uint64) (Uint64s, int)
// BroadcastUint64 fills the elements of a slice with its argument value.
func BroadcastUint64s(uint64) Uint64s
// Add returns the element-wise sum of x and y.
func (x Uint64s) Add(y Uint64s) Uint64s
// And returns the bitwise AND of x and y.
func (x Uint64s) And(y Uint64s) Uint64s
// AndNot returns the bitwise AND NOT of x and y.
func (x Uint64s) AndNot(y Uint64s) Uint64s
// BitsToFloat64 reinterprets the vector bits as a Float64s vector.
func (x Uint64s) BitsToFloat64() Float64s
// BitsToInt64 reinterprets the vector bits as an Int64s vector.
func (x Uint64s) BitsToInt64() Int64s
// CarrylessMultiplyOdd computes the carryless
// multiplications of selected even indexed elements of x and y.
// Each product is 128 bits wide and fills the corresponding
// even-odd pairs in the result.
//
// A carryless multiplication uses bitwise XOR instead of
// add-with-carry, for example (in base two):
//
// 11 * 11 = 11 * (10 ^ 1) = (11 * 10) ^ (11 * 1) = 110 ^ 11 = 101
//
// This also models multiplication of polynomials with coefficients
// from GF(2) -- 11 * 11 models (x+1)*(x+1) = x**2 + (1^1)x + 1 =
// x**2 + 0x + 1 = x**2 + 1 modeled by 101. (Note that "+" adds
// polynomial terms, but coefficients "add" with XOR.)"
func (x Uint64s) CarrylessMultiplyEven(y Uint64s) Uint64s
// CarrylessMultiplyOdd computes the carryless
// multiplications of selected odd indexed elements of x and y.
// Each product is 128 bits wide and fills the corresponding
// even-odd pairs in the result.
//
// A carryless multiplication uses bitwise XOR instead of
// add-with-carry, for example (in base two):
//
// 11 * 11 = 11 * (10 ^ 1) = (11 * 10) ^ (11 * 1) = 110 ^ 11 = 101
//
// This also models multiplication of polynomials with coefficients
// from GF(2) -- 11 * 11 models (x+1)*(x+1) = x**2 + (1^1)x + 1 =
// x**2 + 0x + 1 = x**2 + 1 modeled by 101. (Note that "+" adds
// polynomial terms, but coefficients "add" with XOR.)"
func (x Uint64s) CarrylessMultiplyOdd(y Uint64s) Uint64s
// ConvertToInt64 converts the vector elements to int64.
func (x Uint64s) ConvertToInt64() Int64s
// Equal returns a mask indicating where x and y are equal.
func (x Uint64s) Equal(y Uint64s) Mask64s
// Greater returns a mask indicating where x is greater than y.
func (x Uint64s) Greater(y Uint64s) Mask64s
// GreaterEqual returns a mask indicating where x is greater than or equal to y.
func (x Uint64s) GreaterEqual(y Uint64s) Mask64s
// IfElse returns a new vector with elements from x where mask is true, and y where mask is false.
func (x Uint64s) IfElse(mask Mask64s, y Uint64s) Uint64s
// Len returns the number of elements in the vector.
func (x Uint64s) Len() int
// Less returns a mask indicating where x is less than y.
func (x Uint64s) Less(y Uint64s) Mask64s
// LessEqual returns a mask indicating where x is less than or equal to y.
func (x Uint64s) LessEqual(y Uint64s) Mask64s
// Masked returns a new vector with elements from x where mask is true, and zero elsewhere.
func (x Uint64s) Masked(mask Mask64s) Uint64s
// Not returns the bitwise NOT of x.
func (x Uint64s) Not() Uint64s
// NotEqual returns a mask indicating where x and y are not equal.
func (x Uint64s) NotEqual(y Uint64s) Mask64s
// Or returns the bitwise OR of x and y.
func (x Uint64s) Or(y Uint64s) Uint64s
// ReshapeToUint16s reinterprets the vector bits as a Uint16s vector.
func (x Uint64s) ReshapeToUint16s() Uint16s
// ReshapeToUint32s reinterprets the vector bits as a Uint32s vector.
func (x Uint64s) ReshapeToUint32s() Uint32s
// ReshapeToUint8s reinterprets the vector bits as a Uint8s vector.
func (x Uint64s) ReshapeToUint8s() Uint8s
// RotatesAllLeft rotates all elements left by y bits.
func (x Uint64s) RotateAllLeft(dist uint64) Uint64s
// RotatesAllRight rotates all elements right by y bits.
func (x Uint64s) RotateAllRight(dist uint64) Uint64s
// ShiftAllLeft shifts all elements left by y bits.
func (x Uint64s) ShiftAllLeft(shift uint64) Uint64s
// ShiftAllRight shifts all elements right by y bits.
func (x Uint64s) ShiftAllRight(shift uint64) Uint64s
// StoreSlice stores the vector elements into the slice s.
func (x Uint64s) Store(s []uint64)
// StoreSlicePart stores a partial vector into the slice s.
func (x Uint64s) StorePart(s []uint64) int
// String returns a string representation of the vector.
func (x Uint64s) String() string
// Sub returns the element-wise difference of x and y.
func (x Uint64s) Sub(y Uint64s) Uint64s
// Xor returns the bitwise XOR of x and y.
func (x Uint64s) Xor(y Uint64s) Uint64s
// Float32s represents a vector of 32-bit floating-point numbers.
type Float32s struct {
_ _simd
atLeast [2]uint64 // the actual vector size may be larger.
}
// LoadFloat32 loads a slice of float32 into an Float32s vector.
func LoadFloat32s([]float32) Float32s
// LoadFloat32Part loads a partial slice of float32 into an Float32s vector, returning the vector and the number of elements loaded.
func LoadFloat32sPart([]float32) (Float32s, int)
// BroadcastFloat32 fills the elements of a slice with its argument value.
func BroadcastFloat32s(float32) Float32s
// Abs returns the element-wise absolute value of x.
func (x Float32s) Abs() Float32s
// Add returns the element-wise sum of x and y.
func (x Float32s) Add(y Float32s) Float32s
// ConvertToInt32 converts the vector elements to int32.
func (x Float32s) ConvertToInt32() Int32s
// Div returns the element-wise quotient of x and y.
func (x Float32s) Div(y Float32s) Float32s
// Equal returns a mask indicating where x and y are equal.
func (x Float32s) Equal(y Float32s) Mask32s
// Greater returns a mask indicating where x is greater than y.
func (x Float32s) Greater(y Float32s) Mask32s
// GreaterEqual returns a mask indicating where x is greater than or equal to y.
func (x Float32s) GreaterEqual(y Float32s) Mask32s
// IfElse returns a new vector with elements from x where mask is true, and y where mask is false.
func (x Float32s) IfElse(mask Mask32s, y Float32s) Float32s
// Len returns the number of elements in the vector.
func (x Float32s) Len() int
// Less returns a mask indicating where x is less than y.
func (x Float32s) Less(y Float32s) Mask32s
// LessEqual returns a mask indicating where x is less than or equal to y.
func (x Float32s) LessEqual(y Float32s) Mask32s
// Masked returns a new vector with elements from x where mask is true, and zero elsewhere.
func (x Float32s) Masked(mask Mask32s) Float32s
// Max returns the element-wise maximum of x and y.
func (x Float32s) Max(y Float32s) Float32s
// Min returns the element-wise minimum of x and y.
func (x Float32s) Min(y Float32s) Float32s
// Mul returns the element-wise product of x and y.
func (x Float32s) Mul(y Float32s) Float32s
// MulAdd returns x * y + z element-wise.
func (x Float32s) MulAdd(y Float32s, z Float32s) Float32s
// Neg returns the element-wise negation of x.
func (x Float32s) Neg() Float32s
// NotEqual returns a mask indicating where x and y are not equal.
func (x Float32s) NotEqual(y Float32s) Mask32s
// Sqrt returns the element-wise square root of x.
func (x Float32s) Sqrt() Float32s
// StoreSlice stores the vector elements into the slice s.
func (x Float32s) Store(s []float32)
// StoreSlicePart stores a partial vector into the slice s.
func (x Float32s) StorePart(s []float32) int
// String returns a string representation of the vector.
func (x Float32s) String() string
// Sub returns the element-wise difference of x and y.
func (x Float32s) Sub(y Float32s) Float32s
// ToBits reinterprets the vector bits as an unsigned integer vector.
func (x Float32s) ToBits() Uint32s
// Float64s represents a vector of 64-bit floating-point numbers.
type Float64s struct {
_ _simd
atLeast [2]uint64 // the actual vector size may be larger.
}
// LoadFloat64 loads a slice of float64 into an Float64s vector.
func LoadFloat64s([]float64) Float64s
// LoadFloat64Part loads a partial slice of float64 into an Float64s vector, returning the vector and the number of elements loaded.
func LoadFloat64sPart([]float64) (Float64s, int)
// BroadcastFloat64 fills the elements of a slice with its argument value.
func BroadcastFloat64s(float64) Float64s
// Abs returns the element-wise absolute value of x.
func (x Float64s) Abs() Float64s
// Add returns the element-wise sum of x and y.
func (x Float64s) Add(y Float64s) Float64s
// Div returns the element-wise quotient of x and y.
func (x Float64s) Div(y Float64s) Float64s
// Equal returns a mask indicating where x and y are equal.
func (x Float64s) Equal(y Float64s) Mask64s
// Greater returns a mask indicating where x is greater than y.
func (x Float64s) Greater(y Float64s) Mask64s
// GreaterEqual returns a mask indicating where x is greater than or equal to y.
func (x Float64s) GreaterEqual(y Float64s) Mask64s
// IfElse returns a new vector with elements from x where mask is true, and y where mask is false.
func (x Float64s) IfElse(mask Mask64s, y Float64s) Float64s
// Len returns the number of elements in the vector.
func (x Float64s) Len() int
// Less returns a mask indicating where x is less than y.
func (x Float64s) Less(y Float64s) Mask64s
// LessEqual returns a mask indicating where x is less than or equal to y.
func (x Float64s) LessEqual(y Float64s) Mask64s
// Masked returns a new vector with elements from x where mask is true, and zero elsewhere.
func (x Float64s) Masked(mask Mask64s) Float64s
// Max returns the element-wise maximum of x and y.
func (x Float64s) Max(y Float64s) Float64s
// Min returns the element-wise minimum of x and y.
func (x Float64s) Min(y Float64s) Float64s
// Mul returns the element-wise product of x and y.
func (x Float64s) Mul(y Float64s) Float64s
// MulAdd returns x * y + z element-wise.
func (x Float64s) MulAdd(y Float64s, z Float64s) Float64s
// Neg returns the element-wise negation of x.
func (x Float64s) Neg() Float64s
// NotEqual returns a mask indicating where x and y are not equal.
func (x Float64s) NotEqual(y Float64s) Mask64s
// Sqrt returns the element-wise square root of x.
func (x Float64s) Sqrt() Float64s
// StoreSlice stores the vector elements into the slice s.
func (x Float64s) Store(s []float64)
// StoreSlicePart stores a partial vector into the slice s.
func (x Float64s) StorePart(s []float64) int
// String returns a string representation of the vector.
func (x Float64s) String() string
// Sub returns the element-wise difference of x and y.
func (x Float64s) Sub(y Float64s) Float64s
// ToBits reinterprets the vector bits as an unsigned integer vector.
func (x Float64s) ToBits() Uint64s
// Mask8s represents a boolean mask for Int8s/Uint8s vectors.
type Mask8s struct {
_ _simd
atLeast [2]uint64 // the actual vector size may be larger.
}
// And returns the bitwise AND of x and y.
func (x Mask8s) And(y Mask8s) Mask8s
// Or returns the bitwise OR of x and y.
func (x Mask8s) Or(y Mask8s) Mask8s
// String returns a string representation of the vector.
func (x Mask8s) String() string
// ToInt8s converts the mask to an Int8s vector.
func (x Mask8s) ToInt8s() (to Int8s)
// Mask16s represents a boolean mask for Int16s/Uint16s vectors.
type Mask16s struct {
_ _simd
atLeast [2]uint64 // the actual vector size may be larger.
}
// And returns the bitwise AND of x and y.
func (x Mask16s) And(y Mask16s) Mask16s
// Or returns the bitwise OR of x and y.
func (x Mask16s) Or(y Mask16s) Mask16s
// String returns a string representation of the vector.
func (x Mask16s) String() string
// ToInt16s converts the mask to an Int16s vector.
func (x Mask16s) ToInt16s() (to Int16s)
// Mask32s represents a boolean mask for Int32s/Uint32s vectors.
type Mask32s struct {
_ _simd
atLeast [2]uint64 // the actual vector size may be larger.
}
// And returns the bitwise AND of x and y.
func (x Mask32s) And(y Mask32s) Mask32s
// Or returns the bitwise OR of x and y.
func (x Mask32s) Or(y Mask32s) Mask32s
// String returns a string representation of the vector.
func (x Mask32s) String() string
// ToInt32s converts the mask to an Int32s vector.
func (x Mask32s) ToInt32s() (to Int32s)
// Mask64s represents a boolean mask for Int64s/Uint64s vectors.
type Mask64s struct {
_ _simd
atLeast [2]uint64 // the actual vector size may be larger.
}
// And returns the bitwise AND of x and y.
func (x Mask64s) And(y Mask64s) Mask64s
// Or returns the bitwise OR of x and y.
func (x Mask64s) Or(y Mask64s) Mask64s
// String returns a string representation of the vector.
func (x Mask64s) String() string
// ToInt64s converts the mask to an Int64s vector.
func (x Mask64s) ToInt64s() (to Int64s)