// Code generated by 'tmplgen'; DO NOT EDIT. //go:build goexperiment.simd package archsimd // BroadcastInt8x16 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX2 func BroadcastInt8x16(x int8) Int8x16 { var z Int8x16 return z.SetElem(0, x).broadcast1To16() } // BroadcastInt16x8 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX2 func BroadcastInt16x8(x int16) Int16x8 { var z Int16x8 return z.SetElem(0, x).broadcast1To8() } // BroadcastInt32x4 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX2 func BroadcastInt32x4(x int32) Int32x4 { var z Int32x4 return z.SetElem(0, x).broadcast1To4() } // BroadcastInt64x2 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX2 func BroadcastInt64x2(x int64) Int64x2 { var z Int64x2 return z.SetElem(0, x).broadcast1To2() } // BroadcastUint8x16 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX2 func BroadcastUint8x16(x uint8) Uint8x16 { var z Uint8x16 return z.SetElem(0, x).broadcast1To16() } // BroadcastUint16x8 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX2 func BroadcastUint16x8(x uint16) Uint16x8 { var z Uint16x8 return z.SetElem(0, x).broadcast1To8() } // BroadcastUint32x4 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX2 func BroadcastUint32x4(x uint32) Uint32x4 { var z Uint32x4 return z.SetElem(0, x).broadcast1To4() } // BroadcastUint64x2 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX2 func BroadcastUint64x2(x uint64) Uint64x2 { var z Uint64x2 return z.SetElem(0, x).broadcast1To2() } // BroadcastFloat32x4 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX2 func BroadcastFloat32x4(x float32) Float32x4 { var z Float32x4 return z.SetElem(0, x).broadcast1To4() } // BroadcastFloat64x2 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX2 func BroadcastFloat64x2(x float64) Float64x2 { var z Float64x2 return z.SetElem(0, x).broadcast1To2() } // BroadcastInt8x32 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX2 func BroadcastInt8x32(x int8) Int8x32 { var z Int8x16 return z.SetElem(0, x).broadcast1To32() } // BroadcastInt16x16 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX2 func BroadcastInt16x16(x int16) Int16x16 { var z Int16x8 return z.SetElem(0, x).broadcast1To16() } // BroadcastInt32x8 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX2 func BroadcastInt32x8(x int32) Int32x8 { var z Int32x4 return z.SetElem(0, x).broadcast1To8() } // BroadcastInt64x4 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX2 func BroadcastInt64x4(x int64) Int64x4 { var z Int64x2 return z.SetElem(0, x).broadcast1To4() } // BroadcastUint8x32 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX2 func BroadcastUint8x32(x uint8) Uint8x32 { var z Uint8x16 return z.SetElem(0, x).broadcast1To32() } // BroadcastUint16x16 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX2 func BroadcastUint16x16(x uint16) Uint16x16 { var z Uint16x8 return z.SetElem(0, x).broadcast1To16() } // BroadcastUint32x8 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX2 func BroadcastUint32x8(x uint32) Uint32x8 { var z Uint32x4 return z.SetElem(0, x).broadcast1To8() } // BroadcastUint64x4 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX2 func BroadcastUint64x4(x uint64) Uint64x4 { var z Uint64x2 return z.SetElem(0, x).broadcast1To4() } // BroadcastFloat32x8 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX2 func BroadcastFloat32x8(x float32) Float32x8 { var z Float32x4 return z.SetElem(0, x).broadcast1To8() } // BroadcastFloat64x4 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX2 func BroadcastFloat64x4(x float64) Float64x4 { var z Float64x2 return z.SetElem(0, x).broadcast1To4() } // BroadcastInt8x64 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX512BW func BroadcastInt8x64(x int8) Int8x64 { var z Int8x16 return z.SetElem(0, x).broadcast1To64() } // BroadcastInt16x32 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX512BW func BroadcastInt16x32(x int16) Int16x32 { var z Int16x8 return z.SetElem(0, x).broadcast1To32() } // BroadcastInt32x16 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX512F func BroadcastInt32x16(x int32) Int32x16 { var z Int32x4 return z.SetElem(0, x).broadcast1To16() } // BroadcastInt64x8 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX512F func BroadcastInt64x8(x int64) Int64x8 { var z Int64x2 return z.SetElem(0, x).broadcast1To8() } // BroadcastUint8x64 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX512BW func BroadcastUint8x64(x uint8) Uint8x64 { var z Uint8x16 return z.SetElem(0, x).broadcast1To64() } // BroadcastUint16x32 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX512BW func BroadcastUint16x32(x uint16) Uint16x32 { var z Uint16x8 return z.SetElem(0, x).broadcast1To32() } // BroadcastUint32x16 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX512F func BroadcastUint32x16(x uint32) Uint32x16 { var z Uint32x4 return z.SetElem(0, x).broadcast1To16() } // BroadcastUint64x8 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX512F func BroadcastUint64x8(x uint64) Uint64x8 { var z Uint64x2 return z.SetElem(0, x).broadcast1To8() } // BroadcastFloat32x16 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX512F func BroadcastFloat32x16(x float32) Float32x16 { var z Float32x4 return z.SetElem(0, x).broadcast1To16() } // BroadcastFloat64x8 returns a vector with the input // x assigned to all elements of the output. // // Emulated, CPU Feature: AVX512F func BroadcastFloat64x8(x float64) Float64x8 { var z Float64x2 return z.SetElem(0, x).broadcast1To8() } // ToMask returns a mask whose i'th element is set if x[i] is non-zero. func (from Int8x16) ToMask() (to Mask8x16) { return from.NotEqual(Int8x16{}) } // ToMask returns a mask whose i'th element is set if x[i] is non-zero. func (from Int16x8) ToMask() (to Mask16x8) { return from.NotEqual(Int16x8{}) } // ToMask returns a mask whose i'th element is set if x[i] is non-zero. func (from Int32x4) ToMask() (to Mask32x4) { return from.NotEqual(Int32x4{}) } // ToMask returns a mask whose i'th element is set if x[i] is non-zero. func (from Int64x2) ToMask() (to Mask64x2) { return from.NotEqual(Int64x2{}) } // ToMask returns a mask whose i'th element is set if x[i] is non-zero. func (from Int8x32) ToMask() (to Mask8x32) { return from.NotEqual(Int8x32{}) } // ToMask returns a mask whose i'th element is set if x[i] is non-zero. func (from Int16x16) ToMask() (to Mask16x16) { return from.NotEqual(Int16x16{}) } // ToMask returns a mask whose i'th element is set if x[i] is non-zero. func (from Int32x8) ToMask() (to Mask32x8) { return from.NotEqual(Int32x8{}) } // ToMask returns a mask whose i'th element is set if x[i] is non-zero. func (from Int64x4) ToMask() (to Mask64x4) { return from.NotEqual(Int64x4{}) } // ToMask returns a mask whose i'th element is set if x[i] is non-zero. func (from Int8x64) ToMask() (to Mask8x64) { return from.NotEqual(Int8x64{}) } // ToMask returns a mask whose i'th element is set if x[i] is non-zero. func (from Int16x32) ToMask() (to Mask16x32) { return from.NotEqual(Int16x32{}) } // ToMask returns a mask whose i'th element is set if x[i] is non-zero. func (from Int32x16) ToMask() (to Mask32x16) { return from.NotEqual(Int32x16{}) } // ToMask returns a mask whose i'th element is set if x[i] is non-zero. func (from Int64x8) ToMask() (to Mask64x8) { return from.NotEqual(Int64x8{}) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX func (x Int8x16) Not() Int8x16 { return x.Xor(x.Equal(x).ToInt8x16()) } // Neg returns the element-wise negation of x. // // Emulated, CPU Feature: AVX func (x Int8x16) Neg() Int8x16 { var zero Int8x16 return zero.Sub(x) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX func (x Int16x8) Not() Int16x8 { return x.Xor(x.Equal(x).ToInt16x8()) } // Neg returns the element-wise negation of x. // // Emulated, CPU Feature: AVX func (x Int16x8) Neg() Int16x8 { var zero Int16x8 return zero.Sub(x) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX func (x Int32x4) Not() Int32x4 { return x.Xor(x.Equal(x).ToInt32x4()) } // Neg returns the element-wise negation of x. // // Emulated, CPU Feature: AVX func (x Int32x4) Neg() Int32x4 { var zero Int32x4 return zero.Sub(x) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX func (x Int64x2) Not() Int64x2 { return x.Xor(x.Equal(x).ToInt64x2()) } // Neg returns the element-wise negation of x. // // Emulated, CPU Feature: AVX func (x Int64x2) Neg() Int64x2 { var zero Int64x2 return zero.Sub(x) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX2 func (x Int8x32) Not() Int8x32 { return x.Xor(x.Equal(x).ToInt8x32()) } // Neg returns the element-wise negation of x. // // Emulated, CPU Feature: AVX2 func (x Int8x32) Neg() Int8x32 { var zero Int8x32 return zero.Sub(x) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX2 func (x Int16x16) Not() Int16x16 { return x.Xor(x.Equal(x).ToInt16x16()) } // Neg returns the element-wise negation of x. // // Emulated, CPU Feature: AVX2 func (x Int16x16) Neg() Int16x16 { var zero Int16x16 return zero.Sub(x) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX2 func (x Int32x8) Not() Int32x8 { return x.Xor(x.Equal(x).ToInt32x8()) } // Neg returns the element-wise negation of x. // // Emulated, CPU Feature: AVX2 func (x Int32x8) Neg() Int32x8 { var zero Int32x8 return zero.Sub(x) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX2 func (x Int64x4) Not() Int64x4 { return x.Xor(x.Equal(x).ToInt64x4()) } // Neg returns the element-wise negation of x. // // Emulated, CPU Feature: AVX2 func (x Int64x4) Neg() Int64x4 { var zero Int64x4 return zero.Sub(x) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX512 func (x Int8x64) Not() Int8x64 { return x.Xor(x.Equal(x).ToInt8x64()) } // Neg returns the element-wise negation of x. // // Emulated, CPU Feature: AVX512 func (x Int8x64) Neg() Int8x64 { var zero Int8x64 return zero.Sub(x) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX512 func (x Int16x32) Not() Int16x32 { return x.Xor(x.Equal(x).ToInt16x32()) } // Neg returns the element-wise negation of x. // // Emulated, CPU Feature: AVX512 func (x Int16x32) Neg() Int16x32 { var zero Int16x32 return zero.Sub(x) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX512 func (x Int32x16) Not() Int32x16 { return x.Xor(x.Equal(x).ToInt32x16()) } // Neg returns the element-wise negation of x. // // Emulated, CPU Feature: AVX512 func (x Int32x16) Neg() Int32x16 { var zero Int32x16 return zero.Sub(x) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX512 func (x Int64x8) Not() Int64x8 { return x.Xor(x.Equal(x).ToInt64x8()) } // Neg returns the element-wise negation of x. // // Emulated, CPU Feature: AVX512 func (x Int64x8) Neg() Int64x8 { var zero Int64x8 return zero.Sub(x) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX func (x Uint8x16) Not() Uint8x16 { return x.Xor(x.Equal(x).ToInt8x16().AsUint8x16()) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX func (x Uint16x8) Not() Uint16x8 { return x.Xor(x.Equal(x).ToInt16x8().AsUint16x8()) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX func (x Uint32x4) Not() Uint32x4 { return x.Xor(x.Equal(x).ToInt32x4().AsUint32x4()) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX func (x Uint64x2) Not() Uint64x2 { return x.Xor(x.Equal(x).ToInt64x2().AsUint64x2()) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX2 func (x Uint8x32) Not() Uint8x32 { return x.Xor(x.Equal(x).ToInt8x32().AsUint8x32()) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX2 func (x Uint16x16) Not() Uint16x16 { return x.Xor(x.Equal(x).ToInt16x16().AsUint16x16()) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX2 func (x Uint32x8) Not() Uint32x8 { return x.Xor(x.Equal(x).ToInt32x8().AsUint32x8()) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX2 func (x Uint64x4) Not() Uint64x4 { return x.Xor(x.Equal(x).ToInt64x4().AsUint64x4()) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX512 func (x Uint8x64) Not() Uint8x64 { return x.Xor(x.Equal(x).ToInt8x64().AsUint8x64()) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX512 func (x Uint16x32) Not() Uint16x32 { return x.Xor(x.Equal(x).ToInt16x32().AsUint16x32()) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX512 func (x Uint32x16) Not() Uint32x16 { return x.Xor(x.Equal(x).ToInt32x16().AsUint32x16()) } // Not returns the bitwise complement of x. // // Emulated, CPU Feature: AVX512 func (x Uint64x8) Not() Uint64x8 { return x.Xor(x.Equal(x).ToInt64x8().AsUint64x8()) } // String returns a string representation of SIMD vector x. func (x Int8x16) String() string { var s [16]int8 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Int16x8) String() string { var s [8]int16 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Int32x4) String() string { var s [4]int32 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Int64x2) String() string { var s [2]int64 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Uint8x16) String() string { var s [16]uint8 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Uint16x8) String() string { var s [8]uint16 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Uint32x4) String() string { var s [4]uint32 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Uint64x2) String() string { var s [2]uint64 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Float32x4) String() string { var s [4]float32 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Float64x2) String() string { var s [2]float64 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Int8x32) String() string { var s [32]int8 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Int16x16) String() string { var s [16]int16 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Int32x8) String() string { var s [8]int32 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Int64x4) String() string { var s [4]int64 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Uint8x32) String() string { var s [32]uint8 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Uint16x16) String() string { var s [16]uint16 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Uint32x8) String() string { var s [8]uint32 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Uint64x4) String() string { var s [4]uint64 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Float32x8) String() string { var s [8]float32 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Float64x4) String() string { var s [4]float64 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Int8x64) String() string { var s [64]int8 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Int16x32) String() string { var s [32]int16 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Int32x16) String() string { var s [16]int32 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Int64x8) String() string { var s [8]int64 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Uint8x64) String() string { var s [64]uint8 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Uint16x32) String() string { var s [32]uint16 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Uint32x16) String() string { var s [16]uint32 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Uint64x8) String() string { var s [8]uint64 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Float32x16) String() string { var s [16]float32 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD vector x. func (x Float64x8) String() string { var s [8]float64 x.StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD mask x. func (x Mask8x16) String() string { var s [16]int8 x.ToInt8x16().Neg().StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD mask x. func (x Mask16x8) String() string { var s [8]int16 x.ToInt16x8().Neg().StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD mask x. func (x Mask32x4) String() string { var s [4]int32 x.ToInt32x4().Neg().StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD mask x. func (x Mask64x2) String() string { var s [2]int64 x.ToInt64x2().Neg().StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD mask x. func (x Mask8x32) String() string { var s [32]int8 x.ToInt8x32().Neg().StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD mask x. func (x Mask16x16) String() string { var s [16]int16 x.ToInt16x16().Neg().StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD mask x. func (x Mask32x8) String() string { var s [8]int32 x.ToInt32x8().Neg().StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD mask x. func (x Mask64x4) String() string { var s [4]int64 x.ToInt64x4().Neg().StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD mask x. func (x Mask8x64) String() string { var s [64]int8 x.ToInt8x64().Neg().StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD mask x. func (x Mask16x32) String() string { var s [32]int16 x.ToInt16x32().Neg().StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD mask x. func (x Mask32x16) String() string { var s [16]int32 x.ToInt32x16().Neg().StoreArray(&s) return sliceToString(s[:]) } // String returns a string representation of SIMD mask x. func (x Mask64x8) String() string { var s [8]int64 x.ToInt64x8().Neg().StoreArray(&s) return sliceToString(s[:]) } // RotateAllLeft rotates all elements left by the specified amount // // Emulated func (x Int16x8) RotateAllLeft(dist uint64) Int16x8 { dist = dist & (16 - 1) ndist := 16 - dist return x.ToBits().ShiftAllLeft(dist).Or(x.ToBits().ShiftAllRight(ndist)).BitsToInt16() } // RotateAllRight rotates all elements right by the specified amount // // Emulated func (x Int16x8) RotateAllRight(dist uint64) Int16x8 { dist = dist & (16 - 1) ndist := 16 - dist return x.ToBits().ShiftAllLeft(ndist).Or(x.ToBits().ShiftAllRight(dist)).BitsToInt16() } // RotateAllLeft rotates all elements left by the specified amount // // Emulated func (x Int32x4) RotateAllLeft(dist uint64) Int32x4 { dist = dist & (32 - 1) ndist := 32 - dist return x.ToBits().ShiftAllLeft(dist).Or(x.ToBits().ShiftAllRight(ndist)).BitsToInt32() } // RotateAllRight rotates all elements right by the specified amount // // Emulated func (x Int32x4) RotateAllRight(dist uint64) Int32x4 { dist = dist & (32 - 1) ndist := 32 - dist return x.ToBits().ShiftAllLeft(ndist).Or(x.ToBits().ShiftAllRight(dist)).BitsToInt32() } // RotateAllLeft rotates all elements left by the specified amount // // Emulated func (x Int64x2) RotateAllLeft(dist uint64) Int64x2 { dist = dist & (64 - 1) ndist := 64 - dist return x.ToBits().ShiftAllLeft(dist).Or(x.ToBits().ShiftAllRight(ndist)).BitsToInt64() } // RotateAllRight rotates all elements right by the specified amount // // Emulated func (x Int64x2) RotateAllRight(dist uint64) Int64x2 { dist = dist & (64 - 1) ndist := 64 - dist return x.ToBits().ShiftAllLeft(ndist).Or(x.ToBits().ShiftAllRight(dist)).BitsToInt64() } // RotateAllLeft rotates all elements left by the specified amount // // Emulated func (x Int16x16) RotateAllLeft(dist uint64) Int16x16 { dist = dist & (16 - 1) ndist := 16 - dist return x.ToBits().ShiftAllLeft(dist).Or(x.ToBits().ShiftAllRight(ndist)).BitsToInt16() } // RotateAllRight rotates all elements right by the specified amount // // Emulated func (x Int16x16) RotateAllRight(dist uint64) Int16x16 { dist = dist & (16 - 1) ndist := 16 - dist return x.ToBits().ShiftAllLeft(ndist).Or(x.ToBits().ShiftAllRight(dist)).BitsToInt16() } // RotateAllLeft rotates all elements left by the specified amount // // Emulated func (x Int32x8) RotateAllLeft(dist uint64) Int32x8 { dist = dist & (32 - 1) ndist := 32 - dist return x.ToBits().ShiftAllLeft(dist).Or(x.ToBits().ShiftAllRight(ndist)).BitsToInt32() } // RotateAllRight rotates all elements right by the specified amount // // Emulated func (x Int32x8) RotateAllRight(dist uint64) Int32x8 { dist = dist & (32 - 1) ndist := 32 - dist return x.ToBits().ShiftAllLeft(ndist).Or(x.ToBits().ShiftAllRight(dist)).BitsToInt32() } // RotateAllLeft rotates all elements left by the specified amount // // Emulated func (x Int64x4) RotateAllLeft(dist uint64) Int64x4 { dist = dist & (64 - 1) ndist := 64 - dist return x.ToBits().ShiftAllLeft(dist).Or(x.ToBits().ShiftAllRight(ndist)).BitsToInt64() } // RotateAllRight rotates all elements right by the specified amount // // Emulated func (x Int64x4) RotateAllRight(dist uint64) Int64x4 { dist = dist & (64 - 1) ndist := 64 - dist return x.ToBits().ShiftAllLeft(ndist).Or(x.ToBits().ShiftAllRight(dist)).BitsToInt64() } // RotateAllLeft rotates all elements left by the specified amount // // Emulated func (x Int16x32) RotateAllLeft(dist uint64) Int16x32 { dist = dist & (16 - 1) ndist := 16 - dist return x.ToBits().ShiftAllLeft(dist).Or(x.ToBits().ShiftAllRight(ndist)).BitsToInt16() } // RotateAllRight rotates all elements right by the specified amount // // Emulated func (x Int16x32) RotateAllRight(dist uint64) Int16x32 { dist = dist & (16 - 1) ndist := 16 - dist return x.ToBits().ShiftAllLeft(ndist).Or(x.ToBits().ShiftAllRight(dist)).BitsToInt16() } // RotateAllLeft rotates all elements left by the specified amount // // Emulated func (x Int32x16) RotateAllLeft(dist uint64) Int32x16 { dist = dist & (32 - 1) ndist := 32 - dist return x.ToBits().ShiftAllLeft(dist).Or(x.ToBits().ShiftAllRight(ndist)).BitsToInt32() } // RotateAllRight rotates all elements right by the specified amount // // Emulated func (x Int32x16) RotateAllRight(dist uint64) Int32x16 { dist = dist & (32 - 1) ndist := 32 - dist return x.ToBits().ShiftAllLeft(ndist).Or(x.ToBits().ShiftAllRight(dist)).BitsToInt32() } // RotateAllLeft rotates all elements left by the specified amount // // Emulated func (x Int64x8) RotateAllLeft(dist uint64) Int64x8 { dist = dist & (64 - 1) ndist := 64 - dist return x.ToBits().ShiftAllLeft(dist).Or(x.ToBits().ShiftAllRight(ndist)).BitsToInt64() } // RotateAllRight rotates all elements right by the specified amount // // Emulated func (x Int64x8) RotateAllRight(dist uint64) Int64x8 { dist = dist & (64 - 1) ndist := 64 - dist return x.ToBits().ShiftAllLeft(ndist).Or(x.ToBits().ShiftAllRight(dist)).BitsToInt64() } // RotateAllLeft rotates all elements left by the specified amount // // Emulated func (x Uint16x8) RotateAllLeft(dist uint64) Uint16x8 { dist = dist & (16 - 1) ndist := 16 - dist return x.ShiftAllLeft(dist).Or(x.ShiftAllRight(ndist)) } // RotateAllRight rotates all elements right by the specified amount // // Emulated func (x Uint16x8) RotateAllRight(dist uint64) Uint16x8 { dist = dist & (16 - 1) ndist := 16 - dist return x.ShiftAllLeft(ndist).Or(x.ShiftAllRight(dist)) } // RotateAllLeft rotates all elements left by the specified amount // // Emulated func (x Uint32x4) RotateAllLeft(dist uint64) Uint32x4 { dist = dist & (32 - 1) ndist := 32 - dist return x.ShiftAllLeft(dist).Or(x.ShiftAllRight(ndist)) } // RotateAllRight rotates all elements right by the specified amount // // Emulated func (x Uint32x4) RotateAllRight(dist uint64) Uint32x4 { dist = dist & (32 - 1) ndist := 32 - dist return x.ShiftAllLeft(ndist).Or(x.ShiftAllRight(dist)) } // RotateAllLeft rotates all elements left by the specified amount // // Emulated func (x Uint64x2) RotateAllLeft(dist uint64) Uint64x2 { dist = dist & (64 - 1) ndist := 64 - dist return x.ShiftAllLeft(dist).Or(x.ShiftAllRight(ndist)) } // RotateAllRight rotates all elements right by the specified amount // // Emulated func (x Uint64x2) RotateAllRight(dist uint64) Uint64x2 { dist = dist & (64 - 1) ndist := 64 - dist return x.ShiftAllLeft(ndist).Or(x.ShiftAllRight(dist)) } // RotateAllLeft rotates all elements left by the specified amount // // Emulated func (x Uint16x16) RotateAllLeft(dist uint64) Uint16x16 { dist = dist & (16 - 1) ndist := 16 - dist return x.ShiftAllLeft(dist).Or(x.ShiftAllRight(ndist)) } // RotateAllRight rotates all elements right by the specified amount // // Emulated func (x Uint16x16) RotateAllRight(dist uint64) Uint16x16 { dist = dist & (16 - 1) ndist := 16 - dist return x.ShiftAllLeft(ndist).Or(x.ShiftAllRight(dist)) } // RotateAllLeft rotates all elements left by the specified amount // // Emulated func (x Uint32x8) RotateAllLeft(dist uint64) Uint32x8 { dist = dist & (32 - 1) ndist := 32 - dist return x.ShiftAllLeft(dist).Or(x.ShiftAllRight(ndist)) } // RotateAllRight rotates all elements right by the specified amount // // Emulated func (x Uint32x8) RotateAllRight(dist uint64) Uint32x8 { dist = dist & (32 - 1) ndist := 32 - dist return x.ShiftAllLeft(ndist).Or(x.ShiftAllRight(dist)) } // RotateAllLeft rotates all elements left by the specified amount // // Emulated func (x Uint64x4) RotateAllLeft(dist uint64) Uint64x4 { dist = dist & (64 - 1) ndist := 64 - dist return x.ShiftAllLeft(dist).Or(x.ShiftAllRight(ndist)) } // RotateAllRight rotates all elements right by the specified amount // // Emulated func (x Uint64x4) RotateAllRight(dist uint64) Uint64x4 { dist = dist & (64 - 1) ndist := 64 - dist return x.ShiftAllLeft(ndist).Or(x.ShiftAllRight(dist)) } // RotateAllLeft rotates all elements left by the specified amount // // Emulated func (x Uint16x32) RotateAllLeft(dist uint64) Uint16x32 { dist = dist & (16 - 1) ndist := 16 - dist return x.ShiftAllLeft(dist).Or(x.ShiftAllRight(ndist)) } // RotateAllRight rotates all elements right by the specified amount // // Emulated func (x Uint16x32) RotateAllRight(dist uint64) Uint16x32 { dist = dist & (16 - 1) ndist := 16 - dist return x.ShiftAllLeft(ndist).Or(x.ShiftAllRight(dist)) } // RotateAllLeft rotates all elements left by the specified amount // // Emulated func (x Uint32x16) RotateAllLeft(dist uint64) Uint32x16 { dist = dist & (32 - 1) ndist := 32 - dist return x.ShiftAllLeft(dist).Or(x.ShiftAllRight(ndist)) } // RotateAllRight rotates all elements right by the specified amount // // Emulated func (x Uint32x16) RotateAllRight(dist uint64) Uint32x16 { dist = dist & (32 - 1) ndist := 32 - dist return x.ShiftAllLeft(ndist).Or(x.ShiftAllRight(dist)) } // RotateAllLeft rotates all elements left by the specified amount // // Emulated func (x Uint64x8) RotateAllLeft(dist uint64) Uint64x8 { dist = dist & (64 - 1) ndist := 64 - dist return x.ShiftAllLeft(dist).Or(x.ShiftAllRight(ndist)) } // RotateAllRight rotates all elements right by the specified amount // // Emulated func (x Uint64x8) RotateAllRight(dist uint64) Uint64x8 { dist = dist & (64 - 1) ndist := 64 - dist return x.ShiftAllLeft(ndist).Or(x.ShiftAllRight(dist)) }