Source file src/simd/archsimd/ops_amd64.go

     1  // Code generated by 'simdgen -o godefs -goroot $GOROOT -xedPath $XED_PATH go.yaml types.yaml categories.yaml'; DO NOT EDIT.
     2  
     3  //go:build goexperiment.simd
     4  
     5  package archsimd
     6  
     7  /* AESDecryptLastRound */
     8  
     9  // AESDecryptLastRound performs a series of operations in AES cipher algorithm defined in FIPS 197.
    10  // x is the state array, starting from low index to high are s00, s10, s20, s30, s01, ..., s33.
    11  // y is the chunk of dw array in use.
    12  // result = AddRoundKey(InvShiftRows(InvSubBytes(x)), y)
    13  //
    14  // Asm: VAESDECLAST, CPU Feature: AVX, AES
    15  func (x Uint8x16) AESDecryptLastRound(y Uint32x4) Uint8x16
    16  
    17  // AESDecryptLastRound performs a series of operations in AES cipher algorithm defined in FIPS 197.
    18  // x is the state array, starting from low index to high are s00, s10, s20, s30, s01, ..., s33.
    19  // y is the chunk of dw array in use.
    20  // result = AddRoundKey(InvShiftRows(InvSubBytes(x)), y)
    21  //
    22  // Asm: VAESDECLAST, CPU Feature: AVX512VAES
    23  func (x Uint8x32) AESDecryptLastRound(y Uint32x8) Uint8x32
    24  
    25  // AESDecryptLastRound performs a series of operations in AES cipher algorithm defined in FIPS 197.
    26  // x is the state array, starting from low index to high are s00, s10, s20, s30, s01, ..., s33.
    27  // y is the chunk of dw array in use.
    28  // result = AddRoundKey(InvShiftRows(InvSubBytes(x)), y)
    29  //
    30  // Asm: VAESDECLAST, CPU Feature: AVX512VAES
    31  func (x Uint8x64) AESDecryptLastRound(y Uint32x16) Uint8x64
    32  
    33  /* AESDecryptOneRound */
    34  
    35  // AESDecryptOneRound performs a series of operations in AES cipher algorithm defined in FIPS 197.
    36  // x is the state array, starting from low index to high are s00, s10, s20, s30, s01, ..., s33.
    37  // y is the chunk of dw array in use.
    38  // result = AddRoundKey(InvMixColumns(InvShiftRows(InvSubBytes(x))), y)
    39  //
    40  // Asm: VAESDEC, CPU Feature: AVX, AES
    41  func (x Uint8x16) AESDecryptOneRound(y Uint32x4) Uint8x16
    42  
    43  // AESDecryptOneRound performs a series of operations in AES cipher algorithm defined in FIPS 197.
    44  // x is the state array, starting from low index to high are s00, s10, s20, s30, s01, ..., s33.
    45  // y is the chunk of dw array in use.
    46  // result = AddRoundKey(InvMixColumns(InvShiftRows(InvSubBytes(x))), y)
    47  //
    48  // Asm: VAESDEC, CPU Feature: AVX512VAES
    49  func (x Uint8x32) AESDecryptOneRound(y Uint32x8) Uint8x32
    50  
    51  // AESDecryptOneRound performs a series of operations in AES cipher algorithm defined in FIPS 197.
    52  // x is the state array, starting from low index to high are s00, s10, s20, s30, s01, ..., s33.
    53  // y is the chunk of dw array in use.
    54  // result = AddRoundKey(InvMixColumns(InvShiftRows(InvSubBytes(x))), y)
    55  //
    56  // Asm: VAESDEC, CPU Feature: AVX512VAES
    57  func (x Uint8x64) AESDecryptOneRound(y Uint32x16) Uint8x64
    58  
    59  /* AESEncryptLastRound */
    60  
    61  // AESEncryptLastRound performs a series of operations in AES cipher algorithm defined in FIPS 197.
    62  // x is the state array, starting from low index to high are s00, s10, s20, s30, s01, ..., s33.
    63  // y is the chunk of w array in use.
    64  // result = AddRoundKey((ShiftRows(SubBytes(x))), y)
    65  //
    66  // Asm: VAESENCLAST, CPU Feature: AVX, AES
    67  func (x Uint8x16) AESEncryptLastRound(y Uint32x4) Uint8x16
    68  
    69  // AESEncryptLastRound performs a series of operations in AES cipher algorithm defined in FIPS 197.
    70  // x is the state array, starting from low index to high are s00, s10, s20, s30, s01, ..., s33.
    71  // y is the chunk of w array in use.
    72  // result = AddRoundKey((ShiftRows(SubBytes(x))), y)
    73  //
    74  // Asm: VAESENCLAST, CPU Feature: AVX512VAES
    75  func (x Uint8x32) AESEncryptLastRound(y Uint32x8) Uint8x32
    76  
    77  // AESEncryptLastRound performs a series of operations in AES cipher algorithm defined in FIPS 197.
    78  // x is the state array, starting from low index to high are s00, s10, s20, s30, s01, ..., s33.
    79  // y is the chunk of w array in use.
    80  // result = AddRoundKey((ShiftRows(SubBytes(x))), y)
    81  //
    82  // Asm: VAESENCLAST, CPU Feature: AVX512VAES
    83  func (x Uint8x64) AESEncryptLastRound(y Uint32x16) Uint8x64
    84  
    85  /* AESEncryptOneRound */
    86  
    87  // AESEncryptOneRound performs a series of operations in AES cipher algorithm defined in FIPS 197.
    88  // x is the state array, starting from low index to high are s00, s10, s20, s30, s01, ..., s33.
    89  // y is the chunk of w array in use.
    90  // result = AddRoundKey(MixColumns(ShiftRows(SubBytes(x))), y)
    91  //
    92  // Asm: VAESENC, CPU Feature: AVX, AES
    93  func (x Uint8x16) AESEncryptOneRound(y Uint32x4) Uint8x16
    94  
    95  // AESEncryptOneRound performs a series of operations in AES cipher algorithm defined in FIPS 197.
    96  // x is the state array, starting from low index to high are s00, s10, s20, s30, s01, ..., s33.
    97  // y is the chunk of w array in use.
    98  // result = AddRoundKey(MixColumns(ShiftRows(SubBytes(x))), y)
    99  //
   100  // Asm: VAESENC, CPU Feature: AVX512VAES
   101  func (x Uint8x32) AESEncryptOneRound(y Uint32x8) Uint8x32
   102  
   103  // AESEncryptOneRound performs a series of operations in AES cipher algorithm defined in FIPS 197.
   104  // x is the state array, starting from low index to high are s00, s10, s20, s30, s01, ..., s33.
   105  // y is the chunk of w array in use.
   106  // result = AddRoundKey(MixColumns(ShiftRows(SubBytes(x))), y)
   107  //
   108  // Asm: VAESENC, CPU Feature: AVX512VAES
   109  func (x Uint8x64) AESEncryptOneRound(y Uint32x16) Uint8x64
   110  
   111  /* AESInvMixColumns */
   112  
   113  // AESInvMixColumns performs the InvMixColumns operation in AES cipher algorithm defined in FIPS 197.
   114  // x is the chunk of w array in use.
   115  // result = InvMixColumns(x)
   116  //
   117  // Asm: VAESIMC, CPU Feature: AVX, AES
   118  func (x Uint32x4) AESInvMixColumns() Uint32x4
   119  
   120  /* AESRoundKeyGenAssist */
   121  
   122  // AESRoundKeyGenAssist performs some components of KeyExpansion in AES cipher algorithm defined in FIPS 197.
   123  // x is an array of AES words, but only x[0] and x[2] are used.
   124  // r is a value from the Rcon constant array.
   125  // result[0] = XOR(SubWord(RotWord(x[0])), r)
   126  // result[1] = SubWord(x[1])
   127  // result[2] = XOR(SubWord(RotWord(x[2])), r)
   128  // result[3] = SubWord(x[3])
   129  //
   130  // rconVal results in better performance when it's a constant, a non-constant value will be translated into a jump table.
   131  //
   132  // Asm: VAESKEYGENASSIST, CPU Feature: AVX, AES
   133  func (x Uint32x4) AESRoundKeyGenAssist(rconVal uint8) Uint32x4
   134  
   135  /* Abs */
   136  
   137  // Abs computes the absolute value of each element.
   138  //
   139  // Asm: VPABSB, CPU Feature: AVX
   140  func (x Int8x16) Abs() Int8x16
   141  
   142  // Abs computes the absolute value of each element.
   143  //
   144  // Asm: VPABSB, CPU Feature: AVX2
   145  func (x Int8x32) Abs() Int8x32
   146  
   147  // Abs computes the absolute value of each element.
   148  //
   149  // Asm: VPABSB, CPU Feature: AVX512
   150  func (x Int8x64) Abs() Int8x64
   151  
   152  // Abs computes the absolute value of each element.
   153  //
   154  // Asm: VPABSW, CPU Feature: AVX
   155  func (x Int16x8) Abs() Int16x8
   156  
   157  // Abs computes the absolute value of each element.
   158  //
   159  // Asm: VPABSW, CPU Feature: AVX2
   160  func (x Int16x16) Abs() Int16x16
   161  
   162  // Abs computes the absolute value of each element.
   163  //
   164  // Asm: VPABSW, CPU Feature: AVX512
   165  func (x Int16x32) Abs() Int16x32
   166  
   167  // Abs computes the absolute value of each element.
   168  //
   169  // Asm: VPABSD, CPU Feature: AVX
   170  func (x Int32x4) Abs() Int32x4
   171  
   172  // Abs computes the absolute value of each element.
   173  //
   174  // Asm: VPABSD, CPU Feature: AVX2
   175  func (x Int32x8) Abs() Int32x8
   176  
   177  // Abs computes the absolute value of each element.
   178  //
   179  // Asm: VPABSD, CPU Feature: AVX512
   180  func (x Int32x16) Abs() Int32x16
   181  
   182  // Abs computes the absolute value of each element.
   183  //
   184  // Asm: VPABSQ, CPU Feature: AVX512
   185  func (x Int64x2) Abs() Int64x2
   186  
   187  // Abs computes the absolute value of each element.
   188  //
   189  // Asm: VPABSQ, CPU Feature: AVX512
   190  func (x Int64x4) Abs() Int64x4
   191  
   192  // Abs computes the absolute value of each element.
   193  //
   194  // Asm: VPABSQ, CPU Feature: AVX512
   195  func (x Int64x8) Abs() Int64x8
   196  
   197  /* Add */
   198  
   199  // Add adds corresponding elements of two vectors.
   200  //
   201  // Asm: VADDPS, CPU Feature: AVX
   202  func (x Float32x4) Add(y Float32x4) Float32x4
   203  
   204  // Add adds corresponding elements of two vectors.
   205  //
   206  // Asm: VADDPS, CPU Feature: AVX
   207  func (x Float32x8) Add(y Float32x8) Float32x8
   208  
   209  // Add adds corresponding elements of two vectors.
   210  //
   211  // Asm: VADDPS, CPU Feature: AVX512
   212  func (x Float32x16) Add(y Float32x16) Float32x16
   213  
   214  // Add adds corresponding elements of two vectors.
   215  //
   216  // Asm: VADDPD, CPU Feature: AVX
   217  func (x Float64x2) Add(y Float64x2) Float64x2
   218  
   219  // Add adds corresponding elements of two vectors.
   220  //
   221  // Asm: VADDPD, CPU Feature: AVX
   222  func (x Float64x4) Add(y Float64x4) Float64x4
   223  
   224  // Add adds corresponding elements of two vectors.
   225  //
   226  // Asm: VADDPD, CPU Feature: AVX512
   227  func (x Float64x8) Add(y Float64x8) Float64x8
   228  
   229  // Add adds corresponding elements of two vectors.
   230  //
   231  // Asm: VPADDB, CPU Feature: AVX
   232  func (x Int8x16) Add(y Int8x16) Int8x16
   233  
   234  // Add adds corresponding elements of two vectors.
   235  //
   236  // Asm: VPADDB, CPU Feature: AVX2
   237  func (x Int8x32) Add(y Int8x32) Int8x32
   238  
   239  // Add adds corresponding elements of two vectors.
   240  //
   241  // Asm: VPADDB, CPU Feature: AVX512
   242  func (x Int8x64) Add(y Int8x64) Int8x64
   243  
   244  // Add adds corresponding elements of two vectors.
   245  //
   246  // Asm: VPADDW, CPU Feature: AVX
   247  func (x Int16x8) Add(y Int16x8) Int16x8
   248  
   249  // Add adds corresponding elements of two vectors.
   250  //
   251  // Asm: VPADDW, CPU Feature: AVX2
   252  func (x Int16x16) Add(y Int16x16) Int16x16
   253  
   254  // Add adds corresponding elements of two vectors.
   255  //
   256  // Asm: VPADDW, CPU Feature: AVX512
   257  func (x Int16x32) Add(y Int16x32) Int16x32
   258  
   259  // Add adds corresponding elements of two vectors.
   260  //
   261  // Asm: VPADDD, CPU Feature: AVX
   262  func (x Int32x4) Add(y Int32x4) Int32x4
   263  
   264  // Add adds corresponding elements of two vectors.
   265  //
   266  // Asm: VPADDD, CPU Feature: AVX2
   267  func (x Int32x8) Add(y Int32x8) Int32x8
   268  
   269  // Add adds corresponding elements of two vectors.
   270  //
   271  // Asm: VPADDD, CPU Feature: AVX512
   272  func (x Int32x16) Add(y Int32x16) Int32x16
   273  
   274  // Add adds corresponding elements of two vectors.
   275  //
   276  // Asm: VPADDQ, CPU Feature: AVX
   277  func (x Int64x2) Add(y Int64x2) Int64x2
   278  
   279  // Add adds corresponding elements of two vectors.
   280  //
   281  // Asm: VPADDQ, CPU Feature: AVX2
   282  func (x Int64x4) Add(y Int64x4) Int64x4
   283  
   284  // Add adds corresponding elements of two vectors.
   285  //
   286  // Asm: VPADDQ, CPU Feature: AVX512
   287  func (x Int64x8) Add(y Int64x8) Int64x8
   288  
   289  // Add adds corresponding elements of two vectors.
   290  //
   291  // Asm: VPADDB, CPU Feature: AVX
   292  func (x Uint8x16) Add(y Uint8x16) Uint8x16
   293  
   294  // Add adds corresponding elements of two vectors.
   295  //
   296  // Asm: VPADDB, CPU Feature: AVX2
   297  func (x Uint8x32) Add(y Uint8x32) Uint8x32
   298  
   299  // Add adds corresponding elements of two vectors.
   300  //
   301  // Asm: VPADDB, CPU Feature: AVX512
   302  func (x Uint8x64) Add(y Uint8x64) Uint8x64
   303  
   304  // Add adds corresponding elements of two vectors.
   305  //
   306  // Asm: VPADDW, CPU Feature: AVX
   307  func (x Uint16x8) Add(y Uint16x8) Uint16x8
   308  
   309  // Add adds corresponding elements of two vectors.
   310  //
   311  // Asm: VPADDW, CPU Feature: AVX2
   312  func (x Uint16x16) Add(y Uint16x16) Uint16x16
   313  
   314  // Add adds corresponding elements of two vectors.
   315  //
   316  // Asm: VPADDW, CPU Feature: AVX512
   317  func (x Uint16x32) Add(y Uint16x32) Uint16x32
   318  
   319  // Add adds corresponding elements of two vectors.
   320  //
   321  // Asm: VPADDD, CPU Feature: AVX
   322  func (x Uint32x4) Add(y Uint32x4) Uint32x4
   323  
   324  // Add adds corresponding elements of two vectors.
   325  //
   326  // Asm: VPADDD, CPU Feature: AVX2
   327  func (x Uint32x8) Add(y Uint32x8) Uint32x8
   328  
   329  // Add adds corresponding elements of two vectors.
   330  //
   331  // Asm: VPADDD, CPU Feature: AVX512
   332  func (x Uint32x16) Add(y Uint32x16) Uint32x16
   333  
   334  // Add adds corresponding elements of two vectors.
   335  //
   336  // Asm: VPADDQ, CPU Feature: AVX
   337  func (x Uint64x2) Add(y Uint64x2) Uint64x2
   338  
   339  // Add adds corresponding elements of two vectors.
   340  //
   341  // Asm: VPADDQ, CPU Feature: AVX2
   342  func (x Uint64x4) Add(y Uint64x4) Uint64x4
   343  
   344  // Add adds corresponding elements of two vectors.
   345  //
   346  // Asm: VPADDQ, CPU Feature: AVX512
   347  func (x Uint64x8) Add(y Uint64x8) Uint64x8
   348  
   349  /* AddPairs */
   350  
   351  // AddPairs horizontally adds adjacent pairs of elements.
   352  // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...].
   353  //
   354  // Asm: VHADDPS, CPU Feature: AVX
   355  func (x Float32x4) AddPairs(y Float32x4) Float32x4
   356  
   357  // AddPairs horizontally adds adjacent pairs of elements.
   358  // For x = [x0, x1] and y = [y0, y1], the result is [x0+x1, y0+y1].
   359  //
   360  // Asm: VHADDPD, CPU Feature: AVX
   361  func (x Float64x2) AddPairs(y Float64x2) Float64x2
   362  
   363  // AddPairs horizontally adds adjacent pairs of elements.
   364  // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...].
   365  //
   366  // Asm: VPHADDW, CPU Feature: AVX
   367  func (x Int16x8) AddPairs(y Int16x8) Int16x8
   368  
   369  // AddPairs horizontally adds adjacent pairs of elements.
   370  // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...].
   371  //
   372  // Asm: VPHADDD, CPU Feature: AVX
   373  func (x Int32x4) AddPairs(y Int32x4) Int32x4
   374  
   375  // AddPairs horizontally adds adjacent pairs of elements.
   376  // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...].
   377  //
   378  // Asm: VPHADDW, CPU Feature: AVX
   379  func (x Uint16x8) AddPairs(y Uint16x8) Uint16x8
   380  
   381  // AddPairs horizontally adds adjacent pairs of elements.
   382  // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...].
   383  //
   384  // Asm: VPHADDD, CPU Feature: AVX
   385  func (x Uint32x4) AddPairs(y Uint32x4) Uint32x4
   386  
   387  /* AddPairsGrouped */
   388  
   389  // AddPairsGrouped horizontally adds adjacent pairs of elements.
   390  // With each 128-bit as a group:
   391  // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...].
   392  //
   393  // Asm: VHADDPS, CPU Feature: AVX
   394  func (x Float32x8) AddPairsGrouped(y Float32x8) Float32x8
   395  
   396  // AddPairsGrouped horizontally adds adjacent pairs of elements.
   397  // With each 128-bit as a group:
   398  // for x = [x0, x1] and y = [y0, y1], the result is [x0+x1, y0+y1].
   399  //
   400  // Asm: VHADDPD, CPU Feature: AVX
   401  func (x Float64x4) AddPairsGrouped(y Float64x4) Float64x4
   402  
   403  // AddPairsGrouped horizontally adds adjacent pairs of elements.
   404  // With each 128-bit as a group:
   405  // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...].
   406  //
   407  // Asm: VPHADDW, CPU Feature: AVX2
   408  func (x Int16x16) AddPairsGrouped(y Int16x16) Int16x16
   409  
   410  // AddPairsGrouped horizontally adds adjacent pairs of elements.
   411  // With each 128-bit as a group:
   412  // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...].
   413  //
   414  // Asm: VPHADDD, CPU Feature: AVX2
   415  func (x Int32x8) AddPairsGrouped(y Int32x8) Int32x8
   416  
   417  // AddPairsGrouped horizontally adds adjacent pairs of elements.
   418  // With each 128-bit as a group:
   419  // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...].
   420  //
   421  // Asm: VPHADDW, CPU Feature: AVX2
   422  func (x Uint16x16) AddPairsGrouped(y Uint16x16) Uint16x16
   423  
   424  // AddPairsGrouped horizontally adds adjacent pairs of elements.
   425  // With each 128-bit as a group:
   426  // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...].
   427  //
   428  // Asm: VPHADDD, CPU Feature: AVX2
   429  func (x Uint32x8) AddPairsGrouped(y Uint32x8) Uint32x8
   430  
   431  /* AddPairsSaturated */
   432  
   433  // AddPairsSaturated horizontally adds adjacent pairs of elements with saturation.
   434  // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...].
   435  //
   436  // Asm: VPHADDSW, CPU Feature: AVX
   437  func (x Int16x8) AddPairsSaturated(y Int16x8) Int16x8
   438  
   439  /* AddPairsSaturatedGrouped */
   440  
   441  // AddPairsSaturatedGrouped horizontally adds adjacent pairs of elements with saturation.
   442  // With each 128-bit as a group:
   443  // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...].
   444  //
   445  // Asm: VPHADDSW, CPU Feature: AVX2
   446  func (x Int16x16) AddPairsSaturatedGrouped(y Int16x16) Int16x16
   447  
   448  /* AddSaturated */
   449  
   450  // AddSaturated adds corresponding elements of two vectors with saturation.
   451  //
   452  // Asm: VPADDSB, CPU Feature: AVX
   453  func (x Int8x16) AddSaturated(y Int8x16) Int8x16
   454  
   455  // AddSaturated adds corresponding elements of two vectors with saturation.
   456  //
   457  // Asm: VPADDSB, CPU Feature: AVX2
   458  func (x Int8x32) AddSaturated(y Int8x32) Int8x32
   459  
   460  // AddSaturated adds corresponding elements of two vectors with saturation.
   461  //
   462  // Asm: VPADDSB, CPU Feature: AVX512
   463  func (x Int8x64) AddSaturated(y Int8x64) Int8x64
   464  
   465  // AddSaturated adds corresponding elements of two vectors with saturation.
   466  //
   467  // Asm: VPADDSW, CPU Feature: AVX
   468  func (x Int16x8) AddSaturated(y Int16x8) Int16x8
   469  
   470  // AddSaturated adds corresponding elements of two vectors with saturation.
   471  //
   472  // Asm: VPADDSW, CPU Feature: AVX2
   473  func (x Int16x16) AddSaturated(y Int16x16) Int16x16
   474  
   475  // AddSaturated adds corresponding elements of two vectors with saturation.
   476  //
   477  // Asm: VPADDSW, CPU Feature: AVX512
   478  func (x Int16x32) AddSaturated(y Int16x32) Int16x32
   479  
   480  // AddSaturated adds corresponding elements of two vectors with saturation.
   481  //
   482  // Asm: VPADDUSB, CPU Feature: AVX
   483  func (x Uint8x16) AddSaturated(y Uint8x16) Uint8x16
   484  
   485  // AddSaturated adds corresponding elements of two vectors with saturation.
   486  //
   487  // Asm: VPADDUSB, CPU Feature: AVX2
   488  func (x Uint8x32) AddSaturated(y Uint8x32) Uint8x32
   489  
   490  // AddSaturated adds corresponding elements of two vectors with saturation.
   491  //
   492  // Asm: VPADDUSB, CPU Feature: AVX512
   493  func (x Uint8x64) AddSaturated(y Uint8x64) Uint8x64
   494  
   495  // AddSaturated adds corresponding elements of two vectors with saturation.
   496  //
   497  // Asm: VPADDUSW, CPU Feature: AVX
   498  func (x Uint16x8) AddSaturated(y Uint16x8) Uint16x8
   499  
   500  // AddSaturated adds corresponding elements of two vectors with saturation.
   501  //
   502  // Asm: VPADDUSW, CPU Feature: AVX2
   503  func (x Uint16x16) AddSaturated(y Uint16x16) Uint16x16
   504  
   505  // AddSaturated adds corresponding elements of two vectors with saturation.
   506  //
   507  // Asm: VPADDUSW, CPU Feature: AVX512
   508  func (x Uint16x32) AddSaturated(y Uint16x32) Uint16x32
   509  
   510  /* AddSub */
   511  
   512  // AddSub subtracts even elements and adds odd elements of two vectors.
   513  //
   514  // Asm: VADDSUBPS, CPU Feature: AVX
   515  func (x Float32x4) AddSub(y Float32x4) Float32x4
   516  
   517  // AddSub subtracts even elements and adds odd elements of two vectors.
   518  //
   519  // Asm: VADDSUBPS, CPU Feature: AVX
   520  func (x Float32x8) AddSub(y Float32x8) Float32x8
   521  
   522  // AddSub subtracts even elements and adds odd elements of two vectors.
   523  //
   524  // Asm: VADDSUBPD, CPU Feature: AVX
   525  func (x Float64x2) AddSub(y Float64x2) Float64x2
   526  
   527  // AddSub subtracts even elements and adds odd elements of two vectors.
   528  //
   529  // Asm: VADDSUBPD, CPU Feature: AVX
   530  func (x Float64x4) AddSub(y Float64x4) Float64x4
   531  
   532  /* And */
   533  
   534  // And performs a bitwise AND operation between two vectors.
   535  //
   536  // Asm: VPAND, CPU Feature: AVX
   537  func (x Int8x16) And(y Int8x16) Int8x16
   538  
   539  // And performs a bitwise AND operation between two vectors.
   540  //
   541  // Asm: VPAND, CPU Feature: AVX2
   542  func (x Int8x32) And(y Int8x32) Int8x32
   543  
   544  // And performs a bitwise AND operation between two vectors.
   545  //
   546  // Asm: VPANDD, CPU Feature: AVX512
   547  func (x Int8x64) And(y Int8x64) Int8x64
   548  
   549  // And performs a bitwise AND operation between two vectors.
   550  //
   551  // Asm: VPAND, CPU Feature: AVX
   552  func (x Int16x8) And(y Int16x8) Int16x8
   553  
   554  // And performs a bitwise AND operation between two vectors.
   555  //
   556  // Asm: VPAND, CPU Feature: AVX2
   557  func (x Int16x16) And(y Int16x16) Int16x16
   558  
   559  // And performs a bitwise AND operation between two vectors.
   560  //
   561  // Asm: VPANDD, CPU Feature: AVX512
   562  func (x Int16x32) And(y Int16x32) Int16x32
   563  
   564  // And performs a bitwise AND operation between two vectors.
   565  //
   566  // Asm: VPAND, CPU Feature: AVX
   567  func (x Int32x4) And(y Int32x4) Int32x4
   568  
   569  // And performs a bitwise AND operation between two vectors.
   570  //
   571  // Asm: VPAND, CPU Feature: AVX2
   572  func (x Int32x8) And(y Int32x8) Int32x8
   573  
   574  // And performs a bitwise AND operation between two vectors.
   575  //
   576  // Asm: VPANDD, CPU Feature: AVX512
   577  func (x Int32x16) And(y Int32x16) Int32x16
   578  
   579  // And performs a bitwise AND operation between two vectors.
   580  //
   581  // Asm: VPAND, CPU Feature: AVX
   582  func (x Int64x2) And(y Int64x2) Int64x2
   583  
   584  // And performs a bitwise AND operation between two vectors.
   585  //
   586  // Asm: VPAND, CPU Feature: AVX2
   587  func (x Int64x4) And(y Int64x4) Int64x4
   588  
   589  // And performs a bitwise AND operation between two vectors.
   590  //
   591  // Asm: VPANDQ, CPU Feature: AVX512
   592  func (x Int64x8) And(y Int64x8) Int64x8
   593  
   594  // And performs a bitwise AND operation between two vectors.
   595  //
   596  // Asm: VPAND, CPU Feature: AVX
   597  func (x Uint8x16) And(y Uint8x16) Uint8x16
   598  
   599  // And performs a bitwise AND operation between two vectors.
   600  //
   601  // Asm: VPAND, CPU Feature: AVX2
   602  func (x Uint8x32) And(y Uint8x32) Uint8x32
   603  
   604  // And performs a bitwise AND operation between two vectors.
   605  //
   606  // Asm: VPANDD, CPU Feature: AVX512
   607  func (x Uint8x64) And(y Uint8x64) Uint8x64
   608  
   609  // And performs a bitwise AND operation between two vectors.
   610  //
   611  // Asm: VPAND, CPU Feature: AVX
   612  func (x Uint16x8) And(y Uint16x8) Uint16x8
   613  
   614  // And performs a bitwise AND operation between two vectors.
   615  //
   616  // Asm: VPAND, CPU Feature: AVX2
   617  func (x Uint16x16) And(y Uint16x16) Uint16x16
   618  
   619  // And performs a bitwise AND operation between two vectors.
   620  //
   621  // Asm: VPANDD, CPU Feature: AVX512
   622  func (x Uint16x32) And(y Uint16x32) Uint16x32
   623  
   624  // And performs a bitwise AND operation between two vectors.
   625  //
   626  // Asm: VPAND, CPU Feature: AVX
   627  func (x Uint32x4) And(y Uint32x4) Uint32x4
   628  
   629  // And performs a bitwise AND operation between two vectors.
   630  //
   631  // Asm: VPAND, CPU Feature: AVX2
   632  func (x Uint32x8) And(y Uint32x8) Uint32x8
   633  
   634  // And performs a bitwise AND operation between two vectors.
   635  //
   636  // Asm: VPANDD, CPU Feature: AVX512
   637  func (x Uint32x16) And(y Uint32x16) Uint32x16
   638  
   639  // And performs a bitwise AND operation between two vectors.
   640  //
   641  // Asm: VPAND, CPU Feature: AVX
   642  func (x Uint64x2) And(y Uint64x2) Uint64x2
   643  
   644  // And performs a bitwise AND operation between two vectors.
   645  //
   646  // Asm: VPAND, CPU Feature: AVX2
   647  func (x Uint64x4) And(y Uint64x4) Uint64x4
   648  
   649  // And performs a bitwise AND operation between two vectors.
   650  //
   651  // Asm: VPANDQ, CPU Feature: AVX512
   652  func (x Uint64x8) And(y Uint64x8) Uint64x8
   653  
   654  /* AndNot */
   655  
   656  // AndNot performs a bitwise x &^ y.
   657  //
   658  // Asm: VPANDN, CPU Feature: AVX
   659  func (x Int8x16) AndNot(y Int8x16) Int8x16
   660  
   661  // AndNot performs a bitwise x &^ y.
   662  //
   663  // Asm: VPANDN, CPU Feature: AVX2
   664  func (x Int8x32) AndNot(y Int8x32) Int8x32
   665  
   666  // AndNot performs a bitwise x &^ y.
   667  //
   668  // Asm: VPANDND, CPU Feature: AVX512
   669  func (x Int8x64) AndNot(y Int8x64) Int8x64
   670  
   671  // AndNot performs a bitwise x &^ y.
   672  //
   673  // Asm: VPANDN, CPU Feature: AVX
   674  func (x Int16x8) AndNot(y Int16x8) Int16x8
   675  
   676  // AndNot performs a bitwise x &^ y.
   677  //
   678  // Asm: VPANDN, CPU Feature: AVX2
   679  func (x Int16x16) AndNot(y Int16x16) Int16x16
   680  
   681  // AndNot performs a bitwise x &^ y.
   682  //
   683  // Asm: VPANDND, CPU Feature: AVX512
   684  func (x Int16x32) AndNot(y Int16x32) Int16x32
   685  
   686  // AndNot performs a bitwise x &^ y.
   687  //
   688  // Asm: VPANDN, CPU Feature: AVX
   689  func (x Int32x4) AndNot(y Int32x4) Int32x4
   690  
   691  // AndNot performs a bitwise x &^ y.
   692  //
   693  // Asm: VPANDN, CPU Feature: AVX2
   694  func (x Int32x8) AndNot(y Int32x8) Int32x8
   695  
   696  // AndNot performs a bitwise x &^ y.
   697  //
   698  // Asm: VPANDND, CPU Feature: AVX512
   699  func (x Int32x16) AndNot(y Int32x16) Int32x16
   700  
   701  // AndNot performs a bitwise x &^ y.
   702  //
   703  // Asm: VPANDN, CPU Feature: AVX
   704  func (x Int64x2) AndNot(y Int64x2) Int64x2
   705  
   706  // AndNot performs a bitwise x &^ y.
   707  //
   708  // Asm: VPANDN, CPU Feature: AVX2
   709  func (x Int64x4) AndNot(y Int64x4) Int64x4
   710  
   711  // AndNot performs a bitwise x &^ y.
   712  //
   713  // Asm: VPANDNQ, CPU Feature: AVX512
   714  func (x Int64x8) AndNot(y Int64x8) Int64x8
   715  
   716  // AndNot performs a bitwise x &^ y.
   717  //
   718  // Asm: VPANDN, CPU Feature: AVX
   719  func (x Uint8x16) AndNot(y Uint8x16) Uint8x16
   720  
   721  // AndNot performs a bitwise x &^ y.
   722  //
   723  // Asm: VPANDN, CPU Feature: AVX2
   724  func (x Uint8x32) AndNot(y Uint8x32) Uint8x32
   725  
   726  // AndNot performs a bitwise x &^ y.
   727  //
   728  // Asm: VPANDND, CPU Feature: AVX512
   729  func (x Uint8x64) AndNot(y Uint8x64) Uint8x64
   730  
   731  // AndNot performs a bitwise x &^ y.
   732  //
   733  // Asm: VPANDN, CPU Feature: AVX
   734  func (x Uint16x8) AndNot(y Uint16x8) Uint16x8
   735  
   736  // AndNot performs a bitwise x &^ y.
   737  //
   738  // Asm: VPANDN, CPU Feature: AVX2
   739  func (x Uint16x16) AndNot(y Uint16x16) Uint16x16
   740  
   741  // AndNot performs a bitwise x &^ y.
   742  //
   743  // Asm: VPANDND, CPU Feature: AVX512
   744  func (x Uint16x32) AndNot(y Uint16x32) Uint16x32
   745  
   746  // AndNot performs a bitwise x &^ y.
   747  //
   748  // Asm: VPANDN, CPU Feature: AVX
   749  func (x Uint32x4) AndNot(y Uint32x4) Uint32x4
   750  
   751  // AndNot performs a bitwise x &^ y.
   752  //
   753  // Asm: VPANDN, CPU Feature: AVX2
   754  func (x Uint32x8) AndNot(y Uint32x8) Uint32x8
   755  
   756  // AndNot performs a bitwise x &^ y.
   757  //
   758  // Asm: VPANDND, CPU Feature: AVX512
   759  func (x Uint32x16) AndNot(y Uint32x16) Uint32x16
   760  
   761  // AndNot performs a bitwise x &^ y.
   762  //
   763  // Asm: VPANDN, CPU Feature: AVX
   764  func (x Uint64x2) AndNot(y Uint64x2) Uint64x2
   765  
   766  // AndNot performs a bitwise x &^ y.
   767  //
   768  // Asm: VPANDN, CPU Feature: AVX2
   769  func (x Uint64x4) AndNot(y Uint64x4) Uint64x4
   770  
   771  // AndNot performs a bitwise x &^ y.
   772  //
   773  // Asm: VPANDNQ, CPU Feature: AVX512
   774  func (x Uint64x8) AndNot(y Uint64x8) Uint64x8
   775  
   776  /* Average */
   777  
   778  // Average computes the rounded average of corresponding elements.
   779  //
   780  // Asm: VPAVGB, CPU Feature: AVX
   781  func (x Uint8x16) Average(y Uint8x16) Uint8x16
   782  
   783  // Average computes the rounded average of corresponding elements.
   784  //
   785  // Asm: VPAVGB, CPU Feature: AVX2
   786  func (x Uint8x32) Average(y Uint8x32) Uint8x32
   787  
   788  // Average computes the rounded average of corresponding elements.
   789  //
   790  // Asm: VPAVGB, CPU Feature: AVX512
   791  func (x Uint8x64) Average(y Uint8x64) Uint8x64
   792  
   793  // Average computes the rounded average of corresponding elements.
   794  //
   795  // Asm: VPAVGW, CPU Feature: AVX
   796  func (x Uint16x8) Average(y Uint16x8) Uint16x8
   797  
   798  // Average computes the rounded average of corresponding elements.
   799  //
   800  // Asm: VPAVGW, CPU Feature: AVX2
   801  func (x Uint16x16) Average(y Uint16x16) Uint16x16
   802  
   803  // Average computes the rounded average of corresponding elements.
   804  //
   805  // Asm: VPAVGW, CPU Feature: AVX512
   806  func (x Uint16x32) Average(y Uint16x32) Uint16x32
   807  
   808  /* Broadcast1To2 */
   809  
   810  // Broadcast1To2 copies the lowest element of its input to all 2 elements of
   811  // the output vector.
   812  //
   813  // Asm: VPBROADCASTQ, CPU Feature: AVX2
   814  func (x Float64x2) Broadcast1To2() Float64x2
   815  
   816  // Broadcast1To2 copies the lowest element of its input to all 2 elements of
   817  // the output vector.
   818  //
   819  // Asm: VPBROADCASTQ, CPU Feature: AVX2
   820  func (x Int64x2) Broadcast1To2() Int64x2
   821  
   822  // Broadcast1To2 copies the lowest element of its input to all 2 elements of
   823  // the output vector.
   824  //
   825  // Asm: VPBROADCASTQ, CPU Feature: AVX2
   826  func (x Uint64x2) Broadcast1To2() Uint64x2
   827  
   828  /* Broadcast1To4 */
   829  
   830  // Broadcast1To4 copies the lowest element of its input to all 4 elements of
   831  // the output vector.
   832  //
   833  // Asm: VBROADCASTSS, CPU Feature: AVX2
   834  func (x Float32x4) Broadcast1To4() Float32x4
   835  
   836  // Broadcast1To4 copies the lowest element of its input to all 4 elements of
   837  // the output vector.
   838  //
   839  // Asm: VBROADCASTSD, CPU Feature: AVX2
   840  func (x Float64x2) Broadcast1To4() Float64x4
   841  
   842  // Broadcast1To4 copies the lowest element of its input to all 4 elements of
   843  // the output vector.
   844  //
   845  // Asm: VPBROADCASTD, CPU Feature: AVX2
   846  func (x Int32x4) Broadcast1To4() Int32x4
   847  
   848  // Broadcast1To4 copies the lowest element of its input to all 4 elements of
   849  // the output vector.
   850  //
   851  // Asm: VPBROADCASTQ, CPU Feature: AVX2
   852  func (x Int64x2) Broadcast1To4() Int64x4
   853  
   854  // Broadcast1To4 copies the lowest element of its input to all 4 elements of
   855  // the output vector.
   856  //
   857  // Asm: VPBROADCASTD, CPU Feature: AVX2
   858  func (x Uint32x4) Broadcast1To4() Uint32x4
   859  
   860  // Broadcast1To4 copies the lowest element of its input to all 4 elements of
   861  // the output vector.
   862  //
   863  // Asm: VPBROADCASTQ, CPU Feature: AVX2
   864  func (x Uint64x2) Broadcast1To4() Uint64x4
   865  
   866  /* Broadcast1To8 */
   867  
   868  // Broadcast1To8 copies the lowest element of its input to all 8 elements of
   869  // the output vector.
   870  //
   871  // Asm: VBROADCASTSS, CPU Feature: AVX2
   872  func (x Float32x4) Broadcast1To8() Float32x8
   873  
   874  // Broadcast1To8 copies the lowest element of its input to all 8 elements of
   875  // the output vector.
   876  //
   877  // Asm: VBROADCASTSD, CPU Feature: AVX512
   878  func (x Float64x2) Broadcast1To8() Float64x8
   879  
   880  // Broadcast1To8 copies the lowest element of its input to all 8 elements of
   881  // the output vector.
   882  //
   883  // Asm: VPBROADCASTW, CPU Feature: AVX2
   884  func (x Int16x8) Broadcast1To8() Int16x8
   885  
   886  // Broadcast1To8 copies the lowest element of its input to all 8 elements of
   887  // the output vector.
   888  //
   889  // Asm: VPBROADCASTD, CPU Feature: AVX2
   890  func (x Int32x4) Broadcast1To8() Int32x8
   891  
   892  // Broadcast1To8 copies the lowest element of its input to all 8 elements of
   893  // the output vector.
   894  //
   895  // Asm: VPBROADCASTQ, CPU Feature: AVX512
   896  func (x Int64x2) Broadcast1To8() Int64x8
   897  
   898  // Broadcast1To8 copies the lowest element of its input to all 8 elements of
   899  // the output vector.
   900  //
   901  // Asm: VPBROADCASTW, CPU Feature: AVX2
   902  func (x Uint16x8) Broadcast1To8() Uint16x8
   903  
   904  // Broadcast1To8 copies the lowest element of its input to all 8 elements of
   905  // the output vector.
   906  //
   907  // Asm: VPBROADCASTD, CPU Feature: AVX2
   908  func (x Uint32x4) Broadcast1To8() Uint32x8
   909  
   910  // Broadcast1To8 copies the lowest element of its input to all 8 elements of
   911  // the output vector.
   912  //
   913  // Asm: VPBROADCASTQ, CPU Feature: AVX512
   914  func (x Uint64x2) Broadcast1To8() Uint64x8
   915  
   916  /* Broadcast1To16 */
   917  
   918  // Broadcast1To16 copies the lowest element of its input to all 16 elements of
   919  // the output vector.
   920  //
   921  // Asm: VBROADCASTSS, CPU Feature: AVX512
   922  func (x Float32x4) Broadcast1To16() Float32x16
   923  
   924  // Broadcast1To16 copies the lowest element of its input to all 16 elements of
   925  // the output vector.
   926  //
   927  // Asm: VPBROADCASTB, CPU Feature: AVX2
   928  func (x Int8x16) Broadcast1To16() Int8x16
   929  
   930  // Broadcast1To16 copies the lowest element of its input to all 16 elements of
   931  // the output vector.
   932  //
   933  // Asm: VPBROADCASTW, CPU Feature: AVX2
   934  func (x Int16x8) Broadcast1To16() Int16x16
   935  
   936  // Broadcast1To16 copies the lowest element of its input to all 16 elements of
   937  // the output vector.
   938  //
   939  // Asm: VPBROADCASTD, CPU Feature: AVX512
   940  func (x Int32x4) Broadcast1To16() Int32x16
   941  
   942  // Broadcast1To16 copies the lowest element of its input to all 16 elements of
   943  // the output vector.
   944  //
   945  // Asm: VPBROADCASTB, CPU Feature: AVX2
   946  func (x Uint8x16) Broadcast1To16() Uint8x16
   947  
   948  // Broadcast1To16 copies the lowest element of its input to all 16 elements of
   949  // the output vector.
   950  //
   951  // Asm: VPBROADCASTW, CPU Feature: AVX2
   952  func (x Uint16x8) Broadcast1To16() Uint16x16
   953  
   954  // Broadcast1To16 copies the lowest element of its input to all 16 elements of
   955  // the output vector.
   956  //
   957  // Asm: VPBROADCASTD, CPU Feature: AVX512
   958  func (x Uint32x4) Broadcast1To16() Uint32x16
   959  
   960  /* Broadcast1To32 */
   961  
   962  // Broadcast1To32 copies the lowest element of its input to all 32 elements of
   963  // the output vector.
   964  //
   965  // Asm: VPBROADCASTB, CPU Feature: AVX2
   966  func (x Int8x16) Broadcast1To32() Int8x32
   967  
   968  // Broadcast1To32 copies the lowest element of its input to all 32 elements of
   969  // the output vector.
   970  //
   971  // Asm: VPBROADCASTW, CPU Feature: AVX512
   972  func (x Int16x8) Broadcast1To32() Int16x32
   973  
   974  // Broadcast1To32 copies the lowest element of its input to all 32 elements of
   975  // the output vector.
   976  //
   977  // Asm: VPBROADCASTB, CPU Feature: AVX2
   978  func (x Uint8x16) Broadcast1To32() Uint8x32
   979  
   980  // Broadcast1To32 copies the lowest element of its input to all 32 elements of
   981  // the output vector.
   982  //
   983  // Asm: VPBROADCASTW, CPU Feature: AVX512
   984  func (x Uint16x8) Broadcast1To32() Uint16x32
   985  
   986  /* Broadcast1To64 */
   987  
   988  // Broadcast1To64 copies the lowest element of its input to all 64 elements of
   989  // the output vector.
   990  //
   991  // Asm: VPBROADCASTB, CPU Feature: AVX512
   992  func (x Int8x16) Broadcast1To64() Int8x64
   993  
   994  // Broadcast1To64 copies the lowest element of its input to all 64 elements of
   995  // the output vector.
   996  //
   997  // Asm: VPBROADCASTB, CPU Feature: AVX512
   998  func (x Uint8x16) Broadcast1To64() Uint8x64
   999  
  1000  /* Ceil */
  1001  
  1002  // Ceil rounds elements up to the nearest integer.
  1003  //
  1004  // Asm: VROUNDPS, CPU Feature: AVX
  1005  func (x Float32x4) Ceil() Float32x4
  1006  
  1007  // Ceil rounds elements up to the nearest integer.
  1008  //
  1009  // Asm: VROUNDPS, CPU Feature: AVX
  1010  func (x Float32x8) Ceil() Float32x8
  1011  
  1012  // Ceil rounds elements up to the nearest integer.
  1013  //
  1014  // Asm: VROUNDPD, CPU Feature: AVX
  1015  func (x Float64x2) Ceil() Float64x2
  1016  
  1017  // Ceil rounds elements up to the nearest integer.
  1018  //
  1019  // Asm: VROUNDPD, CPU Feature: AVX
  1020  func (x Float64x4) Ceil() Float64x4
  1021  
  1022  /* CeilScaled */
  1023  
  1024  // CeilScaled rounds elements up with specified precision.
  1025  //
  1026  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  1027  //
  1028  // Asm: VRNDSCALEPS, CPU Feature: AVX512
  1029  func (x Float32x4) CeilScaled(prec uint8) Float32x4
  1030  
  1031  // CeilScaled rounds elements up with specified precision.
  1032  //
  1033  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  1034  //
  1035  // Asm: VRNDSCALEPS, CPU Feature: AVX512
  1036  func (x Float32x8) CeilScaled(prec uint8) Float32x8
  1037  
  1038  // CeilScaled rounds elements up with specified precision.
  1039  //
  1040  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  1041  //
  1042  // Asm: VRNDSCALEPS, CPU Feature: AVX512
  1043  func (x Float32x16) CeilScaled(prec uint8) Float32x16
  1044  
  1045  // CeilScaled rounds elements up with specified precision.
  1046  //
  1047  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  1048  //
  1049  // Asm: VRNDSCALEPD, CPU Feature: AVX512
  1050  func (x Float64x2) CeilScaled(prec uint8) Float64x2
  1051  
  1052  // CeilScaled rounds elements up with specified precision.
  1053  //
  1054  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  1055  //
  1056  // Asm: VRNDSCALEPD, CPU Feature: AVX512
  1057  func (x Float64x4) CeilScaled(prec uint8) Float64x4
  1058  
  1059  // CeilScaled rounds elements up with specified precision.
  1060  //
  1061  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  1062  //
  1063  // Asm: VRNDSCALEPD, CPU Feature: AVX512
  1064  func (x Float64x8) CeilScaled(prec uint8) Float64x8
  1065  
  1066  /* CeilScaledResidue */
  1067  
  1068  // CeilScaledResidue computes the difference after ceiling with specified precision.
  1069  //
  1070  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  1071  //
  1072  // Asm: VREDUCEPS, CPU Feature: AVX512
  1073  func (x Float32x4) CeilScaledResidue(prec uint8) Float32x4
  1074  
  1075  // CeilScaledResidue computes the difference after ceiling with specified precision.
  1076  //
  1077  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  1078  //
  1079  // Asm: VREDUCEPS, CPU Feature: AVX512
  1080  func (x Float32x8) CeilScaledResidue(prec uint8) Float32x8
  1081  
  1082  // CeilScaledResidue computes the difference after ceiling with specified precision.
  1083  //
  1084  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  1085  //
  1086  // Asm: VREDUCEPS, CPU Feature: AVX512
  1087  func (x Float32x16) CeilScaledResidue(prec uint8) Float32x16
  1088  
  1089  // CeilScaledResidue computes the difference after ceiling with specified precision.
  1090  //
  1091  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  1092  //
  1093  // Asm: VREDUCEPD, CPU Feature: AVX512
  1094  func (x Float64x2) CeilScaledResidue(prec uint8) Float64x2
  1095  
  1096  // CeilScaledResidue computes the difference after ceiling with specified precision.
  1097  //
  1098  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  1099  //
  1100  // Asm: VREDUCEPD, CPU Feature: AVX512
  1101  func (x Float64x4) CeilScaledResidue(prec uint8) Float64x4
  1102  
  1103  // CeilScaledResidue computes the difference after ceiling with specified precision.
  1104  //
  1105  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  1106  //
  1107  // Asm: VREDUCEPD, CPU Feature: AVX512
  1108  func (x Float64x8) CeilScaledResidue(prec uint8) Float64x8
  1109  
  1110  /* Compress */
  1111  
  1112  // Compress performs a compression on vector x using mask by
  1113  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1114  //
  1115  // Asm: VCOMPRESSPS, CPU Feature: AVX512
  1116  func (x Float32x4) Compress(mask Mask32x4) Float32x4
  1117  
  1118  // Compress performs a compression on vector x using mask by
  1119  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1120  //
  1121  // Asm: VCOMPRESSPS, CPU Feature: AVX512
  1122  func (x Float32x8) Compress(mask Mask32x8) Float32x8
  1123  
  1124  // Compress performs a compression on vector x using mask by
  1125  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1126  //
  1127  // Asm: VCOMPRESSPS, CPU Feature: AVX512
  1128  func (x Float32x16) Compress(mask Mask32x16) Float32x16
  1129  
  1130  // Compress performs a compression on vector x using mask by
  1131  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1132  //
  1133  // Asm: VCOMPRESSPD, CPU Feature: AVX512
  1134  func (x Float64x2) Compress(mask Mask64x2) Float64x2
  1135  
  1136  // Compress performs a compression on vector x using mask by
  1137  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1138  //
  1139  // Asm: VCOMPRESSPD, CPU Feature: AVX512
  1140  func (x Float64x4) Compress(mask Mask64x4) Float64x4
  1141  
  1142  // Compress performs a compression on vector x using mask by
  1143  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1144  //
  1145  // Asm: VCOMPRESSPD, CPU Feature: AVX512
  1146  func (x Float64x8) Compress(mask Mask64x8) Float64x8
  1147  
  1148  // Compress performs a compression on vector x using mask by
  1149  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1150  //
  1151  // Asm: VPCOMPRESSB, CPU Feature: AVX512VBMI2
  1152  func (x Int8x16) Compress(mask Mask8x16) Int8x16
  1153  
  1154  // Compress performs a compression on vector x using mask by
  1155  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1156  //
  1157  // Asm: VPCOMPRESSB, CPU Feature: AVX512VBMI2
  1158  func (x Int8x32) Compress(mask Mask8x32) Int8x32
  1159  
  1160  // Compress performs a compression on vector x using mask by
  1161  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1162  //
  1163  // Asm: VPCOMPRESSB, CPU Feature: AVX512VBMI2
  1164  func (x Int8x64) Compress(mask Mask8x64) Int8x64
  1165  
  1166  // Compress performs a compression on vector x using mask by
  1167  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1168  //
  1169  // Asm: VPCOMPRESSW, CPU Feature: AVX512VBMI2
  1170  func (x Int16x8) Compress(mask Mask16x8) Int16x8
  1171  
  1172  // Compress performs a compression on vector x using mask by
  1173  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1174  //
  1175  // Asm: VPCOMPRESSW, CPU Feature: AVX512VBMI2
  1176  func (x Int16x16) Compress(mask Mask16x16) Int16x16
  1177  
  1178  // Compress performs a compression on vector x using mask by
  1179  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1180  //
  1181  // Asm: VPCOMPRESSW, CPU Feature: AVX512VBMI2
  1182  func (x Int16x32) Compress(mask Mask16x32) Int16x32
  1183  
  1184  // Compress performs a compression on vector x using mask by
  1185  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1186  //
  1187  // Asm: VPCOMPRESSD, CPU Feature: AVX512
  1188  func (x Int32x4) Compress(mask Mask32x4) Int32x4
  1189  
  1190  // Compress performs a compression on vector x using mask by
  1191  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1192  //
  1193  // Asm: VPCOMPRESSD, CPU Feature: AVX512
  1194  func (x Int32x8) Compress(mask Mask32x8) Int32x8
  1195  
  1196  // Compress performs a compression on vector x using mask by
  1197  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1198  //
  1199  // Asm: VPCOMPRESSD, CPU Feature: AVX512
  1200  func (x Int32x16) Compress(mask Mask32x16) Int32x16
  1201  
  1202  // Compress performs a compression on vector x using mask by
  1203  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1204  //
  1205  // Asm: VPCOMPRESSQ, CPU Feature: AVX512
  1206  func (x Int64x2) Compress(mask Mask64x2) Int64x2
  1207  
  1208  // Compress performs a compression on vector x using mask by
  1209  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1210  //
  1211  // Asm: VPCOMPRESSQ, CPU Feature: AVX512
  1212  func (x Int64x4) Compress(mask Mask64x4) Int64x4
  1213  
  1214  // Compress performs a compression on vector x using mask by
  1215  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1216  //
  1217  // Asm: VPCOMPRESSQ, CPU Feature: AVX512
  1218  func (x Int64x8) Compress(mask Mask64x8) Int64x8
  1219  
  1220  // Compress performs a compression on vector x using mask by
  1221  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1222  //
  1223  // Asm: VPCOMPRESSB, CPU Feature: AVX512VBMI2
  1224  func (x Uint8x16) Compress(mask Mask8x16) Uint8x16
  1225  
  1226  // Compress performs a compression on vector x using mask by
  1227  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1228  //
  1229  // Asm: VPCOMPRESSB, CPU Feature: AVX512VBMI2
  1230  func (x Uint8x32) Compress(mask Mask8x32) Uint8x32
  1231  
  1232  // Compress performs a compression on vector x using mask by
  1233  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1234  //
  1235  // Asm: VPCOMPRESSB, CPU Feature: AVX512VBMI2
  1236  func (x Uint8x64) Compress(mask Mask8x64) Uint8x64
  1237  
  1238  // Compress performs a compression on vector x using mask by
  1239  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1240  //
  1241  // Asm: VPCOMPRESSW, CPU Feature: AVX512VBMI2
  1242  func (x Uint16x8) Compress(mask Mask16x8) Uint16x8
  1243  
  1244  // Compress performs a compression on vector x using mask by
  1245  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1246  //
  1247  // Asm: VPCOMPRESSW, CPU Feature: AVX512VBMI2
  1248  func (x Uint16x16) Compress(mask Mask16x16) Uint16x16
  1249  
  1250  // Compress performs a compression on vector x using mask by
  1251  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1252  //
  1253  // Asm: VPCOMPRESSW, CPU Feature: AVX512VBMI2
  1254  func (x Uint16x32) Compress(mask Mask16x32) Uint16x32
  1255  
  1256  // Compress performs a compression on vector x using mask by
  1257  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1258  //
  1259  // Asm: VPCOMPRESSD, CPU Feature: AVX512
  1260  func (x Uint32x4) Compress(mask Mask32x4) Uint32x4
  1261  
  1262  // Compress performs a compression on vector x using mask by
  1263  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1264  //
  1265  // Asm: VPCOMPRESSD, CPU Feature: AVX512
  1266  func (x Uint32x8) Compress(mask Mask32x8) Uint32x8
  1267  
  1268  // Compress performs a compression on vector x using mask by
  1269  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1270  //
  1271  // Asm: VPCOMPRESSD, CPU Feature: AVX512
  1272  func (x Uint32x16) Compress(mask Mask32x16) Uint32x16
  1273  
  1274  // Compress performs a compression on vector x using mask by
  1275  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1276  //
  1277  // Asm: VPCOMPRESSQ, CPU Feature: AVX512
  1278  func (x Uint64x2) Compress(mask Mask64x2) Uint64x2
  1279  
  1280  // Compress performs a compression on vector x using mask by
  1281  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1282  //
  1283  // Asm: VPCOMPRESSQ, CPU Feature: AVX512
  1284  func (x Uint64x4) Compress(mask Mask64x4) Uint64x4
  1285  
  1286  // Compress performs a compression on vector x using mask by
  1287  // selecting elements as indicated by mask, and pack them to lower indexed elements.
  1288  //
  1289  // Asm: VPCOMPRESSQ, CPU Feature: AVX512
  1290  func (x Uint64x8) Compress(mask Mask64x8) Uint64x8
  1291  
  1292  /* ConcatPermute */
  1293  
  1294  // ConcatPermute performs a full permutation of vector x, y using indices:
  1295  //
  1296  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1297  //
  1298  // where xy is the concatenation of x (lower half) and y (upper half).
  1299  // Only the needed bits to represent xy's index are used in indices' elements.
  1300  //
  1301  // Asm: VPERMI2B, CPU Feature: AVX512VBMI
  1302  func (x Int8x16) ConcatPermute(y Int8x16, indices Uint8x16) Int8x16
  1303  
  1304  // ConcatPermute performs a full permutation of vector x, y using indices:
  1305  //
  1306  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1307  //
  1308  // where xy is the concatenation of x (lower half) and y (upper half).
  1309  // Only the needed bits to represent xy's index are used in indices' elements.
  1310  //
  1311  // Asm: VPERMI2B, CPU Feature: AVX512VBMI
  1312  func (x Uint8x16) ConcatPermute(y Uint8x16, indices Uint8x16) Uint8x16
  1313  
  1314  // ConcatPermute performs a full permutation of vector x, y using indices:
  1315  //
  1316  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1317  //
  1318  // where xy is the concatenation of x (lower half) and y (upper half).
  1319  // Only the needed bits to represent xy's index are used in indices' elements.
  1320  //
  1321  // Asm: VPERMI2B, CPU Feature: AVX512VBMI
  1322  func (x Int8x32) ConcatPermute(y Int8x32, indices Uint8x32) Int8x32
  1323  
  1324  // ConcatPermute performs a full permutation of vector x, y using indices:
  1325  //
  1326  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1327  //
  1328  // where xy is the concatenation of x (lower half) and y (upper half).
  1329  // Only the needed bits to represent xy's index are used in indices' elements.
  1330  //
  1331  // Asm: VPERMI2B, CPU Feature: AVX512VBMI
  1332  func (x Uint8x32) ConcatPermute(y Uint8x32, indices Uint8x32) Uint8x32
  1333  
  1334  // ConcatPermute performs a full permutation of vector x, y using indices:
  1335  //
  1336  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1337  //
  1338  // where xy is the concatenation of x (lower half) and y (upper half).
  1339  // Only the needed bits to represent xy's index are used in indices' elements.
  1340  //
  1341  // Asm: VPERMI2B, CPU Feature: AVX512VBMI
  1342  func (x Int8x64) ConcatPermute(y Int8x64, indices Uint8x64) Int8x64
  1343  
  1344  // ConcatPermute performs a full permutation of vector x, y using indices:
  1345  //
  1346  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1347  //
  1348  // where xy is the concatenation of x (lower half) and y (upper half).
  1349  // Only the needed bits to represent xy's index are used in indices' elements.
  1350  //
  1351  // Asm: VPERMI2B, CPU Feature: AVX512VBMI
  1352  func (x Uint8x64) ConcatPermute(y Uint8x64, indices Uint8x64) Uint8x64
  1353  
  1354  // ConcatPermute performs a full permutation of vector x, y using indices:
  1355  //
  1356  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1357  //
  1358  // where xy is the concatenation of x (lower half) and y (upper half).
  1359  // Only the needed bits to represent xy's index are used in indices' elements.
  1360  //
  1361  // Asm: VPERMI2W, CPU Feature: AVX512
  1362  func (x Int16x8) ConcatPermute(y Int16x8, indices Uint16x8) Int16x8
  1363  
  1364  // ConcatPermute performs a full permutation of vector x, y using indices:
  1365  //
  1366  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1367  //
  1368  // where xy is the concatenation of x (lower half) and y (upper half).
  1369  // Only the needed bits to represent xy's index are used in indices' elements.
  1370  //
  1371  // Asm: VPERMI2W, CPU Feature: AVX512
  1372  func (x Uint16x8) ConcatPermute(y Uint16x8, indices Uint16x8) Uint16x8
  1373  
  1374  // ConcatPermute performs a full permutation of vector x, y using indices:
  1375  //
  1376  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1377  //
  1378  // where xy is the concatenation of x (lower half) and y (upper half).
  1379  // Only the needed bits to represent xy's index are used in indices' elements.
  1380  //
  1381  // Asm: VPERMI2W, CPU Feature: AVX512
  1382  func (x Int16x16) ConcatPermute(y Int16x16, indices Uint16x16) Int16x16
  1383  
  1384  // ConcatPermute performs a full permutation of vector x, y using indices:
  1385  //
  1386  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1387  //
  1388  // where xy is the concatenation of x (lower half) and y (upper half).
  1389  // Only the needed bits to represent xy's index are used in indices' elements.
  1390  //
  1391  // Asm: VPERMI2W, CPU Feature: AVX512
  1392  func (x Uint16x16) ConcatPermute(y Uint16x16, indices Uint16x16) Uint16x16
  1393  
  1394  // ConcatPermute performs a full permutation of vector x, y using indices:
  1395  //
  1396  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1397  //
  1398  // where xy is the concatenation of x (lower half) and y (upper half).
  1399  // Only the needed bits to represent xy's index are used in indices' elements.
  1400  //
  1401  // Asm: VPERMI2W, CPU Feature: AVX512
  1402  func (x Int16x32) ConcatPermute(y Int16x32, indices Uint16x32) Int16x32
  1403  
  1404  // ConcatPermute performs a full permutation of vector x, y using indices:
  1405  //
  1406  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1407  //
  1408  // where xy is the concatenation of x (lower half) and y (upper half).
  1409  // Only the needed bits to represent xy's index are used in indices' elements.
  1410  //
  1411  // Asm: VPERMI2W, CPU Feature: AVX512
  1412  func (x Uint16x32) ConcatPermute(y Uint16x32, indices Uint16x32) Uint16x32
  1413  
  1414  // ConcatPermute performs a full permutation of vector x, y using indices:
  1415  //
  1416  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1417  //
  1418  // where xy is the concatenation of x (lower half) and y (upper half).
  1419  // Only the needed bits to represent xy's index are used in indices' elements.
  1420  //
  1421  // Asm: VPERMI2PS, CPU Feature: AVX512
  1422  func (x Float32x4) ConcatPermute(y Float32x4, indices Uint32x4) Float32x4
  1423  
  1424  // ConcatPermute performs a full permutation of vector x, y using indices:
  1425  //
  1426  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1427  //
  1428  // where xy is the concatenation of x (lower half) and y (upper half).
  1429  // Only the needed bits to represent xy's index are used in indices' elements.
  1430  //
  1431  // Asm: VPERMI2D, CPU Feature: AVX512
  1432  func (x Int32x4) ConcatPermute(y Int32x4, indices Uint32x4) Int32x4
  1433  
  1434  // ConcatPermute performs a full permutation of vector x, y using indices:
  1435  //
  1436  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1437  //
  1438  // where xy is the concatenation of x (lower half) and y (upper half).
  1439  // Only the needed bits to represent xy's index are used in indices' elements.
  1440  //
  1441  // Asm: VPERMI2D, CPU Feature: AVX512
  1442  func (x Uint32x4) ConcatPermute(y Uint32x4, indices Uint32x4) Uint32x4
  1443  
  1444  // ConcatPermute performs a full permutation of vector x, y using indices:
  1445  //
  1446  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1447  //
  1448  // where xy is the concatenation of x (lower half) and y (upper half).
  1449  // Only the needed bits to represent xy's index are used in indices' elements.
  1450  //
  1451  // Asm: VPERMI2PS, CPU Feature: AVX512
  1452  func (x Float32x8) ConcatPermute(y Float32x8, indices Uint32x8) Float32x8
  1453  
  1454  // ConcatPermute performs a full permutation of vector x, y using indices:
  1455  //
  1456  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1457  //
  1458  // where xy is the concatenation of x (lower half) and y (upper half).
  1459  // Only the needed bits to represent xy's index are used in indices' elements.
  1460  //
  1461  // Asm: VPERMI2D, CPU Feature: AVX512
  1462  func (x Int32x8) ConcatPermute(y Int32x8, indices Uint32x8) Int32x8
  1463  
  1464  // ConcatPermute performs a full permutation of vector x, y using indices:
  1465  //
  1466  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1467  //
  1468  // where xy is the concatenation of x (lower half) and y (upper half).
  1469  // Only the needed bits to represent xy's index are used in indices' elements.
  1470  //
  1471  // Asm: VPERMI2D, CPU Feature: AVX512
  1472  func (x Uint32x8) ConcatPermute(y Uint32x8, indices Uint32x8) Uint32x8
  1473  
  1474  // ConcatPermute performs a full permutation of vector x, y using indices:
  1475  //
  1476  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1477  //
  1478  // where xy is the concatenation of x (lower half) and y (upper half).
  1479  // Only the needed bits to represent xy's index are used in indices' elements.
  1480  //
  1481  // Asm: VPERMI2PS, CPU Feature: AVX512
  1482  func (x Float32x16) ConcatPermute(y Float32x16, indices Uint32x16) Float32x16
  1483  
  1484  // ConcatPermute performs a full permutation of vector x, y using indices:
  1485  //
  1486  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1487  //
  1488  // where xy is the concatenation of x (lower half) and y (upper half).
  1489  // Only the needed bits to represent xy's index are used in indices' elements.
  1490  //
  1491  // Asm: VPERMI2D, CPU Feature: AVX512
  1492  func (x Int32x16) ConcatPermute(y Int32x16, indices Uint32x16) Int32x16
  1493  
  1494  // ConcatPermute performs a full permutation of vector x, y using indices:
  1495  //
  1496  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1497  //
  1498  // where xy is the concatenation of x (lower half) and y (upper half).
  1499  // Only the needed bits to represent xy's index are used in indices' elements.
  1500  //
  1501  // Asm: VPERMI2D, CPU Feature: AVX512
  1502  func (x Uint32x16) ConcatPermute(y Uint32x16, indices Uint32x16) Uint32x16
  1503  
  1504  // ConcatPermute performs a full permutation of vector x, y using indices:
  1505  //
  1506  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1507  //
  1508  // where xy is the concatenation of x (lower half) and y (upper half).
  1509  // Only the needed bits to represent xy's index are used in indices' elements.
  1510  //
  1511  // Asm: VPERMI2PD, CPU Feature: AVX512
  1512  func (x Float64x2) ConcatPermute(y Float64x2, indices Uint64x2) Float64x2
  1513  
  1514  // ConcatPermute performs a full permutation of vector x, y using indices:
  1515  //
  1516  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1517  //
  1518  // where xy is the concatenation of x (lower half) and y (upper half).
  1519  // Only the needed bits to represent xy's index are used in indices' elements.
  1520  //
  1521  // Asm: VPERMI2Q, CPU Feature: AVX512
  1522  func (x Int64x2) ConcatPermute(y Int64x2, indices Uint64x2) Int64x2
  1523  
  1524  // ConcatPermute performs a full permutation of vector x, y using indices:
  1525  //
  1526  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1527  //
  1528  // where xy is the concatenation of x (lower half) and y (upper half).
  1529  // Only the needed bits to represent xy's index are used in indices' elements.
  1530  //
  1531  // Asm: VPERMI2Q, CPU Feature: AVX512
  1532  func (x Uint64x2) ConcatPermute(y Uint64x2, indices Uint64x2) Uint64x2
  1533  
  1534  // ConcatPermute performs a full permutation of vector x, y using indices:
  1535  //
  1536  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1537  //
  1538  // where xy is the concatenation of x (lower half) and y (upper half).
  1539  // Only the needed bits to represent xy's index are used in indices' elements.
  1540  //
  1541  // Asm: VPERMI2PD, CPU Feature: AVX512
  1542  func (x Float64x4) ConcatPermute(y Float64x4, indices Uint64x4) Float64x4
  1543  
  1544  // ConcatPermute performs a full permutation of vector x, y using indices:
  1545  //
  1546  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1547  //
  1548  // where xy is the concatenation of x (lower half) and y (upper half).
  1549  // Only the needed bits to represent xy's index are used in indices' elements.
  1550  //
  1551  // Asm: VPERMI2Q, CPU Feature: AVX512
  1552  func (x Int64x4) ConcatPermute(y Int64x4, indices Uint64x4) Int64x4
  1553  
  1554  // ConcatPermute performs a full permutation of vector x, y using indices:
  1555  //
  1556  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1557  //
  1558  // where xy is the concatenation of x (lower half) and y (upper half).
  1559  // Only the needed bits to represent xy's index are used in indices' elements.
  1560  //
  1561  // Asm: VPERMI2Q, CPU Feature: AVX512
  1562  func (x Uint64x4) ConcatPermute(y Uint64x4, indices Uint64x4) Uint64x4
  1563  
  1564  // ConcatPermute performs a full permutation of vector x, y using indices:
  1565  //
  1566  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1567  //
  1568  // where xy is the concatenation of x (lower half) and y (upper half).
  1569  // Only the needed bits to represent xy's index are used in indices' elements.
  1570  //
  1571  // Asm: VPERMI2PD, CPU Feature: AVX512
  1572  func (x Float64x8) ConcatPermute(y Float64x8, indices Uint64x8) Float64x8
  1573  
  1574  // ConcatPermute performs a full permutation of vector x, y using indices:
  1575  //
  1576  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1577  //
  1578  // where xy is the concatenation of x (lower half) and y (upper half).
  1579  // Only the needed bits to represent xy's index are used in indices' elements.
  1580  //
  1581  // Asm: VPERMI2Q, CPU Feature: AVX512
  1582  func (x Int64x8) ConcatPermute(y Int64x8, indices Uint64x8) Int64x8
  1583  
  1584  // ConcatPermute performs a full permutation of vector x, y using indices:
  1585  //
  1586  //	result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]}
  1587  //
  1588  // where xy is the concatenation of x (lower half) and y (upper half).
  1589  // Only the needed bits to represent xy's index are used in indices' elements.
  1590  //
  1591  // Asm: VPERMI2Q, CPU Feature: AVX512
  1592  func (x Uint64x8) ConcatPermute(y Uint64x8, indices Uint64x8) Uint64x8
  1593  
  1594  /* ConcatShiftBytesRight */
  1595  
  1596  // ConcatShiftBytesRight concatenates x and y and shift it right by shift bytes.
  1597  // The result vector will be the lower half of the concatenated vector.
  1598  //
  1599  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  1600  //
  1601  // Asm: VPALIGNR, CPU Feature: AVX
  1602  func (x Uint8x16) ConcatShiftBytesRight(shift uint8, y Uint8x16) Uint8x16
  1603  
  1604  /* ConcatShiftBytesRightGrouped */
  1605  
  1606  // ConcatShiftBytesRightGrouped concatenates x and y and shift it right by shift bytes.
  1607  // The result vector will be the lower half of the concatenated vector.
  1608  // This operation is performed grouped by each 16 byte.
  1609  //
  1610  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  1611  //
  1612  // Asm: VPALIGNR, CPU Feature: AVX2
  1613  func (x Uint8x32) ConcatShiftBytesRightGrouped(shift uint8, y Uint8x32) Uint8x32
  1614  
  1615  // ConcatShiftBytesRightGrouped concatenates x and y and shift it right by shift bytes.
  1616  // The result vector will be the lower half of the concatenated vector.
  1617  // This operation is performed grouped by each 16 byte.
  1618  //
  1619  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  1620  //
  1621  // Asm: VPALIGNR, CPU Feature: AVX512
  1622  func (x Uint8x64) ConcatShiftBytesRightGrouped(shift uint8, y Uint8x64) Uint8x64
  1623  
  1624  /* ConvertToFloat32 */
  1625  
  1626  // ConvertToFloat32 converts element values to float32.
  1627  // The result vector's elements are rounded to the nearest value.
  1628  //
  1629  // Asm: VCVTPD2PSX, CPU Feature: AVX
  1630  func (x Float64x2) ConvertToFloat32() Float32x4
  1631  
  1632  // ConvertToFloat32 converts element values to float32.
  1633  // The result vector's elements are rounded to the nearest value.
  1634  //
  1635  // Asm: VCVTPD2PSY, CPU Feature: AVX
  1636  func (x Float64x4) ConvertToFloat32() Float32x4
  1637  
  1638  // ConvertToFloat32 converts element values to float32.
  1639  // The result vector's elements are rounded to the nearest value.
  1640  //
  1641  // Asm: VCVTPD2PS, CPU Feature: AVX512
  1642  func (x Float64x8) ConvertToFloat32() Float32x8
  1643  
  1644  // ConvertToFloat32 converts element values to float32.
  1645  //
  1646  // Asm: VCVTDQ2PS, CPU Feature: AVX
  1647  func (x Int32x4) ConvertToFloat32() Float32x4
  1648  
  1649  // ConvertToFloat32 converts element values to float32.
  1650  //
  1651  // Asm: VCVTDQ2PS, CPU Feature: AVX
  1652  func (x Int32x8) ConvertToFloat32() Float32x8
  1653  
  1654  // ConvertToFloat32 converts element values to float32.
  1655  //
  1656  // Asm: VCVTDQ2PS, CPU Feature: AVX512
  1657  func (x Int32x16) ConvertToFloat32() Float32x16
  1658  
  1659  // ConvertToFloat32 converts element values to float32.
  1660  //
  1661  // Asm: VCVTQQ2PSX, CPU Feature: AVX512
  1662  func (x Int64x2) ConvertToFloat32() Float32x4
  1663  
  1664  // ConvertToFloat32 converts element values to float32.
  1665  //
  1666  // Asm: VCVTQQ2PSY, CPU Feature: AVX512
  1667  func (x Int64x4) ConvertToFloat32() Float32x4
  1668  
  1669  // ConvertToFloat32 converts element values to float32.
  1670  //
  1671  // Asm: VCVTQQ2PS, CPU Feature: AVX512
  1672  func (x Int64x8) ConvertToFloat32() Float32x8
  1673  
  1674  // ConvertToFloat32 converts element values to float32.
  1675  //
  1676  // Asm: VCVTUDQ2PS, CPU Feature: AVX512
  1677  func (x Uint32x4) ConvertToFloat32() Float32x4
  1678  
  1679  // ConvertToFloat32 converts element values to float32.
  1680  //
  1681  // Asm: VCVTUDQ2PS, CPU Feature: AVX512
  1682  func (x Uint32x8) ConvertToFloat32() Float32x8
  1683  
  1684  // ConvertToFloat32 converts element values to float32.
  1685  //
  1686  // Asm: VCVTUDQ2PS, CPU Feature: AVX512
  1687  func (x Uint32x16) ConvertToFloat32() Float32x16
  1688  
  1689  // ConvertToFloat32 converts element values to float32.
  1690  //
  1691  // Asm: VCVTUQQ2PSX, CPU Feature: AVX512
  1692  func (x Uint64x2) ConvertToFloat32() Float32x4
  1693  
  1694  // ConvertToFloat32 converts element values to float32.
  1695  //
  1696  // Asm: VCVTUQQ2PSY, CPU Feature: AVX512
  1697  func (x Uint64x4) ConvertToFloat32() Float32x4
  1698  
  1699  // ConvertToFloat32 converts element values to float32.
  1700  //
  1701  // Asm: VCVTUQQ2PS, CPU Feature: AVX512
  1702  func (x Uint64x8) ConvertToFloat32() Float32x8
  1703  
  1704  /* ConvertToFloat64 */
  1705  
  1706  // ConvertToFloat64 converts element values to float64.
  1707  //
  1708  // Asm: VCVTPS2PD, CPU Feature: AVX
  1709  func (x Float32x4) ConvertToFloat64() Float64x4
  1710  
  1711  // ConvertToFloat64 converts element values to float64.
  1712  //
  1713  // Asm: VCVTPS2PD, CPU Feature: AVX512
  1714  func (x Float32x8) ConvertToFloat64() Float64x8
  1715  
  1716  // ConvertToFloat64 converts element values to float64.
  1717  //
  1718  // Asm: VCVTDQ2PD, CPU Feature: AVX
  1719  func (x Int32x4) ConvertToFloat64() Float64x4
  1720  
  1721  // ConvertToFloat64 converts element values to float64.
  1722  //
  1723  // Asm: VCVTDQ2PD, CPU Feature: AVX512
  1724  func (x Int32x8) ConvertToFloat64() Float64x8
  1725  
  1726  // ConvertToFloat64 converts element values to float64.
  1727  //
  1728  // Asm: VCVTQQ2PD, CPU Feature: AVX512
  1729  func (x Int64x2) ConvertToFloat64() Float64x2
  1730  
  1731  // ConvertToFloat64 converts element values to float64.
  1732  //
  1733  // Asm: VCVTQQ2PD, CPU Feature: AVX512
  1734  func (x Int64x4) ConvertToFloat64() Float64x4
  1735  
  1736  // ConvertToFloat64 converts element values to float64.
  1737  //
  1738  // Asm: VCVTQQ2PD, CPU Feature: AVX512
  1739  func (x Int64x8) ConvertToFloat64() Float64x8
  1740  
  1741  // ConvertToFloat64 converts element values to float64.
  1742  //
  1743  // Asm: VCVTUDQ2PD, CPU Feature: AVX512
  1744  func (x Uint32x4) ConvertToFloat64() Float64x4
  1745  
  1746  // ConvertToFloat64 converts element values to float64.
  1747  //
  1748  // Asm: VCVTUDQ2PD, CPU Feature: AVX512
  1749  func (x Uint32x8) ConvertToFloat64() Float64x8
  1750  
  1751  // ConvertToFloat64 converts element values to float64.
  1752  //
  1753  // Asm: VCVTUQQ2PD, CPU Feature: AVX512
  1754  func (x Uint64x2) ConvertToFloat64() Float64x2
  1755  
  1756  // ConvertToFloat64 converts element values to float64.
  1757  //
  1758  // Asm: VCVTUQQ2PD, CPU Feature: AVX512
  1759  func (x Uint64x4) ConvertToFloat64() Float64x4
  1760  
  1761  // ConvertToFloat64 converts element values to float64.
  1762  //
  1763  // Asm: VCVTUQQ2PD, CPU Feature: AVX512
  1764  func (x Uint64x8) ConvertToFloat64() Float64x8
  1765  
  1766  /* ConvertToInt32 */
  1767  
  1768  // ConvertToInt32 converts element values to int32.
  1769  // When a conversion is inexact, a truncated (round toward zero) value is returned.
  1770  // If a converted result cannot be represented in int32, an implementation-defined
  1771  // architecture-specific value is returned.
  1772  //
  1773  // Asm: VCVTTPS2DQ, CPU Feature: AVX
  1774  func (x Float32x4) ConvertToInt32() Int32x4
  1775  
  1776  // ConvertToInt32 converts element values to int32.
  1777  // When a conversion is inexact, a truncated (round toward zero) value is returned.
  1778  // If a converted result cannot be represented in int32, an implementation-defined
  1779  // architecture-specific value is returned.
  1780  //
  1781  // Asm: VCVTTPS2DQ, CPU Feature: AVX
  1782  func (x Float32x8) ConvertToInt32() Int32x8
  1783  
  1784  // ConvertToInt32 converts element values to int32.
  1785  // When a conversion is inexact, a truncated (round toward zero) value is returned.
  1786  // If a converted result cannot be represented in int32, an implementation-defined
  1787  // architecture-specific value is returned.
  1788  //
  1789  // Asm: VCVTTPS2DQ, CPU Feature: AVX512
  1790  func (x Float32x16) ConvertToInt32() Int32x16
  1791  
  1792  // ConvertToInt32 converts element values to int32.
  1793  // When a conversion is inexact, a truncated (round toward zero) value is returned.
  1794  // If a converted result cannot be represented in int32, an implementation-defined
  1795  // architecture-specific value is returned.
  1796  //
  1797  // Asm: VCVTTPD2DQX, CPU Feature: AVX
  1798  func (x Float64x2) ConvertToInt32() Int32x4
  1799  
  1800  // ConvertToInt32 converts element values to int32.
  1801  // When a conversion is inexact, a truncated (round toward zero) value is returned.
  1802  // If a converted result cannot be represented in int32, an implementation-defined
  1803  // architecture-specific value is returned.
  1804  //
  1805  // Asm: VCVTTPD2DQY, CPU Feature: AVX
  1806  func (x Float64x4) ConvertToInt32() Int32x4
  1807  
  1808  // ConvertToInt32 converts element values to int32.
  1809  // When a conversion is inexact, a truncated (round toward zero) value is returned.
  1810  // If a converted result cannot be represented in int32, an implementation-defined
  1811  // architecture-specific value is returned.
  1812  //
  1813  // Asm: VCVTTPD2DQ, CPU Feature: AVX512
  1814  func (x Float64x8) ConvertToInt32() Int32x8
  1815  
  1816  /* ConvertToInt64 */
  1817  
  1818  // ConvertToInt64 converts element values to int64.
  1819  // When a conversion is inexact, a truncated (round toward zero) value is returned.
  1820  // If a converted result cannot be represented in int64, an implementation-defined
  1821  // architecture-specific value is returned.
  1822  //
  1823  // Asm: VCVTTPS2QQ, CPU Feature: AVX512
  1824  func (x Float32x4) ConvertToInt64() Int64x4
  1825  
  1826  // ConvertToInt64 converts element values to int64.
  1827  // When a conversion is inexact, a truncated (round toward zero) value is returned.
  1828  // If a converted result cannot be represented in int64, an implementation-defined
  1829  // architecture-specific value is returned.
  1830  //
  1831  // Asm: VCVTTPS2QQ, CPU Feature: AVX512
  1832  func (x Float32x8) ConvertToInt64() Int64x8
  1833  
  1834  // ConvertToInt64 converts element values to int64.
  1835  // When a conversion is inexact, a truncated (round toward zero) value is returned.
  1836  // If a converted result cannot be represented in int64, an implementation-defined
  1837  // architecture-specific value is returned.
  1838  //
  1839  // Asm: VCVTTPD2QQ, CPU Feature: AVX512
  1840  func (x Float64x2) ConvertToInt64() Int64x2
  1841  
  1842  // ConvertToInt64 converts element values to int64.
  1843  // When a conversion is inexact, a truncated (round toward zero) value is returned.
  1844  // If a converted result cannot be represented in int64, an implementation-defined
  1845  // architecture-specific value is returned.
  1846  //
  1847  // Asm: VCVTTPD2QQ, CPU Feature: AVX512
  1848  func (x Float64x4) ConvertToInt64() Int64x4
  1849  
  1850  // ConvertToInt64 converts element values to int64.
  1851  // When a conversion is inexact, a truncated (round toward zero) value is returned.
  1852  // If a converted result cannot be represented in int64, an implementation-defined
  1853  // architecture-specific value is returned.
  1854  //
  1855  // Asm: VCVTTPD2QQ, CPU Feature: AVX512
  1856  func (x Float64x8) ConvertToInt64() Int64x8
  1857  
  1858  /* ConvertToUint32 */
  1859  
  1860  // ConvertToUint32 converts element values to uint32.
  1861  // When a conversion is inexact, a truncated (round toward zero) value is returned.
  1862  // If a converted result cannot be represented in uint32, an implementation-defined
  1863  // architecture-specific value is returned.
  1864  //
  1865  // Asm: VCVTTPS2UDQ, CPU Feature: AVX512
  1866  func (x Float32x4) ConvertToUint32() Uint32x4
  1867  
  1868  // ConvertToUint32 converts element values to uint32.
  1869  // When a conversion is inexact, a truncated (round toward zero) value is returned.
  1870  // If a converted result cannot be represented in uint32, an implementation-defined
  1871  // architecture-specific value is returned.
  1872  //
  1873  // Asm: VCVTTPS2UDQ, CPU Feature: AVX512
  1874  func (x Float32x8) ConvertToUint32() Uint32x8
  1875  
  1876  // ConvertToUint32 converts element values to uint32.
  1877  // When a conversion is inexact, a truncated (round toward zero) value is returned.
  1878  // If a converted result cannot be represented in uint32, an implementation-defined
  1879  // architecture-specific value is returned.
  1880  //
  1881  // Asm: VCVTTPS2UDQ, CPU Feature: AVX512
  1882  func (x Float32x16) ConvertToUint32() Uint32x16
  1883  
  1884  // ConvertToUint32 converts element values to uint32.
  1885  // When a conversion is inexact, a truncated (round toward zero) value is returned.
  1886  // If a converted result cannot be represented in uint32, an implementation-defined
  1887  // architecture-specific value is returned.
  1888  //
  1889  // Asm: VCVTTPD2UDQX, CPU Feature: AVX512
  1890  func (x Float64x2) ConvertToUint32() Uint32x4
  1891  
  1892  // ConvertToUint32 converts element values to uint32.
  1893  // When a conversion is inexact, a truncated (round toward zero) value is returned.
  1894  // If a converted result cannot be represented in uint32, an implementation-defined
  1895  // architecture-specific value is returned.
  1896  //
  1897  // Asm: VCVTTPD2UDQY, CPU Feature: AVX512
  1898  func (x Float64x4) ConvertToUint32() Uint32x4
  1899  
  1900  // ConvertToUint32 converts element values to uint32.
  1901  // When a conversion is inexact, a truncated (round toward zero) value is returned.
  1902  // If a converted result cannot be represented in uint32, an implementation-defined
  1903  // architecture-specific value is returned.
  1904  //
  1905  // Asm: VCVTTPD2UDQ, CPU Feature: AVX512
  1906  func (x Float64x8) ConvertToUint32() Uint32x8
  1907  
  1908  /* ConvertToUint64 */
  1909  
  1910  // ConvertToUint64 converts element values to uint64.
  1911  // When a conversion is inexact, a truncated (round toward zero) value is returned.
  1912  // If a converted result cannot be represented in uint64, an implementation-defined
  1913  // architecture-specific value is returned.
  1914  //
  1915  // Asm: VCVTTPS2UQQ, CPU Feature: AVX512
  1916  func (x Float32x4) ConvertToUint64() Uint64x4
  1917  
  1918  // ConvertToUint64 converts element values to uint64.
  1919  // When a conversion is inexact, a truncated (round toward zero) value is returned.
  1920  // If a converted result cannot be represented in uint64, an implementation-defined
  1921  // architecture-specific value is returned.
  1922  //
  1923  // Asm: VCVTTPS2UQQ, CPU Feature: AVX512
  1924  func (x Float32x8) ConvertToUint64() Uint64x8
  1925  
  1926  // ConvertToUint64 converts element values to uint64.
  1927  // When a conversion is inexact, a truncated (round toward zero) value is returned.
  1928  // If a converted result cannot be represented in uint64, an implementation-defined
  1929  // architecture-specific value is returned.
  1930  //
  1931  // Asm: VCVTTPD2UQQ, CPU Feature: AVX512
  1932  func (x Float64x2) ConvertToUint64() Uint64x2
  1933  
  1934  // ConvertToUint64 converts element values to uint64.
  1935  // When a conversion is inexact, a truncated (round toward zero) value is returned.
  1936  // If a converted result cannot be represented in uint64, an implementation-defined
  1937  // architecture-specific value is returned.
  1938  //
  1939  // Asm: VCVTTPD2UQQ, CPU Feature: AVX512
  1940  func (x Float64x4) ConvertToUint64() Uint64x4
  1941  
  1942  // ConvertToUint64 converts element values to uint64.
  1943  // When a conversion is inexact, a truncated (round toward zero) value is returned.
  1944  // If a converted result cannot be represented in uint64, an implementation-defined
  1945  // architecture-specific value is returned.
  1946  //
  1947  // Asm: VCVTTPD2UQQ, CPU Feature: AVX512
  1948  func (x Float64x8) ConvertToUint64() Uint64x8
  1949  
  1950  /* CopySign */
  1951  
  1952  // CopySign returns the product of x with -1, 0, or 1,
  1953  // whichever constant is nearest to the value of y.
  1954  //
  1955  // Asm: VPSIGNB, CPU Feature: AVX
  1956  func (x Int8x16) CopySign(y Int8x16) Int8x16
  1957  
  1958  // CopySign returns the product of x with -1, 0, or 1,
  1959  // whichever constant is nearest to the value of y.
  1960  //
  1961  // Asm: VPSIGNB, CPU Feature: AVX2
  1962  func (x Int8x32) CopySign(y Int8x32) Int8x32
  1963  
  1964  // CopySign returns the product of x with -1, 0, or 1,
  1965  // whichever constant is nearest to the value of y.
  1966  //
  1967  // Asm: VPSIGNW, CPU Feature: AVX
  1968  func (x Int16x8) CopySign(y Int16x8) Int16x8
  1969  
  1970  // CopySign returns the product of x with -1, 0, or 1,
  1971  // whichever constant is nearest to the value of y.
  1972  //
  1973  // Asm: VPSIGNW, CPU Feature: AVX2
  1974  func (x Int16x16) CopySign(y Int16x16) Int16x16
  1975  
  1976  // CopySign returns the product of x with -1, 0, or 1,
  1977  // whichever constant is nearest to the value of y.
  1978  //
  1979  // Asm: VPSIGND, CPU Feature: AVX
  1980  func (x Int32x4) CopySign(y Int32x4) Int32x4
  1981  
  1982  // CopySign returns the product of x with -1, 0, or 1,
  1983  // whichever constant is nearest to the value of y.
  1984  //
  1985  // Asm: VPSIGND, CPU Feature: AVX2
  1986  func (x Int32x8) CopySign(y Int32x8) Int32x8
  1987  
  1988  /* Div */
  1989  
  1990  // Div divides elements of two vectors.
  1991  //
  1992  // Asm: VDIVPS, CPU Feature: AVX
  1993  func (x Float32x4) Div(y Float32x4) Float32x4
  1994  
  1995  // Div divides elements of two vectors.
  1996  //
  1997  // Asm: VDIVPS, CPU Feature: AVX
  1998  func (x Float32x8) Div(y Float32x8) Float32x8
  1999  
  2000  // Div divides elements of two vectors.
  2001  //
  2002  // Asm: VDIVPS, CPU Feature: AVX512
  2003  func (x Float32x16) Div(y Float32x16) Float32x16
  2004  
  2005  // Div divides elements of two vectors.
  2006  //
  2007  // Asm: VDIVPD, CPU Feature: AVX
  2008  func (x Float64x2) Div(y Float64x2) Float64x2
  2009  
  2010  // Div divides elements of two vectors.
  2011  //
  2012  // Asm: VDIVPD, CPU Feature: AVX
  2013  func (x Float64x4) Div(y Float64x4) Float64x4
  2014  
  2015  // Div divides elements of two vectors.
  2016  //
  2017  // Asm: VDIVPD, CPU Feature: AVX512
  2018  func (x Float64x8) Div(y Float64x8) Float64x8
  2019  
  2020  /* DotProductPairs */
  2021  
  2022  // DotProductPairs multiplies the elements and add the pairs together,
  2023  // yielding a vector of half as many elements with twice the input element size.
  2024  //
  2025  // Asm: VPMADDWD, CPU Feature: AVX
  2026  func (x Int16x8) DotProductPairs(y Int16x8) Int32x4
  2027  
  2028  // DotProductPairs multiplies the elements and add the pairs together,
  2029  // yielding a vector of half as many elements with twice the input element size.
  2030  //
  2031  // Asm: VPMADDWD, CPU Feature: AVX2
  2032  func (x Int16x16) DotProductPairs(y Int16x16) Int32x8
  2033  
  2034  // DotProductPairs multiplies the elements and add the pairs together,
  2035  // yielding a vector of half as many elements with twice the input element size.
  2036  //
  2037  // Asm: VPMADDWD, CPU Feature: AVX512
  2038  func (x Int16x32) DotProductPairs(y Int16x32) Int32x16
  2039  
  2040  /* DotProductPairsSaturated */
  2041  
  2042  // DotProductPairsSaturated multiplies the elements and add the pairs together with saturation,
  2043  // yielding a vector of half as many elements with twice the input element size.
  2044  //
  2045  // Asm: VPMADDUBSW, CPU Feature: AVX
  2046  func (x Uint8x16) DotProductPairsSaturated(y Int8x16) Int16x8
  2047  
  2048  // DotProductPairsSaturated multiplies the elements and add the pairs together with saturation,
  2049  // yielding a vector of half as many elements with twice the input element size.
  2050  //
  2051  // Asm: VPMADDUBSW, CPU Feature: AVX2
  2052  func (x Uint8x32) DotProductPairsSaturated(y Int8x32) Int16x16
  2053  
  2054  // DotProductPairsSaturated multiplies the elements and add the pairs together with saturation,
  2055  // yielding a vector of half as many elements with twice the input element size.
  2056  //
  2057  // Asm: VPMADDUBSW, CPU Feature: AVX512
  2058  func (x Uint8x64) DotProductPairsSaturated(y Int8x64) Int16x32
  2059  
  2060  /* Equal */
  2061  
  2062  // Equal returns a mask whose elements indicate whether x == y.
  2063  //
  2064  // Asm: VPCMPEQB, CPU Feature: AVX
  2065  func (x Int8x16) Equal(y Int8x16) Mask8x16
  2066  
  2067  // Equal returns a mask whose elements indicate whether x == y.
  2068  //
  2069  // Asm: VPCMPEQB, CPU Feature: AVX2
  2070  func (x Int8x32) Equal(y Int8x32) Mask8x32
  2071  
  2072  // Equal returns a mask whose elements indicate whether x == y.
  2073  //
  2074  // Asm: VPCMPEQB, CPU Feature: AVX512
  2075  func (x Int8x64) Equal(y Int8x64) Mask8x64
  2076  
  2077  // Equal returns a mask whose elements indicate whether x == y.
  2078  //
  2079  // Asm: VPCMPEQW, CPU Feature: AVX
  2080  func (x Int16x8) Equal(y Int16x8) Mask16x8
  2081  
  2082  // Equal returns a mask whose elements indicate whether x == y.
  2083  //
  2084  // Asm: VPCMPEQW, CPU Feature: AVX2
  2085  func (x Int16x16) Equal(y Int16x16) Mask16x16
  2086  
  2087  // Equal returns a mask whose elements indicate whether x == y.
  2088  //
  2089  // Asm: VPCMPEQW, CPU Feature: AVX512
  2090  func (x Int16x32) Equal(y Int16x32) Mask16x32
  2091  
  2092  // Equal returns a mask whose elements indicate whether x == y.
  2093  //
  2094  // Asm: VPCMPEQD, CPU Feature: AVX
  2095  func (x Int32x4) Equal(y Int32x4) Mask32x4
  2096  
  2097  // Equal returns a mask whose elements indicate whether x == y.
  2098  //
  2099  // Asm: VPCMPEQD, CPU Feature: AVX2
  2100  func (x Int32x8) Equal(y Int32x8) Mask32x8
  2101  
  2102  // Equal returns a mask whose elements indicate whether x == y.
  2103  //
  2104  // Asm: VPCMPEQD, CPU Feature: AVX512
  2105  func (x Int32x16) Equal(y Int32x16) Mask32x16
  2106  
  2107  // Equal returns a mask whose elements indicate whether x == y.
  2108  //
  2109  // Asm: VPCMPEQQ, CPU Feature: AVX
  2110  func (x Int64x2) Equal(y Int64x2) Mask64x2
  2111  
  2112  // Equal returns a mask whose elements indicate whether x == y.
  2113  //
  2114  // Asm: VPCMPEQQ, CPU Feature: AVX2
  2115  func (x Int64x4) Equal(y Int64x4) Mask64x4
  2116  
  2117  // Equal returns a mask whose elements indicate whether x == y.
  2118  //
  2119  // Asm: VPCMPEQQ, CPU Feature: AVX512
  2120  func (x Int64x8) Equal(y Int64x8) Mask64x8
  2121  
  2122  // Equal returns a mask whose elements indicate whether x == y.
  2123  //
  2124  // Asm: VPCMPEQB, CPU Feature: AVX
  2125  func (x Uint8x16) Equal(y Uint8x16) Mask8x16
  2126  
  2127  // Equal returns a mask whose elements indicate whether x == y.
  2128  //
  2129  // Asm: VPCMPEQB, CPU Feature: AVX2
  2130  func (x Uint8x32) Equal(y Uint8x32) Mask8x32
  2131  
  2132  // Equal returns a mask whose elements indicate whether x == y.
  2133  //
  2134  // Asm: VPCMPEQB, CPU Feature: AVX512
  2135  func (x Uint8x64) Equal(y Uint8x64) Mask8x64
  2136  
  2137  // Equal returns a mask whose elements indicate whether x == y.
  2138  //
  2139  // Asm: VPCMPEQW, CPU Feature: AVX
  2140  func (x Uint16x8) Equal(y Uint16x8) Mask16x8
  2141  
  2142  // Equal returns a mask whose elements indicate whether x == y.
  2143  //
  2144  // Asm: VPCMPEQW, CPU Feature: AVX2
  2145  func (x Uint16x16) Equal(y Uint16x16) Mask16x16
  2146  
  2147  // Equal returns a mask whose elements indicate whether x == y.
  2148  //
  2149  // Asm: VPCMPEQW, CPU Feature: AVX512
  2150  func (x Uint16x32) Equal(y Uint16x32) Mask16x32
  2151  
  2152  // Equal returns a mask whose elements indicate whether x == y.
  2153  //
  2154  // Asm: VPCMPEQD, CPU Feature: AVX
  2155  func (x Uint32x4) Equal(y Uint32x4) Mask32x4
  2156  
  2157  // Equal returns a mask whose elements indicate whether x == y.
  2158  //
  2159  // Asm: VPCMPEQD, CPU Feature: AVX2
  2160  func (x Uint32x8) Equal(y Uint32x8) Mask32x8
  2161  
  2162  // Equal returns a mask whose elements indicate whether x == y.
  2163  //
  2164  // Asm: VPCMPEQD, CPU Feature: AVX512
  2165  func (x Uint32x16) Equal(y Uint32x16) Mask32x16
  2166  
  2167  // Equal returns a mask whose elements indicate whether x == y.
  2168  //
  2169  // Asm: VPCMPEQQ, CPU Feature: AVX
  2170  func (x Uint64x2) Equal(y Uint64x2) Mask64x2
  2171  
  2172  // Equal returns a mask whose elements indicate whether x == y.
  2173  //
  2174  // Asm: VPCMPEQQ, CPU Feature: AVX2
  2175  func (x Uint64x4) Equal(y Uint64x4) Mask64x4
  2176  
  2177  // Equal returns a mask whose elements indicate whether x == y.
  2178  //
  2179  // Asm: VPCMPEQQ, CPU Feature: AVX512
  2180  func (x Uint64x8) Equal(y Uint64x8) Mask64x8
  2181  
  2182  // Equal returns a mask whose elements indicate whether x == y.
  2183  //
  2184  // Asm: VCMPPS, CPU Feature: AVX
  2185  func (x Float32x4) Equal(y Float32x4) Mask32x4
  2186  
  2187  // Equal returns a mask whose elements indicate whether x == y.
  2188  //
  2189  // Asm: VCMPPS, CPU Feature: AVX
  2190  func (x Float32x8) Equal(y Float32x8) Mask32x8
  2191  
  2192  // Equal returns a mask whose elements indicate whether x == y.
  2193  //
  2194  // Asm: VCMPPS, CPU Feature: AVX512
  2195  func (x Float32x16) Equal(y Float32x16) Mask32x16
  2196  
  2197  // Equal returns a mask whose elements indicate whether x == y.
  2198  //
  2199  // Asm: VCMPPD, CPU Feature: AVX
  2200  func (x Float64x2) Equal(y Float64x2) Mask64x2
  2201  
  2202  // Equal returns a mask whose elements indicate whether x == y.
  2203  //
  2204  // Asm: VCMPPD, CPU Feature: AVX
  2205  func (x Float64x4) Equal(y Float64x4) Mask64x4
  2206  
  2207  // Equal returns a mask whose elements indicate whether x == y.
  2208  //
  2209  // Asm: VCMPPD, CPU Feature: AVX512
  2210  func (x Float64x8) Equal(y Float64x8) Mask64x8
  2211  
  2212  /* Expand */
  2213  
  2214  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2215  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2216  //
  2217  // Asm: VEXPANDPS, CPU Feature: AVX512
  2218  func (x Float32x4) Expand(mask Mask32x4) Float32x4
  2219  
  2220  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2221  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2222  //
  2223  // Asm: VEXPANDPS, CPU Feature: AVX512
  2224  func (x Float32x8) Expand(mask Mask32x8) Float32x8
  2225  
  2226  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2227  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2228  //
  2229  // Asm: VEXPANDPS, CPU Feature: AVX512
  2230  func (x Float32x16) Expand(mask Mask32x16) Float32x16
  2231  
  2232  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2233  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2234  //
  2235  // Asm: VEXPANDPD, CPU Feature: AVX512
  2236  func (x Float64x2) Expand(mask Mask64x2) Float64x2
  2237  
  2238  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2239  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2240  //
  2241  // Asm: VEXPANDPD, CPU Feature: AVX512
  2242  func (x Float64x4) Expand(mask Mask64x4) Float64x4
  2243  
  2244  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2245  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2246  //
  2247  // Asm: VEXPANDPD, CPU Feature: AVX512
  2248  func (x Float64x8) Expand(mask Mask64x8) Float64x8
  2249  
  2250  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2251  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2252  //
  2253  // Asm: VPEXPANDB, CPU Feature: AVX512VBMI2
  2254  func (x Int8x16) Expand(mask Mask8x16) Int8x16
  2255  
  2256  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2257  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2258  //
  2259  // Asm: VPEXPANDB, CPU Feature: AVX512VBMI2
  2260  func (x Int8x32) Expand(mask Mask8x32) Int8x32
  2261  
  2262  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2263  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2264  //
  2265  // Asm: VPEXPANDB, CPU Feature: AVX512VBMI2
  2266  func (x Int8x64) Expand(mask Mask8x64) Int8x64
  2267  
  2268  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2269  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2270  //
  2271  // Asm: VPEXPANDW, CPU Feature: AVX512VBMI2
  2272  func (x Int16x8) Expand(mask Mask16x8) Int16x8
  2273  
  2274  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2275  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2276  //
  2277  // Asm: VPEXPANDW, CPU Feature: AVX512VBMI2
  2278  func (x Int16x16) Expand(mask Mask16x16) Int16x16
  2279  
  2280  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2281  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2282  //
  2283  // Asm: VPEXPANDW, CPU Feature: AVX512VBMI2
  2284  func (x Int16x32) Expand(mask Mask16x32) Int16x32
  2285  
  2286  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2287  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2288  //
  2289  // Asm: VPEXPANDD, CPU Feature: AVX512
  2290  func (x Int32x4) Expand(mask Mask32x4) Int32x4
  2291  
  2292  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2293  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2294  //
  2295  // Asm: VPEXPANDD, CPU Feature: AVX512
  2296  func (x Int32x8) Expand(mask Mask32x8) Int32x8
  2297  
  2298  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2299  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2300  //
  2301  // Asm: VPEXPANDD, CPU Feature: AVX512
  2302  func (x Int32x16) Expand(mask Mask32x16) Int32x16
  2303  
  2304  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2305  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2306  //
  2307  // Asm: VPEXPANDQ, CPU Feature: AVX512
  2308  func (x Int64x2) Expand(mask Mask64x2) Int64x2
  2309  
  2310  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2311  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2312  //
  2313  // Asm: VPEXPANDQ, CPU Feature: AVX512
  2314  func (x Int64x4) Expand(mask Mask64x4) Int64x4
  2315  
  2316  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2317  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2318  //
  2319  // Asm: VPEXPANDQ, CPU Feature: AVX512
  2320  func (x Int64x8) Expand(mask Mask64x8) Int64x8
  2321  
  2322  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2323  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2324  //
  2325  // Asm: VPEXPANDB, CPU Feature: AVX512VBMI2
  2326  func (x Uint8x16) Expand(mask Mask8x16) Uint8x16
  2327  
  2328  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2329  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2330  //
  2331  // Asm: VPEXPANDB, CPU Feature: AVX512VBMI2
  2332  func (x Uint8x32) Expand(mask Mask8x32) Uint8x32
  2333  
  2334  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2335  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2336  //
  2337  // Asm: VPEXPANDB, CPU Feature: AVX512VBMI2
  2338  func (x Uint8x64) Expand(mask Mask8x64) Uint8x64
  2339  
  2340  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2341  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2342  //
  2343  // Asm: VPEXPANDW, CPU Feature: AVX512VBMI2
  2344  func (x Uint16x8) Expand(mask Mask16x8) Uint16x8
  2345  
  2346  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2347  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2348  //
  2349  // Asm: VPEXPANDW, CPU Feature: AVX512VBMI2
  2350  func (x Uint16x16) Expand(mask Mask16x16) Uint16x16
  2351  
  2352  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2353  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2354  //
  2355  // Asm: VPEXPANDW, CPU Feature: AVX512VBMI2
  2356  func (x Uint16x32) Expand(mask Mask16x32) Uint16x32
  2357  
  2358  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2359  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2360  //
  2361  // Asm: VPEXPANDD, CPU Feature: AVX512
  2362  func (x Uint32x4) Expand(mask Mask32x4) Uint32x4
  2363  
  2364  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2365  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2366  //
  2367  // Asm: VPEXPANDD, CPU Feature: AVX512
  2368  func (x Uint32x8) Expand(mask Mask32x8) Uint32x8
  2369  
  2370  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2371  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2372  //
  2373  // Asm: VPEXPANDD, CPU Feature: AVX512
  2374  func (x Uint32x16) Expand(mask Mask32x16) Uint32x16
  2375  
  2376  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2377  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2378  //
  2379  // Asm: VPEXPANDQ, CPU Feature: AVX512
  2380  func (x Uint64x2) Expand(mask Mask64x2) Uint64x2
  2381  
  2382  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2383  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2384  //
  2385  // Asm: VPEXPANDQ, CPU Feature: AVX512
  2386  func (x Uint64x4) Expand(mask Mask64x4) Uint64x4
  2387  
  2388  // Expand performs an expansion on a vector x whose elements are packed to lower parts.
  2389  // The expansion is to distribute elements as indexed by mask, from lower mask elements to upper in order.
  2390  //
  2391  // Asm: VPEXPANDQ, CPU Feature: AVX512
  2392  func (x Uint64x8) Expand(mask Mask64x8) Uint64x8
  2393  
  2394  /* ExtendLo2ToInt64 */
  2395  
  2396  // ExtendLo2ToInt64 sign-extends 2 lowest vector element values to int64.
  2397  //
  2398  // Asm: VPMOVSXBQ, CPU Feature: AVX
  2399  func (x Int8x16) ExtendLo2ToInt64() Int64x2
  2400  
  2401  // ExtendLo2ToInt64 sign-extends 2 lowest vector element values to int64.
  2402  //
  2403  // Asm: VPMOVSXWQ, CPU Feature: AVX
  2404  func (x Int16x8) ExtendLo2ToInt64() Int64x2
  2405  
  2406  // ExtendLo2ToInt64 sign-extends 2 lowest vector element values to int64.
  2407  //
  2408  // Asm: VPMOVSXDQ, CPU Feature: AVX
  2409  func (x Int32x4) ExtendLo2ToInt64() Int64x2
  2410  
  2411  /* ExtendLo2ToUint64 */
  2412  
  2413  // ExtendLo2ToUint64 zero-extends 2 lowest vector element values to uint64.
  2414  //
  2415  // Asm: VPMOVZXBQ, CPU Feature: AVX
  2416  func (x Uint8x16) ExtendLo2ToUint64() Uint64x2
  2417  
  2418  // ExtendLo2ToUint64 zero-extends 2 lowest vector element values to uint64.
  2419  //
  2420  // Asm: VPMOVZXWQ, CPU Feature: AVX
  2421  func (x Uint16x8) ExtendLo2ToUint64() Uint64x2
  2422  
  2423  // ExtendLo2ToUint64 zero-extends 2 lowest vector element values to uint64.
  2424  //
  2425  // Asm: VPMOVZXDQ, CPU Feature: AVX
  2426  func (x Uint32x4) ExtendLo2ToUint64() Uint64x2
  2427  
  2428  /* ExtendLo4ToInt32 */
  2429  
  2430  // ExtendLo4ToInt32 sign-extends 4 lowest vector element values to int32.
  2431  //
  2432  // Asm: VPMOVSXBD, CPU Feature: AVX
  2433  func (x Int8x16) ExtendLo4ToInt32() Int32x4
  2434  
  2435  // ExtendLo4ToInt32 sign-extends 4 lowest vector element values to int32.
  2436  //
  2437  // Asm: VPMOVSXWD, CPU Feature: AVX
  2438  func (x Int16x8) ExtendLo4ToInt32() Int32x4
  2439  
  2440  /* ExtendLo4ToInt64 */
  2441  
  2442  // ExtendLo4ToInt64 sign-extends 4 lowest vector element values to int64.
  2443  //
  2444  // Asm: VPMOVSXBQ, CPU Feature: AVX2
  2445  func (x Int8x16) ExtendLo4ToInt64() Int64x4
  2446  
  2447  // ExtendLo4ToInt64 sign-extends 4 lowest vector element values to int64.
  2448  //
  2449  // Asm: VPMOVSXWQ, CPU Feature: AVX2
  2450  func (x Int16x8) ExtendLo4ToInt64() Int64x4
  2451  
  2452  /* ExtendLo4ToUint32 */
  2453  
  2454  // ExtendLo4ToUint32 zero-extends 4 lowest vector element values to uint32.
  2455  //
  2456  // Asm: VPMOVZXBD, CPU Feature: AVX
  2457  func (x Uint8x16) ExtendLo4ToUint32() Uint32x4
  2458  
  2459  // ExtendLo4ToUint32 zero-extends 4 lowest vector element values to uint32.
  2460  //
  2461  // Asm: VPMOVZXWD, CPU Feature: AVX
  2462  func (x Uint16x8) ExtendLo4ToUint32() Uint32x4
  2463  
  2464  /* ExtendLo4ToUint64 */
  2465  
  2466  // ExtendLo4ToUint64 zero-extends 4 lowest vector element values to uint64.
  2467  //
  2468  // Asm: VPMOVZXBQ, CPU Feature: AVX2
  2469  func (x Uint8x16) ExtendLo4ToUint64() Uint64x4
  2470  
  2471  // ExtendLo4ToUint64 zero-extends 4 lowest vector element values to uint64.
  2472  //
  2473  // Asm: VPMOVZXWQ, CPU Feature: AVX2
  2474  func (x Uint16x8) ExtendLo4ToUint64() Uint64x4
  2475  
  2476  /* ExtendLo8ToInt16 */
  2477  
  2478  // ExtendLo8ToInt16 sign-extends 8 lowest vector element values to int16.
  2479  //
  2480  // Asm: VPMOVSXBW, CPU Feature: AVX
  2481  func (x Int8x16) ExtendLo8ToInt16() Int16x8
  2482  
  2483  /* ExtendLo8ToInt32 */
  2484  
  2485  // ExtendLo8ToInt32 sign-extends 8 lowest vector element values to int32.
  2486  //
  2487  // Asm: VPMOVSXBD, CPU Feature: AVX2
  2488  func (x Int8x16) ExtendLo8ToInt32() Int32x8
  2489  
  2490  /* ExtendLo8ToInt64 */
  2491  
  2492  // ExtendLo8ToInt64 sign-extends 8 lowest vector element values to int64.
  2493  //
  2494  // Asm: VPMOVSXBQ, CPU Feature: AVX512
  2495  func (x Int8x16) ExtendLo8ToInt64() Int64x8
  2496  
  2497  /* ExtendLo8ToUint16 */
  2498  
  2499  // ExtendLo8ToUint16 zero-extends 8 lowest vector element values to uint16.
  2500  //
  2501  // Asm: VPMOVZXBW, CPU Feature: AVX
  2502  func (x Uint8x16) ExtendLo8ToUint16() Uint16x8
  2503  
  2504  /* ExtendLo8ToUint32 */
  2505  
  2506  // ExtendLo8ToUint32 zero-extends 8 lowest vector element values to uint32.
  2507  //
  2508  // Asm: VPMOVZXBD, CPU Feature: AVX2
  2509  func (x Uint8x16) ExtendLo8ToUint32() Uint32x8
  2510  
  2511  /* ExtendLo8ToUint64 */
  2512  
  2513  // ExtendLo8ToUint64 zero-extends 8 lowest vector element values to uint64.
  2514  //
  2515  // Asm: VPMOVZXBQ, CPU Feature: AVX512
  2516  func (x Uint8x16) ExtendLo8ToUint64() Uint64x8
  2517  
  2518  /* ExtendToInt16 */
  2519  
  2520  // ExtendToInt16 sign-extends element values to int16.
  2521  //
  2522  // Asm: VPMOVSXBW, CPU Feature: AVX2
  2523  func (x Int8x16) ExtendToInt16() Int16x16
  2524  
  2525  // ExtendToInt16 sign-extends element values to int16.
  2526  //
  2527  // Asm: VPMOVSXBW, CPU Feature: AVX512
  2528  func (x Int8x32) ExtendToInt16() Int16x32
  2529  
  2530  /* ExtendToInt32 */
  2531  
  2532  // ExtendToInt32 sign-extends element values to int32.
  2533  //
  2534  // Asm: VPMOVSXBD, CPU Feature: AVX512
  2535  func (x Int8x16) ExtendToInt32() Int32x16
  2536  
  2537  // ExtendToInt32 sign-extends element values to int32.
  2538  //
  2539  // Asm: VPMOVSXWD, CPU Feature: AVX2
  2540  func (x Int16x8) ExtendToInt32() Int32x8
  2541  
  2542  // ExtendToInt32 sign-extends element values to int32.
  2543  //
  2544  // Asm: VPMOVSXWD, CPU Feature: AVX512
  2545  func (x Int16x16) ExtendToInt32() Int32x16
  2546  
  2547  /* ExtendToInt64 */
  2548  
  2549  // ExtendToInt64 sign-extends element values to int64.
  2550  //
  2551  // Asm: VPMOVSXWQ, CPU Feature: AVX512
  2552  func (x Int16x8) ExtendToInt64() Int64x8
  2553  
  2554  // ExtendToInt64 sign-extends element values to int64.
  2555  //
  2556  // Asm: VPMOVSXDQ, CPU Feature: AVX2
  2557  func (x Int32x4) ExtendToInt64() Int64x4
  2558  
  2559  // ExtendToInt64 sign-extends element values to int64.
  2560  //
  2561  // Asm: VPMOVSXDQ, CPU Feature: AVX512
  2562  func (x Int32x8) ExtendToInt64() Int64x8
  2563  
  2564  /* ExtendToUint16 */
  2565  
  2566  // ExtendToUint16 zero-extends element values to uint16.
  2567  //
  2568  // Asm: VPMOVZXBW, CPU Feature: AVX2
  2569  func (x Uint8x16) ExtendToUint16() Uint16x16
  2570  
  2571  // ExtendToUint16 zero-extends element values to uint16.
  2572  //
  2573  // Asm: VPMOVZXBW, CPU Feature: AVX512
  2574  func (x Uint8x32) ExtendToUint16() Uint16x32
  2575  
  2576  /* ExtendToUint32 */
  2577  
  2578  // ExtendToUint32 zero-extends element values to uint32.
  2579  //
  2580  // Asm: VPMOVZXBD, CPU Feature: AVX512
  2581  func (x Uint8x16) ExtendToUint32() Uint32x16
  2582  
  2583  // ExtendToUint32 zero-extends element values to uint32.
  2584  //
  2585  // Asm: VPMOVZXWD, CPU Feature: AVX2
  2586  func (x Uint16x8) ExtendToUint32() Uint32x8
  2587  
  2588  // ExtendToUint32 zero-extends element values to uint32.
  2589  //
  2590  // Asm: VPMOVZXWD, CPU Feature: AVX512
  2591  func (x Uint16x16) ExtendToUint32() Uint32x16
  2592  
  2593  /* ExtendToUint64 */
  2594  
  2595  // ExtendToUint64 zero-extends element values to uint64.
  2596  //
  2597  // Asm: VPMOVZXWQ, CPU Feature: AVX512
  2598  func (x Uint16x8) ExtendToUint64() Uint64x8
  2599  
  2600  // ExtendToUint64 zero-extends element values to uint64.
  2601  //
  2602  // Asm: VPMOVZXDQ, CPU Feature: AVX2
  2603  func (x Uint32x4) ExtendToUint64() Uint64x4
  2604  
  2605  // ExtendToUint64 zero-extends element values to uint64.
  2606  //
  2607  // Asm: VPMOVZXDQ, CPU Feature: AVX512
  2608  func (x Uint32x8) ExtendToUint64() Uint64x8
  2609  
  2610  /* Floor */
  2611  
  2612  // Floor rounds elements down to the nearest integer.
  2613  //
  2614  // Asm: VROUNDPS, CPU Feature: AVX
  2615  func (x Float32x4) Floor() Float32x4
  2616  
  2617  // Floor rounds elements down to the nearest integer.
  2618  //
  2619  // Asm: VROUNDPS, CPU Feature: AVX
  2620  func (x Float32x8) Floor() Float32x8
  2621  
  2622  // Floor rounds elements down to the nearest integer.
  2623  //
  2624  // Asm: VROUNDPD, CPU Feature: AVX
  2625  func (x Float64x2) Floor() Float64x2
  2626  
  2627  // Floor rounds elements down to the nearest integer.
  2628  //
  2629  // Asm: VROUNDPD, CPU Feature: AVX
  2630  func (x Float64x4) Floor() Float64x4
  2631  
  2632  /* FloorScaled */
  2633  
  2634  // FloorScaled rounds elements down with specified precision.
  2635  //
  2636  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2637  //
  2638  // Asm: VRNDSCALEPS, CPU Feature: AVX512
  2639  func (x Float32x4) FloorScaled(prec uint8) Float32x4
  2640  
  2641  // FloorScaled rounds elements down with specified precision.
  2642  //
  2643  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2644  //
  2645  // Asm: VRNDSCALEPS, CPU Feature: AVX512
  2646  func (x Float32x8) FloorScaled(prec uint8) Float32x8
  2647  
  2648  // FloorScaled rounds elements down with specified precision.
  2649  //
  2650  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2651  //
  2652  // Asm: VRNDSCALEPS, CPU Feature: AVX512
  2653  func (x Float32x16) FloorScaled(prec uint8) Float32x16
  2654  
  2655  // FloorScaled rounds elements down with specified precision.
  2656  //
  2657  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2658  //
  2659  // Asm: VRNDSCALEPD, CPU Feature: AVX512
  2660  func (x Float64x2) FloorScaled(prec uint8) Float64x2
  2661  
  2662  // FloorScaled rounds elements down with specified precision.
  2663  //
  2664  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2665  //
  2666  // Asm: VRNDSCALEPD, CPU Feature: AVX512
  2667  func (x Float64x4) FloorScaled(prec uint8) Float64x4
  2668  
  2669  // FloorScaled rounds elements down with specified precision.
  2670  //
  2671  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2672  //
  2673  // Asm: VRNDSCALEPD, CPU Feature: AVX512
  2674  func (x Float64x8) FloorScaled(prec uint8) Float64x8
  2675  
  2676  /* FloorScaledResidue */
  2677  
  2678  // FloorScaledResidue computes the difference after flooring with specified precision.
  2679  //
  2680  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2681  //
  2682  // Asm: VREDUCEPS, CPU Feature: AVX512
  2683  func (x Float32x4) FloorScaledResidue(prec uint8) Float32x4
  2684  
  2685  // FloorScaledResidue computes the difference after flooring with specified precision.
  2686  //
  2687  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2688  //
  2689  // Asm: VREDUCEPS, CPU Feature: AVX512
  2690  func (x Float32x8) FloorScaledResidue(prec uint8) Float32x8
  2691  
  2692  // FloorScaledResidue computes the difference after flooring with specified precision.
  2693  //
  2694  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2695  //
  2696  // Asm: VREDUCEPS, CPU Feature: AVX512
  2697  func (x Float32x16) FloorScaledResidue(prec uint8) Float32x16
  2698  
  2699  // FloorScaledResidue computes the difference after flooring with specified precision.
  2700  //
  2701  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2702  //
  2703  // Asm: VREDUCEPD, CPU Feature: AVX512
  2704  func (x Float64x2) FloorScaledResidue(prec uint8) Float64x2
  2705  
  2706  // FloorScaledResidue computes the difference after flooring with specified precision.
  2707  //
  2708  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2709  //
  2710  // Asm: VREDUCEPD, CPU Feature: AVX512
  2711  func (x Float64x4) FloorScaledResidue(prec uint8) Float64x4
  2712  
  2713  // FloorScaledResidue computes the difference after flooring with specified precision.
  2714  //
  2715  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2716  //
  2717  // Asm: VREDUCEPD, CPU Feature: AVX512
  2718  func (x Float64x8) FloorScaledResidue(prec uint8) Float64x8
  2719  
  2720  /* GaloisFieldAffineTransform */
  2721  
  2722  // GaloisFieldAffineTransform computes an affine transformation in GF(2^8):
  2723  // x is a vector of 8-bit vectors, with each adjacent 8 as a group; y is a vector of 8x8 1-bit matrixes;
  2724  // b is an 8-bit vector. The affine transformation is y * x + b, with each element of y
  2725  // corresponding to a group of 8 elements in x.
  2726  //
  2727  // b results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2728  //
  2729  // Asm: VGF2P8AFFINEQB, CPU Feature: AVX512GFNI
  2730  func (x Uint8x16) GaloisFieldAffineTransform(y Uint64x2, b uint8) Uint8x16
  2731  
  2732  // GaloisFieldAffineTransform computes an affine transformation in GF(2^8):
  2733  // x is a vector of 8-bit vectors, with each adjacent 8 as a group; y is a vector of 8x8 1-bit matrixes;
  2734  // b is an 8-bit vector. The affine transformation is y * x + b, with each element of y
  2735  // corresponding to a group of 8 elements in x.
  2736  //
  2737  // b results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2738  //
  2739  // Asm: VGF2P8AFFINEQB, CPU Feature: AVX512GFNI
  2740  func (x Uint8x32) GaloisFieldAffineTransform(y Uint64x4, b uint8) Uint8x32
  2741  
  2742  // GaloisFieldAffineTransform computes an affine transformation in GF(2^8):
  2743  // x is a vector of 8-bit vectors, with each adjacent 8 as a group; y is a vector of 8x8 1-bit matrixes;
  2744  // b is an 8-bit vector. The affine transformation is y * x + b, with each element of y
  2745  // corresponding to a group of 8 elements in x.
  2746  //
  2747  // b results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2748  //
  2749  // Asm: VGF2P8AFFINEQB, CPU Feature: AVX512GFNI
  2750  func (x Uint8x64) GaloisFieldAffineTransform(y Uint64x8, b uint8) Uint8x64
  2751  
  2752  /* GaloisFieldAffineTransformInverse */
  2753  
  2754  // GaloisFieldAffineTransformInverse computes an affine transformation in GF(2^8),
  2755  // with x inverted with respect to reduction polynomial x^8 + x^4 + x^3 + x + 1:
  2756  // x is a vector of 8-bit vectors, with each adjacent 8 as a group; y is a vector of 8x8 1-bit matrixes;
  2757  // b is an 8-bit vector. The affine transformation is y * x + b, with each element of y
  2758  // corresponding to a group of 8 elements in x.
  2759  //
  2760  // b results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2761  //
  2762  // Asm: VGF2P8AFFINEINVQB, CPU Feature: AVX512GFNI
  2763  func (x Uint8x16) GaloisFieldAffineTransformInverse(y Uint64x2, b uint8) Uint8x16
  2764  
  2765  // GaloisFieldAffineTransformInverse computes an affine transformation in GF(2^8),
  2766  // with x inverted with respect to reduction polynomial x^8 + x^4 + x^3 + x + 1:
  2767  // x is a vector of 8-bit vectors, with each adjacent 8 as a group; y is a vector of 8x8 1-bit matrixes;
  2768  // b is an 8-bit vector. The affine transformation is y * x + b, with each element of y
  2769  // corresponding to a group of 8 elements in x.
  2770  //
  2771  // b results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2772  //
  2773  // Asm: VGF2P8AFFINEINVQB, CPU Feature: AVX512GFNI
  2774  func (x Uint8x32) GaloisFieldAffineTransformInverse(y Uint64x4, b uint8) Uint8x32
  2775  
  2776  // GaloisFieldAffineTransformInverse computes an affine transformation in GF(2^8),
  2777  // with x inverted with respect to reduction polynomial x^8 + x^4 + x^3 + x + 1:
  2778  // x is a vector of 8-bit vectors, with each adjacent 8 as a group; y is a vector of 8x8 1-bit matrixes;
  2779  // b is an 8-bit vector. The affine transformation is y * x + b, with each element of y
  2780  // corresponding to a group of 8 elements in x.
  2781  //
  2782  // b results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2783  //
  2784  // Asm: VGF2P8AFFINEINVQB, CPU Feature: AVX512GFNI
  2785  func (x Uint8x64) GaloisFieldAffineTransformInverse(y Uint64x8, b uint8) Uint8x64
  2786  
  2787  /* GaloisFieldMul */
  2788  
  2789  // GaloisFieldMul computes element-wise GF(2^8) multiplication with
  2790  // reduction polynomial x^8 + x^4 + x^3 + x + 1.
  2791  //
  2792  // Asm: VGF2P8MULB, CPU Feature: AVX512GFNI
  2793  func (x Uint8x16) GaloisFieldMul(y Uint8x16) Uint8x16
  2794  
  2795  // GaloisFieldMul computes element-wise GF(2^8) multiplication with
  2796  // reduction polynomial x^8 + x^4 + x^3 + x + 1.
  2797  //
  2798  // Asm: VGF2P8MULB, CPU Feature: AVX512GFNI
  2799  func (x Uint8x32) GaloisFieldMul(y Uint8x32) Uint8x32
  2800  
  2801  // GaloisFieldMul computes element-wise GF(2^8) multiplication with
  2802  // reduction polynomial x^8 + x^4 + x^3 + x + 1.
  2803  //
  2804  // Asm: VGF2P8MULB, CPU Feature: AVX512GFNI
  2805  func (x Uint8x64) GaloisFieldMul(y Uint8x64) Uint8x64
  2806  
  2807  /* GetElem */
  2808  
  2809  // GetElem retrieves a single constant-indexed element's value.
  2810  //
  2811  // index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2812  //
  2813  // Asm: VPEXTRD, CPU Feature: AVX
  2814  func (x Float32x4) GetElem(index uint8) float32
  2815  
  2816  // GetElem retrieves a single constant-indexed element's value.
  2817  //
  2818  // index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2819  //
  2820  // Asm: VPEXTRQ, CPU Feature: AVX
  2821  func (x Float64x2) GetElem(index uint8) float64
  2822  
  2823  // GetElem retrieves a single constant-indexed element's value.
  2824  //
  2825  // index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2826  //
  2827  // Asm: VPEXTRB, CPU Feature: AVX512
  2828  func (x Int8x16) GetElem(index uint8) int8
  2829  
  2830  // GetElem retrieves a single constant-indexed element's value.
  2831  //
  2832  // index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2833  //
  2834  // Asm: VPEXTRW, CPU Feature: AVX512
  2835  func (x Int16x8) GetElem(index uint8) int16
  2836  
  2837  // GetElem retrieves a single constant-indexed element's value.
  2838  //
  2839  // index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2840  //
  2841  // Asm: VPEXTRD, CPU Feature: AVX
  2842  func (x Int32x4) GetElem(index uint8) int32
  2843  
  2844  // GetElem retrieves a single constant-indexed element's value.
  2845  //
  2846  // index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2847  //
  2848  // Asm: VPEXTRQ, CPU Feature: AVX
  2849  func (x Int64x2) GetElem(index uint8) int64
  2850  
  2851  // GetElem retrieves a single constant-indexed element's value.
  2852  //
  2853  // index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2854  //
  2855  // Asm: VPEXTRB, CPU Feature: AVX512
  2856  func (x Uint8x16) GetElem(index uint8) uint8
  2857  
  2858  // GetElem retrieves a single constant-indexed element's value.
  2859  //
  2860  // index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2861  //
  2862  // Asm: VPEXTRW, CPU Feature: AVX512
  2863  func (x Uint16x8) GetElem(index uint8) uint16
  2864  
  2865  // GetElem retrieves a single constant-indexed element's value.
  2866  //
  2867  // index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2868  //
  2869  // Asm: VPEXTRD, CPU Feature: AVX
  2870  func (x Uint32x4) GetElem(index uint8) uint32
  2871  
  2872  // GetElem retrieves a single constant-indexed element's value.
  2873  //
  2874  // index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  2875  //
  2876  // Asm: VPEXTRQ, CPU Feature: AVX
  2877  func (x Uint64x2) GetElem(index uint8) uint64
  2878  
  2879  /* GetHi */
  2880  
  2881  // GetHi returns the upper half of x.
  2882  //
  2883  // Asm: VEXTRACTF128, CPU Feature: AVX
  2884  func (x Float32x8) GetHi() Float32x4
  2885  
  2886  // GetHi returns the upper half of x.
  2887  //
  2888  // Asm: VEXTRACTF64X4, CPU Feature: AVX512
  2889  func (x Float32x16) GetHi() Float32x8
  2890  
  2891  // GetHi returns the upper half of x.
  2892  //
  2893  // Asm: VEXTRACTF128, CPU Feature: AVX
  2894  func (x Float64x4) GetHi() Float64x2
  2895  
  2896  // GetHi returns the upper half of x.
  2897  //
  2898  // Asm: VEXTRACTF64X4, CPU Feature: AVX512
  2899  func (x Float64x8) GetHi() Float64x4
  2900  
  2901  // GetHi returns the upper half of x.
  2902  //
  2903  // Asm: VEXTRACTI128, CPU Feature: AVX2
  2904  func (x Int8x32) GetHi() Int8x16
  2905  
  2906  // GetHi returns the upper half of x.
  2907  //
  2908  // Asm: VEXTRACTI64X4, CPU Feature: AVX512
  2909  func (x Int8x64) GetHi() Int8x32
  2910  
  2911  // GetHi returns the upper half of x.
  2912  //
  2913  // Asm: VEXTRACTI128, CPU Feature: AVX2
  2914  func (x Int16x16) GetHi() Int16x8
  2915  
  2916  // GetHi returns the upper half of x.
  2917  //
  2918  // Asm: VEXTRACTI64X4, CPU Feature: AVX512
  2919  func (x Int16x32) GetHi() Int16x16
  2920  
  2921  // GetHi returns the upper half of x.
  2922  //
  2923  // Asm: VEXTRACTI128, CPU Feature: AVX2
  2924  func (x Int32x8) GetHi() Int32x4
  2925  
  2926  // GetHi returns the upper half of x.
  2927  //
  2928  // Asm: VEXTRACTI64X4, CPU Feature: AVX512
  2929  func (x Int32x16) GetHi() Int32x8
  2930  
  2931  // GetHi returns the upper half of x.
  2932  //
  2933  // Asm: VEXTRACTI128, CPU Feature: AVX2
  2934  func (x Int64x4) GetHi() Int64x2
  2935  
  2936  // GetHi returns the upper half of x.
  2937  //
  2938  // Asm: VEXTRACTI64X4, CPU Feature: AVX512
  2939  func (x Int64x8) GetHi() Int64x4
  2940  
  2941  // GetHi returns the upper half of x.
  2942  //
  2943  // Asm: VEXTRACTI128, CPU Feature: AVX2
  2944  func (x Uint8x32) GetHi() Uint8x16
  2945  
  2946  // GetHi returns the upper half of x.
  2947  //
  2948  // Asm: VEXTRACTI64X4, CPU Feature: AVX512
  2949  func (x Uint8x64) GetHi() Uint8x32
  2950  
  2951  // GetHi returns the upper half of x.
  2952  //
  2953  // Asm: VEXTRACTI128, CPU Feature: AVX2
  2954  func (x Uint16x16) GetHi() Uint16x8
  2955  
  2956  // GetHi returns the upper half of x.
  2957  //
  2958  // Asm: VEXTRACTI64X4, CPU Feature: AVX512
  2959  func (x Uint16x32) GetHi() Uint16x16
  2960  
  2961  // GetHi returns the upper half of x.
  2962  //
  2963  // Asm: VEXTRACTI128, CPU Feature: AVX2
  2964  func (x Uint32x8) GetHi() Uint32x4
  2965  
  2966  // GetHi returns the upper half of x.
  2967  //
  2968  // Asm: VEXTRACTI64X4, CPU Feature: AVX512
  2969  func (x Uint32x16) GetHi() Uint32x8
  2970  
  2971  // GetHi returns the upper half of x.
  2972  //
  2973  // Asm: VEXTRACTI128, CPU Feature: AVX2
  2974  func (x Uint64x4) GetHi() Uint64x2
  2975  
  2976  // GetHi returns the upper half of x.
  2977  //
  2978  // Asm: VEXTRACTI64X4, CPU Feature: AVX512
  2979  func (x Uint64x8) GetHi() Uint64x4
  2980  
  2981  /* GetLo */
  2982  
  2983  // GetLo returns the lower half of x.
  2984  //
  2985  // Asm: VEXTRACTF128, CPU Feature: AVX
  2986  func (x Float32x8) GetLo() Float32x4
  2987  
  2988  // GetLo returns the lower half of x.
  2989  //
  2990  // Asm: VEXTRACTF64X4, CPU Feature: AVX512
  2991  func (x Float32x16) GetLo() Float32x8
  2992  
  2993  // GetLo returns the lower half of x.
  2994  //
  2995  // Asm: VEXTRACTF128, CPU Feature: AVX
  2996  func (x Float64x4) GetLo() Float64x2
  2997  
  2998  // GetLo returns the lower half of x.
  2999  //
  3000  // Asm: VEXTRACTF64X4, CPU Feature: AVX512
  3001  func (x Float64x8) GetLo() Float64x4
  3002  
  3003  // GetLo returns the lower half of x.
  3004  //
  3005  // Asm: VEXTRACTI128, CPU Feature: AVX2
  3006  func (x Int8x32) GetLo() Int8x16
  3007  
  3008  // GetLo returns the lower half of x.
  3009  //
  3010  // Asm: VEXTRACTI64X4, CPU Feature: AVX512
  3011  func (x Int8x64) GetLo() Int8x32
  3012  
  3013  // GetLo returns the lower half of x.
  3014  //
  3015  // Asm: VEXTRACTI128, CPU Feature: AVX2
  3016  func (x Int16x16) GetLo() Int16x8
  3017  
  3018  // GetLo returns the lower half of x.
  3019  //
  3020  // Asm: VEXTRACTI64X4, CPU Feature: AVX512
  3021  func (x Int16x32) GetLo() Int16x16
  3022  
  3023  // GetLo returns the lower half of x.
  3024  //
  3025  // Asm: VEXTRACTI128, CPU Feature: AVX2
  3026  func (x Int32x8) GetLo() Int32x4
  3027  
  3028  // GetLo returns the lower half of x.
  3029  //
  3030  // Asm: VEXTRACTI64X4, CPU Feature: AVX512
  3031  func (x Int32x16) GetLo() Int32x8
  3032  
  3033  // GetLo returns the lower half of x.
  3034  //
  3035  // Asm: VEXTRACTI128, CPU Feature: AVX2
  3036  func (x Int64x4) GetLo() Int64x2
  3037  
  3038  // GetLo returns the lower half of x.
  3039  //
  3040  // Asm: VEXTRACTI64X4, CPU Feature: AVX512
  3041  func (x Int64x8) GetLo() Int64x4
  3042  
  3043  // GetLo returns the lower half of x.
  3044  //
  3045  // Asm: VEXTRACTI128, CPU Feature: AVX2
  3046  func (x Uint8x32) GetLo() Uint8x16
  3047  
  3048  // GetLo returns the lower half of x.
  3049  //
  3050  // Asm: VEXTRACTI64X4, CPU Feature: AVX512
  3051  func (x Uint8x64) GetLo() Uint8x32
  3052  
  3053  // GetLo returns the lower half of x.
  3054  //
  3055  // Asm: VEXTRACTI128, CPU Feature: AVX2
  3056  func (x Uint16x16) GetLo() Uint16x8
  3057  
  3058  // GetLo returns the lower half of x.
  3059  //
  3060  // Asm: VEXTRACTI64X4, CPU Feature: AVX512
  3061  func (x Uint16x32) GetLo() Uint16x16
  3062  
  3063  // GetLo returns the lower half of x.
  3064  //
  3065  // Asm: VEXTRACTI128, CPU Feature: AVX2
  3066  func (x Uint32x8) GetLo() Uint32x4
  3067  
  3068  // GetLo returns the lower half of x.
  3069  //
  3070  // Asm: VEXTRACTI64X4, CPU Feature: AVX512
  3071  func (x Uint32x16) GetLo() Uint32x8
  3072  
  3073  // GetLo returns the lower half of x.
  3074  //
  3075  // Asm: VEXTRACTI128, CPU Feature: AVX2
  3076  func (x Uint64x4) GetLo() Uint64x2
  3077  
  3078  // GetLo returns the lower half of x.
  3079  //
  3080  // Asm: VEXTRACTI64X4, CPU Feature: AVX512
  3081  func (x Uint64x8) GetLo() Uint64x4
  3082  
  3083  /* Greater */
  3084  
  3085  // Greater returns a mask whose elements indicate whether x > y.
  3086  //
  3087  // Asm: VPCMPGTB, CPU Feature: AVX
  3088  func (x Int8x16) Greater(y Int8x16) Mask8x16
  3089  
  3090  // Greater returns a mask whose elements indicate whether x > y.
  3091  //
  3092  // Asm: VPCMPGTB, CPU Feature: AVX2
  3093  func (x Int8x32) Greater(y Int8x32) Mask8x32
  3094  
  3095  // Greater returns a mask whose elements indicate whether x > y.
  3096  //
  3097  // Asm: VPCMPGTB, CPU Feature: AVX512
  3098  func (x Int8x64) Greater(y Int8x64) Mask8x64
  3099  
  3100  // Greater returns a mask whose elements indicate whether x > y.
  3101  //
  3102  // Asm: VPCMPGTW, CPU Feature: AVX
  3103  func (x Int16x8) Greater(y Int16x8) Mask16x8
  3104  
  3105  // Greater returns a mask whose elements indicate whether x > y.
  3106  //
  3107  // Asm: VPCMPGTW, CPU Feature: AVX2
  3108  func (x Int16x16) Greater(y Int16x16) Mask16x16
  3109  
  3110  // Greater returns a mask whose elements indicate whether x > y.
  3111  //
  3112  // Asm: VPCMPGTW, CPU Feature: AVX512
  3113  func (x Int16x32) Greater(y Int16x32) Mask16x32
  3114  
  3115  // Greater returns a mask whose elements indicate whether x > y.
  3116  //
  3117  // Asm: VPCMPGTD, CPU Feature: AVX
  3118  func (x Int32x4) Greater(y Int32x4) Mask32x4
  3119  
  3120  // Greater returns a mask whose elements indicate whether x > y.
  3121  //
  3122  // Asm: VPCMPGTD, CPU Feature: AVX2
  3123  func (x Int32x8) Greater(y Int32x8) Mask32x8
  3124  
  3125  // Greater returns a mask whose elements indicate whether x > y.
  3126  //
  3127  // Asm: VPCMPGTD, CPU Feature: AVX512
  3128  func (x Int32x16) Greater(y Int32x16) Mask32x16
  3129  
  3130  // Greater returns a mask whose elements indicate whether x > y.
  3131  //
  3132  // Asm: VPCMPGTQ, CPU Feature: AVX
  3133  func (x Int64x2) Greater(y Int64x2) Mask64x2
  3134  
  3135  // Greater returns a mask whose elements indicate whether x > y.
  3136  //
  3137  // Asm: VPCMPGTQ, CPU Feature: AVX2
  3138  func (x Int64x4) Greater(y Int64x4) Mask64x4
  3139  
  3140  // Greater returns a mask whose elements indicate whether x > y.
  3141  //
  3142  // Asm: VPCMPGTQ, CPU Feature: AVX512
  3143  func (x Int64x8) Greater(y Int64x8) Mask64x8
  3144  
  3145  // Greater returns a mask whose elements indicate whether x > y.
  3146  //
  3147  // Asm: VCMPPS, CPU Feature: AVX
  3148  func (x Float32x4) Greater(y Float32x4) Mask32x4
  3149  
  3150  // Greater returns a mask whose elements indicate whether x > y.
  3151  //
  3152  // Asm: VCMPPS, CPU Feature: AVX
  3153  func (x Float32x8) Greater(y Float32x8) Mask32x8
  3154  
  3155  // Greater returns a mask whose elements indicate whether x > y.
  3156  //
  3157  // Asm: VCMPPS, CPU Feature: AVX512
  3158  func (x Float32x16) Greater(y Float32x16) Mask32x16
  3159  
  3160  // Greater returns a mask whose elements indicate whether x > y.
  3161  //
  3162  // Asm: VCMPPD, CPU Feature: AVX
  3163  func (x Float64x2) Greater(y Float64x2) Mask64x2
  3164  
  3165  // Greater returns a mask whose elements indicate whether x > y.
  3166  //
  3167  // Asm: VCMPPD, CPU Feature: AVX
  3168  func (x Float64x4) Greater(y Float64x4) Mask64x4
  3169  
  3170  // Greater returns a mask whose elements indicate whether x > y.
  3171  //
  3172  // Asm: VCMPPD, CPU Feature: AVX512
  3173  func (x Float64x8) Greater(y Float64x8) Mask64x8
  3174  
  3175  // Greater returns a mask whose elements indicate whether x > y.
  3176  //
  3177  // Asm: VPCMPUB, CPU Feature: AVX512
  3178  func (x Uint8x64) Greater(y Uint8x64) Mask8x64
  3179  
  3180  // Greater returns a mask whose elements indicate whether x > y.
  3181  //
  3182  // Asm: VPCMPUW, CPU Feature: AVX512
  3183  func (x Uint16x32) Greater(y Uint16x32) Mask16x32
  3184  
  3185  // Greater returns a mask whose elements indicate whether x > y.
  3186  //
  3187  // Asm: VPCMPUD, CPU Feature: AVX512
  3188  func (x Uint32x16) Greater(y Uint32x16) Mask32x16
  3189  
  3190  // Greater returns a mask whose elements indicate whether x > y.
  3191  //
  3192  // Asm: VPCMPUQ, CPU Feature: AVX512
  3193  func (x Uint64x8) Greater(y Uint64x8) Mask64x8
  3194  
  3195  /* GreaterEqual */
  3196  
  3197  // GreaterEqual returns a mask whose elements indicate whether x >= y.
  3198  //
  3199  // Asm: VCMPPS, CPU Feature: AVX
  3200  func (x Float32x4) GreaterEqual(y Float32x4) Mask32x4
  3201  
  3202  // GreaterEqual returns a mask whose elements indicate whether x >= y.
  3203  //
  3204  // Asm: VCMPPS, CPU Feature: AVX
  3205  func (x Float32x8) GreaterEqual(y Float32x8) Mask32x8
  3206  
  3207  // GreaterEqual returns a mask whose elements indicate whether x >= y.
  3208  //
  3209  // Asm: VCMPPS, CPU Feature: AVX512
  3210  func (x Float32x16) GreaterEqual(y Float32x16) Mask32x16
  3211  
  3212  // GreaterEqual returns a mask whose elements indicate whether x >= y.
  3213  //
  3214  // Asm: VCMPPD, CPU Feature: AVX
  3215  func (x Float64x2) GreaterEqual(y Float64x2) Mask64x2
  3216  
  3217  // GreaterEqual returns a mask whose elements indicate whether x >= y.
  3218  //
  3219  // Asm: VCMPPD, CPU Feature: AVX
  3220  func (x Float64x4) GreaterEqual(y Float64x4) Mask64x4
  3221  
  3222  // GreaterEqual returns a mask whose elements indicate whether x >= y.
  3223  //
  3224  // Asm: VCMPPD, CPU Feature: AVX512
  3225  func (x Float64x8) GreaterEqual(y Float64x8) Mask64x8
  3226  
  3227  // GreaterEqual returns a mask whose elements indicate whether x >= y.
  3228  //
  3229  // Asm: VPCMPB, CPU Feature: AVX512
  3230  func (x Int8x64) GreaterEqual(y Int8x64) Mask8x64
  3231  
  3232  // GreaterEqual returns a mask whose elements indicate whether x >= y.
  3233  //
  3234  // Asm: VPCMPW, CPU Feature: AVX512
  3235  func (x Int16x32) GreaterEqual(y Int16x32) Mask16x32
  3236  
  3237  // GreaterEqual returns a mask whose elements indicate whether x >= y.
  3238  //
  3239  // Asm: VPCMPD, CPU Feature: AVX512
  3240  func (x Int32x16) GreaterEqual(y Int32x16) Mask32x16
  3241  
  3242  // GreaterEqual returns a mask whose elements indicate whether x >= y.
  3243  //
  3244  // Asm: VPCMPQ, CPU Feature: AVX512
  3245  func (x Int64x8) GreaterEqual(y Int64x8) Mask64x8
  3246  
  3247  // GreaterEqual returns a mask whose elements indicate whether x >= y.
  3248  //
  3249  // Asm: VPCMPUB, CPU Feature: AVX512
  3250  func (x Uint8x64) GreaterEqual(y Uint8x64) Mask8x64
  3251  
  3252  // GreaterEqual returns a mask whose elements indicate whether x >= y.
  3253  //
  3254  // Asm: VPCMPUW, CPU Feature: AVX512
  3255  func (x Uint16x32) GreaterEqual(y Uint16x32) Mask16x32
  3256  
  3257  // GreaterEqual returns a mask whose elements indicate whether x >= y.
  3258  //
  3259  // Asm: VPCMPUD, CPU Feature: AVX512
  3260  func (x Uint32x16) GreaterEqual(y Uint32x16) Mask32x16
  3261  
  3262  // GreaterEqual returns a mask whose elements indicate whether x >= y.
  3263  //
  3264  // Asm: VPCMPUQ, CPU Feature: AVX512
  3265  func (x Uint64x8) GreaterEqual(y Uint64x8) Mask64x8
  3266  
  3267  /* InterleaveHi */
  3268  
  3269  // InterleaveHi interleaves the elements of the high halves of x and y.
  3270  //
  3271  // Asm: VPUNPCKHWD, CPU Feature: AVX
  3272  func (x Int16x8) InterleaveHi(y Int16x8) Int16x8
  3273  
  3274  // InterleaveHi interleaves the elements of the high halves of x and y.
  3275  //
  3276  // Asm: VPUNPCKHDQ, CPU Feature: AVX
  3277  func (x Int32x4) InterleaveHi(y Int32x4) Int32x4
  3278  
  3279  // InterleaveHi interleaves the elements of the high halves of x and y.
  3280  //
  3281  // Asm: VPUNPCKHQDQ, CPU Feature: AVX
  3282  func (x Int64x2) InterleaveHi(y Int64x2) Int64x2
  3283  
  3284  // InterleaveHi interleaves the elements of the high halves of x and y.
  3285  //
  3286  // Asm: VPUNPCKHWD, CPU Feature: AVX
  3287  func (x Uint16x8) InterleaveHi(y Uint16x8) Uint16x8
  3288  
  3289  // InterleaveHi interleaves the elements of the high halves of x and y.
  3290  //
  3291  // Asm: VPUNPCKHDQ, CPU Feature: AVX
  3292  func (x Uint32x4) InterleaveHi(y Uint32x4) Uint32x4
  3293  
  3294  // InterleaveHi interleaves the elements of the high halves of x and y.
  3295  //
  3296  // Asm: VPUNPCKHQDQ, CPU Feature: AVX
  3297  func (x Uint64x2) InterleaveHi(y Uint64x2) Uint64x2
  3298  
  3299  /* InterleaveHiGrouped */
  3300  
  3301  // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y.
  3302  //
  3303  // Asm: VPUNPCKHWD, CPU Feature: AVX2
  3304  func (x Int16x16) InterleaveHiGrouped(y Int16x16) Int16x16
  3305  
  3306  // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y.
  3307  //
  3308  // Asm: VPUNPCKHWD, CPU Feature: AVX512
  3309  func (x Int16x32) InterleaveHiGrouped(y Int16x32) Int16x32
  3310  
  3311  // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y.
  3312  //
  3313  // Asm: VPUNPCKHDQ, CPU Feature: AVX2
  3314  func (x Int32x8) InterleaveHiGrouped(y Int32x8) Int32x8
  3315  
  3316  // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y.
  3317  //
  3318  // Asm: VPUNPCKHDQ, CPU Feature: AVX512
  3319  func (x Int32x16) InterleaveHiGrouped(y Int32x16) Int32x16
  3320  
  3321  // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y.
  3322  //
  3323  // Asm: VPUNPCKHQDQ, CPU Feature: AVX2
  3324  func (x Int64x4) InterleaveHiGrouped(y Int64x4) Int64x4
  3325  
  3326  // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y.
  3327  //
  3328  // Asm: VPUNPCKHQDQ, CPU Feature: AVX512
  3329  func (x Int64x8) InterleaveHiGrouped(y Int64x8) Int64x8
  3330  
  3331  // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y.
  3332  //
  3333  // Asm: VPUNPCKHWD, CPU Feature: AVX2
  3334  func (x Uint16x16) InterleaveHiGrouped(y Uint16x16) Uint16x16
  3335  
  3336  // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y.
  3337  //
  3338  // Asm: VPUNPCKHWD, CPU Feature: AVX512
  3339  func (x Uint16x32) InterleaveHiGrouped(y Uint16x32) Uint16x32
  3340  
  3341  // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y.
  3342  //
  3343  // Asm: VPUNPCKHDQ, CPU Feature: AVX2
  3344  func (x Uint32x8) InterleaveHiGrouped(y Uint32x8) Uint32x8
  3345  
  3346  // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y.
  3347  //
  3348  // Asm: VPUNPCKHDQ, CPU Feature: AVX512
  3349  func (x Uint32x16) InterleaveHiGrouped(y Uint32x16) Uint32x16
  3350  
  3351  // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y.
  3352  //
  3353  // Asm: VPUNPCKHQDQ, CPU Feature: AVX2
  3354  func (x Uint64x4) InterleaveHiGrouped(y Uint64x4) Uint64x4
  3355  
  3356  // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y.
  3357  //
  3358  // Asm: VPUNPCKHQDQ, CPU Feature: AVX512
  3359  func (x Uint64x8) InterleaveHiGrouped(y Uint64x8) Uint64x8
  3360  
  3361  /* InterleaveLo */
  3362  
  3363  // InterleaveLo interleaves the elements of the low halves of x and y.
  3364  //
  3365  // Asm: VPUNPCKLWD, CPU Feature: AVX
  3366  func (x Int16x8) InterleaveLo(y Int16x8) Int16x8
  3367  
  3368  // InterleaveLo interleaves the elements of the low halves of x and y.
  3369  //
  3370  // Asm: VPUNPCKLDQ, CPU Feature: AVX
  3371  func (x Int32x4) InterleaveLo(y Int32x4) Int32x4
  3372  
  3373  // InterleaveLo interleaves the elements of the low halves of x and y.
  3374  //
  3375  // Asm: VPUNPCKLQDQ, CPU Feature: AVX
  3376  func (x Int64x2) InterleaveLo(y Int64x2) Int64x2
  3377  
  3378  // InterleaveLo interleaves the elements of the low halves of x and y.
  3379  //
  3380  // Asm: VPUNPCKLWD, CPU Feature: AVX
  3381  func (x Uint16x8) InterleaveLo(y Uint16x8) Uint16x8
  3382  
  3383  // InterleaveLo interleaves the elements of the low halves of x and y.
  3384  //
  3385  // Asm: VPUNPCKLDQ, CPU Feature: AVX
  3386  func (x Uint32x4) InterleaveLo(y Uint32x4) Uint32x4
  3387  
  3388  // InterleaveLo interleaves the elements of the low halves of x and y.
  3389  //
  3390  // Asm: VPUNPCKLQDQ, CPU Feature: AVX
  3391  func (x Uint64x2) InterleaveLo(y Uint64x2) Uint64x2
  3392  
  3393  /* InterleaveLoGrouped */
  3394  
  3395  // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y.
  3396  //
  3397  // Asm: VPUNPCKLWD, CPU Feature: AVX2
  3398  func (x Int16x16) InterleaveLoGrouped(y Int16x16) Int16x16
  3399  
  3400  // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y.
  3401  //
  3402  // Asm: VPUNPCKLWD, CPU Feature: AVX512
  3403  func (x Int16x32) InterleaveLoGrouped(y Int16x32) Int16x32
  3404  
  3405  // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y.
  3406  //
  3407  // Asm: VPUNPCKLDQ, CPU Feature: AVX2
  3408  func (x Int32x8) InterleaveLoGrouped(y Int32x8) Int32x8
  3409  
  3410  // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y.
  3411  //
  3412  // Asm: VPUNPCKLDQ, CPU Feature: AVX512
  3413  func (x Int32x16) InterleaveLoGrouped(y Int32x16) Int32x16
  3414  
  3415  // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y.
  3416  //
  3417  // Asm: VPUNPCKLQDQ, CPU Feature: AVX2
  3418  func (x Int64x4) InterleaveLoGrouped(y Int64x4) Int64x4
  3419  
  3420  // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y.
  3421  //
  3422  // Asm: VPUNPCKLQDQ, CPU Feature: AVX512
  3423  func (x Int64x8) InterleaveLoGrouped(y Int64x8) Int64x8
  3424  
  3425  // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y.
  3426  //
  3427  // Asm: VPUNPCKLWD, CPU Feature: AVX2
  3428  func (x Uint16x16) InterleaveLoGrouped(y Uint16x16) Uint16x16
  3429  
  3430  // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y.
  3431  //
  3432  // Asm: VPUNPCKLWD, CPU Feature: AVX512
  3433  func (x Uint16x32) InterleaveLoGrouped(y Uint16x32) Uint16x32
  3434  
  3435  // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y.
  3436  //
  3437  // Asm: VPUNPCKLDQ, CPU Feature: AVX2
  3438  func (x Uint32x8) InterleaveLoGrouped(y Uint32x8) Uint32x8
  3439  
  3440  // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y.
  3441  //
  3442  // Asm: VPUNPCKLDQ, CPU Feature: AVX512
  3443  func (x Uint32x16) InterleaveLoGrouped(y Uint32x16) Uint32x16
  3444  
  3445  // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y.
  3446  //
  3447  // Asm: VPUNPCKLQDQ, CPU Feature: AVX2
  3448  func (x Uint64x4) InterleaveLoGrouped(y Uint64x4) Uint64x4
  3449  
  3450  // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y.
  3451  //
  3452  // Asm: VPUNPCKLQDQ, CPU Feature: AVX512
  3453  func (x Uint64x8) InterleaveLoGrouped(y Uint64x8) Uint64x8
  3454  
  3455  /* LeadingZeros */
  3456  
  3457  // LeadingZeros counts the leading zeros of each element in x.
  3458  //
  3459  // Asm: VPLZCNTD, CPU Feature: AVX512
  3460  func (x Int32x4) LeadingZeros() Int32x4
  3461  
  3462  // LeadingZeros counts the leading zeros of each element in x.
  3463  //
  3464  // Asm: VPLZCNTD, CPU Feature: AVX512
  3465  func (x Int32x8) LeadingZeros() Int32x8
  3466  
  3467  // LeadingZeros counts the leading zeros of each element in x.
  3468  //
  3469  // Asm: VPLZCNTD, CPU Feature: AVX512
  3470  func (x Int32x16) LeadingZeros() Int32x16
  3471  
  3472  // LeadingZeros counts the leading zeros of each element in x.
  3473  //
  3474  // Asm: VPLZCNTQ, CPU Feature: AVX512
  3475  func (x Int64x2) LeadingZeros() Int64x2
  3476  
  3477  // LeadingZeros counts the leading zeros of each element in x.
  3478  //
  3479  // Asm: VPLZCNTQ, CPU Feature: AVX512
  3480  func (x Int64x4) LeadingZeros() Int64x4
  3481  
  3482  // LeadingZeros counts the leading zeros of each element in x.
  3483  //
  3484  // Asm: VPLZCNTQ, CPU Feature: AVX512
  3485  func (x Int64x8) LeadingZeros() Int64x8
  3486  
  3487  // LeadingZeros counts the leading zeros of each element in x.
  3488  //
  3489  // Asm: VPLZCNTD, CPU Feature: AVX512
  3490  func (x Uint32x4) LeadingZeros() Uint32x4
  3491  
  3492  // LeadingZeros counts the leading zeros of each element in x.
  3493  //
  3494  // Asm: VPLZCNTD, CPU Feature: AVX512
  3495  func (x Uint32x8) LeadingZeros() Uint32x8
  3496  
  3497  // LeadingZeros counts the leading zeros of each element in x.
  3498  //
  3499  // Asm: VPLZCNTD, CPU Feature: AVX512
  3500  func (x Uint32x16) LeadingZeros() Uint32x16
  3501  
  3502  // LeadingZeros counts the leading zeros of each element in x.
  3503  //
  3504  // Asm: VPLZCNTQ, CPU Feature: AVX512
  3505  func (x Uint64x2) LeadingZeros() Uint64x2
  3506  
  3507  // LeadingZeros counts the leading zeros of each element in x.
  3508  //
  3509  // Asm: VPLZCNTQ, CPU Feature: AVX512
  3510  func (x Uint64x4) LeadingZeros() Uint64x4
  3511  
  3512  // LeadingZeros counts the leading zeros of each element in x.
  3513  //
  3514  // Asm: VPLZCNTQ, CPU Feature: AVX512
  3515  func (x Uint64x8) LeadingZeros() Uint64x8
  3516  
  3517  /* Less */
  3518  
  3519  // Less returns a mask whose elements indicate whether x < y.
  3520  //
  3521  // Asm: VCMPPS, CPU Feature: AVX
  3522  func (x Float32x4) Less(y Float32x4) Mask32x4
  3523  
  3524  // Less returns a mask whose elements indicate whether x < y.
  3525  //
  3526  // Asm: VCMPPS, CPU Feature: AVX
  3527  func (x Float32x8) Less(y Float32x8) Mask32x8
  3528  
  3529  // Less returns a mask whose elements indicate whether x < y.
  3530  //
  3531  // Asm: VCMPPS, CPU Feature: AVX512
  3532  func (x Float32x16) Less(y Float32x16) Mask32x16
  3533  
  3534  // Less returns a mask whose elements indicate whether x < y.
  3535  //
  3536  // Asm: VCMPPD, CPU Feature: AVX
  3537  func (x Float64x2) Less(y Float64x2) Mask64x2
  3538  
  3539  // Less returns a mask whose elements indicate whether x < y.
  3540  //
  3541  // Asm: VCMPPD, CPU Feature: AVX
  3542  func (x Float64x4) Less(y Float64x4) Mask64x4
  3543  
  3544  // Less returns a mask whose elements indicate whether x < y.
  3545  //
  3546  // Asm: VCMPPD, CPU Feature: AVX512
  3547  func (x Float64x8) Less(y Float64x8) Mask64x8
  3548  
  3549  // Less returns a mask whose elements indicate whether x < y.
  3550  //
  3551  // Asm: VPCMPB, CPU Feature: AVX512
  3552  func (x Int8x64) Less(y Int8x64) Mask8x64
  3553  
  3554  // Less returns a mask whose elements indicate whether x < y.
  3555  //
  3556  // Asm: VPCMPW, CPU Feature: AVX512
  3557  func (x Int16x32) Less(y Int16x32) Mask16x32
  3558  
  3559  // Less returns a mask whose elements indicate whether x < y.
  3560  //
  3561  // Asm: VPCMPD, CPU Feature: AVX512
  3562  func (x Int32x16) Less(y Int32x16) Mask32x16
  3563  
  3564  // Less returns a mask whose elements indicate whether x < y.
  3565  //
  3566  // Asm: VPCMPQ, CPU Feature: AVX512
  3567  func (x Int64x8) Less(y Int64x8) Mask64x8
  3568  
  3569  // Less returns a mask whose elements indicate whether x < y.
  3570  //
  3571  // Asm: VPCMPUB, CPU Feature: AVX512
  3572  func (x Uint8x64) Less(y Uint8x64) Mask8x64
  3573  
  3574  // Less returns a mask whose elements indicate whether x < y.
  3575  //
  3576  // Asm: VPCMPUW, CPU Feature: AVX512
  3577  func (x Uint16x32) Less(y Uint16x32) Mask16x32
  3578  
  3579  // Less returns a mask whose elements indicate whether x < y.
  3580  //
  3581  // Asm: VPCMPUD, CPU Feature: AVX512
  3582  func (x Uint32x16) Less(y Uint32x16) Mask32x16
  3583  
  3584  // Less returns a mask whose elements indicate whether x < y.
  3585  //
  3586  // Asm: VPCMPUQ, CPU Feature: AVX512
  3587  func (x Uint64x8) Less(y Uint64x8) Mask64x8
  3588  
  3589  /* LessEqual */
  3590  
  3591  // LessEqual returns a mask whose elements indicate whether x <= y.
  3592  //
  3593  // Asm: VCMPPS, CPU Feature: AVX
  3594  func (x Float32x4) LessEqual(y Float32x4) Mask32x4
  3595  
  3596  // LessEqual returns a mask whose elements indicate whether x <= y.
  3597  //
  3598  // Asm: VCMPPS, CPU Feature: AVX
  3599  func (x Float32x8) LessEqual(y Float32x8) Mask32x8
  3600  
  3601  // LessEqual returns a mask whose elements indicate whether x <= y.
  3602  //
  3603  // Asm: VCMPPS, CPU Feature: AVX512
  3604  func (x Float32x16) LessEqual(y Float32x16) Mask32x16
  3605  
  3606  // LessEqual returns a mask whose elements indicate whether x <= y.
  3607  //
  3608  // Asm: VCMPPD, CPU Feature: AVX
  3609  func (x Float64x2) LessEqual(y Float64x2) Mask64x2
  3610  
  3611  // LessEqual returns a mask whose elements indicate whether x <= y.
  3612  //
  3613  // Asm: VCMPPD, CPU Feature: AVX
  3614  func (x Float64x4) LessEqual(y Float64x4) Mask64x4
  3615  
  3616  // LessEqual returns a mask whose elements indicate whether x <= y.
  3617  //
  3618  // Asm: VCMPPD, CPU Feature: AVX512
  3619  func (x Float64x8) LessEqual(y Float64x8) Mask64x8
  3620  
  3621  // LessEqual returns a mask whose elements indicate whether x <= y.
  3622  //
  3623  // Asm: VPCMPB, CPU Feature: AVX512
  3624  func (x Int8x64) LessEqual(y Int8x64) Mask8x64
  3625  
  3626  // LessEqual returns a mask whose elements indicate whether x <= y.
  3627  //
  3628  // Asm: VPCMPW, CPU Feature: AVX512
  3629  func (x Int16x32) LessEqual(y Int16x32) Mask16x32
  3630  
  3631  // LessEqual returns a mask whose elements indicate whether x <= y.
  3632  //
  3633  // Asm: VPCMPD, CPU Feature: AVX512
  3634  func (x Int32x16) LessEqual(y Int32x16) Mask32x16
  3635  
  3636  // LessEqual returns a mask whose elements indicate whether x <= y.
  3637  //
  3638  // Asm: VPCMPQ, CPU Feature: AVX512
  3639  func (x Int64x8) LessEqual(y Int64x8) Mask64x8
  3640  
  3641  // LessEqual returns a mask whose elements indicate whether x <= y.
  3642  //
  3643  // Asm: VPCMPUB, CPU Feature: AVX512
  3644  func (x Uint8x64) LessEqual(y Uint8x64) Mask8x64
  3645  
  3646  // LessEqual returns a mask whose elements indicate whether x <= y.
  3647  //
  3648  // Asm: VPCMPUW, CPU Feature: AVX512
  3649  func (x Uint16x32) LessEqual(y Uint16x32) Mask16x32
  3650  
  3651  // LessEqual returns a mask whose elements indicate whether x <= y.
  3652  //
  3653  // Asm: VPCMPUD, CPU Feature: AVX512
  3654  func (x Uint32x16) LessEqual(y Uint32x16) Mask32x16
  3655  
  3656  // LessEqual returns a mask whose elements indicate whether x <= y.
  3657  //
  3658  // Asm: VPCMPUQ, CPU Feature: AVX512
  3659  func (x Uint64x8) LessEqual(y Uint64x8) Mask64x8
  3660  
  3661  /* Max */
  3662  
  3663  // Max computes the maximum of each pair of corresponding elements in x and y.
  3664  //
  3665  // Asm: VMAXPS, CPU Feature: AVX
  3666  func (x Float32x4) Max(y Float32x4) Float32x4
  3667  
  3668  // Max computes the maximum of each pair of corresponding elements in x and y.
  3669  //
  3670  // Asm: VMAXPS, CPU Feature: AVX
  3671  func (x Float32x8) Max(y Float32x8) Float32x8
  3672  
  3673  // Max computes the maximum of each pair of corresponding elements in x and y.
  3674  //
  3675  // Asm: VMAXPS, CPU Feature: AVX512
  3676  func (x Float32x16) Max(y Float32x16) Float32x16
  3677  
  3678  // Max computes the maximum of each pair of corresponding elements in x and y.
  3679  //
  3680  // Asm: VMAXPD, CPU Feature: AVX
  3681  func (x Float64x2) Max(y Float64x2) Float64x2
  3682  
  3683  // Max computes the maximum of each pair of corresponding elements in x and y.
  3684  //
  3685  // Asm: VMAXPD, CPU Feature: AVX
  3686  func (x Float64x4) Max(y Float64x4) Float64x4
  3687  
  3688  // Max computes the maximum of each pair of corresponding elements in x and y.
  3689  //
  3690  // Asm: VMAXPD, CPU Feature: AVX512
  3691  func (x Float64x8) Max(y Float64x8) Float64x8
  3692  
  3693  // Max computes the maximum of each pair of corresponding elements in x and y.
  3694  //
  3695  // Asm: VPMAXSB, CPU Feature: AVX
  3696  func (x Int8x16) Max(y Int8x16) Int8x16
  3697  
  3698  // Max computes the maximum of each pair of corresponding elements in x and y.
  3699  //
  3700  // Asm: VPMAXSB, CPU Feature: AVX2
  3701  func (x Int8x32) Max(y Int8x32) Int8x32
  3702  
  3703  // Max computes the maximum of each pair of corresponding elements in x and y.
  3704  //
  3705  // Asm: VPMAXSB, CPU Feature: AVX512
  3706  func (x Int8x64) Max(y Int8x64) Int8x64
  3707  
  3708  // Max computes the maximum of each pair of corresponding elements in x and y.
  3709  //
  3710  // Asm: VPMAXSW, CPU Feature: AVX
  3711  func (x Int16x8) Max(y Int16x8) Int16x8
  3712  
  3713  // Max computes the maximum of each pair of corresponding elements in x and y.
  3714  //
  3715  // Asm: VPMAXSW, CPU Feature: AVX2
  3716  func (x Int16x16) Max(y Int16x16) Int16x16
  3717  
  3718  // Max computes the maximum of each pair of corresponding elements in x and y.
  3719  //
  3720  // Asm: VPMAXSW, CPU Feature: AVX512
  3721  func (x Int16x32) Max(y Int16x32) Int16x32
  3722  
  3723  // Max computes the maximum of each pair of corresponding elements in x and y.
  3724  //
  3725  // Asm: VPMAXSD, CPU Feature: AVX
  3726  func (x Int32x4) Max(y Int32x4) Int32x4
  3727  
  3728  // Max computes the maximum of each pair of corresponding elements in x and y.
  3729  //
  3730  // Asm: VPMAXSD, CPU Feature: AVX2
  3731  func (x Int32x8) Max(y Int32x8) Int32x8
  3732  
  3733  // Max computes the maximum of each pair of corresponding elements in x and y.
  3734  //
  3735  // Asm: VPMAXSD, CPU Feature: AVX512
  3736  func (x Int32x16) Max(y Int32x16) Int32x16
  3737  
  3738  // Max computes the maximum of each pair of corresponding elements in x and y.
  3739  //
  3740  // Asm: VPMAXSQ, CPU Feature: AVX512
  3741  func (x Int64x2) Max(y Int64x2) Int64x2
  3742  
  3743  // Max computes the maximum of each pair of corresponding elements in x and y.
  3744  //
  3745  // Asm: VPMAXSQ, CPU Feature: AVX512
  3746  func (x Int64x4) Max(y Int64x4) Int64x4
  3747  
  3748  // Max computes the maximum of each pair of corresponding elements in x and y.
  3749  //
  3750  // Asm: VPMAXSQ, CPU Feature: AVX512
  3751  func (x Int64x8) Max(y Int64x8) Int64x8
  3752  
  3753  // Max computes the maximum of each pair of corresponding elements in x and y.
  3754  //
  3755  // Asm: VPMAXUB, CPU Feature: AVX
  3756  func (x Uint8x16) Max(y Uint8x16) Uint8x16
  3757  
  3758  // Max computes the maximum of each pair of corresponding elements in x and y.
  3759  //
  3760  // Asm: VPMAXUB, CPU Feature: AVX2
  3761  func (x Uint8x32) Max(y Uint8x32) Uint8x32
  3762  
  3763  // Max computes the maximum of each pair of corresponding elements in x and y.
  3764  //
  3765  // Asm: VPMAXUB, CPU Feature: AVX512
  3766  func (x Uint8x64) Max(y Uint8x64) Uint8x64
  3767  
  3768  // Max computes the maximum of each pair of corresponding elements in x and y.
  3769  //
  3770  // Asm: VPMAXUW, CPU Feature: AVX
  3771  func (x Uint16x8) Max(y Uint16x8) Uint16x8
  3772  
  3773  // Max computes the maximum of each pair of corresponding elements in x and y.
  3774  //
  3775  // Asm: VPMAXUW, CPU Feature: AVX2
  3776  func (x Uint16x16) Max(y Uint16x16) Uint16x16
  3777  
  3778  // Max computes the maximum of each pair of corresponding elements in x and y.
  3779  //
  3780  // Asm: VPMAXUW, CPU Feature: AVX512
  3781  func (x Uint16x32) Max(y Uint16x32) Uint16x32
  3782  
  3783  // Max computes the maximum of each pair of corresponding elements in x and y.
  3784  //
  3785  // Asm: VPMAXUD, CPU Feature: AVX
  3786  func (x Uint32x4) Max(y Uint32x4) Uint32x4
  3787  
  3788  // Max computes the maximum of each pair of corresponding elements in x and y.
  3789  //
  3790  // Asm: VPMAXUD, CPU Feature: AVX2
  3791  func (x Uint32x8) Max(y Uint32x8) Uint32x8
  3792  
  3793  // Max computes the maximum of each pair of corresponding elements in x and y.
  3794  //
  3795  // Asm: VPMAXUD, CPU Feature: AVX512
  3796  func (x Uint32x16) Max(y Uint32x16) Uint32x16
  3797  
  3798  // Max computes the maximum of each pair of corresponding elements in x and y.
  3799  //
  3800  // Asm: VPMAXUQ, CPU Feature: AVX512
  3801  func (x Uint64x2) Max(y Uint64x2) Uint64x2
  3802  
  3803  // Max computes the maximum of each pair of corresponding elements in x and y.
  3804  //
  3805  // Asm: VPMAXUQ, CPU Feature: AVX512
  3806  func (x Uint64x4) Max(y Uint64x4) Uint64x4
  3807  
  3808  // Max computes the maximum of each pair of corresponding elements in x and y.
  3809  //
  3810  // Asm: VPMAXUQ, CPU Feature: AVX512
  3811  func (x Uint64x8) Max(y Uint64x8) Uint64x8
  3812  
  3813  /* Min */
  3814  
  3815  // Min computes the minimum of each pair of corresponding elements in x and y.
  3816  //
  3817  // Asm: VMINPS, CPU Feature: AVX
  3818  func (x Float32x4) Min(y Float32x4) Float32x4
  3819  
  3820  // Min computes the minimum of each pair of corresponding elements in x and y.
  3821  //
  3822  // Asm: VMINPS, CPU Feature: AVX
  3823  func (x Float32x8) Min(y Float32x8) Float32x8
  3824  
  3825  // Min computes the minimum of each pair of corresponding elements in x and y.
  3826  //
  3827  // Asm: VMINPS, CPU Feature: AVX512
  3828  func (x Float32x16) Min(y Float32x16) Float32x16
  3829  
  3830  // Min computes the minimum of each pair of corresponding elements in x and y.
  3831  //
  3832  // Asm: VMINPD, CPU Feature: AVX
  3833  func (x Float64x2) Min(y Float64x2) Float64x2
  3834  
  3835  // Min computes the minimum of each pair of corresponding elements in x and y.
  3836  //
  3837  // Asm: VMINPD, CPU Feature: AVX
  3838  func (x Float64x4) Min(y Float64x4) Float64x4
  3839  
  3840  // Min computes the minimum of each pair of corresponding elements in x and y.
  3841  //
  3842  // Asm: VMINPD, CPU Feature: AVX512
  3843  func (x Float64x8) Min(y Float64x8) Float64x8
  3844  
  3845  // Min computes the minimum of each pair of corresponding elements in x and y.
  3846  //
  3847  // Asm: VPMINSB, CPU Feature: AVX
  3848  func (x Int8x16) Min(y Int8x16) Int8x16
  3849  
  3850  // Min computes the minimum of each pair of corresponding elements in x and y.
  3851  //
  3852  // Asm: VPMINSB, CPU Feature: AVX2
  3853  func (x Int8x32) Min(y Int8x32) Int8x32
  3854  
  3855  // Min computes the minimum of each pair of corresponding elements in x and y.
  3856  //
  3857  // Asm: VPMINSB, CPU Feature: AVX512
  3858  func (x Int8x64) Min(y Int8x64) Int8x64
  3859  
  3860  // Min computes the minimum of each pair of corresponding elements in x and y.
  3861  //
  3862  // Asm: VPMINSW, CPU Feature: AVX
  3863  func (x Int16x8) Min(y Int16x8) Int16x8
  3864  
  3865  // Min computes the minimum of each pair of corresponding elements in x and y.
  3866  //
  3867  // Asm: VPMINSW, CPU Feature: AVX2
  3868  func (x Int16x16) Min(y Int16x16) Int16x16
  3869  
  3870  // Min computes the minimum of each pair of corresponding elements in x and y.
  3871  //
  3872  // Asm: VPMINSW, CPU Feature: AVX512
  3873  func (x Int16x32) Min(y Int16x32) Int16x32
  3874  
  3875  // Min computes the minimum of each pair of corresponding elements in x and y.
  3876  //
  3877  // Asm: VPMINSD, CPU Feature: AVX
  3878  func (x Int32x4) Min(y Int32x4) Int32x4
  3879  
  3880  // Min computes the minimum of each pair of corresponding elements in x and y.
  3881  //
  3882  // Asm: VPMINSD, CPU Feature: AVX2
  3883  func (x Int32x8) Min(y Int32x8) Int32x8
  3884  
  3885  // Min computes the minimum of each pair of corresponding elements in x and y.
  3886  //
  3887  // Asm: VPMINSD, CPU Feature: AVX512
  3888  func (x Int32x16) Min(y Int32x16) Int32x16
  3889  
  3890  // Min computes the minimum of each pair of corresponding elements in x and y.
  3891  //
  3892  // Asm: VPMINSQ, CPU Feature: AVX512
  3893  func (x Int64x2) Min(y Int64x2) Int64x2
  3894  
  3895  // Min computes the minimum of each pair of corresponding elements in x and y.
  3896  //
  3897  // Asm: VPMINSQ, CPU Feature: AVX512
  3898  func (x Int64x4) Min(y Int64x4) Int64x4
  3899  
  3900  // Min computes the minimum of each pair of corresponding elements in x and y.
  3901  //
  3902  // Asm: VPMINSQ, CPU Feature: AVX512
  3903  func (x Int64x8) Min(y Int64x8) Int64x8
  3904  
  3905  // Min computes the minimum of each pair of corresponding elements in x and y.
  3906  //
  3907  // Asm: VPMINUB, CPU Feature: AVX
  3908  func (x Uint8x16) Min(y Uint8x16) Uint8x16
  3909  
  3910  // Min computes the minimum of each pair of corresponding elements in x and y.
  3911  //
  3912  // Asm: VPMINUB, CPU Feature: AVX2
  3913  func (x Uint8x32) Min(y Uint8x32) Uint8x32
  3914  
  3915  // Min computes the minimum of each pair of corresponding elements in x and y.
  3916  //
  3917  // Asm: VPMINUB, CPU Feature: AVX512
  3918  func (x Uint8x64) Min(y Uint8x64) Uint8x64
  3919  
  3920  // Min computes the minimum of each pair of corresponding elements in x and y.
  3921  //
  3922  // Asm: VPMINUW, CPU Feature: AVX
  3923  func (x Uint16x8) Min(y Uint16x8) Uint16x8
  3924  
  3925  // Min computes the minimum of each pair of corresponding elements in x and y.
  3926  //
  3927  // Asm: VPMINUW, CPU Feature: AVX2
  3928  func (x Uint16x16) Min(y Uint16x16) Uint16x16
  3929  
  3930  // Min computes the minimum of each pair of corresponding elements in x and y.
  3931  //
  3932  // Asm: VPMINUW, CPU Feature: AVX512
  3933  func (x Uint16x32) Min(y Uint16x32) Uint16x32
  3934  
  3935  // Min computes the minimum of each pair of corresponding elements in x and y.
  3936  //
  3937  // Asm: VPMINUD, CPU Feature: AVX
  3938  func (x Uint32x4) Min(y Uint32x4) Uint32x4
  3939  
  3940  // Min computes the minimum of each pair of corresponding elements in x and y.
  3941  //
  3942  // Asm: VPMINUD, CPU Feature: AVX2
  3943  func (x Uint32x8) Min(y Uint32x8) Uint32x8
  3944  
  3945  // Min computes the minimum of each pair of corresponding elements in x and y.
  3946  //
  3947  // Asm: VPMINUD, CPU Feature: AVX512
  3948  func (x Uint32x16) Min(y Uint32x16) Uint32x16
  3949  
  3950  // Min computes the minimum of each pair of corresponding elements in x and y.
  3951  //
  3952  // Asm: VPMINUQ, CPU Feature: AVX512
  3953  func (x Uint64x2) Min(y Uint64x2) Uint64x2
  3954  
  3955  // Min computes the minimum of each pair of corresponding elements in x and y.
  3956  //
  3957  // Asm: VPMINUQ, CPU Feature: AVX512
  3958  func (x Uint64x4) Min(y Uint64x4) Uint64x4
  3959  
  3960  // Min computes the minimum of each pair of corresponding elements in x and y.
  3961  //
  3962  // Asm: VPMINUQ, CPU Feature: AVX512
  3963  func (x Uint64x8) Min(y Uint64x8) Uint64x8
  3964  
  3965  /* Mul */
  3966  
  3967  // Mul multiplies corresponding elements of two vectors.
  3968  //
  3969  // Asm: VMULPS, CPU Feature: AVX
  3970  func (x Float32x4) Mul(y Float32x4) Float32x4
  3971  
  3972  // Mul multiplies corresponding elements of two vectors.
  3973  //
  3974  // Asm: VMULPS, CPU Feature: AVX
  3975  func (x Float32x8) Mul(y Float32x8) Float32x8
  3976  
  3977  // Mul multiplies corresponding elements of two vectors.
  3978  //
  3979  // Asm: VMULPS, CPU Feature: AVX512
  3980  func (x Float32x16) Mul(y Float32x16) Float32x16
  3981  
  3982  // Mul multiplies corresponding elements of two vectors.
  3983  //
  3984  // Asm: VMULPD, CPU Feature: AVX
  3985  func (x Float64x2) Mul(y Float64x2) Float64x2
  3986  
  3987  // Mul multiplies corresponding elements of two vectors.
  3988  //
  3989  // Asm: VMULPD, CPU Feature: AVX
  3990  func (x Float64x4) Mul(y Float64x4) Float64x4
  3991  
  3992  // Mul multiplies corresponding elements of two vectors.
  3993  //
  3994  // Asm: VMULPD, CPU Feature: AVX512
  3995  func (x Float64x8) Mul(y Float64x8) Float64x8
  3996  
  3997  // Mul multiplies corresponding elements of two vectors.
  3998  //
  3999  // Asm: VPMULLW, CPU Feature: AVX
  4000  func (x Int16x8) Mul(y Int16x8) Int16x8
  4001  
  4002  // Mul multiplies corresponding elements of two vectors.
  4003  //
  4004  // Asm: VPMULLW, CPU Feature: AVX2
  4005  func (x Int16x16) Mul(y Int16x16) Int16x16
  4006  
  4007  // Mul multiplies corresponding elements of two vectors.
  4008  //
  4009  // Asm: VPMULLW, CPU Feature: AVX512
  4010  func (x Int16x32) Mul(y Int16x32) Int16x32
  4011  
  4012  // Mul multiplies corresponding elements of two vectors.
  4013  //
  4014  // Asm: VPMULLD, CPU Feature: AVX
  4015  func (x Int32x4) Mul(y Int32x4) Int32x4
  4016  
  4017  // Mul multiplies corresponding elements of two vectors.
  4018  //
  4019  // Asm: VPMULLD, CPU Feature: AVX2
  4020  func (x Int32x8) Mul(y Int32x8) Int32x8
  4021  
  4022  // Mul multiplies corresponding elements of two vectors.
  4023  //
  4024  // Asm: VPMULLD, CPU Feature: AVX512
  4025  func (x Int32x16) Mul(y Int32x16) Int32x16
  4026  
  4027  // Mul multiplies corresponding elements of two vectors.
  4028  //
  4029  // Asm: VPMULLQ, CPU Feature: AVX512
  4030  func (x Int64x2) Mul(y Int64x2) Int64x2
  4031  
  4032  // Mul multiplies corresponding elements of two vectors.
  4033  //
  4034  // Asm: VPMULLQ, CPU Feature: AVX512
  4035  func (x Int64x4) Mul(y Int64x4) Int64x4
  4036  
  4037  // Mul multiplies corresponding elements of two vectors.
  4038  //
  4039  // Asm: VPMULLQ, CPU Feature: AVX512
  4040  func (x Int64x8) Mul(y Int64x8) Int64x8
  4041  
  4042  // Mul multiplies corresponding elements of two vectors.
  4043  //
  4044  // Asm: VPMULLW, CPU Feature: AVX
  4045  func (x Uint16x8) Mul(y Uint16x8) Uint16x8
  4046  
  4047  // Mul multiplies corresponding elements of two vectors.
  4048  //
  4049  // Asm: VPMULLW, CPU Feature: AVX2
  4050  func (x Uint16x16) Mul(y Uint16x16) Uint16x16
  4051  
  4052  // Mul multiplies corresponding elements of two vectors.
  4053  //
  4054  // Asm: VPMULLW, CPU Feature: AVX512
  4055  func (x Uint16x32) Mul(y Uint16x32) Uint16x32
  4056  
  4057  // Mul multiplies corresponding elements of two vectors.
  4058  //
  4059  // Asm: VPMULLD, CPU Feature: AVX
  4060  func (x Uint32x4) Mul(y Uint32x4) Uint32x4
  4061  
  4062  // Mul multiplies corresponding elements of two vectors.
  4063  //
  4064  // Asm: VPMULLD, CPU Feature: AVX2
  4065  func (x Uint32x8) Mul(y Uint32x8) Uint32x8
  4066  
  4067  // Mul multiplies corresponding elements of two vectors.
  4068  //
  4069  // Asm: VPMULLD, CPU Feature: AVX512
  4070  func (x Uint32x16) Mul(y Uint32x16) Uint32x16
  4071  
  4072  // Mul multiplies corresponding elements of two vectors.
  4073  //
  4074  // Asm: VPMULLQ, CPU Feature: AVX512
  4075  func (x Uint64x2) Mul(y Uint64x2) Uint64x2
  4076  
  4077  // Mul multiplies corresponding elements of two vectors.
  4078  //
  4079  // Asm: VPMULLQ, CPU Feature: AVX512
  4080  func (x Uint64x4) Mul(y Uint64x4) Uint64x4
  4081  
  4082  // Mul multiplies corresponding elements of two vectors.
  4083  //
  4084  // Asm: VPMULLQ, CPU Feature: AVX512
  4085  func (x Uint64x8) Mul(y Uint64x8) Uint64x8
  4086  
  4087  /* MulAdd */
  4088  
  4089  // MulAdd performs a fused (x * y) + z.
  4090  //
  4091  // Asm: VFMADD213PS, CPU Feature: AVX512
  4092  func (x Float32x4) MulAdd(y Float32x4, z Float32x4) Float32x4
  4093  
  4094  // MulAdd performs a fused (x * y) + z.
  4095  //
  4096  // Asm: VFMADD213PS, CPU Feature: AVX512
  4097  func (x Float32x8) MulAdd(y Float32x8, z Float32x8) Float32x8
  4098  
  4099  // MulAdd performs a fused (x * y) + z.
  4100  //
  4101  // Asm: VFMADD213PS, CPU Feature: AVX512
  4102  func (x Float32x16) MulAdd(y Float32x16, z Float32x16) Float32x16
  4103  
  4104  // MulAdd performs a fused (x * y) + z.
  4105  //
  4106  // Asm: VFMADD213PD, CPU Feature: AVX512
  4107  func (x Float64x2) MulAdd(y Float64x2, z Float64x2) Float64x2
  4108  
  4109  // MulAdd performs a fused (x * y) + z.
  4110  //
  4111  // Asm: VFMADD213PD, CPU Feature: AVX512
  4112  func (x Float64x4) MulAdd(y Float64x4, z Float64x4) Float64x4
  4113  
  4114  // MulAdd performs a fused (x * y) + z.
  4115  //
  4116  // Asm: VFMADD213PD, CPU Feature: AVX512
  4117  func (x Float64x8) MulAdd(y Float64x8, z Float64x8) Float64x8
  4118  
  4119  /* MulAddSub */
  4120  
  4121  // MulAddSub performs a fused (x * y) - z for odd-indexed elements, and (x * y) + z for even-indexed elements.
  4122  //
  4123  // Asm: VFMADDSUB213PS, CPU Feature: AVX512
  4124  func (x Float32x4) MulAddSub(y Float32x4, z Float32x4) Float32x4
  4125  
  4126  // MulAddSub performs a fused (x * y) - z for odd-indexed elements, and (x * y) + z for even-indexed elements.
  4127  //
  4128  // Asm: VFMADDSUB213PS, CPU Feature: AVX512
  4129  func (x Float32x8) MulAddSub(y Float32x8, z Float32x8) Float32x8
  4130  
  4131  // MulAddSub performs a fused (x * y) - z for odd-indexed elements, and (x * y) + z for even-indexed elements.
  4132  //
  4133  // Asm: VFMADDSUB213PS, CPU Feature: AVX512
  4134  func (x Float32x16) MulAddSub(y Float32x16, z Float32x16) Float32x16
  4135  
  4136  // MulAddSub performs a fused (x * y) - z for odd-indexed elements, and (x * y) + z for even-indexed elements.
  4137  //
  4138  // Asm: VFMADDSUB213PD, CPU Feature: AVX512
  4139  func (x Float64x2) MulAddSub(y Float64x2, z Float64x2) Float64x2
  4140  
  4141  // MulAddSub performs a fused (x * y) - z for odd-indexed elements, and (x * y) + z for even-indexed elements.
  4142  //
  4143  // Asm: VFMADDSUB213PD, CPU Feature: AVX512
  4144  func (x Float64x4) MulAddSub(y Float64x4, z Float64x4) Float64x4
  4145  
  4146  // MulAddSub performs a fused (x * y) - z for odd-indexed elements, and (x * y) + z for even-indexed elements.
  4147  //
  4148  // Asm: VFMADDSUB213PD, CPU Feature: AVX512
  4149  func (x Float64x8) MulAddSub(y Float64x8, z Float64x8) Float64x8
  4150  
  4151  /* MulEvenWiden */
  4152  
  4153  // MulEvenWiden multiplies even-indexed elements, widening the result.
  4154  // Result[i] = v1[2*i] * v2[2*i].
  4155  //
  4156  // Asm: VPMULDQ, CPU Feature: AVX
  4157  func (x Int32x4) MulEvenWiden(y Int32x4) Int64x2
  4158  
  4159  // MulEvenWiden multiplies even-indexed elements, widening the result.
  4160  // Result[i] = v1[2*i] * v2[2*i].
  4161  //
  4162  // Asm: VPMULDQ, CPU Feature: AVX2
  4163  func (x Int32x8) MulEvenWiden(y Int32x8) Int64x4
  4164  
  4165  // MulEvenWiden multiplies even-indexed elements, widening the result.
  4166  // Result[i] = v1[2*i] * v2[2*i].
  4167  //
  4168  // Asm: VPMULUDQ, CPU Feature: AVX
  4169  func (x Uint32x4) MulEvenWiden(y Uint32x4) Uint64x2
  4170  
  4171  // MulEvenWiden multiplies even-indexed elements, widening the result.
  4172  // Result[i] = v1[2*i] * v2[2*i].
  4173  //
  4174  // Asm: VPMULUDQ, CPU Feature: AVX2
  4175  func (x Uint32x8) MulEvenWiden(y Uint32x8) Uint64x4
  4176  
  4177  /* MulHigh */
  4178  
  4179  // MulHigh multiplies elements and stores the high part of the result.
  4180  //
  4181  // Asm: VPMULHW, CPU Feature: AVX
  4182  func (x Int16x8) MulHigh(y Int16x8) Int16x8
  4183  
  4184  // MulHigh multiplies elements and stores the high part of the result.
  4185  //
  4186  // Asm: VPMULHW, CPU Feature: AVX2
  4187  func (x Int16x16) MulHigh(y Int16x16) Int16x16
  4188  
  4189  // MulHigh multiplies elements and stores the high part of the result.
  4190  //
  4191  // Asm: VPMULHW, CPU Feature: AVX512
  4192  func (x Int16x32) MulHigh(y Int16x32) Int16x32
  4193  
  4194  // MulHigh multiplies elements and stores the high part of the result.
  4195  //
  4196  // Asm: VPMULHUW, CPU Feature: AVX
  4197  func (x Uint16x8) MulHigh(y Uint16x8) Uint16x8
  4198  
  4199  // MulHigh multiplies elements and stores the high part of the result.
  4200  //
  4201  // Asm: VPMULHUW, CPU Feature: AVX2
  4202  func (x Uint16x16) MulHigh(y Uint16x16) Uint16x16
  4203  
  4204  // MulHigh multiplies elements and stores the high part of the result.
  4205  //
  4206  // Asm: VPMULHUW, CPU Feature: AVX512
  4207  func (x Uint16x32) MulHigh(y Uint16x32) Uint16x32
  4208  
  4209  /* MulSubAdd */
  4210  
  4211  // MulSubAdd performs a fused (x * y) + z for odd-indexed elements, and (x * y) - z for even-indexed elements.
  4212  //
  4213  // Asm: VFMSUBADD213PS, CPU Feature: AVX512
  4214  func (x Float32x4) MulSubAdd(y Float32x4, z Float32x4) Float32x4
  4215  
  4216  // MulSubAdd performs a fused (x * y) + z for odd-indexed elements, and (x * y) - z for even-indexed elements.
  4217  //
  4218  // Asm: VFMSUBADD213PS, CPU Feature: AVX512
  4219  func (x Float32x8) MulSubAdd(y Float32x8, z Float32x8) Float32x8
  4220  
  4221  // MulSubAdd performs a fused (x * y) + z for odd-indexed elements, and (x * y) - z for even-indexed elements.
  4222  //
  4223  // Asm: VFMSUBADD213PS, CPU Feature: AVX512
  4224  func (x Float32x16) MulSubAdd(y Float32x16, z Float32x16) Float32x16
  4225  
  4226  // MulSubAdd performs a fused (x * y) + z for odd-indexed elements, and (x * y) - z for even-indexed elements.
  4227  //
  4228  // Asm: VFMSUBADD213PD, CPU Feature: AVX512
  4229  func (x Float64x2) MulSubAdd(y Float64x2, z Float64x2) Float64x2
  4230  
  4231  // MulSubAdd performs a fused (x * y) + z for odd-indexed elements, and (x * y) - z for even-indexed elements.
  4232  //
  4233  // Asm: VFMSUBADD213PD, CPU Feature: AVX512
  4234  func (x Float64x4) MulSubAdd(y Float64x4, z Float64x4) Float64x4
  4235  
  4236  // MulSubAdd performs a fused (x * y) + z for odd-indexed elements, and (x * y) - z for even-indexed elements.
  4237  //
  4238  // Asm: VFMSUBADD213PD, CPU Feature: AVX512
  4239  func (x Float64x8) MulSubAdd(y Float64x8, z Float64x8) Float64x8
  4240  
  4241  /* NotEqual */
  4242  
  4243  // NotEqual returns a mask whose elements indicate whether x != y.
  4244  //
  4245  // Asm: VCMPPS, CPU Feature: AVX
  4246  func (x Float32x4) NotEqual(y Float32x4) Mask32x4
  4247  
  4248  // NotEqual returns a mask whose elements indicate whether x != y.
  4249  //
  4250  // Asm: VCMPPS, CPU Feature: AVX
  4251  func (x Float32x8) NotEqual(y Float32x8) Mask32x8
  4252  
  4253  // NotEqual returns a mask whose elements indicate whether x != y.
  4254  //
  4255  // Asm: VCMPPS, CPU Feature: AVX512
  4256  func (x Float32x16) NotEqual(y Float32x16) Mask32x16
  4257  
  4258  // NotEqual returns a mask whose elements indicate whether x != y.
  4259  //
  4260  // Asm: VCMPPD, CPU Feature: AVX
  4261  func (x Float64x2) NotEqual(y Float64x2) Mask64x2
  4262  
  4263  // NotEqual returns a mask whose elements indicate whether x != y.
  4264  //
  4265  // Asm: VCMPPD, CPU Feature: AVX
  4266  func (x Float64x4) NotEqual(y Float64x4) Mask64x4
  4267  
  4268  // NotEqual returns a mask whose elements indicate whether x != y.
  4269  //
  4270  // Asm: VCMPPD, CPU Feature: AVX512
  4271  func (x Float64x8) NotEqual(y Float64x8) Mask64x8
  4272  
  4273  // NotEqual returns a mask whose elements indicate whether x != y.
  4274  //
  4275  // Asm: VPCMPB, CPU Feature: AVX512
  4276  func (x Int8x64) NotEqual(y Int8x64) Mask8x64
  4277  
  4278  // NotEqual returns a mask whose elements indicate whether x != y.
  4279  //
  4280  // Asm: VPCMPW, CPU Feature: AVX512
  4281  func (x Int16x32) NotEqual(y Int16x32) Mask16x32
  4282  
  4283  // NotEqual returns a mask whose elements indicate whether x != y.
  4284  //
  4285  // Asm: VPCMPD, CPU Feature: AVX512
  4286  func (x Int32x16) NotEqual(y Int32x16) Mask32x16
  4287  
  4288  // NotEqual returns a mask whose elements indicate whether x != y.
  4289  //
  4290  // Asm: VPCMPQ, CPU Feature: AVX512
  4291  func (x Int64x8) NotEqual(y Int64x8) Mask64x8
  4292  
  4293  // NotEqual returns a mask whose elements indicate whether x != y.
  4294  //
  4295  // Asm: VPCMPUB, CPU Feature: AVX512
  4296  func (x Uint8x64) NotEqual(y Uint8x64) Mask8x64
  4297  
  4298  // NotEqual returns a mask whose elements indicate whether x != y.
  4299  //
  4300  // Asm: VPCMPUW, CPU Feature: AVX512
  4301  func (x Uint16x32) NotEqual(y Uint16x32) Mask16x32
  4302  
  4303  // NotEqual returns a mask whose elements indicate whether x != y.
  4304  //
  4305  // Asm: VPCMPUD, CPU Feature: AVX512
  4306  func (x Uint32x16) NotEqual(y Uint32x16) Mask32x16
  4307  
  4308  // NotEqual returns a mask whose elements indicate whether x != y.
  4309  //
  4310  // Asm: VPCMPUQ, CPU Feature: AVX512
  4311  func (x Uint64x8) NotEqual(y Uint64x8) Mask64x8
  4312  
  4313  /* OnesCount */
  4314  
  4315  // OnesCount counts the number of set bits in each element.
  4316  //
  4317  // Asm: VPOPCNTB, CPU Feature: AVX512BITALG
  4318  func (x Int8x16) OnesCount() Int8x16
  4319  
  4320  // OnesCount counts the number of set bits in each element.
  4321  //
  4322  // Asm: VPOPCNTB, CPU Feature: AVX512BITALG
  4323  func (x Int8x32) OnesCount() Int8x32
  4324  
  4325  // OnesCount counts the number of set bits in each element.
  4326  //
  4327  // Asm: VPOPCNTB, CPU Feature: AVX512BITALG
  4328  func (x Int8x64) OnesCount() Int8x64
  4329  
  4330  // OnesCount counts the number of set bits in each element.
  4331  //
  4332  // Asm: VPOPCNTW, CPU Feature: AVX512BITALG
  4333  func (x Int16x8) OnesCount() Int16x8
  4334  
  4335  // OnesCount counts the number of set bits in each element.
  4336  //
  4337  // Asm: VPOPCNTW, CPU Feature: AVX512BITALG
  4338  func (x Int16x16) OnesCount() Int16x16
  4339  
  4340  // OnesCount counts the number of set bits in each element.
  4341  //
  4342  // Asm: VPOPCNTW, CPU Feature: AVX512BITALG
  4343  func (x Int16x32) OnesCount() Int16x32
  4344  
  4345  // OnesCount counts the number of set bits in each element.
  4346  //
  4347  // Asm: VPOPCNTD, CPU Feature: AVX512VPOPCNTDQ
  4348  func (x Int32x4) OnesCount() Int32x4
  4349  
  4350  // OnesCount counts the number of set bits in each element.
  4351  //
  4352  // Asm: VPOPCNTD, CPU Feature: AVX512VPOPCNTDQ
  4353  func (x Int32x8) OnesCount() Int32x8
  4354  
  4355  // OnesCount counts the number of set bits in each element.
  4356  //
  4357  // Asm: VPOPCNTD, CPU Feature: AVX512VPOPCNTDQ
  4358  func (x Int32x16) OnesCount() Int32x16
  4359  
  4360  // OnesCount counts the number of set bits in each element.
  4361  //
  4362  // Asm: VPOPCNTQ, CPU Feature: AVX512VPOPCNTDQ
  4363  func (x Int64x2) OnesCount() Int64x2
  4364  
  4365  // OnesCount counts the number of set bits in each element.
  4366  //
  4367  // Asm: VPOPCNTQ, CPU Feature: AVX512VPOPCNTDQ
  4368  func (x Int64x4) OnesCount() Int64x4
  4369  
  4370  // OnesCount counts the number of set bits in each element.
  4371  //
  4372  // Asm: VPOPCNTQ, CPU Feature: AVX512VPOPCNTDQ
  4373  func (x Int64x8) OnesCount() Int64x8
  4374  
  4375  // OnesCount counts the number of set bits in each element.
  4376  //
  4377  // Asm: VPOPCNTB, CPU Feature: AVX512BITALG
  4378  func (x Uint8x16) OnesCount() Uint8x16
  4379  
  4380  // OnesCount counts the number of set bits in each element.
  4381  //
  4382  // Asm: VPOPCNTB, CPU Feature: AVX512BITALG
  4383  func (x Uint8x32) OnesCount() Uint8x32
  4384  
  4385  // OnesCount counts the number of set bits in each element.
  4386  //
  4387  // Asm: VPOPCNTB, CPU Feature: AVX512BITALG
  4388  func (x Uint8x64) OnesCount() Uint8x64
  4389  
  4390  // OnesCount counts the number of set bits in each element.
  4391  //
  4392  // Asm: VPOPCNTW, CPU Feature: AVX512BITALG
  4393  func (x Uint16x8) OnesCount() Uint16x8
  4394  
  4395  // OnesCount counts the number of set bits in each element.
  4396  //
  4397  // Asm: VPOPCNTW, CPU Feature: AVX512BITALG
  4398  func (x Uint16x16) OnesCount() Uint16x16
  4399  
  4400  // OnesCount counts the number of set bits in each element.
  4401  //
  4402  // Asm: VPOPCNTW, CPU Feature: AVX512BITALG
  4403  func (x Uint16x32) OnesCount() Uint16x32
  4404  
  4405  // OnesCount counts the number of set bits in each element.
  4406  //
  4407  // Asm: VPOPCNTD, CPU Feature: AVX512VPOPCNTDQ
  4408  func (x Uint32x4) OnesCount() Uint32x4
  4409  
  4410  // OnesCount counts the number of set bits in each element.
  4411  //
  4412  // Asm: VPOPCNTD, CPU Feature: AVX512VPOPCNTDQ
  4413  func (x Uint32x8) OnesCount() Uint32x8
  4414  
  4415  // OnesCount counts the number of set bits in each element.
  4416  //
  4417  // Asm: VPOPCNTD, CPU Feature: AVX512VPOPCNTDQ
  4418  func (x Uint32x16) OnesCount() Uint32x16
  4419  
  4420  // OnesCount counts the number of set bits in each element.
  4421  //
  4422  // Asm: VPOPCNTQ, CPU Feature: AVX512VPOPCNTDQ
  4423  func (x Uint64x2) OnesCount() Uint64x2
  4424  
  4425  // OnesCount counts the number of set bits in each element.
  4426  //
  4427  // Asm: VPOPCNTQ, CPU Feature: AVX512VPOPCNTDQ
  4428  func (x Uint64x4) OnesCount() Uint64x4
  4429  
  4430  // OnesCount counts the number of set bits in each element.
  4431  //
  4432  // Asm: VPOPCNTQ, CPU Feature: AVX512VPOPCNTDQ
  4433  func (x Uint64x8) OnesCount() Uint64x8
  4434  
  4435  /* Or */
  4436  
  4437  // Or performs a bitwise OR operation between two vectors.
  4438  //
  4439  // Asm: VPOR, CPU Feature: AVX
  4440  func (x Int8x16) Or(y Int8x16) Int8x16
  4441  
  4442  // Or performs a bitwise OR operation between two vectors.
  4443  //
  4444  // Asm: VPOR, CPU Feature: AVX2
  4445  func (x Int8x32) Or(y Int8x32) Int8x32
  4446  
  4447  // Or performs a bitwise OR operation between two vectors.
  4448  //
  4449  // Asm: VPORD, CPU Feature: AVX512
  4450  func (x Int8x64) Or(y Int8x64) Int8x64
  4451  
  4452  // Or performs a bitwise OR operation between two vectors.
  4453  //
  4454  // Asm: VPOR, CPU Feature: AVX
  4455  func (x Int16x8) Or(y Int16x8) Int16x8
  4456  
  4457  // Or performs a bitwise OR operation between two vectors.
  4458  //
  4459  // Asm: VPOR, CPU Feature: AVX2
  4460  func (x Int16x16) Or(y Int16x16) Int16x16
  4461  
  4462  // Or performs a bitwise OR operation between two vectors.
  4463  //
  4464  // Asm: VPORD, CPU Feature: AVX512
  4465  func (x Int16x32) Or(y Int16x32) Int16x32
  4466  
  4467  // Or performs a bitwise OR operation between two vectors.
  4468  //
  4469  // Asm: VPOR, CPU Feature: AVX
  4470  func (x Int32x4) Or(y Int32x4) Int32x4
  4471  
  4472  // Or performs a bitwise OR operation between two vectors.
  4473  //
  4474  // Asm: VPOR, CPU Feature: AVX2
  4475  func (x Int32x8) Or(y Int32x8) Int32x8
  4476  
  4477  // Or performs a bitwise OR operation between two vectors.
  4478  //
  4479  // Asm: VPORD, CPU Feature: AVX512
  4480  func (x Int32x16) Or(y Int32x16) Int32x16
  4481  
  4482  // Or performs a bitwise OR operation between two vectors.
  4483  //
  4484  // Asm: VPOR, CPU Feature: AVX
  4485  func (x Int64x2) Or(y Int64x2) Int64x2
  4486  
  4487  // Or performs a bitwise OR operation between two vectors.
  4488  //
  4489  // Asm: VPOR, CPU Feature: AVX2
  4490  func (x Int64x4) Or(y Int64x4) Int64x4
  4491  
  4492  // Or performs a bitwise OR operation between two vectors.
  4493  //
  4494  // Asm: VPORQ, CPU Feature: AVX512
  4495  func (x Int64x8) Or(y Int64x8) Int64x8
  4496  
  4497  // Or performs a bitwise OR operation between two vectors.
  4498  //
  4499  // Asm: VPOR, CPU Feature: AVX
  4500  func (x Uint8x16) Or(y Uint8x16) Uint8x16
  4501  
  4502  // Or performs a bitwise OR operation between two vectors.
  4503  //
  4504  // Asm: VPOR, CPU Feature: AVX2
  4505  func (x Uint8x32) Or(y Uint8x32) Uint8x32
  4506  
  4507  // Or performs a bitwise OR operation between two vectors.
  4508  //
  4509  // Asm: VPORD, CPU Feature: AVX512
  4510  func (x Uint8x64) Or(y Uint8x64) Uint8x64
  4511  
  4512  // Or performs a bitwise OR operation between two vectors.
  4513  //
  4514  // Asm: VPOR, CPU Feature: AVX
  4515  func (x Uint16x8) Or(y Uint16x8) Uint16x8
  4516  
  4517  // Or performs a bitwise OR operation between two vectors.
  4518  //
  4519  // Asm: VPOR, CPU Feature: AVX2
  4520  func (x Uint16x16) Or(y Uint16x16) Uint16x16
  4521  
  4522  // Or performs a bitwise OR operation between two vectors.
  4523  //
  4524  // Asm: VPORD, CPU Feature: AVX512
  4525  func (x Uint16x32) Or(y Uint16x32) Uint16x32
  4526  
  4527  // Or performs a bitwise OR operation between two vectors.
  4528  //
  4529  // Asm: VPOR, CPU Feature: AVX
  4530  func (x Uint32x4) Or(y Uint32x4) Uint32x4
  4531  
  4532  // Or performs a bitwise OR operation between two vectors.
  4533  //
  4534  // Asm: VPOR, CPU Feature: AVX2
  4535  func (x Uint32x8) Or(y Uint32x8) Uint32x8
  4536  
  4537  // Or performs a bitwise OR operation between two vectors.
  4538  //
  4539  // Asm: VPORD, CPU Feature: AVX512
  4540  func (x Uint32x16) Or(y Uint32x16) Uint32x16
  4541  
  4542  // Or performs a bitwise OR operation between two vectors.
  4543  //
  4544  // Asm: VPOR, CPU Feature: AVX
  4545  func (x Uint64x2) Or(y Uint64x2) Uint64x2
  4546  
  4547  // Or performs a bitwise OR operation between two vectors.
  4548  //
  4549  // Asm: VPOR, CPU Feature: AVX2
  4550  func (x Uint64x4) Or(y Uint64x4) Uint64x4
  4551  
  4552  // Or performs a bitwise OR operation between two vectors.
  4553  //
  4554  // Asm: VPORQ, CPU Feature: AVX512
  4555  func (x Uint64x8) Or(y Uint64x8) Uint64x8
  4556  
  4557  /* Permute */
  4558  
  4559  // Permute performs a full permutation of vector x using indices:
  4560  //
  4561  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4562  //
  4563  // The low 4 bits (values 0-15) of each element of indices is used.
  4564  //
  4565  // Asm: VPERMB, CPU Feature: AVX512VBMI
  4566  func (x Int8x16) Permute(indices Uint8x16) Int8x16
  4567  
  4568  // Permute performs a full permutation of vector x using indices:
  4569  //
  4570  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4571  //
  4572  // The low 4 bits (values 0-15) of each element of indices is used.
  4573  //
  4574  // Asm: VPERMB, CPU Feature: AVX512VBMI
  4575  func (x Uint8x16) Permute(indices Uint8x16) Uint8x16
  4576  
  4577  // Permute performs a full permutation of vector x using indices:
  4578  //
  4579  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4580  //
  4581  // The low 5 bits (values 0-31) of each element of indices is used.
  4582  //
  4583  // Asm: VPERMB, CPU Feature: AVX512VBMI
  4584  func (x Int8x32) Permute(indices Uint8x32) Int8x32
  4585  
  4586  // Permute performs a full permutation of vector x using indices:
  4587  //
  4588  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4589  //
  4590  // The low 5 bits (values 0-31) of each element of indices is used.
  4591  //
  4592  // Asm: VPERMB, CPU Feature: AVX512VBMI
  4593  func (x Uint8x32) Permute(indices Uint8x32) Uint8x32
  4594  
  4595  // Permute performs a full permutation of vector x using indices:
  4596  //
  4597  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4598  //
  4599  // The low 6 bits (values 0-63) of each element of indices is used.
  4600  //
  4601  // Asm: VPERMB, CPU Feature: AVX512VBMI
  4602  func (x Int8x64) Permute(indices Uint8x64) Int8x64
  4603  
  4604  // Permute performs a full permutation of vector x using indices:
  4605  //
  4606  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4607  //
  4608  // The low 6 bits (values 0-63) of each element of indices is used.
  4609  //
  4610  // Asm: VPERMB, CPU Feature: AVX512VBMI
  4611  func (x Uint8x64) Permute(indices Uint8x64) Uint8x64
  4612  
  4613  // Permute performs a full permutation of vector x using indices:
  4614  //
  4615  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4616  //
  4617  // The low 3 bits (values 0-7) of each element of indices is used.
  4618  //
  4619  // Asm: VPERMW, CPU Feature: AVX512
  4620  func (x Int16x8) Permute(indices Uint16x8) Int16x8
  4621  
  4622  // Permute performs a full permutation of vector x using indices:
  4623  //
  4624  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4625  //
  4626  // The low 3 bits (values 0-7) of each element of indices is used.
  4627  //
  4628  // Asm: VPERMW, CPU Feature: AVX512
  4629  func (x Uint16x8) Permute(indices Uint16x8) Uint16x8
  4630  
  4631  // Permute performs a full permutation of vector x using indices:
  4632  //
  4633  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4634  //
  4635  // The low 4 bits (values 0-15) of each element of indices is used.
  4636  //
  4637  // Asm: VPERMW, CPU Feature: AVX512
  4638  func (x Int16x16) Permute(indices Uint16x16) Int16x16
  4639  
  4640  // Permute performs a full permutation of vector x using indices:
  4641  //
  4642  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4643  //
  4644  // The low 4 bits (values 0-15) of each element of indices is used.
  4645  //
  4646  // Asm: VPERMW, CPU Feature: AVX512
  4647  func (x Uint16x16) Permute(indices Uint16x16) Uint16x16
  4648  
  4649  // Permute performs a full permutation of vector x using indices:
  4650  //
  4651  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4652  //
  4653  // The low 5 bits (values 0-31) of each element of indices is used.
  4654  //
  4655  // Asm: VPERMW, CPU Feature: AVX512
  4656  func (x Int16x32) Permute(indices Uint16x32) Int16x32
  4657  
  4658  // Permute performs a full permutation of vector x using indices:
  4659  //
  4660  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4661  //
  4662  // The low 5 bits (values 0-31) of each element of indices is used.
  4663  //
  4664  // Asm: VPERMW, CPU Feature: AVX512
  4665  func (x Uint16x32) Permute(indices Uint16x32) Uint16x32
  4666  
  4667  // Permute performs a full permutation of vector x using indices:
  4668  //
  4669  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4670  //
  4671  // The low 3 bits (values 0-7) of each element of indices is used.
  4672  //
  4673  // Asm: VPERMPS, CPU Feature: AVX2
  4674  func (x Float32x8) Permute(indices Uint32x8) Float32x8
  4675  
  4676  // Permute performs a full permutation of vector x using indices:
  4677  //
  4678  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4679  //
  4680  // The low 3 bits (values 0-7) of each element of indices is used.
  4681  //
  4682  // Asm: VPERMD, CPU Feature: AVX2
  4683  func (x Int32x8) Permute(indices Uint32x8) Int32x8
  4684  
  4685  // Permute performs a full permutation of vector x using indices:
  4686  //
  4687  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4688  //
  4689  // The low 3 bits (values 0-7) of each element of indices is used.
  4690  //
  4691  // Asm: VPERMD, CPU Feature: AVX2
  4692  func (x Uint32x8) Permute(indices Uint32x8) Uint32x8
  4693  
  4694  // Permute performs a full permutation of vector x using indices:
  4695  //
  4696  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4697  //
  4698  // The low 4 bits (values 0-15) of each element of indices is used.
  4699  //
  4700  // Asm: VPERMPS, CPU Feature: AVX512
  4701  func (x Float32x16) Permute(indices Uint32x16) Float32x16
  4702  
  4703  // Permute performs a full permutation of vector x using indices:
  4704  //
  4705  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4706  //
  4707  // The low 4 bits (values 0-15) of each element of indices is used.
  4708  //
  4709  // Asm: VPERMD, CPU Feature: AVX512
  4710  func (x Int32x16) Permute(indices Uint32x16) Int32x16
  4711  
  4712  // Permute performs a full permutation of vector x using indices:
  4713  //
  4714  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4715  //
  4716  // The low 4 bits (values 0-15) of each element of indices is used.
  4717  //
  4718  // Asm: VPERMD, CPU Feature: AVX512
  4719  func (x Uint32x16) Permute(indices Uint32x16) Uint32x16
  4720  
  4721  // Permute performs a full permutation of vector x using indices:
  4722  //
  4723  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4724  //
  4725  // The low 2 bits (values 0-3) of each element of indices is used.
  4726  //
  4727  // Asm: VPERMPD, CPU Feature: AVX512
  4728  func (x Float64x4) Permute(indices Uint64x4) Float64x4
  4729  
  4730  // Permute performs a full permutation of vector x using indices:
  4731  //
  4732  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4733  //
  4734  // The low 2 bits (values 0-3) of each element of indices is used.
  4735  //
  4736  // Asm: VPERMQ, CPU Feature: AVX512
  4737  func (x Int64x4) Permute(indices Uint64x4) Int64x4
  4738  
  4739  // Permute performs a full permutation of vector x using indices:
  4740  //
  4741  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4742  //
  4743  // The low 2 bits (values 0-3) of each element of indices is used.
  4744  //
  4745  // Asm: VPERMQ, CPU Feature: AVX512
  4746  func (x Uint64x4) Permute(indices Uint64x4) Uint64x4
  4747  
  4748  // Permute performs a full permutation of vector x using indices:
  4749  //
  4750  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4751  //
  4752  // The low 3 bits (values 0-7) of each element of indices is used.
  4753  //
  4754  // Asm: VPERMPD, CPU Feature: AVX512
  4755  func (x Float64x8) Permute(indices Uint64x8) Float64x8
  4756  
  4757  // Permute performs a full permutation of vector x using indices:
  4758  //
  4759  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4760  //
  4761  // The low 3 bits (values 0-7) of each element of indices is used.
  4762  //
  4763  // Asm: VPERMQ, CPU Feature: AVX512
  4764  func (x Int64x8) Permute(indices Uint64x8) Int64x8
  4765  
  4766  // Permute performs a full permutation of vector x using indices:
  4767  //
  4768  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4769  //
  4770  // The low 3 bits (values 0-7) of each element of indices is used.
  4771  //
  4772  // Asm: VPERMQ, CPU Feature: AVX512
  4773  func (x Uint64x8) Permute(indices Uint64x8) Uint64x8
  4774  
  4775  /* PermuteOrZero */
  4776  
  4777  // PermuteOrZero performs a full permutation of vector x using indices:
  4778  //
  4779  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4780  //
  4781  // The lower four bits of each byte-sized index in indices select an element from x,
  4782  // unless the index's sign bit is set in which case zero is used instead.
  4783  //
  4784  // Asm: VPSHUFB, CPU Feature: AVX
  4785  func (x Int8x16) PermuteOrZero(indices Int8x16) Int8x16
  4786  
  4787  // PermuteOrZero performs a full permutation of vector x using indices:
  4788  //
  4789  //	result = {x[indices[0]], x[indices[1]], ..., x[indices[n]]}
  4790  //
  4791  // The lower four bits of each byte-sized index in indices select an element from x,
  4792  // unless the index's sign bit is set in which case zero is used instead.
  4793  //
  4794  // Asm: VPSHUFB, CPU Feature: AVX
  4795  func (x Uint8x16) PermuteOrZero(indices Int8x16) Uint8x16
  4796  
  4797  /* PermuteOrZeroGrouped */
  4798  
  4799  // PermuteOrZeroGrouped performs a grouped permutation of vector x using indices:
  4800  //
  4801  //	result = {x_group0[indices[0]], x_group0[indices[1]], ..., x_group1[indices[16]], x_group1[indices[17]], ...}
  4802  //
  4803  // The lower four bits of each byte-sized index in indices select an element from its corresponding group in x,
  4804  // unless the index's sign bit is set in which case zero is used instead.
  4805  // Each group is of size 128-bit.
  4806  //
  4807  // Asm: VPSHUFB, CPU Feature: AVX2
  4808  func (x Int8x32) PermuteOrZeroGrouped(indices Int8x32) Int8x32
  4809  
  4810  // PermuteOrZeroGrouped performs a grouped permutation of vector x using indices:
  4811  //
  4812  //	result = {x_group0[indices[0]], x_group0[indices[1]], ..., x_group1[indices[16]], x_group1[indices[17]], ...}
  4813  //
  4814  // The lower four bits of each byte-sized index in indices select an element from its corresponding group in x,
  4815  // unless the index's sign bit is set in which case zero is used instead.
  4816  // Each group is of size 128-bit.
  4817  //
  4818  // Asm: VPSHUFB, CPU Feature: AVX512
  4819  func (x Int8x64) PermuteOrZeroGrouped(indices Int8x64) Int8x64
  4820  
  4821  // PermuteOrZeroGrouped performs a grouped permutation of vector x using indices:
  4822  //
  4823  //	result = {x_group0[indices[0]], x_group0[indices[1]], ..., x_group1[indices[16]], x_group1[indices[17]], ...}
  4824  //
  4825  // The lower four bits of each byte-sized index in indices select an element from its corresponding group in x,
  4826  // unless the index's sign bit is set in which case zero is used instead.
  4827  // Each group is of size 128-bit.
  4828  //
  4829  // Asm: VPSHUFB, CPU Feature: AVX2
  4830  func (x Uint8x32) PermuteOrZeroGrouped(indices Int8x32) Uint8x32
  4831  
  4832  // PermuteOrZeroGrouped performs a grouped permutation of vector x using indices:
  4833  //
  4834  //	result = {x_group0[indices[0]], x_group0[indices[1]], ..., x_group1[indices[16]], x_group1[indices[17]], ...}
  4835  //
  4836  // The lower four bits of each byte-sized index in indices select an element from its corresponding group in x,
  4837  // unless the index's sign bit is set in which case zero is used instead.
  4838  // Each group is of size 128-bit.
  4839  //
  4840  // Asm: VPSHUFB, CPU Feature: AVX512
  4841  func (x Uint8x64) PermuteOrZeroGrouped(indices Int8x64) Uint8x64
  4842  
  4843  /* Reciprocal */
  4844  
  4845  // Reciprocal computes an approximate reciprocal of each element.
  4846  //
  4847  // Asm: VRCPPS, CPU Feature: AVX
  4848  func (x Float32x4) Reciprocal() Float32x4
  4849  
  4850  // Reciprocal computes an approximate reciprocal of each element.
  4851  //
  4852  // Asm: VRCPPS, CPU Feature: AVX
  4853  func (x Float32x8) Reciprocal() Float32x8
  4854  
  4855  // Reciprocal computes an approximate reciprocal of each element.
  4856  //
  4857  // Asm: VRCP14PS, CPU Feature: AVX512
  4858  func (x Float32x16) Reciprocal() Float32x16
  4859  
  4860  // Reciprocal computes an approximate reciprocal of each element.
  4861  //
  4862  // Asm: VRCP14PD, CPU Feature: AVX512
  4863  func (x Float64x2) Reciprocal() Float64x2
  4864  
  4865  // Reciprocal computes an approximate reciprocal of each element.
  4866  //
  4867  // Asm: VRCP14PD, CPU Feature: AVX512
  4868  func (x Float64x4) Reciprocal() Float64x4
  4869  
  4870  // Reciprocal computes an approximate reciprocal of each element.
  4871  //
  4872  // Asm: VRCP14PD, CPU Feature: AVX512
  4873  func (x Float64x8) Reciprocal() Float64x8
  4874  
  4875  /* ReciprocalSqrt */
  4876  
  4877  // ReciprocalSqrt computes an approximate reciprocal of the square root of each element.
  4878  //
  4879  // Asm: VRSQRTPS, CPU Feature: AVX
  4880  func (x Float32x4) ReciprocalSqrt() Float32x4
  4881  
  4882  // ReciprocalSqrt computes an approximate reciprocal of the square root of each element.
  4883  //
  4884  // Asm: VRSQRTPS, CPU Feature: AVX
  4885  func (x Float32x8) ReciprocalSqrt() Float32x8
  4886  
  4887  // ReciprocalSqrt computes an approximate reciprocal of the square root of each element.
  4888  //
  4889  // Asm: VRSQRT14PS, CPU Feature: AVX512
  4890  func (x Float32x16) ReciprocalSqrt() Float32x16
  4891  
  4892  // ReciprocalSqrt computes an approximate reciprocal of the square root of each element.
  4893  //
  4894  // Asm: VRSQRT14PD, CPU Feature: AVX512
  4895  func (x Float64x2) ReciprocalSqrt() Float64x2
  4896  
  4897  // ReciprocalSqrt computes an approximate reciprocal of the square root of each element.
  4898  //
  4899  // Asm: VRSQRT14PD, CPU Feature: AVX512
  4900  func (x Float64x4) ReciprocalSqrt() Float64x4
  4901  
  4902  // ReciprocalSqrt computes an approximate reciprocal of the square root of each element.
  4903  //
  4904  // Asm: VRSQRT14PD, CPU Feature: AVX512
  4905  func (x Float64x8) ReciprocalSqrt() Float64x8
  4906  
  4907  /* RotateAllLeft */
  4908  
  4909  // RotateAllLeft rotates each element to the left by the number of bits specified by shift.
  4910  //
  4911  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  4912  //
  4913  // Asm: VPROLD, CPU Feature: AVX512
  4914  func (x Int32x4) RotateAllLeft(shift uint8) Int32x4
  4915  
  4916  // RotateAllLeft rotates each element to the left by the number of bits specified by shift.
  4917  //
  4918  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  4919  //
  4920  // Asm: VPROLD, CPU Feature: AVX512
  4921  func (x Int32x8) RotateAllLeft(shift uint8) Int32x8
  4922  
  4923  // RotateAllLeft rotates each element to the left by the number of bits specified by shift.
  4924  //
  4925  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  4926  //
  4927  // Asm: VPROLD, CPU Feature: AVX512
  4928  func (x Int32x16) RotateAllLeft(shift uint8) Int32x16
  4929  
  4930  // RotateAllLeft rotates each element to the left by the number of bits specified by shift.
  4931  //
  4932  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  4933  //
  4934  // Asm: VPROLQ, CPU Feature: AVX512
  4935  func (x Int64x2) RotateAllLeft(shift uint8) Int64x2
  4936  
  4937  // RotateAllLeft rotates each element to the left by the number of bits specified by shift.
  4938  //
  4939  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  4940  //
  4941  // Asm: VPROLQ, CPU Feature: AVX512
  4942  func (x Int64x4) RotateAllLeft(shift uint8) Int64x4
  4943  
  4944  // RotateAllLeft rotates each element to the left by the number of bits specified by shift.
  4945  //
  4946  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  4947  //
  4948  // Asm: VPROLQ, CPU Feature: AVX512
  4949  func (x Int64x8) RotateAllLeft(shift uint8) Int64x8
  4950  
  4951  // RotateAllLeft rotates each element to the left by the number of bits specified by shift.
  4952  //
  4953  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  4954  //
  4955  // Asm: VPROLD, CPU Feature: AVX512
  4956  func (x Uint32x4) RotateAllLeft(shift uint8) Uint32x4
  4957  
  4958  // RotateAllLeft rotates each element to the left by the number of bits specified by shift.
  4959  //
  4960  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  4961  //
  4962  // Asm: VPROLD, CPU Feature: AVX512
  4963  func (x Uint32x8) RotateAllLeft(shift uint8) Uint32x8
  4964  
  4965  // RotateAllLeft rotates each element to the left by the number of bits specified by shift.
  4966  //
  4967  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  4968  //
  4969  // Asm: VPROLD, CPU Feature: AVX512
  4970  func (x Uint32x16) RotateAllLeft(shift uint8) Uint32x16
  4971  
  4972  // RotateAllLeft rotates each element to the left by the number of bits specified by shift.
  4973  //
  4974  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  4975  //
  4976  // Asm: VPROLQ, CPU Feature: AVX512
  4977  func (x Uint64x2) RotateAllLeft(shift uint8) Uint64x2
  4978  
  4979  // RotateAllLeft rotates each element to the left by the number of bits specified by shift.
  4980  //
  4981  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  4982  //
  4983  // Asm: VPROLQ, CPU Feature: AVX512
  4984  func (x Uint64x4) RotateAllLeft(shift uint8) Uint64x4
  4985  
  4986  // RotateAllLeft rotates each element to the left by the number of bits specified by shift.
  4987  //
  4988  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  4989  //
  4990  // Asm: VPROLQ, CPU Feature: AVX512
  4991  func (x Uint64x8) RotateAllLeft(shift uint8) Uint64x8
  4992  
  4993  /* RotateAllRight */
  4994  
  4995  // RotateAllRight rotates each element to the right by the number of bits specified by shift.
  4996  //
  4997  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  4998  //
  4999  // Asm: VPRORD, CPU Feature: AVX512
  5000  func (x Int32x4) RotateAllRight(shift uint8) Int32x4
  5001  
  5002  // RotateAllRight rotates each element to the right by the number of bits specified by shift.
  5003  //
  5004  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5005  //
  5006  // Asm: VPRORD, CPU Feature: AVX512
  5007  func (x Int32x8) RotateAllRight(shift uint8) Int32x8
  5008  
  5009  // RotateAllRight rotates each element to the right by the number of bits specified by shift.
  5010  //
  5011  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5012  //
  5013  // Asm: VPRORD, CPU Feature: AVX512
  5014  func (x Int32x16) RotateAllRight(shift uint8) Int32x16
  5015  
  5016  // RotateAllRight rotates each element to the right by the number of bits specified by shift.
  5017  //
  5018  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5019  //
  5020  // Asm: VPRORQ, CPU Feature: AVX512
  5021  func (x Int64x2) RotateAllRight(shift uint8) Int64x2
  5022  
  5023  // RotateAllRight rotates each element to the right by the number of bits specified by shift.
  5024  //
  5025  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5026  //
  5027  // Asm: VPRORQ, CPU Feature: AVX512
  5028  func (x Int64x4) RotateAllRight(shift uint8) Int64x4
  5029  
  5030  // RotateAllRight rotates each element to the right by the number of bits specified by shift.
  5031  //
  5032  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5033  //
  5034  // Asm: VPRORQ, CPU Feature: AVX512
  5035  func (x Int64x8) RotateAllRight(shift uint8) Int64x8
  5036  
  5037  // RotateAllRight rotates each element to the right by the number of bits specified by shift.
  5038  //
  5039  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5040  //
  5041  // Asm: VPRORD, CPU Feature: AVX512
  5042  func (x Uint32x4) RotateAllRight(shift uint8) Uint32x4
  5043  
  5044  // RotateAllRight rotates each element to the right by the number of bits specified by shift.
  5045  //
  5046  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5047  //
  5048  // Asm: VPRORD, CPU Feature: AVX512
  5049  func (x Uint32x8) RotateAllRight(shift uint8) Uint32x8
  5050  
  5051  // RotateAllRight rotates each element to the right by the number of bits specified by shift.
  5052  //
  5053  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5054  //
  5055  // Asm: VPRORD, CPU Feature: AVX512
  5056  func (x Uint32x16) RotateAllRight(shift uint8) Uint32x16
  5057  
  5058  // RotateAllRight rotates each element to the right by the number of bits specified by shift.
  5059  //
  5060  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5061  //
  5062  // Asm: VPRORQ, CPU Feature: AVX512
  5063  func (x Uint64x2) RotateAllRight(shift uint8) Uint64x2
  5064  
  5065  // RotateAllRight rotates each element to the right by the number of bits specified by shift.
  5066  //
  5067  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5068  //
  5069  // Asm: VPRORQ, CPU Feature: AVX512
  5070  func (x Uint64x4) RotateAllRight(shift uint8) Uint64x4
  5071  
  5072  // RotateAllRight rotates each element to the right by the number of bits specified by shift.
  5073  //
  5074  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5075  //
  5076  // Asm: VPRORQ, CPU Feature: AVX512
  5077  func (x Uint64x8) RotateAllRight(shift uint8) Uint64x8
  5078  
  5079  /* RotateLeft */
  5080  
  5081  // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
  5082  //
  5083  // Asm: VPROLVD, CPU Feature: AVX512
  5084  func (x Int32x4) RotateLeft(y Int32x4) Int32x4
  5085  
  5086  // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
  5087  //
  5088  // Asm: VPROLVD, CPU Feature: AVX512
  5089  func (x Int32x8) RotateLeft(y Int32x8) Int32x8
  5090  
  5091  // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
  5092  //
  5093  // Asm: VPROLVD, CPU Feature: AVX512
  5094  func (x Int32x16) RotateLeft(y Int32x16) Int32x16
  5095  
  5096  // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
  5097  //
  5098  // Asm: VPROLVQ, CPU Feature: AVX512
  5099  func (x Int64x2) RotateLeft(y Int64x2) Int64x2
  5100  
  5101  // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
  5102  //
  5103  // Asm: VPROLVQ, CPU Feature: AVX512
  5104  func (x Int64x4) RotateLeft(y Int64x4) Int64x4
  5105  
  5106  // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
  5107  //
  5108  // Asm: VPROLVQ, CPU Feature: AVX512
  5109  func (x Int64x8) RotateLeft(y Int64x8) Int64x8
  5110  
  5111  // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
  5112  //
  5113  // Asm: VPROLVD, CPU Feature: AVX512
  5114  func (x Uint32x4) RotateLeft(y Uint32x4) Uint32x4
  5115  
  5116  // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
  5117  //
  5118  // Asm: VPROLVD, CPU Feature: AVX512
  5119  func (x Uint32x8) RotateLeft(y Uint32x8) Uint32x8
  5120  
  5121  // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
  5122  //
  5123  // Asm: VPROLVD, CPU Feature: AVX512
  5124  func (x Uint32x16) RotateLeft(y Uint32x16) Uint32x16
  5125  
  5126  // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
  5127  //
  5128  // Asm: VPROLVQ, CPU Feature: AVX512
  5129  func (x Uint64x2) RotateLeft(y Uint64x2) Uint64x2
  5130  
  5131  // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
  5132  //
  5133  // Asm: VPROLVQ, CPU Feature: AVX512
  5134  func (x Uint64x4) RotateLeft(y Uint64x4) Uint64x4
  5135  
  5136  // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements.
  5137  //
  5138  // Asm: VPROLVQ, CPU Feature: AVX512
  5139  func (x Uint64x8) RotateLeft(y Uint64x8) Uint64x8
  5140  
  5141  /* RotateRight */
  5142  
  5143  // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
  5144  //
  5145  // Asm: VPRORVD, CPU Feature: AVX512
  5146  func (x Int32x4) RotateRight(y Int32x4) Int32x4
  5147  
  5148  // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
  5149  //
  5150  // Asm: VPRORVD, CPU Feature: AVX512
  5151  func (x Int32x8) RotateRight(y Int32x8) Int32x8
  5152  
  5153  // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
  5154  //
  5155  // Asm: VPRORVD, CPU Feature: AVX512
  5156  func (x Int32x16) RotateRight(y Int32x16) Int32x16
  5157  
  5158  // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
  5159  //
  5160  // Asm: VPRORVQ, CPU Feature: AVX512
  5161  func (x Int64x2) RotateRight(y Int64x2) Int64x2
  5162  
  5163  // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
  5164  //
  5165  // Asm: VPRORVQ, CPU Feature: AVX512
  5166  func (x Int64x4) RotateRight(y Int64x4) Int64x4
  5167  
  5168  // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
  5169  //
  5170  // Asm: VPRORVQ, CPU Feature: AVX512
  5171  func (x Int64x8) RotateRight(y Int64x8) Int64x8
  5172  
  5173  // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
  5174  //
  5175  // Asm: VPRORVD, CPU Feature: AVX512
  5176  func (x Uint32x4) RotateRight(y Uint32x4) Uint32x4
  5177  
  5178  // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
  5179  //
  5180  // Asm: VPRORVD, CPU Feature: AVX512
  5181  func (x Uint32x8) RotateRight(y Uint32x8) Uint32x8
  5182  
  5183  // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
  5184  //
  5185  // Asm: VPRORVD, CPU Feature: AVX512
  5186  func (x Uint32x16) RotateRight(y Uint32x16) Uint32x16
  5187  
  5188  // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
  5189  //
  5190  // Asm: VPRORVQ, CPU Feature: AVX512
  5191  func (x Uint64x2) RotateRight(y Uint64x2) Uint64x2
  5192  
  5193  // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
  5194  //
  5195  // Asm: VPRORVQ, CPU Feature: AVX512
  5196  func (x Uint64x4) RotateRight(y Uint64x4) Uint64x4
  5197  
  5198  // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements.
  5199  //
  5200  // Asm: VPRORVQ, CPU Feature: AVX512
  5201  func (x Uint64x8) RotateRight(y Uint64x8) Uint64x8
  5202  
  5203  /* RoundToEven */
  5204  
  5205  // RoundToEven rounds elements to the nearest integer, rounding ties to even.
  5206  //
  5207  // Asm: VROUNDPS, CPU Feature: AVX
  5208  func (x Float32x4) RoundToEven() Float32x4
  5209  
  5210  // RoundToEven rounds elements to the nearest integer, rounding ties to even.
  5211  //
  5212  // Asm: VROUNDPS, CPU Feature: AVX
  5213  func (x Float32x8) RoundToEven() Float32x8
  5214  
  5215  // RoundToEven rounds elements to the nearest integer, rounding ties to even.
  5216  //
  5217  // Asm: VROUNDPD, CPU Feature: AVX
  5218  func (x Float64x2) RoundToEven() Float64x2
  5219  
  5220  // RoundToEven rounds elements to the nearest integer, rounding ties to even.
  5221  //
  5222  // Asm: VROUNDPD, CPU Feature: AVX
  5223  func (x Float64x4) RoundToEven() Float64x4
  5224  
  5225  /* RoundToEvenScaled */
  5226  
  5227  // RoundToEvenScaled rounds elements with specified precision.
  5228  //
  5229  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5230  //
  5231  // Asm: VRNDSCALEPS, CPU Feature: AVX512
  5232  func (x Float32x4) RoundToEvenScaled(prec uint8) Float32x4
  5233  
  5234  // RoundToEvenScaled rounds elements with specified precision.
  5235  //
  5236  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5237  //
  5238  // Asm: VRNDSCALEPS, CPU Feature: AVX512
  5239  func (x Float32x8) RoundToEvenScaled(prec uint8) Float32x8
  5240  
  5241  // RoundToEvenScaled rounds elements with specified precision.
  5242  //
  5243  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5244  //
  5245  // Asm: VRNDSCALEPS, CPU Feature: AVX512
  5246  func (x Float32x16) RoundToEvenScaled(prec uint8) Float32x16
  5247  
  5248  // RoundToEvenScaled rounds elements with specified precision.
  5249  //
  5250  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5251  //
  5252  // Asm: VRNDSCALEPD, CPU Feature: AVX512
  5253  func (x Float64x2) RoundToEvenScaled(prec uint8) Float64x2
  5254  
  5255  // RoundToEvenScaled rounds elements with specified precision.
  5256  //
  5257  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5258  //
  5259  // Asm: VRNDSCALEPD, CPU Feature: AVX512
  5260  func (x Float64x4) RoundToEvenScaled(prec uint8) Float64x4
  5261  
  5262  // RoundToEvenScaled rounds elements with specified precision.
  5263  //
  5264  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5265  //
  5266  // Asm: VRNDSCALEPD, CPU Feature: AVX512
  5267  func (x Float64x8) RoundToEvenScaled(prec uint8) Float64x8
  5268  
  5269  /* RoundToEvenScaledResidue */
  5270  
  5271  // RoundToEvenScaledResidue computes the difference after rounding with specified precision.
  5272  //
  5273  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5274  //
  5275  // Asm: VREDUCEPS, CPU Feature: AVX512
  5276  func (x Float32x4) RoundToEvenScaledResidue(prec uint8) Float32x4
  5277  
  5278  // RoundToEvenScaledResidue computes the difference after rounding with specified precision.
  5279  //
  5280  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5281  //
  5282  // Asm: VREDUCEPS, CPU Feature: AVX512
  5283  func (x Float32x8) RoundToEvenScaledResidue(prec uint8) Float32x8
  5284  
  5285  // RoundToEvenScaledResidue computes the difference after rounding with specified precision.
  5286  //
  5287  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5288  //
  5289  // Asm: VREDUCEPS, CPU Feature: AVX512
  5290  func (x Float32x16) RoundToEvenScaledResidue(prec uint8) Float32x16
  5291  
  5292  // RoundToEvenScaledResidue computes the difference after rounding with specified precision.
  5293  //
  5294  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5295  //
  5296  // Asm: VREDUCEPD, CPU Feature: AVX512
  5297  func (x Float64x2) RoundToEvenScaledResidue(prec uint8) Float64x2
  5298  
  5299  // RoundToEvenScaledResidue computes the difference after rounding with specified precision.
  5300  //
  5301  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5302  //
  5303  // Asm: VREDUCEPD, CPU Feature: AVX512
  5304  func (x Float64x4) RoundToEvenScaledResidue(prec uint8) Float64x4
  5305  
  5306  // RoundToEvenScaledResidue computes the difference after rounding with specified precision.
  5307  //
  5308  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5309  //
  5310  // Asm: VREDUCEPD, CPU Feature: AVX512
  5311  func (x Float64x8) RoundToEvenScaledResidue(prec uint8) Float64x8
  5312  
  5313  /* SHA1FourRounds */
  5314  
  5315  // SHA1FourRounds performs 4 rounds of B loop in SHA1 algorithm defined in FIPS 180-4.
  5316  // x contains the state variables a, b, c and d from upper to lower order.
  5317  // y contains the W array elements (with the state variable e added to the upper element) from upper to lower order.
  5318  // result = the state variables a', b', c', d' updated after 4 rounds.
  5319  // constant = 0 for the first 20 rounds of the loop, 1 for the next 20 rounds of the loop..., 3 for the last 20 rounds of the loop.
  5320  //
  5321  // constant results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5322  //
  5323  // Asm: SHA1RNDS4, CPU Feature: SHA
  5324  func (x Uint32x4) SHA1FourRounds(constant uint8, y Uint32x4) Uint32x4
  5325  
  5326  /* SHA1Message1 */
  5327  
  5328  // SHA1Message1 does the XORing of 1 in SHA1 algorithm defined in FIPS 180-4.
  5329  // x = {W3, W2, W1, W0}
  5330  // y = {0, 0, W5, W4}
  5331  // result = {W3^W5, W2^W4, W1^W3, W0^W2}.
  5332  //
  5333  // Asm: SHA1MSG1, CPU Feature: SHA
  5334  func (x Uint32x4) SHA1Message1(y Uint32x4) Uint32x4
  5335  
  5336  /* SHA1Message2 */
  5337  
  5338  // SHA1Message2 does the calculation of 3 and 4 in SHA1 algorithm defined in FIPS 180-4.
  5339  // x = result of 2.
  5340  // y = {W15, W14, W13}
  5341  // result = {W19, W18, W17, W16}
  5342  //
  5343  // Asm: SHA1MSG2, CPU Feature: SHA
  5344  func (x Uint32x4) SHA1Message2(y Uint32x4) Uint32x4
  5345  
  5346  /* SHA1NextE */
  5347  
  5348  // SHA1NextE calculates the state variable e' updated after 4 rounds in SHA1 algorithm defined in FIPS 180-4.
  5349  // x contains the state variable a (before the 4 rounds), placed in the upper element.
  5350  // y is the elements of W array for next 4 rounds from upper to lower order.
  5351  // result = the elements of the W array for the next 4 rounds, with the updated state variable e' added to the upper element,
  5352  // from upper to lower order.
  5353  // For the last round of the loop, you can specify zero for y to obtain the e' value itself, or better off specifying H4:0:0:0
  5354  // for y to get e' added to H4. (Note that the value of e' is computed only from x, and values of y don't affect the
  5355  // computation of the value of e'.)
  5356  //
  5357  // Asm: SHA1NEXTE, CPU Feature: SHA
  5358  func (x Uint32x4) SHA1NextE(y Uint32x4) Uint32x4
  5359  
  5360  /* SHA256Message1 */
  5361  
  5362  // SHA256Message1 does the sigma and addtion of 1 in SHA1 algorithm defined in FIPS 180-4.
  5363  // x = {W0, W1, W2, W3}
  5364  // y = {W4, 0, 0, 0}
  5365  // result = {W0+σ(W1), W1+σ(W2), W2+σ(W3), W3+σ(W4)}
  5366  //
  5367  // Asm: SHA256MSG1, CPU Feature: SHA
  5368  func (x Uint32x4) SHA256Message1(y Uint32x4) Uint32x4
  5369  
  5370  /* SHA256Message2 */
  5371  
  5372  // SHA256Message2 does the sigma and addition of 3 in SHA1 algorithm defined in FIPS 180-4.
  5373  // x = result of 2
  5374  // y = {0, 0, W14, W15}
  5375  // result = {W16, W17, W18, W19}
  5376  //
  5377  // Asm: SHA256MSG2, CPU Feature: SHA
  5378  func (x Uint32x4) SHA256Message2(y Uint32x4) Uint32x4
  5379  
  5380  /* SHA256TwoRounds */
  5381  
  5382  // SHA256TwoRounds does 2 rounds of B loop to calculate updated state variables in SHA1 algorithm defined in FIPS 180-4.
  5383  // x = {h, g, d, c}
  5384  // y = {f, e, b, a}
  5385  // z = {W0+K0, W1+K1}
  5386  // result = {f', e', b', a'}
  5387  // The K array is a 64-DWORD constant array defined in page 11 of FIPS 180-4. Each element of the K array is to be added to
  5388  // the corresponding element of the W array to make the input data z.
  5389  // The updated state variables c', d', g', h' are not returned by this instruction, because they are equal to the input data
  5390  // y (the state variables a, b, e, f before the 2 rounds).
  5391  //
  5392  // Asm: SHA256RNDS2, CPU Feature: SHA
  5393  func (x Uint32x4) SHA256TwoRounds(y Uint32x4, z Uint32x4) Uint32x4
  5394  
  5395  /* SaturateToInt8 */
  5396  
  5397  // SaturateToInt8 converts element values to int8 with signed saturation.
  5398  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  5399  //
  5400  // Asm: VPMOVSWB, CPU Feature: AVX512
  5401  func (x Int16x8) SaturateToInt8() Int8x16
  5402  
  5403  // SaturateToInt8 converts element values to int8 with signed saturation.
  5404  //
  5405  // Asm: VPMOVSWB, CPU Feature: AVX512
  5406  func (x Int16x16) SaturateToInt8() Int8x16
  5407  
  5408  // SaturateToInt8 converts element values to int8 with signed saturation.
  5409  //
  5410  // Asm: VPMOVSWB, CPU Feature: AVX512
  5411  func (x Int16x32) SaturateToInt8() Int8x32
  5412  
  5413  // SaturateToInt8 converts element values to int8 with signed saturation.
  5414  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  5415  //
  5416  // Asm: VPMOVSDB, CPU Feature: AVX512
  5417  func (x Int32x4) SaturateToInt8() Int8x16
  5418  
  5419  // SaturateToInt8 converts element values to int8 with signed saturation.
  5420  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  5421  //
  5422  // Asm: VPMOVSDB, CPU Feature: AVX512
  5423  func (x Int32x8) SaturateToInt8() Int8x16
  5424  
  5425  // SaturateToInt8 converts element values to int8 with signed saturation.
  5426  //
  5427  // Asm: VPMOVSDB, CPU Feature: AVX512
  5428  func (x Int32x16) SaturateToInt8() Int8x16
  5429  
  5430  // SaturateToInt8 converts element values to int8 with signed saturation.
  5431  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  5432  //
  5433  // Asm: VPMOVSQB, CPU Feature: AVX512
  5434  func (x Int64x2) SaturateToInt8() Int8x16
  5435  
  5436  // SaturateToInt8 converts element values to int8 with signed saturation.
  5437  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  5438  //
  5439  // Asm: VPMOVSQB, CPU Feature: AVX512
  5440  func (x Int64x4) SaturateToInt8() Int8x16
  5441  
  5442  // SaturateToInt8 converts element values to int8 with signed saturation.
  5443  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  5444  //
  5445  // Asm: VPMOVSQB, CPU Feature: AVX512
  5446  func (x Int64x8) SaturateToInt8() Int8x16
  5447  
  5448  /* SaturateToInt16 */
  5449  
  5450  // SaturateToInt16 converts element values to int16 with signed saturation.
  5451  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  5452  //
  5453  // Asm: VPMOVSDW, CPU Feature: AVX512
  5454  func (x Int32x4) SaturateToInt16() Int16x8
  5455  
  5456  // SaturateToInt16 converts element values to int16 with signed saturation.
  5457  //
  5458  // Asm: VPMOVSDW, CPU Feature: AVX512
  5459  func (x Int32x8) SaturateToInt16() Int16x8
  5460  
  5461  // SaturateToInt16 converts element values to int16 with signed saturation.
  5462  //
  5463  // Asm: VPMOVSDW, CPU Feature: AVX512
  5464  func (x Int32x16) SaturateToInt16() Int16x16
  5465  
  5466  // SaturateToInt16 converts element values to int16 with signed saturation.
  5467  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  5468  //
  5469  // Asm: VPMOVSQW, CPU Feature: AVX512
  5470  func (x Int64x2) SaturateToInt16() Int16x8
  5471  
  5472  // SaturateToInt16 converts element values to int16 with signed saturation.
  5473  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  5474  //
  5475  // Asm: VPMOVSQW, CPU Feature: AVX512
  5476  func (x Int64x4) SaturateToInt16() Int16x8
  5477  
  5478  // SaturateToInt16 converts element values to int16 with signed saturation.
  5479  //
  5480  // Asm: VPMOVSQW, CPU Feature: AVX512
  5481  func (x Int64x8) SaturateToInt16() Int16x8
  5482  
  5483  /* SaturateToInt16Concat */
  5484  
  5485  // SaturateToInt16Concat converts element values to int16 with signed saturation.
  5486  // The converted elements from x will be packed to the lower part of the result vector,
  5487  // the converted elements from y will be packed to the upper part of the result vector.
  5488  //
  5489  // Asm: VPACKSSDW, CPU Feature: AVX
  5490  func (x Int32x4) SaturateToInt16Concat(y Int32x4) Int16x8
  5491  
  5492  /* SaturateToInt16ConcatGrouped */
  5493  
  5494  // SaturateToInt16ConcatGrouped converts element values to int16 with signed saturation.
  5495  // With each 128-bit as a group:
  5496  // The converted elements from x will be packed to the lower part of the group in the result vector,
  5497  // the converted elements from y will be packed to the upper part of the group in the result vector.
  5498  //
  5499  // Asm: VPACKSSDW, CPU Feature: AVX2
  5500  func (x Int32x8) SaturateToInt16ConcatGrouped(y Int32x8) Int16x16
  5501  
  5502  // SaturateToInt16ConcatGrouped converts element values to int16 with signed saturation.
  5503  // With each 128-bit as a group:
  5504  // The converted elements from x will be packed to the lower part of the group in the result vector,
  5505  // the converted elements from y will be packed to the upper part of the group in the result vector.
  5506  //
  5507  // Asm: VPACKSSDW, CPU Feature: AVX512
  5508  func (x Int32x16) SaturateToInt16ConcatGrouped(y Int32x16) Int16x32
  5509  
  5510  /* SaturateToInt32 */
  5511  
  5512  // SaturateToInt32 converts element values to int32 with signed saturation.
  5513  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  5514  //
  5515  // Asm: VPMOVSQD, CPU Feature: AVX512
  5516  func (x Int64x2) SaturateToInt32() Int32x4
  5517  
  5518  // SaturateToInt32 converts element values to int32 with signed saturation.
  5519  //
  5520  // Asm: VPMOVSQD, CPU Feature: AVX512
  5521  func (x Int64x4) SaturateToInt32() Int32x4
  5522  
  5523  // SaturateToInt32 converts element values to int32 with signed saturation.
  5524  //
  5525  // Asm: VPMOVSQD, CPU Feature: AVX512
  5526  func (x Int64x8) SaturateToInt32() Int32x8
  5527  
  5528  /* SaturateToUint8 */
  5529  
  5530  // SaturateToUint8 converts element values to uint8 with unsigned saturation.
  5531  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  5532  //
  5533  // Asm: VPMOVUSWB, CPU Feature: AVX512
  5534  func (x Uint16x8) SaturateToUint8() Uint8x16
  5535  
  5536  // SaturateToUint8 converts element values to uint8 with unsigned saturation.
  5537  //
  5538  // Asm: VPMOVUSWB, CPU Feature: AVX512
  5539  func (x Uint16x16) SaturateToUint8() Uint8x16
  5540  
  5541  // SaturateToUint8 converts element values to uint8 with unsigned saturation.
  5542  //
  5543  // Asm: VPMOVUSWB, CPU Feature: AVX512
  5544  func (x Uint16x32) SaturateToUint8() Uint8x32
  5545  
  5546  // SaturateToUint8 converts element values to uint8 with unsigned saturation.
  5547  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  5548  //
  5549  // Asm: VPMOVUSDB, CPU Feature: AVX512
  5550  func (x Uint32x4) SaturateToUint8() Uint8x16
  5551  
  5552  // SaturateToUint8 converts element values to uint8 with unsigned saturation.
  5553  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  5554  //
  5555  // Asm: VPMOVUSDB, CPU Feature: AVX512
  5556  func (x Uint32x8) SaturateToUint8() Uint8x16
  5557  
  5558  // SaturateToUint8 converts element values to uint8 with unsigned saturation.
  5559  //
  5560  // Asm: VPMOVUSDB, CPU Feature: AVX512
  5561  func (x Uint32x16) SaturateToUint8() Uint8x16
  5562  
  5563  // SaturateToUint8 converts element values to uint8 with unsigned saturation.
  5564  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  5565  //
  5566  // Asm: VPMOVUSQB, CPU Feature: AVX512
  5567  func (x Uint64x2) SaturateToUint8() Uint8x16
  5568  
  5569  // SaturateToUint8 converts element values to uint8 with unsigned saturation.
  5570  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  5571  //
  5572  // Asm: VPMOVUSQB, CPU Feature: AVX512
  5573  func (x Uint64x4) SaturateToUint8() Uint8x16
  5574  
  5575  // SaturateToUint8 converts element values to uint8 with unsigned saturation.
  5576  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  5577  //
  5578  // Asm: VPMOVUSQB, CPU Feature: AVX512
  5579  func (x Uint64x8) SaturateToUint8() Uint8x16
  5580  
  5581  /* SaturateToUint16 */
  5582  
  5583  // SaturateToUint16 converts element values to uint16 with unsigned saturation.
  5584  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  5585  //
  5586  // Asm: VPMOVUSDW, CPU Feature: AVX512
  5587  func (x Uint32x4) SaturateToUint16() Uint16x8
  5588  
  5589  // SaturateToUint16 converts element values to uint16 with unsigned saturation.
  5590  //
  5591  // Asm: VPMOVUSDW, CPU Feature: AVX512
  5592  func (x Uint32x8) SaturateToUint16() Uint16x8
  5593  
  5594  // SaturateToUint16 converts element values to uint16 with unsigned saturation.
  5595  //
  5596  // Asm: VPMOVUSDW, CPU Feature: AVX512
  5597  func (x Uint32x16) SaturateToUint16() Uint16x16
  5598  
  5599  // SaturateToUint16 converts element values to uint16 with unsigned saturation.
  5600  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  5601  //
  5602  // Asm: VPMOVUSQW, CPU Feature: AVX512
  5603  func (x Uint64x2) SaturateToUint16() Uint16x8
  5604  
  5605  // SaturateToUint16 converts element values to uint16 with unsigned saturation.
  5606  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  5607  //
  5608  // Asm: VPMOVUSQW, CPU Feature: AVX512
  5609  func (x Uint64x4) SaturateToUint16() Uint16x8
  5610  
  5611  // SaturateToUint16 converts element values to uint16 with unsigned saturation.
  5612  //
  5613  // Asm: VPMOVUSQW, CPU Feature: AVX512
  5614  func (x Uint64x8) SaturateToUint16() Uint16x8
  5615  
  5616  /* SaturateToUint16Concat */
  5617  
  5618  // SaturateToUint16Concat converts element values to uint16 with unsigned saturation.
  5619  // The converted elements from x will be packed to the lower part of the result vector,
  5620  // the converted elements from y will be packed to the upper part of the result vector.
  5621  //
  5622  // Asm: VPACKUSDW, CPU Feature: AVX
  5623  func (x Int32x4) SaturateToUint16Concat(y Int32x4) Uint16x8
  5624  
  5625  /* SaturateToUint16ConcatGrouped */
  5626  
  5627  // SaturateToUint16ConcatGrouped converts element values to uint16 with unsigned saturation.
  5628  // With each 128-bit as a group:
  5629  // The converted elements from x will be packed to the lower part of the group in the result vector,
  5630  // the converted elements from y will be packed to the upper part of the group in the result vector.
  5631  //
  5632  // Asm: VPACKUSDW, CPU Feature: AVX2
  5633  func (x Int32x8) SaturateToUint16ConcatGrouped(y Int32x8) Uint16x16
  5634  
  5635  // SaturateToUint16ConcatGrouped converts element values to uint16 with unsigned saturation.
  5636  // With each 128-bit as a group:
  5637  // The converted elements from x will be packed to the lower part of the group in the result vector,
  5638  // the converted elements from y will be packed to the upper part of the group in the result vector.
  5639  //
  5640  // Asm: VPACKUSDW, CPU Feature: AVX512
  5641  func (x Int32x16) SaturateToUint16ConcatGrouped(y Int32x16) Uint16x32
  5642  
  5643  /* SaturateToUint32 */
  5644  
  5645  // SaturateToUint32 converts element values to uint32 with unsigned saturation.
  5646  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  5647  //
  5648  // Asm: VPMOVUSQD, CPU Feature: AVX512
  5649  func (x Uint64x2) SaturateToUint32() Uint32x4
  5650  
  5651  // SaturateToUint32 converts element values to uint32 with unsigned saturation.
  5652  //
  5653  // Asm: VPMOVUSQD, CPU Feature: AVX512
  5654  func (x Uint64x4) SaturateToUint32() Uint32x4
  5655  
  5656  // SaturateToUint32 converts element values to uint32 with unsigned saturation.
  5657  //
  5658  // Asm: VPMOVUSQD, CPU Feature: AVX512
  5659  func (x Uint64x8) SaturateToUint32() Uint32x8
  5660  
  5661  /* Scale */
  5662  
  5663  // Scale multiplies each element of x by 2 raised to the power of the
  5664  // floor of the corresponding element in y.
  5665  //
  5666  // Asm: VSCALEFPS, CPU Feature: AVX512
  5667  func (x Float32x4) Scale(y Float32x4) Float32x4
  5668  
  5669  // Scale multiplies each element of x by 2 raised to the power of the
  5670  // floor of the corresponding element in y.
  5671  //
  5672  // Asm: VSCALEFPS, CPU Feature: AVX512
  5673  func (x Float32x8) Scale(y Float32x8) Float32x8
  5674  
  5675  // Scale multiplies each element of x by 2 raised to the power of the
  5676  // floor of the corresponding element in y.
  5677  //
  5678  // Asm: VSCALEFPS, CPU Feature: AVX512
  5679  func (x Float32x16) Scale(y Float32x16) Float32x16
  5680  
  5681  // Scale multiplies each element of x by 2 raised to the power of the
  5682  // floor of the corresponding element in y.
  5683  //
  5684  // Asm: VSCALEFPD, CPU Feature: AVX512
  5685  func (x Float64x2) Scale(y Float64x2) Float64x2
  5686  
  5687  // Scale multiplies each element of x by 2 raised to the power of the
  5688  // floor of the corresponding element in y.
  5689  //
  5690  // Asm: VSCALEFPD, CPU Feature: AVX512
  5691  func (x Float64x4) Scale(y Float64x4) Float64x4
  5692  
  5693  // Scale multiplies each element of x by 2 raised to the power of the
  5694  // floor of the corresponding element in y.
  5695  //
  5696  // Asm: VSCALEFPD, CPU Feature: AVX512
  5697  func (x Float64x8) Scale(y Float64x8) Float64x8
  5698  
  5699  /* Select128FromPair */
  5700  
  5701  // Select128FromPair treats the 256-bit vectors x and y as a single vector of four
  5702  // 128-bit elements, and returns a 256-bit result formed by
  5703  // concatenating the two elements specified by lo and hi.
  5704  // For example,
  5705  //
  5706  //	{40, 41, 42, 43, 50, 51, 52, 53}.Select128FromPair(3, 0, {60, 61, 62, 63, 70, 71, 72, 73})
  5707  //
  5708  // returns {70, 71, 72, 73, 40, 41, 42, 43}.
  5709  //
  5710  // lo, hi result in better performance when they are constants, non-constant values will be translated into a jump table.
  5711  // lo, hi should be between 0 and 3, inclusive; other values may result in a runtime panic.
  5712  //
  5713  // Asm: VPERM2F128, CPU Feature: AVX
  5714  func (x Float32x8) Select128FromPair(lo, hi uint8, y Float32x8) Float32x8
  5715  
  5716  // Select128FromPair treats the 256-bit vectors x and y as a single vector of four
  5717  // 128-bit elements, and returns a 256-bit result formed by
  5718  // concatenating the two elements specified by lo and hi.
  5719  // For example,
  5720  //
  5721  //	{40, 41, 50, 51}.Select128FromPair(3, 0, {60, 61, 70, 71})
  5722  //
  5723  // returns {70, 71, 40, 41}.
  5724  //
  5725  // lo, hi result in better performance when they are constants, non-constant values will be translated into a jump table.
  5726  // lo, hi should be between 0 and 3, inclusive; other values may result in a runtime panic.
  5727  //
  5728  // Asm: VPERM2F128, CPU Feature: AVX
  5729  func (x Float64x4) Select128FromPair(lo, hi uint8, y Float64x4) Float64x4
  5730  
  5731  // Select128FromPair treats the 256-bit vectors x and y as a single vector of four
  5732  // 128-bit elements, and returns a 256-bit result formed by
  5733  // concatenating the two elements specified by lo and hi.
  5734  // For example,
  5735  //
  5736  //	{0x40, 0x41, ..., 0x4f, 0x50, 0x51, ..., 0x5f}.Select128FromPair(3, 0,
  5737  //	     {0x60, 0x61, ..., 0x6f, 0x70, 0x71, ..., 0x7f})
  5738  //
  5739  // returns {0x70, 0x71, ..., 0x7f, 0x40, 0x41, ..., 0x4f}.
  5740  //
  5741  // lo, hi result in better performance when they are constants, non-constant values will be translated into a jump table.
  5742  // lo, hi should be between 0 and 3, inclusive; other values may result in a runtime panic.
  5743  //
  5744  // Asm: VPERM2I128, CPU Feature: AVX2
  5745  func (x Int8x32) Select128FromPair(lo, hi uint8, y Int8x32) Int8x32
  5746  
  5747  // Select128FromPair treats the 256-bit vectors x and y as a single vector of four
  5748  // 128-bit elements, and returns a 256-bit result formed by
  5749  // concatenating the two elements specified by lo and hi.
  5750  // For example,
  5751  //
  5752  //	{40, 41, 42, 43, 44, 45, 46, 47, 50, 51, 52, 53, 54, 55, 56, 57}.Select128FromPair(3, 0,
  5753  //	 {60, 61, 62, 63, 64, 65, 66, 67, 70, 71, 72, 73, 74, 75, 76, 77})
  5754  //
  5755  // returns {70, 71, 72, 73, 74, 75, 76, 77, 40, 41, 42, 43, 44, 45, 46, 47}.
  5756  //
  5757  // lo, hi result in better performance when they are constants, non-constant values will be translated into a jump table.
  5758  // lo, hi should be between 0 and 3, inclusive; other values may result in a runtime panic.
  5759  //
  5760  // Asm: VPERM2I128, CPU Feature: AVX2
  5761  func (x Int16x16) Select128FromPair(lo, hi uint8, y Int16x16) Int16x16
  5762  
  5763  // Select128FromPair treats the 256-bit vectors x and y as a single vector of four
  5764  // 128-bit elements, and returns a 256-bit result formed by
  5765  // concatenating the two elements specified by lo and hi.
  5766  // For example,
  5767  //
  5768  //	{40, 41, 42, 43, 50, 51, 52, 53}.Select128FromPair(3, 0, {60, 61, 62, 63, 70, 71, 72, 73})
  5769  //
  5770  // returns {70, 71, 72, 73, 40, 41, 42, 43}.
  5771  //
  5772  // lo, hi result in better performance when they are constants, non-constant values will be translated into a jump table.
  5773  // lo, hi should be between 0 and 3, inclusive; other values may result in a runtime panic.
  5774  //
  5775  // Asm: VPERM2I128, CPU Feature: AVX2
  5776  func (x Int32x8) Select128FromPair(lo, hi uint8, y Int32x8) Int32x8
  5777  
  5778  // Select128FromPair treats the 256-bit vectors x and y as a single vector of four
  5779  // 128-bit elements, and returns a 256-bit result formed by
  5780  // concatenating the two elements specified by lo and hi.
  5781  // For example,
  5782  //
  5783  //	{40, 41, 50, 51}.Select128FromPair(3, 0, {60, 61, 70, 71})
  5784  //
  5785  // returns {70, 71, 40, 41}.
  5786  //
  5787  // lo, hi result in better performance when they are constants, non-constant values will be translated into a jump table.
  5788  // lo, hi should be between 0 and 3, inclusive; other values may result in a runtime panic.
  5789  //
  5790  // Asm: VPERM2I128, CPU Feature: AVX2
  5791  func (x Int64x4) Select128FromPair(lo, hi uint8, y Int64x4) Int64x4
  5792  
  5793  // Select128FromPair treats the 256-bit vectors x and y as a single vector of four
  5794  // 128-bit elements, and returns a 256-bit result formed by
  5795  // concatenating the two elements specified by lo and hi.
  5796  // For example,
  5797  //
  5798  //	{0x40, 0x41, ..., 0x4f, 0x50, 0x51, ..., 0x5f}.Select128FromPair(3, 0,
  5799  //	     {0x60, 0x61, ..., 0x6f, 0x70, 0x71, ..., 0x7f})
  5800  //
  5801  // returns {0x70, 0x71, ..., 0x7f, 0x40, 0x41, ..., 0x4f}.
  5802  //
  5803  // lo, hi result in better performance when they are constants, non-constant values will be translated into a jump table.
  5804  // lo, hi should be between 0 and 3, inclusive; other values may result in a runtime panic.
  5805  //
  5806  // Asm: VPERM2I128, CPU Feature: AVX2
  5807  func (x Uint8x32) Select128FromPair(lo, hi uint8, y Uint8x32) Uint8x32
  5808  
  5809  // Select128FromPair treats the 256-bit vectors x and y as a single vector of four
  5810  // 128-bit elements, and returns a 256-bit result formed by
  5811  // concatenating the two elements specified by lo and hi.
  5812  // For example,
  5813  //
  5814  //	{40, 41, 42, 43, 44, 45, 46, 47, 50, 51, 52, 53, 54, 55, 56, 57}.Select128FromPair(3, 0,
  5815  //	 {60, 61, 62, 63, 64, 65, 66, 67, 70, 71, 72, 73, 74, 75, 76, 77})
  5816  //
  5817  // returns {70, 71, 72, 73, 74, 75, 76, 77, 40, 41, 42, 43, 44, 45, 46, 47}.
  5818  //
  5819  // lo, hi result in better performance when they are constants, non-constant values will be translated into a jump table.
  5820  // lo, hi should be between 0 and 3, inclusive; other values may result in a runtime panic.
  5821  //
  5822  // Asm: VPERM2I128, CPU Feature: AVX2
  5823  func (x Uint16x16) Select128FromPair(lo, hi uint8, y Uint16x16) Uint16x16
  5824  
  5825  // Select128FromPair treats the 256-bit vectors x and y as a single vector of four
  5826  // 128-bit elements, and returns a 256-bit result formed by
  5827  // concatenating the two elements specified by lo and hi.
  5828  // For example,
  5829  //
  5830  //	{40, 41, 42, 43, 50, 51, 52, 53}.Select128FromPair(3, 0, {60, 61, 62, 63, 70, 71, 72, 73})
  5831  //
  5832  // returns {70, 71, 72, 73, 40, 41, 42, 43}.
  5833  //
  5834  // lo, hi result in better performance when they are constants, non-constant values will be translated into a jump table.
  5835  // lo, hi should be between 0 and 3, inclusive; other values may result in a runtime panic.
  5836  //
  5837  // Asm: VPERM2I128, CPU Feature: AVX2
  5838  func (x Uint32x8) Select128FromPair(lo, hi uint8, y Uint32x8) Uint32x8
  5839  
  5840  // Select128FromPair treats the 256-bit vectors x and y as a single vector of four
  5841  // 128-bit elements, and returns a 256-bit result formed by
  5842  // concatenating the two elements specified by lo and hi.
  5843  // For example,
  5844  //
  5845  //	{40, 41, 50, 51}.Select128FromPair(3, 0, {60, 61, 70, 71})
  5846  //
  5847  // returns {70, 71, 40, 41}.
  5848  //
  5849  // lo, hi result in better performance when they are constants, non-constant values will be translated into a jump table.
  5850  // lo, hi should be between 0 and 3, inclusive; other values may result in a runtime panic.
  5851  //
  5852  // Asm: VPERM2I128, CPU Feature: AVX2
  5853  func (x Uint64x4) Select128FromPair(lo, hi uint8, y Uint64x4) Uint64x4
  5854  
  5855  /* SetElem */
  5856  
  5857  // SetElem sets a single constant-indexed element's value.
  5858  //
  5859  // index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5860  //
  5861  // Asm: VPINSRD, CPU Feature: AVX
  5862  func (x Float32x4) SetElem(index uint8, y float32) Float32x4
  5863  
  5864  // SetElem sets a single constant-indexed element's value.
  5865  //
  5866  // index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5867  //
  5868  // Asm: VPINSRQ, CPU Feature: AVX
  5869  func (x Float64x2) SetElem(index uint8, y float64) Float64x2
  5870  
  5871  // SetElem sets a single constant-indexed element's value.
  5872  //
  5873  // index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5874  //
  5875  // Asm: VPINSRB, CPU Feature: AVX
  5876  func (x Int8x16) SetElem(index uint8, y int8) Int8x16
  5877  
  5878  // SetElem sets a single constant-indexed element's value.
  5879  //
  5880  // index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5881  //
  5882  // Asm: VPINSRW, CPU Feature: AVX
  5883  func (x Int16x8) SetElem(index uint8, y int16) Int16x8
  5884  
  5885  // SetElem sets a single constant-indexed element's value.
  5886  //
  5887  // index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5888  //
  5889  // Asm: VPINSRD, CPU Feature: AVX
  5890  func (x Int32x4) SetElem(index uint8, y int32) Int32x4
  5891  
  5892  // SetElem sets a single constant-indexed element's value.
  5893  //
  5894  // index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5895  //
  5896  // Asm: VPINSRQ, CPU Feature: AVX
  5897  func (x Int64x2) SetElem(index uint8, y int64) Int64x2
  5898  
  5899  // SetElem sets a single constant-indexed element's value.
  5900  //
  5901  // index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5902  //
  5903  // Asm: VPINSRB, CPU Feature: AVX
  5904  func (x Uint8x16) SetElem(index uint8, y uint8) Uint8x16
  5905  
  5906  // SetElem sets a single constant-indexed element's value.
  5907  //
  5908  // index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5909  //
  5910  // Asm: VPINSRW, CPU Feature: AVX
  5911  func (x Uint16x8) SetElem(index uint8, y uint16) Uint16x8
  5912  
  5913  // SetElem sets a single constant-indexed element's value.
  5914  //
  5915  // index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5916  //
  5917  // Asm: VPINSRD, CPU Feature: AVX
  5918  func (x Uint32x4) SetElem(index uint8, y uint32) Uint32x4
  5919  
  5920  // SetElem sets a single constant-indexed element's value.
  5921  //
  5922  // index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  5923  //
  5924  // Asm: VPINSRQ, CPU Feature: AVX
  5925  func (x Uint64x2) SetElem(index uint8, y uint64) Uint64x2
  5926  
  5927  /* SetHi */
  5928  
  5929  // SetHi returns x with its upper half set to y.
  5930  //
  5931  // Asm: VINSERTF128, CPU Feature: AVX
  5932  func (x Float32x8) SetHi(y Float32x4) Float32x8
  5933  
  5934  // SetHi returns x with its upper half set to y.
  5935  //
  5936  // Asm: VINSERTF64X4, CPU Feature: AVX512
  5937  func (x Float32x16) SetHi(y Float32x8) Float32x16
  5938  
  5939  // SetHi returns x with its upper half set to y.
  5940  //
  5941  // Asm: VINSERTF128, CPU Feature: AVX
  5942  func (x Float64x4) SetHi(y Float64x2) Float64x4
  5943  
  5944  // SetHi returns x with its upper half set to y.
  5945  //
  5946  // Asm: VINSERTF64X4, CPU Feature: AVX512
  5947  func (x Float64x8) SetHi(y Float64x4) Float64x8
  5948  
  5949  // SetHi returns x with its upper half set to y.
  5950  //
  5951  // Asm: VINSERTI128, CPU Feature: AVX2
  5952  func (x Int8x32) SetHi(y Int8x16) Int8x32
  5953  
  5954  // SetHi returns x with its upper half set to y.
  5955  //
  5956  // Asm: VINSERTI64X4, CPU Feature: AVX512
  5957  func (x Int8x64) SetHi(y Int8x32) Int8x64
  5958  
  5959  // SetHi returns x with its upper half set to y.
  5960  //
  5961  // Asm: VINSERTI128, CPU Feature: AVX2
  5962  func (x Int16x16) SetHi(y Int16x8) Int16x16
  5963  
  5964  // SetHi returns x with its upper half set to y.
  5965  //
  5966  // Asm: VINSERTI64X4, CPU Feature: AVX512
  5967  func (x Int16x32) SetHi(y Int16x16) Int16x32
  5968  
  5969  // SetHi returns x with its upper half set to y.
  5970  //
  5971  // Asm: VINSERTI128, CPU Feature: AVX2
  5972  func (x Int32x8) SetHi(y Int32x4) Int32x8
  5973  
  5974  // SetHi returns x with its upper half set to y.
  5975  //
  5976  // Asm: VINSERTI64X4, CPU Feature: AVX512
  5977  func (x Int32x16) SetHi(y Int32x8) Int32x16
  5978  
  5979  // SetHi returns x with its upper half set to y.
  5980  //
  5981  // Asm: VINSERTI128, CPU Feature: AVX2
  5982  func (x Int64x4) SetHi(y Int64x2) Int64x4
  5983  
  5984  // SetHi returns x with its upper half set to y.
  5985  //
  5986  // Asm: VINSERTI64X4, CPU Feature: AVX512
  5987  func (x Int64x8) SetHi(y Int64x4) Int64x8
  5988  
  5989  // SetHi returns x with its upper half set to y.
  5990  //
  5991  // Asm: VINSERTI128, CPU Feature: AVX2
  5992  func (x Uint8x32) SetHi(y Uint8x16) Uint8x32
  5993  
  5994  // SetHi returns x with its upper half set to y.
  5995  //
  5996  // Asm: VINSERTI64X4, CPU Feature: AVX512
  5997  func (x Uint8x64) SetHi(y Uint8x32) Uint8x64
  5998  
  5999  // SetHi returns x with its upper half set to y.
  6000  //
  6001  // Asm: VINSERTI128, CPU Feature: AVX2
  6002  func (x Uint16x16) SetHi(y Uint16x8) Uint16x16
  6003  
  6004  // SetHi returns x with its upper half set to y.
  6005  //
  6006  // Asm: VINSERTI64X4, CPU Feature: AVX512
  6007  func (x Uint16x32) SetHi(y Uint16x16) Uint16x32
  6008  
  6009  // SetHi returns x with its upper half set to y.
  6010  //
  6011  // Asm: VINSERTI128, CPU Feature: AVX2
  6012  func (x Uint32x8) SetHi(y Uint32x4) Uint32x8
  6013  
  6014  // SetHi returns x with its upper half set to y.
  6015  //
  6016  // Asm: VINSERTI64X4, CPU Feature: AVX512
  6017  func (x Uint32x16) SetHi(y Uint32x8) Uint32x16
  6018  
  6019  // SetHi returns x with its upper half set to y.
  6020  //
  6021  // Asm: VINSERTI128, CPU Feature: AVX2
  6022  func (x Uint64x4) SetHi(y Uint64x2) Uint64x4
  6023  
  6024  // SetHi returns x with its upper half set to y.
  6025  //
  6026  // Asm: VINSERTI64X4, CPU Feature: AVX512
  6027  func (x Uint64x8) SetHi(y Uint64x4) Uint64x8
  6028  
  6029  /* SetLo */
  6030  
  6031  // SetLo returns x with its lower half set to y.
  6032  //
  6033  // Asm: VINSERTF128, CPU Feature: AVX
  6034  func (x Float32x8) SetLo(y Float32x4) Float32x8
  6035  
  6036  // SetLo returns x with its lower half set to y.
  6037  //
  6038  // Asm: VINSERTF64X4, CPU Feature: AVX512
  6039  func (x Float32x16) SetLo(y Float32x8) Float32x16
  6040  
  6041  // SetLo returns x with its lower half set to y.
  6042  //
  6043  // Asm: VINSERTF128, CPU Feature: AVX
  6044  func (x Float64x4) SetLo(y Float64x2) Float64x4
  6045  
  6046  // SetLo returns x with its lower half set to y.
  6047  //
  6048  // Asm: VINSERTF64X4, CPU Feature: AVX512
  6049  func (x Float64x8) SetLo(y Float64x4) Float64x8
  6050  
  6051  // SetLo returns x with its lower half set to y.
  6052  //
  6053  // Asm: VINSERTI128, CPU Feature: AVX2
  6054  func (x Int8x32) SetLo(y Int8x16) Int8x32
  6055  
  6056  // SetLo returns x with its lower half set to y.
  6057  //
  6058  // Asm: VINSERTI64X4, CPU Feature: AVX512
  6059  func (x Int8x64) SetLo(y Int8x32) Int8x64
  6060  
  6061  // SetLo returns x with its lower half set to y.
  6062  //
  6063  // Asm: VINSERTI128, CPU Feature: AVX2
  6064  func (x Int16x16) SetLo(y Int16x8) Int16x16
  6065  
  6066  // SetLo returns x with its lower half set to y.
  6067  //
  6068  // Asm: VINSERTI64X4, CPU Feature: AVX512
  6069  func (x Int16x32) SetLo(y Int16x16) Int16x32
  6070  
  6071  // SetLo returns x with its lower half set to y.
  6072  //
  6073  // Asm: VINSERTI128, CPU Feature: AVX2
  6074  func (x Int32x8) SetLo(y Int32x4) Int32x8
  6075  
  6076  // SetLo returns x with its lower half set to y.
  6077  //
  6078  // Asm: VINSERTI64X4, CPU Feature: AVX512
  6079  func (x Int32x16) SetLo(y Int32x8) Int32x16
  6080  
  6081  // SetLo returns x with its lower half set to y.
  6082  //
  6083  // Asm: VINSERTI128, CPU Feature: AVX2
  6084  func (x Int64x4) SetLo(y Int64x2) Int64x4
  6085  
  6086  // SetLo returns x with its lower half set to y.
  6087  //
  6088  // Asm: VINSERTI64X4, CPU Feature: AVX512
  6089  func (x Int64x8) SetLo(y Int64x4) Int64x8
  6090  
  6091  // SetLo returns x with its lower half set to y.
  6092  //
  6093  // Asm: VINSERTI128, CPU Feature: AVX2
  6094  func (x Uint8x32) SetLo(y Uint8x16) Uint8x32
  6095  
  6096  // SetLo returns x with its lower half set to y.
  6097  //
  6098  // Asm: VINSERTI64X4, CPU Feature: AVX512
  6099  func (x Uint8x64) SetLo(y Uint8x32) Uint8x64
  6100  
  6101  // SetLo returns x with its lower half set to y.
  6102  //
  6103  // Asm: VINSERTI128, CPU Feature: AVX2
  6104  func (x Uint16x16) SetLo(y Uint16x8) Uint16x16
  6105  
  6106  // SetLo returns x with its lower half set to y.
  6107  //
  6108  // Asm: VINSERTI64X4, CPU Feature: AVX512
  6109  func (x Uint16x32) SetLo(y Uint16x16) Uint16x32
  6110  
  6111  // SetLo returns x with its lower half set to y.
  6112  //
  6113  // Asm: VINSERTI128, CPU Feature: AVX2
  6114  func (x Uint32x8) SetLo(y Uint32x4) Uint32x8
  6115  
  6116  // SetLo returns x with its lower half set to y.
  6117  //
  6118  // Asm: VINSERTI64X4, CPU Feature: AVX512
  6119  func (x Uint32x16) SetLo(y Uint32x8) Uint32x16
  6120  
  6121  // SetLo returns x with its lower half set to y.
  6122  //
  6123  // Asm: VINSERTI128, CPU Feature: AVX2
  6124  func (x Uint64x4) SetLo(y Uint64x2) Uint64x4
  6125  
  6126  // SetLo returns x with its lower half set to y.
  6127  //
  6128  // Asm: VINSERTI64X4, CPU Feature: AVX512
  6129  func (x Uint64x8) SetLo(y Uint64x4) Uint64x8
  6130  
  6131  /* ShiftAllLeft */
  6132  
  6133  // ShiftAllLeft shifts each element to the left by y bits.
  6134  //
  6135  // Asm: VPSLLW, CPU Feature: AVX
  6136  func (x Int16x8) ShiftAllLeft(y uint64) Int16x8
  6137  
  6138  // ShiftAllLeft shifts each element to the left by y bits.
  6139  //
  6140  // Asm: VPSLLW, CPU Feature: AVX2
  6141  func (x Int16x16) ShiftAllLeft(y uint64) Int16x16
  6142  
  6143  // ShiftAllLeft shifts each element to the left by y bits.
  6144  //
  6145  // Asm: VPSLLW, CPU Feature: AVX512
  6146  func (x Int16x32) ShiftAllLeft(y uint64) Int16x32
  6147  
  6148  // ShiftAllLeft shifts each element to the left by y bits.
  6149  //
  6150  // Asm: VPSLLD, CPU Feature: AVX
  6151  func (x Int32x4) ShiftAllLeft(y uint64) Int32x4
  6152  
  6153  // ShiftAllLeft shifts each element to the left by y bits.
  6154  //
  6155  // Asm: VPSLLD, CPU Feature: AVX2
  6156  func (x Int32x8) ShiftAllLeft(y uint64) Int32x8
  6157  
  6158  // ShiftAllLeft shifts each element to the left by y bits.
  6159  //
  6160  // Asm: VPSLLD, CPU Feature: AVX512
  6161  func (x Int32x16) ShiftAllLeft(y uint64) Int32x16
  6162  
  6163  // ShiftAllLeft shifts each element to the left by y bits.
  6164  //
  6165  // Asm: VPSLLQ, CPU Feature: AVX
  6166  func (x Int64x2) ShiftAllLeft(y uint64) Int64x2
  6167  
  6168  // ShiftAllLeft shifts each element to the left by y bits.
  6169  //
  6170  // Asm: VPSLLQ, CPU Feature: AVX2
  6171  func (x Int64x4) ShiftAllLeft(y uint64) Int64x4
  6172  
  6173  // ShiftAllLeft shifts each element to the left by y bits.
  6174  //
  6175  // Asm: VPSLLQ, CPU Feature: AVX512
  6176  func (x Int64x8) ShiftAllLeft(y uint64) Int64x8
  6177  
  6178  // ShiftAllLeft shifts each element to the left by y bits.
  6179  //
  6180  // Asm: VPSLLW, CPU Feature: AVX
  6181  func (x Uint16x8) ShiftAllLeft(y uint64) Uint16x8
  6182  
  6183  // ShiftAllLeft shifts each element to the left by y bits.
  6184  //
  6185  // Asm: VPSLLW, CPU Feature: AVX2
  6186  func (x Uint16x16) ShiftAllLeft(y uint64) Uint16x16
  6187  
  6188  // ShiftAllLeft shifts each element to the left by y bits.
  6189  //
  6190  // Asm: VPSLLW, CPU Feature: AVX512
  6191  func (x Uint16x32) ShiftAllLeft(y uint64) Uint16x32
  6192  
  6193  // ShiftAllLeft shifts each element to the left by y bits.
  6194  //
  6195  // Asm: VPSLLD, CPU Feature: AVX
  6196  func (x Uint32x4) ShiftAllLeft(y uint64) Uint32x4
  6197  
  6198  // ShiftAllLeft shifts each element to the left by y bits.
  6199  //
  6200  // Asm: VPSLLD, CPU Feature: AVX2
  6201  func (x Uint32x8) ShiftAllLeft(y uint64) Uint32x8
  6202  
  6203  // ShiftAllLeft shifts each element to the left by y bits.
  6204  //
  6205  // Asm: VPSLLD, CPU Feature: AVX512
  6206  func (x Uint32x16) ShiftAllLeft(y uint64) Uint32x16
  6207  
  6208  // ShiftAllLeft shifts each element to the left by y bits.
  6209  //
  6210  // Asm: VPSLLQ, CPU Feature: AVX
  6211  func (x Uint64x2) ShiftAllLeft(y uint64) Uint64x2
  6212  
  6213  // ShiftAllLeft shifts each element to the left by y bits.
  6214  //
  6215  // Asm: VPSLLQ, CPU Feature: AVX2
  6216  func (x Uint64x4) ShiftAllLeft(y uint64) Uint64x4
  6217  
  6218  // ShiftAllLeft shifts each element to the left by y bits.
  6219  //
  6220  // Asm: VPSLLQ, CPU Feature: AVX512
  6221  func (x Uint64x8) ShiftAllLeft(y uint64) Uint64x8
  6222  
  6223  /* ShiftAllLeftConcat */
  6224  
  6225  // ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by
  6226  // shift (only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
  6227  //
  6228  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6229  //
  6230  // Asm: VPSHLDW, CPU Feature: AVX512VBMI2
  6231  func (x Int16x8) ShiftAllLeftConcat(shift uint8, y Int16x8) Int16x8
  6232  
  6233  // ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by
  6234  // shift (only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
  6235  //
  6236  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6237  //
  6238  // Asm: VPSHLDW, CPU Feature: AVX512VBMI2
  6239  func (x Int16x16) ShiftAllLeftConcat(shift uint8, y Int16x16) Int16x16
  6240  
  6241  // ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by
  6242  // shift (only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
  6243  //
  6244  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6245  //
  6246  // Asm: VPSHLDW, CPU Feature: AVX512VBMI2
  6247  func (x Int16x32) ShiftAllLeftConcat(shift uint8, y Int16x32) Int16x32
  6248  
  6249  // ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by
  6250  // shift (only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
  6251  //
  6252  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6253  //
  6254  // Asm: VPSHLDD, CPU Feature: AVX512VBMI2
  6255  func (x Int32x4) ShiftAllLeftConcat(shift uint8, y Int32x4) Int32x4
  6256  
  6257  // ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by
  6258  // shift (only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
  6259  //
  6260  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6261  //
  6262  // Asm: VPSHLDD, CPU Feature: AVX512VBMI2
  6263  func (x Int32x8) ShiftAllLeftConcat(shift uint8, y Int32x8) Int32x8
  6264  
  6265  // ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by
  6266  // shift (only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
  6267  //
  6268  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6269  //
  6270  // Asm: VPSHLDD, CPU Feature: AVX512VBMI2
  6271  func (x Int32x16) ShiftAllLeftConcat(shift uint8, y Int32x16) Int32x16
  6272  
  6273  // ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by
  6274  // shift (only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
  6275  //
  6276  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6277  //
  6278  // Asm: VPSHLDQ, CPU Feature: AVX512VBMI2
  6279  func (x Int64x2) ShiftAllLeftConcat(shift uint8, y Int64x2) Int64x2
  6280  
  6281  // ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by
  6282  // shift (only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
  6283  //
  6284  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6285  //
  6286  // Asm: VPSHLDQ, CPU Feature: AVX512VBMI2
  6287  func (x Int64x4) ShiftAllLeftConcat(shift uint8, y Int64x4) Int64x4
  6288  
  6289  // ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by
  6290  // shift (only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
  6291  //
  6292  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6293  //
  6294  // Asm: VPSHLDQ, CPU Feature: AVX512VBMI2
  6295  func (x Int64x8) ShiftAllLeftConcat(shift uint8, y Int64x8) Int64x8
  6296  
  6297  // ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by
  6298  // shift (only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
  6299  //
  6300  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6301  //
  6302  // Asm: VPSHLDW, CPU Feature: AVX512VBMI2
  6303  func (x Uint16x8) ShiftAllLeftConcat(shift uint8, y Uint16x8) Uint16x8
  6304  
  6305  // ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by
  6306  // shift (only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
  6307  //
  6308  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6309  //
  6310  // Asm: VPSHLDW, CPU Feature: AVX512VBMI2
  6311  func (x Uint16x16) ShiftAllLeftConcat(shift uint8, y Uint16x16) Uint16x16
  6312  
  6313  // ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by
  6314  // shift (only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
  6315  //
  6316  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6317  //
  6318  // Asm: VPSHLDW, CPU Feature: AVX512VBMI2
  6319  func (x Uint16x32) ShiftAllLeftConcat(shift uint8, y Uint16x32) Uint16x32
  6320  
  6321  // ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by
  6322  // shift (only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
  6323  //
  6324  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6325  //
  6326  // Asm: VPSHLDD, CPU Feature: AVX512VBMI2
  6327  func (x Uint32x4) ShiftAllLeftConcat(shift uint8, y Uint32x4) Uint32x4
  6328  
  6329  // ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by
  6330  // shift (only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
  6331  //
  6332  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6333  //
  6334  // Asm: VPSHLDD, CPU Feature: AVX512VBMI2
  6335  func (x Uint32x8) ShiftAllLeftConcat(shift uint8, y Uint32x8) Uint32x8
  6336  
  6337  // ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by
  6338  // shift (only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
  6339  //
  6340  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6341  //
  6342  // Asm: VPSHLDD, CPU Feature: AVX512VBMI2
  6343  func (x Uint32x16) ShiftAllLeftConcat(shift uint8, y Uint32x16) Uint32x16
  6344  
  6345  // ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by
  6346  // shift (only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
  6347  //
  6348  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6349  //
  6350  // Asm: VPSHLDQ, CPU Feature: AVX512VBMI2
  6351  func (x Uint64x2) ShiftAllLeftConcat(shift uint8, y Uint64x2) Uint64x2
  6352  
  6353  // ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by
  6354  // shift (only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
  6355  //
  6356  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6357  //
  6358  // Asm: VPSHLDQ, CPU Feature: AVX512VBMI2
  6359  func (x Uint64x4) ShiftAllLeftConcat(shift uint8, y Uint64x4) Uint64x4
  6360  
  6361  // ShiftAllLeftConcat shifts each element of x to the left by the number of bits specified by
  6362  // shift (only the lower 5 bits are used), and then copies the upper bits of y to the emptied lower bits of the shifted x.
  6363  //
  6364  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6365  //
  6366  // Asm: VPSHLDQ, CPU Feature: AVX512VBMI2
  6367  func (x Uint64x8) ShiftAllLeftConcat(shift uint8, y Uint64x8) Uint64x8
  6368  
  6369  /* ShiftAllRight */
  6370  
  6371  // ShiftAllRight performs a signed right shift on each element by y bits.
  6372  //
  6373  // Asm: VPSRAW, CPU Feature: AVX
  6374  func (x Int16x8) ShiftAllRight(y uint64) Int16x8
  6375  
  6376  // ShiftAllRight performs a signed right shift on each element by y bits.
  6377  //
  6378  // Asm: VPSRAW, CPU Feature: AVX2
  6379  func (x Int16x16) ShiftAllRight(y uint64) Int16x16
  6380  
  6381  // ShiftAllRight performs a signed right shift on each element by y bits.
  6382  //
  6383  // Asm: VPSRAW, CPU Feature: AVX512
  6384  func (x Int16x32) ShiftAllRight(y uint64) Int16x32
  6385  
  6386  // ShiftAllRight performs a signed right shift on each element by y bits.
  6387  //
  6388  // Asm: VPSRAD, CPU Feature: AVX
  6389  func (x Int32x4) ShiftAllRight(y uint64) Int32x4
  6390  
  6391  // ShiftAllRight performs a signed right shift on each element by y bits.
  6392  //
  6393  // Asm: VPSRAD, CPU Feature: AVX2
  6394  func (x Int32x8) ShiftAllRight(y uint64) Int32x8
  6395  
  6396  // ShiftAllRight performs a signed right shift on each element by y bits.
  6397  //
  6398  // Asm: VPSRAD, CPU Feature: AVX512
  6399  func (x Int32x16) ShiftAllRight(y uint64) Int32x16
  6400  
  6401  // ShiftAllRight performs a signed right shift on each element by y bits.
  6402  //
  6403  // Asm: VPSRAQ, CPU Feature: AVX512
  6404  func (x Int64x2) ShiftAllRight(y uint64) Int64x2
  6405  
  6406  // ShiftAllRight performs a signed right shift on each element by y bits.
  6407  //
  6408  // Asm: VPSRAQ, CPU Feature: AVX512
  6409  func (x Int64x4) ShiftAllRight(y uint64) Int64x4
  6410  
  6411  // ShiftAllRight performs a signed right shift on each element by y bits.
  6412  //
  6413  // Asm: VPSRAQ, CPU Feature: AVX512
  6414  func (x Int64x8) ShiftAllRight(y uint64) Int64x8
  6415  
  6416  // ShiftAllRight performs an unsigned right shift on each element by y bits.
  6417  //
  6418  // Asm: VPSRLW, CPU Feature: AVX
  6419  func (x Uint16x8) ShiftAllRight(y uint64) Uint16x8
  6420  
  6421  // ShiftAllRight performs an unsigned right shift on each element by y bits.
  6422  //
  6423  // Asm: VPSRLW, CPU Feature: AVX2
  6424  func (x Uint16x16) ShiftAllRight(y uint64) Uint16x16
  6425  
  6426  // ShiftAllRight performs an unsigned right shift on each element by y bits.
  6427  //
  6428  // Asm: VPSRLW, CPU Feature: AVX512
  6429  func (x Uint16x32) ShiftAllRight(y uint64) Uint16x32
  6430  
  6431  // ShiftAllRight performs an unsigned right shift on each element by y bits.
  6432  //
  6433  // Asm: VPSRLD, CPU Feature: AVX
  6434  func (x Uint32x4) ShiftAllRight(y uint64) Uint32x4
  6435  
  6436  // ShiftAllRight performs an unsigned right shift on each element by y bits.
  6437  //
  6438  // Asm: VPSRLD, CPU Feature: AVX2
  6439  func (x Uint32x8) ShiftAllRight(y uint64) Uint32x8
  6440  
  6441  // ShiftAllRight performs an unsigned right shift on each element by y bits.
  6442  //
  6443  // Asm: VPSRLD, CPU Feature: AVX512
  6444  func (x Uint32x16) ShiftAllRight(y uint64) Uint32x16
  6445  
  6446  // ShiftAllRight performs an unsigned right shift on each element by y bits.
  6447  //
  6448  // Asm: VPSRLQ, CPU Feature: AVX
  6449  func (x Uint64x2) ShiftAllRight(y uint64) Uint64x2
  6450  
  6451  // ShiftAllRight performs an unsigned right shift on each element by y bits.
  6452  //
  6453  // Asm: VPSRLQ, CPU Feature: AVX2
  6454  func (x Uint64x4) ShiftAllRight(y uint64) Uint64x4
  6455  
  6456  // ShiftAllRight performs an unsigned right shift on each element by y bits.
  6457  //
  6458  // Asm: VPSRLQ, CPU Feature: AVX512
  6459  func (x Uint64x8) ShiftAllRight(y uint64) Uint64x8
  6460  
  6461  /* ShiftAllRightConcat */
  6462  
  6463  // ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by
  6464  // shift (only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
  6465  //
  6466  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6467  //
  6468  // Asm: VPSHRDW, CPU Feature: AVX512VBMI2
  6469  func (x Int16x8) ShiftAllRightConcat(shift uint8, y Int16x8) Int16x8
  6470  
  6471  // ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by
  6472  // shift (only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
  6473  //
  6474  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6475  //
  6476  // Asm: VPSHRDW, CPU Feature: AVX512VBMI2
  6477  func (x Int16x16) ShiftAllRightConcat(shift uint8, y Int16x16) Int16x16
  6478  
  6479  // ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by
  6480  // shift (only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
  6481  //
  6482  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6483  //
  6484  // Asm: VPSHRDW, CPU Feature: AVX512VBMI2
  6485  func (x Int16x32) ShiftAllRightConcat(shift uint8, y Int16x32) Int16x32
  6486  
  6487  // ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by
  6488  // shift (only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
  6489  //
  6490  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6491  //
  6492  // Asm: VPSHRDD, CPU Feature: AVX512VBMI2
  6493  func (x Int32x4) ShiftAllRightConcat(shift uint8, y Int32x4) Int32x4
  6494  
  6495  // ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by
  6496  // shift (only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
  6497  //
  6498  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6499  //
  6500  // Asm: VPSHRDD, CPU Feature: AVX512VBMI2
  6501  func (x Int32x8) ShiftAllRightConcat(shift uint8, y Int32x8) Int32x8
  6502  
  6503  // ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by
  6504  // shift (only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
  6505  //
  6506  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6507  //
  6508  // Asm: VPSHRDD, CPU Feature: AVX512VBMI2
  6509  func (x Int32x16) ShiftAllRightConcat(shift uint8, y Int32x16) Int32x16
  6510  
  6511  // ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by
  6512  // shift (only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
  6513  //
  6514  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6515  //
  6516  // Asm: VPSHRDQ, CPU Feature: AVX512VBMI2
  6517  func (x Int64x2) ShiftAllRightConcat(shift uint8, y Int64x2) Int64x2
  6518  
  6519  // ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by
  6520  // shift (only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
  6521  //
  6522  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6523  //
  6524  // Asm: VPSHRDQ, CPU Feature: AVX512VBMI2
  6525  func (x Int64x4) ShiftAllRightConcat(shift uint8, y Int64x4) Int64x4
  6526  
  6527  // ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by
  6528  // shift (only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
  6529  //
  6530  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6531  //
  6532  // Asm: VPSHRDQ, CPU Feature: AVX512VBMI2
  6533  func (x Int64x8) ShiftAllRightConcat(shift uint8, y Int64x8) Int64x8
  6534  
  6535  // ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by
  6536  // shift (only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
  6537  //
  6538  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6539  //
  6540  // Asm: VPSHRDW, CPU Feature: AVX512VBMI2
  6541  func (x Uint16x8) ShiftAllRightConcat(shift uint8, y Uint16x8) Uint16x8
  6542  
  6543  // ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by
  6544  // shift (only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
  6545  //
  6546  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6547  //
  6548  // Asm: VPSHRDW, CPU Feature: AVX512VBMI2
  6549  func (x Uint16x16) ShiftAllRightConcat(shift uint8, y Uint16x16) Uint16x16
  6550  
  6551  // ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by
  6552  // shift (only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
  6553  //
  6554  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6555  //
  6556  // Asm: VPSHRDW, CPU Feature: AVX512VBMI2
  6557  func (x Uint16x32) ShiftAllRightConcat(shift uint8, y Uint16x32) Uint16x32
  6558  
  6559  // ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by
  6560  // shift (only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
  6561  //
  6562  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6563  //
  6564  // Asm: VPSHRDD, CPU Feature: AVX512VBMI2
  6565  func (x Uint32x4) ShiftAllRightConcat(shift uint8, y Uint32x4) Uint32x4
  6566  
  6567  // ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by
  6568  // shift (only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
  6569  //
  6570  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6571  //
  6572  // Asm: VPSHRDD, CPU Feature: AVX512VBMI2
  6573  func (x Uint32x8) ShiftAllRightConcat(shift uint8, y Uint32x8) Uint32x8
  6574  
  6575  // ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by
  6576  // shift (only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
  6577  //
  6578  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6579  //
  6580  // Asm: VPSHRDD, CPU Feature: AVX512VBMI2
  6581  func (x Uint32x16) ShiftAllRightConcat(shift uint8, y Uint32x16) Uint32x16
  6582  
  6583  // ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by
  6584  // shift (only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
  6585  //
  6586  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6587  //
  6588  // Asm: VPSHRDQ, CPU Feature: AVX512VBMI2
  6589  func (x Uint64x2) ShiftAllRightConcat(shift uint8, y Uint64x2) Uint64x2
  6590  
  6591  // ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by
  6592  // shift (only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
  6593  //
  6594  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6595  //
  6596  // Asm: VPSHRDQ, CPU Feature: AVX512VBMI2
  6597  func (x Uint64x4) ShiftAllRightConcat(shift uint8, y Uint64x4) Uint64x4
  6598  
  6599  // ShiftAllRightConcat shifts each element of x to the right by the number of bits specified by
  6600  // shift (only the lower 5 bits are used), and then copies the lower bits of y to the emptied upper bits of the shifted x.
  6601  //
  6602  // shift results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  6603  //
  6604  // Asm: VPSHRDQ, CPU Feature: AVX512VBMI2
  6605  func (x Uint64x8) ShiftAllRightConcat(shift uint8, y Uint64x8) Uint64x8
  6606  
  6607  /* ShiftLeft */
  6608  
  6609  // ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements.
  6610  //
  6611  // Asm: VPSLLVW, CPU Feature: AVX512
  6612  func (x Int16x8) ShiftLeft(y Int16x8) Int16x8
  6613  
  6614  // ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements.
  6615  //
  6616  // Asm: VPSLLVW, CPU Feature: AVX512
  6617  func (x Int16x16) ShiftLeft(y Int16x16) Int16x16
  6618  
  6619  // ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements.
  6620  //
  6621  // Asm: VPSLLVW, CPU Feature: AVX512
  6622  func (x Int16x32) ShiftLeft(y Int16x32) Int16x32
  6623  
  6624  // ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements.
  6625  //
  6626  // Asm: VPSLLVD, CPU Feature: AVX2
  6627  func (x Int32x4) ShiftLeft(y Int32x4) Int32x4
  6628  
  6629  // ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements.
  6630  //
  6631  // Asm: VPSLLVD, CPU Feature: AVX2
  6632  func (x Int32x8) ShiftLeft(y Int32x8) Int32x8
  6633  
  6634  // ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements.
  6635  //
  6636  // Asm: VPSLLVD, CPU Feature: AVX512
  6637  func (x Int32x16) ShiftLeft(y Int32x16) Int32x16
  6638  
  6639  // ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements.
  6640  //
  6641  // Asm: VPSLLVQ, CPU Feature: AVX2
  6642  func (x Int64x2) ShiftLeft(y Int64x2) Int64x2
  6643  
  6644  // ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements.
  6645  //
  6646  // Asm: VPSLLVQ, CPU Feature: AVX2
  6647  func (x Int64x4) ShiftLeft(y Int64x4) Int64x4
  6648  
  6649  // ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements.
  6650  //
  6651  // Asm: VPSLLVQ, CPU Feature: AVX512
  6652  func (x Int64x8) ShiftLeft(y Int64x8) Int64x8
  6653  
  6654  // ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements.
  6655  //
  6656  // Asm: VPSLLVW, CPU Feature: AVX512
  6657  func (x Uint16x8) ShiftLeft(y Uint16x8) Uint16x8
  6658  
  6659  // ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements.
  6660  //
  6661  // Asm: VPSLLVW, CPU Feature: AVX512
  6662  func (x Uint16x16) ShiftLeft(y Uint16x16) Uint16x16
  6663  
  6664  // ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements.
  6665  //
  6666  // Asm: VPSLLVW, CPU Feature: AVX512
  6667  func (x Uint16x32) ShiftLeft(y Uint16x32) Uint16x32
  6668  
  6669  // ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements.
  6670  //
  6671  // Asm: VPSLLVD, CPU Feature: AVX2
  6672  func (x Uint32x4) ShiftLeft(y Uint32x4) Uint32x4
  6673  
  6674  // ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements.
  6675  //
  6676  // Asm: VPSLLVD, CPU Feature: AVX2
  6677  func (x Uint32x8) ShiftLeft(y Uint32x8) Uint32x8
  6678  
  6679  // ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements.
  6680  //
  6681  // Asm: VPSLLVD, CPU Feature: AVX512
  6682  func (x Uint32x16) ShiftLeft(y Uint32x16) Uint32x16
  6683  
  6684  // ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements.
  6685  //
  6686  // Asm: VPSLLVQ, CPU Feature: AVX2
  6687  func (x Uint64x2) ShiftLeft(y Uint64x2) Uint64x2
  6688  
  6689  // ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements.
  6690  //
  6691  // Asm: VPSLLVQ, CPU Feature: AVX2
  6692  func (x Uint64x4) ShiftLeft(y Uint64x4) Uint64x4
  6693  
  6694  // ShiftLeft shifts each element in x to the left by the number of bits specified in y's corresponding elements.
  6695  //
  6696  // Asm: VPSLLVQ, CPU Feature: AVX512
  6697  func (x Uint64x8) ShiftLeft(y Uint64x8) Uint64x8
  6698  
  6699  /* ShiftLeftConcat */
  6700  
  6701  // ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
  6702  // 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.
  6703  //
  6704  // Asm: VPSHLDVW, CPU Feature: AVX512VBMI2
  6705  func (x Int16x8) ShiftLeftConcat(y Int16x8, z Int16x8) Int16x8
  6706  
  6707  // ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
  6708  // 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.
  6709  //
  6710  // Asm: VPSHLDVW, CPU Feature: AVX512VBMI2
  6711  func (x Int16x16) ShiftLeftConcat(y Int16x16, z Int16x16) Int16x16
  6712  
  6713  // ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
  6714  // 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.
  6715  //
  6716  // Asm: VPSHLDVW, CPU Feature: AVX512VBMI2
  6717  func (x Int16x32) ShiftLeftConcat(y Int16x32, z Int16x32) Int16x32
  6718  
  6719  // ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
  6720  // 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.
  6721  //
  6722  // Asm: VPSHLDVD, CPU Feature: AVX512VBMI2
  6723  func (x Int32x4) ShiftLeftConcat(y Int32x4, z Int32x4) Int32x4
  6724  
  6725  // ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
  6726  // 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.
  6727  //
  6728  // Asm: VPSHLDVD, CPU Feature: AVX512VBMI2
  6729  func (x Int32x8) ShiftLeftConcat(y Int32x8, z Int32x8) Int32x8
  6730  
  6731  // ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
  6732  // 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.
  6733  //
  6734  // Asm: VPSHLDVD, CPU Feature: AVX512VBMI2
  6735  func (x Int32x16) ShiftLeftConcat(y Int32x16, z Int32x16) Int32x16
  6736  
  6737  // ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
  6738  // 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.
  6739  //
  6740  // Asm: VPSHLDVQ, CPU Feature: AVX512VBMI2
  6741  func (x Int64x2) ShiftLeftConcat(y Int64x2, z Int64x2) Int64x2
  6742  
  6743  // ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
  6744  // 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.
  6745  //
  6746  // Asm: VPSHLDVQ, CPU Feature: AVX512VBMI2
  6747  func (x Int64x4) ShiftLeftConcat(y Int64x4, z Int64x4) Int64x4
  6748  
  6749  // ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
  6750  // 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.
  6751  //
  6752  // Asm: VPSHLDVQ, CPU Feature: AVX512VBMI2
  6753  func (x Int64x8) ShiftLeftConcat(y Int64x8, z Int64x8) Int64x8
  6754  
  6755  // ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
  6756  // 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.
  6757  //
  6758  // Asm: VPSHLDVW, CPU Feature: AVX512VBMI2
  6759  func (x Uint16x8) ShiftLeftConcat(y Uint16x8, z Uint16x8) Uint16x8
  6760  
  6761  // ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
  6762  // 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.
  6763  //
  6764  // Asm: VPSHLDVW, CPU Feature: AVX512VBMI2
  6765  func (x Uint16x16) ShiftLeftConcat(y Uint16x16, z Uint16x16) Uint16x16
  6766  
  6767  // ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
  6768  // 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.
  6769  //
  6770  // Asm: VPSHLDVW, CPU Feature: AVX512VBMI2
  6771  func (x Uint16x32) ShiftLeftConcat(y Uint16x32, z Uint16x32) Uint16x32
  6772  
  6773  // ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
  6774  // 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.
  6775  //
  6776  // Asm: VPSHLDVD, CPU Feature: AVX512VBMI2
  6777  func (x Uint32x4) ShiftLeftConcat(y Uint32x4, z Uint32x4) Uint32x4
  6778  
  6779  // ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
  6780  // 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.
  6781  //
  6782  // Asm: VPSHLDVD, CPU Feature: AVX512VBMI2
  6783  func (x Uint32x8) ShiftLeftConcat(y Uint32x8, z Uint32x8) Uint32x8
  6784  
  6785  // ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
  6786  // 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.
  6787  //
  6788  // Asm: VPSHLDVD, CPU Feature: AVX512VBMI2
  6789  func (x Uint32x16) ShiftLeftConcat(y Uint32x16, z Uint32x16) Uint32x16
  6790  
  6791  // ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
  6792  // 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.
  6793  //
  6794  // Asm: VPSHLDVQ, CPU Feature: AVX512VBMI2
  6795  func (x Uint64x2) ShiftLeftConcat(y Uint64x2, z Uint64x2) Uint64x2
  6796  
  6797  // ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
  6798  // 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.
  6799  //
  6800  // Asm: VPSHLDVQ, CPU Feature: AVX512VBMI2
  6801  func (x Uint64x4) ShiftLeftConcat(y Uint64x4, z Uint64x4) Uint64x4
  6802  
  6803  // ShiftLeftConcat shifts each element of x to the left by the number of bits specified by the
  6804  // 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.
  6805  //
  6806  // Asm: VPSHLDVQ, CPU Feature: AVX512VBMI2
  6807  func (x Uint64x8) ShiftLeftConcat(y Uint64x8, z Uint64x8) Uint64x8
  6808  
  6809  /* ShiftRight */
  6810  
  6811  // ShiftRight performs a signed right shift on each element in x by the number of bits specified in y's corresponding elements.
  6812  //
  6813  // Asm: VPSRAVW, CPU Feature: AVX512
  6814  func (x Int16x8) ShiftRight(y Int16x8) Int16x8
  6815  
  6816  // ShiftRight performs a signed right shift on each element in x by the number of bits specified in y's corresponding elements.
  6817  //
  6818  // Asm: VPSRAVW, CPU Feature: AVX512
  6819  func (x Int16x16) ShiftRight(y Int16x16) Int16x16
  6820  
  6821  // ShiftRight performs a signed right shift on each element in x by the number of bits specified in y's corresponding elements.
  6822  //
  6823  // Asm: VPSRAVW, CPU Feature: AVX512
  6824  func (x Int16x32) ShiftRight(y Int16x32) Int16x32
  6825  
  6826  // ShiftRight performs a signed right shift on each element in x by the number of bits specified in y's corresponding elements.
  6827  //
  6828  // Asm: VPSRAVD, CPU Feature: AVX2
  6829  func (x Int32x4) ShiftRight(y Int32x4) Int32x4
  6830  
  6831  // ShiftRight performs a signed right shift on each element in x by the number of bits specified in y's corresponding elements.
  6832  //
  6833  // Asm: VPSRAVD, CPU Feature: AVX2
  6834  func (x Int32x8) ShiftRight(y Int32x8) Int32x8
  6835  
  6836  // ShiftRight performs a signed right shift on each element in x by the number of bits specified in y's corresponding elements.
  6837  //
  6838  // Asm: VPSRAVD, CPU Feature: AVX512
  6839  func (x Int32x16) ShiftRight(y Int32x16) Int32x16
  6840  
  6841  // ShiftRight performs a signed right shift on each element in x by the number of bits specified in y's corresponding elements.
  6842  //
  6843  // Asm: VPSRAVQ, CPU Feature: AVX512
  6844  func (x Int64x2) ShiftRight(y Int64x2) Int64x2
  6845  
  6846  // ShiftRight performs a signed right shift on each element in x by the number of bits specified in y's corresponding elements.
  6847  //
  6848  // Asm: VPSRAVQ, CPU Feature: AVX512
  6849  func (x Int64x4) ShiftRight(y Int64x4) Int64x4
  6850  
  6851  // ShiftRight performs a signed right shift on each element in x by the number of bits specified in y's corresponding elements.
  6852  //
  6853  // Asm: VPSRAVQ, CPU Feature: AVX512
  6854  func (x Int64x8) ShiftRight(y Int64x8) Int64x8
  6855  
  6856  // ShiftRight performs an unsigned right shift on each element in x by the number of bits specified in y's corresponding elements.
  6857  //
  6858  // Asm: VPSRLVW, CPU Feature: AVX512
  6859  func (x Uint16x8) ShiftRight(y Uint16x8) Uint16x8
  6860  
  6861  // ShiftRight performs an unsigned right shift on each element in x by the number of bits specified in y's corresponding elements.
  6862  //
  6863  // Asm: VPSRLVW, CPU Feature: AVX512
  6864  func (x Uint16x16) ShiftRight(y Uint16x16) Uint16x16
  6865  
  6866  // ShiftRight performs an unsigned right shift on each element in x by the number of bits specified in y's corresponding elements.
  6867  //
  6868  // Asm: VPSRLVW, CPU Feature: AVX512
  6869  func (x Uint16x32) ShiftRight(y Uint16x32) Uint16x32
  6870  
  6871  // ShiftRight performs an unsigned right shift on each element in x by the number of bits specified in y's corresponding elements.
  6872  //
  6873  // Asm: VPSRLVD, CPU Feature: AVX2
  6874  func (x Uint32x4) ShiftRight(y Uint32x4) Uint32x4
  6875  
  6876  // ShiftRight performs an unsigned right shift on each element in x by the number of bits specified in y's corresponding elements.
  6877  //
  6878  // Asm: VPSRLVD, CPU Feature: AVX2
  6879  func (x Uint32x8) ShiftRight(y Uint32x8) Uint32x8
  6880  
  6881  // ShiftRight performs an unsigned right shift on each element in x by the number of bits specified in y's corresponding elements.
  6882  //
  6883  // Asm: VPSRLVD, CPU Feature: AVX512
  6884  func (x Uint32x16) ShiftRight(y Uint32x16) Uint32x16
  6885  
  6886  // ShiftRight performs an unsigned right shift on each element in x by the number of bits specified in y's corresponding elements.
  6887  //
  6888  // Asm: VPSRLVQ, CPU Feature: AVX2
  6889  func (x Uint64x2) ShiftRight(y Uint64x2) Uint64x2
  6890  
  6891  // ShiftRight performs an unsigned right shift on each element in x by the number of bits specified in y's corresponding elements.
  6892  //
  6893  // Asm: VPSRLVQ, CPU Feature: AVX2
  6894  func (x Uint64x4) ShiftRight(y Uint64x4) Uint64x4
  6895  
  6896  // ShiftRight performs an unsigned right shift on each element in x by the number of bits specified in y's corresponding elements.
  6897  //
  6898  // Asm: VPSRLVQ, CPU Feature: AVX512
  6899  func (x Uint64x8) ShiftRight(y Uint64x8) Uint64x8
  6900  
  6901  /* ShiftRightConcat */
  6902  
  6903  // ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
  6904  // 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.
  6905  //
  6906  // Asm: VPSHRDVW, CPU Feature: AVX512VBMI2
  6907  func (x Int16x8) ShiftRightConcat(y Int16x8, z Int16x8) Int16x8
  6908  
  6909  // ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
  6910  // 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.
  6911  //
  6912  // Asm: VPSHRDVW, CPU Feature: AVX512VBMI2
  6913  func (x Int16x16) ShiftRightConcat(y Int16x16, z Int16x16) Int16x16
  6914  
  6915  // ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
  6916  // 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.
  6917  //
  6918  // Asm: VPSHRDVW, CPU Feature: AVX512VBMI2
  6919  func (x Int16x32) ShiftRightConcat(y Int16x32, z Int16x32) Int16x32
  6920  
  6921  // ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
  6922  // 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.
  6923  //
  6924  // Asm: VPSHRDVD, CPU Feature: AVX512VBMI2
  6925  func (x Int32x4) ShiftRightConcat(y Int32x4, z Int32x4) Int32x4
  6926  
  6927  // ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
  6928  // 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.
  6929  //
  6930  // Asm: VPSHRDVD, CPU Feature: AVX512VBMI2
  6931  func (x Int32x8) ShiftRightConcat(y Int32x8, z Int32x8) Int32x8
  6932  
  6933  // ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
  6934  // 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.
  6935  //
  6936  // Asm: VPSHRDVD, CPU Feature: AVX512VBMI2
  6937  func (x Int32x16) ShiftRightConcat(y Int32x16, z Int32x16) Int32x16
  6938  
  6939  // ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
  6940  // 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.
  6941  //
  6942  // Asm: VPSHRDVQ, CPU Feature: AVX512VBMI2
  6943  func (x Int64x2) ShiftRightConcat(y Int64x2, z Int64x2) Int64x2
  6944  
  6945  // ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
  6946  // 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.
  6947  //
  6948  // Asm: VPSHRDVQ, CPU Feature: AVX512VBMI2
  6949  func (x Int64x4) ShiftRightConcat(y Int64x4, z Int64x4) Int64x4
  6950  
  6951  // ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
  6952  // 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.
  6953  //
  6954  // Asm: VPSHRDVQ, CPU Feature: AVX512VBMI2
  6955  func (x Int64x8) ShiftRightConcat(y Int64x8, z Int64x8) Int64x8
  6956  
  6957  // ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
  6958  // 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.
  6959  //
  6960  // Asm: VPSHRDVW, CPU Feature: AVX512VBMI2
  6961  func (x Uint16x8) ShiftRightConcat(y Uint16x8, z Uint16x8) Uint16x8
  6962  
  6963  // ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
  6964  // 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.
  6965  //
  6966  // Asm: VPSHRDVW, CPU Feature: AVX512VBMI2
  6967  func (x Uint16x16) ShiftRightConcat(y Uint16x16, z Uint16x16) Uint16x16
  6968  
  6969  // ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
  6970  // 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.
  6971  //
  6972  // Asm: VPSHRDVW, CPU Feature: AVX512VBMI2
  6973  func (x Uint16x32) ShiftRightConcat(y Uint16x32, z Uint16x32) Uint16x32
  6974  
  6975  // ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
  6976  // 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.
  6977  //
  6978  // Asm: VPSHRDVD, CPU Feature: AVX512VBMI2
  6979  func (x Uint32x4) ShiftRightConcat(y Uint32x4, z Uint32x4) Uint32x4
  6980  
  6981  // ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
  6982  // 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.
  6983  //
  6984  // Asm: VPSHRDVD, CPU Feature: AVX512VBMI2
  6985  func (x Uint32x8) ShiftRightConcat(y Uint32x8, z Uint32x8) Uint32x8
  6986  
  6987  // ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
  6988  // 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.
  6989  //
  6990  // Asm: VPSHRDVD, CPU Feature: AVX512VBMI2
  6991  func (x Uint32x16) ShiftRightConcat(y Uint32x16, z Uint32x16) Uint32x16
  6992  
  6993  // ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
  6994  // 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.
  6995  //
  6996  // Asm: VPSHRDVQ, CPU Feature: AVX512VBMI2
  6997  func (x Uint64x2) ShiftRightConcat(y Uint64x2, z Uint64x2) Uint64x2
  6998  
  6999  // ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
  7000  // 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.
  7001  //
  7002  // Asm: VPSHRDVQ, CPU Feature: AVX512VBMI2
  7003  func (x Uint64x4) ShiftRightConcat(y Uint64x4, z Uint64x4) Uint64x4
  7004  
  7005  // ShiftRightConcat shifts each element of x to the right by the number of bits specified by the
  7006  // 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.
  7007  //
  7008  // Asm: VPSHRDVQ, CPU Feature: AVX512VBMI2
  7009  func (x Uint64x8) ShiftRightConcat(y Uint64x8, z Uint64x8) Uint64x8
  7010  
  7011  /* Sqrt */
  7012  
  7013  // Sqrt computes the square root of each element.
  7014  //
  7015  // Asm: VSQRTPS, CPU Feature: AVX
  7016  func (x Float32x4) Sqrt() Float32x4
  7017  
  7018  // Sqrt computes the square root of each element.
  7019  //
  7020  // Asm: VSQRTPS, CPU Feature: AVX
  7021  func (x Float32x8) Sqrt() Float32x8
  7022  
  7023  // Sqrt computes the square root of each element.
  7024  //
  7025  // Asm: VSQRTPS, CPU Feature: AVX512
  7026  func (x Float32x16) Sqrt() Float32x16
  7027  
  7028  // Sqrt computes the square root of each element.
  7029  //
  7030  // Asm: VSQRTPD, CPU Feature: AVX
  7031  func (x Float64x2) Sqrt() Float64x2
  7032  
  7033  // Sqrt computes the square root of each element.
  7034  //
  7035  // Asm: VSQRTPD, CPU Feature: AVX
  7036  func (x Float64x4) Sqrt() Float64x4
  7037  
  7038  // Sqrt computes the square root of each element.
  7039  //
  7040  // Asm: VSQRTPD, CPU Feature: AVX512
  7041  func (x Float64x8) Sqrt() Float64x8
  7042  
  7043  /* Sub */
  7044  
  7045  // Sub subtracts corresponding elements of two vectors.
  7046  //
  7047  // Asm: VSUBPS, CPU Feature: AVX
  7048  func (x Float32x4) Sub(y Float32x4) Float32x4
  7049  
  7050  // Sub subtracts corresponding elements of two vectors.
  7051  //
  7052  // Asm: VSUBPS, CPU Feature: AVX
  7053  func (x Float32x8) Sub(y Float32x8) Float32x8
  7054  
  7055  // Sub subtracts corresponding elements of two vectors.
  7056  //
  7057  // Asm: VSUBPS, CPU Feature: AVX512
  7058  func (x Float32x16) Sub(y Float32x16) Float32x16
  7059  
  7060  // Sub subtracts corresponding elements of two vectors.
  7061  //
  7062  // Asm: VSUBPD, CPU Feature: AVX
  7063  func (x Float64x2) Sub(y Float64x2) Float64x2
  7064  
  7065  // Sub subtracts corresponding elements of two vectors.
  7066  //
  7067  // Asm: VSUBPD, CPU Feature: AVX
  7068  func (x Float64x4) Sub(y Float64x4) Float64x4
  7069  
  7070  // Sub subtracts corresponding elements of two vectors.
  7071  //
  7072  // Asm: VSUBPD, CPU Feature: AVX512
  7073  func (x Float64x8) Sub(y Float64x8) Float64x8
  7074  
  7075  // Sub subtracts corresponding elements of two vectors.
  7076  //
  7077  // Asm: VPSUBB, CPU Feature: AVX
  7078  func (x Int8x16) Sub(y Int8x16) Int8x16
  7079  
  7080  // Sub subtracts corresponding elements of two vectors.
  7081  //
  7082  // Asm: VPSUBB, CPU Feature: AVX2
  7083  func (x Int8x32) Sub(y Int8x32) Int8x32
  7084  
  7085  // Sub subtracts corresponding elements of two vectors.
  7086  //
  7087  // Asm: VPSUBB, CPU Feature: AVX512
  7088  func (x Int8x64) Sub(y Int8x64) Int8x64
  7089  
  7090  // Sub subtracts corresponding elements of two vectors.
  7091  //
  7092  // Asm: VPSUBW, CPU Feature: AVX
  7093  func (x Int16x8) Sub(y Int16x8) Int16x8
  7094  
  7095  // Sub subtracts corresponding elements of two vectors.
  7096  //
  7097  // Asm: VPSUBW, CPU Feature: AVX2
  7098  func (x Int16x16) Sub(y Int16x16) Int16x16
  7099  
  7100  // Sub subtracts corresponding elements of two vectors.
  7101  //
  7102  // Asm: VPSUBW, CPU Feature: AVX512
  7103  func (x Int16x32) Sub(y Int16x32) Int16x32
  7104  
  7105  // Sub subtracts corresponding elements of two vectors.
  7106  //
  7107  // Asm: VPSUBD, CPU Feature: AVX
  7108  func (x Int32x4) Sub(y Int32x4) Int32x4
  7109  
  7110  // Sub subtracts corresponding elements of two vectors.
  7111  //
  7112  // Asm: VPSUBD, CPU Feature: AVX2
  7113  func (x Int32x8) Sub(y Int32x8) Int32x8
  7114  
  7115  // Sub subtracts corresponding elements of two vectors.
  7116  //
  7117  // Asm: VPSUBD, CPU Feature: AVX512
  7118  func (x Int32x16) Sub(y Int32x16) Int32x16
  7119  
  7120  // Sub subtracts corresponding elements of two vectors.
  7121  //
  7122  // Asm: VPSUBQ, CPU Feature: AVX
  7123  func (x Int64x2) Sub(y Int64x2) Int64x2
  7124  
  7125  // Sub subtracts corresponding elements of two vectors.
  7126  //
  7127  // Asm: VPSUBQ, CPU Feature: AVX2
  7128  func (x Int64x4) Sub(y Int64x4) Int64x4
  7129  
  7130  // Sub subtracts corresponding elements of two vectors.
  7131  //
  7132  // Asm: VPSUBQ, CPU Feature: AVX512
  7133  func (x Int64x8) Sub(y Int64x8) Int64x8
  7134  
  7135  // Sub subtracts corresponding elements of two vectors.
  7136  //
  7137  // Asm: VPSUBB, CPU Feature: AVX
  7138  func (x Uint8x16) Sub(y Uint8x16) Uint8x16
  7139  
  7140  // Sub subtracts corresponding elements of two vectors.
  7141  //
  7142  // Asm: VPSUBB, CPU Feature: AVX2
  7143  func (x Uint8x32) Sub(y Uint8x32) Uint8x32
  7144  
  7145  // Sub subtracts corresponding elements of two vectors.
  7146  //
  7147  // Asm: VPSUBB, CPU Feature: AVX512
  7148  func (x Uint8x64) Sub(y Uint8x64) Uint8x64
  7149  
  7150  // Sub subtracts corresponding elements of two vectors.
  7151  //
  7152  // Asm: VPSUBW, CPU Feature: AVX
  7153  func (x Uint16x8) Sub(y Uint16x8) Uint16x8
  7154  
  7155  // Sub subtracts corresponding elements of two vectors.
  7156  //
  7157  // Asm: VPSUBW, CPU Feature: AVX2
  7158  func (x Uint16x16) Sub(y Uint16x16) Uint16x16
  7159  
  7160  // Sub subtracts corresponding elements of two vectors.
  7161  //
  7162  // Asm: VPSUBW, CPU Feature: AVX512
  7163  func (x Uint16x32) Sub(y Uint16x32) Uint16x32
  7164  
  7165  // Sub subtracts corresponding elements of two vectors.
  7166  //
  7167  // Asm: VPSUBD, CPU Feature: AVX
  7168  func (x Uint32x4) Sub(y Uint32x4) Uint32x4
  7169  
  7170  // Sub subtracts corresponding elements of two vectors.
  7171  //
  7172  // Asm: VPSUBD, CPU Feature: AVX2
  7173  func (x Uint32x8) Sub(y Uint32x8) Uint32x8
  7174  
  7175  // Sub subtracts corresponding elements of two vectors.
  7176  //
  7177  // Asm: VPSUBD, CPU Feature: AVX512
  7178  func (x Uint32x16) Sub(y Uint32x16) Uint32x16
  7179  
  7180  // Sub subtracts corresponding elements of two vectors.
  7181  //
  7182  // Asm: VPSUBQ, CPU Feature: AVX
  7183  func (x Uint64x2) Sub(y Uint64x2) Uint64x2
  7184  
  7185  // Sub subtracts corresponding elements of two vectors.
  7186  //
  7187  // Asm: VPSUBQ, CPU Feature: AVX2
  7188  func (x Uint64x4) Sub(y Uint64x4) Uint64x4
  7189  
  7190  // Sub subtracts corresponding elements of two vectors.
  7191  //
  7192  // Asm: VPSUBQ, CPU Feature: AVX512
  7193  func (x Uint64x8) Sub(y Uint64x8) Uint64x8
  7194  
  7195  /* SubPairs */
  7196  
  7197  // SubPairs horizontally subtracts adjacent pairs of elements.
  7198  // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...].
  7199  //
  7200  // Asm: VHSUBPS, CPU Feature: AVX
  7201  func (x Float32x4) SubPairs(y Float32x4) Float32x4
  7202  
  7203  // SubPairs horizontally subtracts adjacent pairs of elements.
  7204  // For x = [x0, x1] and y = [y0, y1], the result is [x0-x1, y0-y1].
  7205  //
  7206  // Asm: VHSUBPD, CPU Feature: AVX
  7207  func (x Float64x2) SubPairs(y Float64x2) Float64x2
  7208  
  7209  // SubPairs horizontally subtracts adjacent pairs of elements.
  7210  // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...].
  7211  //
  7212  // Asm: VPHSUBW, CPU Feature: AVX
  7213  func (x Int16x8) SubPairs(y Int16x8) Int16x8
  7214  
  7215  // SubPairs horizontally subtracts adjacent pairs of elements.
  7216  // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...].
  7217  //
  7218  // Asm: VPHSUBD, CPU Feature: AVX
  7219  func (x Int32x4) SubPairs(y Int32x4) Int32x4
  7220  
  7221  // SubPairs horizontally subtracts adjacent pairs of elements.
  7222  // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...].
  7223  //
  7224  // Asm: VPHSUBW, CPU Feature: AVX
  7225  func (x Uint16x8) SubPairs(y Uint16x8) Uint16x8
  7226  
  7227  // SubPairs horizontally subtracts adjacent pairs of elements.
  7228  // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...].
  7229  //
  7230  // Asm: VPHSUBD, CPU Feature: AVX
  7231  func (x Uint32x4) SubPairs(y Uint32x4) Uint32x4
  7232  
  7233  /* SubPairsGrouped */
  7234  
  7235  // SubPairsGrouped horizontally subtracts adjacent pairs of elements.
  7236  // With each 128-bit as a group:
  7237  // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...].
  7238  //
  7239  // Asm: VHSUBPS, CPU Feature: AVX
  7240  func (x Float32x8) SubPairsGrouped(y Float32x8) Float32x8
  7241  
  7242  // SubPairsGrouped horizontally subtracts adjacent pairs of elements.
  7243  // With each 128-bit as a group:
  7244  // for x = [x0, x1] and y = [y0, y1], the result is [x0-x1, y0-y1].
  7245  //
  7246  // Asm: VHSUBPD, CPU Feature: AVX
  7247  func (x Float64x4) SubPairsGrouped(y Float64x4) Float64x4
  7248  
  7249  // SubPairsGrouped horizontally subtracts adjacent pairs of elements.
  7250  // With each 128-bit as a group:
  7251  // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...].
  7252  //
  7253  // Asm: VPHSUBW, CPU Feature: AVX2
  7254  func (x Int16x16) SubPairsGrouped(y Int16x16) Int16x16
  7255  
  7256  // SubPairsGrouped horizontally subtracts adjacent pairs of elements.
  7257  // With each 128-bit as a group:
  7258  // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...].
  7259  //
  7260  // Asm: VPHSUBD, CPU Feature: AVX2
  7261  func (x Int32x8) SubPairsGrouped(y Int32x8) Int32x8
  7262  
  7263  // SubPairsGrouped horizontally subtracts adjacent pairs of elements.
  7264  // With each 128-bit as a group:
  7265  // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...].
  7266  //
  7267  // Asm: VPHSUBW, CPU Feature: AVX2
  7268  func (x Uint16x16) SubPairsGrouped(y Uint16x16) Uint16x16
  7269  
  7270  // SubPairsGrouped horizontally subtracts adjacent pairs of elements.
  7271  // With each 128-bit as a group:
  7272  // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...].
  7273  //
  7274  // Asm: VPHSUBD, CPU Feature: AVX2
  7275  func (x Uint32x8) SubPairsGrouped(y Uint32x8) Uint32x8
  7276  
  7277  /* SubPairsSaturated */
  7278  
  7279  // SubPairsSaturated horizontally subtracts adjacent pairs of elements with saturation.
  7280  // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...].
  7281  //
  7282  // Asm: VPHSUBSW, CPU Feature: AVX
  7283  func (x Int16x8) SubPairsSaturated(y Int16x8) Int16x8
  7284  
  7285  /* SubPairsSaturatedGrouped */
  7286  
  7287  // SubPairsSaturatedGrouped horizontally subtracts adjacent pairs of elements with saturation.
  7288  // With each 128-bit as a group:
  7289  // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...].
  7290  //
  7291  // Asm: VPHSUBSW, CPU Feature: AVX2
  7292  func (x Int16x16) SubPairsSaturatedGrouped(y Int16x16) Int16x16
  7293  
  7294  /* SubSaturated */
  7295  
  7296  // SubSaturated subtracts corresponding elements of two vectors with saturation.
  7297  //
  7298  // Asm: VPSUBSB, CPU Feature: AVX
  7299  func (x Int8x16) SubSaturated(y Int8x16) Int8x16
  7300  
  7301  // SubSaturated subtracts corresponding elements of two vectors with saturation.
  7302  //
  7303  // Asm: VPSUBSB, CPU Feature: AVX2
  7304  func (x Int8x32) SubSaturated(y Int8x32) Int8x32
  7305  
  7306  // SubSaturated subtracts corresponding elements of two vectors with saturation.
  7307  //
  7308  // Asm: VPSUBSB, CPU Feature: AVX512
  7309  func (x Int8x64) SubSaturated(y Int8x64) Int8x64
  7310  
  7311  // SubSaturated subtracts corresponding elements of two vectors with saturation.
  7312  //
  7313  // Asm: VPSUBSW, CPU Feature: AVX
  7314  func (x Int16x8) SubSaturated(y Int16x8) Int16x8
  7315  
  7316  // SubSaturated subtracts corresponding elements of two vectors with saturation.
  7317  //
  7318  // Asm: VPSUBSW, CPU Feature: AVX2
  7319  func (x Int16x16) SubSaturated(y Int16x16) Int16x16
  7320  
  7321  // SubSaturated subtracts corresponding elements of two vectors with saturation.
  7322  //
  7323  // Asm: VPSUBSW, CPU Feature: AVX512
  7324  func (x Int16x32) SubSaturated(y Int16x32) Int16x32
  7325  
  7326  // SubSaturated subtracts corresponding elements of two vectors with saturation.
  7327  //
  7328  // Asm: VPSUBUSB, CPU Feature: AVX
  7329  func (x Uint8x16) SubSaturated(y Uint8x16) Uint8x16
  7330  
  7331  // SubSaturated subtracts corresponding elements of two vectors with saturation.
  7332  //
  7333  // Asm: VPSUBUSB, CPU Feature: AVX2
  7334  func (x Uint8x32) SubSaturated(y Uint8x32) Uint8x32
  7335  
  7336  // SubSaturated subtracts corresponding elements of two vectors with saturation.
  7337  //
  7338  // Asm: VPSUBUSB, CPU Feature: AVX512
  7339  func (x Uint8x64) SubSaturated(y Uint8x64) Uint8x64
  7340  
  7341  // SubSaturated subtracts corresponding elements of two vectors with saturation.
  7342  //
  7343  // Asm: VPSUBUSW, CPU Feature: AVX
  7344  func (x Uint16x8) SubSaturated(y Uint16x8) Uint16x8
  7345  
  7346  // SubSaturated subtracts corresponding elements of two vectors with saturation.
  7347  //
  7348  // Asm: VPSUBUSW, CPU Feature: AVX2
  7349  func (x Uint16x16) SubSaturated(y Uint16x16) Uint16x16
  7350  
  7351  // SubSaturated subtracts corresponding elements of two vectors with saturation.
  7352  //
  7353  // Asm: VPSUBUSW, CPU Feature: AVX512
  7354  func (x Uint16x32) SubSaturated(y Uint16x32) Uint16x32
  7355  
  7356  /* SumAbsDiff */
  7357  
  7358  // SumAbsDiff sums the absolute distance of the two input vectors, each adjacent 8 bytes as a group. The output sum will
  7359  // be a vector of word-sized elements whose each 4*n-th element contains the sum of the n-th input group. The other elements in the result vector are zeroed.
  7360  // This method could be seen as the norm of the L1 distance of each adjacent 8-byte vector group of the two input vectors.
  7361  //
  7362  // Asm: VPSADBW, CPU Feature: AVX
  7363  func (x Uint8x16) SumAbsDiff(y Uint8x16) Uint16x8
  7364  
  7365  // SumAbsDiff sums the absolute distance of the two input vectors, each adjacent 8 bytes as a group. The output sum will
  7366  // be a vector of word-sized elements whose each 4*n-th element contains the sum of the n-th input group. The other elements in the result vector are zeroed.
  7367  // This method could be seen as the norm of the L1 distance of each adjacent 8-byte vector group of the two input vectors.
  7368  //
  7369  // Asm: VPSADBW, CPU Feature: AVX2
  7370  func (x Uint8x32) SumAbsDiff(y Uint8x32) Uint16x16
  7371  
  7372  // SumAbsDiff sums the absolute distance of the two input vectors, each adjacent 8 bytes as a group. The output sum will
  7373  // be a vector of word-sized elements whose each 4*n-th element contains the sum of the n-th input group. The other elements in the result vector are zeroed.
  7374  // This method could be seen as the norm of the L1 distance of each adjacent 8-byte vector group of the two input vectors.
  7375  //
  7376  // Asm: VPSADBW, CPU Feature: AVX512
  7377  func (x Uint8x64) SumAbsDiff(y Uint8x64) Uint16x32
  7378  
  7379  /* Trunc */
  7380  
  7381  // Trunc truncates elements towards zero.
  7382  //
  7383  // Asm: VROUNDPS, CPU Feature: AVX
  7384  func (x Float32x4) Trunc() Float32x4
  7385  
  7386  // Trunc truncates elements towards zero.
  7387  //
  7388  // Asm: VROUNDPS, CPU Feature: AVX
  7389  func (x Float32x8) Trunc() Float32x8
  7390  
  7391  // Trunc truncates elements towards zero.
  7392  //
  7393  // Asm: VROUNDPD, CPU Feature: AVX
  7394  func (x Float64x2) Trunc() Float64x2
  7395  
  7396  // Trunc truncates elements towards zero.
  7397  //
  7398  // Asm: VROUNDPD, CPU Feature: AVX
  7399  func (x Float64x4) Trunc() Float64x4
  7400  
  7401  /* TruncScaled */
  7402  
  7403  // TruncScaled truncates elements with specified precision.
  7404  //
  7405  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  7406  //
  7407  // Asm: VRNDSCALEPS, CPU Feature: AVX512
  7408  func (x Float32x4) TruncScaled(prec uint8) Float32x4
  7409  
  7410  // TruncScaled truncates elements with specified precision.
  7411  //
  7412  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  7413  //
  7414  // Asm: VRNDSCALEPS, CPU Feature: AVX512
  7415  func (x Float32x8) TruncScaled(prec uint8) Float32x8
  7416  
  7417  // TruncScaled truncates elements with specified precision.
  7418  //
  7419  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  7420  //
  7421  // Asm: VRNDSCALEPS, CPU Feature: AVX512
  7422  func (x Float32x16) TruncScaled(prec uint8) Float32x16
  7423  
  7424  // TruncScaled truncates elements with specified precision.
  7425  //
  7426  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  7427  //
  7428  // Asm: VRNDSCALEPD, CPU Feature: AVX512
  7429  func (x Float64x2) TruncScaled(prec uint8) Float64x2
  7430  
  7431  // TruncScaled truncates elements with specified precision.
  7432  //
  7433  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  7434  //
  7435  // Asm: VRNDSCALEPD, CPU Feature: AVX512
  7436  func (x Float64x4) TruncScaled(prec uint8) Float64x4
  7437  
  7438  // TruncScaled truncates elements with specified precision.
  7439  //
  7440  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  7441  //
  7442  // Asm: VRNDSCALEPD, CPU Feature: AVX512
  7443  func (x Float64x8) TruncScaled(prec uint8) Float64x8
  7444  
  7445  /* TruncScaledResidue */
  7446  
  7447  // TruncScaledResidue computes the difference after truncating with specified precision.
  7448  //
  7449  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  7450  //
  7451  // Asm: VREDUCEPS, CPU Feature: AVX512
  7452  func (x Float32x4) TruncScaledResidue(prec uint8) Float32x4
  7453  
  7454  // TruncScaledResidue computes the difference after truncating with specified precision.
  7455  //
  7456  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  7457  //
  7458  // Asm: VREDUCEPS, CPU Feature: AVX512
  7459  func (x Float32x8) TruncScaledResidue(prec uint8) Float32x8
  7460  
  7461  // TruncScaledResidue computes the difference after truncating with specified precision.
  7462  //
  7463  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  7464  //
  7465  // Asm: VREDUCEPS, CPU Feature: AVX512
  7466  func (x Float32x16) TruncScaledResidue(prec uint8) Float32x16
  7467  
  7468  // TruncScaledResidue computes the difference after truncating with specified precision.
  7469  //
  7470  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  7471  //
  7472  // Asm: VREDUCEPD, CPU Feature: AVX512
  7473  func (x Float64x2) TruncScaledResidue(prec uint8) Float64x2
  7474  
  7475  // TruncScaledResidue computes the difference after truncating with specified precision.
  7476  //
  7477  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  7478  //
  7479  // Asm: VREDUCEPD, CPU Feature: AVX512
  7480  func (x Float64x4) TruncScaledResidue(prec uint8) Float64x4
  7481  
  7482  // TruncScaledResidue computes the difference after truncating with specified precision.
  7483  //
  7484  // prec results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  7485  //
  7486  // Asm: VREDUCEPD, CPU Feature: AVX512
  7487  func (x Float64x8) TruncScaledResidue(prec uint8) Float64x8
  7488  
  7489  /* TruncateToInt8 */
  7490  
  7491  // TruncateToInt8 truncates element values to int8.
  7492  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  7493  //
  7494  // Asm: VPMOVWB, CPU Feature: AVX512
  7495  func (x Int16x8) TruncateToInt8() Int8x16
  7496  
  7497  // TruncateToInt8 truncates element values to int8.
  7498  //
  7499  // Asm: VPMOVWB, CPU Feature: AVX512
  7500  func (x Int16x16) TruncateToInt8() Int8x16
  7501  
  7502  // TruncateToInt8 truncates element values to int8.
  7503  //
  7504  // Asm: VPMOVWB, CPU Feature: AVX512
  7505  func (x Int16x32) TruncateToInt8() Int8x32
  7506  
  7507  // TruncateToInt8 truncates element values to int8.
  7508  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  7509  //
  7510  // Asm: VPMOVDB, CPU Feature: AVX512
  7511  func (x Int32x4) TruncateToInt8() Int8x16
  7512  
  7513  // TruncateToInt8 truncates element values to int8.
  7514  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  7515  //
  7516  // Asm: VPMOVDB, CPU Feature: AVX512
  7517  func (x Int32x8) TruncateToInt8() Int8x16
  7518  
  7519  // TruncateToInt8 truncates element values to int8.
  7520  //
  7521  // Asm: VPMOVDB, CPU Feature: AVX512
  7522  func (x Int32x16) TruncateToInt8() Int8x16
  7523  
  7524  // TruncateToInt8 truncates element values to int8.
  7525  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  7526  //
  7527  // Asm: VPMOVQB, CPU Feature: AVX512
  7528  func (x Int64x2) TruncateToInt8() Int8x16
  7529  
  7530  // TruncateToInt8 truncates element values to int8.
  7531  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  7532  //
  7533  // Asm: VPMOVQB, CPU Feature: AVX512
  7534  func (x Int64x4) TruncateToInt8() Int8x16
  7535  
  7536  // TruncateToInt8 truncates element values to int8.
  7537  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  7538  //
  7539  // Asm: VPMOVQB, CPU Feature: AVX512
  7540  func (x Int64x8) TruncateToInt8() Int8x16
  7541  
  7542  /* TruncateToInt16 */
  7543  
  7544  // TruncateToInt16 truncates element values to int16.
  7545  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  7546  //
  7547  // Asm: VPMOVDW, CPU Feature: AVX512
  7548  func (x Int32x4) TruncateToInt16() Int16x8
  7549  
  7550  // TruncateToInt16 truncates element values to int16.
  7551  //
  7552  // Asm: VPMOVDW, CPU Feature: AVX512
  7553  func (x Int32x8) TruncateToInt16() Int16x8
  7554  
  7555  // TruncateToInt16 truncates element values to int16.
  7556  //
  7557  // Asm: VPMOVDW, CPU Feature: AVX512
  7558  func (x Int32x16) TruncateToInt16() Int16x16
  7559  
  7560  // TruncateToInt16 truncates element values to int16.
  7561  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  7562  //
  7563  // Asm: VPMOVQW, CPU Feature: AVX512
  7564  func (x Int64x2) TruncateToInt16() Int16x8
  7565  
  7566  // TruncateToInt16 truncates element values to int16.
  7567  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  7568  //
  7569  // Asm: VPMOVQW, CPU Feature: AVX512
  7570  func (x Int64x4) TruncateToInt16() Int16x8
  7571  
  7572  // TruncateToInt16 truncates element values to int16.
  7573  //
  7574  // Asm: VPMOVQW, CPU Feature: AVX512
  7575  func (x Int64x8) TruncateToInt16() Int16x8
  7576  
  7577  /* TruncateToInt32 */
  7578  
  7579  // TruncateToInt32 truncates element values to int32.
  7580  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  7581  //
  7582  // Asm: VPMOVQD, CPU Feature: AVX512
  7583  func (x Int64x2) TruncateToInt32() Int32x4
  7584  
  7585  // TruncateToInt32 truncates element values to int32.
  7586  //
  7587  // Asm: VPMOVQD, CPU Feature: AVX512
  7588  func (x Int64x4) TruncateToInt32() Int32x4
  7589  
  7590  // TruncateToInt32 truncates element values to int32.
  7591  //
  7592  // Asm: VPMOVQD, CPU Feature: AVX512
  7593  func (x Int64x8) TruncateToInt32() Int32x8
  7594  
  7595  /* TruncateToUint8 */
  7596  
  7597  // TruncateToUint8 truncates element values to uint8.
  7598  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  7599  //
  7600  // Asm: VPMOVWB, CPU Feature: AVX512
  7601  func (x Uint16x8) TruncateToUint8() Uint8x16
  7602  
  7603  // TruncateToUint8 truncates element values to uint8.
  7604  //
  7605  // Asm: VPMOVWB, CPU Feature: AVX512
  7606  func (x Uint16x16) TruncateToUint8() Uint8x16
  7607  
  7608  // TruncateToUint8 truncates element values to uint8.
  7609  //
  7610  // Asm: VPMOVWB, CPU Feature: AVX512
  7611  func (x Uint16x32) TruncateToUint8() Uint8x32
  7612  
  7613  // TruncateToUint8 truncates element values to uint8.
  7614  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  7615  //
  7616  // Asm: VPMOVDB, CPU Feature: AVX512
  7617  func (x Uint32x4) TruncateToUint8() Uint8x16
  7618  
  7619  // TruncateToUint8 truncates element values to uint8.
  7620  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  7621  //
  7622  // Asm: VPMOVDB, CPU Feature: AVX512
  7623  func (x Uint32x8) TruncateToUint8() Uint8x16
  7624  
  7625  // TruncateToUint8 truncates element values to uint8.
  7626  //
  7627  // Asm: VPMOVDB, CPU Feature: AVX512
  7628  func (x Uint32x16) TruncateToUint8() Uint8x16
  7629  
  7630  // TruncateToUint8 truncates element values to uint8.
  7631  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  7632  //
  7633  // Asm: VPMOVQB, CPU Feature: AVX512
  7634  func (x Uint64x2) TruncateToUint8() Uint8x16
  7635  
  7636  // TruncateToUint8 truncates element values to uint8.
  7637  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  7638  //
  7639  // Asm: VPMOVQB, CPU Feature: AVX512
  7640  func (x Uint64x4) TruncateToUint8() Uint8x16
  7641  
  7642  // TruncateToUint8 truncates element values to uint8.
  7643  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  7644  //
  7645  // Asm: VPMOVQB, CPU Feature: AVX512
  7646  func (x Uint64x8) TruncateToUint8() Uint8x16
  7647  
  7648  /* TruncateToUint16 */
  7649  
  7650  // TruncateToUint16 truncates element values to uint16.
  7651  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  7652  //
  7653  // Asm: VPMOVDW, CPU Feature: AVX512
  7654  func (x Uint32x4) TruncateToUint16() Uint16x8
  7655  
  7656  // TruncateToUint16 truncates element values to uint16.
  7657  //
  7658  // Asm: VPMOVDW, CPU Feature: AVX512
  7659  func (x Uint32x8) TruncateToUint16() Uint16x8
  7660  
  7661  // TruncateToUint16 truncates element values to uint16.
  7662  //
  7663  // Asm: VPMOVDW, CPU Feature: AVX512
  7664  func (x Uint32x16) TruncateToUint16() Uint16x16
  7665  
  7666  // TruncateToUint16 truncates element values to uint16.
  7667  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  7668  //
  7669  // Asm: VPMOVQW, CPU Feature: AVX512
  7670  func (x Uint64x2) TruncateToUint16() Uint16x8
  7671  
  7672  // TruncateToUint16 truncates element values to uint16.
  7673  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  7674  //
  7675  // Asm: VPMOVQW, CPU Feature: AVX512
  7676  func (x Uint64x4) TruncateToUint16() Uint16x8
  7677  
  7678  // TruncateToUint16 truncates element values to uint16.
  7679  //
  7680  // Asm: VPMOVQW, CPU Feature: AVX512
  7681  func (x Uint64x8) TruncateToUint16() Uint16x8
  7682  
  7683  /* TruncateToUint32 */
  7684  
  7685  // TruncateToUint32 truncates element values to uint32.
  7686  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  7687  //
  7688  // Asm: VPMOVQD, CPU Feature: AVX512
  7689  func (x Uint64x2) TruncateToUint32() Uint32x4
  7690  
  7691  // TruncateToUint32 truncates element values to uint32.
  7692  //
  7693  // Asm: VPMOVQD, CPU Feature: AVX512
  7694  func (x Uint64x4) TruncateToUint32() Uint32x4
  7695  
  7696  // TruncateToUint32 truncates element values to uint32.
  7697  //
  7698  // Asm: VPMOVQD, CPU Feature: AVX512
  7699  func (x Uint64x8) TruncateToUint32() Uint32x8
  7700  
  7701  /* Xor */
  7702  
  7703  // Xor performs a bitwise XOR operation between two vectors.
  7704  //
  7705  // Asm: VPXOR, CPU Feature: AVX
  7706  func (x Int8x16) Xor(y Int8x16) Int8x16
  7707  
  7708  // Xor performs a bitwise XOR operation between two vectors.
  7709  //
  7710  // Asm: VPXOR, CPU Feature: AVX2
  7711  func (x Int8x32) Xor(y Int8x32) Int8x32
  7712  
  7713  // Xor performs a bitwise XOR operation between two vectors.
  7714  //
  7715  // Asm: VPXORD, CPU Feature: AVX512
  7716  func (x Int8x64) Xor(y Int8x64) Int8x64
  7717  
  7718  // Xor performs a bitwise XOR operation between two vectors.
  7719  //
  7720  // Asm: VPXOR, CPU Feature: AVX
  7721  func (x Int16x8) Xor(y Int16x8) Int16x8
  7722  
  7723  // Xor performs a bitwise XOR operation between two vectors.
  7724  //
  7725  // Asm: VPXOR, CPU Feature: AVX2
  7726  func (x Int16x16) Xor(y Int16x16) Int16x16
  7727  
  7728  // Xor performs a bitwise XOR operation between two vectors.
  7729  //
  7730  // Asm: VPXORD, CPU Feature: AVX512
  7731  func (x Int16x32) Xor(y Int16x32) Int16x32
  7732  
  7733  // Xor performs a bitwise XOR operation between two vectors.
  7734  //
  7735  // Asm: VPXOR, CPU Feature: AVX
  7736  func (x Int32x4) Xor(y Int32x4) Int32x4
  7737  
  7738  // Xor performs a bitwise XOR operation between two vectors.
  7739  //
  7740  // Asm: VPXOR, CPU Feature: AVX2
  7741  func (x Int32x8) Xor(y Int32x8) Int32x8
  7742  
  7743  // Xor performs a bitwise XOR operation between two vectors.
  7744  //
  7745  // Asm: VPXORD, CPU Feature: AVX512
  7746  func (x Int32x16) Xor(y Int32x16) Int32x16
  7747  
  7748  // Xor performs a bitwise XOR operation between two vectors.
  7749  //
  7750  // Asm: VPXOR, CPU Feature: AVX
  7751  func (x Int64x2) Xor(y Int64x2) Int64x2
  7752  
  7753  // Xor performs a bitwise XOR operation between two vectors.
  7754  //
  7755  // Asm: VPXOR, CPU Feature: AVX2
  7756  func (x Int64x4) Xor(y Int64x4) Int64x4
  7757  
  7758  // Xor performs a bitwise XOR operation between two vectors.
  7759  //
  7760  // Asm: VPXORQ, CPU Feature: AVX512
  7761  func (x Int64x8) Xor(y Int64x8) Int64x8
  7762  
  7763  // Xor performs a bitwise XOR operation between two vectors.
  7764  //
  7765  // Asm: VPXOR, CPU Feature: AVX
  7766  func (x Uint8x16) Xor(y Uint8x16) Uint8x16
  7767  
  7768  // Xor performs a bitwise XOR operation between two vectors.
  7769  //
  7770  // Asm: VPXOR, CPU Feature: AVX2
  7771  func (x Uint8x32) Xor(y Uint8x32) Uint8x32
  7772  
  7773  // Xor performs a bitwise XOR operation between two vectors.
  7774  //
  7775  // Asm: VPXORD, CPU Feature: AVX512
  7776  func (x Uint8x64) Xor(y Uint8x64) Uint8x64
  7777  
  7778  // Xor performs a bitwise XOR operation between two vectors.
  7779  //
  7780  // Asm: VPXOR, CPU Feature: AVX
  7781  func (x Uint16x8) Xor(y Uint16x8) Uint16x8
  7782  
  7783  // Xor performs a bitwise XOR operation between two vectors.
  7784  //
  7785  // Asm: VPXOR, CPU Feature: AVX2
  7786  func (x Uint16x16) Xor(y Uint16x16) Uint16x16
  7787  
  7788  // Xor performs a bitwise XOR operation between two vectors.
  7789  //
  7790  // Asm: VPXORD, CPU Feature: AVX512
  7791  func (x Uint16x32) Xor(y Uint16x32) Uint16x32
  7792  
  7793  // Xor performs a bitwise XOR operation between two vectors.
  7794  //
  7795  // Asm: VPXOR, CPU Feature: AVX
  7796  func (x Uint32x4) Xor(y Uint32x4) Uint32x4
  7797  
  7798  // Xor performs a bitwise XOR operation between two vectors.
  7799  //
  7800  // Asm: VPXOR, CPU Feature: AVX2
  7801  func (x Uint32x8) Xor(y Uint32x8) Uint32x8
  7802  
  7803  // Xor performs a bitwise XOR operation between two vectors.
  7804  //
  7805  // Asm: VPXORD, CPU Feature: AVX512
  7806  func (x Uint32x16) Xor(y Uint32x16) Uint32x16
  7807  
  7808  // Xor performs a bitwise XOR operation between two vectors.
  7809  //
  7810  // Asm: VPXOR, CPU Feature: AVX
  7811  func (x Uint64x2) Xor(y Uint64x2) Uint64x2
  7812  
  7813  // Xor performs a bitwise XOR operation between two vectors.
  7814  //
  7815  // Asm: VPXOR, CPU Feature: AVX2
  7816  func (x Uint64x4) Xor(y Uint64x4) Uint64x4
  7817  
  7818  // Xor performs a bitwise XOR operation between two vectors.
  7819  //
  7820  // Asm: VPXORQ, CPU Feature: AVX512
  7821  func (x Uint64x8) Xor(y Uint64x8) Uint64x8
  7822  
  7823  // AsFloat64x2 returns a Float64x2 with the same bit representation as x.
  7824  func (x Float32x4) AsFloat64x2() Float64x2
  7825  
  7826  // AsInt8x16 returns an Int8x16 with the same bit representation as x.
  7827  func (x Float32x4) AsInt8x16() Int8x16
  7828  
  7829  // AsInt16x8 returns an Int16x8 with the same bit representation as x.
  7830  func (x Float32x4) AsInt16x8() Int16x8
  7831  
  7832  // AsInt32x4 returns an Int32x4 with the same bit representation as x.
  7833  func (x Float32x4) AsInt32x4() Int32x4
  7834  
  7835  // AsInt64x2 returns an Int64x2 with the same bit representation as x.
  7836  func (x Float32x4) AsInt64x2() Int64x2
  7837  
  7838  // AsUint8x16 returns a Uint8x16 with the same bit representation as x.
  7839  func (x Float32x4) AsUint8x16() Uint8x16
  7840  
  7841  // AsUint16x8 returns a Uint16x8 with the same bit representation as x.
  7842  func (x Float32x4) AsUint16x8() Uint16x8
  7843  
  7844  // AsUint32x4 returns a Uint32x4 with the same bit representation as x.
  7845  func (x Float32x4) AsUint32x4() Uint32x4
  7846  
  7847  // AsUint64x2 returns a Uint64x2 with the same bit representation as x.
  7848  func (x Float32x4) AsUint64x2() Uint64x2
  7849  
  7850  // AsFloat64x4 returns a Float64x4 with the same bit representation as x.
  7851  func (x Float32x8) AsFloat64x4() Float64x4
  7852  
  7853  // AsInt8x32 returns an Int8x32 with the same bit representation as x.
  7854  func (x Float32x8) AsInt8x32() Int8x32
  7855  
  7856  // AsInt16x16 returns an Int16x16 with the same bit representation as x.
  7857  func (x Float32x8) AsInt16x16() Int16x16
  7858  
  7859  // AsInt32x8 returns an Int32x8 with the same bit representation as x.
  7860  func (x Float32x8) AsInt32x8() Int32x8
  7861  
  7862  // AsInt64x4 returns an Int64x4 with the same bit representation as x.
  7863  func (x Float32x8) AsInt64x4() Int64x4
  7864  
  7865  // AsUint8x32 returns a Uint8x32 with the same bit representation as x.
  7866  func (x Float32x8) AsUint8x32() Uint8x32
  7867  
  7868  // AsUint16x16 returns a Uint16x16 with the same bit representation as x.
  7869  func (x Float32x8) AsUint16x16() Uint16x16
  7870  
  7871  // AsUint32x8 returns a Uint32x8 with the same bit representation as x.
  7872  func (x Float32x8) AsUint32x8() Uint32x8
  7873  
  7874  // AsUint64x4 returns a Uint64x4 with the same bit representation as x.
  7875  func (x Float32x8) AsUint64x4() Uint64x4
  7876  
  7877  // AsFloat64x8 returns a Float64x8 with the same bit representation as x.
  7878  func (x Float32x16) AsFloat64x8() Float64x8
  7879  
  7880  // AsInt8x64 returns an Int8x64 with the same bit representation as x.
  7881  func (x Float32x16) AsInt8x64() Int8x64
  7882  
  7883  // AsInt16x32 returns an Int16x32 with the same bit representation as x.
  7884  func (x Float32x16) AsInt16x32() Int16x32
  7885  
  7886  // AsInt32x16 returns an Int32x16 with the same bit representation as x.
  7887  func (x Float32x16) AsInt32x16() Int32x16
  7888  
  7889  // AsInt64x8 returns an Int64x8 with the same bit representation as x.
  7890  func (x Float32x16) AsInt64x8() Int64x8
  7891  
  7892  // AsUint8x64 returns a Uint8x64 with the same bit representation as x.
  7893  func (x Float32x16) AsUint8x64() Uint8x64
  7894  
  7895  // AsUint16x32 returns a Uint16x32 with the same bit representation as x.
  7896  func (x Float32x16) AsUint16x32() Uint16x32
  7897  
  7898  // AsUint32x16 returns a Uint32x16 with the same bit representation as x.
  7899  func (x Float32x16) AsUint32x16() Uint32x16
  7900  
  7901  // AsUint64x8 returns a Uint64x8 with the same bit representation as x.
  7902  func (x Float32x16) AsUint64x8() Uint64x8
  7903  
  7904  // AsFloat32x4 returns a Float32x4 with the same bit representation as x.
  7905  func (x Float64x2) AsFloat32x4() Float32x4
  7906  
  7907  // AsInt8x16 returns an Int8x16 with the same bit representation as x.
  7908  func (x Float64x2) AsInt8x16() Int8x16
  7909  
  7910  // AsInt16x8 returns an Int16x8 with the same bit representation as x.
  7911  func (x Float64x2) AsInt16x8() Int16x8
  7912  
  7913  // AsInt32x4 returns an Int32x4 with the same bit representation as x.
  7914  func (x Float64x2) AsInt32x4() Int32x4
  7915  
  7916  // AsInt64x2 returns an Int64x2 with the same bit representation as x.
  7917  func (x Float64x2) AsInt64x2() Int64x2
  7918  
  7919  // AsUint8x16 returns a Uint8x16 with the same bit representation as x.
  7920  func (x Float64x2) AsUint8x16() Uint8x16
  7921  
  7922  // AsUint16x8 returns a Uint16x8 with the same bit representation as x.
  7923  func (x Float64x2) AsUint16x8() Uint16x8
  7924  
  7925  // AsUint32x4 returns a Uint32x4 with the same bit representation as x.
  7926  func (x Float64x2) AsUint32x4() Uint32x4
  7927  
  7928  // AsUint64x2 returns a Uint64x2 with the same bit representation as x.
  7929  func (x Float64x2) AsUint64x2() Uint64x2
  7930  
  7931  // AsFloat32x8 returns a Float32x8 with the same bit representation as x.
  7932  func (x Float64x4) AsFloat32x8() Float32x8
  7933  
  7934  // AsInt8x32 returns an Int8x32 with the same bit representation as x.
  7935  func (x Float64x4) AsInt8x32() Int8x32
  7936  
  7937  // AsInt16x16 returns an Int16x16 with the same bit representation as x.
  7938  func (x Float64x4) AsInt16x16() Int16x16
  7939  
  7940  // AsInt32x8 returns an Int32x8 with the same bit representation as x.
  7941  func (x Float64x4) AsInt32x8() Int32x8
  7942  
  7943  // AsInt64x4 returns an Int64x4 with the same bit representation as x.
  7944  func (x Float64x4) AsInt64x4() Int64x4
  7945  
  7946  // AsUint8x32 returns a Uint8x32 with the same bit representation as x.
  7947  func (x Float64x4) AsUint8x32() Uint8x32
  7948  
  7949  // AsUint16x16 returns a Uint16x16 with the same bit representation as x.
  7950  func (x Float64x4) AsUint16x16() Uint16x16
  7951  
  7952  // AsUint32x8 returns a Uint32x8 with the same bit representation as x.
  7953  func (x Float64x4) AsUint32x8() Uint32x8
  7954  
  7955  // AsUint64x4 returns a Uint64x4 with the same bit representation as x.
  7956  func (x Float64x4) AsUint64x4() Uint64x4
  7957  
  7958  // AsFloat32x16 returns a Float32x16 with the same bit representation as x.
  7959  func (x Float64x8) AsFloat32x16() Float32x16
  7960  
  7961  // AsInt8x64 returns an Int8x64 with the same bit representation as x.
  7962  func (x Float64x8) AsInt8x64() Int8x64
  7963  
  7964  // AsInt16x32 returns an Int16x32 with the same bit representation as x.
  7965  func (x Float64x8) AsInt16x32() Int16x32
  7966  
  7967  // AsInt32x16 returns an Int32x16 with the same bit representation as x.
  7968  func (x Float64x8) AsInt32x16() Int32x16
  7969  
  7970  // AsInt64x8 returns an Int64x8 with the same bit representation as x.
  7971  func (x Float64x8) AsInt64x8() Int64x8
  7972  
  7973  // AsUint8x64 returns a Uint8x64 with the same bit representation as x.
  7974  func (x Float64x8) AsUint8x64() Uint8x64
  7975  
  7976  // AsUint16x32 returns a Uint16x32 with the same bit representation as x.
  7977  func (x Float64x8) AsUint16x32() Uint16x32
  7978  
  7979  // AsUint32x16 returns a Uint32x16 with the same bit representation as x.
  7980  func (x Float64x8) AsUint32x16() Uint32x16
  7981  
  7982  // AsUint64x8 returns a Uint64x8 with the same bit representation as x.
  7983  func (x Float64x8) AsUint64x8() Uint64x8
  7984  
  7985  // AsFloat32x4 returns a Float32x4 with the same bit representation as x.
  7986  func (x Int8x16) AsFloat32x4() Float32x4
  7987  
  7988  // AsFloat64x2 returns a Float64x2 with the same bit representation as x.
  7989  func (x Int8x16) AsFloat64x2() Float64x2
  7990  
  7991  // AsInt16x8 returns an Int16x8 with the same bit representation as x.
  7992  func (x Int8x16) AsInt16x8() Int16x8
  7993  
  7994  // AsInt32x4 returns an Int32x4 with the same bit representation as x.
  7995  func (x Int8x16) AsInt32x4() Int32x4
  7996  
  7997  // AsInt64x2 returns an Int64x2 with the same bit representation as x.
  7998  func (x Int8x16) AsInt64x2() Int64x2
  7999  
  8000  // AsUint8x16 returns a Uint8x16 with the same bit representation as x.
  8001  func (x Int8x16) AsUint8x16() Uint8x16
  8002  
  8003  // AsUint16x8 returns a Uint16x8 with the same bit representation as x.
  8004  func (x Int8x16) AsUint16x8() Uint16x8
  8005  
  8006  // AsUint32x4 returns a Uint32x4 with the same bit representation as x.
  8007  func (x Int8x16) AsUint32x4() Uint32x4
  8008  
  8009  // AsUint64x2 returns a Uint64x2 with the same bit representation as x.
  8010  func (x Int8x16) AsUint64x2() Uint64x2
  8011  
  8012  // AsFloat32x8 returns a Float32x8 with the same bit representation as x.
  8013  func (x Int8x32) AsFloat32x8() Float32x8
  8014  
  8015  // AsFloat64x4 returns a Float64x4 with the same bit representation as x.
  8016  func (x Int8x32) AsFloat64x4() Float64x4
  8017  
  8018  // AsInt16x16 returns an Int16x16 with the same bit representation as x.
  8019  func (x Int8x32) AsInt16x16() Int16x16
  8020  
  8021  // AsInt32x8 returns an Int32x8 with the same bit representation as x.
  8022  func (x Int8x32) AsInt32x8() Int32x8
  8023  
  8024  // AsInt64x4 returns an Int64x4 with the same bit representation as x.
  8025  func (x Int8x32) AsInt64x4() Int64x4
  8026  
  8027  // AsUint8x32 returns a Uint8x32 with the same bit representation as x.
  8028  func (x Int8x32) AsUint8x32() Uint8x32
  8029  
  8030  // AsUint16x16 returns a Uint16x16 with the same bit representation as x.
  8031  func (x Int8x32) AsUint16x16() Uint16x16
  8032  
  8033  // AsUint32x8 returns a Uint32x8 with the same bit representation as x.
  8034  func (x Int8x32) AsUint32x8() Uint32x8
  8035  
  8036  // AsUint64x4 returns a Uint64x4 with the same bit representation as x.
  8037  func (x Int8x32) AsUint64x4() Uint64x4
  8038  
  8039  // AsFloat32x16 returns a Float32x16 with the same bit representation as x.
  8040  func (x Int8x64) AsFloat32x16() Float32x16
  8041  
  8042  // AsFloat64x8 returns a Float64x8 with the same bit representation as x.
  8043  func (x Int8x64) AsFloat64x8() Float64x8
  8044  
  8045  // AsInt16x32 returns an Int16x32 with the same bit representation as x.
  8046  func (x Int8x64) AsInt16x32() Int16x32
  8047  
  8048  // AsInt32x16 returns an Int32x16 with the same bit representation as x.
  8049  func (x Int8x64) AsInt32x16() Int32x16
  8050  
  8051  // AsInt64x8 returns an Int64x8 with the same bit representation as x.
  8052  func (x Int8x64) AsInt64x8() Int64x8
  8053  
  8054  // AsUint8x64 returns a Uint8x64 with the same bit representation as x.
  8055  func (x Int8x64) AsUint8x64() Uint8x64
  8056  
  8057  // AsUint16x32 returns a Uint16x32 with the same bit representation as x.
  8058  func (x Int8x64) AsUint16x32() Uint16x32
  8059  
  8060  // AsUint32x16 returns a Uint32x16 with the same bit representation as x.
  8061  func (x Int8x64) AsUint32x16() Uint32x16
  8062  
  8063  // AsUint64x8 returns a Uint64x8 with the same bit representation as x.
  8064  func (x Int8x64) AsUint64x8() Uint64x8
  8065  
  8066  // AsFloat32x4 returns a Float32x4 with the same bit representation as x.
  8067  func (x Int16x8) AsFloat32x4() Float32x4
  8068  
  8069  // AsFloat64x2 returns a Float64x2 with the same bit representation as x.
  8070  func (x Int16x8) AsFloat64x2() Float64x2
  8071  
  8072  // AsInt8x16 returns an Int8x16 with the same bit representation as x.
  8073  func (x Int16x8) AsInt8x16() Int8x16
  8074  
  8075  // AsInt32x4 returns an Int32x4 with the same bit representation as x.
  8076  func (x Int16x8) AsInt32x4() Int32x4
  8077  
  8078  // AsInt64x2 returns an Int64x2 with the same bit representation as x.
  8079  func (x Int16x8) AsInt64x2() Int64x2
  8080  
  8081  // AsUint8x16 returns a Uint8x16 with the same bit representation as x.
  8082  func (x Int16x8) AsUint8x16() Uint8x16
  8083  
  8084  // AsUint16x8 returns a Uint16x8 with the same bit representation as x.
  8085  func (x Int16x8) AsUint16x8() Uint16x8
  8086  
  8087  // AsUint32x4 returns a Uint32x4 with the same bit representation as x.
  8088  func (x Int16x8) AsUint32x4() Uint32x4
  8089  
  8090  // AsUint64x2 returns a Uint64x2 with the same bit representation as x.
  8091  func (x Int16x8) AsUint64x2() Uint64x2
  8092  
  8093  // AsFloat32x8 returns a Float32x8 with the same bit representation as x.
  8094  func (x Int16x16) AsFloat32x8() Float32x8
  8095  
  8096  // AsFloat64x4 returns a Float64x4 with the same bit representation as x.
  8097  func (x Int16x16) AsFloat64x4() Float64x4
  8098  
  8099  // AsInt8x32 returns an Int8x32 with the same bit representation as x.
  8100  func (x Int16x16) AsInt8x32() Int8x32
  8101  
  8102  // AsInt32x8 returns an Int32x8 with the same bit representation as x.
  8103  func (x Int16x16) AsInt32x8() Int32x8
  8104  
  8105  // AsInt64x4 returns an Int64x4 with the same bit representation as x.
  8106  func (x Int16x16) AsInt64x4() Int64x4
  8107  
  8108  // AsUint8x32 returns a Uint8x32 with the same bit representation as x.
  8109  func (x Int16x16) AsUint8x32() Uint8x32
  8110  
  8111  // AsUint16x16 returns a Uint16x16 with the same bit representation as x.
  8112  func (x Int16x16) AsUint16x16() Uint16x16
  8113  
  8114  // AsUint32x8 returns a Uint32x8 with the same bit representation as x.
  8115  func (x Int16x16) AsUint32x8() Uint32x8
  8116  
  8117  // AsUint64x4 returns a Uint64x4 with the same bit representation as x.
  8118  func (x Int16x16) AsUint64x4() Uint64x4
  8119  
  8120  // AsFloat32x16 returns a Float32x16 with the same bit representation as x.
  8121  func (x Int16x32) AsFloat32x16() Float32x16
  8122  
  8123  // AsFloat64x8 returns a Float64x8 with the same bit representation as x.
  8124  func (x Int16x32) AsFloat64x8() Float64x8
  8125  
  8126  // AsInt8x64 returns an Int8x64 with the same bit representation as x.
  8127  func (x Int16x32) AsInt8x64() Int8x64
  8128  
  8129  // AsInt32x16 returns an Int32x16 with the same bit representation as x.
  8130  func (x Int16x32) AsInt32x16() Int32x16
  8131  
  8132  // AsInt64x8 returns an Int64x8 with the same bit representation as x.
  8133  func (x Int16x32) AsInt64x8() Int64x8
  8134  
  8135  // AsUint8x64 returns a Uint8x64 with the same bit representation as x.
  8136  func (x Int16x32) AsUint8x64() Uint8x64
  8137  
  8138  // AsUint16x32 returns a Uint16x32 with the same bit representation as x.
  8139  func (x Int16x32) AsUint16x32() Uint16x32
  8140  
  8141  // AsUint32x16 returns a Uint32x16 with the same bit representation as x.
  8142  func (x Int16x32) AsUint32x16() Uint32x16
  8143  
  8144  // AsUint64x8 returns a Uint64x8 with the same bit representation as x.
  8145  func (x Int16x32) AsUint64x8() Uint64x8
  8146  
  8147  // AsFloat32x4 returns a Float32x4 with the same bit representation as x.
  8148  func (x Int32x4) AsFloat32x4() Float32x4
  8149  
  8150  // AsFloat64x2 returns a Float64x2 with the same bit representation as x.
  8151  func (x Int32x4) AsFloat64x2() Float64x2
  8152  
  8153  // AsInt8x16 returns an Int8x16 with the same bit representation as x.
  8154  func (x Int32x4) AsInt8x16() Int8x16
  8155  
  8156  // AsInt16x8 returns an Int16x8 with the same bit representation as x.
  8157  func (x Int32x4) AsInt16x8() Int16x8
  8158  
  8159  // AsInt64x2 returns an Int64x2 with the same bit representation as x.
  8160  func (x Int32x4) AsInt64x2() Int64x2
  8161  
  8162  // AsUint8x16 returns a Uint8x16 with the same bit representation as x.
  8163  func (x Int32x4) AsUint8x16() Uint8x16
  8164  
  8165  // AsUint16x8 returns a Uint16x8 with the same bit representation as x.
  8166  func (x Int32x4) AsUint16x8() Uint16x8
  8167  
  8168  // AsUint32x4 returns a Uint32x4 with the same bit representation as x.
  8169  func (x Int32x4) AsUint32x4() Uint32x4
  8170  
  8171  // AsUint64x2 returns a Uint64x2 with the same bit representation as x.
  8172  func (x Int32x4) AsUint64x2() Uint64x2
  8173  
  8174  // AsFloat32x8 returns a Float32x8 with the same bit representation as x.
  8175  func (x Int32x8) AsFloat32x8() Float32x8
  8176  
  8177  // AsFloat64x4 returns a Float64x4 with the same bit representation as x.
  8178  func (x Int32x8) AsFloat64x4() Float64x4
  8179  
  8180  // AsInt8x32 returns an Int8x32 with the same bit representation as x.
  8181  func (x Int32x8) AsInt8x32() Int8x32
  8182  
  8183  // AsInt16x16 returns an Int16x16 with the same bit representation as x.
  8184  func (x Int32x8) AsInt16x16() Int16x16
  8185  
  8186  // AsInt64x4 returns an Int64x4 with the same bit representation as x.
  8187  func (x Int32x8) AsInt64x4() Int64x4
  8188  
  8189  // AsUint8x32 returns a Uint8x32 with the same bit representation as x.
  8190  func (x Int32x8) AsUint8x32() Uint8x32
  8191  
  8192  // AsUint16x16 returns a Uint16x16 with the same bit representation as x.
  8193  func (x Int32x8) AsUint16x16() Uint16x16
  8194  
  8195  // AsUint32x8 returns a Uint32x8 with the same bit representation as x.
  8196  func (x Int32x8) AsUint32x8() Uint32x8
  8197  
  8198  // AsUint64x4 returns a Uint64x4 with the same bit representation as x.
  8199  func (x Int32x8) AsUint64x4() Uint64x4
  8200  
  8201  // AsFloat32x16 returns a Float32x16 with the same bit representation as x.
  8202  func (x Int32x16) AsFloat32x16() Float32x16
  8203  
  8204  // AsFloat64x8 returns a Float64x8 with the same bit representation as x.
  8205  func (x Int32x16) AsFloat64x8() Float64x8
  8206  
  8207  // AsInt8x64 returns an Int8x64 with the same bit representation as x.
  8208  func (x Int32x16) AsInt8x64() Int8x64
  8209  
  8210  // AsInt16x32 returns an Int16x32 with the same bit representation as x.
  8211  func (x Int32x16) AsInt16x32() Int16x32
  8212  
  8213  // AsInt64x8 returns an Int64x8 with the same bit representation as x.
  8214  func (x Int32x16) AsInt64x8() Int64x8
  8215  
  8216  // AsUint8x64 returns a Uint8x64 with the same bit representation as x.
  8217  func (x Int32x16) AsUint8x64() Uint8x64
  8218  
  8219  // AsUint16x32 returns a Uint16x32 with the same bit representation as x.
  8220  func (x Int32x16) AsUint16x32() Uint16x32
  8221  
  8222  // AsUint32x16 returns a Uint32x16 with the same bit representation as x.
  8223  func (x Int32x16) AsUint32x16() Uint32x16
  8224  
  8225  // AsUint64x8 returns a Uint64x8 with the same bit representation as x.
  8226  func (x Int32x16) AsUint64x8() Uint64x8
  8227  
  8228  // AsFloat32x4 returns a Float32x4 with the same bit representation as x.
  8229  func (x Int64x2) AsFloat32x4() Float32x4
  8230  
  8231  // AsFloat64x2 returns a Float64x2 with the same bit representation as x.
  8232  func (x Int64x2) AsFloat64x2() Float64x2
  8233  
  8234  // AsInt8x16 returns an Int8x16 with the same bit representation as x.
  8235  func (x Int64x2) AsInt8x16() Int8x16
  8236  
  8237  // AsInt16x8 returns an Int16x8 with the same bit representation as x.
  8238  func (x Int64x2) AsInt16x8() Int16x8
  8239  
  8240  // AsInt32x4 returns an Int32x4 with the same bit representation as x.
  8241  func (x Int64x2) AsInt32x4() Int32x4
  8242  
  8243  // AsUint8x16 returns a Uint8x16 with the same bit representation as x.
  8244  func (x Int64x2) AsUint8x16() Uint8x16
  8245  
  8246  // AsUint16x8 returns a Uint16x8 with the same bit representation as x.
  8247  func (x Int64x2) AsUint16x8() Uint16x8
  8248  
  8249  // AsUint32x4 returns a Uint32x4 with the same bit representation as x.
  8250  func (x Int64x2) AsUint32x4() Uint32x4
  8251  
  8252  // AsUint64x2 returns a Uint64x2 with the same bit representation as x.
  8253  func (x Int64x2) AsUint64x2() Uint64x2
  8254  
  8255  // AsFloat32x8 returns a Float32x8 with the same bit representation as x.
  8256  func (x Int64x4) AsFloat32x8() Float32x8
  8257  
  8258  // AsFloat64x4 returns a Float64x4 with the same bit representation as x.
  8259  func (x Int64x4) AsFloat64x4() Float64x4
  8260  
  8261  // AsInt8x32 returns an Int8x32 with the same bit representation as x.
  8262  func (x Int64x4) AsInt8x32() Int8x32
  8263  
  8264  // AsInt16x16 returns an Int16x16 with the same bit representation as x.
  8265  func (x Int64x4) AsInt16x16() Int16x16
  8266  
  8267  // AsInt32x8 returns an Int32x8 with the same bit representation as x.
  8268  func (x Int64x4) AsInt32x8() Int32x8
  8269  
  8270  // AsUint8x32 returns a Uint8x32 with the same bit representation as x.
  8271  func (x Int64x4) AsUint8x32() Uint8x32
  8272  
  8273  // AsUint16x16 returns a Uint16x16 with the same bit representation as x.
  8274  func (x Int64x4) AsUint16x16() Uint16x16
  8275  
  8276  // AsUint32x8 returns a Uint32x8 with the same bit representation as x.
  8277  func (x Int64x4) AsUint32x8() Uint32x8
  8278  
  8279  // AsUint64x4 returns a Uint64x4 with the same bit representation as x.
  8280  func (x Int64x4) AsUint64x4() Uint64x4
  8281  
  8282  // AsFloat32x16 returns a Float32x16 with the same bit representation as x.
  8283  func (x Int64x8) AsFloat32x16() Float32x16
  8284  
  8285  // AsFloat64x8 returns a Float64x8 with the same bit representation as x.
  8286  func (x Int64x8) AsFloat64x8() Float64x8
  8287  
  8288  // AsInt8x64 returns an Int8x64 with the same bit representation as x.
  8289  func (x Int64x8) AsInt8x64() Int8x64
  8290  
  8291  // AsInt16x32 returns an Int16x32 with the same bit representation as x.
  8292  func (x Int64x8) AsInt16x32() Int16x32
  8293  
  8294  // AsInt32x16 returns an Int32x16 with the same bit representation as x.
  8295  func (x Int64x8) AsInt32x16() Int32x16
  8296  
  8297  // AsUint8x64 returns a Uint8x64 with the same bit representation as x.
  8298  func (x Int64x8) AsUint8x64() Uint8x64
  8299  
  8300  // AsUint16x32 returns a Uint16x32 with the same bit representation as x.
  8301  func (x Int64x8) AsUint16x32() Uint16x32
  8302  
  8303  // AsUint32x16 returns a Uint32x16 with the same bit representation as x.
  8304  func (x Int64x8) AsUint32x16() Uint32x16
  8305  
  8306  // AsUint64x8 returns a Uint64x8 with the same bit representation as x.
  8307  func (x Int64x8) AsUint64x8() Uint64x8
  8308  
  8309  // AsFloat32x4 returns a Float32x4 with the same bit representation as x.
  8310  func (x Uint8x16) AsFloat32x4() Float32x4
  8311  
  8312  // AsFloat64x2 returns a Float64x2 with the same bit representation as x.
  8313  func (x Uint8x16) AsFloat64x2() Float64x2
  8314  
  8315  // AsInt8x16 returns an Int8x16 with the same bit representation as x.
  8316  func (x Uint8x16) AsInt8x16() Int8x16
  8317  
  8318  // AsInt16x8 returns an Int16x8 with the same bit representation as x.
  8319  func (x Uint8x16) AsInt16x8() Int16x8
  8320  
  8321  // AsInt32x4 returns an Int32x4 with the same bit representation as x.
  8322  func (x Uint8x16) AsInt32x4() Int32x4
  8323  
  8324  // AsInt64x2 returns an Int64x2 with the same bit representation as x.
  8325  func (x Uint8x16) AsInt64x2() Int64x2
  8326  
  8327  // AsUint16x8 returns a Uint16x8 with the same bit representation as x.
  8328  func (x Uint8x16) AsUint16x8() Uint16x8
  8329  
  8330  // AsUint32x4 returns a Uint32x4 with the same bit representation as x.
  8331  func (x Uint8x16) AsUint32x4() Uint32x4
  8332  
  8333  // AsUint64x2 returns a Uint64x2 with the same bit representation as x.
  8334  func (x Uint8x16) AsUint64x2() Uint64x2
  8335  
  8336  // AsFloat32x8 returns a Float32x8 with the same bit representation as x.
  8337  func (x Uint8x32) AsFloat32x8() Float32x8
  8338  
  8339  // AsFloat64x4 returns a Float64x4 with the same bit representation as x.
  8340  func (x Uint8x32) AsFloat64x4() Float64x4
  8341  
  8342  // AsInt8x32 returns an Int8x32 with the same bit representation as x.
  8343  func (x Uint8x32) AsInt8x32() Int8x32
  8344  
  8345  // AsInt16x16 returns an Int16x16 with the same bit representation as x.
  8346  func (x Uint8x32) AsInt16x16() Int16x16
  8347  
  8348  // AsInt32x8 returns an Int32x8 with the same bit representation as x.
  8349  func (x Uint8x32) AsInt32x8() Int32x8
  8350  
  8351  // AsInt64x4 returns an Int64x4 with the same bit representation as x.
  8352  func (x Uint8x32) AsInt64x4() Int64x4
  8353  
  8354  // AsUint16x16 returns a Uint16x16 with the same bit representation as x.
  8355  func (x Uint8x32) AsUint16x16() Uint16x16
  8356  
  8357  // AsUint32x8 returns a Uint32x8 with the same bit representation as x.
  8358  func (x Uint8x32) AsUint32x8() Uint32x8
  8359  
  8360  // AsUint64x4 returns a Uint64x4 with the same bit representation as x.
  8361  func (x Uint8x32) AsUint64x4() Uint64x4
  8362  
  8363  // AsFloat32x16 returns a Float32x16 with the same bit representation as x.
  8364  func (x Uint8x64) AsFloat32x16() Float32x16
  8365  
  8366  // AsFloat64x8 returns a Float64x8 with the same bit representation as x.
  8367  func (x Uint8x64) AsFloat64x8() Float64x8
  8368  
  8369  // AsInt8x64 returns an Int8x64 with the same bit representation as x.
  8370  func (x Uint8x64) AsInt8x64() Int8x64
  8371  
  8372  // AsInt16x32 returns an Int16x32 with the same bit representation as x.
  8373  func (x Uint8x64) AsInt16x32() Int16x32
  8374  
  8375  // AsInt32x16 returns an Int32x16 with the same bit representation as x.
  8376  func (x Uint8x64) AsInt32x16() Int32x16
  8377  
  8378  // AsInt64x8 returns an Int64x8 with the same bit representation as x.
  8379  func (x Uint8x64) AsInt64x8() Int64x8
  8380  
  8381  // AsUint16x32 returns a Uint16x32 with the same bit representation as x.
  8382  func (x Uint8x64) AsUint16x32() Uint16x32
  8383  
  8384  // AsUint32x16 returns a Uint32x16 with the same bit representation as x.
  8385  func (x Uint8x64) AsUint32x16() Uint32x16
  8386  
  8387  // AsUint64x8 returns a Uint64x8 with the same bit representation as x.
  8388  func (x Uint8x64) AsUint64x8() Uint64x8
  8389  
  8390  // AsFloat32x4 returns a Float32x4 with the same bit representation as x.
  8391  func (x Uint16x8) AsFloat32x4() Float32x4
  8392  
  8393  // AsFloat64x2 returns a Float64x2 with the same bit representation as x.
  8394  func (x Uint16x8) AsFloat64x2() Float64x2
  8395  
  8396  // AsInt8x16 returns an Int8x16 with the same bit representation as x.
  8397  func (x Uint16x8) AsInt8x16() Int8x16
  8398  
  8399  // AsInt16x8 returns an Int16x8 with the same bit representation as x.
  8400  func (x Uint16x8) AsInt16x8() Int16x8
  8401  
  8402  // AsInt32x4 returns an Int32x4 with the same bit representation as x.
  8403  func (x Uint16x8) AsInt32x4() Int32x4
  8404  
  8405  // AsInt64x2 returns an Int64x2 with the same bit representation as x.
  8406  func (x Uint16x8) AsInt64x2() Int64x2
  8407  
  8408  // AsUint8x16 returns a Uint8x16 with the same bit representation as x.
  8409  func (x Uint16x8) AsUint8x16() Uint8x16
  8410  
  8411  // AsUint32x4 returns a Uint32x4 with the same bit representation as x.
  8412  func (x Uint16x8) AsUint32x4() Uint32x4
  8413  
  8414  // AsUint64x2 returns a Uint64x2 with the same bit representation as x.
  8415  func (x Uint16x8) AsUint64x2() Uint64x2
  8416  
  8417  // AsFloat32x8 returns a Float32x8 with the same bit representation as x.
  8418  func (x Uint16x16) AsFloat32x8() Float32x8
  8419  
  8420  // AsFloat64x4 returns a Float64x4 with the same bit representation as x.
  8421  func (x Uint16x16) AsFloat64x4() Float64x4
  8422  
  8423  // AsInt8x32 returns an Int8x32 with the same bit representation as x.
  8424  func (x Uint16x16) AsInt8x32() Int8x32
  8425  
  8426  // AsInt16x16 returns an Int16x16 with the same bit representation as x.
  8427  func (x Uint16x16) AsInt16x16() Int16x16
  8428  
  8429  // AsInt32x8 returns an Int32x8 with the same bit representation as x.
  8430  func (x Uint16x16) AsInt32x8() Int32x8
  8431  
  8432  // AsInt64x4 returns an Int64x4 with the same bit representation as x.
  8433  func (x Uint16x16) AsInt64x4() Int64x4
  8434  
  8435  // AsUint8x32 returns a Uint8x32 with the same bit representation as x.
  8436  func (x Uint16x16) AsUint8x32() Uint8x32
  8437  
  8438  // AsUint32x8 returns a Uint32x8 with the same bit representation as x.
  8439  func (x Uint16x16) AsUint32x8() Uint32x8
  8440  
  8441  // AsUint64x4 returns a Uint64x4 with the same bit representation as x.
  8442  func (x Uint16x16) AsUint64x4() Uint64x4
  8443  
  8444  // AsFloat32x16 returns a Float32x16 with the same bit representation as x.
  8445  func (x Uint16x32) AsFloat32x16() Float32x16
  8446  
  8447  // AsFloat64x8 returns a Float64x8 with the same bit representation as x.
  8448  func (x Uint16x32) AsFloat64x8() Float64x8
  8449  
  8450  // AsInt8x64 returns an Int8x64 with the same bit representation as x.
  8451  func (x Uint16x32) AsInt8x64() Int8x64
  8452  
  8453  // AsInt16x32 returns an Int16x32 with the same bit representation as x.
  8454  func (x Uint16x32) AsInt16x32() Int16x32
  8455  
  8456  // AsInt32x16 returns an Int32x16 with the same bit representation as x.
  8457  func (x Uint16x32) AsInt32x16() Int32x16
  8458  
  8459  // AsInt64x8 returns an Int64x8 with the same bit representation as x.
  8460  func (x Uint16x32) AsInt64x8() Int64x8
  8461  
  8462  // AsUint8x64 returns a Uint8x64 with the same bit representation as x.
  8463  func (x Uint16x32) AsUint8x64() Uint8x64
  8464  
  8465  // AsUint32x16 returns a Uint32x16 with the same bit representation as x.
  8466  func (x Uint16x32) AsUint32x16() Uint32x16
  8467  
  8468  // AsUint64x8 returns a Uint64x8 with the same bit representation as x.
  8469  func (x Uint16x32) AsUint64x8() Uint64x8
  8470  
  8471  // AsFloat32x4 returns a Float32x4 with the same bit representation as x.
  8472  func (x Uint32x4) AsFloat32x4() Float32x4
  8473  
  8474  // AsFloat64x2 returns a Float64x2 with the same bit representation as x.
  8475  func (x Uint32x4) AsFloat64x2() Float64x2
  8476  
  8477  // AsInt8x16 returns an Int8x16 with the same bit representation as x.
  8478  func (x Uint32x4) AsInt8x16() Int8x16
  8479  
  8480  // AsInt16x8 returns an Int16x8 with the same bit representation as x.
  8481  func (x Uint32x4) AsInt16x8() Int16x8
  8482  
  8483  // AsInt32x4 returns an Int32x4 with the same bit representation as x.
  8484  func (x Uint32x4) AsInt32x4() Int32x4
  8485  
  8486  // AsInt64x2 returns an Int64x2 with the same bit representation as x.
  8487  func (x Uint32x4) AsInt64x2() Int64x2
  8488  
  8489  // AsUint8x16 returns a Uint8x16 with the same bit representation as x.
  8490  func (x Uint32x4) AsUint8x16() Uint8x16
  8491  
  8492  // AsUint16x8 returns a Uint16x8 with the same bit representation as x.
  8493  func (x Uint32x4) AsUint16x8() Uint16x8
  8494  
  8495  // AsUint64x2 returns a Uint64x2 with the same bit representation as x.
  8496  func (x Uint32x4) AsUint64x2() Uint64x2
  8497  
  8498  // AsFloat32x8 returns a Float32x8 with the same bit representation as x.
  8499  func (x Uint32x8) AsFloat32x8() Float32x8
  8500  
  8501  // AsFloat64x4 returns a Float64x4 with the same bit representation as x.
  8502  func (x Uint32x8) AsFloat64x4() Float64x4
  8503  
  8504  // AsInt8x32 returns an Int8x32 with the same bit representation as x.
  8505  func (x Uint32x8) AsInt8x32() Int8x32
  8506  
  8507  // AsInt16x16 returns an Int16x16 with the same bit representation as x.
  8508  func (x Uint32x8) AsInt16x16() Int16x16
  8509  
  8510  // AsInt32x8 returns an Int32x8 with the same bit representation as x.
  8511  func (x Uint32x8) AsInt32x8() Int32x8
  8512  
  8513  // AsInt64x4 returns an Int64x4 with the same bit representation as x.
  8514  func (x Uint32x8) AsInt64x4() Int64x4
  8515  
  8516  // AsUint8x32 returns a Uint8x32 with the same bit representation as x.
  8517  func (x Uint32x8) AsUint8x32() Uint8x32
  8518  
  8519  // AsUint16x16 returns a Uint16x16 with the same bit representation as x.
  8520  func (x Uint32x8) AsUint16x16() Uint16x16
  8521  
  8522  // AsUint64x4 returns a Uint64x4 with the same bit representation as x.
  8523  func (x Uint32x8) AsUint64x4() Uint64x4
  8524  
  8525  // AsFloat32x16 returns a Float32x16 with the same bit representation as x.
  8526  func (x Uint32x16) AsFloat32x16() Float32x16
  8527  
  8528  // AsFloat64x8 returns a Float64x8 with the same bit representation as x.
  8529  func (x Uint32x16) AsFloat64x8() Float64x8
  8530  
  8531  // AsInt8x64 returns an Int8x64 with the same bit representation as x.
  8532  func (x Uint32x16) AsInt8x64() Int8x64
  8533  
  8534  // AsInt16x32 returns an Int16x32 with the same bit representation as x.
  8535  func (x Uint32x16) AsInt16x32() Int16x32
  8536  
  8537  // AsInt32x16 returns an Int32x16 with the same bit representation as x.
  8538  func (x Uint32x16) AsInt32x16() Int32x16
  8539  
  8540  // AsInt64x8 returns an Int64x8 with the same bit representation as x.
  8541  func (x Uint32x16) AsInt64x8() Int64x8
  8542  
  8543  // AsUint8x64 returns a Uint8x64 with the same bit representation as x.
  8544  func (x Uint32x16) AsUint8x64() Uint8x64
  8545  
  8546  // AsUint16x32 returns a Uint16x32 with the same bit representation as x.
  8547  func (x Uint32x16) AsUint16x32() Uint16x32
  8548  
  8549  // AsUint64x8 returns a Uint64x8 with the same bit representation as x.
  8550  func (x Uint32x16) AsUint64x8() Uint64x8
  8551  
  8552  // AsFloat32x4 returns a Float32x4 with the same bit representation as x.
  8553  func (x Uint64x2) AsFloat32x4() Float32x4
  8554  
  8555  // AsFloat64x2 returns a Float64x2 with the same bit representation as x.
  8556  func (x Uint64x2) AsFloat64x2() Float64x2
  8557  
  8558  // AsInt8x16 returns an Int8x16 with the same bit representation as x.
  8559  func (x Uint64x2) AsInt8x16() Int8x16
  8560  
  8561  // AsInt16x8 returns an Int16x8 with the same bit representation as x.
  8562  func (x Uint64x2) AsInt16x8() Int16x8
  8563  
  8564  // AsInt32x4 returns an Int32x4 with the same bit representation as x.
  8565  func (x Uint64x2) AsInt32x4() Int32x4
  8566  
  8567  // AsInt64x2 returns an Int64x2 with the same bit representation as x.
  8568  func (x Uint64x2) AsInt64x2() Int64x2
  8569  
  8570  // AsUint8x16 returns a Uint8x16 with the same bit representation as x.
  8571  func (x Uint64x2) AsUint8x16() Uint8x16
  8572  
  8573  // AsUint16x8 returns a Uint16x8 with the same bit representation as x.
  8574  func (x Uint64x2) AsUint16x8() Uint16x8
  8575  
  8576  // AsUint32x4 returns a Uint32x4 with the same bit representation as x.
  8577  func (x Uint64x2) AsUint32x4() Uint32x4
  8578  
  8579  // AsFloat32x8 returns a Float32x8 with the same bit representation as x.
  8580  func (x Uint64x4) AsFloat32x8() Float32x8
  8581  
  8582  // AsFloat64x4 returns a Float64x4 with the same bit representation as x.
  8583  func (x Uint64x4) AsFloat64x4() Float64x4
  8584  
  8585  // AsInt8x32 returns an Int8x32 with the same bit representation as x.
  8586  func (x Uint64x4) AsInt8x32() Int8x32
  8587  
  8588  // AsInt16x16 returns an Int16x16 with the same bit representation as x.
  8589  func (x Uint64x4) AsInt16x16() Int16x16
  8590  
  8591  // AsInt32x8 returns an Int32x8 with the same bit representation as x.
  8592  func (x Uint64x4) AsInt32x8() Int32x8
  8593  
  8594  // AsInt64x4 returns an Int64x4 with the same bit representation as x.
  8595  func (x Uint64x4) AsInt64x4() Int64x4
  8596  
  8597  // AsUint8x32 returns a Uint8x32 with the same bit representation as x.
  8598  func (x Uint64x4) AsUint8x32() Uint8x32
  8599  
  8600  // AsUint16x16 returns a Uint16x16 with the same bit representation as x.
  8601  func (x Uint64x4) AsUint16x16() Uint16x16
  8602  
  8603  // AsUint32x8 returns a Uint32x8 with the same bit representation as x.
  8604  func (x Uint64x4) AsUint32x8() Uint32x8
  8605  
  8606  // AsFloat32x16 returns a Float32x16 with the same bit representation as x.
  8607  func (x Uint64x8) AsFloat32x16() Float32x16
  8608  
  8609  // AsFloat64x8 returns a Float64x8 with the same bit representation as x.
  8610  func (x Uint64x8) AsFloat64x8() Float64x8
  8611  
  8612  // AsInt8x64 returns an Int8x64 with the same bit representation as x.
  8613  func (x Uint64x8) AsInt8x64() Int8x64
  8614  
  8615  // AsInt16x32 returns an Int16x32 with the same bit representation as x.
  8616  func (x Uint64x8) AsInt16x32() Int16x32
  8617  
  8618  // AsInt32x16 returns an Int32x16 with the same bit representation as x.
  8619  func (x Uint64x8) AsInt32x16() Int32x16
  8620  
  8621  // AsInt64x8 returns an Int64x8 with the same bit representation as x.
  8622  func (x Uint64x8) AsInt64x8() Int64x8
  8623  
  8624  // AsUint8x64 returns a Uint8x64 with the same bit representation as x.
  8625  func (x Uint64x8) AsUint8x64() Uint8x64
  8626  
  8627  // AsUint16x32 returns a Uint16x32 with the same bit representation as x.
  8628  func (x Uint64x8) AsUint16x32() Uint16x32
  8629  
  8630  // AsUint32x16 returns a Uint32x16 with the same bit representation as x.
  8631  func (x Uint64x8) AsUint32x16() Uint32x16
  8632  
  8633  // ToInt8x16 converts from Mask8x16 to Int8x16.
  8634  func (from Mask8x16) ToInt8x16() (to Int8x16)
  8635  
  8636  // asMask converts from Int8x16 to Mask8x16.
  8637  func (from Int8x16) asMask() (to Mask8x16)
  8638  
  8639  func (x Mask8x16) And(y Mask8x16) Mask8x16
  8640  
  8641  func (x Mask8x16) Or(y Mask8x16) Mask8x16
  8642  
  8643  // ToInt8x32 converts from Mask8x32 to Int8x32.
  8644  func (from Mask8x32) ToInt8x32() (to Int8x32)
  8645  
  8646  // asMask converts from Int8x32 to Mask8x32.
  8647  func (from Int8x32) asMask() (to Mask8x32)
  8648  
  8649  func (x Mask8x32) And(y Mask8x32) Mask8x32
  8650  
  8651  func (x Mask8x32) Or(y Mask8x32) Mask8x32
  8652  
  8653  // ToInt8x64 converts from Mask8x64 to Int8x64.
  8654  func (from Mask8x64) ToInt8x64() (to Int8x64)
  8655  
  8656  // asMask converts from Int8x64 to Mask8x64.
  8657  func (from Int8x64) asMask() (to Mask8x64)
  8658  
  8659  func (x Mask8x64) And(y Mask8x64) Mask8x64
  8660  
  8661  func (x Mask8x64) Or(y Mask8x64) Mask8x64
  8662  
  8663  // ToInt16x8 converts from Mask16x8 to Int16x8.
  8664  func (from Mask16x8) ToInt16x8() (to Int16x8)
  8665  
  8666  // asMask converts from Int16x8 to Mask16x8.
  8667  func (from Int16x8) asMask() (to Mask16x8)
  8668  
  8669  func (x Mask16x8) And(y Mask16x8) Mask16x8
  8670  
  8671  func (x Mask16x8) Or(y Mask16x8) Mask16x8
  8672  
  8673  // ToInt16x16 converts from Mask16x16 to Int16x16.
  8674  func (from Mask16x16) ToInt16x16() (to Int16x16)
  8675  
  8676  // asMask converts from Int16x16 to Mask16x16.
  8677  func (from Int16x16) asMask() (to Mask16x16)
  8678  
  8679  func (x Mask16x16) And(y Mask16x16) Mask16x16
  8680  
  8681  func (x Mask16x16) Or(y Mask16x16) Mask16x16
  8682  
  8683  // ToInt16x32 converts from Mask16x32 to Int16x32.
  8684  func (from Mask16x32) ToInt16x32() (to Int16x32)
  8685  
  8686  // asMask converts from Int16x32 to Mask16x32.
  8687  func (from Int16x32) asMask() (to Mask16x32)
  8688  
  8689  func (x Mask16x32) And(y Mask16x32) Mask16x32
  8690  
  8691  func (x Mask16x32) Or(y Mask16x32) Mask16x32
  8692  
  8693  // ToInt32x4 converts from Mask32x4 to Int32x4.
  8694  func (from Mask32x4) ToInt32x4() (to Int32x4)
  8695  
  8696  // asMask converts from Int32x4 to Mask32x4.
  8697  func (from Int32x4) asMask() (to Mask32x4)
  8698  
  8699  func (x Mask32x4) And(y Mask32x4) Mask32x4
  8700  
  8701  func (x Mask32x4) Or(y Mask32x4) Mask32x4
  8702  
  8703  // ToInt32x8 converts from Mask32x8 to Int32x8.
  8704  func (from Mask32x8) ToInt32x8() (to Int32x8)
  8705  
  8706  // asMask converts from Int32x8 to Mask32x8.
  8707  func (from Int32x8) asMask() (to Mask32x8)
  8708  
  8709  func (x Mask32x8) And(y Mask32x8) Mask32x8
  8710  
  8711  func (x Mask32x8) Or(y Mask32x8) Mask32x8
  8712  
  8713  // ToInt32x16 converts from Mask32x16 to Int32x16.
  8714  func (from Mask32x16) ToInt32x16() (to Int32x16)
  8715  
  8716  // asMask converts from Int32x16 to Mask32x16.
  8717  func (from Int32x16) asMask() (to Mask32x16)
  8718  
  8719  func (x Mask32x16) And(y Mask32x16) Mask32x16
  8720  
  8721  func (x Mask32x16) Or(y Mask32x16) Mask32x16
  8722  
  8723  // ToInt64x2 converts from Mask64x2 to Int64x2.
  8724  func (from Mask64x2) ToInt64x2() (to Int64x2)
  8725  
  8726  // asMask converts from Int64x2 to Mask64x2.
  8727  func (from Int64x2) asMask() (to Mask64x2)
  8728  
  8729  func (x Mask64x2) And(y Mask64x2) Mask64x2
  8730  
  8731  func (x Mask64x2) Or(y Mask64x2) Mask64x2
  8732  
  8733  // ToInt64x4 converts from Mask64x4 to Int64x4.
  8734  func (from Mask64x4) ToInt64x4() (to Int64x4)
  8735  
  8736  // asMask converts from Int64x4 to Mask64x4.
  8737  func (from Int64x4) asMask() (to Mask64x4)
  8738  
  8739  func (x Mask64x4) And(y Mask64x4) Mask64x4
  8740  
  8741  func (x Mask64x4) Or(y Mask64x4) Mask64x4
  8742  
  8743  // ToInt64x8 converts from Mask64x8 to Int64x8.
  8744  func (from Mask64x8) ToInt64x8() (to Int64x8)
  8745  
  8746  // asMask converts from Int64x8 to Mask64x8.
  8747  func (from Int64x8) asMask() (to Mask64x8)
  8748  
  8749  func (x Mask64x8) And(y Mask64x8) Mask64x8
  8750  
  8751  func (x Mask64x8) Or(y Mask64x8) Mask64x8
  8752  

View as plain text