Source file src/simd/simd.go

     1  // Code generated by 'go run -C $GOROOT/src/simd/archsimd/_gen/midway'; DO NOT EDIT.
     2  
     3  //go:build goexperiment.simd && (amd64 || wasm || arm64)
     4  
     5  // Computed intersection of methods for supported SIMD architectures and vector widths
     6  
     7  package simd
     8  
     9  // internal SIMD marker.
    10  type _simd struct {
    11  	_ [0]func(*_simd) *_simd
    12  }
    13  
    14  // Int8s represents a vector of 8-bit signed integers.
    15  type Int8s struct {
    16  	_       _simd
    17  	atLeast [2]uint64 // the actual vector size may be larger.
    18  }
    19  
    20  // LoadInt8 loads a slice of int8 into an Int8s vector.
    21  func LoadInt8s([]int8) Int8s
    22  
    23  // LoadInt8Part loads a partial slice of int8 into an Int8s vector, returning the vector and the number of elements loaded.
    24  func LoadInt8sPart([]int8) (Int8s, int)
    25  
    26  // BroadcastInt8 fills the elements of a slice with its argument value.
    27  func BroadcastInt8s(int8) Int8s
    28  
    29  // Abs returns the element-wise absolute value of x.
    30  func (x Int8s) Abs() Int8s
    31  
    32  // Add returns the element-wise sum of x and y.
    33  func (x Int8s) Add(y Int8s) Int8s
    34  
    35  // AddSaturated returns the element-wise saturated sum of x and y.
    36  func (x Int8s) AddSaturated(y Int8s) Int8s
    37  
    38  // And returns the bitwise AND of x and y.
    39  func (x Int8s) And(y Int8s) Int8s
    40  
    41  // AndNot returns the bitwise AND NOT of x and y.
    42  func (x Int8s) AndNot(y Int8s) Int8s
    43  
    44  // ConvertToUint8 converts the vector elements to uint8.
    45  func (x Int8s) ConvertToUint8() Uint8s
    46  
    47  // Equal returns a mask indicating where x and y are equal.
    48  func (x Int8s) Equal(y Int8s) Mask8s
    49  
    50  // Greater returns a mask indicating where x is greater than y.
    51  func (x Int8s) Greater(y Int8s) Mask8s
    52  
    53  // GreaterEqual returns a mask indicating where x is greater than or equal to y.
    54  func (x Int8s) GreaterEqual(y Int8s) Mask8s
    55  
    56  // IfElse returns a new vector with elements from x where mask is true, and y where mask is false.
    57  func (x Int8s) IfElse(mask Mask8s, y Int8s) Int8s
    58  
    59  // Len returns the number of elements in the vector.
    60  func (x Int8s) Len() int
    61  
    62  // Less returns a mask indicating where x is less than y.
    63  func (x Int8s) Less(y Int8s) Mask8s
    64  
    65  // LessEqual returns a mask indicating where x is less than or equal to y.
    66  func (x Int8s) LessEqual(y Int8s) Mask8s
    67  
    68  // Masked returns a new vector with elements from x where mask is true, and zero elsewhere.
    69  func (x Int8s) Masked(mask Mask8s) Int8s
    70  
    71  // Max returns the element-wise maximum of x and y.
    72  func (x Int8s) Max(y Int8s) Int8s
    73  
    74  // Min returns the element-wise minimum of x and y.
    75  func (x Int8s) Min(y Int8s) Int8s
    76  
    77  // Mul returns the element-wise product of x and y.
    78  func (x Int8s) Mul(y Int8s) Int8s
    79  
    80  // Neg returns the element-wise negation of x.
    81  func (x Int8s) Neg() Int8s
    82  
    83  // Not returns the bitwise NOT of x.
    84  func (x Int8s) Not() Int8s
    85  
    86  // NotEqual returns a mask indicating where x and y are not equal.
    87  func (x Int8s) NotEqual(y Int8s) Mask8s
    88  
    89  // Or returns the bitwise OR of x and y.
    90  func (x Int8s) Or(y Int8s) Int8s
    91  
    92  // StoreSlice stores the vector elements into the slice s.
    93  func (x Int8s) Store(s []int8)
    94  
    95  // StoreSlicePart stores a partial vector into the slice s.
    96  func (x Int8s) StorePart(s []int8) int
    97  
    98  // String returns a string representation of the vector.
    99  func (x Int8s) String() string
   100  
   101  // Sub returns the element-wise difference of x and y.
   102  func (x Int8s) Sub(y Int8s) Int8s
   103  
   104  // SubSaturated returns the element-wise saturated difference of x and y.
   105  func (x Int8s) SubSaturated(y Int8s) Int8s
   106  
   107  // ToBits reinterprets the vector bits as an unsigned integer vector.
   108  func (x Int8s) ToBits() Uint8s
   109  
   110  // ToMask returns a mask representation of the vector.
   111  func (x Int8s) ToMask() (to Mask8s)
   112  
   113  // Xor returns the bitwise XOR of x and y.
   114  func (x Int8s) Xor(y Int8s) Int8s
   115  
   116  // Int16s represents a vector of 16-bit signed integers.
   117  type Int16s struct {
   118  	_       _simd
   119  	atLeast [2]uint64 // the actual vector size may be larger.
   120  }
   121  
   122  // LoadInt16 loads a slice of int16 into an Int16s vector.
   123  func LoadInt16s([]int16) Int16s
   124  
   125  // LoadInt16Part loads a partial slice of int16 into an Int16s vector, returning the vector and the number of elements loaded.
   126  func LoadInt16sPart([]int16) (Int16s, int)
   127  
   128  // BroadcastInt16 fills the elements of a slice with its argument value.
   129  func BroadcastInt16s(int16) Int16s
   130  
   131  // Abs returns the element-wise absolute value of x.
   132  func (x Int16s) Abs() Int16s
   133  
   134  // Add returns the element-wise sum of x and y.
   135  func (x Int16s) Add(y Int16s) Int16s
   136  
   137  // AddSaturated returns the element-wise saturated sum of x and y.
   138  func (x Int16s) AddSaturated(y Int16s) Int16s
   139  
   140  // And returns the bitwise AND of x and y.
   141  func (x Int16s) And(y Int16s) Int16s
   142  
   143  // AndNot returns the bitwise AND NOT of x and y.
   144  func (x Int16s) AndNot(y Int16s) Int16s
   145  
   146  // ConvertToUint16 converts the vector elements to uint16.
   147  func (x Int16s) ConvertToUint16() Uint16s
   148  
   149  // Equal returns a mask indicating where x and y are equal.
   150  func (x Int16s) Equal(y Int16s) Mask16s
   151  
   152  // Greater returns a mask indicating where x is greater than y.
   153  func (x Int16s) Greater(y Int16s) Mask16s
   154  
   155  // GreaterEqual returns a mask indicating where x is greater than or equal to y.
   156  func (x Int16s) GreaterEqual(y Int16s) Mask16s
   157  
   158  // IfElse returns a new vector with elements from x where mask is true, and y where mask is false.
   159  func (x Int16s) IfElse(mask Mask16s, y Int16s) Int16s
   160  
   161  // Len returns the number of elements in the vector.
   162  func (x Int16s) Len() int
   163  
   164  // Less returns a mask indicating where x is less than y.
   165  func (x Int16s) Less(y Int16s) Mask16s
   166  
   167  // LessEqual returns a mask indicating where x is less than or equal to y.
   168  func (x Int16s) LessEqual(y Int16s) Mask16s
   169  
   170  // Masked returns a new vector with elements from x where mask is true, and zero elsewhere.
   171  func (x Int16s) Masked(mask Mask16s) Int16s
   172  
   173  // Max returns the element-wise maximum of x and y.
   174  func (x Int16s) Max(y Int16s) Int16s
   175  
   176  // Min returns the element-wise minimum of x and y.
   177  func (x Int16s) Min(y Int16s) Int16s
   178  
   179  // Mul returns the element-wise product of x and y.
   180  func (x Int16s) Mul(y Int16s) Int16s
   181  
   182  // Neg returns the element-wise negation of x.
   183  func (x Int16s) Neg() Int16s
   184  
   185  // Not returns the bitwise NOT of x.
   186  func (x Int16s) Not() Int16s
   187  
   188  // NotEqual returns a mask indicating where x and y are not equal.
   189  func (x Int16s) NotEqual(y Int16s) Mask16s
   190  
   191  // Or returns the bitwise OR of x and y.
   192  func (x Int16s) Or(y Int16s) Int16s
   193  
   194  // RotatesAllLeft rotates all elements left by y bits.
   195  func (x Int16s) RotateAllLeft(dist uint64) Int16s
   196  
   197  // RotatesAllRight rotates all elements right by y bits.
   198  func (x Int16s) RotateAllRight(dist uint64) Int16s
   199  
   200  // ShiftAllLeft shifts all elements left by y bits.
   201  func (x Int16s) ShiftAllLeft(shift uint64) Int16s
   202  
   203  // ShiftAllRight shifts all elements right by y bits.
   204  func (x Int16s) ShiftAllRight(shift uint64) Int16s
   205  
   206  // StoreSlice stores the vector elements into the slice s.
   207  func (x Int16s) Store(s []int16)
   208  
   209  // StoreSlicePart stores a partial vector into the slice s.
   210  func (x Int16s) StorePart(s []int16) int
   211  
   212  // String returns a string representation of the vector.
   213  func (x Int16s) String() string
   214  
   215  // Sub returns the element-wise difference of x and y.
   216  func (x Int16s) Sub(y Int16s) Int16s
   217  
   218  // SubSaturated returns the element-wise saturated difference of x and y.
   219  func (x Int16s) SubSaturated(y Int16s) Int16s
   220  
   221  // ToBits reinterprets the vector bits as an unsigned integer vector.
   222  func (x Int16s) ToBits() Uint16s
   223  
   224  // ToMask returns a mask representation of the vector.
   225  func (x Int16s) ToMask() (to Mask16s)
   226  
   227  // Xor returns the bitwise XOR of x and y.
   228  func (x Int16s) Xor(y Int16s) Int16s
   229  
   230  // Int32s represents a vector of 32-bit signed integers.
   231  type Int32s struct {
   232  	_       _simd
   233  	atLeast [2]uint64 // the actual vector size may be larger.
   234  }
   235  
   236  // LoadInt32 loads a slice of int32 into an Int32s vector.
   237  func LoadInt32s([]int32) Int32s
   238  
   239  // LoadInt32Part loads a partial slice of int32 into an Int32s vector, returning the vector and the number of elements loaded.
   240  func LoadInt32sPart([]int32) (Int32s, int)
   241  
   242  // BroadcastInt32 fills the elements of a slice with its argument value.
   243  func BroadcastInt32s(int32) Int32s
   244  
   245  // Abs returns the element-wise absolute value of x.
   246  func (x Int32s) Abs() Int32s
   247  
   248  // Add returns the element-wise sum of x and y.
   249  func (x Int32s) Add(y Int32s) Int32s
   250  
   251  // And returns the bitwise AND of x and y.
   252  func (x Int32s) And(y Int32s) Int32s
   253  
   254  // AndNot returns the bitwise AND NOT of x and y.
   255  func (x Int32s) AndNot(y Int32s) Int32s
   256  
   257  // ConvertToFloat32 converts the vector elements to float32.
   258  func (x Int32s) ConvertToFloat32() Float32s
   259  
   260  // ConvertToUint32 converts the vector elements to uint32.
   261  func (x Int32s) ConvertToUint32() Uint32s
   262  
   263  // Equal returns a mask indicating where x and y are equal.
   264  func (x Int32s) Equal(y Int32s) Mask32s
   265  
   266  // Greater returns a mask indicating where x is greater than y.
   267  func (x Int32s) Greater(y Int32s) Mask32s
   268  
   269  // GreaterEqual returns a mask indicating where x is greater than or equal to y.
   270  func (x Int32s) GreaterEqual(y Int32s) Mask32s
   271  
   272  // IfElse returns a new vector with elements from x where mask is true, and y where mask is false.
   273  func (x Int32s) IfElse(mask Mask32s, y Int32s) Int32s
   274  
   275  // Len returns the number of elements in the vector.
   276  func (x Int32s) Len() int
   277  
   278  // Less returns a mask indicating where x is less than y.
   279  func (x Int32s) Less(y Int32s) Mask32s
   280  
   281  // LessEqual returns a mask indicating where x is less than or equal to y.
   282  func (x Int32s) LessEqual(y Int32s) Mask32s
   283  
   284  // Masked returns a new vector with elements from x where mask is true, and zero elsewhere.
   285  func (x Int32s) Masked(mask Mask32s) Int32s
   286  
   287  // Max returns the element-wise maximum of x and y.
   288  func (x Int32s) Max(y Int32s) Int32s
   289  
   290  // Min returns the element-wise minimum of x and y.
   291  func (x Int32s) Min(y Int32s) Int32s
   292  
   293  // Mul returns the element-wise product of x and y.
   294  func (x Int32s) Mul(y Int32s) Int32s
   295  
   296  // Neg returns the element-wise negation of x.
   297  func (x Int32s) Neg() Int32s
   298  
   299  // Not returns the bitwise NOT of x.
   300  func (x Int32s) Not() Int32s
   301  
   302  // NotEqual returns a mask indicating where x and y are not equal.
   303  func (x Int32s) NotEqual(y Int32s) Mask32s
   304  
   305  // Or returns the bitwise OR of x and y.
   306  func (x Int32s) Or(y Int32s) Int32s
   307  
   308  // RotatesAllLeft rotates all elements left by y bits.
   309  func (x Int32s) RotateAllLeft(dist uint64) Int32s
   310  
   311  // RotatesAllRight rotates all elements right by y bits.
   312  func (x Int32s) RotateAllRight(dist uint64) Int32s
   313  
   314  // ShiftAllLeft shifts all elements left by y bits.
   315  func (x Int32s) ShiftAllLeft(shift uint64) Int32s
   316  
   317  // ShiftAllRight shifts all elements right by y bits.
   318  func (x Int32s) ShiftAllRight(shift uint64) Int32s
   319  
   320  // StoreSlice stores the vector elements into the slice s.
   321  func (x Int32s) Store(s []int32)
   322  
   323  // StoreSlicePart stores a partial vector into the slice s.
   324  func (x Int32s) StorePart(s []int32) int
   325  
   326  // String returns a string representation of the vector.
   327  func (x Int32s) String() string
   328  
   329  // Sub returns the element-wise difference of x and y.
   330  func (x Int32s) Sub(y Int32s) Int32s
   331  
   332  // ToBits reinterprets the vector bits as an unsigned integer vector.
   333  func (x Int32s) ToBits() Uint32s
   334  
   335  // ToMask returns a mask representation of the vector.
   336  func (x Int32s) ToMask() (to Mask32s)
   337  
   338  // Xor returns the bitwise XOR of x and y.
   339  func (x Int32s) Xor(y Int32s) Int32s
   340  
   341  // Int64s represents a vector of 64-bit signed integers.
   342  type Int64s struct {
   343  	_       _simd
   344  	atLeast [2]uint64 // the actual vector size may be larger.
   345  }
   346  
   347  // LoadInt64 loads a slice of int64 into an Int64s vector.
   348  func LoadInt64s([]int64) Int64s
   349  
   350  // LoadInt64Part loads a partial slice of int64 into an Int64s vector, returning the vector and the number of elements loaded.
   351  func LoadInt64sPart([]int64) (Int64s, int)
   352  
   353  // BroadcastInt64 fills the elements of a slice with its argument value.
   354  func BroadcastInt64s(int64) Int64s
   355  
   356  // Add returns the element-wise sum of x and y.
   357  func (x Int64s) Add(y Int64s) Int64s
   358  
   359  // And returns the bitwise AND of x and y.
   360  func (x Int64s) And(y Int64s) Int64s
   361  
   362  // AndNot returns the bitwise AND NOT of x and y.
   363  func (x Int64s) AndNot(y Int64s) Int64s
   364  
   365  // ConvertToUint64 converts the vector elements to uint64.
   366  func (x Int64s) ConvertToUint64() Uint64s
   367  
   368  // Equal returns a mask indicating where x and y are equal.
   369  func (x Int64s) Equal(y Int64s) Mask64s
   370  
   371  // Greater returns a mask indicating where x is greater than y.
   372  func (x Int64s) Greater(y Int64s) Mask64s
   373  
   374  // GreaterEqual returns a mask indicating where x is greater than or equal to y.
   375  func (x Int64s) GreaterEqual(y Int64s) Mask64s
   376  
   377  // IfElse returns a new vector with elements from x where mask is true, and y where mask is false.
   378  func (x Int64s) IfElse(mask Mask64s, y Int64s) Int64s
   379  
   380  // Len returns the number of elements in the vector.
   381  func (x Int64s) Len() int
   382  
   383  // Less returns a mask indicating where x is less than y.
   384  func (x Int64s) Less(y Int64s) Mask64s
   385  
   386  // LessEqual returns a mask indicating where x is less than or equal to y.
   387  func (x Int64s) LessEqual(y Int64s) Mask64s
   388  
   389  // Masked returns a new vector with elements from x where mask is true, and zero elsewhere.
   390  func (x Int64s) Masked(mask Mask64s) Int64s
   391  
   392  // Neg returns the element-wise negation of x.
   393  func (x Int64s) Neg() Int64s
   394  
   395  // Not returns the bitwise NOT of x.
   396  func (x Int64s) Not() Int64s
   397  
   398  // NotEqual returns a mask indicating where x and y are not equal.
   399  func (x Int64s) NotEqual(y Int64s) Mask64s
   400  
   401  // Or returns the bitwise OR of x and y.
   402  func (x Int64s) Or(y Int64s) Int64s
   403  
   404  // RotatesAllLeft rotates all elements left by y bits.
   405  func (x Int64s) RotateAllLeft(dist uint64) Int64s
   406  
   407  // RotatesAllRight rotates all elements right by y bits.
   408  func (x Int64s) RotateAllRight(dist uint64) Int64s
   409  
   410  // ShiftAllLeft shifts all elements left by y bits.
   411  func (x Int64s) ShiftAllLeft(shift uint64) Int64s
   412  
   413  // StoreSlice stores the vector elements into the slice s.
   414  func (x Int64s) Store(s []int64)
   415  
   416  // StoreSlicePart stores a partial vector into the slice s.
   417  func (x Int64s) StorePart(s []int64) int
   418  
   419  // String returns a string representation of the vector.
   420  func (x Int64s) String() string
   421  
   422  // Sub returns the element-wise difference of x and y.
   423  func (x Int64s) Sub(y Int64s) Int64s
   424  
   425  // ToBits reinterprets the vector bits as an unsigned integer vector.
   426  func (x Int64s) ToBits() Uint64s
   427  
   428  // ToMask returns a mask representation of the vector.
   429  func (x Int64s) ToMask() (to Mask64s)
   430  
   431  // Xor returns the bitwise XOR of x and y.
   432  func (x Int64s) Xor(y Int64s) Int64s
   433  
   434  // Uint8s represents a vector of 8-bit unsigned integers.
   435  type Uint8s struct {
   436  	_       _simd
   437  	atLeast [2]uint64 // the actual vector size may be larger.
   438  }
   439  
   440  // LoadUint8 loads a slice of uint8 into an Uint8s vector.
   441  func LoadUint8s([]uint8) Uint8s
   442  
   443  // LoadUint8Part loads a partial slice of uint8 into an Uint8s vector, returning the vector and the number of elements loaded.
   444  func LoadUint8sPart([]uint8) (Uint8s, int)
   445  
   446  // BroadcastUint8 fills the elements of a slice with its argument value.
   447  func BroadcastUint8s(uint8) Uint8s
   448  
   449  // Add returns the element-wise sum of x and y.
   450  func (x Uint8s) Add(y Uint8s) Uint8s
   451  
   452  // AddSaturated returns the element-wise saturated sum of x and y.
   453  func (x Uint8s) AddSaturated(y Uint8s) Uint8s
   454  
   455  // And returns the bitwise AND of x and y.
   456  func (x Uint8s) And(y Uint8s) Uint8s
   457  
   458  // AndNot returns the bitwise AND NOT of x and y.
   459  func (x Uint8s) AndNot(y Uint8s) Uint8s
   460  
   461  // Average returns the element-wise average of x and y.
   462  func (x Uint8s) Average(y Uint8s) Uint8s
   463  
   464  // BitsToInt8 reinterprets the vector bits as an Int8s vector.
   465  func (x Uint8s) BitsToInt8() Int8s
   466  
   467  // ConvertToInt8 converts the vector elements to int8.
   468  func (x Uint8s) ConvertToInt8() Int8s
   469  
   470  // Equal returns a mask indicating where x and y are equal.
   471  func (x Uint8s) Equal(y Uint8s) Mask8s
   472  
   473  // IfElse returns a new vector with elements from x where mask is true, and y where mask is false.
   474  func (x Uint8s) IfElse(mask Mask8s, y Uint8s) Uint8s
   475  
   476  // Len returns the number of elements in the vector.
   477  func (x Uint8s) Len() int
   478  
   479  // Masked returns a new vector with elements from x where mask is true, and zero elsewhere.
   480  func (x Uint8s) Masked(mask Mask8s) Uint8s
   481  
   482  // Max returns the element-wise maximum of x and y.
   483  func (x Uint8s) Max(y Uint8s) Uint8s
   484  
   485  // Min returns the element-wise minimum of x and y.
   486  func (x Uint8s) Min(y Uint8s) Uint8s
   487  
   488  // Mul returns the element-wise product of x and y.
   489  func (x Uint8s) Mul(y Uint8s) Uint8s
   490  
   491  // Not returns the bitwise NOT of x.
   492  func (x Uint8s) Not() Uint8s
   493  
   494  // NotEqual returns a mask indicating where x and y are not equal.
   495  func (x Uint8s) NotEqual(y Uint8s) Mask8s
   496  
   497  // Or returns the bitwise OR of x and y.
   498  func (x Uint8s) Or(y Uint8s) Uint8s
   499  
   500  // ReshapeToUint16s reinterprets the vector bits as a Uint16s vector.
   501  func (x Uint8s) ReshapeToUint16s() Uint16s
   502  
   503  // ReshapeToUint32s reinterprets the vector bits as a Uint32s vector.
   504  func (x Uint8s) ReshapeToUint32s() Uint32s
   505  
   506  // ReshapeToUint64s reinterprets the vector bits as a Uint64s vector.
   507  func (x Uint8s) ReshapeToUint64s() Uint64s
   508  
   509  // StoreSlice stores the vector elements into the slice s.
   510  func (x Uint8s) Store(s []uint8)
   511  
   512  // StoreSlicePart stores a partial vector into the slice s.
   513  func (x Uint8s) StorePart(s []uint8) int
   514  
   515  // String returns a string representation of the vector.
   516  func (x Uint8s) String() string
   517  
   518  // Sub returns the element-wise difference of x and y.
   519  func (x Uint8s) Sub(y Uint8s) Uint8s
   520  
   521  // SubSaturated returns the element-wise saturated difference of x and y.
   522  func (x Uint8s) SubSaturated(y Uint8s) Uint8s
   523  
   524  // Xor returns the bitwise XOR of x and y.
   525  func (x Uint8s) Xor(y Uint8s) Uint8s
   526  
   527  // Uint16s represents a vector of 16-bit unsigned integers.
   528  type Uint16s struct {
   529  	_       _simd
   530  	atLeast [2]uint64 // the actual vector size may be larger.
   531  }
   532  
   533  // LoadUint16 loads a slice of uint16 into an Uint16s vector.
   534  func LoadUint16s([]uint16) Uint16s
   535  
   536  // LoadUint16Part loads a partial slice of uint16 into an Uint16s vector, returning the vector and the number of elements loaded.
   537  func LoadUint16sPart([]uint16) (Uint16s, int)
   538  
   539  // BroadcastUint16 fills the elements of a slice with its argument value.
   540  func BroadcastUint16s(uint16) Uint16s
   541  
   542  // Add returns the element-wise sum of x and y.
   543  func (x Uint16s) Add(y Uint16s) Uint16s
   544  
   545  // AddSaturated returns the element-wise saturated sum of x and y.
   546  func (x Uint16s) AddSaturated(y Uint16s) Uint16s
   547  
   548  // And returns the bitwise AND of x and y.
   549  func (x Uint16s) And(y Uint16s) Uint16s
   550  
   551  // AndNot returns the bitwise AND NOT of x and y.
   552  func (x Uint16s) AndNot(y Uint16s) Uint16s
   553  
   554  // Average returns the element-wise average of x and y.
   555  func (x Uint16s) Average(y Uint16s) Uint16s
   556  
   557  // BitsToInt16 reinterprets the vector bits as an Int16s vector.
   558  func (x Uint16s) BitsToInt16() Int16s
   559  
   560  // ConvertToInt16 converts the vector elements to int16.
   561  func (x Uint16s) ConvertToInt16() Int16s
   562  
   563  // Equal returns a mask indicating where x and y are equal.
   564  func (x Uint16s) Equal(y Uint16s) Mask16s
   565  
   566  // Greater returns a mask indicating where x is greater than y.
   567  func (x Uint16s) Greater(y Uint16s) Mask16s
   568  
   569  // GreaterEqual returns a mask indicating where x is greater than or equal to y.
   570  func (x Uint16s) GreaterEqual(y Uint16s) Mask16s
   571  
   572  // IfElse returns a new vector with elements from x where mask is true, and y where mask is false.
   573  func (x Uint16s) IfElse(mask Mask16s, y Uint16s) Uint16s
   574  
   575  // Len returns the number of elements in the vector.
   576  func (x Uint16s) Len() int
   577  
   578  // Less returns a mask indicating where x is less than y.
   579  func (x Uint16s) Less(y Uint16s) Mask16s
   580  
   581  // LessEqual returns a mask indicating where x is less than or equal to y.
   582  func (x Uint16s) LessEqual(y Uint16s) Mask16s
   583  
   584  // Masked returns a new vector with elements from x where mask is true, and zero elsewhere.
   585  func (x Uint16s) Masked(mask Mask16s) Uint16s
   586  
   587  // Max returns the element-wise maximum of x and y.
   588  func (x Uint16s) Max(y Uint16s) Uint16s
   589  
   590  // Min returns the element-wise minimum of x and y.
   591  func (x Uint16s) Min(y Uint16s) Uint16s
   592  
   593  // Mul returns the element-wise product of x and y.
   594  func (x Uint16s) Mul(y Uint16s) Uint16s
   595  
   596  // Not returns the bitwise NOT of x.
   597  func (x Uint16s) Not() Uint16s
   598  
   599  // NotEqual returns a mask indicating where x and y are not equal.
   600  func (x Uint16s) NotEqual(y Uint16s) Mask16s
   601  
   602  // Or returns the bitwise OR of x and y.
   603  func (x Uint16s) Or(y Uint16s) Uint16s
   604  
   605  // ReshapeToUint32s reinterprets the vector bits as a Uint32s vector.
   606  func (x Uint16s) ReshapeToUint32s() Uint32s
   607  
   608  // ReshapeToUint64s reinterprets the vector bits as a Uint64s vector.
   609  func (x Uint16s) ReshapeToUint64s() Uint64s
   610  
   611  // ReshapeToUint8s reinterprets the vector bits as a Uint8s vector.
   612  func (x Uint16s) ReshapeToUint8s() Uint8s
   613  
   614  // RotatesAllLeft rotates all elements left by y bits.
   615  func (x Uint16s) RotateAllLeft(dist uint64) Uint16s
   616  
   617  // RotatesAllRight rotates all elements right by y bits.
   618  func (x Uint16s) RotateAllRight(dist uint64) Uint16s
   619  
   620  // ShiftAllLeft shifts all elements left by y bits.
   621  func (x Uint16s) ShiftAllLeft(shift uint64) Uint16s
   622  
   623  // ShiftAllRight shifts all elements right by y bits.
   624  func (x Uint16s) ShiftAllRight(shift uint64) Uint16s
   625  
   626  // StoreSlice stores the vector elements into the slice s.
   627  func (x Uint16s) Store(s []uint16)
   628  
   629  // StoreSlicePart stores a partial vector into the slice s.
   630  func (x Uint16s) StorePart(s []uint16) int
   631  
   632  // String returns a string representation of the vector.
   633  func (x Uint16s) String() string
   634  
   635  // Sub returns the element-wise difference of x and y.
   636  func (x Uint16s) Sub(y Uint16s) Uint16s
   637  
   638  // SubSaturated returns the element-wise saturated difference of x and y.
   639  func (x Uint16s) SubSaturated(y Uint16s) Uint16s
   640  
   641  // Xor returns the bitwise XOR of x and y.
   642  func (x Uint16s) Xor(y Uint16s) Uint16s
   643  
   644  // Uint32s represents a vector of 32-bit unsigned integers.
   645  type Uint32s struct {
   646  	_       _simd
   647  	atLeast [2]uint64 // the actual vector size may be larger.
   648  }
   649  
   650  // LoadUint32 loads a slice of uint32 into an Uint32s vector.
   651  func LoadUint32s([]uint32) Uint32s
   652  
   653  // LoadUint32Part loads a partial slice of uint32 into an Uint32s vector, returning the vector and the number of elements loaded.
   654  func LoadUint32sPart([]uint32) (Uint32s, int)
   655  
   656  // BroadcastUint32 fills the elements of a slice with its argument value.
   657  func BroadcastUint32s(uint32) Uint32s
   658  
   659  // Add returns the element-wise sum of x and y.
   660  func (x Uint32s) Add(y Uint32s) Uint32s
   661  
   662  // And returns the bitwise AND of x and y.
   663  func (x Uint32s) And(y Uint32s) Uint32s
   664  
   665  // AndNot returns the bitwise AND NOT of x and y.
   666  func (x Uint32s) AndNot(y Uint32s) Uint32s
   667  
   668  // BitsToFloat32 reinterprets the vector bits as a Float32s vector.
   669  func (x Uint32s) BitsToFloat32() Float32s
   670  
   671  // BitsToInt32 reinterprets the vector bits as an Int32s vector.
   672  func (x Uint32s) BitsToInt32() Int32s
   673  
   674  // ConvertToInt32 converts the vector elements to int32.
   675  func (x Uint32s) ConvertToInt32() Int32s
   676  
   677  // Equal returns a mask indicating where x and y are equal.
   678  func (x Uint32s) Equal(y Uint32s) Mask32s
   679  
   680  // Greater returns a mask indicating where x is greater than y.
   681  func (x Uint32s) Greater(y Uint32s) Mask32s
   682  
   683  // GreaterEqual returns a mask indicating where x is greater than or equal to y.
   684  func (x Uint32s) GreaterEqual(y Uint32s) Mask32s
   685  
   686  // IfElse returns a new vector with elements from x where mask is true, and y where mask is false.
   687  func (x Uint32s) IfElse(mask Mask32s, y Uint32s) Uint32s
   688  
   689  // Len returns the number of elements in the vector.
   690  func (x Uint32s) Len() int
   691  
   692  // Less returns a mask indicating where x is less than y.
   693  func (x Uint32s) Less(y Uint32s) Mask32s
   694  
   695  // LessEqual returns a mask indicating where x is less than or equal to y.
   696  func (x Uint32s) LessEqual(y Uint32s) Mask32s
   697  
   698  // Masked returns a new vector with elements from x where mask is true, and zero elsewhere.
   699  func (x Uint32s) Masked(mask Mask32s) Uint32s
   700  
   701  // Max returns the element-wise maximum of x and y.
   702  func (x Uint32s) Max(y Uint32s) Uint32s
   703  
   704  // Min returns the element-wise minimum of x and y.
   705  func (x Uint32s) Min(y Uint32s) Uint32s
   706  
   707  // Mul returns the element-wise product of x and y.
   708  func (x Uint32s) Mul(y Uint32s) Uint32s
   709  
   710  // Not returns the bitwise NOT of x.
   711  func (x Uint32s) Not() Uint32s
   712  
   713  // NotEqual returns a mask indicating where x and y are not equal.
   714  func (x Uint32s) NotEqual(y Uint32s) Mask32s
   715  
   716  // Or returns the bitwise OR of x and y.
   717  func (x Uint32s) Or(y Uint32s) Uint32s
   718  
   719  // ReshapeToUint16s reinterprets the vector bits as a Uint16s vector.
   720  func (x Uint32s) ReshapeToUint16s() Uint16s
   721  
   722  // ReshapeToUint64s reinterprets the vector bits as a Uint64s vector.
   723  func (x Uint32s) ReshapeToUint64s() Uint64s
   724  
   725  // ReshapeToUint8s reinterprets the vector bits as a Uint8s vector.
   726  func (x Uint32s) ReshapeToUint8s() Uint8s
   727  
   728  // RotatesAllLeft rotates all elements left by y bits.
   729  func (x Uint32s) RotateAllLeft(dist uint64) Uint32s
   730  
   731  // RotatesAllRight rotates all elements right by y bits.
   732  func (x Uint32s) RotateAllRight(dist uint64) Uint32s
   733  
   734  // ShiftAllLeft shifts all elements left by y bits.
   735  func (x Uint32s) ShiftAllLeft(shift uint64) Uint32s
   736  
   737  // ShiftAllRight shifts all elements right by y bits.
   738  func (x Uint32s) ShiftAllRight(shift uint64) Uint32s
   739  
   740  // StoreSlice stores the vector elements into the slice s.
   741  func (x Uint32s) Store(s []uint32)
   742  
   743  // StoreSlicePart stores a partial vector into the slice s.
   744  func (x Uint32s) StorePart(s []uint32) int
   745  
   746  // String returns a string representation of the vector.
   747  func (x Uint32s) String() string
   748  
   749  // Sub returns the element-wise difference of x and y.
   750  func (x Uint32s) Sub(y Uint32s) Uint32s
   751  
   752  // Xor returns the bitwise XOR of x and y.
   753  func (x Uint32s) Xor(y Uint32s) Uint32s
   754  
   755  // Uint64s represents a vector of 64-bit unsigned integers.
   756  type Uint64s struct {
   757  	_       _simd
   758  	atLeast [2]uint64 // the actual vector size may be larger.
   759  }
   760  
   761  // LoadUint64 loads a slice of uint64 into an Uint64s vector.
   762  func LoadUint64s([]uint64) Uint64s
   763  
   764  // LoadUint64Part loads a partial slice of uint64 into an Uint64s vector, returning the vector and the number of elements loaded.
   765  func LoadUint64sPart([]uint64) (Uint64s, int)
   766  
   767  // BroadcastUint64 fills the elements of a slice with its argument value.
   768  func BroadcastUint64s(uint64) Uint64s
   769  
   770  // Add returns the element-wise sum of x and y.
   771  func (x Uint64s) Add(y Uint64s) Uint64s
   772  
   773  // And returns the bitwise AND of x and y.
   774  func (x Uint64s) And(y Uint64s) Uint64s
   775  
   776  // AndNot returns the bitwise AND NOT of x and y.
   777  func (x Uint64s) AndNot(y Uint64s) Uint64s
   778  
   779  // BitsToFloat64 reinterprets the vector bits as a Float64s vector.
   780  func (x Uint64s) BitsToFloat64() Float64s
   781  
   782  // BitsToInt64 reinterprets the vector bits as an Int64s vector.
   783  func (x Uint64s) BitsToInt64() Int64s
   784  
   785  // CarrylessMultiplyOdd computes the carryless
   786  // multiplications of selected even indexed elements of x and y.
   787  // Each product is 128 bits wide and fills the corresponding
   788  // even-odd pairs in the result.
   789  //
   790  // A carryless multiplication uses bitwise XOR instead of
   791  // add-with-carry, for example (in base two):
   792  //
   793  //	11 * 11 = 11 * (10 ^ 1) = (11 * 10) ^ (11 * 1) = 110 ^ 11 = 101
   794  //
   795  // This also models multiplication of polynomials with coefficients
   796  // from GF(2) -- 11 * 11 models (x+1)*(x+1) = x**2 + (1^1)x + 1 =
   797  // x**2 + 0x + 1 = x**2 + 1 modeled by 101.  (Note that "+" adds
   798  // polynomial terms, but coefficients "add" with XOR.)"
   799  func (x Uint64s) CarrylessMultiplyEven(y Uint64s) Uint64s
   800  
   801  // CarrylessMultiplyOdd computes the carryless
   802  // multiplications of selected odd indexed elements of x and y.
   803  // Each product is 128 bits wide and fills the corresponding
   804  // even-odd pairs in the result.
   805  //
   806  // A carryless multiplication uses bitwise XOR instead of
   807  // add-with-carry, for example (in base two):
   808  //
   809  //	11 * 11 = 11 * (10 ^ 1) = (11 * 10) ^ (11 * 1) = 110 ^ 11 = 101
   810  //
   811  // This also models multiplication of polynomials with coefficients
   812  // from GF(2) -- 11 * 11 models (x+1)*(x+1) = x**2 + (1^1)x + 1 =
   813  // x**2 + 0x + 1 = x**2 + 1 modeled by 101.  (Note that "+" adds
   814  // polynomial terms, but coefficients "add" with XOR.)"
   815  func (x Uint64s) CarrylessMultiplyOdd(y Uint64s) Uint64s
   816  
   817  // ConvertToInt64 converts the vector elements to int64.
   818  func (x Uint64s) ConvertToInt64() Int64s
   819  
   820  // Equal returns a mask indicating where x and y are equal.
   821  func (x Uint64s) Equal(y Uint64s) Mask64s
   822  
   823  // Greater returns a mask indicating where x is greater than y.
   824  func (x Uint64s) Greater(y Uint64s) Mask64s
   825  
   826  // GreaterEqual returns a mask indicating where x is greater than or equal to y.
   827  func (x Uint64s) GreaterEqual(y Uint64s) Mask64s
   828  
   829  // IfElse returns a new vector with elements from x where mask is true, and y where mask is false.
   830  func (x Uint64s) IfElse(mask Mask64s, y Uint64s) Uint64s
   831  
   832  // Len returns the number of elements in the vector.
   833  func (x Uint64s) Len() int
   834  
   835  // Less returns a mask indicating where x is less than y.
   836  func (x Uint64s) Less(y Uint64s) Mask64s
   837  
   838  // LessEqual returns a mask indicating where x is less than or equal to y.
   839  func (x Uint64s) LessEqual(y Uint64s) Mask64s
   840  
   841  // Masked returns a new vector with elements from x where mask is true, and zero elsewhere.
   842  func (x Uint64s) Masked(mask Mask64s) Uint64s
   843  
   844  // Not returns the bitwise NOT of x.
   845  func (x Uint64s) Not() Uint64s
   846  
   847  // NotEqual returns a mask indicating where x and y are not equal.
   848  func (x Uint64s) NotEqual(y Uint64s) Mask64s
   849  
   850  // Or returns the bitwise OR of x and y.
   851  func (x Uint64s) Or(y Uint64s) Uint64s
   852  
   853  // ReshapeToUint16s reinterprets the vector bits as a Uint16s vector.
   854  func (x Uint64s) ReshapeToUint16s() Uint16s
   855  
   856  // ReshapeToUint32s reinterprets the vector bits as a Uint32s vector.
   857  func (x Uint64s) ReshapeToUint32s() Uint32s
   858  
   859  // ReshapeToUint8s reinterprets the vector bits as a Uint8s vector.
   860  func (x Uint64s) ReshapeToUint8s() Uint8s
   861  
   862  // RotatesAllLeft rotates all elements left by y bits.
   863  func (x Uint64s) RotateAllLeft(dist uint64) Uint64s
   864  
   865  // RotatesAllRight rotates all elements right by y bits.
   866  func (x Uint64s) RotateAllRight(dist uint64) Uint64s
   867  
   868  // ShiftAllLeft shifts all elements left by y bits.
   869  func (x Uint64s) ShiftAllLeft(shift uint64) Uint64s
   870  
   871  // ShiftAllRight shifts all elements right by y bits.
   872  func (x Uint64s) ShiftAllRight(shift uint64) Uint64s
   873  
   874  // StoreSlice stores the vector elements into the slice s.
   875  func (x Uint64s) Store(s []uint64)
   876  
   877  // StoreSlicePart stores a partial vector into the slice s.
   878  func (x Uint64s) StorePart(s []uint64) int
   879  
   880  // String returns a string representation of the vector.
   881  func (x Uint64s) String() string
   882  
   883  // Sub returns the element-wise difference of x and y.
   884  func (x Uint64s) Sub(y Uint64s) Uint64s
   885  
   886  // Xor returns the bitwise XOR of x and y.
   887  func (x Uint64s) Xor(y Uint64s) Uint64s
   888  
   889  // Float32s represents a vector of 32-bit floating-point numbers.
   890  type Float32s struct {
   891  	_       _simd
   892  	atLeast [2]uint64 // the actual vector size may be larger.
   893  }
   894  
   895  // LoadFloat32 loads a slice of float32 into an Float32s vector.
   896  func LoadFloat32s([]float32) Float32s
   897  
   898  // LoadFloat32Part loads a partial slice of float32 into an Float32s vector, returning the vector and the number of elements loaded.
   899  func LoadFloat32sPart([]float32) (Float32s, int)
   900  
   901  // BroadcastFloat32 fills the elements of a slice with its argument value.
   902  func BroadcastFloat32s(float32) Float32s
   903  
   904  // Abs returns the element-wise absolute value of x.
   905  func (x Float32s) Abs() Float32s
   906  
   907  // Add returns the element-wise sum of x and y.
   908  func (x Float32s) Add(y Float32s) Float32s
   909  
   910  // ConvertToInt32 converts the vector elements to int32.
   911  func (x Float32s) ConvertToInt32() Int32s
   912  
   913  // Div returns the element-wise quotient of x and y.
   914  func (x Float32s) Div(y Float32s) Float32s
   915  
   916  // Equal returns a mask indicating where x and y are equal.
   917  func (x Float32s) Equal(y Float32s) Mask32s
   918  
   919  // Greater returns a mask indicating where x is greater than y.
   920  func (x Float32s) Greater(y Float32s) Mask32s
   921  
   922  // GreaterEqual returns a mask indicating where x is greater than or equal to y.
   923  func (x Float32s) GreaterEqual(y Float32s) Mask32s
   924  
   925  // IfElse returns a new vector with elements from x where mask is true, and y where mask is false.
   926  func (x Float32s) IfElse(mask Mask32s, y Float32s) Float32s
   927  
   928  // Len returns the number of elements in the vector.
   929  func (x Float32s) Len() int
   930  
   931  // Less returns a mask indicating where x is less than y.
   932  func (x Float32s) Less(y Float32s) Mask32s
   933  
   934  // LessEqual returns a mask indicating where x is less than or equal to y.
   935  func (x Float32s) LessEqual(y Float32s) Mask32s
   936  
   937  // Masked returns a new vector with elements from x where mask is true, and zero elsewhere.
   938  func (x Float32s) Masked(mask Mask32s) Float32s
   939  
   940  // Max returns the element-wise maximum of x and y.
   941  func (x Float32s) Max(y Float32s) Float32s
   942  
   943  // Min returns the element-wise minimum of x and y.
   944  func (x Float32s) Min(y Float32s) Float32s
   945  
   946  // Mul returns the element-wise product of x and y.
   947  func (x Float32s) Mul(y Float32s) Float32s
   948  
   949  // MulAdd returns x * y + z element-wise.
   950  func (x Float32s) MulAdd(y Float32s, z Float32s) Float32s
   951  
   952  // Neg returns the element-wise negation of x.
   953  func (x Float32s) Neg() Float32s
   954  
   955  // NotEqual returns a mask indicating where x and y are not equal.
   956  func (x Float32s) NotEqual(y Float32s) Mask32s
   957  
   958  // Sqrt returns the element-wise square root of x.
   959  func (x Float32s) Sqrt() Float32s
   960  
   961  // StoreSlice stores the vector elements into the slice s.
   962  func (x Float32s) Store(s []float32)
   963  
   964  // StoreSlicePart stores a partial vector into the slice s.
   965  func (x Float32s) StorePart(s []float32) int
   966  
   967  // String returns a string representation of the vector.
   968  func (x Float32s) String() string
   969  
   970  // Sub returns the element-wise difference of x and y.
   971  func (x Float32s) Sub(y Float32s) Float32s
   972  
   973  // ToBits reinterprets the vector bits as an unsigned integer vector.
   974  func (x Float32s) ToBits() Uint32s
   975  
   976  // Float64s represents a vector of 64-bit floating-point numbers.
   977  type Float64s struct {
   978  	_       _simd
   979  	atLeast [2]uint64 // the actual vector size may be larger.
   980  }
   981  
   982  // LoadFloat64 loads a slice of float64 into an Float64s vector.
   983  func LoadFloat64s([]float64) Float64s
   984  
   985  // LoadFloat64Part loads a partial slice of float64 into an Float64s vector, returning the vector and the number of elements loaded.
   986  func LoadFloat64sPart([]float64) (Float64s, int)
   987  
   988  // BroadcastFloat64 fills the elements of a slice with its argument value.
   989  func BroadcastFloat64s(float64) Float64s
   990  
   991  // Abs returns the element-wise absolute value of x.
   992  func (x Float64s) Abs() Float64s
   993  
   994  // Add returns the element-wise sum of x and y.
   995  func (x Float64s) Add(y Float64s) Float64s
   996  
   997  // Div returns the element-wise quotient of x and y.
   998  func (x Float64s) Div(y Float64s) Float64s
   999  
  1000  // Equal returns a mask indicating where x and y are equal.
  1001  func (x Float64s) Equal(y Float64s) Mask64s
  1002  
  1003  // Greater returns a mask indicating where x is greater than y.
  1004  func (x Float64s) Greater(y Float64s) Mask64s
  1005  
  1006  // GreaterEqual returns a mask indicating where x is greater than or equal to y.
  1007  func (x Float64s) GreaterEqual(y Float64s) Mask64s
  1008  
  1009  // IfElse returns a new vector with elements from x where mask is true, and y where mask is false.
  1010  func (x Float64s) IfElse(mask Mask64s, y Float64s) Float64s
  1011  
  1012  // Len returns the number of elements in the vector.
  1013  func (x Float64s) Len() int
  1014  
  1015  // Less returns a mask indicating where x is less than y.
  1016  func (x Float64s) Less(y Float64s) Mask64s
  1017  
  1018  // LessEqual returns a mask indicating where x is less than or equal to y.
  1019  func (x Float64s) LessEqual(y Float64s) Mask64s
  1020  
  1021  // Masked returns a new vector with elements from x where mask is true, and zero elsewhere.
  1022  func (x Float64s) Masked(mask Mask64s) Float64s
  1023  
  1024  // Max returns the element-wise maximum of x and y.
  1025  func (x Float64s) Max(y Float64s) Float64s
  1026  
  1027  // Min returns the element-wise minimum of x and y.
  1028  func (x Float64s) Min(y Float64s) Float64s
  1029  
  1030  // Mul returns the element-wise product of x and y.
  1031  func (x Float64s) Mul(y Float64s) Float64s
  1032  
  1033  // MulAdd returns x * y + z element-wise.
  1034  func (x Float64s) MulAdd(y Float64s, z Float64s) Float64s
  1035  
  1036  // Neg returns the element-wise negation of x.
  1037  func (x Float64s) Neg() Float64s
  1038  
  1039  // NotEqual returns a mask indicating where x and y are not equal.
  1040  func (x Float64s) NotEqual(y Float64s) Mask64s
  1041  
  1042  // Sqrt returns the element-wise square root of x.
  1043  func (x Float64s) Sqrt() Float64s
  1044  
  1045  // StoreSlice stores the vector elements into the slice s.
  1046  func (x Float64s) Store(s []float64)
  1047  
  1048  // StoreSlicePart stores a partial vector into the slice s.
  1049  func (x Float64s) StorePart(s []float64) int
  1050  
  1051  // String returns a string representation of the vector.
  1052  func (x Float64s) String() string
  1053  
  1054  // Sub returns the element-wise difference of x and y.
  1055  func (x Float64s) Sub(y Float64s) Float64s
  1056  
  1057  // ToBits reinterprets the vector bits as an unsigned integer vector.
  1058  func (x Float64s) ToBits() Uint64s
  1059  
  1060  // Mask8s represents a boolean mask for Int8s/Uint8s vectors.
  1061  type Mask8s struct {
  1062  	_       _simd
  1063  	atLeast [2]uint64 // the actual vector size may be larger.
  1064  }
  1065  
  1066  // And returns the bitwise AND of x and y.
  1067  func (x Mask8s) And(y Mask8s) Mask8s
  1068  
  1069  // Or returns the bitwise OR of x and y.
  1070  func (x Mask8s) Or(y Mask8s) Mask8s
  1071  
  1072  // String returns a string representation of the vector.
  1073  func (x Mask8s) String() string
  1074  
  1075  // ToInt8s converts the mask to an Int8s vector.
  1076  func (x Mask8s) ToInt8s() (to Int8s)
  1077  
  1078  // Mask16s represents a boolean mask for Int16s/Uint16s vectors.
  1079  type Mask16s struct {
  1080  	_       _simd
  1081  	atLeast [2]uint64 // the actual vector size may be larger.
  1082  }
  1083  
  1084  // And returns the bitwise AND of x and y.
  1085  func (x Mask16s) And(y Mask16s) Mask16s
  1086  
  1087  // Or returns the bitwise OR of x and y.
  1088  func (x Mask16s) Or(y Mask16s) Mask16s
  1089  
  1090  // String returns a string representation of the vector.
  1091  func (x Mask16s) String() string
  1092  
  1093  // ToInt16s converts the mask to an Int16s vector.
  1094  func (x Mask16s) ToInt16s() (to Int16s)
  1095  
  1096  // Mask32s represents a boolean mask for Int32s/Uint32s vectors.
  1097  type Mask32s struct {
  1098  	_       _simd
  1099  	atLeast [2]uint64 // the actual vector size may be larger.
  1100  }
  1101  
  1102  // And returns the bitwise AND of x and y.
  1103  func (x Mask32s) And(y Mask32s) Mask32s
  1104  
  1105  // Or returns the bitwise OR of x and y.
  1106  func (x Mask32s) Or(y Mask32s) Mask32s
  1107  
  1108  // String returns a string representation of the vector.
  1109  func (x Mask32s) String() string
  1110  
  1111  // ToInt32s converts the mask to an Int32s vector.
  1112  func (x Mask32s) ToInt32s() (to Int32s)
  1113  
  1114  // Mask64s represents a boolean mask for Int64s/Uint64s vectors.
  1115  type Mask64s struct {
  1116  	_       _simd
  1117  	atLeast [2]uint64 // the actual vector size may be larger.
  1118  }
  1119  
  1120  // And returns the bitwise AND of x and y.
  1121  func (x Mask64s) And(y Mask64s) Mask64s
  1122  
  1123  // Or returns the bitwise OR of x and y.
  1124  func (x Mask64s) Or(y Mask64s) Mask64s
  1125  
  1126  // String returns a string representation of the vector.
  1127  func (x Mask64s) String() string
  1128  
  1129  // ToInt64s converts the mask to an Int64s vector.
  1130  func (x Mask64s) ToInt64s() (to Int64s)
  1131  

View as plain text