| // 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) |