2025-05-22 19:59:12 +00:00
// Code generated by x/arch/internal/simdgen using 'go run . -xedPath $XED_PATH -o godefs -goroot $GOROOT go.yaml types.yaml categories.yaml'; DO NOT EDIT.
//go:build goexperiment.simd
package simd
2025-08-07 17:05:50 +00:00
/* Abs */
2025-05-22 19:59:12 +00:00
2025-08-07 17:05:50 +00:00
// Abs computes the absolute value of each element.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPABSB, CPU Feature: AVX
2025-08-07 17:05:50 +00:00
func ( x Int8x16 ) Abs ( ) Int8x16
2025-05-22 19:59:12 +00:00
2025-08-07 17:05:50 +00:00
// Abs computes the absolute value of each element.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPABSB, CPU Feature: AVX2
2025-08-07 17:05:50 +00:00
func ( x Int8x32 ) Abs ( ) Int8x32
2025-05-22 19:59:12 +00:00
2025-08-07 17:05:50 +00:00
// Abs computes the absolute value of each element.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPABSB, CPU Feature: AVX512
2025-08-07 17:05:50 +00:00
func ( x Int8x64 ) Abs ( ) Int8x64
2025-05-22 19:59:12 +00:00
2025-08-07 17:05:50 +00:00
// Abs computes the absolute value of each element.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPABSW, CPU Feature: AVX
2025-08-07 17:05:50 +00:00
func ( x Int16x8 ) Abs ( ) Int16x8
2025-05-22 19:59:12 +00:00
2025-08-07 17:05:50 +00:00
// Abs computes the absolute value of each element.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPABSW, CPU Feature: AVX2
2025-08-07 17:05:50 +00:00
func ( x Int16x16 ) Abs ( ) Int16x16
2025-06-12 16:21:35 +00:00
2025-08-07 17:05:50 +00:00
// Abs computes the absolute value of each element.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPABSW, CPU Feature: AVX512
2025-08-07 17:05:50 +00:00
func ( x Int16x32 ) Abs ( ) Int16x32
2025-06-12 16:21:35 +00:00
2025-08-07 17:05:50 +00:00
// Abs computes the absolute value of each element.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPABSD, CPU Feature: AVX
2025-08-07 17:05:50 +00:00
func ( x Int32x4 ) Abs ( ) Int32x4
2025-06-12 16:21:35 +00:00
2025-08-07 17:05:50 +00:00
// Abs computes the absolute value of each element.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPABSD, CPU Feature: AVX2
2025-08-07 17:05:50 +00:00
func ( x Int32x8 ) Abs ( ) Int32x8
2025-05-22 19:59:12 +00:00
2025-08-07 17:05:50 +00:00
// Abs computes the absolute value of each element.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPABSD, CPU Feature: AVX512
2025-08-07 17:05:50 +00:00
func ( x Int32x16 ) Abs ( ) Int32x16
2025-06-12 16:21:35 +00:00
2025-08-07 17:05:50 +00:00
// Abs computes the absolute value of each element.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPABSQ, CPU Feature: AVX512
2025-08-07 17:05:50 +00:00
func ( x Int64x2 ) Abs ( ) Int64x2
2025-05-22 19:59:12 +00:00
2025-08-07 17:05:50 +00:00
// Abs computes the absolute value of each element.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPABSQ, CPU Feature: AVX512
2025-08-07 17:05:50 +00:00
func ( x Int64x4 ) Abs ( ) Int64x4
2025-05-22 19:59:12 +00:00
2025-08-07 17:05:50 +00:00
// Abs computes the absolute value of each element.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPABSQ, CPU Feature: AVX512
2025-08-07 17:05:50 +00:00
func ( x Int64x8 ) Abs ( ) Int64x8
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
/* Add */
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VADDPS, CPU Feature: AVX
func ( x Float32x4 ) Add ( y Float32x4 ) Float32x4
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VADDPS, CPU Feature: AVX
func ( x Float32x8 ) Add ( y Float32x8 ) Float32x8
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VADDPS, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Float32x16 ) Add ( y Float32x16 ) Float32x16
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VADDPD, CPU Feature: AVX
func ( x Float64x2 ) Add ( y Float64x2 ) Float64x2
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VADDPD, CPU Feature: AVX
func ( x Float64x4 ) Add ( y Float64x4 ) Float64x4
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VADDPD, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Float64x8 ) Add ( y Float64x8 ) Float64x8
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPADDB, CPU Feature: AVX
func ( x Int8x16 ) Add ( y Int8x16 ) Int8x16
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPADDB, CPU Feature: AVX2
func ( x Int8x32 ) Add ( y Int8x32 ) Int8x32
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPADDB, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Int8x64 ) Add ( y Int8x64 ) Int8x64
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPADDW, CPU Feature: AVX
func ( x Int16x8 ) Add ( y Int16x8 ) Int16x8
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPADDW, CPU Feature: AVX2
func ( x Int16x16 ) Add ( y Int16x16 ) Int16x16
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPADDW, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Int16x32 ) Add ( y Int16x32 ) Int16x32
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPADDD, CPU Feature: AVX
func ( x Int32x4 ) Add ( y Int32x4 ) Int32x4
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPADDD, CPU Feature: AVX2
func ( x Int32x8 ) Add ( y Int32x8 ) Int32x8
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPADDD, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Int32x16 ) Add ( y Int32x16 ) Int32x16
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPADDQ, CPU Feature: AVX
func ( x Int64x2 ) Add ( y Int64x2 ) Int64x2
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPADDQ, CPU Feature: AVX2
func ( x Int64x4 ) Add ( y Int64x4 ) Int64x4
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPADDQ, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Int64x8 ) Add ( y Int64x8 ) Int64x8
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPADDB, CPU Feature: AVX
func ( x Uint8x16 ) Add ( y Uint8x16 ) Uint8x16
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPADDB, CPU Feature: AVX2
func ( x Uint8x32 ) Add ( y Uint8x32 ) Uint8x32
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPADDB, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Uint8x64 ) Add ( y Uint8x64 ) Uint8x64
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPADDW, CPU Feature: AVX
func ( x Uint16x8 ) Add ( y Uint16x8 ) Uint16x8
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPADDW, CPU Feature: AVX2
func ( x Uint16x16 ) Add ( y Uint16x16 ) Uint16x16
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPADDW, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Uint16x32 ) Add ( y Uint16x32 ) Uint16x32
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPADDD, CPU Feature: AVX
func ( x Uint32x4 ) Add ( y Uint32x4 ) Uint32x4
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPADDD, CPU Feature: AVX2
func ( x Uint32x8 ) Add ( y Uint32x8 ) Uint32x8
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPADDD, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Uint32x16 ) Add ( y Uint32x16 ) Uint32x16
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPADDQ, CPU Feature: AVX
func ( x Uint64x2 ) Add ( y Uint64x2 ) Uint64x2
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPADDQ, CPU Feature: AVX2
func ( x Uint64x4 ) Add ( y Uint64x4 ) Uint64x4
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Add adds corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPADDQ, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Uint64x8 ) Add ( y Uint64x8 ) Uint64x8
2025-05-22 19:59:12 +00:00
2025-08-07 17:05:50 +00:00
/* AddDotProdPairsSaturated */
2025-07-31 23:51:50 +00:00
2025-08-07 17:05:50 +00:00
// AddDotProdPairsSaturated performs dot products on pairs of elements of y and z and then adds x.
2025-07-31 23:51:50 +00:00
//
2025-08-07 17:05:50 +00:00
// Asm: VPDPWSSDS, CPU Feature: AVXVNNI
func ( x Int32x4 ) AddDotProdPairsSaturated ( y Int16x8 , z Int16x8 ) Int32x4
// AddDotProdPairsSaturated performs dot products on pairs of elements of y and z and then adds x.
//
// Asm: VPDPWSSDS, CPU Feature: AVXVNNI
func ( x Int32x8 ) AddDotProdPairsSaturated ( y Int16x16 , z Int16x16 ) Int32x8
// AddDotProdPairsSaturated performs dot products on pairs of elements of y and z and then adds x.
//
// Asm: VPDPWSSDS, CPU Feature: AVX512VNNI
func ( x Int32x16 ) AddDotProdPairsSaturated ( y Int16x32 , z Int16x32 ) Int32x16
/* AddDotProdQuadruple */
// AddDotProdQuadruple performs dot products on groups of 4 elements of x and y and then adds z.
//
// Asm: VPDPBUSD, CPU Feature: AVXVNNI
func ( x Int8x16 ) AddDotProdQuadruple ( y Uint8x16 , z Int32x4 ) Int32x4
// AddDotProdQuadruple performs dot products on groups of 4 elements of x and y and then adds z.
//
// Asm: VPDPBUSD, CPU Feature: AVXVNNI
func ( x Int8x32 ) AddDotProdQuadruple ( y Uint8x32 , z Int32x8 ) Int32x8
// AddDotProdQuadruple performs dot products on groups of 4 elements of x and y and then adds z.
//
// Asm: VPDPBUSD, CPU Feature: AVX512VNNI
func ( x Int8x64 ) AddDotProdQuadruple ( y Uint8x64 , z Int32x16 ) Int32x16
/* AddDotProdQuadrupleSaturated */
// AddDotProdQuadrupleSaturated multiplies performs dot products on groups of 4 elements of x and y and then adds z.
//
// Asm: VPDPBUSDS, CPU Feature: AVXVNNI
func ( x Int8x16 ) AddDotProdQuadrupleSaturated ( y Uint8x16 , z Int32x4 ) Int32x4
2025-07-31 23:51:50 +00:00
2025-08-07 17:05:50 +00:00
// AddDotProdQuadrupleSaturated multiplies performs dot products on groups of 4 elements of x and y and then adds z.
2025-07-31 23:51:50 +00:00
//
2025-08-07 17:05:50 +00:00
// Asm: VPDPBUSDS, CPU Feature: AVXVNNI
func ( x Int8x32 ) AddDotProdQuadrupleSaturated ( y Uint8x32 , z Int32x8 ) Int32x8
2025-07-31 23:51:50 +00:00
2025-08-07 17:05:50 +00:00
// AddDotProdQuadrupleSaturated multiplies performs dot products on groups of 4 elements of x and y and then adds z.
2025-07-31 23:51:50 +00:00
//
2025-08-07 17:05:50 +00:00
// Asm: VPDPBUSDS, CPU Feature: AVX512VNNI
func ( x Int8x64 ) AddDotProdQuadrupleSaturated ( y Uint8x64 , z Int32x16 ) Int32x16
2025-07-31 23:51:50 +00:00
2025-08-01 15:58:29 -04:00
/* AddPairs */
// AddPairs horizontally adds adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0+y1, y2+y3, ..., x0+x1, x2+x3, ...].
//
// Asm: VHADDPS, CPU Feature: AVX
func ( x Float32x4 ) AddPairs ( y Float32x4 ) Float32x4
// AddPairs horizontally adds adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0+y1, y2+y3, ..., x0+x1, x2+x3, ...].
//
// Asm: VHADDPS, CPU Feature: AVX
func ( x Float32x8 ) AddPairs ( y Float32x8 ) Float32x8
// AddPairs horizontally adds adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0+y1, y2+y3, ..., x0+x1, x2+x3, ...].
//
// Asm: VHADDPD, CPU Feature: AVX
func ( x Float64x2 ) AddPairs ( y Float64x2 ) Float64x2
// AddPairs horizontally adds adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0+y1, y2+y3, ..., x0+x1, x2+x3, ...].
//
// Asm: VHADDPD, CPU Feature: AVX
func ( x Float64x4 ) AddPairs ( y Float64x4 ) Float64x4
// AddPairs horizontally adds adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0+y1, y2+y3, ..., x0+x1, x2+x3, ...].
//
// Asm: VPHADDW, CPU Feature: AVX
func ( x Int16x8 ) AddPairs ( y Int16x8 ) Int16x8
// AddPairs horizontally adds adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0+y1, y2+y3, ..., x0+x1, x2+x3, ...].
//
// Asm: VPHADDW, CPU Feature: AVX2
func ( x Int16x16 ) AddPairs ( y Int16x16 ) Int16x16
// AddPairs horizontally adds adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0+y1, y2+y3, ..., x0+x1, x2+x3, ...].
//
// Asm: VPHADDD, CPU Feature: AVX
func ( x Int32x4 ) AddPairs ( y Int32x4 ) Int32x4
// AddPairs horizontally adds adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0+y1, y2+y3, ..., x0+x1, x2+x3, ...].
//
// Asm: VPHADDD, CPU Feature: AVX2
func ( x Int32x8 ) AddPairs ( y Int32x8 ) Int32x8
// AddPairs horizontally adds adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0+y1, y2+y3, ..., x0+x1, x2+x3, ...].
//
// Asm: VPHADDW, CPU Feature: AVX
func ( x Uint16x8 ) AddPairs ( y Uint16x8 ) Uint16x8
// AddPairs horizontally adds adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0+y1, y2+y3, ..., x0+x1, x2+x3, ...].
//
// Asm: VPHADDW, CPU Feature: AVX2
func ( x Uint16x16 ) AddPairs ( y Uint16x16 ) Uint16x16
// AddPairs horizontally adds adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0+y1, y2+y3, ..., x0+x1, x2+x3, ...].
//
// Asm: VPHADDD, CPU Feature: AVX
func ( x Uint32x4 ) AddPairs ( y Uint32x4 ) Uint32x4
// AddPairs horizontally adds adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0+y1, y2+y3, ..., x0+x1, x2+x3, ...].
//
// Asm: VPHADDD, CPU Feature: AVX2
func ( x Uint32x8 ) AddPairs ( y Uint32x8 ) Uint32x8
/* AddPairsSaturated */
// AddPairsSaturated horizontally adds adjacent pairs of elements with saturation.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0+y1, y2+y3, ..., x0+x1, x2+x3, ...].
//
// Asm: VPHADDSW, CPU Feature: AVX
func ( x Int16x8 ) AddPairsSaturated ( y Int16x8 ) Int16x8
// AddPairsSaturated horizontally adds adjacent pairs of elements with saturation.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0+y1, y2+y3, ..., x0+x1, x2+x3, ...].
//
// Asm: VPHADDSW, CPU Feature: AVX2
func ( x Int16x16 ) AddPairsSaturated ( y Int16x16 ) Int16x16
/* AddSaturated */
// AddSaturated adds corresponding elements of two vectors with saturation.
//
// Asm: VPADDSB, CPU Feature: AVX
func ( x Int8x16 ) AddSaturated ( y Int8x16 ) Int8x16
// AddSaturated adds corresponding elements of two vectors with saturation.
//
// Asm: VPADDSB, CPU Feature: AVX2
func ( x Int8x32 ) AddSaturated ( y Int8x32 ) Int8x32
// AddSaturated adds corresponding elements of two vectors with saturation.
//
2025-08-11 16:02:00 -04:00
// Asm: VPADDSB, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Int8x64 ) AddSaturated ( y Int8x64 ) Int8x64
// AddSaturated adds corresponding elements of two vectors with saturation.
//
// Asm: VPADDSW, CPU Feature: AVX
func ( x Int16x8 ) AddSaturated ( y Int16x8 ) Int16x8
// AddSaturated adds corresponding elements of two vectors with saturation.
//
// Asm: VPADDSW, CPU Feature: AVX2
func ( x Int16x16 ) AddSaturated ( y Int16x16 ) Int16x16
// AddSaturated adds corresponding elements of two vectors with saturation.
//
2025-08-11 16:02:00 -04:00
// Asm: VPADDSW, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Int16x32 ) AddSaturated ( y Int16x32 ) Int16x32
// AddSaturated adds corresponding elements of two vectors with saturation.
//
2025-08-07 17:05:50 +00:00
// Asm: VPADDUSB, CPU Feature: AVX
2025-08-01 15:58:29 -04:00
func ( x Uint8x16 ) AddSaturated ( y Uint8x16 ) Uint8x16
// AddSaturated adds corresponding elements of two vectors with saturation.
//
2025-08-07 17:05:50 +00:00
// Asm: VPADDUSB, CPU Feature: AVX2
2025-08-01 15:58:29 -04:00
func ( x Uint8x32 ) AddSaturated ( y Uint8x32 ) Uint8x32
// AddSaturated adds corresponding elements of two vectors with saturation.
//
2025-08-11 16:02:00 -04:00
// Asm: VPADDUSB, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Uint8x64 ) AddSaturated ( y Uint8x64 ) Uint8x64
// AddSaturated adds corresponding elements of two vectors with saturation.
//
2025-08-07 17:05:50 +00:00
// Asm: VPADDUSW, CPU Feature: AVX
2025-08-01 15:58:29 -04:00
func ( x Uint16x8 ) AddSaturated ( y Uint16x8 ) Uint16x8
// AddSaturated adds corresponding elements of two vectors with saturation.
//
2025-08-07 17:05:50 +00:00
// Asm: VPADDUSW, CPU Feature: AVX2
2025-08-01 15:58:29 -04:00
func ( x Uint16x16 ) AddSaturated ( y Uint16x16 ) Uint16x16
// AddSaturated adds corresponding elements of two vectors with saturation.
//
2025-08-11 16:02:00 -04:00
// Asm: VPADDUSW, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Uint16x32 ) AddSaturated ( y Uint16x32 ) Uint16x32
2025-08-18 21:13:00 +00:00
/* AddSub */
2025-08-01 15:58:29 -04:00
2025-08-18 21:13:00 +00:00
// AddSub subtracts even elements and adds odd elements of two vectors.
2025-08-01 15:58:29 -04:00
//
2025-08-18 21:13:00 +00:00
// Asm: VADDSUBPS, CPU Feature: AVX
func ( x Float32x4 ) AddSub ( y Float32x4 ) Float32x4
2025-08-01 15:58:29 -04:00
2025-08-18 21:13:00 +00:00
// AddSub subtracts even elements and adds odd elements of two vectors.
2025-08-01 15:58:29 -04:00
//
2025-08-18 21:13:00 +00:00
// Asm: VADDSUBPS, CPU Feature: AVX
func ( x Float32x8 ) AddSub ( y Float32x8 ) Float32x8
2025-08-01 15:58:29 -04:00
2025-08-18 21:13:00 +00:00
// AddSub subtracts even elements and adds odd elements of two vectors.
2025-08-01 15:58:29 -04:00
//
2025-08-18 21:13:00 +00:00
// Asm: VADDSUBPD, CPU Feature: AVX
func ( x Float64x2 ) AddSub ( y Float64x2 ) Float64x2
2025-08-01 15:58:29 -04:00
2025-08-18 21:13:00 +00:00
// AddSub subtracts even elements and adds odd elements of two vectors.
2025-08-01 15:58:29 -04:00
//
2025-08-18 21:13:00 +00:00
// Asm: VADDSUBPD, CPU Feature: AVX
func ( x Float64x4 ) AddSub ( y Float64x4 ) Float64x4
2025-08-01 15:58:29 -04:00
2025-08-18 21:13:00 +00:00
/* And */
2025-08-01 15:58:29 -04:00
2025-08-18 21:13:00 +00:00
// And performs a bitwise AND operation between two vectors.
2025-08-01 15:58:29 -04:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPAND, CPU Feature: AVX
func ( x Int8x16 ) And ( y Int8x16 ) Int8x16
2025-08-01 15:58:29 -04:00
2025-08-18 21:13:00 +00:00
// And performs a bitwise AND operation between two vectors.
2025-08-01 15:58:29 -04:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPAND, CPU Feature: AVX2
func ( x Int8x32 ) And ( y Int8x32 ) Int8x32
2025-08-01 15:58:29 -04:00
2025-08-18 21:13:00 +00:00
// And performs a bitwise AND operation between two vectors.
2025-08-01 15:58:29 -04:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPANDD, CPU Feature: AVX512
func ( x Int8x64 ) And ( y Int8x64 ) Int8x64
2025-08-01 15:58:29 -04:00
2025-08-18 21:13:00 +00:00
// And performs a bitwise AND operation between two vectors.
2025-08-01 15:58:29 -04:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPAND, CPU Feature: AVX
func ( x Int16x8 ) And ( y Int16x8 ) Int16x8
2025-08-01 15:58:29 -04:00
2025-08-18 21:13:00 +00:00
// And performs a bitwise AND operation between two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPAND, CPU Feature: AVX2
func ( x Int16x16 ) And ( y Int16x16 ) Int16x16
2025-05-22 19:59:12 +00:00
2025-08-01 19:13:13 +00:00
// And performs a bitwise AND operation between two vectors.
//
2025-08-11 16:02:00 -04:00
// Asm: VPANDD, CPU Feature: AVX512
2025-08-01 19:13:13 +00:00
func ( x Int16x32 ) And ( y Int16x32 ) Int16x32
2025-06-16 20:11:27 +00:00
// And performs a bitwise AND operation between two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPAND, CPU Feature: AVX
func ( x Int32x4 ) And ( y Int32x4 ) Int32x4
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// And performs a bitwise AND operation between two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPAND, CPU Feature: AVX2
func ( x Int32x8 ) And ( y Int32x8 ) Int32x8
2025-05-22 19:59:12 +00:00
2025-07-16 17:02:47 +00:00
// And performs a bitwise AND operation between two vectors.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPANDD, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Int32x16 ) And ( y Int32x16 ) Int32x16
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// And performs a bitwise AND operation between two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPAND, CPU Feature: AVX
func ( x Int64x2 ) And ( y Int64x2 ) Int64x2
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// And performs a bitwise AND operation between two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPAND, CPU Feature: AVX2
func ( x Int64x4 ) And ( y Int64x4 ) Int64x4
2025-05-22 19:59:12 +00:00
2025-07-16 17:02:47 +00:00
// And performs a bitwise AND operation between two vectors.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPANDQ, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Int64x8 ) And ( y Int64x8 ) Int64x8
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// And performs a bitwise AND operation between two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPAND, CPU Feature: AVX
func ( x Uint8x16 ) And ( y Uint8x16 ) Uint8x16
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// And performs a bitwise AND operation between two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPAND, CPU Feature: AVX2
func ( x Uint8x32 ) And ( y Uint8x32 ) Uint8x32
2025-05-22 19:59:12 +00:00
2025-08-01 19:13:13 +00:00
// And performs a bitwise AND operation between two vectors.
//
2025-08-11 16:02:00 -04:00
// Asm: VPANDD, CPU Feature: AVX512
2025-08-01 19:13:13 +00:00
func ( x Uint8x64 ) And ( y Uint8x64 ) Uint8x64
2025-06-16 20:11:27 +00:00
// And performs a bitwise AND operation between two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPAND, CPU Feature: AVX
func ( x Uint16x8 ) And ( y Uint16x8 ) Uint16x8
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// And performs a bitwise AND operation between two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPAND, CPU Feature: AVX2
func ( x Uint16x16 ) And ( y Uint16x16 ) Uint16x16
2025-05-22 19:59:12 +00:00
2025-08-01 19:13:13 +00:00
// And performs a bitwise AND operation between two vectors.
//
2025-08-11 16:02:00 -04:00
// Asm: VPANDD, CPU Feature: AVX512
2025-08-01 19:13:13 +00:00
func ( x Uint16x32 ) And ( y Uint16x32 ) Uint16x32
2025-06-16 20:11:27 +00:00
// And performs a bitwise AND operation between two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPAND, CPU Feature: AVX
func ( x Uint32x4 ) And ( y Uint32x4 ) Uint32x4
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// And performs a bitwise AND operation between two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPAND, CPU Feature: AVX2
func ( x Uint32x8 ) And ( y Uint32x8 ) Uint32x8
2025-05-22 19:59:12 +00:00
2025-07-16 17:02:47 +00:00
// And performs a bitwise AND operation between two vectors.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPANDD, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Uint32x16 ) And ( y Uint32x16 ) Uint32x16
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// And performs a bitwise AND operation between two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPAND, CPU Feature: AVX
func ( x Uint64x2 ) And ( y Uint64x2 ) Uint64x2
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// And performs a bitwise AND operation between two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPAND, CPU Feature: AVX2
func ( x Uint64x4 ) And ( y Uint64x4 ) Uint64x4
2025-05-22 19:59:12 +00:00
2025-07-16 17:02:47 +00:00
// And performs a bitwise AND operation between two vectors.
2025-06-12 03:54:34 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPANDQ, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Uint64x8 ) And ( y Uint64x8 ) Uint64x8
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
/* AndNot */
2025-05-22 19:59:12 +00:00
2025-07-14 22:00:29 +00:00
// AndNot performs a bitwise x &^ y.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPANDN, CPU Feature: AVX
func ( x Int8x16 ) AndNot ( y Int8x16 ) Int8x16
2025-05-22 19:59:12 +00:00
2025-07-14 22:00:29 +00:00
// AndNot performs a bitwise x &^ y.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPANDN, CPU Feature: AVX2
func ( x Int8x32 ) AndNot ( y Int8x32 ) Int8x32
2025-05-22 19:59:12 +00:00
2025-08-01 19:13:13 +00:00
// AndNot performs a bitwise x &^ y.
//
2025-08-11 16:02:00 -04:00
// Asm: VPANDND, CPU Feature: AVX512
2025-08-01 19:13:13 +00:00
func ( x Int8x64 ) AndNot ( y Int8x64 ) Int8x64
2025-07-14 22:00:29 +00:00
// AndNot performs a bitwise x &^ y.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPANDN, CPU Feature: AVX
func ( x Int16x8 ) AndNot ( y Int16x8 ) Int16x8
2025-05-22 19:59:12 +00:00
2025-07-14 22:00:29 +00:00
// AndNot performs a bitwise x &^ y.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPANDN, CPU Feature: AVX2
func ( x Int16x16 ) AndNot ( y Int16x16 ) Int16x16
2025-05-22 19:59:12 +00:00
2025-08-01 19:13:13 +00:00
// AndNot performs a bitwise x &^ y.
//
2025-08-11 16:02:00 -04:00
// Asm: VPANDND, CPU Feature: AVX512
2025-08-01 19:13:13 +00:00
func ( x Int16x32 ) AndNot ( y Int16x32 ) Int16x32
2025-07-14 22:00:29 +00:00
// AndNot performs a bitwise x &^ y.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPANDN, CPU Feature: AVX
func ( x Int32x4 ) AndNot ( y Int32x4 ) Int32x4
2025-05-22 19:59:12 +00:00
2025-07-14 22:00:29 +00:00
// AndNot performs a bitwise x &^ y.
2025-06-12 03:54:34 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPANDN, CPU Feature: AVX2
func ( x Int32x8 ) AndNot ( y Int32x8 ) Int32x8
2025-05-22 19:59:12 +00:00
2025-07-14 22:00:29 +00:00
// AndNot performs a bitwise x &^ y.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPANDND, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Int32x16 ) AndNot ( y Int32x16 ) Int32x16
2025-05-22 19:59:12 +00:00
2025-07-14 22:00:29 +00:00
// AndNot performs a bitwise x &^ y.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPANDN, CPU Feature: AVX
func ( x Int64x2 ) AndNot ( y Int64x2 ) Int64x2
2025-05-22 19:59:12 +00:00
2025-07-14 22:00:29 +00:00
// AndNot performs a bitwise x &^ y.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPANDN, CPU Feature: AVX2
func ( x Int64x4 ) AndNot ( y Int64x4 ) Int64x4
2025-05-22 19:59:12 +00:00
2025-07-14 22:00:29 +00:00
// AndNot performs a bitwise x &^ y.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPANDNQ, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Int64x8 ) AndNot ( y Int64x8 ) Int64x8
2025-05-22 19:59:12 +00:00
2025-07-14 22:00:29 +00:00
// AndNot performs a bitwise x &^ y.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPANDN, CPU Feature: AVX
func ( x Uint8x16 ) AndNot ( y Uint8x16 ) Uint8x16
2025-06-12 16:21:35 +00:00
2025-07-14 22:00:29 +00:00
// AndNot performs a bitwise x &^ y.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPANDN, CPU Feature: AVX2
func ( x Uint8x32 ) AndNot ( y Uint8x32 ) Uint8x32
2025-05-22 19:59:12 +00:00
2025-08-01 19:13:13 +00:00
// AndNot performs a bitwise x &^ y.
//
2025-08-11 16:02:00 -04:00
// Asm: VPANDND, CPU Feature: AVX512
2025-08-01 19:13:13 +00:00
func ( x Uint8x64 ) AndNot ( y Uint8x64 ) Uint8x64
2025-07-14 22:00:29 +00:00
// AndNot performs a bitwise x &^ y.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPANDN, CPU Feature: AVX
func ( x Uint16x8 ) AndNot ( y Uint16x8 ) Uint16x8
2025-05-22 19:59:12 +00:00
2025-07-14 22:00:29 +00:00
// AndNot performs a bitwise x &^ y.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPANDN, CPU Feature: AVX2
func ( x Uint16x16 ) AndNot ( y Uint16x16 ) Uint16x16
2025-05-22 19:59:12 +00:00
2025-08-01 19:13:13 +00:00
// AndNot performs a bitwise x &^ y.
//
2025-08-11 16:02:00 -04:00
// Asm: VPANDND, CPU Feature: AVX512
2025-08-01 19:13:13 +00:00
func ( x Uint16x32 ) AndNot ( y Uint16x32 ) Uint16x32
2025-07-14 22:00:29 +00:00
// AndNot performs a bitwise x &^ y.
2025-06-12 03:54:34 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPANDN, CPU Feature: AVX
func ( x Uint32x4 ) AndNot ( y Uint32x4 ) Uint32x4
2025-05-22 19:59:12 +00:00
2025-07-14 22:00:29 +00:00
// AndNot performs a bitwise x &^ y.
2025-06-12 03:54:34 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPANDN, CPU Feature: AVX2
func ( x Uint32x8 ) AndNot ( y Uint32x8 ) Uint32x8
2025-05-22 19:59:12 +00:00
2025-07-14 22:00:29 +00:00
// AndNot performs a bitwise x &^ y.
2025-06-12 03:54:34 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPANDND, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Uint32x16 ) AndNot ( y Uint32x16 ) Uint32x16
2025-05-22 19:59:12 +00:00
2025-07-14 22:00:29 +00:00
// AndNot performs a bitwise x &^ y.
2025-06-12 03:54:34 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPANDN, CPU Feature: AVX
func ( x Uint64x2 ) AndNot ( y Uint64x2 ) Uint64x2
2025-05-22 19:59:12 +00:00
2025-07-14 22:00:29 +00:00
// AndNot performs a bitwise x &^ y.
2025-06-12 03:54:34 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPANDN, CPU Feature: AVX2
func ( x Uint64x4 ) AndNot ( y Uint64x4 ) Uint64x4
2025-05-22 19:59:12 +00:00
2025-07-14 22:00:29 +00:00
// AndNot performs a bitwise x &^ y.
2025-06-12 03:54:34 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPANDNQ, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Uint64x8 ) AndNot ( y Uint64x8 ) Uint64x8
/* Average */
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Average computes the rounded average of corresponding elements.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPAVGB, CPU Feature: AVX
func ( x Uint8x16 ) Average ( y Uint8x16 ) Uint8x16
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Average computes the rounded average of corresponding elements.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPAVGB, CPU Feature: AVX2
func ( x Uint8x32 ) Average ( y Uint8x32 ) Uint8x32
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Average computes the rounded average of corresponding elements.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPAVGB, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Uint8x64 ) Average ( y Uint8x64 ) Uint8x64
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Average computes the rounded average of corresponding elements.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPAVGW, CPU Feature: AVX
func ( x Uint16x8 ) Average ( y Uint16x8 ) Uint16x8
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Average computes the rounded average of corresponding elements.
2025-06-12 03:54:34 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPAVGW, CPU Feature: AVX2
func ( x Uint16x16 ) Average ( y Uint16x16 ) Uint16x16
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Average computes the rounded average of corresponding elements.
2025-06-12 03:54:34 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPAVGW, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Uint16x32 ) Average ( y Uint16x32 ) Uint16x32
2025-05-22 19:59:12 +00:00
2025-08-05 17:34:05 -04:00
/* Broadcast128 */
// Broadcast128 copies element zero of its (128-bit) input to all elements of
// the 128-bit output vector.
//
// Asm: VBROADCASTSS, CPU Feature: AVX2
func ( x Float32x4 ) Broadcast128 ( ) Float32x4
// Broadcast128 copies element zero of its (128-bit) input to all elements of
// the 128-bit output vector.
//
// Asm: VPBROADCASTQ, CPU Feature: AVX2
func ( x Float64x2 ) Broadcast128 ( ) Float64x2
// Broadcast128 copies element zero of its (128-bit) input to all elements of
// the 128-bit output vector.
//
// Asm: VPBROADCASTB, CPU Feature: AVX2
func ( x Int8x16 ) Broadcast128 ( ) Int8x16
// Broadcast128 copies element zero of its (128-bit) input to all elements of
// the 128-bit output vector.
//
// Asm: VPBROADCASTW, CPU Feature: AVX2
func ( x Int16x8 ) Broadcast128 ( ) Int16x8
// Broadcast128 copies element zero of its (128-bit) input to all elements of
// the 128-bit output vector.
//
// Asm: VPBROADCASTD, CPU Feature: AVX2
func ( x Int32x4 ) Broadcast128 ( ) Int32x4
// Broadcast128 copies element zero of its (128-bit) input to all elements of
// the 128-bit output vector.
//
// Asm: VPBROADCASTQ, CPU Feature: AVX2
func ( x Int64x2 ) Broadcast128 ( ) Int64x2
// Broadcast128 copies element zero of its (128-bit) input to all elements of
// the 128-bit output vector.
//
// Asm: VPBROADCASTB, CPU Feature: AVX2
func ( x Uint8x16 ) Broadcast128 ( ) Uint8x16
// Broadcast128 copies element zero of its (128-bit) input to all elements of
// the 128-bit output vector.
//
// Asm: VPBROADCASTW, CPU Feature: AVX2
func ( x Uint16x8 ) Broadcast128 ( ) Uint16x8
// Broadcast128 copies element zero of its (128-bit) input to all elements of
// the 128-bit output vector.
//
// Asm: VPBROADCASTD, CPU Feature: AVX2
func ( x Uint32x4 ) Broadcast128 ( ) Uint32x4
// Broadcast128 copies element zero of its (128-bit) input to all elements of
// the 128-bit output vector.
//
// Asm: VPBROADCASTQ, CPU Feature: AVX2
func ( x Uint64x2 ) Broadcast128 ( ) Uint64x2
/* Broadcast256 */
// Broadcast256 copies element zero of its (128-bit) input to all elements of
// the 256-bit output vector.
//
// Asm: VBROADCASTSS, CPU Feature: AVX2
func ( x Float32x4 ) Broadcast256 ( ) Float32x8
// Broadcast256 copies element zero of its (128-bit) input to all elements of
// the 256-bit output vector.
//
// Asm: VBROADCASTSD, CPU Feature: AVX2
func ( x Float64x2 ) Broadcast256 ( ) Float64x4
// Broadcast256 copies element zero of its (128-bit) input to all elements of
// the 256-bit output vector.
//
// Asm: VPBROADCASTB, CPU Feature: AVX2
func ( x Int8x16 ) Broadcast256 ( ) Int8x32
// Broadcast256 copies element zero of its (128-bit) input to all elements of
// the 256-bit output vector.
//
// Asm: VPBROADCASTW, CPU Feature: AVX2
func ( x Int16x8 ) Broadcast256 ( ) Int16x16
// Broadcast256 copies element zero of its (128-bit) input to all elements of
// the 256-bit output vector.
//
// Asm: VPBROADCASTD, CPU Feature: AVX2
func ( x Int32x4 ) Broadcast256 ( ) Int32x8
// Broadcast256 copies element zero of its (128-bit) input to all elements of
// the 256-bit output vector.
//
// Asm: VPBROADCASTQ, CPU Feature: AVX2
func ( x Int64x2 ) Broadcast256 ( ) Int64x4
// Broadcast256 copies element zero of its (128-bit) input to all elements of
// the 256-bit output vector.
//
// Asm: VPBROADCASTB, CPU Feature: AVX2
func ( x Uint8x16 ) Broadcast256 ( ) Uint8x32
// Broadcast256 copies element zero of its (128-bit) input to all elements of
// the 256-bit output vector.
//
// Asm: VPBROADCASTW, CPU Feature: AVX2
func ( x Uint16x8 ) Broadcast256 ( ) Uint16x16
// Broadcast256 copies element zero of its (128-bit) input to all elements of
// the 256-bit output vector.
//
// Asm: VPBROADCASTD, CPU Feature: AVX2
func ( x Uint32x4 ) Broadcast256 ( ) Uint32x8
// Broadcast256 copies element zero of its (128-bit) input to all elements of
// the 256-bit output vector.
//
// Asm: VPBROADCASTQ, CPU Feature: AVX2
func ( x Uint64x2 ) Broadcast256 ( ) Uint64x4
2025-08-18 21:13:00 +00:00
/* Broadcast512 */
2025-08-05 17:34:05 -04:00
2025-08-18 21:13:00 +00:00
// Broadcast512 copies element zero of its (128-bit) input to all elements of
// the 512-bit output vector.
2025-08-05 17:34:05 -04:00
//
// Asm: VBROADCASTSS, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Float32x4 ) Broadcast512 ( ) Float32x16
2025-08-05 17:34:05 -04:00
2025-08-18 21:13:00 +00:00
// Broadcast512 copies element zero of its (128-bit) input to all elements of
// the 512-bit output vector.
2025-08-05 17:34:05 -04:00
//
// Asm: VBROADCASTSD, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Float64x2 ) Broadcast512 ( ) Float64x8
2025-08-05 17:34:05 -04:00
2025-08-18 21:13:00 +00:00
// Broadcast512 copies element zero of its (128-bit) input to all elements of
// the 512-bit output vector.
2025-08-05 17:34:05 -04:00
//
// Asm: VPBROADCASTB, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Int8x16 ) Broadcast512 ( ) Int8x64
2025-08-05 17:34:05 -04:00
2025-08-18 21:13:00 +00:00
// Broadcast512 copies element zero of its (128-bit) input to all elements of
// the 512-bit output vector.
2025-08-05 17:34:05 -04:00
//
// Asm: VPBROADCASTW, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Int16x8 ) Broadcast512 ( ) Int16x32
2025-08-05 17:34:05 -04:00
2025-08-18 21:13:00 +00:00
// Broadcast512 copies element zero of its (128-bit) input to all elements of
// the 512-bit output vector.
2025-08-05 17:34:05 -04:00
//
// Asm: VPBROADCASTD, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Int32x4 ) Broadcast512 ( ) Int32x16
2025-08-05 17:34:05 -04:00
// Broadcast512 copies element zero of its (128-bit) input to all elements of
// the 512-bit output vector.
//
// Asm: VPBROADCASTQ, CPU Feature: AVX512
func ( x Int64x2 ) Broadcast512 ( ) Int64x8
// Broadcast512 copies element zero of its (128-bit) input to all elements of
// the 512-bit output vector.
//
// Asm: VPBROADCASTB, CPU Feature: AVX512
func ( x Uint8x16 ) Broadcast512 ( ) Uint8x64
// Broadcast512 copies element zero of its (128-bit) input to all elements of
// the 512-bit output vector.
//
// Asm: VPBROADCASTW, CPU Feature: AVX512
func ( x Uint16x8 ) Broadcast512 ( ) Uint16x32
// Broadcast512 copies element zero of its (128-bit) input to all elements of
// the 512-bit output vector.
//
// Asm: VPBROADCASTD, CPU Feature: AVX512
func ( x Uint32x4 ) Broadcast512 ( ) Uint32x16
// Broadcast512 copies element zero of its (128-bit) input to all elements of
// the 512-bit output vector.
//
// Asm: VPBROADCASTQ, CPU Feature: AVX512
func ( x Uint64x2 ) Broadcast512 ( ) Uint64x8
2025-06-16 20:11:27 +00:00
/* Ceil */
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Ceil rounds elements up to the nearest integer.
2025-06-12 03:54:34 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VROUNDPS, CPU Feature: AVX
func ( x Float32x4 ) Ceil ( ) Float32x4
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Ceil rounds elements up to the nearest integer.
2025-06-12 03:54:34 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VROUNDPS, CPU Feature: AVX
func ( x Float32x8 ) Ceil ( ) Float32x8
// Ceil rounds elements up to the nearest integer.
2025-06-12 03:54:34 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VROUNDPD, CPU Feature: AVX
func ( x Float64x2 ) Ceil ( ) Float64x2
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Ceil rounds elements up to the nearest integer.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VROUNDPD, CPU Feature: AVX
func ( x Float64x4 ) Ceil ( ) Float64x4
2025-05-22 19:59:12 +00:00
2025-08-01 15:58:29 -04:00
/* CeilScaled */
2025-05-22 19:59:12 +00:00
2025-08-01 15:58:29 -04:00
// CeilScaled rounds elements up with specified precision.
2025-06-12 03:54:34 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRNDSCALEPS, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float32x4 ) CeilScaled ( prec uint8 ) Float32x4
2025-05-22 19:59:12 +00:00
2025-08-01 15:58:29 -04:00
// CeilScaled rounds elements up with specified precision.
2025-06-12 03:54:34 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRNDSCALEPS, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float32x8 ) CeilScaled ( prec uint8 ) Float32x8
2025-05-22 19:59:12 +00:00
2025-08-01 15:58:29 -04:00
// CeilScaled rounds elements up with specified precision.
2025-06-12 16:42:02 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRNDSCALEPS, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float32x16 ) CeilScaled ( prec uint8 ) Float32x16
2025-05-22 19:59:12 +00:00
2025-08-01 15:58:29 -04:00
// CeilScaled rounds elements up with specified precision.
2025-06-12 16:42:02 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRNDSCALEPD, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float64x2 ) CeilScaled ( prec uint8 ) Float64x2
2025-05-22 19:59:12 +00:00
2025-08-01 15:58:29 -04:00
// CeilScaled rounds elements up with specified precision.
2025-06-12 16:42:02 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRNDSCALEPD, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float64x4 ) CeilScaled ( prec uint8 ) Float64x4
2025-05-22 19:59:12 +00:00
2025-08-01 15:58:29 -04:00
// CeilScaled rounds elements up with specified precision.
2025-06-12 16:42:02 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRNDSCALEPD, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float64x8 ) CeilScaled ( prec uint8 ) Float64x8
2025-06-12 16:21:35 +00:00
2025-08-01 15:58:29 -04:00
/* CeilScaledResidue */
// CeilScaledResidue computes the difference after ceiling with specified precision.
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-01 15:58:29 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPS, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float32x4 ) CeilScaledResidue ( prec uint8 ) Float32x4
// CeilScaledResidue computes the difference after ceiling with specified precision.
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-01 15:58:29 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPS, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float32x8 ) CeilScaledResidue ( prec uint8 ) Float32x8
// CeilScaledResidue computes the difference after ceiling with specified precision.
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-01 15:58:29 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPS, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float32x16 ) CeilScaledResidue ( prec uint8 ) Float32x16
// CeilScaledResidue computes the difference after ceiling with specified precision.
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-01 15:58:29 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPD, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float64x2 ) CeilScaledResidue ( prec uint8 ) Float64x2
// CeilScaledResidue computes the difference after ceiling with specified precision.
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-01 15:58:29 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPD, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float64x4 ) CeilScaledResidue ( prec uint8 ) Float64x4
// CeilScaledResidue computes the difference after ceiling with specified precision.
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-01 15:58:29 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPD, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float64x8 ) CeilScaledResidue ( prec uint8 ) Float64x8
2025-07-14 20:29:46 +00:00
/* Compress */
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VCOMPRESSPS, CPU Feature: AVX512
2025-07-14 20:29:46 +00:00
func ( x Float32x4 ) Compress ( mask Mask32x4 ) Float32x4
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VCOMPRESSPS, CPU Feature: AVX512
2025-07-14 20:29:46 +00:00
func ( x Float32x8 ) Compress ( mask Mask32x8 ) Float32x8
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VCOMPRESSPS, CPU Feature: AVX512
2025-07-14 20:29:46 +00:00
func ( x Float32x16 ) Compress ( mask Mask32x16 ) Float32x16
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VCOMPRESSPD, CPU Feature: AVX512
2025-07-14 20:29:46 +00:00
func ( x Float64x2 ) Compress ( mask Mask64x2 ) Float64x2
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VCOMPRESSPD, CPU Feature: AVX512
2025-07-14 20:29:46 +00:00
func ( x Float64x4 ) Compress ( mask Mask64x4 ) Float64x4
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VCOMPRESSPD, CPU Feature: AVX512
2025-07-14 20:29:46 +00:00
func ( x Float64x8 ) Compress ( mask Mask64x8 ) Float64x8
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
// Asm: VPCOMPRESSB, CPU Feature: AVX512VBMI2
func ( x Int8x16 ) Compress ( mask Mask8x16 ) Int8x16
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
// Asm: VPCOMPRESSB, CPU Feature: AVX512VBMI2
func ( x Int8x32 ) Compress ( mask Mask8x32 ) Int8x32
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
// Asm: VPCOMPRESSB, CPU Feature: AVX512VBMI2
func ( x Int8x64 ) Compress ( mask Mask8x64 ) Int8x64
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
// Asm: VPCOMPRESSW, CPU Feature: AVX512VBMI2
func ( x Int16x8 ) Compress ( mask Mask16x8 ) Int16x8
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
// Asm: VPCOMPRESSW, CPU Feature: AVX512VBMI2
func ( x Int16x16 ) Compress ( mask Mask16x16 ) Int16x16
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
// Asm: VPCOMPRESSW, CPU Feature: AVX512VBMI2
func ( x Int16x32 ) Compress ( mask Mask16x32 ) Int16x32
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCOMPRESSD, CPU Feature: AVX512
2025-07-14 20:29:46 +00:00
func ( x Int32x4 ) Compress ( mask Mask32x4 ) Int32x4
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCOMPRESSD, CPU Feature: AVX512
2025-07-14 20:29:46 +00:00
func ( x Int32x8 ) Compress ( mask Mask32x8 ) Int32x8
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCOMPRESSD, CPU Feature: AVX512
2025-07-14 20:29:46 +00:00
func ( x Int32x16 ) Compress ( mask Mask32x16 ) Int32x16
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCOMPRESSQ, CPU Feature: AVX512
2025-07-14 20:29:46 +00:00
func ( x Int64x2 ) Compress ( mask Mask64x2 ) Int64x2
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCOMPRESSQ, CPU Feature: AVX512
2025-07-14 20:29:46 +00:00
func ( x Int64x4 ) Compress ( mask Mask64x4 ) Int64x4
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCOMPRESSQ, CPU Feature: AVX512
2025-07-14 20:29:46 +00:00
func ( x Int64x8 ) Compress ( mask Mask64x8 ) Int64x8
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
// Asm: VPCOMPRESSB, CPU Feature: AVX512VBMI2
func ( x Uint8x16 ) Compress ( mask Mask8x16 ) Uint8x16
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
// Asm: VPCOMPRESSB, CPU Feature: AVX512VBMI2
func ( x Uint8x32 ) Compress ( mask Mask8x32 ) Uint8x32
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
// Asm: VPCOMPRESSB, CPU Feature: AVX512VBMI2
func ( x Uint8x64 ) Compress ( mask Mask8x64 ) Uint8x64
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
// Asm: VPCOMPRESSW, CPU Feature: AVX512VBMI2
func ( x Uint16x8 ) Compress ( mask Mask16x8 ) Uint16x8
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
// Asm: VPCOMPRESSW, CPU Feature: AVX512VBMI2
func ( x Uint16x16 ) Compress ( mask Mask16x16 ) Uint16x16
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
// Asm: VPCOMPRESSW, CPU Feature: AVX512VBMI2
func ( x Uint16x32 ) Compress ( mask Mask16x32 ) Uint16x32
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCOMPRESSD, CPU Feature: AVX512
2025-07-14 20:29:46 +00:00
func ( x Uint32x4 ) Compress ( mask Mask32x4 ) Uint32x4
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCOMPRESSD, CPU Feature: AVX512
2025-07-14 20:29:46 +00:00
func ( x Uint32x8 ) Compress ( mask Mask32x8 ) Uint32x8
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCOMPRESSD, CPU Feature: AVX512
2025-07-14 20:29:46 +00:00
func ( x Uint32x16 ) Compress ( mask Mask32x16 ) Uint32x16
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCOMPRESSQ, CPU Feature: AVX512
2025-07-14 20:29:46 +00:00
func ( x Uint64x2 ) Compress ( mask Mask64x2 ) Uint64x2
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCOMPRESSQ, CPU Feature: AVX512
2025-07-14 20:29:46 +00:00
func ( x Uint64x4 ) Compress ( mask Mask64x4 ) Uint64x4
// Compress performs a compression on vector x using mask by
// selecting elements as indicated by mask, and pack them to lower indexed elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCOMPRESSQ, CPU Feature: AVX512
2025-07-14 20:29:46 +00:00
func ( x Uint64x8 ) Compress ( mask Mask64x8 ) Uint64x8
2025-07-22 15:02:45 -04:00
/* ConvertToInt32 */
// ConvertToInt32 converts element values to int32.
//
// Asm: VCVTTPS2DQ, CPU Feature: AVX
func ( x Float32x4 ) ConvertToInt32 ( ) Int32x4
// ConvertToInt32 converts element values to int32.
//
// Asm: VCVTTPS2DQ, CPU Feature: AVX
func ( x Float32x8 ) ConvertToInt32 ( ) Int32x8
// ConvertToInt32 converts element values to int32.
//
2025-08-11 16:02:00 -04:00
// Asm: VCVTTPS2DQ, CPU Feature: AVX512
2025-07-22 15:02:45 -04:00
func ( x Float32x16 ) ConvertToInt32 ( ) Int32x16
/* ConvertToUint32 */
// ConvertToUint32Masked converts element values to uint32.
//
2025-08-11 16:02:00 -04:00
// Asm: VCVTPS2UDQ, CPU Feature: AVX512
2025-07-22 15:02:45 -04:00
func ( x Float32x4 ) ConvertToUint32 ( ) Uint32x4
// ConvertToUint32Masked converts element values to uint32.
//
2025-08-11 16:02:00 -04:00
// Asm: VCVTPS2UDQ, CPU Feature: AVX512
2025-07-22 15:02:45 -04:00
func ( x Float32x8 ) ConvertToUint32 ( ) Uint32x8
// ConvertToUint32Masked converts element values to uint32.
//
2025-08-11 16:02:00 -04:00
// Asm: VCVTPS2UDQ, CPU Feature: AVX512
2025-07-22 15:02:45 -04:00
func ( x Float32x16 ) ConvertToUint32 ( ) Uint32x16
2025-08-07 17:05:50 +00:00
/* CopySign */
// CopySign returns the product of the first operand with -1, 0, or 1,
// whichever constant is nearest to the value of the second operand.
//
// Asm: VPSIGNB, CPU Feature: AVX
func ( x Int8x16 ) CopySign ( y Int8x16 ) Int8x16
// CopySign returns the product of the first operand with -1, 0, or 1,
// whichever constant is nearest to the value of the second operand.
//
// Asm: VPSIGNB, CPU Feature: AVX2
func ( x Int8x32 ) CopySign ( y Int8x32 ) Int8x32
// CopySign returns the product of the first operand with -1, 0, or 1,
// whichever constant is nearest to the value of the second operand.
//
// Asm: VPSIGNW, CPU Feature: AVX
func ( x Int16x8 ) CopySign ( y Int16x8 ) Int16x8
// CopySign returns the product of the first operand with -1, 0, or 1,
// whichever constant is nearest to the value of the second operand.
//
// Asm: VPSIGNW, CPU Feature: AVX2
func ( x Int16x16 ) CopySign ( y Int16x16 ) Int16x16
// CopySign returns the product of the first operand with -1, 0, or 1,
// whichever constant is nearest to the value of the second operand.
//
// Asm: VPSIGND, CPU Feature: AVX
func ( x Int32x4 ) CopySign ( y Int32x4 ) Int32x4
// CopySign returns the product of the first operand with -1, 0, or 1,
// whichever constant is nearest to the value of the second operand.
//
// Asm: VPSIGND, CPU Feature: AVX2
func ( x Int32x8 ) CopySign ( y Int32x8 ) Int32x8
2025-08-01 15:58:29 -04:00
/* Div */
2025-05-22 19:59:12 +00:00
2025-08-01 15:58:29 -04:00
// Div divides elements of two vectors.
2025-07-11 02:15:12 +00:00
//
2025-08-01 15:58:29 -04:00
// Asm: VDIVPS, CPU Feature: AVX
func ( x Float32x4 ) Div ( y Float32x4 ) Float32x4
2025-05-22 19:59:12 +00:00
2025-08-01 15:58:29 -04:00
// Div divides elements of two vectors.
2025-07-11 02:15:12 +00:00
//
2025-08-01 15:58:29 -04:00
// Asm: VDIVPS, CPU Feature: AVX
func ( x Float32x8 ) Div ( y Float32x8 ) Float32x8
2025-05-22 19:59:12 +00:00
2025-08-01 15:58:29 -04:00
// Div divides elements of two vectors.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VDIVPS, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float32x16 ) Div ( y Float32x16 ) Float32x16
2025-05-22 19:59:12 +00:00
2025-08-01 15:58:29 -04:00
// Div divides elements of two vectors.
2025-07-11 02:15:12 +00:00
//
2025-08-01 15:58:29 -04:00
// Asm: VDIVPD, CPU Feature: AVX
func ( x Float64x2 ) Div ( y Float64x2 ) Float64x2
2025-05-22 19:59:12 +00:00
2025-08-01 15:58:29 -04:00
// Div divides elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VDIVPD, CPU Feature: AVX
func ( x Float64x4 ) Div ( y Float64x4 ) Float64x4
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Div divides elements of two vectors.
2025-06-12 03:54:34 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VDIVPD, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Float64x8 ) Div ( y Float64x8 ) Float64x8
2025-05-22 19:59:12 +00:00
2025-08-07 17:05:50 +00:00
/* DotProdPairs */
// DotProdPairs multiplies the elements and add the pairs together,
// yielding a vector of half as many elements with twice the input element size.
//
// Asm: VPMADDWD, CPU Feature: AVX
func ( x Int16x8 ) DotProdPairs ( y Int16x8 ) Int32x4
// DotProdPairs multiplies the elements and add the pairs together,
// yielding a vector of half as many elements with twice the input element size.
//
// Asm: VPMADDWD, CPU Feature: AVX2
func ( x Int16x16 ) DotProdPairs ( y Int16x16 ) Int32x8
// DotProdPairs multiplies the elements and add the pairs together,
// yielding a vector of half as many elements with twice the input element size.
//
2025-08-11 16:02:00 -04:00
// Asm: VPMADDWD, CPU Feature: AVX512
2025-08-07 17:05:50 +00:00
func ( x Int16x32 ) DotProdPairs ( y Int16x32 ) Int32x16
/* DotProdPairsSaturated */
// DotProdPairsSaturated multiplies the elements and add the pairs together with saturation,
// yielding a vector of half as many elements with twice the input element size.
//
// Asm: VPMADDUBSW, CPU Feature: AVX
func ( x Uint8x16 ) DotProdPairsSaturated ( y Int8x16 ) Int16x8
// DotProdPairsSaturated multiplies the elements and add the pairs together with saturation,
// yielding a vector of half as many elements with twice the input element size.
//
// Asm: VPMADDUBSW, CPU Feature: AVX2
func ( x Uint8x32 ) DotProdPairsSaturated ( y Int8x32 ) Int16x16
// DotProdPairsSaturated multiplies the elements and add the pairs together with saturation,
// yielding a vector of half as many elements with twice the input element size.
//
2025-08-11 16:02:00 -04:00
// Asm: VPMADDUBSW, CPU Feature: AVX512
2025-08-07 17:05:50 +00:00
func ( x Uint8x64 ) DotProdPairsSaturated ( y Int8x64 ) Int16x32
2025-08-18 21:13:00 +00:00
/* Equal */
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Equal compares for equality.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPCMPEQB, CPU Feature: AVX
func ( x Int8x16 ) Equal ( y Int8x16 ) Mask8x16
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Equal compares for equality.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPCMPEQB, CPU Feature: AVX2
func ( x Int8x32 ) Equal ( y Int8x32 ) Mask8x32
2025-05-22 19:59:12 +00:00
2025-07-23 07:37:14 +00:00
// Equal compares for equality.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPEQB, CPU Feature: AVX512
2025-07-23 07:37:14 +00:00
func ( x Int8x64 ) Equal ( y Int8x64 ) Mask8x64
2025-06-16 20:11:27 +00:00
// Equal compares for equality.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPCMPEQW, CPU Feature: AVX
func ( x Int16x8 ) Equal ( y Int16x8 ) Mask16x8
2025-05-22 19:59:12 +00:00
2025-06-12 16:42:02 +00:00
// Equal compares for equality.
2025-06-12 03:54:34 +00:00
//
// Asm: VPCMPEQW, CPU Feature: AVX2
2025-05-22 19:59:12 +00:00
func ( x Int16x16 ) Equal ( y Int16x16 ) Mask16x16
2025-07-23 07:37:14 +00:00
// Equal compares for equality.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPEQW, CPU Feature: AVX512
2025-07-23 07:37:14 +00:00
func ( x Int16x32 ) Equal ( y Int16x32 ) Mask16x32
2025-06-16 20:11:27 +00:00
// Equal compares for equality.
2025-06-12 03:54:34 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPCMPEQD, CPU Feature: AVX
func ( x Int32x4 ) Equal ( y Int32x4 ) Mask32x4
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Equal compares for equality.
2025-06-12 03:54:34 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPCMPEQD, CPU Feature: AVX2
func ( x Int32x8 ) Equal ( y Int32x8 ) Mask32x8
2025-05-22 19:59:12 +00:00
2025-07-23 07:37:14 +00:00
// Equal compares for equality.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPEQD, CPU Feature: AVX512
2025-07-23 07:37:14 +00:00
func ( x Int32x16 ) Equal ( y Int32x16 ) Mask32x16
2025-06-16 20:11:27 +00:00
// Equal compares for equality.
2025-06-12 03:54:34 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPCMPEQQ, CPU Feature: AVX
func ( x Int64x2 ) Equal ( y Int64x2 ) Mask64x2
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Equal compares for equality.
2025-06-12 03:54:34 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPCMPEQQ, CPU Feature: AVX2
func ( x Int64x4 ) Equal ( y Int64x4 ) Mask64x4
2025-05-22 19:59:12 +00:00
2025-07-23 07:37:14 +00:00
// Equal compares for equality.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPEQQ, CPU Feature: AVX512
2025-07-23 07:37:14 +00:00
func ( x Int64x8 ) Equal ( y Int64x8 ) Mask64x8
2025-07-09 16:24:34 +00:00
// Equal compares for equality.
//
// Asm: VPCMPEQB, CPU Feature: AVX
func ( x Uint8x16 ) Equal ( y Uint8x16 ) Mask8x16
// Equal compares for equality.
//
// Asm: VPCMPEQB, CPU Feature: AVX2
func ( x Uint8x32 ) Equal ( y Uint8x32 ) Mask8x32
2025-07-23 07:37:14 +00:00
// Equal compares for equality.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPEQB, CPU Feature: AVX512
2025-07-23 07:37:14 +00:00
func ( x Uint8x64 ) Equal ( y Uint8x64 ) Mask8x64
2025-07-09 16:24:34 +00:00
// Equal compares for equality.
//
// Asm: VPCMPEQW, CPU Feature: AVX
func ( x Uint16x8 ) Equal ( y Uint16x8 ) Mask16x8
// Equal compares for equality.
//
// Asm: VPCMPEQW, CPU Feature: AVX2
func ( x Uint16x16 ) Equal ( y Uint16x16 ) Mask16x16
2025-07-23 07:37:14 +00:00
// Equal compares for equality.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPEQW, CPU Feature: AVX512
2025-07-23 07:37:14 +00:00
func ( x Uint16x32 ) Equal ( y Uint16x32 ) Mask16x32
2025-07-09 16:24:34 +00:00
// Equal compares for equality.
//
// Asm: VPCMPEQD, CPU Feature: AVX
func ( x Uint32x4 ) Equal ( y Uint32x4 ) Mask32x4
// Equal compares for equality.
//
// Asm: VPCMPEQD, CPU Feature: AVX2
func ( x Uint32x8 ) Equal ( y Uint32x8 ) Mask32x8
2025-07-23 07:37:14 +00:00
// Equal compares for equality.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPEQD, CPU Feature: AVX512
2025-07-23 07:37:14 +00:00
func ( x Uint32x16 ) Equal ( y Uint32x16 ) Mask32x16
2025-07-09 16:24:34 +00:00
// Equal compares for equality.
//
// Asm: VPCMPEQQ, CPU Feature: AVX
func ( x Uint64x2 ) Equal ( y Uint64x2 ) Mask64x2
// Equal compares for equality.
//
// Asm: VPCMPEQQ, CPU Feature: AVX2
func ( x Uint64x4 ) Equal ( y Uint64x4 ) Mask64x4
2025-07-23 07:37:14 +00:00
// Equal compares for equality.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPEQQ, CPU Feature: AVX512
2025-07-23 07:37:14 +00:00
func ( x Uint64x8 ) Equal ( y Uint64x8 ) Mask64x8
2025-06-16 20:11:27 +00:00
// Equal compares for equality.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VCMPPS, CPU Feature: AVX
func ( x Float32x4 ) Equal ( y Float32x4 ) Mask32x4
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Equal compares for equality.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VCMPPS, CPU Feature: AVX
func ( x Float32x8 ) Equal ( y Float32x8 ) Mask32x8
2025-05-22 19:59:12 +00:00
2025-07-16 17:02:47 +00:00
// Equal compares for equality.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VCMPPS, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Float32x16 ) Equal ( y Float32x16 ) Mask32x16
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Equal compares for equality.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VCMPPD, CPU Feature: AVX
func ( x Float64x2 ) Equal ( y Float64x2 ) Mask64x2
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Equal compares for equality.
2025-06-12 03:54:34 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VCMPPD, CPU Feature: AVX
func ( x Float64x4 ) Equal ( y Float64x4 ) Mask64x4
2025-05-22 19:59:12 +00:00
2025-07-16 17:02:47 +00:00
// Equal compares for equality.
2025-06-12 03:54:34 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VCMPPD, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Float64x8 ) Equal ( y Float64x8 ) Mask64x8
2025-05-22 19:59:12 +00:00
2025-08-05 19:42:12 +00:00
/* Expand */
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
2025-08-11 16:02:00 -04:00
// Asm: VEXPANDPS, CPU Feature: AVX512
2025-08-05 19:42:12 +00:00
func ( x Float32x4 ) Expand ( mask Mask32x4 ) Float32x4
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
2025-08-11 16:02:00 -04:00
// Asm: VEXPANDPS, CPU Feature: AVX512
2025-08-05 19:42:12 +00:00
func ( x Float32x8 ) Expand ( mask Mask32x8 ) Float32x8
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
2025-08-11 16:02:00 -04:00
// Asm: VEXPANDPS, CPU Feature: AVX512
2025-08-05 19:42:12 +00:00
func ( x Float32x16 ) Expand ( mask Mask32x16 ) Float32x16
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
2025-08-11 16:02:00 -04:00
// Asm: VEXPANDPD, CPU Feature: AVX512
2025-08-05 19:42:12 +00:00
func ( x Float64x2 ) Expand ( mask Mask64x2 ) Float64x2
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
2025-08-11 16:02:00 -04:00
// Asm: VEXPANDPD, CPU Feature: AVX512
2025-08-05 19:42:12 +00:00
func ( x Float64x4 ) Expand ( mask Mask64x4 ) Float64x4
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
2025-08-11 16:02:00 -04:00
// Asm: VEXPANDPD, CPU Feature: AVX512
2025-08-05 19:42:12 +00:00
func ( x Float64x8 ) Expand ( mask Mask64x8 ) Float64x8
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
// Asm: VPEXPANDB, CPU Feature: AVX512VBMI2
func ( x Int8x16 ) Expand ( mask Mask8x16 ) Int8x16
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
// Asm: VPEXPANDB, CPU Feature: AVX512VBMI2
func ( x Int8x32 ) Expand ( mask Mask8x32 ) Int8x32
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
// Asm: VPEXPANDB, CPU Feature: AVX512VBMI2
func ( x Int8x64 ) Expand ( mask Mask8x64 ) Int8x64
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
// Asm: VPEXPANDW, CPU Feature: AVX512VBMI2
func ( x Int16x8 ) Expand ( mask Mask16x8 ) Int16x8
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
// Asm: VPEXPANDW, CPU Feature: AVX512VBMI2
func ( x Int16x16 ) Expand ( mask Mask16x16 ) Int16x16
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
// Asm: VPEXPANDW, CPU Feature: AVX512VBMI2
func ( x Int16x32 ) Expand ( mask Mask16x32 ) Int16x32
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
2025-08-11 16:02:00 -04:00
// Asm: VPEXPANDD, CPU Feature: AVX512
2025-08-05 19:42:12 +00:00
func ( x Int32x4 ) Expand ( mask Mask32x4 ) Int32x4
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
2025-08-11 16:02:00 -04:00
// Asm: VPEXPANDD, CPU Feature: AVX512
2025-08-05 19:42:12 +00:00
func ( x Int32x8 ) Expand ( mask Mask32x8 ) Int32x8
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
2025-08-11 16:02:00 -04:00
// Asm: VPEXPANDD, CPU Feature: AVX512
2025-08-05 19:42:12 +00:00
func ( x Int32x16 ) Expand ( mask Mask32x16 ) Int32x16
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
2025-08-11 16:02:00 -04:00
// Asm: VPEXPANDQ, CPU Feature: AVX512
2025-08-05 19:42:12 +00:00
func ( x Int64x2 ) Expand ( mask Mask64x2 ) Int64x2
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
2025-08-11 16:02:00 -04:00
// Asm: VPEXPANDQ, CPU Feature: AVX512
2025-08-05 19:42:12 +00:00
func ( x Int64x4 ) Expand ( mask Mask64x4 ) Int64x4
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
2025-08-11 16:02:00 -04:00
// Asm: VPEXPANDQ, CPU Feature: AVX512
2025-08-05 19:42:12 +00:00
func ( x Int64x8 ) Expand ( mask Mask64x8 ) Int64x8
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
// Asm: VPEXPANDB, CPU Feature: AVX512VBMI2
func ( x Uint8x16 ) Expand ( mask Mask8x16 ) Uint8x16
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
// Asm: VPEXPANDB, CPU Feature: AVX512VBMI2
func ( x Uint8x32 ) Expand ( mask Mask8x32 ) Uint8x32
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
// Asm: VPEXPANDB, CPU Feature: AVX512VBMI2
func ( x Uint8x64 ) Expand ( mask Mask8x64 ) Uint8x64
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
// Asm: VPEXPANDW, CPU Feature: AVX512VBMI2
func ( x Uint16x8 ) Expand ( mask Mask16x8 ) Uint16x8
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
// Asm: VPEXPANDW, CPU Feature: AVX512VBMI2
func ( x Uint16x16 ) Expand ( mask Mask16x16 ) Uint16x16
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
// Asm: VPEXPANDW, CPU Feature: AVX512VBMI2
func ( x Uint16x32 ) Expand ( mask Mask16x32 ) Uint16x32
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
2025-08-11 16:02:00 -04:00
// Asm: VPEXPANDD, CPU Feature: AVX512
2025-08-05 19:42:12 +00:00
func ( x Uint32x4 ) Expand ( mask Mask32x4 ) Uint32x4
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
2025-08-11 16:02:00 -04:00
// Asm: VPEXPANDD, CPU Feature: AVX512
2025-08-05 19:42:12 +00:00
func ( x Uint32x8 ) Expand ( mask Mask32x8 ) Uint32x8
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
2025-08-11 16:02:00 -04:00
// Asm: VPEXPANDD, CPU Feature: AVX512
2025-08-05 19:42:12 +00:00
func ( x Uint32x16 ) Expand ( mask Mask32x16 ) Uint32x16
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
2025-08-11 16:02:00 -04:00
// Asm: VPEXPANDQ, CPU Feature: AVX512
2025-08-05 19:42:12 +00:00
func ( x Uint64x2 ) Expand ( mask Mask64x2 ) Uint64x2
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
2025-08-11 16:02:00 -04:00
// Asm: VPEXPANDQ, CPU Feature: AVX512
2025-08-05 19:42:12 +00:00
func ( x Uint64x4 ) Expand ( mask Mask64x4 ) Uint64x4
// Expand performs an expansion on a vector x whose elements are packed to lower parts.
// The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
//
2025-08-11 16:02:00 -04:00
// Asm: VPEXPANDQ, CPU Feature: AVX512
2025-08-05 19:42:12 +00:00
func ( x Uint64x8 ) Expand ( mask Mask64x8 ) Uint64x8
2025-06-16 20:11:27 +00:00
/* Floor */
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Floor rounds elements down to the nearest integer.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VROUNDPS, CPU Feature: AVX
func ( x Float32x4 ) Floor ( ) Float32x4
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Floor rounds elements down to the nearest integer.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VROUNDPS, CPU Feature: AVX
func ( x Float32x8 ) Floor ( ) Float32x8
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Floor rounds elements down to the nearest integer.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VROUNDPD, CPU Feature: AVX
func ( x Float64x2 ) Floor ( ) Float64x2
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Floor rounds elements down to the nearest integer.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VROUNDPD, CPU Feature: AVX
func ( x Float64x4 ) Floor ( ) Float64x4
2025-05-22 19:59:12 +00:00
2025-08-01 15:58:29 -04:00
/* FloorScaled */
// FloorScaled rounds elements down with specified precision.
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-01 15:58:29 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRNDSCALEPS, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float32x4 ) FloorScaled ( prec uint8 ) Float32x4
2025-05-22 19:59:12 +00:00
2025-08-01 15:58:29 -04:00
// FloorScaled rounds elements down with specified precision.
2025-06-12 16:42:02 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRNDSCALEPS, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float32x8 ) FloorScaled ( prec uint8 ) Float32x8
// FloorScaled rounds elements down with specified precision.
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-01 15:58:29 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRNDSCALEPS, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float32x16 ) FloorScaled ( prec uint8 ) Float32x16
// FloorScaled rounds elements down with specified precision.
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-01 15:58:29 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRNDSCALEPD, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float64x2 ) FloorScaled ( prec uint8 ) Float64x2
// FloorScaled rounds elements down with specified precision.
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-01 15:58:29 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRNDSCALEPD, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float64x4 ) FloorScaled ( prec uint8 ) Float64x4
// FloorScaled rounds elements down with specified precision.
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-01 15:58:29 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRNDSCALEPD, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float64x8 ) FloorScaled ( prec uint8 ) Float64x8
/* FloorScaledResidue */
// FloorScaledResidue computes the difference after flooring with specified precision.
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-01 15:58:29 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPS, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float32x4 ) FloorScaledResidue ( prec uint8 ) Float32x4
2025-05-22 19:59:12 +00:00
2025-08-01 15:58:29 -04:00
// FloorScaledResidue computes the difference after flooring with specified precision.
2025-06-12 16:42:02 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPS, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float32x8 ) FloorScaledResidue ( prec uint8 ) Float32x8
2025-05-22 19:59:12 +00:00
2025-08-01 15:58:29 -04:00
// FloorScaledResidue computes the difference after flooring with specified precision.
2025-06-12 03:54:34 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPS, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float32x16 ) FloorScaledResidue ( prec uint8 ) Float32x16
2025-05-22 19:59:12 +00:00
2025-08-01 15:58:29 -04:00
// FloorScaledResidue computes the difference after flooring with specified precision.
2025-06-12 03:54:34 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPD, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float64x2 ) FloorScaledResidue ( prec uint8 ) Float64x2
2025-05-22 19:59:12 +00:00
2025-08-01 15:58:29 -04:00
// FloorScaledResidue computes the difference after flooring with specified precision.
2025-06-12 03:54:34 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPD, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float64x4 ) FloorScaledResidue ( prec uint8 ) Float64x4
2025-05-22 19:59:12 +00:00
2025-08-01 15:58:29 -04:00
// FloorScaledResidue computes the difference after flooring with specified precision.
2025-06-12 03:54:34 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPD, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float64x8 ) FloorScaledResidue ( prec uint8 ) Float64x8
2025-05-22 19:59:12 +00:00
2025-08-07 17:05:50 +00:00
/* GaloisFieldAffineTransform */
2025-06-26 04:07:48 +00:00
// GaloisFieldAffineTransform computes an affine transformation in GF(2^8):
// x is a vector of 8-bit vectors, with each adjacent 8 as a group; y is a vector of 8x8 1-bit matrixes;
2025-06-28 11:05:44 -04:00
// b is an 8-bit vector. The affine transformation is y * x + b, with each element of y
2025-06-26 04:07:48 +00:00
// corresponding to a group of 8 elements in x.
//
2025-08-11 17:20:48 +00:00
// b results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VGF2P8AFFINEQB, CPU Feature: AVX512GFNI
2025-06-28 11:05:44 -04:00
func ( x Uint8x16 ) GaloisFieldAffineTransform ( y Uint64x2 , b uint8 ) Uint8x16
2025-06-26 04:07:48 +00:00
// GaloisFieldAffineTransform computes an affine transformation in GF(2^8):
// x is a vector of 8-bit vectors, with each adjacent 8 as a group; y is a vector of 8x8 1-bit matrixes;
2025-06-28 11:05:44 -04:00
// b is an 8-bit vector. The affine transformation is y * x + b, with each element of y
2025-06-26 04:07:48 +00:00
// corresponding to a group of 8 elements in x.
//
2025-08-11 17:20:48 +00:00
// b results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VGF2P8AFFINEQB, CPU Feature: AVX512GFNI
2025-06-28 11:05:44 -04:00
func ( x Uint8x32 ) GaloisFieldAffineTransform ( y Uint64x4 , b uint8 ) Uint8x32
2025-06-26 04:07:48 +00:00
// GaloisFieldAffineTransform computes an affine transformation in GF(2^8):
// x is a vector of 8-bit vectors, with each adjacent 8 as a group; y is a vector of 8x8 1-bit matrixes;
2025-06-28 11:05:44 -04:00
// b is an 8-bit vector. The affine transformation is y * x + b, with each element of y
2025-06-26 04:07:48 +00:00
// corresponding to a group of 8 elements in x.
//
2025-08-11 17:20:48 +00:00
// b results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VGF2P8AFFINEQB, CPU Feature: AVX512GFNI
2025-06-28 11:05:44 -04:00
func ( x Uint8x64 ) GaloisFieldAffineTransform ( y Uint64x8 , b uint8 ) Uint8x64
2025-06-26 04:07:48 +00:00
2025-07-11 02:11:22 +00:00
/* GaloisFieldAffineTransformInverse */
2025-06-26 04:07:48 +00:00
2025-07-11 02:11:22 +00:00
// GaloisFieldAffineTransformInverse computes an affine transformation in GF(2^8),
// with x inverted with respect to reduction polynomial x^8 + x^4 + x^3 + x + 1:
2025-06-26 04:07:48 +00:00
// x is a vector of 8-bit vectors, with each adjacent 8 as a group; y is a vector of 8x8 1-bit matrixes;
2025-06-28 11:05:44 -04:00
// b is an 8-bit vector. The affine transformation is y * x + b, with each element of y
2025-06-26 04:07:48 +00:00
// corresponding to a group of 8 elements in x.
//
2025-08-11 17:20:48 +00:00
// b results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VGF2P8AFFINEINVQB, CPU Feature: AVX512GFNI
2025-07-11 02:11:22 +00:00
func ( x Uint8x16 ) GaloisFieldAffineTransformInverse ( y Uint64x2 , b uint8 ) Uint8x16
2025-06-26 04:07:48 +00:00
2025-07-11 02:11:22 +00:00
// GaloisFieldAffineTransformInverse computes an affine transformation in GF(2^8),
// with x inverted with respect to reduction polynomial x^8 + x^4 + x^3 + x + 1:
2025-06-26 04:07:48 +00:00
// x is a vector of 8-bit vectors, with each adjacent 8 as a group; y is a vector of 8x8 1-bit matrixes;
2025-06-28 11:05:44 -04:00
// b is an 8-bit vector. The affine transformation is y * x + b, with each element of y
2025-06-26 04:07:48 +00:00
// corresponding to a group of 8 elements in x.
//
2025-08-11 17:20:48 +00:00
// b results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VGF2P8AFFINEINVQB, CPU Feature: AVX512GFNI
2025-07-11 02:11:22 +00:00
func ( x Uint8x32 ) GaloisFieldAffineTransformInverse ( y Uint64x4 , b uint8 ) Uint8x32
2025-06-26 04:07:48 +00:00
2025-07-11 02:11:22 +00:00
// GaloisFieldAffineTransformInverse computes an affine transformation in GF(2^8),
// with x inverted with respect to reduction polynomial x^8 + x^4 + x^3 + x + 1:
2025-06-26 04:07:48 +00:00
// x is a vector of 8-bit vectors, with each adjacent 8 as a group; y is a vector of 8x8 1-bit matrixes;
2025-06-28 11:05:44 -04:00
// b is an 8-bit vector. The affine transformation is y * x + b, with each element of y
2025-06-26 04:07:48 +00:00
// corresponding to a group of 8 elements in x.
//
2025-08-11 17:20:48 +00:00
// b results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VGF2P8AFFINEINVQB, CPU Feature: AVX512GFNI
2025-07-11 02:11:22 +00:00
func ( x Uint8x64 ) GaloisFieldAffineTransformInverse ( y Uint64x8 , b uint8 ) Uint8x64
2025-06-26 04:07:48 +00:00
2025-08-18 21:13:00 +00:00
/* GaloisFieldMul */
2025-06-26 04:07:48 +00:00
2025-08-18 21:13:00 +00:00
// GaloisFieldMul computes element-wise GF(2^8) multiplication with
// reduction polynomial x^8 + x^4 + x^3 + x + 1.
2025-07-11 02:15:12 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VGF2P8MULB, CPU Feature: AVX512GFNI
func ( x Uint8x16 ) GaloisFieldMul ( y Uint8x16 ) Uint8x16
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// GaloisFieldMul computes element-wise GF(2^8) multiplication with
// reduction polynomial x^8 + x^4 + x^3 + x + 1.
2025-07-11 02:15:12 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VGF2P8MULB, CPU Feature: AVX512GFNI
func ( x Uint8x32 ) GaloisFieldMul ( y Uint8x32 ) Uint8x32
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// GaloisFieldMul computes element-wise GF(2^8) multiplication with
// reduction polynomial x^8 + x^4 + x^3 + x + 1.
2025-07-11 02:15:12 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VGF2P8MULB, CPU Feature: AVX512GFNI
func ( x Uint8x64 ) GaloisFieldMul ( y Uint8x64 ) Uint8x64
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
/* GetElem */
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// GetElem retrieves a single constant-indexed element's value.
2025-07-08 18:18:55 +00:00
//
2025-08-18 21:13:00 +00:00
// index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-14 17:26:15 -04:00
//
// Asm: VPEXTRD, CPU Feature: AVX
func ( x Float32x4 ) GetElem ( index uint8 ) float32
// GetElem retrieves a single constant-indexed element's value.
//
// index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
//
// Asm: VPEXTRQ, CPU Feature: AVX
func ( x Float64x2 ) GetElem ( index uint8 ) float64
2025-08-05 19:07:51 +00:00
// GetElem retrieves a single constant-indexed element's value.
2025-06-25 18:20:50 -04:00
//
2025-08-11 17:20:48 +00:00
// index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPEXTRB, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Int8x16 ) GetElem ( index uint8 ) int8
2025-06-25 18:20:50 -04:00
2025-08-05 19:07:51 +00:00
// GetElem retrieves a single constant-indexed element's value.
2025-06-25 18:20:50 -04:00
//
2025-08-11 17:20:48 +00:00
// index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPEXTRW, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Int16x8 ) GetElem ( index uint8 ) int16
2025-06-25 18:20:50 -04:00
2025-08-05 19:07:51 +00:00
// GetElem retrieves a single constant-indexed element's value.
2025-06-25 18:20:50 -04:00
//
2025-08-11 17:20:48 +00:00
// index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-05 19:07:51 +00:00
// Asm: VPEXTRD, CPU Feature: AVX
func ( x Int32x4 ) GetElem ( index uint8 ) int32
2025-06-25 18:20:50 -04:00
2025-08-05 19:07:51 +00:00
// GetElem retrieves a single constant-indexed element's value.
2025-06-25 18:20:50 -04:00
//
2025-08-11 17:20:48 +00:00
// index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-05 19:07:51 +00:00
// Asm: VPEXTRQ, CPU Feature: AVX
func ( x Int64x2 ) GetElem ( index uint8 ) int64
2025-06-25 18:20:50 -04:00
2025-08-05 19:07:51 +00:00
// GetElem retrieves a single constant-indexed element's value.
2025-06-25 18:20:50 -04:00
//
2025-08-11 17:20:48 +00:00
// index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPEXTRB, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Uint8x16 ) GetElem ( index uint8 ) uint8
2025-06-25 18:20:50 -04:00
2025-08-05 19:07:51 +00:00
// GetElem retrieves a single constant-indexed element's value.
2025-06-25 18:20:50 -04:00
//
2025-08-11 17:20:48 +00:00
// index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPEXTRW, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Uint16x8 ) GetElem ( index uint8 ) uint16
2025-06-25 18:20:50 -04:00
2025-08-05 19:07:51 +00:00
// GetElem retrieves a single constant-indexed element's value.
2025-06-25 18:20:50 -04:00
//
2025-08-11 17:20:48 +00:00
// index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-05 19:07:51 +00:00
// Asm: VPEXTRD, CPU Feature: AVX
func ( x Uint32x4 ) GetElem ( index uint8 ) uint32
2025-06-25 18:20:50 -04:00
2025-08-05 19:07:51 +00:00
// GetElem retrieves a single constant-indexed element's value.
2025-06-25 18:20:50 -04:00
//
2025-08-11 17:20:48 +00:00
// index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-05 19:07:51 +00:00
// Asm: VPEXTRQ, CPU Feature: AVX
func ( x Uint64x2 ) GetElem ( index uint8 ) uint64
/* GetHi */
// GetHi returns the upper half of x.
//
// Asm: VEXTRACTF128, CPU Feature: AVX
func ( x Float32x8 ) GetHi ( ) Float32x4
// GetHi returns the upper half of x.
//
2025-08-11 16:02:00 -04:00
// Asm: VEXTRACTF64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Float32x16 ) GetHi ( ) Float32x8
// GetHi returns the upper half of x.
//
// Asm: VEXTRACTF128, CPU Feature: AVX
func ( x Float64x4 ) GetHi ( ) Float64x2
// GetHi returns the upper half of x.
//
2025-08-11 16:02:00 -04:00
// Asm: VEXTRACTF64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Float64x8 ) GetHi ( ) Float64x4
// GetHi returns the upper half of x.
//
2025-06-25 18:20:50 -04:00
// Asm: VEXTRACTI128, CPU Feature: AVX2
2025-08-05 19:07:51 +00:00
func ( x Int8x32 ) GetHi ( ) Int8x16
2025-06-25 18:20:50 -04:00
2025-08-05 19:07:51 +00:00
// GetHi returns the upper half of x.
2025-06-25 18:20:50 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VEXTRACTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Int8x64 ) GetHi ( ) Int8x32
// GetHi returns the upper half of x.
2025-07-11 02:15:12 +00:00
//
2025-06-25 18:20:50 -04:00
// Asm: VEXTRACTI128, CPU Feature: AVX2
2025-08-05 19:07:51 +00:00
func ( x Int16x16 ) GetHi ( ) Int16x8
2025-06-25 18:20:50 -04:00
2025-08-05 19:07:51 +00:00
// GetHi returns the upper half of x.
2025-06-25 18:20:50 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VEXTRACTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Int16x32 ) GetHi ( ) Int16x16
// GetHi returns the upper half of x.
2025-07-11 02:15:12 +00:00
//
2025-06-25 18:20:50 -04:00
// Asm: VEXTRACTI128, CPU Feature: AVX2
2025-08-05 19:07:51 +00:00
func ( x Int32x8 ) GetHi ( ) Int32x4
2025-06-25 18:20:50 -04:00
2025-08-05 19:07:51 +00:00
// GetHi returns the upper half of x.
//
2025-08-11 16:02:00 -04:00
// Asm: VEXTRACTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Int32x16 ) GetHi ( ) Int32x8
2025-06-24 18:29:38 -04:00
2025-08-05 19:07:51 +00:00
// GetHi returns the upper half of x.
2025-06-24 18:29:38 -04:00
//
2025-08-05 19:07:51 +00:00
// Asm: VEXTRACTI128, CPU Feature: AVX2
func ( x Int64x4 ) GetHi ( ) Int64x2
// GetHi returns the upper half of x.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VEXTRACTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Int64x8 ) GetHi ( ) Int64x4
2025-06-24 18:29:38 -04:00
2025-08-05 19:07:51 +00:00
// GetHi returns the upper half of x.
2025-06-24 18:29:38 -04:00
//
2025-08-05 19:07:51 +00:00
// Asm: VEXTRACTI128, CPU Feature: AVX2
func ( x Uint8x32 ) GetHi ( ) Uint8x16
// GetHi returns the upper half of x.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VEXTRACTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Uint8x64 ) GetHi ( ) Uint8x32
2025-06-24 18:29:38 -04:00
2025-08-05 19:07:51 +00:00
// GetHi returns the upper half of x.
2025-06-24 18:29:38 -04:00
//
2025-08-05 19:07:51 +00:00
// Asm: VEXTRACTI128, CPU Feature: AVX2
func ( x Uint16x16 ) GetHi ( ) Uint16x8
// GetHi returns the upper half of x.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VEXTRACTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Uint16x32 ) GetHi ( ) Uint16x16
2025-06-24 18:29:38 -04:00
2025-08-05 19:07:51 +00:00
// GetHi returns the upper half of x.
2025-06-24 18:29:38 -04:00
//
2025-08-05 19:07:51 +00:00
// Asm: VEXTRACTI128, CPU Feature: AVX2
func ( x Uint32x8 ) GetHi ( ) Uint32x4
// GetHi returns the upper half of x.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VEXTRACTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Uint32x16 ) GetHi ( ) Uint32x8
2025-06-24 18:29:38 -04:00
2025-08-05 19:07:51 +00:00
// GetHi returns the upper half of x.
2025-06-24 18:29:38 -04:00
//
2025-08-05 19:07:51 +00:00
// Asm: VEXTRACTI128, CPU Feature: AVX2
func ( x Uint64x4 ) GetHi ( ) Uint64x2
// GetHi returns the upper half of x.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VEXTRACTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Uint64x8 ) GetHi ( ) Uint64x4
2025-06-24 18:29:38 -04:00
2025-08-05 19:07:51 +00:00
/* GetLo */
// GetLo returns the lower half of x.
2025-06-24 18:29:38 -04:00
//
2025-08-05 19:07:51 +00:00
// Asm: VEXTRACTF128, CPU Feature: AVX
func ( x Float32x8 ) GetLo ( ) Float32x4
// GetLo returns the lower half of x.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VEXTRACTF64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Float32x16 ) GetLo ( ) Float32x8
2025-06-24 18:29:38 -04:00
2025-08-05 19:07:51 +00:00
// GetLo returns the lower half of x.
2025-06-24 18:29:38 -04:00
//
2025-08-05 19:07:51 +00:00
// Asm: VEXTRACTF128, CPU Feature: AVX
func ( x Float64x4 ) GetLo ( ) Float64x2
// GetLo returns the lower half of x.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VEXTRACTF64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Float64x8 ) GetLo ( ) Float64x4
2025-06-24 18:29:38 -04:00
2025-08-05 19:07:51 +00:00
// GetLo returns the lower half of x.
2025-06-24 18:29:38 -04:00
//
2025-08-05 19:07:51 +00:00
// Asm: VEXTRACTI128, CPU Feature: AVX2
func ( x Int8x32 ) GetLo ( ) Int8x16
// GetLo returns the lower half of x.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VEXTRACTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Int8x64 ) GetLo ( ) Int8x32
// GetLo returns the lower half of x.
//
// Asm: VEXTRACTI128, CPU Feature: AVX2
func ( x Int16x16 ) GetLo ( ) Int16x8
// GetLo returns the lower half of x.
//
2025-08-11 16:02:00 -04:00
// Asm: VEXTRACTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Int16x32 ) GetLo ( ) Int16x16
// GetLo returns the lower half of x.
//
// Asm: VEXTRACTI128, CPU Feature: AVX2
func ( x Int32x8 ) GetLo ( ) Int32x4
// GetLo returns the lower half of x.
//
2025-08-11 16:02:00 -04:00
// Asm: VEXTRACTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Int32x16 ) GetLo ( ) Int32x8
// GetLo returns the lower half of x.
//
// Asm: VEXTRACTI128, CPU Feature: AVX2
func ( x Int64x4 ) GetLo ( ) Int64x2
// GetLo returns the lower half of x.
//
2025-08-11 16:02:00 -04:00
// Asm: VEXTRACTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Int64x8 ) GetLo ( ) Int64x4
// GetLo returns the lower half of x.
//
// Asm: VEXTRACTI128, CPU Feature: AVX2
func ( x Uint8x32 ) GetLo ( ) Uint8x16
// GetLo returns the lower half of x.
//
2025-08-11 16:02:00 -04:00
// Asm: VEXTRACTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Uint8x64 ) GetLo ( ) Uint8x32
// GetLo returns the lower half of x.
//
// Asm: VEXTRACTI128, CPU Feature: AVX2
func ( x Uint16x16 ) GetLo ( ) Uint16x8
// GetLo returns the lower half of x.
//
2025-08-11 16:02:00 -04:00
// Asm: VEXTRACTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Uint16x32 ) GetLo ( ) Uint16x16
// GetLo returns the lower half of x.
//
// Asm: VEXTRACTI128, CPU Feature: AVX2
func ( x Uint32x8 ) GetLo ( ) Uint32x4
// GetLo returns the lower half of x.
//
2025-08-11 16:02:00 -04:00
// Asm: VEXTRACTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Uint32x16 ) GetLo ( ) Uint32x8
// GetLo returns the lower half of x.
//
// Asm: VEXTRACTI128, CPU Feature: AVX2
func ( x Uint64x4 ) GetLo ( ) Uint64x2
// GetLo returns the lower half of x.
//
2025-08-11 16:02:00 -04:00
// Asm: VEXTRACTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Uint64x8 ) GetLo ( ) Uint64x4
2025-06-24 18:29:38 -04:00
2025-06-16 20:11:27 +00:00
/* Greater */
2025-05-22 19:59:12 +00:00
2025-06-12 16:42:02 +00:00
// Greater compares for greater than.
2025-06-12 03:54:34 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPCMPGTB, CPU Feature: AVX
func ( x Int8x16 ) Greater ( y Int8x16 ) Mask8x16
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Greater compares for greater than.
2025-06-12 03:54:34 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPCMPGTB, CPU Feature: AVX2
func ( x Int8x32 ) Greater ( y Int8x32 ) Mask8x32
2025-05-22 19:59:12 +00:00
2025-07-23 07:37:14 +00:00
// Greater compares for greater than.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPGTB, CPU Feature: AVX512
2025-07-23 07:37:14 +00:00
func ( x Int8x64 ) Greater ( y Int8x64 ) Mask8x64
2025-06-16 20:11:27 +00:00
// Greater compares for greater than.
2025-06-12 03:54:34 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPCMPGTW, CPU Feature: AVX
func ( x Int16x8 ) Greater ( y Int16x8 ) Mask16x8
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Greater compares for greater than.
2025-06-12 03:54:34 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPCMPGTW, CPU Feature: AVX2
func ( x Int16x16 ) Greater ( y Int16x16 ) Mask16x16
2025-05-22 19:59:12 +00:00
2025-07-23 07:37:14 +00:00
// Greater compares for greater than.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPGTW, CPU Feature: AVX512
2025-07-23 07:37:14 +00:00
func ( x Int16x32 ) Greater ( y Int16x32 ) Mask16x32
2025-06-16 20:11:27 +00:00
// Greater compares for greater than.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPCMPGTD, CPU Feature: AVX
func ( x Int32x4 ) Greater ( y Int32x4 ) Mask32x4
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Greater compares for greater than.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPCMPGTD, CPU Feature: AVX2
func ( x Int32x8 ) Greater ( y Int32x8 ) Mask32x8
2025-05-22 19:59:12 +00:00
2025-07-23 07:37:14 +00:00
// Greater compares for greater than.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPGTD, CPU Feature: AVX512
2025-07-23 07:37:14 +00:00
func ( x Int32x16 ) Greater ( y Int32x16 ) Mask32x16
2025-07-09 16:24:34 +00:00
// Greater compares for greater than.
//
// Asm: VPCMPGTQ, CPU Feature: AVX
2025-07-09 21:16:03 +00:00
func ( x Int64x2 ) Greater ( y Int64x2 ) Mask64x2
2025-07-09 16:24:34 +00:00
2025-06-16 20:11:27 +00:00
// Greater compares for greater than.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPCMPGTQ, CPU Feature: AVX2
func ( x Int64x4 ) Greater ( y Int64x4 ) Mask64x4
2025-05-22 19:59:12 +00:00
2025-07-23 07:37:14 +00:00
// Greater compares for greater than.
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPGTQ, CPU Feature: AVX512
2025-07-23 07:37:14 +00:00
func ( x Int64x8 ) Greater ( y Int64x8 ) Mask64x8
2025-06-16 20:11:27 +00:00
// Greater compares for greater than.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VCMPPS, CPU Feature: AVX
func ( x Float32x4 ) Greater ( y Float32x4 ) Mask32x4
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Greater compares for greater than.
2025-06-12 03:54:34 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VCMPPS, CPU Feature: AVX
func ( x Float32x8 ) Greater ( y Float32x8 ) Mask32x8
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Greater compares for greater than.
2025-06-12 03:54:34 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VCMPPS, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Float32x16 ) Greater ( y Float32x16 ) Mask32x16
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Greater compares for greater than.
2025-06-12 03:54:34 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VCMPPD, CPU Feature: AVX
func ( x Float64x2 ) Greater ( y Float64x2 ) Mask64x2
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Greater compares for greater than.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VCMPPD, CPU Feature: AVX
func ( x Float64x4 ) Greater ( y Float64x4 ) Mask64x4
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Greater compares for greater than.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VCMPPD, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Float64x8 ) Greater ( y Float64x8 ) Mask64x8
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Greater compares for greater than.
2025-06-12 03:54:34 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPUB, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Uint8x64 ) Greater ( y Uint8x64 ) Mask8x64
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Greater compares for greater than.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPUW, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Uint16x32 ) Greater ( y Uint16x32 ) Mask16x32
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Greater compares for greater than.
2025-06-12 03:54:34 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPUD, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Uint32x16 ) Greater ( y Uint32x16 ) Mask32x16
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// Greater compares for greater than.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPUQ, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Uint64x8 ) Greater ( y Uint64x8 ) Mask64x8
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
/* GreaterEqual */
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// GreaterEqual compares for greater than or equal.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VCMPPS, CPU Feature: AVX
func ( x Float32x4 ) GreaterEqual ( y Float32x4 ) Mask32x4
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// GreaterEqual compares for greater than or equal.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VCMPPS, CPU Feature: AVX
func ( x Float32x8 ) GreaterEqual ( y Float32x8 ) Mask32x8
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// GreaterEqual compares for greater than or equal.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VCMPPS, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Float32x16 ) GreaterEqual ( y Float32x16 ) Mask32x16
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// GreaterEqual compares for greater than or equal.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VCMPPD, CPU Feature: AVX
func ( x Float64x2 ) GreaterEqual ( y Float64x2 ) Mask64x2
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// GreaterEqual compares for greater than or equal.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VCMPPD, CPU Feature: AVX
func ( x Float64x4 ) GreaterEqual ( y Float64x4 ) Mask64x4
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// GreaterEqual compares for greater than or equal.
2025-06-12 03:54:34 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VCMPPD, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Float64x8 ) GreaterEqual ( y Float64x8 ) Mask64x8
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// GreaterEqual compares for greater than or equal.
2025-06-12 03:54:34 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPB, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Int8x64 ) GreaterEqual ( y Int8x64 ) Mask8x64
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// GreaterEqual compares for greater than or equal.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPW, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Int16x32 ) GreaterEqual ( y Int16x32 ) Mask16x32
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// GreaterEqual compares for greater than or equal.
2025-06-12 03:54:34 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPD, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Int32x16 ) GreaterEqual ( y Int32x16 ) Mask32x16
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// GreaterEqual compares for greater than or equal.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPQ, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Int64x8 ) GreaterEqual ( y Int64x8 ) Mask64x8
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// GreaterEqual compares for greater than or equal.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPUB, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Uint8x64 ) GreaterEqual ( y Uint8x64 ) Mask8x64
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// GreaterEqual compares for greater than or equal.
2025-06-12 03:54:34 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPUW, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Uint16x32 ) GreaterEqual ( y Uint16x32 ) Mask16x32
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// GreaterEqual compares for greater than or equal.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPUD, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Uint32x16 ) GreaterEqual ( y Uint32x16 ) Mask32x16
2025-05-22 19:59:12 +00:00
2025-06-16 20:11:27 +00:00
// GreaterEqual compares for greater than or equal.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPUQ, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Uint64x8 ) GreaterEqual ( y Uint64x8 ) Mask64x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
/* IsNan */
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// IsNan checks if elements are NaN. Use as x.IsNan(x).
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VCMPPS, CPU Feature: AVX
func ( x Float32x4 ) IsNan ( y Float32x4 ) Mask32x4
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// IsNan checks if elements are NaN. Use as x.IsNan(x).
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VCMPPS, CPU Feature: AVX
func ( x Float32x8 ) IsNan ( y Float32x8 ) Mask32x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// IsNan checks if elements are NaN. Use as x.IsNan(x).
2025-07-16 17:02:47 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VCMPPS, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Float32x16 ) IsNan ( y Float32x16 ) Mask32x16
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// IsNan checks if elements are NaN. Use as x.IsNan(x).
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VCMPPD, CPU Feature: AVX
func ( x Float64x2 ) IsNan ( y Float64x2 ) Mask64x2
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// IsNan checks if elements are NaN. Use as x.IsNan(x).
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VCMPPD, CPU Feature: AVX
func ( x Float64x4 ) IsNan ( y Float64x4 ) Mask64x4
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// IsNan checks if elements are NaN. Use as x.IsNan(x).
2025-07-16 17:02:47 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VCMPPD, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Float64x8 ) IsNan ( y Float64x8 ) Mask64x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
/* Less */
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Less compares for less than.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VCMPPS, CPU Feature: AVX
func ( x Float32x4 ) Less ( y Float32x4 ) Mask32x4
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Less compares for less than.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VCMPPS, CPU Feature: AVX
func ( x Float32x8 ) Less ( y Float32x8 ) Mask32x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Less compares for less than.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VCMPPS, CPU Feature: AVX512
func ( x Float32x16 ) Less ( y Float32x16 ) Mask32x16
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Less compares for less than.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VCMPPD, CPU Feature: AVX
func ( x Float64x2 ) Less ( y Float64x2 ) Mask64x2
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Less compares for less than.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VCMPPD, CPU Feature: AVX
func ( x Float64x4 ) Less ( y Float64x4 ) Mask64x4
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Less compares for less than.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VCMPPD, CPU Feature: AVX512
func ( x Float64x8 ) Less ( y Float64x8 ) Mask64x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Less compares for less than.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPCMPB, CPU Feature: AVX512
func ( x Int8x64 ) Less ( y Int8x64 ) Mask8x64
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Less compares for less than.
2025-06-12 16:42:02 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPCMPW, CPU Feature: AVX512
func ( x Int16x32 ) Less ( y Int16x32 ) Mask16x32
// Less compares for less than.
2025-07-16 17:02:47 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPD, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Int32x16 ) Less ( y Int32x16 ) Mask32x16
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Less compares for less than.
2025-07-16 17:02:47 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPQ, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Int64x8 ) Less ( y Int64x8 ) Mask64x8
2025-06-12 16:24:24 +00:00
2025-08-18 21:13:00 +00:00
// Less compares for less than.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPCMPUB, CPU Feature: AVX512
func ( x Uint8x64 ) Less ( y Uint8x64 ) Mask8x64
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Less compares for less than.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPCMPUW, CPU Feature: AVX512
func ( x Uint16x32 ) Less ( y Uint16x32 ) Mask16x32
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Less compares for less than.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPCMPUD, CPU Feature: AVX512
func ( x Uint32x16 ) Less ( y Uint32x16 ) Mask32x16
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Less compares for less than.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPCMPUQ, CPU Feature: AVX512
func ( x Uint64x8 ) Less ( y Uint64x8 ) Mask64x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
/* LessEqual */
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// LessEqual compares for less than or equal.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VCMPPS, CPU Feature: AVX
func ( x Float32x4 ) LessEqual ( y Float32x4 ) Mask32x4
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// LessEqual compares for less than or equal.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VCMPPS, CPU Feature: AVX
func ( x Float32x8 ) LessEqual ( y Float32x8 ) Mask32x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// LessEqual compares for less than or equal.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VCMPPS, CPU Feature: AVX512
func ( x Float32x16 ) LessEqual ( y Float32x16 ) Mask32x16
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// LessEqual compares for less than or equal.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VCMPPD, CPU Feature: AVX
func ( x Float64x2 ) LessEqual ( y Float64x2 ) Mask64x2
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// LessEqual compares for less than or equal.
2025-06-12 03:54:34 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VCMPPD, CPU Feature: AVX
func ( x Float64x4 ) LessEqual ( y Float64x4 ) Mask64x4
// LessEqual compares for less than or equal.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VCMPPD, CPU Feature: AVX512
func ( x Float64x8 ) LessEqual ( y Float64x8 ) Mask64x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// LessEqual compares for less than or equal.
2025-06-12 16:42:02 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPCMPB, CPU Feature: AVX512
func ( x Int8x64 ) LessEqual ( y Int8x64 ) Mask8x64
// LessEqual compares for less than or equal.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPCMPW, CPU Feature: AVX512
func ( x Int16x32 ) LessEqual ( y Int16x32 ) Mask16x32
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// LessEqual compares for less than or equal.
2025-06-12 16:42:02 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPCMPD, CPU Feature: AVX512
func ( x Int32x16 ) LessEqual ( y Int32x16 ) Mask32x16
// LessEqual compares for less than or equal.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPCMPQ, CPU Feature: AVX512
func ( x Int64x8 ) LessEqual ( y Int64x8 ) Mask64x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// LessEqual compares for less than or equal.
2025-06-12 16:24:24 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPCMPUB, CPU Feature: AVX512
func ( x Uint8x64 ) LessEqual ( y Uint8x64 ) Mask8x64
// LessEqual compares for less than or equal.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPCMPUW, CPU Feature: AVX512
func ( x Uint16x32 ) LessEqual ( y Uint16x32 ) Mask16x32
2025-06-12 16:24:24 +00:00
2025-08-18 21:13:00 +00:00
// LessEqual compares for less than or equal.
2025-06-12 16:42:02 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPCMPUD, CPU Feature: AVX512
func ( x Uint32x16 ) LessEqual ( y Uint32x16 ) Mask32x16
// LessEqual compares for less than or equal.
2025-07-16 17:02:47 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPUQ, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Uint64x8 ) LessEqual ( y Uint64x8 ) Mask64x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
/* Max */
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VMAXPS, CPU Feature: AVX
func ( x Float32x4 ) Max ( y Float32x4 ) Float32x4
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VMAXPS, CPU Feature: AVX
func ( x Float32x8 ) Max ( y Float32x8 ) Float32x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VMAXPS, CPU Feature: AVX512
func ( x Float32x16 ) Max ( y Float32x16 ) Float32x16
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VMAXPD, CPU Feature: AVX
func ( x Float64x2 ) Max ( y Float64x2 ) Float64x2
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VMAXPD, CPU Feature: AVX
func ( x Float64x4 ) Max ( y Float64x4 ) Float64x4
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VMAXPD, CPU Feature: AVX512
func ( x Float64x8 ) Max ( y Float64x8 ) Float64x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXSB, CPU Feature: AVX
func ( x Int8x16 ) Max ( y Int8x16 ) Int8x16
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXSB, CPU Feature: AVX2
func ( x Int8x32 ) Max ( y Int8x32 ) Int8x32
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXSB, CPU Feature: AVX512
func ( x Int8x64 ) Max ( y Int8x64 ) Int8x64
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXSW, CPU Feature: AVX
func ( x Int16x8 ) Max ( y Int16x8 ) Int16x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXSW, CPU Feature: AVX2
func ( x Int16x16 ) Max ( y Int16x16 ) Int16x16
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXSW, CPU Feature: AVX512
func ( x Int16x32 ) Max ( y Int16x32 ) Int16x32
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXSD, CPU Feature: AVX
func ( x Int32x4 ) Max ( y Int32x4 ) Int32x4
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXSD, CPU Feature: AVX2
func ( x Int32x8 ) Max ( y Int32x8 ) Int32x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXSD, CPU Feature: AVX512
func ( x Int32x16 ) Max ( y Int32x16 ) Int32x16
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXSQ, CPU Feature: AVX512
func ( x Int64x2 ) Max ( y Int64x2 ) Int64x2
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXSQ, CPU Feature: AVX512
func ( x Int64x4 ) Max ( y Int64x4 ) Int64x4
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXSQ, CPU Feature: AVX512
func ( x Int64x8 ) Max ( y Int64x8 ) Int64x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXUB, CPU Feature: AVX
func ( x Uint8x16 ) Max ( y Uint8x16 ) Uint8x16
2025-06-12 16:24:24 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXUB, CPU Feature: AVX2
func ( x Uint8x32 ) Max ( y Uint8x32 ) Uint8x32
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXUB, CPU Feature: AVX512
func ( x Uint8x64 ) Max ( y Uint8x64 ) Uint8x64
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXUW, CPU Feature: AVX
func ( x Uint16x8 ) Max ( y Uint16x8 ) Uint16x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXUW, CPU Feature: AVX2
func ( x Uint16x16 ) Max ( y Uint16x16 ) Uint16x16
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXUW, CPU Feature: AVX512
func ( x Uint16x32 ) Max ( y Uint16x32 ) Uint16x32
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXUD, CPU Feature: AVX
func ( x Uint32x4 ) Max ( y Uint32x4 ) Uint32x4
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXUD, CPU Feature: AVX2
func ( x Uint32x8 ) Max ( y Uint32x8 ) Uint32x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXUD, CPU Feature: AVX512
func ( x Uint32x16 ) Max ( y Uint32x16 ) Uint32x16
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXUQ, CPU Feature: AVX512
func ( x Uint64x2 ) Max ( y Uint64x2 ) Uint64x2
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXUQ, CPU Feature: AVX512
func ( x Uint64x4 ) Max ( y Uint64x4 ) Uint64x4
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Max computes the maximum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMAXUQ, CPU Feature: AVX512
func ( x Uint64x8 ) Max ( y Uint64x8 ) Uint64x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
/* Min */
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-06-12 16:42:02 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VMINPS, CPU Feature: AVX
func ( x Float32x4 ) Min ( y Float32x4 ) Float32x4
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-06-12 03:54:34 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VMINPS, CPU Feature: AVX
func ( x Float32x8 ) Min ( y Float32x8 ) Float32x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-06-12 16:42:02 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VMINPS, CPU Feature: AVX512
func ( x Float32x16 ) Min ( y Float32x16 ) Float32x16
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-06-12 16:42:02 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VMINPD, CPU Feature: AVX
func ( x Float64x2 ) Min ( y Float64x2 ) Float64x2
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-06-12 16:42:02 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VMINPD, CPU Feature: AVX
func ( x Float64x4 ) Min ( y Float64x4 ) Float64x4
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-06-12 16:42:02 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VMINPD, CPU Feature: AVX512
func ( x Float64x8 ) Min ( y Float64x8 ) Float64x8
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINSB, CPU Feature: AVX
func ( x Int8x16 ) Min ( y Int8x16 ) Int8x16
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINSB, CPU Feature: AVX2
func ( x Int8x32 ) Min ( y Int8x32 ) Int8x32
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINSB, CPU Feature: AVX512
func ( x Int8x64 ) Min ( y Int8x64 ) Int8x64
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINSW, CPU Feature: AVX
func ( x Int16x8 ) Min ( y Int16x8 ) Int16x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINSW, CPU Feature: AVX2
func ( x Int16x16 ) Min ( y Int16x16 ) Int16x16
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINSW, CPU Feature: AVX512
func ( x Int16x32 ) Min ( y Int16x32 ) Int16x32
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-06-12 16:42:02 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINSD, CPU Feature: AVX
func ( x Int32x4 ) Min ( y Int32x4 ) Int32x4
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-06-12 16:42:02 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINSD, CPU Feature: AVX2
func ( x Int32x8 ) Min ( y Int32x8 ) Int32x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-06-12 16:42:02 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINSD, CPU Feature: AVX512
func ( x Int32x16 ) Min ( y Int32x16 ) Int32x16
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-06-12 03:54:34 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINSQ, CPU Feature: AVX512
func ( x Int64x2 ) Min ( y Int64x2 ) Int64x2
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-06-12 03:54:34 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINSQ, CPU Feature: AVX512
func ( x Int64x4 ) Min ( y Int64x4 ) Int64x4
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-06-12 16:42:02 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINSQ, CPU Feature: AVX512
func ( x Int64x8 ) Min ( y Int64x8 ) Int64x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-06-12 16:42:02 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINUB, CPU Feature: AVX
func ( x Uint8x16 ) Min ( y Uint8x16 ) Uint8x16
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-06-12 16:42:02 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINUB, CPU Feature: AVX2
func ( x Uint8x32 ) Min ( y Uint8x32 ) Uint8x32
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-06-12 03:54:34 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINUB, CPU Feature: AVX512
func ( x Uint8x64 ) Min ( y Uint8x64 ) Uint8x64
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-06-12 03:54:34 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINUW, CPU Feature: AVX
func ( x Uint16x8 ) Min ( y Uint16x8 ) Uint16x8
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-06-12 16:42:02 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINUW, CPU Feature: AVX2
func ( x Uint16x16 ) Min ( y Uint16x16 ) Uint16x16
2025-05-22 19:59:12 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-06-12 16:42:02 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINUW, CPU Feature: AVX512
func ( x Uint16x32 ) Min ( y Uint16x32 ) Uint16x32
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-07-08 18:18:55 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINUD, CPU Feature: AVX
func ( x Uint32x4 ) Min ( y Uint32x4 ) Uint32x4
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-07-08 18:18:55 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINUD, CPU Feature: AVX2
func ( x Uint32x8 ) Min ( y Uint32x8 ) Uint32x8
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-07-08 18:18:55 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINUD, CPU Feature: AVX512
func ( x Uint32x16 ) Min ( y Uint32x16 ) Uint32x16
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-07-08 18:18:55 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINUQ, CPU Feature: AVX512
func ( x Uint64x2 ) Min ( y Uint64x2 ) Uint64x2
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-07-08 18:18:55 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINUQ, CPU Feature: AVX512
func ( x Uint64x4 ) Min ( y Uint64x4 ) Uint64x4
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Min computes the minimum of corresponding elements.
2025-07-08 18:18:55 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMINUQ, CPU Feature: AVX512
func ( x Uint64x8 ) Min ( y Uint64x8 ) Uint64x8
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
/* Mul */
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Mul multiplies corresponding elements of two vectors.
2025-07-08 18:18:55 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VMULPS, CPU Feature: AVX
func ( x Float32x4 ) Mul ( y Float32x4 ) Float32x4
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Mul multiplies corresponding elements of two vectors.
2025-07-08 18:18:55 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VMULPS, CPU Feature: AVX
func ( x Float32x8 ) Mul ( y Float32x8 ) Float32x8
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Mul multiplies corresponding elements of two vectors.
2025-07-08 18:18:55 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VMULPS, CPU Feature: AVX512
func ( x Float32x16 ) Mul ( y Float32x16 ) Float32x16
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Mul multiplies corresponding elements of two vectors.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VMULPD, CPU Feature: AVX
func ( x Float64x2 ) Mul ( y Float64x2 ) Float64x2
// Mul multiplies corresponding elements of two vectors.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VMULPD, CPU Feature: AVX
func ( x Float64x4 ) Mul ( y Float64x4 ) Float64x4
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// Mul multiplies corresponding elements of two vectors.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VMULPD, CPU Feature: AVX512
func ( x Float64x8 ) Mul ( y Float64x8 ) Float64x8
// Mul multiplies corresponding elements of two vectors.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULLW, CPU Feature: AVX
func ( x Int16x8 ) Mul ( y Int16x8 ) Int16x8
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// Mul multiplies corresponding elements of two vectors.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULLW, CPU Feature: AVX2
func ( x Int16x16 ) Mul ( y Int16x16 ) Int16x16
// Mul multiplies corresponding elements of two vectors.
2025-08-07 17:05:50 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPMULLW, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Int16x32 ) Mul ( y Int16x32 ) Int16x32
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// Mul multiplies corresponding elements of two vectors.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULLD, CPU Feature: AVX
func ( x Int32x4 ) Mul ( y Int32x4 ) Int32x4
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// Mul multiplies corresponding elements of two vectors.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULLD, CPU Feature: AVX2
func ( x Int32x8 ) Mul ( y Int32x8 ) Int32x8
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// Mul multiplies corresponding elements of two vectors.
2025-08-07 17:05:50 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPMULLD, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Int32x16 ) Mul ( y Int32x16 ) Int32x16
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// Mul multiplies corresponding elements of two vectors.
2025-08-07 17:05:50 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPMULLQ, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Int64x2 ) Mul ( y Int64x2 ) Int64x2
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// Mul multiplies corresponding elements of two vectors.
2025-08-07 17:05:50 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPMULLQ, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Int64x4 ) Mul ( y Int64x4 ) Int64x4
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// Mul multiplies corresponding elements of two vectors.
2025-08-07 17:05:50 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPMULLQ, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Int64x8 ) Mul ( y Int64x8 ) Int64x8
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// Mul multiplies corresponding elements of two vectors.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULLW, CPU Feature: AVX
func ( x Uint16x8 ) Mul ( y Uint16x8 ) Uint16x8
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// Mul multiplies corresponding elements of two vectors.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULLW, CPU Feature: AVX2
func ( x Uint16x16 ) Mul ( y Uint16x16 ) Uint16x16
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// Mul multiplies corresponding elements of two vectors.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULLW, CPU Feature: AVX512
func ( x Uint16x32 ) Mul ( y Uint16x32 ) Uint16x32
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// Mul multiplies corresponding elements of two vectors.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULLD, CPU Feature: AVX
func ( x Uint32x4 ) Mul ( y Uint32x4 ) Uint32x4
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// Mul multiplies corresponding elements of two vectors.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULLD, CPU Feature: AVX2
func ( x Uint32x8 ) Mul ( y Uint32x8 ) Uint32x8
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// Mul multiplies corresponding elements of two vectors.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULLD, CPU Feature: AVX512
func ( x Uint32x16 ) Mul ( y Uint32x16 ) Uint32x16
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// Mul multiplies corresponding elements of two vectors.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULLQ, CPU Feature: AVX512
func ( x Uint64x2 ) Mul ( y Uint64x2 ) Uint64x2
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// Mul multiplies corresponding elements of two vectors.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULLQ, CPU Feature: AVX512
func ( x Uint64x4 ) Mul ( y Uint64x4 ) Uint64x4
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// Mul multiplies corresponding elements of two vectors.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULLQ, CPU Feature: AVX512
func ( x Uint64x8 ) Mul ( y Uint64x8 ) Uint64x8
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
/* MulAdd */
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// MulAdd performs a fused (x * y) + z.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VFMADD213PS, CPU Feature: AVX512
func ( x Float32x4 ) MulAdd ( y Float32x4 , z Float32x4 ) Float32x4
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// MulAdd performs a fused (x * y) + z.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VFMADD213PS, CPU Feature: AVX512
func ( x Float32x8 ) MulAdd ( y Float32x8 , z Float32x8 ) Float32x8
2025-06-24 15:21:29 +00:00
2025-08-18 21:13:00 +00:00
// MulAdd performs a fused (x * y) + z.
2025-06-24 15:21:29 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VFMADD213PS, CPU Feature: AVX512
func ( x Float32x16 ) MulAdd ( y Float32x16 , z Float32x16 ) Float32x16
2025-06-24 15:21:29 +00:00
2025-08-18 21:13:00 +00:00
// MulAdd performs a fused (x * y) + z.
2025-06-24 15:21:29 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VFMADD213PD, CPU Feature: AVX512
func ( x Float64x2 ) MulAdd ( y Float64x2 , z Float64x2 ) Float64x2
2025-06-24 15:21:29 +00:00
2025-08-18 21:13:00 +00:00
// MulAdd performs a fused (x * y) + z.
2025-06-24 15:21:29 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VFMADD213PD, CPU Feature: AVX512
func ( x Float64x4 ) MulAdd ( y Float64x4 , z Float64x4 ) Float64x4
2025-06-24 15:21:29 +00:00
2025-08-18 21:13:00 +00:00
// MulAdd performs a fused (x * y) + z.
2025-06-24 15:21:29 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VFMADD213PD, CPU Feature: AVX512
func ( x Float64x8 ) MulAdd ( y Float64x8 , z Float64x8 ) Float64x8
2025-06-24 15:21:29 +00:00
2025-08-18 21:13:00 +00:00
/* MulAddSub */
2025-06-24 15:21:29 +00:00
2025-08-18 21:13:00 +00:00
// MulAddSub performs a fused (x * y) - z for odd-indexed elements, and (x * y) + z for even-indexed elements.
2025-06-24 15:21:29 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VFMADDSUB213PS, CPU Feature: AVX512
func ( x Float32x4 ) MulAddSub ( y Float32x4 , z Float32x4 ) Float32x4
2025-06-24 15:21:29 +00:00
2025-08-18 21:13:00 +00:00
// MulAddSub performs a fused (x * y) - z for odd-indexed elements, and (x * y) + z for even-indexed elements.
2025-06-24 15:21:29 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VFMADDSUB213PS, CPU Feature: AVX512
func ( x Float32x8 ) MulAddSub ( y Float32x8 , z Float32x8 ) Float32x8
2025-06-24 15:21:29 +00:00
2025-08-18 21:13:00 +00:00
// MulAddSub performs a fused (x * y) - z for odd-indexed elements, and (x * y) + z for even-indexed elements.
2025-06-24 15:21:29 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VFMADDSUB213PS, CPU Feature: AVX512
func ( x Float32x16 ) MulAddSub ( y Float32x16 , z Float32x16 ) Float32x16
2025-06-24 15:21:29 +00:00
2025-08-18 21:13:00 +00:00
// MulAddSub performs a fused (x * y) - z for odd-indexed elements, and (x * y) + z for even-indexed elements.
2025-06-24 15:21:29 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VFMADDSUB213PD, CPU Feature: AVX512
func ( x Float64x2 ) MulAddSub ( y Float64x2 , z Float64x2 ) Float64x2
2025-06-24 15:21:29 +00:00
2025-08-18 21:13:00 +00:00
// MulAddSub performs a fused (x * y) - z for odd-indexed elements, and (x * y) + z for even-indexed elements.
2025-06-24 15:21:29 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VFMADDSUB213PD, CPU Feature: AVX512
func ( x Float64x4 ) MulAddSub ( y Float64x4 , z Float64x4 ) Float64x4
2025-06-24 15:21:29 +00:00
2025-08-18 21:13:00 +00:00
// MulAddSub performs a fused (x * y) - z for odd-indexed elements, and (x * y) + z for even-indexed elements.
2025-06-24 15:21:29 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VFMADDSUB213PD, CPU Feature: AVX512
func ( x Float64x8 ) MulAddSub ( y Float64x8 , z Float64x8 ) Float64x8
2025-06-24 15:21:29 +00:00
2025-08-18 21:13:00 +00:00
/* MulEvenWiden */
2025-06-24 15:21:29 +00:00
2025-08-18 21:13:00 +00:00
// MulEvenWiden multiplies even-indexed elements, widening the result.
// Result[i] = v1.Even[i] * v2.Even[i].
2025-06-24 15:21:29 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULDQ, CPU Feature: AVX
func ( x Int32x4 ) MulEvenWiden ( y Int32x4 ) Int64x2
2025-06-24 15:21:29 +00:00
2025-08-18 21:13:00 +00:00
// MulEvenWiden multiplies even-indexed elements, widening the result.
// Result[i] = v1.Even[i] * v2.Even[i].
2025-06-24 15:21:29 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULDQ, CPU Feature: AVX2
func ( x Int32x8 ) MulEvenWiden ( y Int32x8 ) Int64x4
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// MulEvenWiden multiplies even-indexed elements, widening the result.
// Result[i] = v1.Even[i] * v2.Even[i].
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULUDQ, CPU Feature: AVX
func ( x Uint32x4 ) MulEvenWiden ( y Uint32x4 ) Uint64x2
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// MulEvenWiden multiplies even-indexed elements, widening the result.
// Result[i] = v1.Even[i] * v2.Even[i].
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULUDQ, CPU Feature: AVX2
func ( x Uint32x8 ) MulEvenWiden ( y Uint32x8 ) Uint64x4
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
/* MulHigh */
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// MulHigh multiplies elements and stores the high part of the result.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULHW, CPU Feature: AVX
func ( x Int16x8 ) MulHigh ( y Int16x8 ) Int16x8
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// MulHigh multiplies elements and stores the high part of the result.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULHW, CPU Feature: AVX2
func ( x Int16x16 ) MulHigh ( y Int16x16 ) Int16x16
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// MulHigh multiplies elements and stores the high part of the result.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULHW, CPU Feature: AVX512
func ( x Int16x32 ) MulHigh ( y Int16x32 ) Int16x32
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// MulHigh multiplies elements and stores the high part of the result.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULHUW, CPU Feature: AVX
func ( x Uint16x8 ) MulHigh ( y Uint16x8 ) Uint16x8
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// MulHigh multiplies elements and stores the high part of the result.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULHUW, CPU Feature: AVX2
func ( x Uint16x16 ) MulHigh ( y Uint16x16 ) Uint16x16
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// MulHigh multiplies elements and stores the high part of the result.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPMULHUW, CPU Feature: AVX512
func ( x Uint16x32 ) MulHigh ( y Uint16x32 ) Uint16x32
/* MulSubAdd */
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// MulSubAdd performs a fused (x * y) + z for odd-indexed elements, and (x * y) - z for even-indexed elements.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VFMSUBADD213PS, CPU Feature: AVX512
func ( x Float32x4 ) MulSubAdd ( y Float32x4 , z Float32x4 ) Float32x4
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// MulSubAdd performs a fused (x * y) + z for odd-indexed elements, and (x * y) - z for even-indexed elements.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VFMSUBADD213PS, CPU Feature: AVX512
func ( x Float32x8 ) MulSubAdd ( y Float32x8 , z Float32x8 ) Float32x8
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// MulSubAdd performs a fused (x * y) + z for odd-indexed elements, and (x * y) - z for even-indexed elements.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VFMSUBADD213PS, CPU Feature: AVX512
func ( x Float32x16 ) MulSubAdd ( y Float32x16 , z Float32x16 ) Float32x16
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// MulSubAdd performs a fused (x * y) + z for odd-indexed elements, and (x * y) - z for even-indexed elements.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VFMSUBADD213PD, CPU Feature: AVX512
func ( x Float64x2 ) MulSubAdd ( y Float64x2 , z Float64x2 ) Float64x2
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// MulSubAdd performs a fused (x * y) + z for odd-indexed elements, and (x * y) - z for even-indexed elements.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VFMSUBADD213PD, CPU Feature: AVX512
func ( x Float64x4 ) MulSubAdd ( y Float64x4 , z Float64x4 ) Float64x4
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// MulSubAdd performs a fused (x * y) + z for odd-indexed elements, and (x * y) - z for even-indexed elements.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VFMSUBADD213PD, CPU Feature: AVX512
func ( x Float64x8 ) MulSubAdd ( y Float64x8 , z Float64x8 ) Float64x8
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
/* NotEqual */
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// NotEqual compares for inequality.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VCMPPS, CPU Feature: AVX
func ( x Float32x4 ) NotEqual ( y Float32x4 ) Mask32x4
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// NotEqual compares for inequality.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VCMPPS, CPU Feature: AVX
func ( x Float32x8 ) NotEqual ( y Float32x8 ) Mask32x8
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// NotEqual compares for inequality.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VCMPPS, CPU Feature: AVX512
func ( x Float32x16 ) NotEqual ( y Float32x16 ) Mask32x16
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// NotEqual compares for inequality.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VCMPPD, CPU Feature: AVX
func ( x Float64x2 ) NotEqual ( y Float64x2 ) Mask64x2
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// NotEqual compares for inequality.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VCMPPD, CPU Feature: AVX
func ( x Float64x4 ) NotEqual ( y Float64x4 ) Mask64x4
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// NotEqual compares for inequality.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VCMPPD, CPU Feature: AVX512
func ( x Float64x8 ) NotEqual ( y Float64x8 ) Mask64x8
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// NotEqual compares for inequality.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPCMPB, CPU Feature: AVX512
func ( x Int8x64 ) NotEqual ( y Int8x64 ) Mask8x64
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// NotEqual compares for inequality.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPCMPW, CPU Feature: AVX512
func ( x Int16x32 ) NotEqual ( y Int16x32 ) Mask16x32
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// NotEqual compares for inequality.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPCMPD, CPU Feature: AVX512
func ( x Int32x16 ) NotEqual ( y Int32x16 ) Mask32x16
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// NotEqual compares for inequality.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPCMPQ, CPU Feature: AVX512
func ( x Int64x8 ) NotEqual ( y Int64x8 ) Mask64x8
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// NotEqual compares for inequality.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPCMPUB, CPU Feature: AVX512
func ( x Uint8x64 ) NotEqual ( y Uint8x64 ) Mask8x64
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// NotEqual compares for inequality.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPCMPUW, CPU Feature: AVX512
func ( x Uint16x32 ) NotEqual ( y Uint16x32 ) Mask16x32
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// NotEqual compares for inequality.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPCMPUD, CPU Feature: AVX512
func ( x Uint32x16 ) NotEqual ( y Uint32x16 ) Mask32x16
2025-08-07 17:05:50 +00:00
2025-08-18 21:13:00 +00:00
// NotEqual compares for inequality.
2025-08-07 17:05:50 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPCMPUQ, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Uint64x8 ) NotEqual ( y Uint64x8 ) Mask64x8
2025-08-07 17:05:50 +00:00
/* OnesCount */
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTB, CPU Feature: AVX512BITALG
func ( x Int8x16 ) OnesCount ( ) Int8x16
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTB, CPU Feature: AVX512BITALG
func ( x Int8x32 ) OnesCount ( ) Int8x32
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTB, CPU Feature: AVX512BITALG
func ( x Int8x64 ) OnesCount ( ) Int8x64
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTW, CPU Feature: AVX512BITALG
func ( x Int16x8 ) OnesCount ( ) Int16x8
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTW, CPU Feature: AVX512BITALG
func ( x Int16x16 ) OnesCount ( ) Int16x16
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTW, CPU Feature: AVX512BITALG
func ( x Int16x32 ) OnesCount ( ) Int16x32
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTD, CPU Feature: AVX512VPOPCNTDQ
func ( x Int32x4 ) OnesCount ( ) Int32x4
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTD, CPU Feature: AVX512VPOPCNTDQ
func ( x Int32x8 ) OnesCount ( ) Int32x8
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTD, CPU Feature: AVX512VPOPCNTDQ
func ( x Int32x16 ) OnesCount ( ) Int32x16
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTQ, CPU Feature: AVX512VPOPCNTDQ
func ( x Int64x2 ) OnesCount ( ) Int64x2
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTQ, CPU Feature: AVX512VPOPCNTDQ
func ( x Int64x4 ) OnesCount ( ) Int64x4
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTQ, CPU Feature: AVX512VPOPCNTDQ
func ( x Int64x8 ) OnesCount ( ) Int64x8
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTB, CPU Feature: AVX512BITALG
func ( x Uint8x16 ) OnesCount ( ) Uint8x16
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTB, CPU Feature: AVX512BITALG
func ( x Uint8x32 ) OnesCount ( ) Uint8x32
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTB, CPU Feature: AVX512BITALG
func ( x Uint8x64 ) OnesCount ( ) Uint8x64
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTW, CPU Feature: AVX512BITALG
func ( x Uint16x8 ) OnesCount ( ) Uint16x8
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTW, CPU Feature: AVX512BITALG
func ( x Uint16x16 ) OnesCount ( ) Uint16x16
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTW, CPU Feature: AVX512BITALG
func ( x Uint16x32 ) OnesCount ( ) Uint16x32
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTD, CPU Feature: AVX512VPOPCNTDQ
func ( x Uint32x4 ) OnesCount ( ) Uint32x4
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTD, CPU Feature: AVX512VPOPCNTDQ
func ( x Uint32x8 ) OnesCount ( ) Uint32x8
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTD, CPU Feature: AVX512VPOPCNTDQ
func ( x Uint32x16 ) OnesCount ( ) Uint32x16
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTQ, CPU Feature: AVX512VPOPCNTDQ
func ( x Uint64x2 ) OnesCount ( ) Uint64x2
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTQ, CPU Feature: AVX512VPOPCNTDQ
func ( x Uint64x4 ) OnesCount ( ) Uint64x4
// OnesCount counts the number of set bits in each element.
//
// Asm: VPOPCNTQ, CPU Feature: AVX512VPOPCNTDQ
func ( x Uint64x8 ) OnesCount ( ) Uint64x8
2025-06-24 15:21:29 +00:00
/* Or */
// Or performs a bitwise OR operation between two vectors.
//
// Asm: VPOR, CPU Feature: AVX
func ( x Int8x16 ) Or ( y Int8x16 ) Int8x16
// Or performs a bitwise OR operation between two vectors.
//
// Asm: VPOR, CPU Feature: AVX2
func ( x Int8x32 ) Or ( y Int8x32 ) Int8x32
2025-08-01 19:13:13 +00:00
// Or performs a bitwise OR operation between two vectors.
//
2025-08-11 16:02:00 -04:00
// Asm: VPORD, CPU Feature: AVX512
2025-08-01 19:13:13 +00:00
func ( x Int8x64 ) Or ( y Int8x64 ) Int8x64
2025-06-24 15:21:29 +00:00
// Or performs a bitwise OR operation between two vectors.
//
// Asm: VPOR, CPU Feature: AVX
func ( x Int16x8 ) Or ( y Int16x8 ) Int16x8
// Or performs a bitwise OR operation between two vectors.
//
// Asm: VPOR, CPU Feature: AVX2
func ( x Int16x16 ) Or ( y Int16x16 ) Int16x16
2025-08-01 19:13:13 +00:00
// Or performs a bitwise OR operation between two vectors.
//
2025-08-11 16:02:00 -04:00
// Asm: VPORD, CPU Feature: AVX512
2025-08-01 19:13:13 +00:00
func ( x Int16x32 ) Or ( y Int16x32 ) Int16x32
2025-06-24 15:21:29 +00:00
// Or performs a bitwise OR operation between two vectors.
//
// Asm: VPOR, CPU Feature: AVX
func ( x Int32x4 ) Or ( y Int32x4 ) Int32x4
// Or performs a bitwise OR operation between two vectors.
//
// Asm: VPOR, CPU Feature: AVX2
func ( x Int32x8 ) Or ( y Int32x8 ) Int32x8
2025-07-16 17:02:47 +00:00
// Or performs a bitwise OR operation between two vectors.
2025-06-24 15:21:29 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPORD, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int32x16 ) Or ( y Int32x16 ) Int32x16
// Or performs a bitwise OR operation between two vectors.
//
// Asm: VPOR, CPU Feature: AVX
func ( x Int64x2 ) Or ( y Int64x2 ) Int64x2
// Or performs a bitwise OR operation between two vectors.
//
// Asm: VPOR, CPU Feature: AVX2
func ( x Int64x4 ) Or ( y Int64x4 ) Int64x4
2025-07-16 17:02:47 +00:00
// Or performs a bitwise OR operation between two vectors.
2025-06-24 15:21:29 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPORQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int64x8 ) Or ( y Int64x8 ) Int64x8
// Or performs a bitwise OR operation between two vectors.
//
// Asm: VPOR, CPU Feature: AVX
func ( x Uint8x16 ) Or ( y Uint8x16 ) Uint8x16
// Or performs a bitwise OR operation between two vectors.
//
// Asm: VPOR, CPU Feature: AVX2
func ( x Uint8x32 ) Or ( y Uint8x32 ) Uint8x32
2025-08-01 19:13:13 +00:00
// Or performs a bitwise OR operation between two vectors.
//
2025-08-11 16:02:00 -04:00
// Asm: VPORD, CPU Feature: AVX512
2025-08-01 19:13:13 +00:00
func ( x Uint8x64 ) Or ( y Uint8x64 ) Uint8x64
2025-06-24 15:21:29 +00:00
// Or performs a bitwise OR operation between two vectors.
//
// Asm: VPOR, CPU Feature: AVX
func ( x Uint16x8 ) Or ( y Uint16x8 ) Uint16x8
2025-07-08 18:18:55 +00:00
// Or performs a bitwise OR operation between two vectors.
//
// Asm: VPOR, CPU Feature: AVX2
func ( x Uint16x16 ) Or ( y Uint16x16 ) Uint16x16
2025-08-01 19:13:13 +00:00
// Or performs a bitwise OR operation between two vectors.
//
2025-08-11 16:02:00 -04:00
// Asm: VPORD, CPU Feature: AVX512
2025-08-01 19:13:13 +00:00
func ( x Uint16x32 ) Or ( y Uint16x32 ) Uint16x32
2025-07-08 18:18:55 +00:00
// Or performs a bitwise OR operation between two vectors.
//
// Asm: VPOR, CPU Feature: AVX
func ( x Uint32x4 ) Or ( y Uint32x4 ) Uint32x4
// Or performs a bitwise OR operation between two vectors.
//
// Asm: VPOR, CPU Feature: AVX2
func ( x Uint32x8 ) Or ( y Uint32x8 ) Uint32x8
2025-07-16 17:02:47 +00:00
// Or performs a bitwise OR operation between two vectors.
2025-07-08 18:18:55 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPORD, CPU Feature: AVX512
2025-07-08 18:18:55 +00:00
func ( x Uint32x16 ) Or ( y Uint32x16 ) Uint32x16
2025-08-18 21:13:00 +00:00
// Or performs a bitwise OR operation between two vectors.
2025-06-24 15:21:29 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPOR, CPU Feature: AVX
func ( x Uint64x2 ) Or ( y Uint64x2 ) Uint64x2
2025-06-24 15:21:29 +00:00
2025-08-18 21:13:00 +00:00
// Or performs a bitwise OR operation between two vectors.
2025-06-24 15:21:29 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPOR, CPU Feature: AVX2
func ( x Uint64x4 ) Or ( y Uint64x4 ) Uint64x4
// Or performs a bitwise OR operation between two vectors.
2025-06-24 15:21:29 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPORQ, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Uint64x8 ) Or ( y Uint64x8 ) Uint64x8
2025-06-24 15:21:29 +00:00
2025-07-14 19:39:44 +00:00
/* Permute */
2025-07-23 07:37:14 +00:00
// Permute performs a full permutation of vector x using indices:
2025-07-14 19:39:44 +00:00
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
//
// Asm: VPERMB, CPU Feature: AVX512VBMI
func ( x Int8x16 ) Permute ( indices Uint8x16 ) Int8x16
2025-07-23 07:37:14 +00:00
// Permute performs a full permutation of vector x using indices:
2025-07-14 19:39:44 +00:00
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
//
// Asm: VPERMB, CPU Feature: AVX512VBMI
func ( x Uint8x16 ) Permute ( indices Uint8x16 ) Uint8x16
2025-07-23 07:37:14 +00:00
// Permute performs a full permutation of vector x using indices:
2025-07-14 19:39:44 +00:00
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
//
// Asm: VPERMB, CPU Feature: AVX512VBMI
func ( x Int8x32 ) Permute ( indices Uint8x32 ) Int8x32
2025-07-23 07:37:14 +00:00
// Permute performs a full permutation of vector x using indices:
2025-07-14 19:39:44 +00:00
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
//
// Asm: VPERMB, CPU Feature: AVX512VBMI
func ( x Uint8x32 ) Permute ( indices Uint8x32 ) Uint8x32
2025-07-23 07:37:14 +00:00
// Permute performs a full permutation of vector x using indices:
2025-07-14 19:39:44 +00:00
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
//
// Asm: VPERMB, CPU Feature: AVX512VBMI
func ( x Int8x64 ) Permute ( indices Uint8x64 ) Int8x64
2025-07-23 07:37:14 +00:00
// Permute performs a full permutation of vector x using indices:
2025-07-14 19:39:44 +00:00
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
//
// Asm: VPERMB, CPU Feature: AVX512VBMI
func ( x Uint8x64 ) Permute ( indices Uint8x64 ) Uint8x64
2025-07-23 07:37:14 +00:00
// Permute performs a full permutation of vector x using indices:
2025-07-14 19:39:44 +00:00
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPERMW, CPU Feature: AVX512
2025-07-14 19:39:44 +00:00
func ( x Int16x8 ) Permute ( indices Uint16x8 ) Int16x8
2025-07-23 07:37:14 +00:00
// Permute performs a full permutation of vector x using indices:
2025-07-14 19:39:44 +00:00
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPERMW, CPU Feature: AVX512
2025-07-14 19:39:44 +00:00
func ( x Uint16x8 ) Permute ( indices Uint16x8 ) Uint16x8
2025-07-23 07:37:14 +00:00
// Permute performs a full permutation of vector x using indices:
2025-07-14 19:39:44 +00:00
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPERMW, CPU Feature: AVX512
2025-07-14 19:39:44 +00:00
func ( x Int16x16 ) Permute ( indices Uint16x16 ) Int16x16
2025-07-23 07:37:14 +00:00
// Permute performs a full permutation of vector x using indices:
2025-07-14 19:39:44 +00:00
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPERMW, CPU Feature: AVX512
2025-07-14 19:39:44 +00:00
func ( x Uint16x16 ) Permute ( indices Uint16x16 ) Uint16x16
2025-07-23 07:37:14 +00:00
// Permute performs a full permutation of vector x using indices:
2025-07-14 19:39:44 +00:00
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPERMW, CPU Feature: AVX512
2025-07-14 19:39:44 +00:00
func ( x Int16x32 ) Permute ( indices Uint16x32 ) Int16x32
2025-07-23 07:37:14 +00:00
// Permute performs a full permutation of vector x using indices:
2025-07-14 19:39:44 +00:00
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPERMW, CPU Feature: AVX512
2025-07-14 19:39:44 +00:00
func ( x Uint16x32 ) Permute ( indices Uint16x32 ) Uint16x32
// Permute performs a full permutation of vector x using indices:
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
//
// Asm: VPERMPS, CPU Feature: AVX2
func ( x Float32x8 ) Permute ( indices Uint32x8 ) Float32x8
// Permute performs a full permutation of vector x using indices:
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
//
// Asm: VPERMD, CPU Feature: AVX2
func ( x Int32x8 ) Permute ( indices Uint32x8 ) Int32x8
// Permute performs a full permutation of vector x using indices:
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
//
// Asm: VPERMD, CPU Feature: AVX2
func ( x Uint32x8 ) Permute ( indices Uint32x8 ) Uint32x8
2025-07-23 07:37:14 +00:00
// Permute performs a full permutation of vector x using indices:
2025-07-14 19:39:44 +00:00
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPERMPS, CPU Feature: AVX512
2025-07-14 19:39:44 +00:00
func ( x Float32x16 ) Permute ( indices Uint32x16 ) Float32x16
2025-07-23 07:37:14 +00:00
// Permute performs a full permutation of vector x using indices:
2025-07-14 19:39:44 +00:00
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPERMD, CPU Feature: AVX512
2025-07-14 19:39:44 +00:00
func ( x Int32x16 ) Permute ( indices Uint32x16 ) Int32x16
2025-07-23 07:37:14 +00:00
// Permute performs a full permutation of vector x using indices:
2025-07-14 19:39:44 +00:00
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPERMD, CPU Feature: AVX512
2025-07-14 19:39:44 +00:00
func ( x Uint32x16 ) Permute ( indices Uint32x16 ) Uint32x16
2025-07-23 07:37:14 +00:00
// Permute performs a full permutation of vector x using indices:
2025-07-14 19:39:44 +00:00
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPERMPD, CPU Feature: AVX512
2025-07-14 19:39:44 +00:00
func ( x Float64x4 ) Permute ( indices Uint64x4 ) Float64x4
2025-07-23 07:37:14 +00:00
// Permute performs a full permutation of vector x using indices:
2025-07-14 19:39:44 +00:00
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPERMQ, CPU Feature: AVX512
2025-07-14 19:39:44 +00:00
func ( x Int64x4 ) Permute ( indices Uint64x4 ) Int64x4
2025-07-23 07:37:14 +00:00
// Permute performs a full permutation of vector x using indices:
2025-07-14 19:39:44 +00:00
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPERMQ, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Uint64x4 ) Permute ( indices Uint64x4 ) Uint64x4
// Permute performs a full permutation of vector x using indices:
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
2025-07-14 19:39:44 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPERMPD, CPU Feature: AVX512
func ( x Float64x8 ) Permute ( indices Uint64x8 ) Float64x8
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
// Permute performs a full permutation of vector x using indices:
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
2025-07-14 19:39:44 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPERMQ, CPU Feature: AVX512
func ( x Int64x8 ) Permute ( indices Uint64x8 ) Int64x8
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
// Permute performs a full permutation of vector x using indices:
// result := {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
// Only the needed bits to represent x's index are used in indices' elements.
2025-07-14 19:39:44 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPERMQ, CPU Feature: AVX512
func ( x Uint64x8 ) Permute ( indices Uint64x8 ) Uint64x8
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
/* Permute2 */
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
2025-07-14 19:39:44 +00:00
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
//
// Asm: VPERMI2B, CPU Feature: AVX512VBMI
2025-08-18 21:13:00 +00:00
func ( x Int8x16 ) Permute2 ( y Int8x16 , indices Uint8x16 ) Int8x16
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
2025-07-14 19:39:44 +00:00
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
//
// Asm: VPERMI2B, CPU Feature: AVX512VBMI
2025-08-18 21:13:00 +00:00
func ( x Uint8x16 ) Permute2 ( y Uint8x16 , indices Uint8x16 ) Uint8x16
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
2025-07-14 19:39:44 +00:00
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
//
// Asm: VPERMI2B, CPU Feature: AVX512VBMI
2025-08-18 21:13:00 +00:00
func ( x Int8x32 ) Permute2 ( y Int8x32 , indices Uint8x32 ) Int8x32
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
2025-07-14 19:39:44 +00:00
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
//
// Asm: VPERMI2B, CPU Feature: AVX512VBMI
2025-08-18 21:13:00 +00:00
func ( x Uint8x32 ) Permute2 ( y Uint8x32 , indices Uint8x32 ) Uint8x32
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
2025-07-14 19:39:44 +00:00
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
//
// Asm: VPERMI2B, CPU Feature: AVX512VBMI
2025-08-18 21:13:00 +00:00
func ( x Int8x64 ) Permute2 ( y Int8x64 , indices Uint8x64 ) Int8x64
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
2025-07-14 19:39:44 +00:00
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
//
// Asm: VPERMI2B, CPU Feature: AVX512VBMI
2025-08-18 21:13:00 +00:00
func ( x Uint8x64 ) Permute2 ( y Uint8x64 , indices Uint8x64 ) Uint8x64
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
2025-07-14 19:39:44 +00:00
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPERMI2W, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Int16x8 ) Permute2 ( y Int16x8 , indices Uint16x8 ) Int16x8
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
2025-07-14 19:39:44 +00:00
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPERMI2W, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Uint16x8 ) Permute2 ( y Uint16x8 , indices Uint16x8 ) Uint16x8
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
2025-07-14 19:39:44 +00:00
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPERMI2W, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Int16x16 ) Permute2 ( y Int16x16 , indices Uint16x16 ) Int16x16
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
2025-07-14 19:39:44 +00:00
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPERMI2W, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Uint16x16 ) Permute2 ( y Uint16x16 , indices Uint16x16 ) Uint16x16
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
2025-07-14 19:39:44 +00:00
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPERMI2W, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Int16x32 ) Permute2 ( y Int16x32 , indices Uint16x32 ) Int16x32
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
2025-07-14 19:39:44 +00:00
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPERMI2W, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Uint16x32 ) Permute2 ( y Uint16x32 , indices Uint16x32 ) Uint16x32
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
2025-07-14 19:39:44 +00:00
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPERMI2PS, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Float32x4 ) Permute2 ( y Float32x4 , indices Uint32x4 ) Float32x4
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
2025-07-14 19:39:44 +00:00
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPERMI2D, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Int32x4 ) Permute2 ( y Int32x4 , indices Uint32x4 ) Int32x4
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
2025-07-14 19:39:44 +00:00
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPERMI2D, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Uint32x4 ) Permute2 ( y Uint32x4 , indices Uint32x4 ) Uint32x4
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
2025-07-14 19:39:44 +00:00
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
//
2025-08-18 21:13:00 +00:00
// Asm: VPERMI2PS, CPU Feature: AVX512
func ( x Float32x8 ) Permute2 ( y Float32x8 , indices Uint32x8 ) Float32x8
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPERMI2D, CPU Feature: AVX512
func ( x Int32x8 ) Permute2 ( y Int32x8 , indices Uint32x8 ) Int32x8
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPERMI2D, CPU Feature: AVX512
func ( x Uint32x8 ) Permute2 ( y Uint32x8 , indices Uint32x8 ) Uint32x8
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPERMI2PS, CPU Feature: AVX512
func ( x Float32x16 ) Permute2 ( y Float32x16 , indices Uint32x16 ) Float32x16
2025-07-14 19:39:44 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
2025-06-24 15:21:29 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPERMI2D, CPU Feature: AVX512
func ( x Int32x16 ) Permute2 ( y Int32x16 , indices Uint32x16 ) Int32x16
2025-06-24 15:21:29 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
2025-08-07 17:05:50 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPERMI2D, CPU Feature: AVX512
func ( x Uint32x16 ) Permute2 ( y Uint32x16 , indices Uint32x16 ) Uint32x16
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPERMI2PD, CPU Feature: AVX512
func ( x Float64x2 ) Permute2 ( y Float64x2 , indices Uint64x2 ) Float64x2
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPERMI2Q, CPU Feature: AVX512
func ( x Int64x2 ) Permute2 ( y Int64x2 , indices Uint64x2 ) Int64x2
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPERMI2Q, CPU Feature: AVX512
func ( x Uint64x2 ) Permute2 ( y Uint64x2 , indices Uint64x2 ) Uint64x2
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
2025-07-08 18:18:55 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPERMI2PD, CPU Feature: AVX512
func ( x Float64x4 ) Permute2 ( y Float64x4 , indices Uint64x4 ) Float64x4
// Permute2 performs a full permutation of vector x, y using indices:
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPERMI2Q, CPU Feature: AVX512
func ( x Int64x4 ) Permute2 ( y Int64x4 , indices Uint64x4 ) Int64x4
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
2025-07-08 18:18:55 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPERMI2Q, CPU Feature: AVX512
func ( x Uint64x4 ) Permute2 ( y Uint64x4 , indices Uint64x4 ) Uint64x4
// Permute2 performs a full permutation of vector x, y using indices:
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPERMI2PD, CPU Feature: AVX512
func ( x Float64x8 ) Permute2 ( y Float64x8 , indices Uint64x8 ) Float64x8
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Permute2 performs a full permutation of vector x, y using indices:
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
2025-07-08 18:18:55 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPERMI2Q, CPU Feature: AVX512
func ( x Int64x8 ) Permute2 ( y Int64x8 , indices Uint64x8 ) Int64x8
// Permute2 performs a full permutation of vector x, y using indices:
// result := {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
// where xy is x appending y.
// Only the needed bits to represent xy's index are used in indices' elements.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPERMI2Q, CPU Feature: AVX512
func ( x Uint64x8 ) Permute2 ( y Uint64x8 , indices Uint64x8 ) Uint64x8
2025-08-07 17:05:50 +00:00
/* Reciprocal */
2025-07-08 18:18:55 +00:00
2025-08-07 17:05:50 +00:00
// Reciprocal computes an approximate reciprocal of each element.
2025-07-08 18:18:55 +00:00
//
2025-08-07 17:05:50 +00:00
// Asm: VRCPPS, CPU Feature: AVX
func ( x Float32x4 ) Reciprocal ( ) Float32x4
// Reciprocal computes an approximate reciprocal of each element.
2025-07-16 17:02:47 +00:00
//
2025-08-07 17:05:50 +00:00
// Asm: VRCPPS, CPU Feature: AVX
func ( x Float32x8 ) Reciprocal ( ) Float32x8
2025-07-08 18:18:55 +00:00
2025-08-07 17:05:50 +00:00
// Reciprocal computes an approximate reciprocal of each element.
2025-07-08 18:18:55 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRCP14PS, CPU Feature: AVX512
2025-08-07 17:05:50 +00:00
func ( x Float32x16 ) Reciprocal ( ) Float32x16
// Reciprocal computes an approximate reciprocal of each element.
2025-07-16 17:02:47 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRCP14PD, CPU Feature: AVX512
2025-08-07 17:05:50 +00:00
func ( x Float64x2 ) Reciprocal ( ) Float64x2
2025-07-08 18:18:55 +00:00
2025-08-07 17:05:50 +00:00
// Reciprocal computes an approximate reciprocal of each element.
2025-07-08 18:18:55 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRCP14PD, CPU Feature: AVX512
2025-08-07 17:05:50 +00:00
func ( x Float64x4 ) Reciprocal ( ) Float64x4
// Reciprocal computes an approximate reciprocal of each element.
2025-07-16 17:02:47 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRCP14PD, CPU Feature: AVX512
2025-08-07 17:05:50 +00:00
func ( x Float64x8 ) Reciprocal ( ) Float64x8
/* ReciprocalSqrt */
// ReciprocalSqrt computes an approximate reciprocal of the square root of each element.
2025-07-08 18:18:55 +00:00
//
2025-08-07 17:05:50 +00:00
// Asm: VRSQRTPS, CPU Feature: AVX
func ( x Float32x4 ) ReciprocalSqrt ( ) Float32x4
// ReciprocalSqrt computes an approximate reciprocal of the square root of each element.
2025-07-16 17:02:47 +00:00
//
2025-08-07 17:05:50 +00:00
// Asm: VRSQRTPS, CPU Feature: AVX
func ( x Float32x8 ) ReciprocalSqrt ( ) Float32x8
2025-07-08 18:18:55 +00:00
2025-08-07 17:05:50 +00:00
// ReciprocalSqrt computes an approximate reciprocal of the square root of each element.
2025-07-08 18:18:55 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRSQRT14PS, CPU Feature: AVX512
2025-08-07 17:05:50 +00:00
func ( x Float32x16 ) ReciprocalSqrt ( ) Float32x16
// ReciprocalSqrt computes an approximate reciprocal of the square root of each element.
2025-07-16 17:02:47 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRSQRT14PD, CPU Feature: AVX512
2025-08-07 17:05:50 +00:00
func ( x Float64x2 ) ReciprocalSqrt ( ) Float64x2
2025-07-08 18:18:55 +00:00
2025-08-07 17:05:50 +00:00
// ReciprocalSqrt computes an approximate reciprocal of the square root of each element.
2025-07-08 18:18:55 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRSQRT14PD, CPU Feature: AVX512
2025-08-07 17:05:50 +00:00
func ( x Float64x4 ) ReciprocalSqrt ( ) Float64x4
// ReciprocalSqrt computes an approximate reciprocal of the square root of each element.
2025-07-16 17:02:47 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRSQRT14PD, CPU Feature: AVX512
2025-08-07 17:05:50 +00:00
func ( x Float64x8 ) ReciprocalSqrt ( ) Float64x8
2025-07-08 18:18:55 +00:00
2025-06-24 15:21:29 +00:00
/* RotateAllLeft */
// RotateAllLeft rotates each element to the left by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLD, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Int32x4 ) RotateAllLeft ( shift uint8 ) Int32x4
2025-06-24 15:21:29 +00:00
// RotateAllLeft rotates each element to the left by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLD, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Int32x8 ) RotateAllLeft ( shift uint8 ) Int32x8
2025-06-24 15:21:29 +00:00
// RotateAllLeft rotates each element to the left by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLD, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Int32x16 ) RotateAllLeft ( shift uint8 ) Int32x16
2025-06-24 15:21:29 +00:00
// RotateAllLeft rotates each element to the left by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLQ, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Int64x2 ) RotateAllLeft ( shift uint8 ) Int64x2
2025-06-24 15:21:29 +00:00
// RotateAllLeft rotates each element to the left by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLQ, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Int64x4 ) RotateAllLeft ( shift uint8 ) Int64x4
2025-06-24 15:21:29 +00:00
// RotateAllLeft rotates each element to the left by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLQ, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Int64x8 ) RotateAllLeft ( shift uint8 ) Int64x8
2025-06-24 15:21:29 +00:00
// RotateAllLeft rotates each element to the left by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLD, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Uint32x4 ) RotateAllLeft ( shift uint8 ) Uint32x4
2025-06-24 15:21:29 +00:00
// RotateAllLeft rotates each element to the left by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLD, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Uint32x8 ) RotateAllLeft ( shift uint8 ) Uint32x8
2025-06-24 15:21:29 +00:00
// RotateAllLeft rotates each element to the left by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLD, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Uint32x16 ) RotateAllLeft ( shift uint8 ) Uint32x16
2025-06-24 15:21:29 +00:00
// RotateAllLeft rotates each element to the left by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLQ, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Uint64x2 ) RotateAllLeft ( shift uint8 ) Uint64x2
2025-06-24 15:21:29 +00:00
// RotateAllLeft rotates each element to the left by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLQ, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Uint64x4 ) RotateAllLeft ( shift uint8 ) Uint64x4
2025-06-24 15:21:29 +00:00
2025-08-18 21:13:00 +00:00
// RotateAllLeft rotates each element to the left by the number of bits specified by the immediate.
2025-07-16 17:02:47 +00:00
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLQ, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Uint64x8 ) RotateAllLeft ( shift uint8 ) Uint64x8
2025-07-08 18:18:55 +00:00
2025-06-24 15:21:29 +00:00
/* RotateAllRight */
// RotateAllRight rotates each element to the right by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORD, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Int32x4 ) RotateAllRight ( shift uint8 ) Int32x4
2025-06-24 15:21:29 +00:00
// RotateAllRight rotates each element to the right by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORD, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Int32x8 ) RotateAllRight ( shift uint8 ) Int32x8
2025-06-24 15:21:29 +00:00
// RotateAllRight rotates each element to the right by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORD, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Int32x16 ) RotateAllRight ( shift uint8 ) Int32x16
2025-06-24 15:21:29 +00:00
// RotateAllRight rotates each element to the right by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORQ, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Int64x2 ) RotateAllRight ( shift uint8 ) Int64x2
2025-06-24 15:21:29 +00:00
// RotateAllRight rotates each element to the right by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORQ, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Int64x4 ) RotateAllRight ( shift uint8 ) Int64x4
2025-06-24 15:21:29 +00:00
// RotateAllRight rotates each element to the right by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORQ, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Int64x8 ) RotateAllRight ( shift uint8 ) Int64x8
2025-06-24 15:21:29 +00:00
// RotateAllRight rotates each element to the right by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORD, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Uint32x4 ) RotateAllRight ( shift uint8 ) Uint32x4
2025-06-24 15:21:29 +00:00
// RotateAllRight rotates each element to the right by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORD, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Uint32x8 ) RotateAllRight ( shift uint8 ) Uint32x8
2025-06-24 15:21:29 +00:00
// RotateAllRight rotates each element to the right by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORD, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Uint32x16 ) RotateAllRight ( shift uint8 ) Uint32x16
2025-07-08 18:18:55 +00:00
// RotateAllRight rotates each element to the right by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORQ, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Uint64x2 ) RotateAllRight ( shift uint8 ) Uint64x2
2025-07-08 18:18:55 +00:00
// RotateAllRight rotates each element to the right by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORQ, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Uint64x4 ) RotateAllRight ( shift uint8 ) Uint64x4
2025-07-08 18:18:55 +00:00
// RotateAllRight rotates each element to the right by the number of bits specified by the immediate.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORQ, CPU Feature: AVX512
2025-07-11 02:15:12 +00:00
func ( x Uint64x8 ) RotateAllRight ( shift uint8 ) Uint64x8
2025-07-08 18:18:55 +00:00
2025-06-24 15:21:29 +00:00
/* RotateLeft */
// RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLVD, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int32x4 ) RotateLeft ( y Int32x4 ) Int32x4
// RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLVD, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int32x8 ) RotateLeft ( y Int32x8 ) Int32x8
// RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLVD, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int32x16 ) RotateLeft ( y Int32x16 ) Int32x16
// RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLVQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int64x2 ) RotateLeft ( y Int64x2 ) Int64x2
// RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLVQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int64x4 ) RotateLeft ( y Int64x4 ) Int64x4
// RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLVQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int64x8 ) RotateLeft ( y Int64x8 ) Int64x8
// RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLVD, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint32x4 ) RotateLeft ( y Uint32x4 ) Uint32x4
// RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLVD, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint32x8 ) RotateLeft ( y Uint32x8 ) Uint32x8
// RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLVD, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint32x16 ) RotateLeft ( y Uint32x16 ) Uint32x16
// RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLVQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint64x2 ) RotateLeft ( y Uint64x2 ) Uint64x2
// RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLVQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint64x4 ) RotateLeft ( y Uint64x4 ) Uint64x4
// RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPROLVQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint64x8 ) RotateLeft ( y Uint64x8 ) Uint64x8
/* RotateRight */
// RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORVD, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int32x4 ) RotateRight ( y Int32x4 ) Int32x4
// RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORVD, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int32x8 ) RotateRight ( y Int32x8 ) Int32x8
// RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORVD, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int32x16 ) RotateRight ( y Int32x16 ) Int32x16
// RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORVQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int64x2 ) RotateRight ( y Int64x2 ) Int64x2
// RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORVQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int64x4 ) RotateRight ( y Int64x4 ) Int64x4
// RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORVQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int64x8 ) RotateRight ( y Int64x8 ) Int64x8
// RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORVD, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint32x4 ) RotateRight ( y Uint32x4 ) Uint32x4
// RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORVD, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint32x8 ) RotateRight ( y Uint32x8 ) Uint32x8
// RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORVD, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint32x16 ) RotateRight ( y Uint32x16 ) Uint32x16
// RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORVQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint64x2 ) RotateRight ( y Uint64x2 ) Uint64x2
// RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORVQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint64x4 ) RotateRight ( y Uint64x4 ) Uint64x4
// RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
//
2025-08-11 16:02:00 -04:00
// Asm: VPRORVQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint64x8 ) RotateRight ( y Uint64x8 ) Uint64x8
2025-08-07 17:05:50 +00:00
/* RoundToEven */
2025-07-08 18:18:55 +00:00
2025-08-07 17:05:50 +00:00
// RoundToEven rounds elements to the nearest integer.
2025-07-08 18:18:55 +00:00
//
2025-08-01 15:58:29 -04:00
// Asm: VROUNDPS, CPU Feature: AVX
2025-08-07 17:05:50 +00:00
func ( x Float32x4 ) RoundToEven ( ) Float32x4
2025-08-01 15:58:29 -04:00
2025-08-07 17:05:50 +00:00
// RoundToEven rounds elements to the nearest integer.
2025-07-16 17:02:47 +00:00
//
2025-08-01 15:58:29 -04:00
// Asm: VROUNDPS, CPU Feature: AVX
2025-08-07 17:05:50 +00:00
func ( x Float32x8 ) RoundToEven ( ) Float32x8
2025-07-08 18:18:55 +00:00
2025-08-07 17:05:50 +00:00
// RoundToEven rounds elements to the nearest integer.
2025-07-08 18:18:55 +00:00
//
2025-08-01 15:58:29 -04:00
// Asm: VROUNDPD, CPU Feature: AVX
2025-08-07 17:05:50 +00:00
func ( x Float64x2 ) RoundToEven ( ) Float64x2
2025-08-01 15:58:29 -04:00
2025-08-07 17:05:50 +00:00
// RoundToEven rounds elements to the nearest integer.
2025-07-16 17:02:47 +00:00
//
2025-08-01 15:58:29 -04:00
// Asm: VROUNDPD, CPU Feature: AVX
2025-08-07 17:05:50 +00:00
func ( x Float64x4 ) RoundToEven ( ) Float64x4
2025-07-08 18:18:55 +00:00
2025-08-07 17:05:50 +00:00
/* RoundToEvenScaled */
2025-08-01 15:58:29 -04:00
2025-08-07 17:05:50 +00:00
// RoundToEvenScaled rounds elements with specified precision.
2025-07-08 18:18:55 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-16 17:02:47 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRNDSCALEPS, CPU Feature: AVX512
2025-08-07 17:05:50 +00:00
func ( x Float32x4 ) RoundToEvenScaled ( prec uint8 ) Float32x4
2025-07-08 18:18:55 +00:00
2025-08-07 17:05:50 +00:00
// RoundToEvenScaled rounds elements with specified precision.
2025-07-08 18:18:55 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-16 17:02:47 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRNDSCALEPS, CPU Feature: AVX512
2025-08-07 17:05:50 +00:00
func ( x Float32x8 ) RoundToEvenScaled ( prec uint8 ) Float32x8
2025-07-08 18:18:55 +00:00
2025-08-07 17:05:50 +00:00
// RoundToEvenScaled rounds elements with specified precision.
2025-07-08 18:18:55 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-16 17:02:47 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRNDSCALEPS, CPU Feature: AVX512
2025-08-07 17:05:50 +00:00
func ( x Float32x16 ) RoundToEvenScaled ( prec uint8 ) Float32x16
2025-07-08 18:18:55 +00:00
2025-08-07 17:05:50 +00:00
// RoundToEvenScaled rounds elements with specified precision.
2025-07-08 18:18:55 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-16 17:02:47 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRNDSCALEPD, CPU Feature: AVX512
2025-08-07 17:05:50 +00:00
func ( x Float64x2 ) RoundToEvenScaled ( prec uint8 ) Float64x2
2025-07-08 18:18:55 +00:00
2025-08-07 17:05:50 +00:00
// RoundToEvenScaled rounds elements with specified precision.
2025-07-08 18:18:55 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VRNDSCALEPD, CPU Feature: AVX512
func ( x Float64x4 ) RoundToEvenScaled ( prec uint8 ) Float64x4
2025-06-16 20:11:27 +00:00
2025-08-18 21:13:00 +00:00
// RoundToEvenScaled rounds elements with specified precision.
2025-06-16 20:11:27 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-06-16 20:11:27 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VRNDSCALEPD, CPU Feature: AVX512
func ( x Float64x8 ) RoundToEvenScaled ( prec uint8 ) Float64x8
2025-06-16 20:11:27 +00:00
2025-08-18 21:13:00 +00:00
/* RoundToEvenScaledResidue */
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// RoundToEvenScaledResidue computes the difference after rounding with specified precision.
2025-07-16 17:02:47 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-16 17:02:47 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPS, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Float32x4 ) RoundToEvenScaledResidue ( prec uint8 ) Float32x4
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// RoundToEvenScaledResidue computes the difference after rounding with specified precision.
2025-07-16 17:02:47 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-01 15:58:29 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPS, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Float32x8 ) RoundToEvenScaledResidue ( prec uint8 ) Float32x8
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// RoundToEvenScaledResidue computes the difference after rounding with specified precision.
2025-07-16 17:02:47 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-01 15:58:29 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPS, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Float32x16 ) RoundToEvenScaledResidue ( prec uint8 ) Float32x16
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// RoundToEvenScaledResidue computes the difference after rounding with specified precision.
2025-07-16 17:02:47 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-01 15:58:29 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPD, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Float64x2 ) RoundToEvenScaledResidue ( prec uint8 ) Float64x2
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// RoundToEvenScaledResidue computes the difference after rounding with specified precision.
2025-07-16 17:02:47 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-01 15:58:29 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPD, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Float64x4 ) RoundToEvenScaledResidue ( prec uint8 ) Float64x4
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// RoundToEvenScaledResidue computes the difference after rounding with specified precision.
2025-07-16 17:02:47 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-08 18:18:55 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPD, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Float64x8 ) RoundToEvenScaledResidue ( prec uint8 ) Float64x8
2025-08-01 15:58:29 -04:00
/* Scale */
// Scale multiplies elements by a power of 2.
//
2025-08-11 16:02:00 -04:00
// Asm: VSCALEFPS, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float32x4 ) Scale ( y Float32x4 ) Float32x4
// Scale multiplies elements by a power of 2.
//
2025-08-11 16:02:00 -04:00
// Asm: VSCALEFPS, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float32x8 ) Scale ( y Float32x8 ) Float32x8
// Scale multiplies elements by a power of 2.
//
2025-08-11 16:02:00 -04:00
// Asm: VSCALEFPS, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float32x16 ) Scale ( y Float32x16 ) Float32x16
// Scale multiplies elements by a power of 2.
//
2025-08-11 16:02:00 -04:00
// Asm: VSCALEFPD, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float64x2 ) Scale ( y Float64x2 ) Float64x2
// Scale multiplies elements by a power of 2.
//
2025-08-11 16:02:00 -04:00
// Asm: VSCALEFPD, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float64x4 ) Scale ( y Float64x4 ) Float64x4
// Scale multiplies elements by a power of 2.
//
2025-08-11 16:02:00 -04:00
// Asm: VSCALEFPD, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float64x8 ) Scale ( y Float64x8 ) Float64x8
2025-08-05 19:07:51 +00:00
/* SetElem */
2025-06-25 16:06:00 -04:00
2025-08-05 17:34:05 -04:00
// SetElem sets a single constant-indexed element's value.
//
// index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
//
// Asm: VPINSRD, CPU Feature: AVX
func ( x Float32x4 ) SetElem ( index uint8 , y float32 ) Float32x4
// SetElem sets a single constant-indexed element's value.
//
// index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
//
// Asm: VPINSRQ, CPU Feature: AVX
func ( x Float64x2 ) SetElem ( index uint8 , y float64 ) Float64x2
2025-08-05 19:07:51 +00:00
// SetElem sets a single constant-indexed element's value.
2025-06-25 16:06:00 -04:00
//
2025-08-11 17:20:48 +00:00
// index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-05 19:07:51 +00:00
// Asm: VPINSRB, CPU Feature: AVX
func ( x Int8x16 ) SetElem ( index uint8 , y int8 ) Int8x16
2025-06-25 16:06:00 -04:00
2025-08-05 19:07:51 +00:00
// SetElem sets a single constant-indexed element's value.
2025-06-25 16:06:00 -04:00
//
2025-08-11 17:20:48 +00:00
// index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-05 19:07:51 +00:00
// Asm: VPINSRW, CPU Feature: AVX
func ( x Int16x8 ) SetElem ( index uint8 , y int16 ) Int16x8
2025-06-25 16:06:00 -04:00
2025-08-05 19:07:51 +00:00
// SetElem sets a single constant-indexed element's value.
2025-06-25 16:06:00 -04:00
//
2025-08-11 17:20:48 +00:00
// index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-05 19:07:51 +00:00
// Asm: VPINSRD, CPU Feature: AVX
func ( x Int32x4 ) SetElem ( index uint8 , y int32 ) Int32x4
2025-06-25 16:06:00 -04:00
2025-08-05 19:07:51 +00:00
// SetElem sets a single constant-indexed element's value.
2025-06-25 16:06:00 -04:00
//
2025-08-11 17:20:48 +00:00
// index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-05 19:07:51 +00:00
// Asm: VPINSRQ, CPU Feature: AVX
func ( x Int64x2 ) SetElem ( index uint8 , y int64 ) Int64x2
2025-06-25 16:06:00 -04:00
2025-08-05 19:07:51 +00:00
// SetElem sets a single constant-indexed element's value.
2025-06-25 16:06:00 -04:00
//
2025-08-11 17:20:48 +00:00
// index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-05 19:07:51 +00:00
// Asm: VPINSRB, CPU Feature: AVX
func ( x Uint8x16 ) SetElem ( index uint8 , y uint8 ) Uint8x16
2025-06-25 16:06:00 -04:00
2025-08-05 19:07:51 +00:00
// SetElem sets a single constant-indexed element's value.
2025-06-25 16:06:00 -04:00
//
2025-08-11 17:20:48 +00:00
// index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-05 19:07:51 +00:00
// Asm: VPINSRW, CPU Feature: AVX
func ( x Uint16x8 ) SetElem ( index uint8 , y uint16 ) Uint16x8
2025-06-25 16:06:00 -04:00
2025-08-05 19:07:51 +00:00
// SetElem sets a single constant-indexed element's value.
2025-06-25 16:06:00 -04:00
//
2025-08-11 17:20:48 +00:00
// index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-05 19:07:51 +00:00
// Asm: VPINSRD, CPU Feature: AVX
func ( x Uint32x4 ) SetElem ( index uint8 , y uint32 ) Uint32x4
2025-06-25 16:06:00 -04:00
2025-08-05 19:07:51 +00:00
// SetElem sets a single constant-indexed element's value.
2025-06-25 16:06:00 -04:00
//
2025-08-11 17:20:48 +00:00
// index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-05 19:07:51 +00:00
// Asm: VPINSRQ, CPU Feature: AVX
func ( x Uint64x2 ) SetElem ( index uint8 , y uint64 ) Uint64x2
/* SetHi */
// SetHi returns x with its upper half set to y.
//
// Asm: VINSERTF128, CPU Feature: AVX
func ( x Float32x8 ) SetHi ( y Float32x4 ) Float32x8
// SetHi returns x with its upper half set to y.
//
2025-08-11 16:02:00 -04:00
// Asm: VINSERTF64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Float32x16 ) SetHi ( y Float32x8 ) Float32x16
// SetHi returns x with its upper half set to y.
//
// Asm: VINSERTF128, CPU Feature: AVX
func ( x Float64x4 ) SetHi ( y Float64x2 ) Float64x4
// SetHi returns x with its upper half set to y.
//
2025-08-11 16:02:00 -04:00
// Asm: VINSERTF64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Float64x8 ) SetHi ( y Float64x4 ) Float64x8
// SetHi returns x with its upper half set to y.
//
2025-06-25 16:06:00 -04:00
// Asm: VINSERTI128, CPU Feature: AVX2
2025-08-05 19:07:51 +00:00
func ( x Int8x32 ) SetHi ( y Int8x16 ) Int8x32
2025-06-25 16:06:00 -04:00
2025-08-05 19:07:51 +00:00
// SetHi returns x with its upper half set to y.
2025-06-25 16:06:00 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VINSERTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Int8x64 ) SetHi ( y Int8x32 ) Int8x64
// SetHi returns x with its upper half set to y.
2025-07-11 02:15:12 +00:00
//
2025-06-25 16:06:00 -04:00
// Asm: VINSERTI128, CPU Feature: AVX2
2025-08-05 19:07:51 +00:00
func ( x Int16x16 ) SetHi ( y Int16x8 ) Int16x16
2025-06-25 16:06:00 -04:00
2025-08-05 19:07:51 +00:00
// SetHi returns x with its upper half set to y.
2025-06-25 16:06:00 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VINSERTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Int16x32 ) SetHi ( y Int16x16 ) Int16x32
// SetHi returns x with its upper half set to y.
2025-07-11 02:15:12 +00:00
//
2025-06-25 16:06:00 -04:00
// Asm: VINSERTI128, CPU Feature: AVX2
2025-08-05 19:07:51 +00:00
func ( x Int32x8 ) SetHi ( y Int32x4 ) Int32x8
2025-06-25 16:06:00 -04:00
2025-08-05 19:07:51 +00:00
// SetHi returns x with its upper half set to y.
//
2025-08-11 16:02:00 -04:00
// Asm: VINSERTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Int32x16 ) SetHi ( y Int32x8 ) Int32x16
2025-06-24 15:21:29 +00:00
2025-08-05 19:07:51 +00:00
// SetHi returns x with its upper half set to y.
2025-06-16 20:11:27 +00:00
//
2025-08-05 19:07:51 +00:00
// Asm: VINSERTI128, CPU Feature: AVX2
func ( x Int64x4 ) SetHi ( y Int64x2 ) Int64x4
// SetHi returns x with its upper half set to y.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VINSERTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Int64x8 ) SetHi ( y Int64x4 ) Int64x8
2025-06-16 20:11:27 +00:00
2025-08-05 19:07:51 +00:00
// SetHi returns x with its upper half set to y.
2025-06-16 20:11:27 +00:00
//
2025-08-05 19:07:51 +00:00
// Asm: VINSERTI128, CPU Feature: AVX2
func ( x Uint8x32 ) SetHi ( y Uint8x16 ) Uint8x32
// SetHi returns x with its upper half set to y.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VINSERTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Uint8x64 ) SetHi ( y Uint8x32 ) Uint8x64
2025-06-16 20:11:27 +00:00
2025-08-05 19:07:51 +00:00
// SetHi returns x with its upper half set to y.
2025-06-16 20:11:27 +00:00
//
2025-08-05 19:07:51 +00:00
// Asm: VINSERTI128, CPU Feature: AVX2
func ( x Uint16x16 ) SetHi ( y Uint16x8 ) Uint16x16
// SetHi returns x with its upper half set to y.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VINSERTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Uint16x32 ) SetHi ( y Uint16x16 ) Uint16x32
2025-06-16 20:11:27 +00:00
2025-08-05 19:07:51 +00:00
// SetHi returns x with its upper half set to y.
2025-06-16 20:11:27 +00:00
//
2025-08-05 19:07:51 +00:00
// Asm: VINSERTI128, CPU Feature: AVX2
func ( x Uint32x8 ) SetHi ( y Uint32x4 ) Uint32x8
// SetHi returns x with its upper half set to y.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VINSERTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Uint32x16 ) SetHi ( y Uint32x8 ) Uint32x16
2025-06-16 20:11:27 +00:00
2025-08-05 19:07:51 +00:00
// SetHi returns x with its upper half set to y.
2025-06-16 20:11:27 +00:00
//
2025-08-05 19:07:51 +00:00
// Asm: VINSERTI128, CPU Feature: AVX2
func ( x Uint64x4 ) SetHi ( y Uint64x2 ) Uint64x4
// SetHi returns x with its upper half set to y.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VINSERTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Uint64x8 ) SetHi ( y Uint64x4 ) Uint64x8
2025-06-16 20:11:27 +00:00
2025-08-05 19:07:51 +00:00
/* SetLo */
// SetLo returns x with its lower half set to y.
2025-06-16 20:11:27 +00:00
//
2025-08-05 19:07:51 +00:00
// Asm: VINSERTF128, CPU Feature: AVX
func ( x Float32x8 ) SetLo ( y Float32x4 ) Float32x8
// SetLo returns x with its lower half set to y.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VINSERTF64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Float32x16 ) SetLo ( y Float32x8 ) Float32x16
2025-06-16 20:11:27 +00:00
2025-08-05 19:07:51 +00:00
// SetLo returns x with its lower half set to y.
2025-06-24 15:21:29 +00:00
//
2025-08-05 19:07:51 +00:00
// Asm: VINSERTF128, CPU Feature: AVX
func ( x Float64x4 ) SetLo ( y Float64x2 ) Float64x4
// SetLo returns x with its lower half set to y.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VINSERTF64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Float64x8 ) SetLo ( y Float64x4 ) Float64x8
2025-06-16 20:11:27 +00:00
2025-08-05 19:07:51 +00:00
// SetLo returns x with its lower half set to y.
2025-06-16 20:11:27 +00:00
//
2025-08-05 19:07:51 +00:00
// Asm: VINSERTI128, CPU Feature: AVX2
func ( x Int8x32 ) SetLo ( y Int8x16 ) Int8x32
// SetLo returns x with its lower half set to y.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VINSERTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Int8x64 ) SetLo ( y Int8x32 ) Int8x64
// SetLo returns x with its lower half set to y.
//
// Asm: VINSERTI128, CPU Feature: AVX2
func ( x Int16x16 ) SetLo ( y Int16x8 ) Int16x16
// SetLo returns x with its lower half set to y.
//
2025-08-11 16:02:00 -04:00
// Asm: VINSERTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Int16x32 ) SetLo ( y Int16x16 ) Int16x32
// SetLo returns x with its lower half set to y.
//
// Asm: VINSERTI128, CPU Feature: AVX2
func ( x Int32x8 ) SetLo ( y Int32x4 ) Int32x8
// SetLo returns x with its lower half set to y.
//
2025-08-11 16:02:00 -04:00
// Asm: VINSERTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Int32x16 ) SetLo ( y Int32x8 ) Int32x16
// SetLo returns x with its lower half set to y.
//
// Asm: VINSERTI128, CPU Feature: AVX2
func ( x Int64x4 ) SetLo ( y Int64x2 ) Int64x4
// SetLo returns x with its lower half set to y.
//
2025-08-11 16:02:00 -04:00
// Asm: VINSERTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Int64x8 ) SetLo ( y Int64x4 ) Int64x8
// SetLo returns x with its lower half set to y.
//
// Asm: VINSERTI128, CPU Feature: AVX2
func ( x Uint8x32 ) SetLo ( y Uint8x16 ) Uint8x32
// SetLo returns x with its lower half set to y.
//
2025-08-11 16:02:00 -04:00
// Asm: VINSERTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Uint8x64 ) SetLo ( y Uint8x32 ) Uint8x64
// SetLo returns x with its lower half set to y.
//
// Asm: VINSERTI128, CPU Feature: AVX2
func ( x Uint16x16 ) SetLo ( y Uint16x8 ) Uint16x16
// SetLo returns x with its lower half set to y.
//
2025-08-11 16:02:00 -04:00
// Asm: VINSERTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Uint16x32 ) SetLo ( y Uint16x16 ) Uint16x32
// SetLo returns x with its lower half set to y.
//
// Asm: VINSERTI128, CPU Feature: AVX2
func ( x Uint32x8 ) SetLo ( y Uint32x4 ) Uint32x8
// SetLo returns x with its lower half set to y.
//
2025-08-11 16:02:00 -04:00
// Asm: VINSERTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Uint32x16 ) SetLo ( y Uint32x8 ) Uint32x16
// SetLo returns x with its lower half set to y.
//
// Asm: VINSERTI128, CPU Feature: AVX2
func ( x Uint64x4 ) SetLo ( y Uint64x2 ) Uint64x4
// SetLo returns x with its lower half set to y.
//
2025-08-11 16:02:00 -04:00
// Asm: VINSERTI64X4, CPU Feature: AVX512
2025-08-05 19:07:51 +00:00
func ( x Uint64x8 ) SetLo ( y Uint64x4 ) Uint64x8
2025-06-16 20:11:27 +00:00
2025-06-24 15:21:29 +00:00
/* ShiftAllLeft */
// ShiftAllLeft shifts each element to the left by the specified number of bits. Emptied lower bits are zeroed.
2025-06-16 20:11:27 +00:00
//
2025-06-24 15:21:29 +00:00
// Asm: VPSLLW, CPU Feature: AVX
func ( x Int16x8 ) ShiftAllLeft ( y uint64 ) Int16x8
2025-06-16 20:11:27 +00:00
2025-06-24 15:21:29 +00:00
// ShiftAllLeft shifts each element to the left by the specified number of bits. Emptied lower bits are zeroed.
//
// Asm: VPSLLW, CPU Feature: AVX2
func ( x Int16x16 ) ShiftAllLeft ( y uint64 ) Int16x16
2025-07-11 17:56:22 +00:00
// ShiftAllLeft shifts each element to the left by the specified number of bits. Emptied lower bits are zeroed.
//
2025-08-11 16:02:00 -04:00
// Asm: VPSLLW, CPU Feature: AVX512
2025-07-11 17:56:22 +00:00
func ( x Int16x32 ) ShiftAllLeft ( y uint64 ) Int16x32
2025-06-24 15:21:29 +00:00
// ShiftAllLeft shifts each element to the left by the specified number of bits. Emptied lower bits are zeroed.
//
// Asm: VPSLLD, CPU Feature: AVX
func ( x Int32x4 ) ShiftAllLeft ( y uint64 ) Int32x4
// ShiftAllLeft shifts each element to the left by the specified number of bits. Emptied lower bits are zeroed.
//
// Asm: VPSLLD, CPU Feature: AVX2
func ( x Int32x8 ) ShiftAllLeft ( y uint64 ) Int32x8
2025-07-11 17:56:22 +00:00
// ShiftAllLeft shifts each element to the left by the specified number of bits. Emptied lower bits are zeroed.
//
2025-08-11 16:02:00 -04:00
// Asm: VPSLLD, CPU Feature: AVX512
2025-07-11 17:56:22 +00:00
func ( x Int32x16 ) ShiftAllLeft ( y uint64 ) Int32x16
2025-06-24 15:21:29 +00:00
// ShiftAllLeft shifts each element to the left by the specified number of bits. Emptied lower bits are zeroed.
//
// Asm: VPSLLQ, CPU Feature: AVX
func ( x Int64x2 ) ShiftAllLeft ( y uint64 ) Int64x2
// ShiftAllLeft shifts each element to the left by the specified number of bits. Emptied lower bits are zeroed.
//
// Asm: VPSLLQ, CPU Feature: AVX2
func ( x Int64x4 ) ShiftAllLeft ( y uint64 ) Int64x4
// ShiftAllLeft shifts each element to the left by the specified number of bits. Emptied lower bits are zeroed.
2025-06-16 20:11:27 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSLLQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int64x8 ) ShiftAllLeft ( y uint64 ) Int64x8
2025-06-16 20:11:27 +00:00
2025-06-24 15:21:29 +00:00
// ShiftAllLeft shifts each element to the left by the specified number of bits. Emptied lower bits are zeroed.
2025-06-16 20:11:27 +00:00
//
2025-06-24 15:21:29 +00:00
// Asm: VPSLLW, CPU Feature: AVX
func ( x Uint16x8 ) ShiftAllLeft ( y uint64 ) Uint16x8
2025-06-16 20:11:27 +00:00
2025-06-24 15:21:29 +00:00
// ShiftAllLeft shifts each element to the left by the specified number of bits. Emptied lower bits are zeroed.
2025-06-16 20:11:27 +00:00
//
2025-06-24 15:21:29 +00:00
// Asm: VPSLLW, CPU Feature: AVX2
func ( x Uint16x16 ) ShiftAllLeft ( y uint64 ) Uint16x16
2025-06-16 20:11:27 +00:00
2025-07-11 17:56:22 +00:00
// ShiftAllLeft shifts each element to the left by the specified number of bits. Emptied lower bits are zeroed.
//
2025-08-11 16:02:00 -04:00
// Asm: VPSLLW, CPU Feature: AVX512
2025-07-11 17:56:22 +00:00
func ( x Uint16x32 ) ShiftAllLeft ( y uint64 ) Uint16x32
2025-06-24 15:21:29 +00:00
// ShiftAllLeft shifts each element to the left by the specified number of bits. Emptied lower bits are zeroed.
2025-06-16 20:11:27 +00:00
//
2025-06-24 15:21:29 +00:00
// Asm: VPSLLD, CPU Feature: AVX
func ( x Uint32x4 ) ShiftAllLeft ( y uint64 ) Uint32x4
2025-06-16 20:11:27 +00:00
2025-06-24 15:21:29 +00:00
// ShiftAllLeft shifts each element to the left by the specified number of bits. Emptied lower bits are zeroed.
2025-06-16 20:11:27 +00:00
//
2025-06-24 15:21:29 +00:00
// Asm: VPSLLD, CPU Feature: AVX2
func ( x Uint32x8 ) ShiftAllLeft ( y uint64 ) Uint32x8
2025-06-16 20:11:27 +00:00
2025-07-11 17:56:22 +00:00
// ShiftAllLeft shifts each element to the left by the specified number of bits. Emptied lower bits are zeroed.
//
2025-08-11 16:02:00 -04:00
// Asm: VPSLLD, CPU Feature: AVX512
2025-07-11 17:56:22 +00:00
func ( x Uint32x16 ) ShiftAllLeft ( y uint64 ) Uint32x16
2025-06-24 15:21:29 +00:00
// ShiftAllLeft shifts each element to the left by the specified number of bits. Emptied lower bits are zeroed.
2025-06-16 20:11:27 +00:00
//
2025-06-24 15:21:29 +00:00
// Asm: VPSLLQ, CPU Feature: AVX
func ( x Uint64x2 ) ShiftAllLeft ( y uint64 ) Uint64x2
2025-06-16 20:11:27 +00:00
2025-06-24 15:21:29 +00:00
// ShiftAllLeft shifts each element to the left by the specified number of bits. Emptied lower bits are zeroed.
2025-06-16 20:11:27 +00:00
//
2025-06-24 15:21:29 +00:00
// Asm: VPSLLQ, CPU Feature: AVX2
func ( x Uint64x4 ) ShiftAllLeft ( y uint64 ) Uint64x4
2025-06-16 20:11:27 +00:00
2025-06-24 15:21:29 +00:00
// ShiftAllLeft shifts each element to the left by the specified number of bits. Emptied lower bits are zeroed.
2025-06-16 20:11:27 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSLLQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint64x8 ) ShiftAllLeft ( y uint64 ) Uint64x8
2025-06-16 20:11:27 +00:00
2025-07-31 23:45:09 +00:00
/* ShiftAllLeftConcat */
2025-06-24 15:21:29 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// immediate(only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDW, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int16x8 ) ShiftAllLeftConcat ( shift uint8 , y Int16x8 ) Int16x8
2025-06-16 20:11:27 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// immediate(only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDW, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int16x16 ) ShiftAllLeftConcat ( shift uint8 , y Int16x16 ) Int16x16
2025-06-16 20:11:27 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// immediate(only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDW, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int16x32 ) ShiftAllLeftConcat ( shift uint8 , y Int16x32 ) Int16x32
2025-06-16 20:11:27 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// immediate(only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDD, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int32x4 ) ShiftAllLeftConcat ( shift uint8 , y Int32x4 ) Int32x4
2025-06-16 20:11:27 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// immediate(only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDD, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int32x8 ) ShiftAllLeftConcat ( shift uint8 , y Int32x8 ) Int32x8
2025-06-16 20:11:27 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// immediate(only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDD, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int32x16 ) ShiftAllLeftConcat ( shift uint8 , y Int32x16 ) Int32x16
2025-06-16 20:11:27 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// immediate(only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDQ, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int64x2 ) ShiftAllLeftConcat ( shift uint8 , y Int64x2 ) Int64x2
2025-06-16 20:11:27 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// immediate(only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDQ, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int64x4 ) ShiftAllLeftConcat ( shift uint8 , y Int64x4 ) Int64x4
2025-06-16 20:11:27 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// immediate(only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDQ, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int64x8 ) ShiftAllLeftConcat ( shift uint8 , y Int64x8 ) Int64x8
2025-06-16 20:11:27 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// immediate(only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDW, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Uint16x8 ) ShiftAllLeftConcat ( shift uint8 , y Uint16x8 ) Uint16x8
2025-06-16 20:11:27 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// immediate(only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDW, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Uint16x16 ) ShiftAllLeftConcat ( shift uint8 , y Uint16x16 ) Uint16x16
2025-06-16 20:11:27 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// immediate(only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDW, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Uint16x32 ) ShiftAllLeftConcat ( shift uint8 , y Uint16x32 ) Uint16x32
2025-06-16 20:11:27 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// immediate(only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDD, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Uint32x4 ) ShiftAllLeftConcat ( shift uint8 , y Uint32x4 ) Uint32x4
2025-06-16 20:11:27 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// immediate(only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDD, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Uint32x8 ) ShiftAllLeftConcat ( shift uint8 , y Uint32x8 ) Uint32x8
2025-06-16 20:11:27 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// immediate(only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDD, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Uint32x16 ) ShiftAllLeftConcat ( shift uint8 , y Uint32x16 ) Uint32x16
2025-06-16 20:11:27 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// immediate(only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDQ, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Uint64x2 ) ShiftAllLeftConcat ( shift uint8 , y Uint64x2 ) Uint64x2
2025-06-16 20:11:27 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// immediate(only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDQ, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Uint64x4 ) ShiftAllLeftConcat ( shift uint8 , y Uint64x4 ) Uint64x4
2025-06-16 20:11:27 +00:00
2025-08-18 21:13:00 +00:00
// ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by the
// immediate(only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
2025-07-08 18:18:55 +00:00
//
2025-08-18 21:13:00 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHLDQ, CPU Feature: AVX512VBMI2
func ( x Uint64x8 ) ShiftAllLeftConcat ( shift uint8 , y Uint64x8 ) Uint64x8
2025-07-08 18:18:55 +00:00
2025-06-24 15:21:29 +00:00
/* ShiftAllRight */
2025-07-11 17:56:22 +00:00
// ShiftAllRight shifts each element to the right by the specified number of bits. Emptied upper bits are filled with the sign bit.
2025-06-16 20:11:27 +00:00
//
2025-07-11 17:56:22 +00:00
// Asm: VPSRAW, CPU Feature: AVX
2025-06-24 15:21:29 +00:00
func ( x Int16x8 ) ShiftAllRight ( y uint64 ) Int16x8
2025-06-12 16:21:35 +00:00
2025-07-11 17:56:22 +00:00
// ShiftAllRight shifts each element to the right by the specified number of bits. Emptied upper bits are filled with the sign bit.
2025-06-12 16:42:02 +00:00
//
2025-07-11 17:56:22 +00:00
// Asm: VPSRAW, CPU Feature: AVX2
2025-06-24 15:21:29 +00:00
func ( x Int16x16 ) ShiftAllRight ( y uint64 ) Int16x16
2025-06-12 16:21:35 +00:00
2025-07-11 17:56:22 +00:00
// ShiftAllRight shifts each element to the right by the specified number of bits. Emptied upper bits are filled with the sign bit.
2025-06-24 15:21:29 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSRAW, CPU Feature: AVX512
2025-07-11 17:56:22 +00:00
func ( x Int16x32 ) ShiftAllRight ( y uint64 ) Int16x32
// ShiftAllRight shifts each element to the right by the specified number of bits. Emptied upper bits are filled with the sign bit.
//
// Asm: VPSRAD, CPU Feature: AVX
2025-06-24 15:21:29 +00:00
func ( x Int32x4 ) ShiftAllRight ( y uint64 ) Int32x4
2025-06-16 20:11:27 +00:00
2025-07-11 17:56:22 +00:00
// ShiftAllRight shifts each element to the right by the specified number of bits. Emptied upper bits are filled with the sign bit.
2025-06-12 16:42:02 +00:00
//
2025-07-11 17:56:22 +00:00
// Asm: VPSRAD, CPU Feature: AVX2
2025-06-24 15:21:29 +00:00
func ( x Int32x8 ) ShiftAllRight ( y uint64 ) Int32x8
2025-06-12 16:21:35 +00:00
2025-07-11 17:56:22 +00:00
// ShiftAllRight shifts each element to the right by the specified number of bits. Emptied upper bits are filled with the sign bit.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSRAD, CPU Feature: AVX512
2025-07-11 17:56:22 +00:00
func ( x Int32x16 ) ShiftAllRight ( y uint64 ) Int32x16
// ShiftAllRight shifts each element to the right by the specified number of bits. Emptied upper bits are filled with the sign bit.
//
2025-08-11 16:02:00 -04:00
// Asm: VPSRAQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int64x2 ) ShiftAllRight ( y uint64 ) Int64x2
2025-06-12 16:21:35 +00:00
2025-07-11 17:56:22 +00:00
// ShiftAllRight shifts each element to the right by the specified number of bits. Emptied upper bits are filled with the sign bit.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSRAQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int64x4 ) ShiftAllRight ( y uint64 ) Int64x4
2025-06-12 16:21:35 +00:00
2025-07-11 17:56:22 +00:00
// ShiftAllRight shifts each element to the right by the specified number of bits. Emptied upper bits are filled with the sign bit.
2025-06-24 15:21:29 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSRAQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int64x8 ) ShiftAllRight ( y uint64 ) Int64x8
2025-06-16 20:11:27 +00:00
2025-06-24 15:21:29 +00:00
// ShiftAllRight shifts each element to the right by the specified number of bits. Emptied upper bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-06-24 15:21:29 +00:00
// Asm: VPSRLW, CPU Feature: AVX
func ( x Uint16x8 ) ShiftAllRight ( y uint64 ) Uint16x8
2025-06-12 16:21:35 +00:00
2025-06-24 15:21:29 +00:00
// ShiftAllRight shifts each element to the right by the specified number of bits. Emptied upper bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-06-24 15:21:29 +00:00
// Asm: VPSRLW, CPU Feature: AVX2
func ( x Uint16x16 ) ShiftAllRight ( y uint64 ) Uint16x16
2025-06-12 16:21:35 +00:00
2025-07-11 17:56:22 +00:00
// ShiftAllRight shifts each element to the right by the specified number of bits. Emptied upper bits are zeroed.
//
2025-08-11 16:02:00 -04:00
// Asm: VPSRLW, CPU Feature: AVX512
2025-07-11 17:56:22 +00:00
func ( x Uint16x32 ) ShiftAllRight ( y uint64 ) Uint16x32
2025-06-24 15:21:29 +00:00
// ShiftAllRight shifts each element to the right by the specified number of bits. Emptied upper bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-06-24 15:21:29 +00:00
// Asm: VPSRLD, CPU Feature: AVX
func ( x Uint32x4 ) ShiftAllRight ( y uint64 ) Uint32x4
2025-06-12 16:21:35 +00:00
2025-07-08 18:18:55 +00:00
// ShiftAllRight shifts each element to the right by the specified number of bits. Emptied upper bits are zeroed.
//
// Asm: VPSRLD, CPU Feature: AVX2
func ( x Uint32x8 ) ShiftAllRight ( y uint64 ) Uint32x8
2025-07-11 17:56:22 +00:00
// ShiftAllRight shifts each element to the right by the specified number of bits. Emptied upper bits are zeroed.
//
2025-08-11 16:02:00 -04:00
// Asm: VPSRLD, CPU Feature: AVX512
2025-07-11 17:56:22 +00:00
func ( x Uint32x16 ) ShiftAllRight ( y uint64 ) Uint32x16
2025-07-08 18:18:55 +00:00
// ShiftAllRight shifts each element to the right by the specified number of bits. Emptied upper bits are zeroed.
//
// Asm: VPSRLQ, CPU Feature: AVX
func ( x Uint64x2 ) ShiftAllRight ( y uint64 ) Uint64x2
// ShiftAllRight shifts each element to the right by the specified number of bits. Emptied upper bits are zeroed.
//
// Asm: VPSRLQ, CPU Feature: AVX2
func ( x Uint64x4 ) ShiftAllRight ( y uint64 ) Uint64x4
// ShiftAllRight shifts each element to the right by the specified number of bits. Emptied upper bits are zeroed.
//
2025-08-11 16:02:00 -04:00
// Asm: VPSRLQ, CPU Feature: AVX512
2025-07-08 18:18:55 +00:00
func ( x Uint64x8 ) ShiftAllRight ( y uint64 ) Uint64x8
2025-07-31 23:45:09 +00:00
/* ShiftAllRightConcat */
2025-07-08 18:18:55 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by the
2025-07-08 18:18:55 +00:00
// immediate(only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHRDW, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int16x8 ) ShiftAllRightConcat ( shift uint8 , y Int16x8 ) Int16x8
2025-07-08 18:18:55 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by the
2025-07-08 18:18:55 +00:00
// immediate(only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHRDW, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int16x16 ) ShiftAllRightConcat ( shift uint8 , y Int16x16 ) Int16x16
2025-07-08 18:18:55 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by the
2025-07-08 18:18:55 +00:00
// immediate(only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHRDW, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int16x32 ) ShiftAllRightConcat ( shift uint8 , y Int16x32 ) Int16x32
2025-07-08 18:18:55 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by the
2025-07-08 18:18:55 +00:00
// immediate(only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHRDD, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int32x4 ) ShiftAllRightConcat ( shift uint8 , y Int32x4 ) Int32x4
2025-07-08 18:18:55 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by the
2025-07-08 18:18:55 +00:00
// immediate(only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHRDD, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int32x8 ) ShiftAllRightConcat ( shift uint8 , y Int32x8 ) Int32x8
2025-07-08 18:18:55 +00:00
2025-07-31 23:45:09 +00:00
// ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by the
2025-07-08 18:18:55 +00:00
// immediate(only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
//
2025-08-11 17:20:48 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDD, CPU Feature: AVX512VBMI2
func ( x Int32x16 ) ShiftAllRightConcat ( shift uint8 , y Int32x16 ) Int32x16
2025-06-16 20:11:27 +00:00
2025-08-18 21:13:00 +00:00
// ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by the
// immediate(only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
2025-07-11 17:56:22 +00:00
//
2025-08-18 21:13:00 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDQ, CPU Feature: AVX512VBMI2
func ( x Int64x2 ) ShiftAllRightConcat ( shift uint8 , y Int64x2 ) Int64x2
2025-06-16 20:11:27 +00:00
2025-08-18 21:13:00 +00:00
// ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by the
// immediate(only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-18 21:13:00 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDQ, CPU Feature: AVX512VBMI2
func ( x Int64x4 ) ShiftAllRightConcat ( shift uint8 , y Int64x4 ) Int64x4
2025-06-16 20:11:27 +00:00
2025-08-18 21:13:00 +00:00
// ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by the
// immediate(only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-18 21:13:00 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDQ, CPU Feature: AVX512VBMI2
func ( x Int64x8 ) ShiftAllRightConcat ( shift uint8 , y Int64x8 ) Int64x8
2025-06-16 20:11:27 +00:00
2025-08-18 21:13:00 +00:00
// ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by the
// immediate(only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-18 21:13:00 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDW, CPU Feature: AVX512VBMI2
func ( x Uint16x8 ) ShiftAllRightConcat ( shift uint8 , y Uint16x8 ) Uint16x8
2025-06-16 20:11:27 +00:00
2025-08-18 21:13:00 +00:00
// ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by the
// immediate(only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-18 21:13:00 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDW, CPU Feature: AVX512VBMI2
func ( x Uint16x16 ) ShiftAllRightConcat ( shift uint8 , y Uint16x16 ) Uint16x16
2025-06-16 20:11:27 +00:00
2025-08-18 21:13:00 +00:00
// ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by the
// immediate(only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-18 21:13:00 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDW, CPU Feature: AVX512VBMI2
func ( x Uint16x32 ) ShiftAllRightConcat ( shift uint8 , y Uint16x32 ) Uint16x32
2025-06-16 20:11:27 +00:00
2025-08-18 21:13:00 +00:00
// ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by the
// immediate(only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-18 21:13:00 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDD, CPU Feature: AVX512VBMI2
func ( x Uint32x4 ) ShiftAllRightConcat ( shift uint8 , y Uint32x4 ) Uint32x4
2025-06-16 20:11:27 +00:00
2025-08-18 21:13:00 +00:00
// ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by the
// immediate(only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
2025-06-16 20:11:27 +00:00
//
2025-08-18 21:13:00 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDD, CPU Feature: AVX512VBMI2
func ( x Uint32x8 ) ShiftAllRightConcat ( shift uint8 , y Uint32x8 ) Uint32x8
2025-06-16 20:11:27 +00:00
2025-08-18 21:13:00 +00:00
// ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by the
// immediate(only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
2025-07-11 17:56:22 +00:00
//
2025-08-18 21:13:00 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDD, CPU Feature: AVX512VBMI2
func ( x Uint32x16 ) ShiftAllRightConcat ( shift uint8 , y Uint32x16 ) Uint32x16
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by the
// immediate(only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
2025-07-08 18:18:55 +00:00
//
2025-08-18 21:13:00 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDQ, CPU Feature: AVX512VBMI2
func ( x Uint64x2 ) ShiftAllRightConcat ( shift uint8 , y Uint64x2 ) Uint64x2
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by the
// immediate(only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
2025-07-08 18:18:55 +00:00
//
2025-08-18 21:13:00 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDQ, CPU Feature: AVX512VBMI2
func ( x Uint64x4 ) ShiftAllRightConcat ( shift uint8 , y Uint64x4 ) Uint64x4
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by the
// immediate(only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
2025-07-08 18:18:55 +00:00
//
2025-08-18 21:13:00 +00:00
// shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDQ, CPU Feature: AVX512VBMI2
func ( x Uint64x8 ) ShiftAllRightConcat ( shift uint8 , y Uint64x8 ) Uint64x8
2025-07-08 18:18:55 +00:00
2025-06-24 15:21:29 +00:00
/* ShiftLeft */
// ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements. Emptied lower bits are zeroed.
2025-06-16 20:11:27 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSLLVW, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int16x8 ) ShiftLeft ( y Int16x8 ) Int16x8
2025-06-16 20:11:27 +00:00
2025-06-24 15:21:29 +00:00
// ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements. Emptied lower bits are zeroed.
2025-06-16 20:11:27 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSLLVW, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int16x16 ) ShiftLeft ( y Int16x16 ) Int16x16
2025-06-16 20:11:27 +00:00
2025-06-24 15:21:29 +00:00
// ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements. Emptied lower bits are zeroed.
2025-06-16 20:11:27 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSLLVW, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int16x32 ) ShiftLeft ( y Int16x32 ) Int16x32
2025-06-16 20:11:27 +00:00
2025-06-24 15:21:29 +00:00
// ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements. Emptied lower bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-06-24 15:21:29 +00:00
// Asm: VPSLLVD, CPU Feature: AVX2
func ( x Int32x4 ) ShiftLeft ( y Int32x4 ) Int32x4
2025-06-12 16:21:35 +00:00
2025-06-24 15:21:29 +00:00
// ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements. Emptied lower bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-06-24 15:21:29 +00:00
// Asm: VPSLLVD, CPU Feature: AVX2
func ( x Int32x8 ) ShiftLeft ( y Int32x8 ) Int32x8
2025-06-12 16:21:35 +00:00
2025-06-24 15:21:29 +00:00
// ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements. Emptied lower bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSLLVD, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int32x16 ) ShiftLeft ( y Int32x16 ) Int32x16
2025-06-12 16:21:35 +00:00
2025-06-24 15:21:29 +00:00
// ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements. Emptied lower bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-06-24 15:21:29 +00:00
// Asm: VPSLLVQ, CPU Feature: AVX2
func ( x Int64x2 ) ShiftLeft ( y Int64x2 ) Int64x2
2025-06-12 16:21:35 +00:00
2025-06-24 15:21:29 +00:00
// ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements. Emptied lower bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-06-24 15:21:29 +00:00
// Asm: VPSLLVQ, CPU Feature: AVX2
func ( x Int64x4 ) ShiftLeft ( y Int64x4 ) Int64x4
2025-06-12 16:21:35 +00:00
2025-06-24 15:21:29 +00:00
// ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements. Emptied lower bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSLLVQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int64x8 ) ShiftLeft ( y Int64x8 ) Int64x8
2025-06-12 16:21:35 +00:00
2025-06-24 15:21:29 +00:00
// ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements. Emptied lower bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSLLVW, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint16x8 ) ShiftLeft ( y Uint16x8 ) Uint16x8
2025-06-12 16:21:35 +00:00
2025-06-24 15:21:29 +00:00
// ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements. Emptied lower bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSLLVW, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint16x16 ) ShiftLeft ( y Uint16x16 ) Uint16x16
// ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements. Emptied lower bits are zeroed.
//
2025-08-11 16:02:00 -04:00
// Asm: VPSLLVW, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint16x32 ) ShiftLeft ( y Uint16x32 ) Uint16x32
2025-06-12 16:21:35 +00:00
2025-06-24 15:21:29 +00:00
// ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements. Emptied lower bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-06-24 15:21:29 +00:00
// Asm: VPSLLVD, CPU Feature: AVX2
func ( x Uint32x4 ) ShiftLeft ( y Uint32x4 ) Uint32x4
2025-06-12 16:21:35 +00:00
2025-06-24 15:21:29 +00:00
// ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements. Emptied lower bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-06-24 15:21:29 +00:00
// Asm: VPSLLVD, CPU Feature: AVX2
func ( x Uint32x8 ) ShiftLeft ( y Uint32x8 ) Uint32x8
2025-06-12 16:21:35 +00:00
2025-06-24 15:21:29 +00:00
// ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements. Emptied lower bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSLLVD, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint32x16 ) ShiftLeft ( y Uint32x16 ) Uint32x16
2025-06-12 16:21:35 +00:00
2025-06-24 15:21:29 +00:00
// ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements. Emptied lower bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-06-24 15:21:29 +00:00
// Asm: VPSLLVQ, CPU Feature: AVX2
func ( x Uint64x2 ) ShiftLeft ( y Uint64x2 ) Uint64x2
2025-06-12 16:21:35 +00:00
2025-06-24 15:21:29 +00:00
// ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements. Emptied lower bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-06-24 15:21:29 +00:00
// Asm: VPSLLVQ, CPU Feature: AVX2
func ( x Uint64x4 ) ShiftLeft ( y Uint64x4 ) Uint64x4
2025-06-12 16:21:35 +00:00
2025-06-24 15:21:29 +00:00
// ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements. Emptied lower bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSLLVQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint64x8 ) ShiftLeft ( y Uint64x8 ) Uint64x8
2025-06-12 16:21:35 +00:00
2025-07-31 23:45:09 +00:00
/* ShiftLeftConcat */
2025-06-16 20:11:27 +00:00
2025-07-31 23:45:09 +00:00
// ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// corresponding elements in y(only the lower 5 bits are used), and then copies the upper bits of z to the emptied lower bits of the shifted x.
2025-06-12 16:42:02 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDVW, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int16x8 ) ShiftLeftConcat ( y Int16x8 , z Int16x8 ) Int16x8
2025-06-12 16:21:35 +00:00
2025-07-31 23:45:09 +00:00
// ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// corresponding elements in y(only the lower 5 bits are used), and then copies the upper bits of z to the emptied lower bits of the shifted x.
2025-06-12 16:42:02 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDVW, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int16x16 ) ShiftLeftConcat ( y Int16x16 , z Int16x16 ) Int16x16
2025-06-12 16:21:35 +00:00
2025-07-31 23:45:09 +00:00
// ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// corresponding elements in y(only the lower 5 bits are used), and then copies the upper bits of z to the emptied lower bits of the shifted x.
2025-06-12 16:42:02 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDVW, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int16x32 ) ShiftLeftConcat ( y Int16x32 , z Int16x32 ) Int16x32
2025-06-12 16:21:35 +00:00
2025-07-31 23:45:09 +00:00
// ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// corresponding elements in y(only the lower 5 bits are used), and then copies the upper bits of z to the emptied lower bits of the shifted x.
2025-06-12 16:42:02 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDVD, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int32x4 ) ShiftLeftConcat ( y Int32x4 , z Int32x4 ) Int32x4
2025-06-16 20:11:27 +00:00
2025-07-31 23:45:09 +00:00
// ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// corresponding elements in y(only the lower 5 bits are used), and then copies the upper bits of z to the emptied lower bits of the shifted x.
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDVD, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int32x8 ) ShiftLeftConcat ( y Int32x8 , z Int32x8 ) Int32x8
2025-06-12 16:21:35 +00:00
2025-07-31 23:45:09 +00:00
// ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// corresponding elements in y(only the lower 5 bits are used), and then copies the upper bits of z to the emptied lower bits of the shifted x.
2025-06-12 16:42:02 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDVD, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int32x16 ) ShiftLeftConcat ( y Int32x16 , z Int32x16 ) Int32x16
2025-06-12 16:21:35 +00:00
2025-07-31 23:45:09 +00:00
// ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// corresponding elements in y(only the lower 5 bits are used), and then copies the upper bits of z to the emptied lower bits of the shifted x.
2025-06-12 16:42:02 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDVQ, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int64x2 ) ShiftLeftConcat ( y Int64x2 , z Int64x2 ) Int64x2
2025-06-12 16:21:35 +00:00
2025-07-31 23:45:09 +00:00
// ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// corresponding elements in y(only the lower 5 bits are used), and then copies the upper bits of z to the emptied lower bits of the shifted x.
2025-06-12 16:42:02 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDVQ, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int64x4 ) ShiftLeftConcat ( y Int64x4 , z Int64x4 ) Int64x4
2025-06-12 16:21:35 +00:00
2025-07-31 23:45:09 +00:00
// ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// corresponding elements in y(only the lower 5 bits are used), and then copies the upper bits of z to the emptied lower bits of the shifted x.
2025-06-12 16:42:02 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHLDVQ, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int64x8 ) ShiftLeftConcat ( y Int64x8 , z Int64x8 ) Int64x8
2025-06-12 16:21:35 +00:00
2025-08-18 21:13:00 +00:00
// ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the upper bits of z to the emptied lower bits of the shifted x.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHLDVW, CPU Feature: AVX512VBMI2
func ( x Uint16x8 ) ShiftLeftConcat ( y Uint16x8 , z Uint16x8 ) Uint16x8
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the upper bits of z to the emptied lower bits of the shifted x.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHLDVW, CPU Feature: AVX512VBMI2
func ( x Uint16x16 ) ShiftLeftConcat ( y Uint16x16 , z Uint16x16 ) Uint16x16
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the upper bits of z to the emptied lower bits of the shifted x.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHLDVW, CPU Feature: AVX512VBMI2
func ( x Uint16x32 ) ShiftLeftConcat ( y Uint16x32 , z Uint16x32 ) Uint16x32
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the upper bits of z to the emptied lower bits of the shifted x.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHLDVD, CPU Feature: AVX512VBMI2
func ( x Uint32x4 ) ShiftLeftConcat ( y Uint32x4 , z Uint32x4 ) Uint32x4
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the upper bits of z to the emptied lower bits of the shifted x.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHLDVD, CPU Feature: AVX512VBMI2
func ( x Uint32x8 ) ShiftLeftConcat ( y Uint32x8 , z Uint32x8 ) Uint32x8
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the upper bits of z to the emptied lower bits of the shifted x.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHLDVD, CPU Feature: AVX512VBMI2
func ( x Uint32x16 ) ShiftLeftConcat ( y Uint32x16 , z Uint32x16 ) Uint32x16
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the upper bits of z to the emptied lower bits of the shifted x.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHLDVQ, CPU Feature: AVX512VBMI2
func ( x Uint64x2 ) ShiftLeftConcat ( y Uint64x2 , z Uint64x2 ) Uint64x2
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the upper bits of z to the emptied lower bits of the shifted x.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHLDVQ, CPU Feature: AVX512VBMI2
func ( x Uint64x4 ) ShiftLeftConcat ( y Uint64x4 , z Uint64x4 ) Uint64x4
2025-06-12 16:21:35 +00:00
2025-08-18 21:13:00 +00:00
// ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the upper bits of z to the emptied lower bits of the shifted x.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHLDVQ, CPU Feature: AVX512VBMI2
func ( x Uint64x8 ) ShiftLeftConcat ( y Uint64x8 , z Uint64x8 ) Uint64x8
2025-06-12 16:21:35 +00:00
2025-06-24 15:21:29 +00:00
/* ShiftRight */
2025-06-12 16:21:35 +00:00
2025-07-11 17:56:22 +00:00
// ShiftRight shifts each element in x to the right by the number of bits specified in y's corresponding elements. Emptied upper bits are filled with the sign bit.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSRAVW, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int16x8 ) ShiftRight ( y Int16x8 ) Int16x8
2025-06-12 16:21:35 +00:00
2025-07-11 17:56:22 +00:00
// ShiftRight shifts each element in x to the right by the number of bits specified in y's corresponding elements. Emptied upper bits are filled with the sign bit.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSRAVW, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int16x16 ) ShiftRight ( y Int16x16 ) Int16x16
2025-06-12 16:21:35 +00:00
2025-07-11 17:56:22 +00:00
// ShiftRight shifts each element in x to the right by the number of bits specified in y's corresponding elements. Emptied upper bits are filled with the sign bit.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSRAVW, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int16x32 ) ShiftRight ( y Int16x32 ) Int16x32
2025-06-12 16:21:35 +00:00
2025-07-11 17:56:22 +00:00
// ShiftRight shifts each element in x to the right by the number of bits specified in y's corresponding elements. Emptied upper bits are filled with the sign bit.
2025-06-12 16:42:02 +00:00
//
2025-07-11 17:56:22 +00:00
// Asm: VPSRAVD, CPU Feature: AVX2
2025-06-24 15:21:29 +00:00
func ( x Int32x4 ) ShiftRight ( y Int32x4 ) Int32x4
2025-06-12 16:21:35 +00:00
2025-07-11 17:56:22 +00:00
// ShiftRight shifts each element in x to the right by the number of bits specified in y's corresponding elements. Emptied upper bits are filled with the sign bit.
2025-06-12 16:42:02 +00:00
//
2025-07-11 17:56:22 +00:00
// Asm: VPSRAVD, CPU Feature: AVX2
2025-06-24 15:21:29 +00:00
func ( x Int32x8 ) ShiftRight ( y Int32x8 ) Int32x8
2025-06-12 16:21:35 +00:00
2025-07-11 17:56:22 +00:00
// ShiftRight shifts each element in x to the right by the number of bits specified in y's corresponding elements. Emptied upper bits are filled with the sign bit.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSRAVD, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int32x16 ) ShiftRight ( y Int32x16 ) Int32x16
2025-06-12 16:21:35 +00:00
2025-07-11 17:56:22 +00:00
// ShiftRight shifts each element in x to the right by the number of bits specified in y's corresponding elements. Emptied upper bits are filled with the sign bit.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSRAVQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int64x2 ) ShiftRight ( y Int64x2 ) Int64x2
2025-06-12 16:21:35 +00:00
2025-07-11 17:56:22 +00:00
// ShiftRight shifts each element in x to the right by the number of bits specified in y's corresponding elements. Emptied upper bits are filled with the sign bit.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSRAVQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int64x4 ) ShiftRight ( y Int64x4 ) Int64x4
2025-06-16 20:11:27 +00:00
2025-07-11 17:56:22 +00:00
// ShiftRight shifts each element in x to the right by the number of bits specified in y's corresponding elements. Emptied upper bits are filled with the sign bit.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSRAVQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Int64x8 ) ShiftRight ( y Int64x8 ) Int64x8
2025-06-12 16:21:35 +00:00
2025-06-24 15:21:29 +00:00
// ShiftRight shifts each element in x to the right by the number of bits specified in y's corresponding elements. Emptied upper bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSRLVW, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint16x8 ) ShiftRight ( y Uint16x8 ) Uint16x8
2025-06-12 16:21:35 +00:00
2025-06-24 15:21:29 +00:00
// ShiftRight shifts each element in x to the right by the number of bits specified in y's corresponding elements. Emptied upper bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSRLVW, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint16x16 ) ShiftRight ( y Uint16x16 ) Uint16x16
2025-06-12 16:21:35 +00:00
2025-06-24 15:21:29 +00:00
// ShiftRight shifts each element in x to the right by the number of bits specified in y's corresponding elements. Emptied upper bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSRLVW, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint16x32 ) ShiftRight ( y Uint16x32 ) Uint16x32
2025-06-16 20:11:27 +00:00
2025-06-24 15:21:29 +00:00
// ShiftRight shifts each element in x to the right by the number of bits specified in y's corresponding elements. Emptied upper bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-06-24 15:21:29 +00:00
// Asm: VPSRLVD, CPU Feature: AVX2
func ( x Uint32x4 ) ShiftRight ( y Uint32x4 ) Uint32x4
2025-06-12 16:21:35 +00:00
2025-06-24 15:21:29 +00:00
// ShiftRight shifts each element in x to the right by the number of bits specified in y's corresponding elements. Emptied upper bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-06-24 15:21:29 +00:00
// Asm: VPSRLVD, CPU Feature: AVX2
func ( x Uint32x8 ) ShiftRight ( y Uint32x8 ) Uint32x8
2025-06-12 16:21:35 +00:00
2025-06-24 15:21:29 +00:00
// ShiftRight shifts each element in x to the right by the number of bits specified in y's corresponding elements. Emptied upper bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSRLVD, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint32x16 ) ShiftRight ( y Uint32x16 ) Uint32x16
2025-06-12 16:21:35 +00:00
2025-06-24 15:21:29 +00:00
// ShiftRight shifts each element in x to the right by the number of bits specified in y's corresponding elements. Emptied upper bits are zeroed.
//
// Asm: VPSRLVQ, CPU Feature: AVX2
func ( x Uint64x2 ) ShiftRight ( y Uint64x2 ) Uint64x2
2025-06-16 20:11:27 +00:00
2025-06-24 15:21:29 +00:00
// ShiftRight shifts each element in x to the right by the number of bits specified in y's corresponding elements. Emptied upper bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-06-24 15:21:29 +00:00
// Asm: VPSRLVQ, CPU Feature: AVX2
func ( x Uint64x4 ) ShiftRight ( y Uint64x4 ) Uint64x4
2025-06-12 16:21:35 +00:00
2025-06-24 15:21:29 +00:00
// ShiftRight shifts each element in x to the right by the number of bits specified in y's corresponding elements. Emptied upper bits are zeroed.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSRLVQ, CPU Feature: AVX512
2025-06-24 15:21:29 +00:00
func ( x Uint64x8 ) ShiftRight ( y Uint64x8 ) Uint64x8
2025-06-12 16:21:35 +00:00
2025-07-31 23:45:09 +00:00
/* ShiftRightConcat */
2025-06-16 20:11:27 +00:00
2025-07-31 23:45:09 +00:00
// ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// corresponding elements in y(only the lower 5 bits are used), and then copies the lower bits of z to the emptied upper bits of the shifted x.
2025-06-12 16:42:02 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHRDVW, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int16x8 ) ShiftRightConcat ( y Int16x8 , z Int16x8 ) Int16x8
2025-06-12 16:21:35 +00:00
2025-07-31 23:45:09 +00:00
// ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// corresponding elements in y(only the lower 5 bits are used), and then copies the lower bits of z to the emptied upper bits of the shifted x.
2025-06-12 16:42:02 +00:00
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHRDVW, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int16x16 ) ShiftRightConcat ( y Int16x16 , z Int16x16 ) Int16x16
2025-06-12 16:21:35 +00:00
2025-07-31 23:45:09 +00:00
// ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
2025-06-24 15:21:29 +00:00
// corresponding elements in y(only the lower 5 bits are used), and then copies the lower bits of z to the emptied upper bits of the shifted x.
//
2025-07-11 20:03:00 +00:00
// Asm: VPSHRDVW, CPU Feature: AVX512VBMI2
2025-07-31 23:45:09 +00:00
func ( x Int16x32 ) ShiftRightConcat ( y Int16x32 , z Int16x32 ) Int16x32
2025-06-16 20:11:27 +00:00
2025-08-18 21:13:00 +00:00
// ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the lower bits of z to the emptied upper bits of the shifted x.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDVD, CPU Feature: AVX512VBMI2
func ( x Int32x4 ) ShiftRightConcat ( y Int32x4 , z Int32x4 ) Int32x4
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the lower bits of z to the emptied upper bits of the shifted x.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDVD, CPU Feature: AVX512VBMI2
func ( x Int32x8 ) ShiftRightConcat ( y Int32x8 , z Int32x8 ) Int32x8
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the lower bits of z to the emptied upper bits of the shifted x.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDVD, CPU Feature: AVX512VBMI2
func ( x Int32x16 ) ShiftRightConcat ( y Int32x16 , z Int32x16 ) Int32x16
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the lower bits of z to the emptied upper bits of the shifted x.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDVQ, CPU Feature: AVX512VBMI2
func ( x Int64x2 ) ShiftRightConcat ( y Int64x2 , z Int64x2 ) Int64x2
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the lower bits of z to the emptied upper bits of the shifted x.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDVQ, CPU Feature: AVX512VBMI2
func ( x Int64x4 ) ShiftRightConcat ( y Int64x4 , z Int64x4 ) Int64x4
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the lower bits of z to the emptied upper bits of the shifted x.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDVQ, CPU Feature: AVX512VBMI2
func ( x Int64x8 ) ShiftRightConcat ( y Int64x8 , z Int64x8 ) Int64x8
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the lower bits of z to the emptied upper bits of the shifted x.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDVW, CPU Feature: AVX512VBMI2
func ( x Uint16x8 ) ShiftRightConcat ( y Uint16x8 , z Uint16x8 ) Uint16x8
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the lower bits of z to the emptied upper bits of the shifted x.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDVW, CPU Feature: AVX512VBMI2
func ( x Uint16x16 ) ShiftRightConcat ( y Uint16x16 , z Uint16x16 ) Uint16x16
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the lower bits of z to the emptied upper bits of the shifted x.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDVW, CPU Feature: AVX512VBMI2
func ( x Uint16x32 ) ShiftRightConcat ( y Uint16x32 , z Uint16x32 ) Uint16x32
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the lower bits of z to the emptied upper bits of the shifted x.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDVD, CPU Feature: AVX512VBMI2
func ( x Uint32x4 ) ShiftRightConcat ( y Uint32x4 , z Uint32x4 ) Uint32x4
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the lower bits of z to the emptied upper bits of the shifted x.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDVD, CPU Feature: AVX512VBMI2
func ( x Uint32x8 ) ShiftRightConcat ( y Uint32x8 , z Uint32x8 ) Uint32x8
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the lower bits of z to the emptied upper bits of the shifted x.
2025-07-08 18:18:55 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDVD, CPU Feature: AVX512VBMI2
func ( x Uint32x16 ) ShiftRightConcat ( y Uint32x16 , z Uint32x16 ) Uint32x16
// ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the lower bits of z to the emptied upper bits of the shifted x.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDVQ, CPU Feature: AVX512VBMI2
func ( x Uint64x2 ) ShiftRightConcat ( y Uint64x2 , z Uint64x2 ) Uint64x2
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the lower bits of z to the emptied upper bits of the shifted x.
2025-07-08 18:18:55 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDVQ, CPU Feature: AVX512VBMI2
func ( x Uint64x4 ) ShiftRightConcat ( y Uint64x4 , z Uint64x4 ) Uint64x4
// ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
// corresponding elements in y(only the lower 5 bits are used), and then copies the lower bits of z to the emptied upper bits of the shifted x.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSHRDVQ, CPU Feature: AVX512VBMI2
func ( x Uint64x8 ) ShiftRightConcat ( y Uint64x8 , z Uint64x8 ) Uint64x8
2025-07-08 18:18:55 +00:00
2025-06-16 20:11:27 +00:00
/* Sqrt */
// Sqrt computes the square root of each element.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VSQRTPS, CPU Feature: AVX
func ( x Float32x4 ) Sqrt ( ) Float32x4
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Sqrt computes the square root of each element.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VSQRTPS, CPU Feature: AVX
func ( x Float32x8 ) Sqrt ( ) Float32x8
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Sqrt computes the square root of each element.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VSQRTPS, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Float32x16 ) Sqrt ( ) Float32x16
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Sqrt computes the square root of each element.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VSQRTPD, CPU Feature: AVX
func ( x Float64x2 ) Sqrt ( ) Float64x2
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Sqrt computes the square root of each element.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VSQRTPD, CPU Feature: AVX
func ( x Float64x4 ) Sqrt ( ) Float64x4
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Sqrt computes the square root of each element.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VSQRTPD, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Float64x8 ) Sqrt ( ) Float64x8
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
/* Sub */
// Sub subtracts corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VSUBPS, CPU Feature: AVX
func ( x Float32x4 ) Sub ( y Float32x4 ) Float32x4
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VSUBPS, CPU Feature: AVX
func ( x Float32x8 ) Sub ( y Float32x8 ) Float32x8
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VSUBPS, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Float32x16 ) Sub ( y Float32x16 ) Float32x16
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VSUBPD, CPU Feature: AVX
func ( x Float64x2 ) Sub ( y Float64x2 ) Float64x2
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VSUBPD, CPU Feature: AVX
func ( x Float64x4 ) Sub ( y Float64x4 ) Float64x4
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VSUBPD, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Float64x8 ) Sub ( y Float64x8 ) Float64x8
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPSUBB, CPU Feature: AVX
func ( x Int8x16 ) Sub ( y Int8x16 ) Int8x16
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPSUBB, CPU Feature: AVX2
func ( x Int8x32 ) Sub ( y Int8x32 ) Int8x32
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSUBB, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Int8x64 ) Sub ( y Int8x64 ) Int8x64
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VPSUBW, CPU Feature: AVX
func ( x Int16x8 ) Sub ( y Int16x8 ) Int16x8
2025-06-12 16:21:35 +00:00
2025-08-18 21:13:00 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-07-08 18:18:55 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSUBW, CPU Feature: AVX2
func ( x Int16x16 ) Sub ( y Int16x16 ) Int16x16
// Sub subtracts corresponding elements of two vectors.
2025-07-16 17:02:47 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSUBW, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Int16x32 ) Sub ( y Int16x32 ) Int16x32
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSUBD, CPU Feature: AVX
func ( x Int32x4 ) Sub ( y Int32x4 ) Int32x4
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSUBD, CPU Feature: AVX2
func ( x Int32x8 ) Sub ( y Int32x8 ) Int32x8
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-07-16 17:02:47 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSUBD, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Int32x16 ) Sub ( y Int32x16 ) Int32x16
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSUBQ, CPU Feature: AVX
func ( x Int64x2 ) Sub ( y Int64x2 ) Int64x2
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSUBQ, CPU Feature: AVX2
func ( x Int64x4 ) Sub ( y Int64x4 ) Int64x4
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-07-16 17:02:47 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSUBQ, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Int64x8 ) Sub ( y Int64x8 ) Int64x8
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSUBB, CPU Feature: AVX
func ( x Uint8x16 ) Sub ( y Uint8x16 ) Uint8x16
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSUBB, CPU Feature: AVX2
func ( x Uint8x32 ) Sub ( y Uint8x32 ) Uint8x32
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-07-16 17:02:47 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSUBB, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Uint8x64 ) Sub ( y Uint8x64 ) Uint8x64
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSUBW, CPU Feature: AVX
func ( x Uint16x8 ) Sub ( y Uint16x8 ) Uint16x8
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSUBW, CPU Feature: AVX2
func ( x Uint16x16 ) Sub ( y Uint16x16 ) Uint16x16
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-07-16 17:02:47 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSUBW, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Uint16x32 ) Sub ( y Uint16x32 ) Uint16x32
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSUBD, CPU Feature: AVX
func ( x Uint32x4 ) Sub ( y Uint32x4 ) Uint32x4
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSUBD, CPU Feature: AVX2
func ( x Uint32x8 ) Sub ( y Uint32x8 ) Uint32x8
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-07-16 17:02:47 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSUBD, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Uint32x16 ) Sub ( y Uint32x16 ) Uint32x16
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSUBQ, CPU Feature: AVX
func ( x Uint64x2 ) Sub ( y Uint64x2 ) Uint64x2
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-07-16 17:02:47 +00:00
//
2025-08-18 21:13:00 +00:00
// Asm: VPSUBQ, CPU Feature: AVX2
func ( x Uint64x4 ) Sub ( y Uint64x4 ) Uint64x4
2025-07-08 18:18:55 +00:00
2025-08-18 21:13:00 +00:00
// Sub subtracts corresponding elements of two vectors.
2025-07-16 17:02:47 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPSUBQ, CPU Feature: AVX512
2025-08-18 21:13:00 +00:00
func ( x Uint64x8 ) Sub ( y Uint64x8 ) Uint64x8
2025-07-08 18:18:55 +00:00
2025-08-01 15:58:29 -04:00
/* SubPairs */
// SubPairs horizontally subtracts adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0-y1, y2-y3, ..., x0-x1, x2-x3, ...].
//
// Asm: VHSUBPS, CPU Feature: AVX
func ( x Float32x4 ) SubPairs ( y Float32x4 ) Float32x4
// SubPairs horizontally subtracts adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0-y1, y2-y3, ..., x0-x1, x2-x3, ...].
//
// Asm: VHSUBPS, CPU Feature: AVX
func ( x Float32x8 ) SubPairs ( y Float32x8 ) Float32x8
// SubPairs horizontally subtracts adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0-y1, y2-y3, ..., x0-x1, x2-x3, ...].
//
// Asm: VHSUBPD, CPU Feature: AVX
func ( x Float64x2 ) SubPairs ( y Float64x2 ) Float64x2
// SubPairs horizontally subtracts adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0-y1, y2-y3, ..., x0-x1, x2-x3, ...].
//
// Asm: VHSUBPD, CPU Feature: AVX
func ( x Float64x4 ) SubPairs ( y Float64x4 ) Float64x4
// SubPairs horizontally subtracts adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0-y1, y2-y3, ..., x0-x1, x2-x3, ...].
//
// Asm: VPHSUBW, CPU Feature: AVX
func ( x Int16x8 ) SubPairs ( y Int16x8 ) Int16x8
// SubPairs horizontally subtracts adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0-y1, y2-y3, ..., x0-x1, x2-x3, ...].
//
// Asm: VPHSUBW, CPU Feature: AVX2
func ( x Int16x16 ) SubPairs ( y Int16x16 ) Int16x16
// SubPairs horizontally subtracts adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0-y1, y2-y3, ..., x0-x1, x2-x3, ...].
//
// Asm: VPHSUBD, CPU Feature: AVX
func ( x Int32x4 ) SubPairs ( y Int32x4 ) Int32x4
// SubPairs horizontally subtracts adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0-y1, y2-y3, ..., x0-x1, x2-x3, ...].
//
// Asm: VPHSUBD, CPU Feature: AVX2
func ( x Int32x8 ) SubPairs ( y Int32x8 ) Int32x8
// SubPairs horizontally subtracts adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0-y1, y2-y3, ..., x0-x1, x2-x3, ...].
//
// Asm: VPHSUBW, CPU Feature: AVX
func ( x Uint16x8 ) SubPairs ( y Uint16x8 ) Uint16x8
// SubPairs horizontally subtracts adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0-y1, y2-y3, ..., x0-x1, x2-x3, ...].
//
// Asm: VPHSUBW, CPU Feature: AVX2
func ( x Uint16x16 ) SubPairs ( y Uint16x16 ) Uint16x16
// SubPairs horizontally subtracts adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0-y1, y2-y3, ..., x0-x1, x2-x3, ...].
//
// Asm: VPHSUBD, CPU Feature: AVX
func ( x Uint32x4 ) SubPairs ( y Uint32x4 ) Uint32x4
// SubPairs horizontally subtracts adjacent pairs of elements.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0-y1, y2-y3, ..., x0-x1, x2-x3, ...].
//
// Asm: VPHSUBD, CPU Feature: AVX2
func ( x Uint32x8 ) SubPairs ( y Uint32x8 ) Uint32x8
/* SubPairsSaturated */
// SubPairsSaturated horizontally subtracts adjacent pairs of elements with saturation.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0-y1, y2-y3, ..., x0-x1, x2-x3, ...].
//
// Asm: VPHSUBSW, CPU Feature: AVX
func ( x Int16x8 ) SubPairsSaturated ( y Int16x8 ) Int16x8
// SubPairsSaturated horizontally subtracts adjacent pairs of elements with saturation.
// For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [y0-y1, y2-y3, ..., x0-x1, x2-x3, ...].
//
// Asm: VPHSUBSW, CPU Feature: AVX2
func ( x Int16x16 ) SubPairsSaturated ( y Int16x16 ) Int16x16
/* SubSaturated */
// SubSaturated subtracts corresponding elements of two vectors with saturation.
//
// Asm: VPSUBSB, CPU Feature: AVX
func ( x Int8x16 ) SubSaturated ( y Int8x16 ) Int8x16
// SubSaturated subtracts corresponding elements of two vectors with saturation.
//
// Asm: VPSUBSB, CPU Feature: AVX2
func ( x Int8x32 ) SubSaturated ( y Int8x32 ) Int8x32
// SubSaturated subtracts corresponding elements of two vectors with saturation.
//
2025-08-11 16:02:00 -04:00
// Asm: VPSUBSB, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Int8x64 ) SubSaturated ( y Int8x64 ) Int8x64
// SubSaturated subtracts corresponding elements of two vectors with saturation.
//
// Asm: VPSUBSW, CPU Feature: AVX
func ( x Int16x8 ) SubSaturated ( y Int16x8 ) Int16x8
// SubSaturated subtracts corresponding elements of two vectors with saturation.
//
// Asm: VPSUBSW, CPU Feature: AVX2
func ( x Int16x16 ) SubSaturated ( y Int16x16 ) Int16x16
// SubSaturated subtracts corresponding elements of two vectors with saturation.
//
2025-08-11 16:02:00 -04:00
// Asm: VPSUBSW, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Int16x32 ) SubSaturated ( y Int16x32 ) Int16x32
// SubSaturated subtracts corresponding elements of two vectors with saturation.
//
2025-08-07 17:05:50 +00:00
// Asm: VPSUBUSB, CPU Feature: AVX
2025-08-01 15:58:29 -04:00
func ( x Uint8x16 ) SubSaturated ( y Uint8x16 ) Uint8x16
// SubSaturated subtracts corresponding elements of two vectors with saturation.
//
2025-08-07 17:05:50 +00:00
// Asm: VPSUBUSB, CPU Feature: AVX2
2025-08-01 15:58:29 -04:00
func ( x Uint8x32 ) SubSaturated ( y Uint8x32 ) Uint8x32
// SubSaturated subtracts corresponding elements of two vectors with saturation.
//
2025-08-11 16:02:00 -04:00
// Asm: VPSUBUSB, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Uint8x64 ) SubSaturated ( y Uint8x64 ) Uint8x64
// SubSaturated subtracts corresponding elements of two vectors with saturation.
//
2025-08-07 17:05:50 +00:00
// Asm: VPSUBUSW, CPU Feature: AVX
2025-08-01 15:58:29 -04:00
func ( x Uint16x8 ) SubSaturated ( y Uint16x8 ) Uint16x8
// SubSaturated subtracts corresponding elements of two vectors with saturation.
//
2025-08-07 17:05:50 +00:00
// Asm: VPSUBUSW, CPU Feature: AVX2
2025-08-01 15:58:29 -04:00
func ( x Uint16x16 ) SubSaturated ( y Uint16x16 ) Uint16x16
// SubSaturated subtracts corresponding elements of two vectors with saturation.
//
2025-08-11 16:02:00 -04:00
// Asm: VPSUBUSW, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Uint16x32 ) SubSaturated ( y Uint16x32 ) Uint16x32
2025-06-16 20:11:27 +00:00
/* Trunc */
// Trunc truncates elements towards zero.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VROUNDPS, CPU Feature: AVX
func ( x Float32x4 ) Trunc ( ) Float32x4
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Trunc truncates elements towards zero.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VROUNDPS, CPU Feature: AVX
func ( x Float32x8 ) Trunc ( ) Float32x8
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Trunc truncates elements towards zero.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VROUNDPD, CPU Feature: AVX
func ( x Float64x2 ) Trunc ( ) Float64x2
2025-06-12 16:21:35 +00:00
2025-06-16 20:11:27 +00:00
// Trunc truncates elements towards zero.
2025-06-12 16:42:02 +00:00
//
2025-06-16 20:11:27 +00:00
// Asm: VROUNDPD, CPU Feature: AVX
func ( x Float64x4 ) Trunc ( ) Float64x4
2025-08-01 15:58:29 -04:00
/* TruncScaled */
2025-06-12 16:21:35 +00:00
2025-08-01 15:58:29 -04:00
// TruncScaled truncates elements with specified precision.
2025-06-12 16:42:02 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRNDSCALEPS, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float32x4 ) TruncScaled ( prec uint8 ) Float32x4
2025-06-12 16:21:35 +00:00
2025-08-01 15:58:29 -04:00
// TruncScaled truncates elements with specified precision.
2025-06-12 16:42:02 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRNDSCALEPS, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float32x8 ) TruncScaled ( prec uint8 ) Float32x8
2025-06-12 16:21:35 +00:00
2025-08-01 15:58:29 -04:00
// TruncScaled truncates elements with specified precision.
2025-06-12 16:42:02 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRNDSCALEPS, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float32x16 ) TruncScaled ( prec uint8 ) Float32x16
2025-06-12 16:21:35 +00:00
2025-08-01 15:58:29 -04:00
// TruncScaled truncates elements with specified precision.
2025-06-12 16:42:02 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRNDSCALEPD, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float64x2 ) TruncScaled ( prec uint8 ) Float64x2
2025-06-12 16:21:35 +00:00
2025-08-01 15:58:29 -04:00
// TruncScaled truncates elements with specified precision.
2025-06-12 16:42:02 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRNDSCALEPD, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float64x4 ) TruncScaled ( prec uint8 ) Float64x4
2025-06-12 16:21:35 +00:00
2025-08-01 15:58:29 -04:00
// TruncScaled truncates elements with specified precision.
2025-06-12 16:42:02 +00:00
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-07-11 02:15:12 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VRNDSCALEPD, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float64x8 ) TruncScaled ( prec uint8 ) Float64x8
2025-06-16 20:11:27 +00:00
2025-08-01 15:58:29 -04:00
/* TruncScaledResidue */
// TruncScaledResidue computes the difference after truncating with specified precision.
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-01 15:58:29 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPS, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float32x4 ) TruncScaledResidue ( prec uint8 ) Float32x4
// TruncScaledResidue computes the difference after truncating with specified precision.
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-01 15:58:29 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPS, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float32x8 ) TruncScaledResidue ( prec uint8 ) Float32x8
// TruncScaledResidue computes the difference after truncating with specified precision.
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-01 15:58:29 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPS, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float32x16 ) TruncScaledResidue ( prec uint8 ) Float32x16
// TruncScaledResidue computes the difference after truncating with specified precision.
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-01 15:58:29 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPD, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float64x2 ) TruncScaledResidue ( prec uint8 ) Float64x2
// TruncScaledResidue computes the difference after truncating with specified precision.
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-01 15:58:29 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPD, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float64x4 ) TruncScaledResidue ( prec uint8 ) Float64x4
// TruncScaledResidue computes the difference after truncating with specified precision.
//
2025-08-11 17:20:48 +00:00
// prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
2025-08-01 15:58:29 -04:00
//
2025-08-11 16:02:00 -04:00
// Asm: VREDUCEPD, CPU Feature: AVX512
2025-08-01 15:58:29 -04:00
func ( x Float64x8 ) TruncScaledResidue ( prec uint8 ) Float64x8
2025-06-16 20:11:27 +00:00
/* Xor */
// Xor performs a bitwise XOR operation between two vectors.
//
// Asm: VPXOR, CPU Feature: AVX
func ( x Int8x16 ) Xor ( y Int8x16 ) Int8x16
// Xor performs a bitwise XOR operation between two vectors.
//
// Asm: VPXOR, CPU Feature: AVX2
func ( x Int8x32 ) Xor ( y Int8x32 ) Int8x32
2025-08-01 19:13:13 +00:00
// Xor performs a bitwise XOR operation between two vectors.
//
2025-08-11 16:02:00 -04:00
// Asm: VPXORD, CPU Feature: AVX512
2025-08-01 19:13:13 +00:00
func ( x Int8x64 ) Xor ( y Int8x64 ) Int8x64
2025-06-16 20:11:27 +00:00
// Xor performs a bitwise XOR operation between two vectors.
//
// Asm: VPXOR, CPU Feature: AVX
func ( x Int16x8 ) Xor ( y Int16x8 ) Int16x8
// Xor performs a bitwise XOR operation between two vectors.
//
// Asm: VPXOR, CPU Feature: AVX2
func ( x Int16x16 ) Xor ( y Int16x16 ) Int16x16
2025-08-01 19:13:13 +00:00
// Xor performs a bitwise XOR operation between two vectors.
//
2025-08-11 16:02:00 -04:00
// Asm: VPXORD, CPU Feature: AVX512
2025-08-01 19:13:13 +00:00
func ( x Int16x32 ) Xor ( y Int16x32 ) Int16x32
2025-06-16 20:11:27 +00:00
// Xor performs a bitwise XOR operation between two vectors.
//
// Asm: VPXOR, CPU Feature: AVX
func ( x Int32x4 ) Xor ( y Int32x4 ) Int32x4
// Xor performs a bitwise XOR operation between two vectors.
//
// Asm: VPXOR, CPU Feature: AVX2
func ( x Int32x8 ) Xor ( y Int32x8 ) Int32x8
2025-07-16 17:02:47 +00:00
// Xor performs a bitwise XOR operation between two vectors.
2025-06-16 20:11:27 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPXORD, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Int32x16 ) Xor ( y Int32x16 ) Int32x16
// Xor performs a bitwise XOR operation between two vectors.
//
// Asm: VPXOR, CPU Feature: AVX
func ( x Int64x2 ) Xor ( y Int64x2 ) Int64x2
// Xor performs a bitwise XOR operation between two vectors.
//
// Asm: VPXOR, CPU Feature: AVX2
func ( x Int64x4 ) Xor ( y Int64x4 ) Int64x4
2025-07-16 17:02:47 +00:00
// Xor performs a bitwise XOR operation between two vectors.
2025-06-16 20:11:27 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPXORQ, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Int64x8 ) Xor ( y Int64x8 ) Int64x8
// Xor performs a bitwise XOR operation between two vectors.
//
// Asm: VPXOR, CPU Feature: AVX
func ( x Uint8x16 ) Xor ( y Uint8x16 ) Uint8x16
// Xor performs a bitwise XOR operation between two vectors.
//
// Asm: VPXOR, CPU Feature: AVX2
func ( x Uint8x32 ) Xor ( y Uint8x32 ) Uint8x32
2025-08-01 19:13:13 +00:00
// Xor performs a bitwise XOR operation between two vectors.
//
2025-08-11 16:02:00 -04:00
// Asm: VPXORD, CPU Feature: AVX512
2025-08-01 19:13:13 +00:00
func ( x Uint8x64 ) Xor ( y Uint8x64 ) Uint8x64
2025-06-16 20:11:27 +00:00
// Xor performs a bitwise XOR operation between two vectors.
//
// Asm: VPXOR, CPU Feature: AVX
func ( x Uint16x8 ) Xor ( y Uint16x8 ) Uint16x8
// Xor performs a bitwise XOR operation between two vectors.
//
// Asm: VPXOR, CPU Feature: AVX2
func ( x Uint16x16 ) Xor ( y Uint16x16 ) Uint16x16
// Xor performs a bitwise XOR operation between two vectors.
2025-08-01 19:13:13 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPXORD, CPU Feature: AVX512
2025-08-01 19:13:13 +00:00
func ( x Uint16x32 ) Xor ( y Uint16x32 ) Uint16x32
// Xor performs a bitwise XOR operation between two vectors.
2025-06-16 20:11:27 +00:00
//
// Asm: VPXOR, CPU Feature: AVX
func ( x Uint32x4 ) Xor ( y Uint32x4 ) Uint32x4
// Xor performs a bitwise XOR operation between two vectors.
//
// Asm: VPXOR, CPU Feature: AVX2
func ( x Uint32x8 ) Xor ( y Uint32x8 ) Uint32x8
2025-07-16 17:02:47 +00:00
// Xor performs a bitwise XOR operation between two vectors.
2025-06-16 20:11:27 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPXORD, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Uint32x16 ) Xor ( y Uint32x16 ) Uint32x16
// Xor performs a bitwise XOR operation between two vectors.
//
// Asm: VPXOR, CPU Feature: AVX
func ( x Uint64x2 ) Xor ( y Uint64x2 ) Uint64x2
// Xor performs a bitwise XOR operation between two vectors.
//
// Asm: VPXOR, CPU Feature: AVX2
func ( x Uint64x4 ) Xor ( y Uint64x4 ) Uint64x4
2025-07-16 17:02:47 +00:00
// Xor performs a bitwise XOR operation between two vectors.
2025-06-16 20:11:27 +00:00
//
2025-08-11 16:02:00 -04:00
// Asm: VPXORQ, CPU Feature: AVX512
2025-06-16 20:11:27 +00:00
func ( x Uint64x8 ) Xor ( y Uint64x8 ) Uint64x8
2025-06-12 16:21:35 +00:00
[dev.simd] simd, cmd/compile: generated files to add 'blend' and 'blendMasked'
Generated by arch/internal/simdgen CL 693175
These methods are not public because of simdgen-induced name/signature
issues, and because their addition was motivated by the need for
emulation tools.
The specific name signature problems are:
1) one set of instructions has the "Masked" suffix (because of how
that is incorporated into names) and the other set does not (though I
suppose the operation could be renamed).
2) because the AVX2 instruction is bytes-only, to get the signature
right, requires "OverwriteBase" but OverwriteBase also requires
OverwriteClass and "simdgen does not support [OverwriteClass] in
inputs".
3) the default operation order is false, true, but we want this in a
"x.Merged(y, mask)" that pairs with "x.Masked(mask)" where the true
case is x and the false case is y/zero, but the default ordering for
VPBLENDVB and VPBLENDMB is false->x and true->y.
4) VPBLENDVB only comes in byte width, which causes problems
for floats.
All this may get fixed in the future, for now it is just an
implementation detail.
Change-Id: I61b655c7011e2c33f8644f704f886133c89d2f15
Reviewed-on: https://go-review.googlesource.com/c/go/+/693155
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Junyang Shao <shaojunyang@google.com>
2025-08-04 15:19:54 -04:00
/* blend */
// blend blends two vectors based on mask values, choosing either
// the first or the second based on whether the third is false or true
//
// Asm: VPBLENDVB, CPU Feature: AVX
func ( x Int8x16 ) blend ( y Int8x16 , mask Int8x16 ) Int8x16
// blend blends two vectors based on mask values, choosing either
// the first or the second based on whether the third is false or true
//
// Asm: VPBLENDVB, CPU Feature: AVX2
func ( x Int8x32 ) blend ( y Int8x32 , mask Int8x32 ) Int8x32
/* blendMasked */
// blendMasked blends two vectors based on mask values, choosing either
// the first or the second based on whether the third is false or true
//
// This operation is applied selectively under a write mask.
//
2025-08-11 16:02:00 -04:00
// Asm: VPBLENDMB, CPU Feature: AVX512
[dev.simd] simd, cmd/compile: generated files to add 'blend' and 'blendMasked'
Generated by arch/internal/simdgen CL 693175
These methods are not public because of simdgen-induced name/signature
issues, and because their addition was motivated by the need for
emulation tools.
The specific name signature problems are:
1) one set of instructions has the "Masked" suffix (because of how
that is incorporated into names) and the other set does not (though I
suppose the operation could be renamed).
2) because the AVX2 instruction is bytes-only, to get the signature
right, requires "OverwriteBase" but OverwriteBase also requires
OverwriteClass and "simdgen does not support [OverwriteClass] in
inputs".
3) the default operation order is false, true, but we want this in a
"x.Merged(y, mask)" that pairs with "x.Masked(mask)" where the true
case is x and the false case is y/zero, but the default ordering for
VPBLENDVB and VPBLENDMB is false->x and true->y.
4) VPBLENDVB only comes in byte width, which causes problems
for floats.
All this may get fixed in the future, for now it is just an
implementation detail.
Change-Id: I61b655c7011e2c33f8644f704f886133c89d2f15
Reviewed-on: https://go-review.googlesource.com/c/go/+/693155
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Junyang Shao <shaojunyang@google.com>
2025-08-04 15:19:54 -04:00
func ( x Int8x64 ) blendMasked ( y Int8x64 , mask Mask8x64 ) Int8x64
// blendMasked blends two vectors based on mask values, choosing either
// the first or the second based on whether the third is false or true
//
// This operation is applied selectively under a write mask.
//
2025-08-11 16:02:00 -04:00
// Asm: VPBLENDMW, CPU Feature: AVX512
[dev.simd] simd, cmd/compile: generated files to add 'blend' and 'blendMasked'
Generated by arch/internal/simdgen CL 693175
These methods are not public because of simdgen-induced name/signature
issues, and because their addition was motivated by the need for
emulation tools.
The specific name signature problems are:
1) one set of instructions has the "Masked" suffix (because of how
that is incorporated into names) and the other set does not (though I
suppose the operation could be renamed).
2) because the AVX2 instruction is bytes-only, to get the signature
right, requires "OverwriteBase" but OverwriteBase also requires
OverwriteClass and "simdgen does not support [OverwriteClass] in
inputs".
3) the default operation order is false, true, but we want this in a
"x.Merged(y, mask)" that pairs with "x.Masked(mask)" where the true
case is x and the false case is y/zero, but the default ordering for
VPBLENDVB and VPBLENDMB is false->x and true->y.
4) VPBLENDVB only comes in byte width, which causes problems
for floats.
All this may get fixed in the future, for now it is just an
implementation detail.
Change-Id: I61b655c7011e2c33f8644f704f886133c89d2f15
Reviewed-on: https://go-review.googlesource.com/c/go/+/693155
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Junyang Shao <shaojunyang@google.com>
2025-08-04 15:19:54 -04:00
func ( x Int16x32 ) blendMasked ( y Int16x32 , mask Mask16x32 ) Int16x32
// blendMasked blends two vectors based on mask values, choosing either
// the first or the second based on whether the third is false or true
//
// This operation is applied selectively under a write mask.
//
2025-08-11 16:02:00 -04:00
// Asm: VPBLENDMD, CPU Feature: AVX512
[dev.simd] simd, cmd/compile: generated files to add 'blend' and 'blendMasked'
Generated by arch/internal/simdgen CL 693175
These methods are not public because of simdgen-induced name/signature
issues, and because their addition was motivated by the need for
emulation tools.
The specific name signature problems are:
1) one set of instructions has the "Masked" suffix (because of how
that is incorporated into names) and the other set does not (though I
suppose the operation could be renamed).
2) because the AVX2 instruction is bytes-only, to get the signature
right, requires "OverwriteBase" but OverwriteBase also requires
OverwriteClass and "simdgen does not support [OverwriteClass] in
inputs".
3) the default operation order is false, true, but we want this in a
"x.Merged(y, mask)" that pairs with "x.Masked(mask)" where the true
case is x and the false case is y/zero, but the default ordering for
VPBLENDVB and VPBLENDMB is false->x and true->y.
4) VPBLENDVB only comes in byte width, which causes problems
for floats.
All this may get fixed in the future, for now it is just an
implementation detail.
Change-Id: I61b655c7011e2c33f8644f704f886133c89d2f15
Reviewed-on: https://go-review.googlesource.com/c/go/+/693155
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Junyang Shao <shaojunyang@google.com>
2025-08-04 15:19:54 -04:00
func ( x Int32x16 ) blendMasked ( y Int32x16 , mask Mask32x16 ) Int32x16
// blendMasked blends two vectors based on mask values, choosing either
// the first or the second based on whether the third is false or true
//
// This operation is applied selectively under a write mask.
//
2025-08-11 16:02:00 -04:00
// Asm: VPBLENDMQ, CPU Feature: AVX512
[dev.simd] simd, cmd/compile: generated files to add 'blend' and 'blendMasked'
Generated by arch/internal/simdgen CL 693175
These methods are not public because of simdgen-induced name/signature
issues, and because their addition was motivated by the need for
emulation tools.
The specific name signature problems are:
1) one set of instructions has the "Masked" suffix (because of how
that is incorporated into names) and the other set does not (though I
suppose the operation could be renamed).
2) because the AVX2 instruction is bytes-only, to get the signature
right, requires "OverwriteBase" but OverwriteBase also requires
OverwriteClass and "simdgen does not support [OverwriteClass] in
inputs".
3) the default operation order is false, true, but we want this in a
"x.Merged(y, mask)" that pairs with "x.Masked(mask)" where the true
case is x and the false case is y/zero, but the default ordering for
VPBLENDVB and VPBLENDMB is false->x and true->y.
4) VPBLENDVB only comes in byte width, which causes problems
for floats.
All this may get fixed in the future, for now it is just an
implementation detail.
Change-Id: I61b655c7011e2c33f8644f704f886133c89d2f15
Reviewed-on: https://go-review.googlesource.com/c/go/+/693155
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Junyang Shao <shaojunyang@google.com>
2025-08-04 15:19:54 -04:00
func ( x Int64x8 ) blendMasked ( y Int64x8 , mask Mask64x8 ) Int64x8
2025-06-12 03:54:34 +00:00
// Float64x2 converts from Float32x4 to Float64x2
func ( from Float32x4 ) AsFloat64x2 ( ) ( to Float64x2 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int8x16 converts from Float32x4 to Int8x16
func ( from Float32x4 ) AsInt8x16 ( ) ( to Int8x16 )
2025-06-12 03:54:34 +00:00
// Int16x8 converts from Float32x4 to Int16x8
func ( from Float32x4 ) AsInt16x8 ( ) ( to Int16x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Int32x4 converts from Float32x4 to Int32x4
func ( from Float32x4 ) AsInt32x4 ( ) ( to Int32x4 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Int64x2 converts from Float32x4 to Int64x2
func ( from Float32x4 ) AsInt64x2 ( ) ( to Int64x2 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint8x16 converts from Float32x4 to Uint8x16
func ( from Float32x4 ) AsUint8x16 ( ) ( to Uint8x16 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint16x8 converts from Float32x4 to Uint16x8
func ( from Float32x4 ) AsUint16x8 ( ) ( to Uint16x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint32x4 converts from Float32x4 to Uint32x4
func ( from Float32x4 ) AsUint32x4 ( ) ( to Uint32x4 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint64x2 converts from Float32x4 to Uint64x2
func ( from Float32x4 ) AsUint64x2 ( ) ( to Uint64x2 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float64x4 converts from Float32x8 to Float64x4
func ( from Float32x8 ) AsFloat64x4 ( ) ( to Float64x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int8x32 converts from Float32x8 to Int8x32
func ( from Float32x8 ) AsInt8x32 ( ) ( to Int8x32 )
2025-06-12 03:54:34 +00:00
// Int16x16 converts from Float32x8 to Int16x16
func ( from Float32x8 ) AsInt16x16 ( ) ( to Int16x16 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Int32x8 converts from Float32x8 to Int32x8
func ( from Float32x8 ) AsInt32x8 ( ) ( to Int32x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Int64x4 converts from Float32x8 to Int64x4
func ( from Float32x8 ) AsInt64x4 ( ) ( to Int64x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint8x32 converts from Float32x8 to Uint8x32
func ( from Float32x8 ) AsUint8x32 ( ) ( to Uint8x32 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint16x16 converts from Float32x8 to Uint16x16
func ( from Float32x8 ) AsUint16x16 ( ) ( to Uint16x16 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint32x8 converts from Float32x8 to Uint32x8
func ( from Float32x8 ) AsUint32x8 ( ) ( to Uint32x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint64x4 converts from Float32x8 to Uint64x4
func ( from Float32x8 ) AsUint64x4 ( ) ( to Uint64x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Float64x8 converts from Float32x16 to Float64x8
func ( from Float32x16 ) AsFloat64x8 ( ) ( to Float64x8 )
// Int8x64 converts from Float32x16 to Int8x64
func ( from Float32x16 ) AsInt8x64 ( ) ( to Int8x64 )
// Int16x32 converts from Float32x16 to Int16x32
func ( from Float32x16 ) AsInt16x32 ( ) ( to Int16x32 )
// Int32x16 converts from Float32x16 to Int32x16
func ( from Float32x16 ) AsInt32x16 ( ) ( to Int32x16 )
// Int64x8 converts from Float32x16 to Int64x8
func ( from Float32x16 ) AsInt64x8 ( ) ( to Int64x8 )
// Uint8x64 converts from Float32x16 to Uint8x64
func ( from Float32x16 ) AsUint8x64 ( ) ( to Uint8x64 )
// Uint16x32 converts from Float32x16 to Uint16x32
func ( from Float32x16 ) AsUint16x32 ( ) ( to Uint16x32 )
// Uint32x16 converts from Float32x16 to Uint32x16
func ( from Float32x16 ) AsUint32x16 ( ) ( to Uint32x16 )
// Uint64x8 converts from Float32x16 to Uint64x8
func ( from Float32x16 ) AsUint64x8 ( ) ( to Uint64x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float32x4 converts from Float64x2 to Float32x4
func ( from Float64x2 ) AsFloat32x4 ( ) ( to Float32x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int8x16 converts from Float64x2 to Int8x16
func ( from Float64x2 ) AsInt8x16 ( ) ( to Int8x16 )
2025-06-12 03:54:34 +00:00
// Int16x8 converts from Float64x2 to Int16x8
func ( from Float64x2 ) AsInt16x8 ( ) ( to Int16x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Int32x4 converts from Float64x2 to Int32x4
func ( from Float64x2 ) AsInt32x4 ( ) ( to Int32x4 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Int64x2 converts from Float64x2 to Int64x2
func ( from Float64x2 ) AsInt64x2 ( ) ( to Int64x2 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint8x16 converts from Float64x2 to Uint8x16
func ( from Float64x2 ) AsUint8x16 ( ) ( to Uint8x16 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint16x8 converts from Float64x2 to Uint16x8
func ( from Float64x2 ) AsUint16x8 ( ) ( to Uint16x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint32x4 converts from Float64x2 to Uint32x4
func ( from Float64x2 ) AsUint32x4 ( ) ( to Uint32x4 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint64x2 converts from Float64x2 to Uint64x2
func ( from Float64x2 ) AsUint64x2 ( ) ( to Uint64x2 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float32x8 converts from Float64x4 to Float32x8
func ( from Float64x4 ) AsFloat32x8 ( ) ( to Float32x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int8x32 converts from Float64x4 to Int8x32
func ( from Float64x4 ) AsInt8x32 ( ) ( to Int8x32 )
2025-05-22 19:59:12 +00:00
// Int16x16 converts from Float64x4 to Int16x16
func ( from Float64x4 ) AsInt16x16 ( ) ( to Int16x16 )
// Int32x8 converts from Float64x4 to Int32x8
func ( from Float64x4 ) AsInt32x8 ( ) ( to Int32x8 )
// Int64x4 converts from Float64x4 to Int64x4
func ( from Float64x4 ) AsInt64x4 ( ) ( to Int64x4 )
2025-06-17 11:57:19 -04:00
// Uint8x32 converts from Float64x4 to Uint8x32
func ( from Float64x4 ) AsUint8x32 ( ) ( to Uint8x32 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint16x16 converts from Float64x4 to Uint16x16
func ( from Float64x4 ) AsUint16x16 ( ) ( to Uint16x16 )
2025-05-22 19:59:12 +00:00
// Uint32x8 converts from Float64x4 to Uint32x8
func ( from Float64x4 ) AsUint32x8 ( ) ( to Uint32x8 )
2025-06-12 03:54:34 +00:00
// Uint64x4 converts from Float64x4 to Uint64x4
func ( from Float64x4 ) AsUint64x4 ( ) ( to Uint64x4 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float32x16 converts from Float64x8 to Float32x16
func ( from Float64x8 ) AsFloat32x16 ( ) ( to Float32x16 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int8x64 converts from Float64x8 to Int8x64
func ( from Float64x8 ) AsInt8x64 ( ) ( to Int8x64 )
2025-06-12 03:54:34 +00:00
// Int16x32 converts from Float64x8 to Int16x32
func ( from Float64x8 ) AsInt16x32 ( ) ( to Int16x32 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Int32x16 converts from Float64x8 to Int32x16
func ( from Float64x8 ) AsInt32x16 ( ) ( to Int32x16 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Int64x8 converts from Float64x8 to Int64x8
func ( from Float64x8 ) AsInt64x8 ( ) ( to Int64x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint8x64 converts from Float64x8 to Uint8x64
func ( from Float64x8 ) AsUint8x64 ( ) ( to Uint8x64 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint16x32 converts from Float64x8 to Uint16x32
func ( from Float64x8 ) AsUint16x32 ( ) ( to Uint16x32 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint32x16 converts from Float64x8 to Uint32x16
func ( from Float64x8 ) AsUint32x16 ( ) ( to Uint32x16 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint64x8 converts from Float64x8 to Uint64x8
func ( from Float64x8 ) AsUint64x8 ( ) ( to Uint64x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Float32x4 converts from Int8x16 to Float32x4
func ( from Int8x16 ) AsFloat32x4 ( ) ( to Float32x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Float64x2 converts from Int8x16 to Float64x2
func ( from Int8x16 ) AsFloat64x2 ( ) ( to Float64x2 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int16x8 converts from Int8x16 to Int16x8
func ( from Int8x16 ) AsInt16x8 ( ) ( to Int16x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int32x4 converts from Int8x16 to Int32x4
func ( from Int8x16 ) AsInt32x4 ( ) ( to Int32x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int64x2 converts from Int8x16 to Int64x2
func ( from Int8x16 ) AsInt64x2 ( ) ( to Int64x2 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint8x16 converts from Int8x16 to Uint8x16
func ( from Int8x16 ) AsUint8x16 ( ) ( to Uint8x16 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint16x8 converts from Int8x16 to Uint16x8
func ( from Int8x16 ) AsUint16x8 ( ) ( to Uint16x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint32x4 converts from Int8x16 to Uint32x4
func ( from Int8x16 ) AsUint32x4 ( ) ( to Uint32x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint64x2 converts from Int8x16 to Uint64x2
func ( from Int8x16 ) AsUint64x2 ( ) ( to Uint64x2 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Float32x8 converts from Int8x32 to Float32x8
func ( from Int8x32 ) AsFloat32x8 ( ) ( to Float32x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Float64x4 converts from Int8x32 to Float64x4
func ( from Int8x32 ) AsFloat64x4 ( ) ( to Float64x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int16x16 converts from Int8x32 to Int16x16
func ( from Int8x32 ) AsInt16x16 ( ) ( to Int16x16 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int32x8 converts from Int8x32 to Int32x8
func ( from Int8x32 ) AsInt32x8 ( ) ( to Int32x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int64x4 converts from Int8x32 to Int64x4
func ( from Int8x32 ) AsInt64x4 ( ) ( to Int64x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint8x32 converts from Int8x32 to Uint8x32
func ( from Int8x32 ) AsUint8x32 ( ) ( to Uint8x32 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint16x16 converts from Int8x32 to Uint16x16
func ( from Int8x32 ) AsUint16x16 ( ) ( to Uint16x16 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint32x8 converts from Int8x32 to Uint32x8
func ( from Int8x32 ) AsUint32x8 ( ) ( to Uint32x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint64x4 converts from Int8x32 to Uint64x4
func ( from Int8x32 ) AsUint64x4 ( ) ( to Uint64x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Float32x16 converts from Int8x64 to Float32x16
func ( from Int8x64 ) AsFloat32x16 ( ) ( to Float32x16 )
// Float64x8 converts from Int8x64 to Float64x8
func ( from Int8x64 ) AsFloat64x8 ( ) ( to Float64x8 )
// Int16x32 converts from Int8x64 to Int16x32
func ( from Int8x64 ) AsInt16x32 ( ) ( to Int16x32 )
// Int32x16 converts from Int8x64 to Int32x16
func ( from Int8x64 ) AsInt32x16 ( ) ( to Int32x16 )
// Int64x8 converts from Int8x64 to Int64x8
func ( from Int8x64 ) AsInt64x8 ( ) ( to Int64x8 )
// Uint8x64 converts from Int8x64 to Uint8x64
func ( from Int8x64 ) AsUint8x64 ( ) ( to Uint8x64 )
// Uint16x32 converts from Int8x64 to Uint16x32
func ( from Int8x64 ) AsUint16x32 ( ) ( to Uint16x32 )
// Uint32x16 converts from Int8x64 to Uint32x16
func ( from Int8x64 ) AsUint32x16 ( ) ( to Uint32x16 )
// Uint64x8 converts from Int8x64 to Uint64x8
func ( from Int8x64 ) AsUint64x8 ( ) ( to Uint64x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float32x4 converts from Int16x8 to Float32x4
func ( from Int16x8 ) AsFloat32x4 ( ) ( to Float32x4 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float64x2 converts from Int16x8 to Float64x2
func ( from Int16x8 ) AsFloat64x2 ( ) ( to Float64x2 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int8x16 converts from Int16x8 to Int8x16
func ( from Int16x8 ) AsInt8x16 ( ) ( to Int8x16 )
2025-06-12 03:54:34 +00:00
// Int32x4 converts from Int16x8 to Int32x4
func ( from Int16x8 ) AsInt32x4 ( ) ( to Int32x4 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Int64x2 converts from Int16x8 to Int64x2
func ( from Int16x8 ) AsInt64x2 ( ) ( to Int64x2 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint8x16 converts from Int16x8 to Uint8x16
func ( from Int16x8 ) AsUint8x16 ( ) ( to Uint8x16 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint16x8 converts from Int16x8 to Uint16x8
func ( from Int16x8 ) AsUint16x8 ( ) ( to Uint16x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint32x4 converts from Int16x8 to Uint32x4
func ( from Int16x8 ) AsUint32x4 ( ) ( to Uint32x4 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint64x2 converts from Int16x8 to Uint64x2
func ( from Int16x8 ) AsUint64x2 ( ) ( to Uint64x2 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Float32x8 converts from Int16x16 to Float32x8
func ( from Int16x16 ) AsFloat32x8 ( ) ( to Float32x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Float64x4 converts from Int16x16 to Float64x4
func ( from Int16x16 ) AsFloat64x4 ( ) ( to Float64x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int8x32 converts from Int16x16 to Int8x32
func ( from Int16x16 ) AsInt8x32 ( ) ( to Int8x32 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int32x8 converts from Int16x16 to Int32x8
func ( from Int16x16 ) AsInt32x8 ( ) ( to Int32x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int64x4 converts from Int16x16 to Int64x4
func ( from Int16x16 ) AsInt64x4 ( ) ( to Int64x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint8x32 converts from Int16x16 to Uint8x32
func ( from Int16x16 ) AsUint8x32 ( ) ( to Uint8x32 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint16x16 converts from Int16x16 to Uint16x16
func ( from Int16x16 ) AsUint16x16 ( ) ( to Uint16x16 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint32x8 converts from Int16x16 to Uint32x8
func ( from Int16x16 ) AsUint32x8 ( ) ( to Uint32x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint64x4 converts from Int16x16 to Uint64x4
func ( from Int16x16 ) AsUint64x4 ( ) ( to Uint64x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Float32x16 converts from Int16x32 to Float32x16
func ( from Int16x32 ) AsFloat32x16 ( ) ( to Float32x16 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Float64x8 converts from Int16x32 to Float64x8
func ( from Int16x32 ) AsFloat64x8 ( ) ( to Float64x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int8x64 converts from Int16x32 to Int8x64
func ( from Int16x32 ) AsInt8x64 ( ) ( to Int8x64 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int32x16 converts from Int16x32 to Int32x16
func ( from Int16x32 ) AsInt32x16 ( ) ( to Int32x16 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int64x8 converts from Int16x32 to Int64x8
func ( from Int16x32 ) AsInt64x8 ( ) ( to Int64x8 )
// Uint8x64 converts from Int16x32 to Uint8x64
func ( from Int16x32 ) AsUint8x64 ( ) ( to Uint8x64 )
// Uint16x32 converts from Int16x32 to Uint16x32
func ( from Int16x32 ) AsUint16x32 ( ) ( to Uint16x32 )
// Uint32x16 converts from Int16x32 to Uint32x16
func ( from Int16x32 ) AsUint32x16 ( ) ( to Uint32x16 )
// Uint64x8 converts from Int16x32 to Uint64x8
func ( from Int16x32 ) AsUint64x8 ( ) ( to Uint64x8 )
// Float32x4 converts from Int32x4 to Float32x4
func ( from Int32x4 ) AsFloat32x4 ( ) ( to Float32x4 )
// Float64x2 converts from Int32x4 to Float64x2
func ( from Int32x4 ) AsFloat64x2 ( ) ( to Float64x2 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Int8x16 converts from Int32x4 to Int8x16
func ( from Int32x4 ) AsInt8x16 ( ) ( to Int8x16 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int16x8 converts from Int32x4 to Int16x8
func ( from Int32x4 ) AsInt16x8 ( ) ( to Int16x8 )
// Int64x2 converts from Int32x4 to Int64x2
func ( from Int32x4 ) AsInt64x2 ( ) ( to Int64x2 )
// Uint8x16 converts from Int32x4 to Uint8x16
func ( from Int32x4 ) AsUint8x16 ( ) ( to Uint8x16 )
2025-06-12 03:54:34 +00:00
// Uint16x8 converts from Int32x4 to Uint16x8
func ( from Int32x4 ) AsUint16x8 ( ) ( to Uint16x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint32x4 converts from Int32x4 to Uint32x4
func ( from Int32x4 ) AsUint32x4 ( ) ( to Uint32x4 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint64x2 converts from Int32x4 to Uint64x2
func ( from Int32x4 ) AsUint64x2 ( ) ( to Uint64x2 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float32x8 converts from Int32x8 to Float32x8
func ( from Int32x8 ) AsFloat32x8 ( ) ( to Float32x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float64x4 converts from Int32x8 to Float64x4
func ( from Int32x8 ) AsFloat64x4 ( ) ( to Float64x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int8x32 converts from Int32x8 to Int8x32
func ( from Int32x8 ) AsInt8x32 ( ) ( to Int8x32 )
2025-06-12 03:54:34 +00:00
// Int16x16 converts from Int32x8 to Int16x16
func ( from Int32x8 ) AsInt16x16 ( ) ( to Int16x16 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Int64x4 converts from Int32x8 to Int64x4
func ( from Int32x8 ) AsInt64x4 ( ) ( to Int64x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint8x32 converts from Int32x8 to Uint8x32
func ( from Int32x8 ) AsUint8x32 ( ) ( to Uint8x32 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint16x16 converts from Int32x8 to Uint16x16
func ( from Int32x8 ) AsUint16x16 ( ) ( to Uint16x16 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint32x8 converts from Int32x8 to Uint32x8
func ( from Int32x8 ) AsUint32x8 ( ) ( to Uint32x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint64x4 converts from Int32x8 to Uint64x4
func ( from Int32x8 ) AsUint64x4 ( ) ( to Uint64x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Float32x16 converts from Int32x16 to Float32x16
func ( from Int32x16 ) AsFloat32x16 ( ) ( to Float32x16 )
// Float64x8 converts from Int32x16 to Float64x8
func ( from Int32x16 ) AsFloat64x8 ( ) ( to Float64x8 )
// Int8x64 converts from Int32x16 to Int8x64
func ( from Int32x16 ) AsInt8x64 ( ) ( to Int8x64 )
// Int16x32 converts from Int32x16 to Int16x32
func ( from Int32x16 ) AsInt16x32 ( ) ( to Int16x32 )
// Int64x8 converts from Int32x16 to Int64x8
func ( from Int32x16 ) AsInt64x8 ( ) ( to Int64x8 )
// Uint8x64 converts from Int32x16 to Uint8x64
func ( from Int32x16 ) AsUint8x64 ( ) ( to Uint8x64 )
// Uint16x32 converts from Int32x16 to Uint16x32
func ( from Int32x16 ) AsUint16x32 ( ) ( to Uint16x32 )
// Uint32x16 converts from Int32x16 to Uint32x16
func ( from Int32x16 ) AsUint32x16 ( ) ( to Uint32x16 )
// Uint64x8 converts from Int32x16 to Uint64x8
func ( from Int32x16 ) AsUint64x8 ( ) ( to Uint64x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float32x4 converts from Int64x2 to Float32x4
func ( from Int64x2 ) AsFloat32x4 ( ) ( to Float32x4 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float64x2 converts from Int64x2 to Float64x2
func ( from Int64x2 ) AsFloat64x2 ( ) ( to Float64x2 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int8x16 converts from Int64x2 to Int8x16
func ( from Int64x2 ) AsInt8x16 ( ) ( to Int8x16 )
2025-06-12 03:54:34 +00:00
// Int16x8 converts from Int64x2 to Int16x8
func ( from Int64x2 ) AsInt16x8 ( ) ( to Int16x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Int32x4 converts from Int64x2 to Int32x4
func ( from Int64x2 ) AsInt32x4 ( ) ( to Int32x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint8x16 converts from Int64x2 to Uint8x16
func ( from Int64x2 ) AsUint8x16 ( ) ( to Uint8x16 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint16x8 converts from Int64x2 to Uint16x8
func ( from Int64x2 ) AsUint16x8 ( ) ( to Uint16x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint32x4 converts from Int64x2 to Uint32x4
func ( from Int64x2 ) AsUint32x4 ( ) ( to Uint32x4 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint64x2 converts from Int64x2 to Uint64x2
func ( from Int64x2 ) AsUint64x2 ( ) ( to Uint64x2 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float32x8 converts from Int64x4 to Float32x8
func ( from Int64x4 ) AsFloat32x8 ( ) ( to Float32x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float64x4 converts from Int64x4 to Float64x4
func ( from Int64x4 ) AsFloat64x4 ( ) ( to Float64x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int8x32 converts from Int64x4 to Int8x32
func ( from Int64x4 ) AsInt8x32 ( ) ( to Int8x32 )
2025-06-12 03:54:34 +00:00
// Int16x16 converts from Int64x4 to Int16x16
func ( from Int64x4 ) AsInt16x16 ( ) ( to Int16x16 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Int32x8 converts from Int64x4 to Int32x8
func ( from Int64x4 ) AsInt32x8 ( ) ( to Int32x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint8x32 converts from Int64x4 to Uint8x32
func ( from Int64x4 ) AsUint8x32 ( ) ( to Uint8x32 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint16x16 converts from Int64x4 to Uint16x16
func ( from Int64x4 ) AsUint16x16 ( ) ( to Uint16x16 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint32x8 converts from Int64x4 to Uint32x8
func ( from Int64x4 ) AsUint32x8 ( ) ( to Uint32x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint64x4 converts from Int64x4 to Uint64x4
func ( from Int64x4 ) AsUint64x4 ( ) ( to Uint64x4 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float32x16 converts from Int64x8 to Float32x16
func ( from Int64x8 ) AsFloat32x16 ( ) ( to Float32x16 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float64x8 converts from Int64x8 to Float64x8
func ( from Int64x8 ) AsFloat64x8 ( ) ( to Float64x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int8x64 converts from Int64x8 to Int8x64
func ( from Int64x8 ) AsInt8x64 ( ) ( to Int8x64 )
2025-06-12 03:54:34 +00:00
// Int16x32 converts from Int64x8 to Int16x32
func ( from Int64x8 ) AsInt16x32 ( ) ( to Int16x32 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Int32x16 converts from Int64x8 to Int32x16
func ( from Int64x8 ) AsInt32x16 ( ) ( to Int32x16 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint8x64 converts from Int64x8 to Uint8x64
func ( from Int64x8 ) AsUint8x64 ( ) ( to Uint8x64 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint16x32 converts from Int64x8 to Uint16x32
func ( from Int64x8 ) AsUint16x32 ( ) ( to Uint16x32 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint32x16 converts from Int64x8 to Uint32x16
func ( from Int64x8 ) AsUint32x16 ( ) ( to Uint32x16 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint64x8 converts from Int64x8 to Uint64x8
func ( from Int64x8 ) AsUint64x8 ( ) ( to Uint64x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Float32x4 converts from Uint8x16 to Float32x4
func ( from Uint8x16 ) AsFloat32x4 ( ) ( to Float32x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Float64x2 converts from Uint8x16 to Float64x2
func ( from Uint8x16 ) AsFloat64x2 ( ) ( to Float64x2 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int8x16 converts from Uint8x16 to Int8x16
func ( from Uint8x16 ) AsInt8x16 ( ) ( to Int8x16 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int16x8 converts from Uint8x16 to Int16x8
func ( from Uint8x16 ) AsInt16x8 ( ) ( to Int16x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int32x4 converts from Uint8x16 to Int32x4
func ( from Uint8x16 ) AsInt32x4 ( ) ( to Int32x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int64x2 converts from Uint8x16 to Int64x2
func ( from Uint8x16 ) AsInt64x2 ( ) ( to Int64x2 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint16x8 converts from Uint8x16 to Uint16x8
func ( from Uint8x16 ) AsUint16x8 ( ) ( to Uint16x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint32x4 converts from Uint8x16 to Uint32x4
func ( from Uint8x16 ) AsUint32x4 ( ) ( to Uint32x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint64x2 converts from Uint8x16 to Uint64x2
func ( from Uint8x16 ) AsUint64x2 ( ) ( to Uint64x2 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Float32x8 converts from Uint8x32 to Float32x8
func ( from Uint8x32 ) AsFloat32x8 ( ) ( to Float32x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Float64x4 converts from Uint8x32 to Float64x4
func ( from Uint8x32 ) AsFloat64x4 ( ) ( to Float64x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int8x32 converts from Uint8x32 to Int8x32
func ( from Uint8x32 ) AsInt8x32 ( ) ( to Int8x32 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int16x16 converts from Uint8x32 to Int16x16
func ( from Uint8x32 ) AsInt16x16 ( ) ( to Int16x16 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int32x8 converts from Uint8x32 to Int32x8
func ( from Uint8x32 ) AsInt32x8 ( ) ( to Int32x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int64x4 converts from Uint8x32 to Int64x4
func ( from Uint8x32 ) AsInt64x4 ( ) ( to Int64x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint16x16 converts from Uint8x32 to Uint16x16
func ( from Uint8x32 ) AsUint16x16 ( ) ( to Uint16x16 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint32x8 converts from Uint8x32 to Uint32x8
func ( from Uint8x32 ) AsUint32x8 ( ) ( to Uint32x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint64x4 converts from Uint8x32 to Uint64x4
func ( from Uint8x32 ) AsUint64x4 ( ) ( to Uint64x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Float32x16 converts from Uint8x64 to Float32x16
func ( from Uint8x64 ) AsFloat32x16 ( ) ( to Float32x16 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Float64x8 converts from Uint8x64 to Float64x8
func ( from Uint8x64 ) AsFloat64x8 ( ) ( to Float64x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int8x64 converts from Uint8x64 to Int8x64
func ( from Uint8x64 ) AsInt8x64 ( ) ( to Int8x64 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int16x32 converts from Uint8x64 to Int16x32
func ( from Uint8x64 ) AsInt16x32 ( ) ( to Int16x32 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int32x16 converts from Uint8x64 to Int32x16
func ( from Uint8x64 ) AsInt32x16 ( ) ( to Int32x16 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int64x8 converts from Uint8x64 to Int64x8
func ( from Uint8x64 ) AsInt64x8 ( ) ( to Int64x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint16x32 converts from Uint8x64 to Uint16x32
func ( from Uint8x64 ) AsUint16x32 ( ) ( to Uint16x32 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint32x16 converts from Uint8x64 to Uint32x16
func ( from Uint8x64 ) AsUint32x16 ( ) ( to Uint32x16 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint64x8 converts from Uint8x64 to Uint64x8
func ( from Uint8x64 ) AsUint64x8 ( ) ( to Uint64x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Float32x4 converts from Uint16x8 to Float32x4
func ( from Uint16x8 ) AsFloat32x4 ( ) ( to Float32x4 )
// Float64x2 converts from Uint16x8 to Float64x2
func ( from Uint16x8 ) AsFloat64x2 ( ) ( to Float64x2 )
// Int8x16 converts from Uint16x8 to Int8x16
func ( from Uint16x8 ) AsInt8x16 ( ) ( to Int8x16 )
// Int16x8 converts from Uint16x8 to Int16x8
func ( from Uint16x8 ) AsInt16x8 ( ) ( to Int16x8 )
// Int32x4 converts from Uint16x8 to Int32x4
func ( from Uint16x8 ) AsInt32x4 ( ) ( to Int32x4 )
// Int64x2 converts from Uint16x8 to Int64x2
func ( from Uint16x8 ) AsInt64x2 ( ) ( to Int64x2 )
// Uint8x16 converts from Uint16x8 to Uint8x16
func ( from Uint16x8 ) AsUint8x16 ( ) ( to Uint8x16 )
// Uint32x4 converts from Uint16x8 to Uint32x4
func ( from Uint16x8 ) AsUint32x4 ( ) ( to Uint32x4 )
// Uint64x2 converts from Uint16x8 to Uint64x2
func ( from Uint16x8 ) AsUint64x2 ( ) ( to Uint64x2 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float32x8 converts from Uint16x16 to Float32x8
func ( from Uint16x16 ) AsFloat32x8 ( ) ( to Float32x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float64x4 converts from Uint16x16 to Float64x4
func ( from Uint16x16 ) AsFloat64x4 ( ) ( to Float64x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int8x32 converts from Uint16x16 to Int8x32
func ( from Uint16x16 ) AsInt8x32 ( ) ( to Int8x32 )
2025-06-12 03:54:34 +00:00
// Int16x16 converts from Uint16x16 to Int16x16
func ( from Uint16x16 ) AsInt16x16 ( ) ( to Int16x16 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Int32x8 converts from Uint16x16 to Int32x8
func ( from Uint16x16 ) AsInt32x8 ( ) ( to Int32x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Int64x4 converts from Uint16x16 to Int64x4
func ( from Uint16x16 ) AsInt64x4 ( ) ( to Int64x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint8x32 converts from Uint16x16 to Uint8x32
func ( from Uint16x16 ) AsUint8x32 ( ) ( to Uint8x32 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint32x8 converts from Uint16x16 to Uint32x8
func ( from Uint16x16 ) AsUint32x8 ( ) ( to Uint32x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint64x4 converts from Uint16x16 to Uint64x4
func ( from Uint16x16 ) AsUint64x4 ( ) ( to Uint64x4 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float32x16 converts from Uint16x32 to Float32x16
func ( from Uint16x32 ) AsFloat32x16 ( ) ( to Float32x16 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Float64x8 converts from Uint16x32 to Float64x8
func ( from Uint16x32 ) AsFloat64x8 ( ) ( to Float64x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int8x64 converts from Uint16x32 to Int8x64
func ( from Uint16x32 ) AsInt8x64 ( ) ( to Int8x64 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int16x32 converts from Uint16x32 to Int16x32
func ( from Uint16x32 ) AsInt16x32 ( ) ( to Int16x32 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int32x16 converts from Uint16x32 to Int32x16
func ( from Uint16x32 ) AsInt32x16 ( ) ( to Int32x16 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int64x8 converts from Uint16x32 to Int64x8
func ( from Uint16x32 ) AsInt64x8 ( ) ( to Int64x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint8x64 converts from Uint16x32 to Uint8x64
func ( from Uint16x32 ) AsUint8x64 ( ) ( to Uint8x64 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint32x16 converts from Uint16x32 to Uint32x16
func ( from Uint16x32 ) AsUint32x16 ( ) ( to Uint32x16 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint64x8 converts from Uint16x32 to Uint64x8
func ( from Uint16x32 ) AsUint64x8 ( ) ( to Uint64x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float32x4 converts from Uint32x4 to Float32x4
func ( from Uint32x4 ) AsFloat32x4 ( ) ( to Float32x4 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float64x2 converts from Uint32x4 to Float64x2
func ( from Uint32x4 ) AsFloat64x2 ( ) ( to Float64x2 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int8x16 converts from Uint32x4 to Int8x16
func ( from Uint32x4 ) AsInt8x16 ( ) ( to Int8x16 )
2025-06-12 03:54:34 +00:00
// Int16x8 converts from Uint32x4 to Int16x8
func ( from Uint32x4 ) AsInt16x8 ( ) ( to Int16x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Int32x4 converts from Uint32x4 to Int32x4
func ( from Uint32x4 ) AsInt32x4 ( ) ( to Int32x4 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Int64x2 converts from Uint32x4 to Int64x2
func ( from Uint32x4 ) AsInt64x2 ( ) ( to Int64x2 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint8x16 converts from Uint32x4 to Uint8x16
func ( from Uint32x4 ) AsUint8x16 ( ) ( to Uint8x16 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint16x8 converts from Uint32x4 to Uint16x8
func ( from Uint32x4 ) AsUint16x8 ( ) ( to Uint16x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint64x2 converts from Uint32x4 to Uint64x2
func ( from Uint32x4 ) AsUint64x2 ( ) ( to Uint64x2 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float32x8 converts from Uint32x8 to Float32x8
func ( from Uint32x8 ) AsFloat32x8 ( ) ( to Float32x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float64x4 converts from Uint32x8 to Float64x4
func ( from Uint32x8 ) AsFloat64x4 ( ) ( to Float64x4 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int8x32 converts from Uint32x8 to Int8x32
func ( from Uint32x8 ) AsInt8x32 ( ) ( to Int8x32 )
2025-06-12 03:54:34 +00:00
// Int16x16 converts from Uint32x8 to Int16x16
func ( from Uint32x8 ) AsInt16x16 ( ) ( to Int16x16 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Int32x8 converts from Uint32x8 to Int32x8
func ( from Uint32x8 ) AsInt32x8 ( ) ( to Int32x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Int64x4 converts from Uint32x8 to Int64x4
func ( from Uint32x8 ) AsInt64x4 ( ) ( to Int64x4 )
2025-06-17 11:57:19 -04:00
// Uint8x32 converts from Uint32x8 to Uint8x32
func ( from Uint32x8 ) AsUint8x32 ( ) ( to Uint8x32 )
2025-06-12 03:54:34 +00:00
// Uint16x16 converts from Uint32x8 to Uint16x16
func ( from Uint32x8 ) AsUint16x16 ( ) ( to Uint16x16 )
// Uint64x4 converts from Uint32x8 to Uint64x4
func ( from Uint32x8 ) AsUint64x4 ( ) ( to Uint64x4 )
2025-06-17 11:57:19 -04:00
// Float32x16 converts from Uint32x16 to Float32x16
func ( from Uint32x16 ) AsFloat32x16 ( ) ( to Float32x16 )
// Float64x8 converts from Uint32x16 to Float64x8
func ( from Uint32x16 ) AsFloat64x8 ( ) ( to Float64x8 )
// Int8x64 converts from Uint32x16 to Int8x64
func ( from Uint32x16 ) AsInt8x64 ( ) ( to Int8x64 )
// Int16x32 converts from Uint32x16 to Int16x32
func ( from Uint32x16 ) AsInt16x32 ( ) ( to Int16x32 )
// Int32x16 converts from Uint32x16 to Int32x16
func ( from Uint32x16 ) AsInt32x16 ( ) ( to Int32x16 )
// Int64x8 converts from Uint32x16 to Int64x8
func ( from Uint32x16 ) AsInt64x8 ( ) ( to Int64x8 )
// Uint8x64 converts from Uint32x16 to Uint8x64
func ( from Uint32x16 ) AsUint8x64 ( ) ( to Uint8x64 )
// Uint16x32 converts from Uint32x16 to Uint16x32
func ( from Uint32x16 ) AsUint16x32 ( ) ( to Uint16x32 )
// Uint64x8 converts from Uint32x16 to Uint64x8
func ( from Uint32x16 ) AsUint64x8 ( ) ( to Uint64x8 )
2025-05-22 19:59:12 +00:00
// Float32x4 converts from Uint64x2 to Float32x4
func ( from Uint64x2 ) AsFloat32x4 ( ) ( to Float32x4 )
// Float64x2 converts from Uint64x2 to Float64x2
func ( from Uint64x2 ) AsFloat64x2 ( ) ( to Float64x2 )
2025-06-17 11:57:19 -04:00
// Int8x16 converts from Uint64x2 to Int8x16
func ( from Uint64x2 ) AsInt8x16 ( ) ( to Int8x16 )
2025-06-12 03:54:34 +00:00
// Int16x8 converts from Uint64x2 to Int16x8
func ( from Uint64x2 ) AsInt16x8 ( ) ( to Int16x8 )
// Int32x4 converts from Uint64x2 to Int32x4
func ( from Uint64x2 ) AsInt32x4 ( ) ( to Int32x4 )
2025-05-22 19:59:12 +00:00
// Int64x2 converts from Uint64x2 to Int64x2
func ( from Uint64x2 ) AsInt64x2 ( ) ( to Int64x2 )
2025-06-17 11:57:19 -04:00
// Uint8x16 converts from Uint64x2 to Uint8x16
func ( from Uint64x2 ) AsUint8x16 ( ) ( to Uint8x16 )
2025-06-12 03:54:34 +00:00
// Uint16x8 converts from Uint64x2 to Uint16x8
func ( from Uint64x2 ) AsUint16x8 ( ) ( to Uint16x8 )
2025-05-22 19:59:12 +00:00
// Uint32x4 converts from Uint64x2 to Uint32x4
func ( from Uint64x2 ) AsUint32x4 ( ) ( to Uint32x4 )
2025-06-12 03:54:34 +00:00
// Float32x8 converts from Uint64x4 to Float32x8
func ( from Uint64x4 ) AsFloat32x8 ( ) ( to Float32x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float64x4 converts from Uint64x4 to Float64x4
func ( from Uint64x4 ) AsFloat64x4 ( ) ( to Float64x4 )
2025-06-17 11:57:19 -04:00
// Int8x32 converts from Uint64x4 to Int8x32
func ( from Uint64x4 ) AsInt8x32 ( ) ( to Int8x32 )
2025-06-12 03:54:34 +00:00
// Int16x16 converts from Uint64x4 to Int16x16
func ( from Uint64x4 ) AsInt16x16 ( ) ( to Int16x16 )
// Int32x8 converts from Uint64x4 to Int32x8
func ( from Uint64x4 ) AsInt32x8 ( ) ( to Int32x8 )
// Int64x4 converts from Uint64x4 to Int64x4
func ( from Uint64x4 ) AsInt64x4 ( ) ( to Int64x4 )
2025-06-17 11:57:19 -04:00
// Uint8x32 converts from Uint64x4 to Uint8x32
func ( from Uint64x4 ) AsUint8x32 ( ) ( to Uint8x32 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint16x16 converts from Uint64x4 to Uint16x16
func ( from Uint64x4 ) AsUint16x16 ( ) ( to Uint16x16 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint32x8 converts from Uint64x4 to Uint32x8
func ( from Uint64x4 ) AsUint32x8 ( ) ( to Uint32x8 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float32x16 converts from Uint64x8 to Float32x16
func ( from Uint64x8 ) AsFloat32x16 ( ) ( to Float32x16 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Float64x8 converts from Uint64x8 to Float64x8
func ( from Uint64x8 ) AsFloat64x8 ( ) ( to Float64x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Int8x64 converts from Uint64x8 to Int8x64
func ( from Uint64x8 ) AsInt8x64 ( ) ( to Int8x64 )
2025-06-12 03:54:34 +00:00
// Int16x32 converts from Uint64x8 to Int16x32
func ( from Uint64x8 ) AsInt16x32 ( ) ( to Int16x32 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Int32x16 converts from Uint64x8 to Int32x16
func ( from Uint64x8 ) AsInt32x16 ( ) ( to Int32x16 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Int64x8 converts from Uint64x8 to Int64x8
func ( from Uint64x8 ) AsInt64x8 ( ) ( to Int64x8 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
// Uint8x64 converts from Uint64x8 to Uint8x64
func ( from Uint64x8 ) AsUint8x64 ( ) ( to Uint8x64 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint16x32 converts from Uint64x8 to Uint16x32
func ( from Uint64x8 ) AsUint16x32 ( ) ( to Uint16x32 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
// Uint32x16 converts from Uint64x8 to Uint32x16
func ( from Uint64x8 ) AsUint32x16 ( ) ( to Uint32x16 )
2025-05-22 19:59:12 +00:00
2025-08-18 19:35:53 +00:00
// AsInt8x16 converts from Mask8x16 to Int8x16
2025-06-17 11:57:19 -04:00
func ( from Mask8x16 ) AsInt8x16 ( ) ( to Int8x16 )
2025-05-22 19:59:12 +00:00
2025-08-18 19:35:53 +00:00
// asMask converts from Int8x16 to Mask8x16
func ( from Int8x16 ) asMask ( ) ( to Mask8x16 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
func ( x Mask8x16 ) And ( y Mask8x16 ) Mask8x16
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
func ( x Mask8x16 ) Or ( y Mask8x16 ) Mask8x16
2025-05-22 19:59:12 +00:00
2025-08-18 19:35:53 +00:00
// AsInt8x32 converts from Mask8x32 to Int8x32
2025-06-17 11:57:19 -04:00
func ( from Mask8x32 ) AsInt8x32 ( ) ( to Int8x32 )
2025-05-22 19:59:12 +00:00
2025-08-18 19:35:53 +00:00
// asMask converts from Int8x32 to Mask8x32
func ( from Int8x32 ) asMask ( ) ( to Mask8x32 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
func ( x Mask8x32 ) And ( y Mask8x32 ) Mask8x32
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
func ( x Mask8x32 ) Or ( y Mask8x32 ) Mask8x32
2025-05-22 19:59:12 +00:00
2025-08-18 19:35:53 +00:00
// AsInt8x64 converts from Mask8x64 to Int8x64
2025-06-17 11:57:19 -04:00
func ( from Mask8x64 ) AsInt8x64 ( ) ( to Int8x64 )
2025-05-22 19:59:12 +00:00
2025-08-18 19:35:53 +00:00
// asMask converts from Int8x64 to Mask8x64
func ( from Int8x64 ) asMask ( ) ( to Mask8x64 )
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
func ( x Mask8x64 ) And ( y Mask8x64 ) Mask8x64
2025-05-22 19:59:12 +00:00
2025-06-17 11:57:19 -04:00
func ( x Mask8x64 ) Or ( y Mask8x64 ) Mask8x64
2025-05-22 19:59:12 +00:00
2025-08-18 19:35:53 +00:00
// AsInt16x8 converts from Mask16x8 to Int16x8
2025-06-17 11:57:19 -04:00
func ( from Mask16x8 ) AsInt16x8 ( ) ( to Int16x8 )
2025-05-22 19:59:12 +00:00
2025-08-18 19:35:53 +00:00
// asMask converts from Int16x8 to Mask16x8
func ( from Int16x8 ) asMask ( ) ( to Mask16x8 )
2025-06-12 03:54:34 +00:00
2025-06-17 11:57:19 -04:00
func ( x Mask16x8 ) And ( y Mask16x8 ) Mask16x8
2025-06-12 03:54:34 +00:00
2025-06-17 11:57:19 -04:00
func ( x Mask16x8 ) Or ( y Mask16x8 ) Mask16x8
2025-05-22 19:59:12 +00:00
2025-08-18 19:35:53 +00:00
// AsInt16x16 converts from Mask16x16 to Int16x16
2025-05-22 19:59:12 +00:00
func ( from Mask16x16 ) AsInt16x16 ( ) ( to Int16x16 )
2025-08-18 19:35:53 +00:00
// asMask converts from Int16x16 to Mask16x16
func ( from Int16x16 ) asMask ( ) ( to Mask16x16 )
2025-05-22 19:59:12 +00:00
func ( x Mask16x16 ) And ( y Mask16x16 ) Mask16x16
func ( x Mask16x16 ) Or ( y Mask16x16 ) Mask16x16
2025-08-18 19:35:53 +00:00
// AsInt16x32 converts from Mask16x32 to Int16x32
2025-06-12 03:54:34 +00:00
func ( from Mask16x32 ) AsInt16x32 ( ) ( to Int16x32 )
2025-05-22 19:59:12 +00:00
2025-08-18 19:35:53 +00:00
// asMask converts from Int16x32 to Mask16x32
func ( from Int16x32 ) asMask ( ) ( to Mask16x32 )
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
func ( x Mask16x32 ) And ( y Mask16x32 ) Mask16x32
2025-05-22 19:59:12 +00:00
2025-06-12 03:54:34 +00:00
func ( x Mask16x32 ) Or ( y Mask16x32 ) Mask16x32
2025-05-22 19:59:12 +00:00
2025-08-18 19:35:53 +00:00
// AsInt32x4 converts from Mask32x4 to Int32x4
2025-05-22 19:59:12 +00:00
func ( from Mask32x4 ) AsInt32x4 ( ) ( to Int32x4 )
2025-08-18 19:35:53 +00:00
// asMask converts from Int32x4 to Mask32x4
func ( from Int32x4 ) asMask ( ) ( to Mask32x4 )
2025-05-22 19:59:12 +00:00
func ( x Mask32x4 ) And ( y Mask32x4 ) Mask32x4
func ( x Mask32x4 ) Or ( y Mask32x4 ) Mask32x4
2025-08-18 19:35:53 +00:00
// AsInt32x8 converts from Mask32x8 to Int32x8
2025-06-12 03:54:34 +00:00
func ( from Mask32x8 ) AsInt32x8 ( ) ( to Int32x8 )
2025-08-18 19:35:53 +00:00
// asMask converts from Int32x8 to Mask32x8
func ( from Int32x8 ) asMask ( ) ( to Mask32x8 )
2025-06-12 03:54:34 +00:00
func ( x Mask32x8 ) And ( y Mask32x8 ) Mask32x8
func ( x Mask32x8 ) Or ( y Mask32x8 ) Mask32x8
2025-08-18 19:35:53 +00:00
// AsInt32x16 converts from Mask32x16 to Int32x16
2025-06-17 11:57:19 -04:00
func ( from Mask32x16 ) AsInt32x16 ( ) ( to Int32x16 )
2025-08-18 19:35:53 +00:00
// asMask converts from Int32x16 to Mask32x16
func ( from Int32x16 ) asMask ( ) ( to Mask32x16 )
2025-06-17 11:57:19 -04:00
func ( x Mask32x16 ) And ( y Mask32x16 ) Mask32x16
func ( x Mask32x16 ) Or ( y Mask32x16 ) Mask32x16
2025-08-18 19:35:53 +00:00
// AsInt64x2 converts from Mask64x2 to Int64x2
2025-06-12 03:54:34 +00:00
func ( from Mask64x2 ) AsInt64x2 ( ) ( to Int64x2 )
2025-08-18 19:35:53 +00:00
// asMask converts from Int64x2 to Mask64x2
func ( from Int64x2 ) asMask ( ) ( to Mask64x2 )
2025-06-12 03:54:34 +00:00
func ( x Mask64x2 ) And ( y Mask64x2 ) Mask64x2
func ( x Mask64x2 ) Or ( y Mask64x2 ) Mask64x2
2025-08-18 19:35:53 +00:00
// AsInt64x4 converts from Mask64x4 to Int64x4
2025-06-12 03:54:34 +00:00
func ( from Mask64x4 ) AsInt64x4 ( ) ( to Int64x4 )
2025-08-18 19:35:53 +00:00
// asMask converts from Int64x4 to Mask64x4
func ( from Int64x4 ) asMask ( ) ( to Mask64x4 )
2025-06-12 03:54:34 +00:00
func ( x Mask64x4 ) And ( y Mask64x4 ) Mask64x4
func ( x Mask64x4 ) Or ( y Mask64x4 ) Mask64x4
2025-08-18 19:35:53 +00:00
// AsInt64x8 converts from Mask64x8 to Int64x8
2025-06-12 03:54:34 +00:00
func ( from Mask64x8 ) AsInt64x8 ( ) ( to Int64x8 )
2025-08-18 19:35:53 +00:00
// asMask converts from Int64x8 to Mask64x8
func ( from Int64x8 ) asMask ( ) ( to Mask64x8 )
2025-06-12 03:54:34 +00:00
func ( x Mask64x8 ) And ( y Mask64x8 ) Mask64x8
func ( x Mask64x8 ) Or ( y Mask64x8 ) Mask64x8