Source file src/simd/archsimd/ops_arm64.go

     1  // Code generated by 'simdgen -o godefs -goroot $GOROOT -arch arm64 -arm64Path $ARM64_ISA_PATH go_arm64.yaml types.yaml categories.yaml'; DO NOT EDIT.
     2  
     3  //go:build goexperiment.simd
     4  
     5  package archsimd
     6  
     7  /* Abs */
     8  
     9  // Abs computes the absolute value of each element.
    10  //
    11  // Asm: VFABS, CPU Feature: NEON
    12  func (x Float32x4) Abs() Float32x4
    13  
    14  // Abs computes the absolute value of each element.
    15  //
    16  // Asm: VFABS, CPU Feature: NEON
    17  func (x Float64x2) Abs() Float64x2
    18  
    19  // Abs computes the absolute value of each element.
    20  //
    21  // Asm: VABS, CPU Feature: NEON
    22  func (x Int8x16) Abs() Int8x16
    23  
    24  // Abs computes the absolute value of each element.
    25  //
    26  // Asm: VABS, CPU Feature: NEON
    27  func (x Int16x8) Abs() Int16x8
    28  
    29  // Abs computes the absolute value of each element.
    30  //
    31  // Asm: VABS, CPU Feature: NEON
    32  func (x Int32x4) Abs() Int32x4
    33  
    34  // Abs computes the absolute value of each element.
    35  //
    36  // Asm: VABS, CPU Feature: NEON
    37  func (x Int64x2) Abs() Int64x2
    38  
    39  /* Add */
    40  
    41  // Add adds corresponding elements of two vectors.
    42  //
    43  // Asm: VFADD, CPU Feature: NEON
    44  func (x Float32x4) Add(y Float32x4) Float32x4
    45  
    46  // Add adds corresponding elements of two vectors.
    47  //
    48  // Asm: VFADD, CPU Feature: NEON
    49  func (x Float64x2) Add(y Float64x2) Float64x2
    50  
    51  // Add adds corresponding elements of two vectors.
    52  //
    53  // Asm: VADD, CPU Feature: NEON
    54  func (x Int8x16) Add(y Int8x16) Int8x16
    55  
    56  // Add adds corresponding elements of two vectors.
    57  //
    58  // Asm: VADD, CPU Feature: NEON
    59  func (x Int16x8) Add(y Int16x8) Int16x8
    60  
    61  // Add adds corresponding elements of two vectors.
    62  //
    63  // Asm: VADD, CPU Feature: NEON
    64  func (x Int32x4) Add(y Int32x4) Int32x4
    65  
    66  // Add adds corresponding elements of two vectors.
    67  //
    68  // Asm: VADD, CPU Feature: NEON
    69  func (x Int64x2) Add(y Int64x2) Int64x2
    70  
    71  // Add adds corresponding elements of two vectors.
    72  //
    73  // Asm: VADD, CPU Feature: NEON
    74  func (x Uint8x16) Add(y Uint8x16) Uint8x16
    75  
    76  // Add adds corresponding elements of two vectors.
    77  //
    78  // Asm: VADD, CPU Feature: NEON
    79  func (x Uint16x8) Add(y Uint16x8) Uint16x8
    80  
    81  // Add adds corresponding elements of two vectors.
    82  //
    83  // Asm: VADD, CPU Feature: NEON
    84  func (x Uint32x4) Add(y Uint32x4) Uint32x4
    85  
    86  // Add adds corresponding elements of two vectors.
    87  //
    88  // Asm: VADD, CPU Feature: NEON
    89  func (x Uint64x2) Add(y Uint64x2) Uint64x2
    90  
    91  /* AddSaturated */
    92  
    93  // AddSaturated adds corresponding elements of two vectors with saturation.
    94  //
    95  // Asm: VSQADD, CPU Feature: NEON
    96  func (x Int8x16) AddSaturated(y Int8x16) Int8x16
    97  
    98  // AddSaturated adds corresponding elements of two vectors with saturation.
    99  //
   100  // Asm: VSQADD, CPU Feature: NEON
   101  func (x Int16x8) AddSaturated(y Int16x8) Int16x8
   102  
   103  // AddSaturated adds corresponding elements of two vectors with saturation.
   104  //
   105  // Asm: VSQADD, CPU Feature: NEON
   106  func (x Int32x4) AddSaturated(y Int32x4) Int32x4
   107  
   108  // AddSaturated adds corresponding elements of two vectors with saturation.
   109  //
   110  // Asm: VSQADD, CPU Feature: NEON
   111  func (x Int64x2) AddSaturated(y Int64x2) Int64x2
   112  
   113  // AddSaturated adds corresponding elements of two vectors with saturation.
   114  //
   115  // Asm: VUQADD, CPU Feature: NEON
   116  func (x Uint8x16) AddSaturated(y Uint8x16) Uint8x16
   117  
   118  // AddSaturated adds corresponding elements of two vectors with saturation.
   119  //
   120  // Asm: VUQADD, CPU Feature: NEON
   121  func (x Uint16x8) AddSaturated(y Uint16x8) Uint16x8
   122  
   123  // AddSaturated adds corresponding elements of two vectors with saturation.
   124  //
   125  // Asm: VUQADD, CPU Feature: NEON
   126  func (x Uint32x4) AddSaturated(y Uint32x4) Uint32x4
   127  
   128  // AddSaturated adds corresponding elements of two vectors with saturation.
   129  //
   130  // Asm: VUQADD, CPU Feature: NEON
   131  func (x Uint64x2) AddSaturated(y Uint64x2) Uint64x2
   132  
   133  /* And */
   134  
   135  // And performs a bitwise x & y.
   136  //
   137  // Asm: VAND, CPU Feature: NEON
   138  func (x Int8x16) And(y Int8x16) Int8x16
   139  
   140  // And performs a bitwise x & y.
   141  //
   142  // Asm: VAND, CPU Feature: NEON
   143  func (x Int16x8) And(y Int16x8) Int16x8
   144  
   145  // And performs a bitwise x & y.
   146  //
   147  // Asm: VAND, CPU Feature: NEON
   148  func (x Int32x4) And(y Int32x4) Int32x4
   149  
   150  // And performs a bitwise x & y.
   151  //
   152  // Asm: VAND, CPU Feature: NEON
   153  func (x Int64x2) And(y Int64x2) Int64x2
   154  
   155  // And performs a bitwise x & y.
   156  //
   157  // Asm: VAND, CPU Feature: NEON
   158  func (x Uint8x16) And(y Uint8x16) Uint8x16
   159  
   160  // And performs a bitwise x & y.
   161  //
   162  // Asm: VAND, CPU Feature: NEON
   163  func (x Uint16x8) And(y Uint16x8) Uint16x8
   164  
   165  // And performs a bitwise x & y.
   166  //
   167  // Asm: VAND, CPU Feature: NEON
   168  func (x Uint32x4) And(y Uint32x4) Uint32x4
   169  
   170  // And performs a bitwise x & y.
   171  //
   172  // Asm: VAND, CPU Feature: NEON
   173  func (x Uint64x2) And(y Uint64x2) Uint64x2
   174  
   175  /* AndNot */
   176  
   177  // AndNot performs a bitwise x &^ y.
   178  //
   179  // Asm: VBIC, CPU Feature: NEON
   180  func (x Int8x16) AndNot(y Int8x16) Int8x16
   181  
   182  // AndNot performs a bitwise x &^ y.
   183  //
   184  // Asm: VBIC, CPU Feature: NEON
   185  func (x Int16x8) AndNot(y Int16x8) Int16x8
   186  
   187  // AndNot performs a bitwise x &^ y.
   188  //
   189  // Asm: VBIC, CPU Feature: NEON
   190  func (x Int32x4) AndNot(y Int32x4) Int32x4
   191  
   192  // AndNot performs a bitwise x &^ y.
   193  //
   194  // Asm: VBIC, CPU Feature: NEON
   195  func (x Int64x2) AndNot(y Int64x2) Int64x2
   196  
   197  // AndNot performs a bitwise x &^ y.
   198  //
   199  // Asm: VBIC, CPU Feature: NEON
   200  func (x Uint8x16) AndNot(y Uint8x16) Uint8x16
   201  
   202  // AndNot performs a bitwise x &^ y.
   203  //
   204  // Asm: VBIC, CPU Feature: NEON
   205  func (x Uint16x8) AndNot(y Uint16x8) Uint16x8
   206  
   207  // AndNot performs a bitwise x &^ y.
   208  //
   209  // Asm: VBIC, CPU Feature: NEON
   210  func (x Uint32x4) AndNot(y Uint32x4) Uint32x4
   211  
   212  // AndNot performs a bitwise x &^ y.
   213  //
   214  // Asm: VBIC, CPU Feature: NEON
   215  func (x Uint64x2) AndNot(y Uint64x2) Uint64x2
   216  
   217  /* Average */
   218  
   219  // Average computes the rounded average of corresponding elements.
   220  //
   221  // Asm: VSRHADD, CPU Feature: NEON
   222  func (x Int8x16) Average(y Int8x16) Int8x16
   223  
   224  // Average computes the rounded average of corresponding elements.
   225  //
   226  // Asm: VSRHADD, CPU Feature: NEON
   227  func (x Int16x8) Average(y Int16x8) Int16x8
   228  
   229  // Average computes the rounded average of corresponding elements.
   230  //
   231  // Asm: VSRHADD, CPU Feature: NEON
   232  func (x Int32x4) Average(y Int32x4) Int32x4
   233  
   234  // Average computes the rounded average of corresponding elements.
   235  //
   236  // Asm: VURHADD, CPU Feature: NEON
   237  func (x Uint8x16) Average(y Uint8x16) Uint8x16
   238  
   239  // Average computes the rounded average of corresponding elements.
   240  //
   241  // Asm: VURHADD, CPU Feature: NEON
   242  func (x Uint16x8) Average(y Uint16x8) Uint16x8
   243  
   244  // Average computes the rounded average of corresponding elements.
   245  //
   246  // Asm: VURHADD, CPU Feature: NEON
   247  func (x Uint32x4) Average(y Uint32x4) Uint32x4
   248  
   249  /* Ceil */
   250  
   251  // Ceil rounds elements up to the nearest integer.
   252  //
   253  // Asm: VFRINTP, CPU Feature: NEON
   254  func (x Float32x4) Ceil() Float32x4
   255  
   256  // Ceil rounds elements up to the nearest integer.
   257  //
   258  // Asm: VFRINTP, CPU Feature: NEON
   259  func (x Float64x2) Ceil() Float64x2
   260  
   261  /* ConcatAddPairs */
   262  
   263  // ConcatAddPairs horizontally adds adjacent pairs of elements.
   264  // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...].
   265  //
   266  // Asm: VFADDP, CPU Feature: NEON
   267  func (x Float32x4) ConcatAddPairs(y Float32x4) Float32x4
   268  
   269  // ConcatAddPairs horizontally adds adjacent pairs of elements.
   270  // For x = [x0, x1] and y = [y0, y1], the result is [x0+x1, y0+y1].
   271  //
   272  // Asm: VFADDP, CPU Feature: NEON
   273  func (x Float64x2) ConcatAddPairs(y Float64x2) Float64x2
   274  
   275  // ConcatAddPairs horizontally adds adjacent pairs of elements.
   276  // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...].
   277  //
   278  // Asm: VADDP, CPU Feature: NEON
   279  func (x Int16x8) ConcatAddPairs(y Int16x8) Int16x8
   280  
   281  // ConcatAddPairs horizontally adds adjacent pairs of elements.
   282  // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...].
   283  //
   284  // Asm: VADDP, CPU Feature: NEON
   285  func (x Int32x4) ConcatAddPairs(y Int32x4) Int32x4
   286  
   287  // ConcatAddPairs horizontally adds adjacent pairs of elements.
   288  // For x = [x0, x1] and y = [y0, y1], the result is [x0+x1, y0+y1].
   289  //
   290  // Asm: VADDP, CPU Feature: NEON
   291  func (x Int64x2) ConcatAddPairs(y Int64x2) Int64x2
   292  
   293  // ConcatAddPairs horizontally adds adjacent pairs of elements.
   294  // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...].
   295  //
   296  // Asm: VADDP, CPU Feature: NEON
   297  func (x Uint16x8) ConcatAddPairs(y Uint16x8) Uint16x8
   298  
   299  // ConcatAddPairs horizontally adds adjacent pairs of elements.
   300  // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...].
   301  //
   302  // Asm: VADDP, CPU Feature: NEON
   303  func (x Uint32x4) ConcatAddPairs(y Uint32x4) Uint32x4
   304  
   305  // ConcatAddPairs horizontally adds adjacent pairs of elements.
   306  // For x = [x0, x1] and y = [y0, y1], the result is [x0+x1, y0+y1].
   307  //
   308  // Asm: VADDP, CPU Feature: NEON
   309  func (x Uint64x2) ConcatAddPairs(y Uint64x2) Uint64x2
   310  
   311  /* ConcatEven */
   312  
   313  // ConcatEven concatenates even-indexed elements from the concatenation of x and y.
   314  // For x = [x0,x1,x2,x3] and y = [y0,y1,y2,y3], result = [x0,x2,y0,y2].
   315  //
   316  // Asm: VUZP1, CPU Feature: NEON
   317  func (x Int8x16) ConcatEven(y Int8x16) Int8x16
   318  
   319  // ConcatEven concatenates even-indexed elements from the concatenation of x and y.
   320  // For x = [x0,x1,x2,x3] and y = [y0,y1,y2,y3], result = [x0,x2,y0,y2].
   321  //
   322  // Asm: VUZP1, CPU Feature: NEON
   323  func (x Int16x8) ConcatEven(y Int16x8) Int16x8
   324  
   325  // ConcatEven concatenates even-indexed elements from the concatenation of x and y.
   326  // For x = [x0,x1,x2,x3] and y = [y0,y1,y2,y3], result = [x0,x2,y0,y2].
   327  //
   328  // Asm: VUZP1, CPU Feature: NEON
   329  func (x Int32x4) ConcatEven(y Int32x4) Int32x4
   330  
   331  // ConcatEven concatenates even-indexed elements from the concatenation of x and y.
   332  // For x = [x0,x1,x2,x3] and y = [y0,y1,y2,y3], result = [x0,x2,y0,y2].
   333  //
   334  // Asm: VUZP1, CPU Feature: NEON
   335  func (x Int64x2) ConcatEven(y Int64x2) Int64x2
   336  
   337  // ConcatEven concatenates even-indexed elements from the concatenation of x and y.
   338  // For x = [x0,x1,x2,x3] and y = [y0,y1,y2,y3], result = [x0,x2,y0,y2].
   339  //
   340  // Asm: VUZP1, CPU Feature: NEON
   341  func (x Uint8x16) ConcatEven(y Uint8x16) Uint8x16
   342  
   343  // ConcatEven concatenates even-indexed elements from the concatenation of x and y.
   344  // For x = [x0,x1,x2,x3] and y = [y0,y1,y2,y3], result = [x0,x2,y0,y2].
   345  //
   346  // Asm: VUZP1, CPU Feature: NEON
   347  func (x Uint16x8) ConcatEven(y Uint16x8) Uint16x8
   348  
   349  // ConcatEven concatenates even-indexed elements from the concatenation of x and y.
   350  // For x = [x0,x1,x2,x3] and y = [y0,y1,y2,y3], result = [x0,x2,y0,y2].
   351  //
   352  // Asm: VUZP1, CPU Feature: NEON
   353  func (x Uint32x4) ConcatEven(y Uint32x4) Uint32x4
   354  
   355  // ConcatEven concatenates even-indexed elements from the concatenation of x and y.
   356  // For x = [x0,x1,x2,x3] and y = [y0,y1,y2,y3], result = [x0,x2,y0,y2].
   357  //
   358  // Asm: VUZP1, CPU Feature: NEON
   359  func (x Uint64x2) ConcatEven(y Uint64x2) Uint64x2
   360  
   361  /* ConcatOdd */
   362  
   363  // ConcatOdd concatenates odd-indexed elements from the concatenation of x and y.
   364  // For x = [x0,x1,x2,x3] and y = [y0,y1,y2,y3], result = [x1,x3,y1,y3].
   365  //
   366  // Asm: VUZP2, CPU Feature: NEON
   367  func (x Int8x16) ConcatOdd(y Int8x16) Int8x16
   368  
   369  // ConcatOdd concatenates odd-indexed elements from the concatenation of x and y.
   370  // For x = [x0,x1,x2,x3] and y = [y0,y1,y2,y3], result = [x1,x3,y1,y3].
   371  //
   372  // Asm: VUZP2, CPU Feature: NEON
   373  func (x Int16x8) ConcatOdd(y Int16x8) Int16x8
   374  
   375  // ConcatOdd concatenates odd-indexed elements from the concatenation of x and y.
   376  // For x = [x0,x1,x2,x3] and y = [y0,y1,y2,y3], result = [x1,x3,y1,y3].
   377  //
   378  // Asm: VUZP2, CPU Feature: NEON
   379  func (x Int32x4) ConcatOdd(y Int32x4) Int32x4
   380  
   381  // ConcatOdd concatenates odd-indexed elements from the concatenation of x and y.
   382  // For x = [x0,x1,x2,x3] and y = [y0,y1,y2,y3], result = [x1,x3,y1,y3].
   383  //
   384  // Asm: VUZP2, CPU Feature: NEON
   385  func (x Int64x2) ConcatOdd(y Int64x2) Int64x2
   386  
   387  // ConcatOdd concatenates odd-indexed elements from the concatenation of x and y.
   388  // For x = [x0,x1,x2,x3] and y = [y0,y1,y2,y3], result = [x1,x3,y1,y3].
   389  //
   390  // Asm: VUZP2, CPU Feature: NEON
   391  func (x Uint8x16) ConcatOdd(y Uint8x16) Uint8x16
   392  
   393  // ConcatOdd concatenates odd-indexed elements from the concatenation of x and y.
   394  // For x = [x0,x1,x2,x3] and y = [y0,y1,y2,y3], result = [x1,x3,y1,y3].
   395  //
   396  // Asm: VUZP2, CPU Feature: NEON
   397  func (x Uint16x8) ConcatOdd(y Uint16x8) Uint16x8
   398  
   399  // ConcatOdd concatenates odd-indexed elements from the concatenation of x and y.
   400  // For x = [x0,x1,x2,x3] and y = [y0,y1,y2,y3], result = [x1,x3,y1,y3].
   401  //
   402  // Asm: VUZP2, CPU Feature: NEON
   403  func (x Uint32x4) ConcatOdd(y Uint32x4) Uint32x4
   404  
   405  // ConcatOdd concatenates odd-indexed elements from the concatenation of x and y.
   406  // For x = [x0,x1,x2,x3] and y = [y0,y1,y2,y3], result = [x1,x3,y1,y3].
   407  //
   408  // Asm: VUZP2, CPU Feature: NEON
   409  func (x Uint64x2) ConcatOdd(y Uint64x2) Uint64x2
   410  
   411  /* ConcatShiftBytesRight */
   412  
   413  // ConcatShiftBytesRight concatenates x and y and shifts it right by shift bytes.
   414  // The result vector will be the lower half of the concatenated vector.
   415  //
   416  // A non-constant value of shift may result in significantly worse performance for this operation.
   417  //
   418  // Asm: VEXT, CPU Feature: NEON
   419  func (x Uint8x16) ConcatShiftBytesRight(y Uint8x16, shift uint64) Uint8x16
   420  
   421  /* ConvertLo2ToFloat64 */
   422  
   423  // ConvertLo2ToFloat64 converts low-indexed float32 element values to float64.
   424  // For the high-indexed elements, use HiToLo:
   425  //
   426  //	x.HiToLo().ConvertLo2ToFloat64(...)
   427  //
   428  // Asm: VFCVTL, CPU Feature: NEON
   429  func (x Float32x4) ConvertLo2ToFloat64() Float64x2
   430  
   431  /* ConvertToFloat32 */
   432  
   433  // ConvertToFloat32 converts element values to float32.
   434  //
   435  // Asm: VFCVTN, CPU Feature: NEON
   436  func (x Float64x2) ConvertToFloat32() Float32x4
   437  
   438  // ConvertToFloat32 converts element values to float32.
   439  //
   440  // Asm: VSCVTF, CPU Feature: NEON
   441  func (x Int32x4) ConvertToFloat32() Float32x4
   442  
   443  // ConvertToFloat32 converts element values to float32.
   444  //
   445  // Asm: VUCVTF, CPU Feature: NEON
   446  func (x Uint32x4) ConvertToFloat32() Float32x4
   447  
   448  /* ConvertToFloat64 */
   449  
   450  // ConvertToFloat64 converts element values to float64.
   451  //
   452  // Asm: VSCVTF, CPU Feature: NEON
   453  func (x Int64x2) ConvertToFloat64() Float64x2
   454  
   455  // ConvertToFloat64 converts element values to float64.
   456  //
   457  // Asm: VUCVTF, CPU Feature: NEON
   458  func (x Uint64x2) ConvertToFloat64() Float64x2
   459  
   460  /* ConvertToInt32 */
   461  
   462  // ConvertToInt32 converts element values to int32.
   463  // When a conversion is inexact, a truncated (round toward zero) value is returned.
   464  // If a converted result cannot be represented in int32, an implementation-defined
   465  // architecture-specific value is returned.
   466  //
   467  // Asm: VFCVTZS, CPU Feature: NEON
   468  func (x Float32x4) ConvertToInt32() Int32x4
   469  
   470  /* ConvertToInt64 */
   471  
   472  // ConvertToInt64 converts element values to int64.
   473  // When a conversion is inexact, a truncated (round toward zero) value is returned.
   474  // If a converted result cannot be represented in int64, an implementation-defined
   475  // architecture-specific value is returned.
   476  //
   477  // Asm: VFCVTZS, CPU Feature: NEON
   478  func (x Float64x2) ConvertToInt64() Int64x2
   479  
   480  /* ConvertToUint32 */
   481  
   482  // ConvertToUint32 converts element values to uint32.
   483  // When a conversion is inexact, a truncated (round toward zero) value is returned.
   484  // If a converted result cannot be represented in uint32, an implementation-defined
   485  // architecture-specific value is returned.
   486  //
   487  // Asm: VFCVTZU, CPU Feature: NEON
   488  func (x Float32x4) ConvertToUint32() Uint32x4
   489  
   490  /* ConvertToUint64 */
   491  
   492  // ConvertToUint64 converts element values to uint64.
   493  // When a conversion is inexact, a truncated (round toward zero) value is returned.
   494  // If a converted result cannot be represented in uint64, an implementation-defined
   495  // architecture-specific value is returned.
   496  //
   497  // Asm: VFCVTZU, CPU Feature: NEON
   498  func (x Float64x2) ConvertToUint64() Uint64x2
   499  
   500  /* Div */
   501  
   502  // Div divides elements of two vectors. Division by zero follows IEEE 754 and does not panic.
   503  //
   504  // Asm: VFDIV, CPU Feature: NEON
   505  func (x Float32x4) Div(y Float32x4) Float32x4
   506  
   507  // Div divides elements of two vectors. Division by zero follows IEEE 754 and does not panic.
   508  //
   509  // Asm: VFDIV, CPU Feature: NEON
   510  func (x Float64x2) Div(y Float64x2) Float64x2
   511  
   512  /* Equal */
   513  
   514  // Equal returns a mask whose elements indicate whether x == y.
   515  //
   516  // Asm: VFCMEQ, CPU Feature: NEON
   517  func (x Float32x4) Equal(y Float32x4) Mask32x4
   518  
   519  // Equal returns a mask whose elements indicate whether x == y.
   520  //
   521  // Asm: VFCMEQ, CPU Feature: NEON
   522  func (x Float64x2) Equal(y Float64x2) Mask64x2
   523  
   524  // Equal returns a mask whose elements indicate whether x == y.
   525  //
   526  // Asm: VCMEQ, CPU Feature: NEON
   527  func (x Int8x16) Equal(y Int8x16) Mask8x16
   528  
   529  // Equal returns a mask whose elements indicate whether x == y.
   530  //
   531  // Asm: VCMEQ, CPU Feature: NEON
   532  func (x Int16x8) Equal(y Int16x8) Mask16x8
   533  
   534  // Equal returns a mask whose elements indicate whether x == y.
   535  //
   536  // Asm: VCMEQ, CPU Feature: NEON
   537  func (x Int32x4) Equal(y Int32x4) Mask32x4
   538  
   539  // Equal returns a mask whose elements indicate whether x == y.
   540  //
   541  // Asm: VCMEQ, CPU Feature: NEON
   542  func (x Int64x2) Equal(y Int64x2) Mask64x2
   543  
   544  // Equal returns a mask whose elements indicate whether x == y.
   545  //
   546  // Asm: VCMEQ, CPU Feature: NEON
   547  func (x Uint8x16) Equal(y Uint8x16) Mask8x16
   548  
   549  // Equal returns a mask whose elements indicate whether x == y.
   550  //
   551  // Asm: VCMEQ, CPU Feature: NEON
   552  func (x Uint16x8) Equal(y Uint16x8) Mask16x8
   553  
   554  // Equal returns a mask whose elements indicate whether x == y.
   555  //
   556  // Asm: VCMEQ, CPU Feature: NEON
   557  func (x Uint32x4) Equal(y Uint32x4) Mask32x4
   558  
   559  // Equal returns a mask whose elements indicate whether x == y.
   560  //
   561  // Asm: VCMEQ, CPU Feature: NEON
   562  func (x Uint64x2) Equal(y Uint64x2) Mask64x2
   563  
   564  /* ExtendLo2ToInt64 */
   565  
   566  // ExtendLo2ToInt64 sign-extends 2 lowest vector element values to int64.
   567  // For the high-indexed elements, use HiToLo:
   568  //
   569  //	x.HiToLo().ExtendLo2ToInt64(...)
   570  //
   571  // Asm: VSXTL, CPU Feature: NEON
   572  func (x Int32x4) ExtendLo2ToInt64() Int64x2
   573  
   574  /* ExtendLo2ToUint64 */
   575  
   576  // ExtendLo2ToUint64 zero-extends 2 lowest vector element values to uint64.
   577  // For the high-indexed elements, use HiToLo:
   578  //
   579  //	x.HiToLo().ExtendLo2ToUint64(...)
   580  //
   581  // Asm: VUXTL, CPU Feature: NEON
   582  func (x Uint32x4) ExtendLo2ToUint64() Uint64x2
   583  
   584  /* ExtendLo4ToInt32 */
   585  
   586  // ExtendLo4ToInt32 sign-extends 4 lowest vector element values to int32.
   587  // For the high-indexed elements, use HiToLo:
   588  //
   589  //	x.HiToLo().ExtendLo4ToInt32(...)
   590  //
   591  // Asm: VSXTL, CPU Feature: NEON
   592  func (x Int16x8) ExtendLo4ToInt32() Int32x4
   593  
   594  /* ExtendLo4ToUint32 */
   595  
   596  // ExtendLo4ToUint32 zero-extends 4 lowest vector element values to uint32.
   597  // For the high-indexed elements, use HiToLo:
   598  //
   599  //	x.HiToLo().ExtendLo4ToUint32(...)
   600  //
   601  // Asm: VUXTL, CPU Feature: NEON
   602  func (x Uint16x8) ExtendLo4ToUint32() Uint32x4
   603  
   604  /* ExtendLo8ToInt16 */
   605  
   606  // ExtendLo8ToInt16 sign-extends 8 lowest vector element values to int16.
   607  // For the high-indexed elements, use HiToLo:
   608  //
   609  //	x.HiToLo().ExtendLo8ToInt16(...)
   610  //
   611  // Asm: VSXTL, CPU Feature: NEON
   612  func (x Int8x16) ExtendLo8ToInt16() Int16x8
   613  
   614  /* ExtendLo8ToUint16 */
   615  
   616  // ExtendLo8ToUint16 zero-extends 8 lowest vector element values to uint16.
   617  // For the high-indexed elements, use HiToLo:
   618  //
   619  //	x.HiToLo().ExtendLo8ToUint16(...)
   620  //
   621  // Asm: VUXTL, CPU Feature: NEON
   622  func (x Uint8x16) ExtendLo8ToUint16() Uint16x8
   623  
   624  /* Floor */
   625  
   626  // Floor rounds elements down to the nearest integer.
   627  //
   628  // Asm: VFRINTM, CPU Feature: NEON
   629  func (x Float32x4) Floor() Float32x4
   630  
   631  // Floor rounds elements down to the nearest integer.
   632  //
   633  // Asm: VFRINTM, CPU Feature: NEON
   634  func (x Float64x2) Floor() Float64x2
   635  
   636  /* GetElem */
   637  
   638  // GetElem returns the index'th element of x.
   639  //
   640  // A non-constant value of index may result in significantly worse performance for this operation.
   641  //
   642  // Asm: VDUP, CPU Feature: NEON
   643  func (x Float32x4) GetElem(index uint8) float32
   644  
   645  // GetElem returns the index'th element of x.
   646  //
   647  // A non-constant value of index may result in significantly worse performance for this operation.
   648  //
   649  // Asm: VDUP, CPU Feature: NEON
   650  func (x Float64x2) GetElem(index uint8) float64
   651  
   652  // GetElem returns the index'th element of x.
   653  //
   654  // A non-constant value of index may result in significantly worse performance for this operation.
   655  //
   656  // Asm: VMOV, CPU Feature: NEON
   657  func (x Int8x16) GetElem(index uint8) int8
   658  
   659  // GetElem returns the index'th element of x.
   660  //
   661  // A non-constant value of index may result in significantly worse performance for this operation.
   662  //
   663  // Asm: VMOV, CPU Feature: NEON
   664  func (x Int16x8) GetElem(index uint8) int16
   665  
   666  // GetElem returns the index'th element of x.
   667  //
   668  // A non-constant value of index may result in significantly worse performance for this operation.
   669  //
   670  // Asm: VMOV, CPU Feature: NEON
   671  func (x Int32x4) GetElem(index uint8) int32
   672  
   673  // GetElem returns the index'th element of x.
   674  //
   675  // A non-constant value of index may result in significantly worse performance for this operation.
   676  //
   677  // Asm: VMOV, CPU Feature: NEON
   678  func (x Int64x2) GetElem(index uint8) int64
   679  
   680  // GetElem returns the index'th element of x.
   681  //
   682  // A non-constant value of index may result in significantly worse performance for this operation.
   683  //
   684  // Asm: VMOV, CPU Feature: NEON
   685  func (x Uint8x16) GetElem(index uint8) uint8
   686  
   687  // GetElem returns the index'th element of x.
   688  //
   689  // A non-constant value of index may result in significantly worse performance for this operation.
   690  //
   691  // Asm: VMOV, CPU Feature: NEON
   692  func (x Uint16x8) GetElem(index uint8) uint16
   693  
   694  // GetElem returns the index'th element of x.
   695  //
   696  // A non-constant value of index may result in significantly worse performance for this operation.
   697  //
   698  // Asm: VMOV, CPU Feature: NEON
   699  func (x Uint32x4) GetElem(index uint8) uint32
   700  
   701  // GetElem returns the index'th element of x.
   702  //
   703  // A non-constant value of index may result in significantly worse performance for this operation.
   704  //
   705  // Asm: VMOV, CPU Feature: NEON
   706  func (x Uint64x2) GetElem(index uint8) uint64
   707  
   708  /* Greater */
   709  
   710  // Greater returns a mask whose elements indicate whether x > y.
   711  //
   712  // Asm: VFCMGT, CPU Feature: NEON
   713  func (x Float32x4) Greater(y Float32x4) Mask32x4
   714  
   715  // Greater returns a mask whose elements indicate whether x > y.
   716  //
   717  // Asm: VFCMGT, CPU Feature: NEON
   718  func (x Float64x2) Greater(y Float64x2) Mask64x2
   719  
   720  // Greater returns a mask whose elements indicate whether x > y.
   721  //
   722  // Asm: VCMGT, CPU Feature: NEON
   723  func (x Int8x16) Greater(y Int8x16) Mask8x16
   724  
   725  // Greater returns a mask whose elements indicate whether x > y.
   726  //
   727  // Asm: VCMGT, CPU Feature: NEON
   728  func (x Int16x8) Greater(y Int16x8) Mask16x8
   729  
   730  // Greater returns a mask whose elements indicate whether x > y.
   731  //
   732  // Asm: VCMGT, CPU Feature: NEON
   733  func (x Int32x4) Greater(y Int32x4) Mask32x4
   734  
   735  // Greater returns a mask whose elements indicate whether x > y.
   736  //
   737  // Asm: VCMGT, CPU Feature: NEON
   738  func (x Int64x2) Greater(y Int64x2) Mask64x2
   739  
   740  // Greater returns a mask whose elements indicate whether x > y.
   741  //
   742  // Asm: VCMHI, CPU Feature: NEON
   743  func (x Uint8x16) Greater(y Uint8x16) Mask8x16
   744  
   745  // Greater returns a mask whose elements indicate whether x > y.
   746  //
   747  // Asm: VCMHI, CPU Feature: NEON
   748  func (x Uint16x8) Greater(y Uint16x8) Mask16x8
   749  
   750  // Greater returns a mask whose elements indicate whether x > y.
   751  //
   752  // Asm: VCMHI, CPU Feature: NEON
   753  func (x Uint32x4) Greater(y Uint32x4) Mask32x4
   754  
   755  // Greater returns a mask whose elements indicate whether x > y.
   756  //
   757  // Asm: VCMHI, CPU Feature: NEON
   758  func (x Uint64x2) Greater(y Uint64x2) Mask64x2
   759  
   760  /* GreaterEqual */
   761  
   762  // GreaterEqual returns a mask whose elements indicate whether x >= y.
   763  //
   764  // Asm: VFCMGE, CPU Feature: NEON
   765  func (x Float32x4) GreaterEqual(y Float32x4) Mask32x4
   766  
   767  // GreaterEqual returns a mask whose elements indicate whether x >= y.
   768  //
   769  // Asm: VFCMGE, CPU Feature: NEON
   770  func (x Float64x2) GreaterEqual(y Float64x2) Mask64x2
   771  
   772  // GreaterEqual returns a mask whose elements indicate whether x >= y.
   773  //
   774  // Asm: VCMGE, CPU Feature: NEON
   775  func (x Int8x16) GreaterEqual(y Int8x16) Mask8x16
   776  
   777  // GreaterEqual returns a mask whose elements indicate whether x >= y.
   778  //
   779  // Asm: VCMGE, CPU Feature: NEON
   780  func (x Int16x8) GreaterEqual(y Int16x8) Mask16x8
   781  
   782  // GreaterEqual returns a mask whose elements indicate whether x >= y.
   783  //
   784  // Asm: VCMGE, CPU Feature: NEON
   785  func (x Int32x4) GreaterEqual(y Int32x4) Mask32x4
   786  
   787  // GreaterEqual returns a mask whose elements indicate whether x >= y.
   788  //
   789  // Asm: VCMGE, CPU Feature: NEON
   790  func (x Int64x2) GreaterEqual(y Int64x2) Mask64x2
   791  
   792  // GreaterEqual returns a mask whose elements indicate whether x >= y.
   793  //
   794  // Asm: VCMHS, CPU Feature: NEON
   795  func (x Uint8x16) GreaterEqual(y Uint8x16) Mask8x16
   796  
   797  // GreaterEqual returns a mask whose elements indicate whether x >= y.
   798  //
   799  // Asm: VCMHS, CPU Feature: NEON
   800  func (x Uint16x8) GreaterEqual(y Uint16x8) Mask16x8
   801  
   802  // GreaterEqual returns a mask whose elements indicate whether x >= y.
   803  //
   804  // Asm: VCMHS, CPU Feature: NEON
   805  func (x Uint32x4) GreaterEqual(y Uint32x4) Mask32x4
   806  
   807  // GreaterEqual returns a mask whose elements indicate whether x >= y.
   808  //
   809  // Asm: VCMHS, CPU Feature: NEON
   810  func (x Uint64x2) GreaterEqual(y Uint64x2) Mask64x2
   811  
   812  /* InterleaveEven */
   813  
   814  // InterleaveEven interleaves even elements from x and y.
   815  // For x = [a0,a1,a2,a3] and y = [b0,b1,b2,b3], result = [a0,b0,a2,b2].
   816  //
   817  // Asm: VTRN1, CPU Feature: NEON
   818  func (x Int8x16) InterleaveEven(y Int8x16) Int8x16
   819  
   820  // InterleaveEven interleaves even elements from x and y.
   821  // For x = [a0,a1,a2,a3] and y = [b0,b1,b2,b3], result = [a0,b0,a2,b2].
   822  //
   823  // Asm: VTRN1, CPU Feature: NEON
   824  func (x Int16x8) InterleaveEven(y Int16x8) Int16x8
   825  
   826  // InterleaveEven interleaves even elements from x and y.
   827  // For x = [a0,a1,a2,a3] and y = [b0,b1,b2,b3], result = [a0,b0,a2,b2].
   828  //
   829  // Asm: VTRN1, CPU Feature: NEON
   830  func (x Int32x4) InterleaveEven(y Int32x4) Int32x4
   831  
   832  // InterleaveEven interleaves even elements from x and y.
   833  // For x = [a0,a1,a2,a3] and y = [b0,b1,b2,b3], result = [a0,b0,a2,b2].
   834  //
   835  // Asm: VTRN1, CPU Feature: NEON
   836  func (x Int64x2) InterleaveEven(y Int64x2) Int64x2
   837  
   838  // InterleaveEven interleaves even elements from x and y.
   839  // For x = [a0,a1,a2,a3] and y = [b0,b1,b2,b3], result = [a0,b0,a2,b2].
   840  //
   841  // Asm: VTRN1, CPU Feature: NEON
   842  func (x Uint8x16) InterleaveEven(y Uint8x16) Uint8x16
   843  
   844  // InterleaveEven interleaves even elements from x and y.
   845  // For x = [a0,a1,a2,a3] and y = [b0,b1,b2,b3], result = [a0,b0,a2,b2].
   846  //
   847  // Asm: VTRN1, CPU Feature: NEON
   848  func (x Uint16x8) InterleaveEven(y Uint16x8) Uint16x8
   849  
   850  // InterleaveEven interleaves even elements from x and y.
   851  // For x = [a0,a1,a2,a3] and y = [b0,b1,b2,b3], result = [a0,b0,a2,b2].
   852  //
   853  // Asm: VTRN1, CPU Feature: NEON
   854  func (x Uint32x4) InterleaveEven(y Uint32x4) Uint32x4
   855  
   856  // InterleaveEven interleaves even elements from x and y.
   857  // For x = [a0,a1,a2,a3] and y = [b0,b1,b2,b3], result = [a0,b0,a2,b2].
   858  //
   859  // Asm: VTRN1, CPU Feature: NEON
   860  func (x Uint64x2) InterleaveEven(y Uint64x2) Uint64x2
   861  
   862  /* InterleaveHi */
   863  
   864  // InterleaveHi interleaves the elements of the high halves of x and y.
   865  //
   866  // Asm: VZIP2, CPU Feature: NEON
   867  func (x Int8x16) InterleaveHi(y Int8x16) Int8x16
   868  
   869  // InterleaveHi interleaves the elements of the high halves of x and y.
   870  //
   871  // Asm: VZIP2, CPU Feature: NEON
   872  func (x Int16x8) InterleaveHi(y Int16x8) Int16x8
   873  
   874  // InterleaveHi interleaves the elements of the high halves of x and y.
   875  //
   876  // Asm: VZIP2, CPU Feature: NEON
   877  func (x Int32x4) InterleaveHi(y Int32x4) Int32x4
   878  
   879  // InterleaveHi interleaves the elements of the high halves of x and y.
   880  //
   881  // Asm: VZIP2, CPU Feature: NEON
   882  func (x Int64x2) InterleaveHi(y Int64x2) Int64x2
   883  
   884  // InterleaveHi interleaves the elements of the high halves of x and y.
   885  //
   886  // Asm: VZIP2, CPU Feature: NEON
   887  func (x Uint8x16) InterleaveHi(y Uint8x16) Uint8x16
   888  
   889  // InterleaveHi interleaves the elements of the high halves of x and y.
   890  //
   891  // Asm: VZIP2, CPU Feature: NEON
   892  func (x Uint16x8) InterleaveHi(y Uint16x8) Uint16x8
   893  
   894  // InterleaveHi interleaves the elements of the high halves of x and y.
   895  //
   896  // Asm: VZIP2, CPU Feature: NEON
   897  func (x Uint32x4) InterleaveHi(y Uint32x4) Uint32x4
   898  
   899  // InterleaveHi interleaves the elements of the high halves of x and y.
   900  //
   901  // Asm: VZIP2, CPU Feature: NEON
   902  func (x Uint64x2) InterleaveHi(y Uint64x2) Uint64x2
   903  
   904  /* InterleaveLo */
   905  
   906  // InterleaveLo interleaves the elements of the low halves of x and y.
   907  //
   908  // Asm: VZIP1, CPU Feature: NEON
   909  func (x Int8x16) InterleaveLo(y Int8x16) Int8x16
   910  
   911  // InterleaveLo interleaves the elements of the low halves of x and y.
   912  //
   913  // Asm: VZIP1, CPU Feature: NEON
   914  func (x Int16x8) InterleaveLo(y Int16x8) Int16x8
   915  
   916  // InterleaveLo interleaves the elements of the low halves of x and y.
   917  //
   918  // Asm: VZIP1, CPU Feature: NEON
   919  func (x Int32x4) InterleaveLo(y Int32x4) Int32x4
   920  
   921  // InterleaveLo interleaves the elements of the low halves of x and y.
   922  //
   923  // Asm: VZIP1, CPU Feature: NEON
   924  func (x Int64x2) InterleaveLo(y Int64x2) Int64x2
   925  
   926  // InterleaveLo interleaves the elements of the low halves of x and y.
   927  //
   928  // Asm: VZIP1, CPU Feature: NEON
   929  func (x Uint8x16) InterleaveLo(y Uint8x16) Uint8x16
   930  
   931  // InterleaveLo interleaves the elements of the low halves of x and y.
   932  //
   933  // Asm: VZIP1, CPU Feature: NEON
   934  func (x Uint16x8) InterleaveLo(y Uint16x8) Uint16x8
   935  
   936  // InterleaveLo interleaves the elements of the low halves of x and y.
   937  //
   938  // Asm: VZIP1, CPU Feature: NEON
   939  func (x Uint32x4) InterleaveLo(y Uint32x4) Uint32x4
   940  
   941  // InterleaveLo interleaves the elements of the low halves of x and y.
   942  //
   943  // Asm: VZIP1, CPU Feature: NEON
   944  func (x Uint64x2) InterleaveLo(y Uint64x2) Uint64x2
   945  
   946  /* InterleaveOdd */
   947  
   948  // InterleaveOdd interleaves odd elements from x and y.
   949  // For x = [a0,a1,a2,a3] and y = [b0,b1,b2,b3], result = [a1,b1,a3,b3].
   950  //
   951  // Asm: VTRN2, CPU Feature: NEON
   952  func (x Int8x16) InterleaveOdd(y Int8x16) Int8x16
   953  
   954  // InterleaveOdd interleaves odd elements from x and y.
   955  // For x = [a0,a1,a2,a3] and y = [b0,b1,b2,b3], result = [a1,b1,a3,b3].
   956  //
   957  // Asm: VTRN2, CPU Feature: NEON
   958  func (x Int16x8) InterleaveOdd(y Int16x8) Int16x8
   959  
   960  // InterleaveOdd interleaves odd elements from x and y.
   961  // For x = [a0,a1,a2,a3] and y = [b0,b1,b2,b3], result = [a1,b1,a3,b3].
   962  //
   963  // Asm: VTRN2, CPU Feature: NEON
   964  func (x Int32x4) InterleaveOdd(y Int32x4) Int32x4
   965  
   966  // InterleaveOdd interleaves odd elements from x and y.
   967  // For x = [a0,a1,a2,a3] and y = [b0,b1,b2,b3], result = [a1,b1,a3,b3].
   968  //
   969  // Asm: VTRN2, CPU Feature: NEON
   970  func (x Int64x2) InterleaveOdd(y Int64x2) Int64x2
   971  
   972  // InterleaveOdd interleaves odd elements from x and y.
   973  // For x = [a0,a1,a2,a3] and y = [b0,b1,b2,b3], result = [a1,b1,a3,b3].
   974  //
   975  // Asm: VTRN2, CPU Feature: NEON
   976  func (x Uint8x16) InterleaveOdd(y Uint8x16) Uint8x16
   977  
   978  // InterleaveOdd interleaves odd elements from x and y.
   979  // For x = [a0,a1,a2,a3] and y = [b0,b1,b2,b3], result = [a1,b1,a3,b3].
   980  //
   981  // Asm: VTRN2, CPU Feature: NEON
   982  func (x Uint16x8) InterleaveOdd(y Uint16x8) Uint16x8
   983  
   984  // InterleaveOdd interleaves odd elements from x and y.
   985  // For x = [a0,a1,a2,a3] and y = [b0,b1,b2,b3], result = [a1,b1,a3,b3].
   986  //
   987  // Asm: VTRN2, CPU Feature: NEON
   988  func (x Uint32x4) InterleaveOdd(y Uint32x4) Uint32x4
   989  
   990  // InterleaveOdd interleaves odd elements from x and y.
   991  // For x = [a0,a1,a2,a3] and y = [b0,b1,b2,b3], result = [a1,b1,a3,b3].
   992  //
   993  // Asm: VTRN2, CPU Feature: NEON
   994  func (x Uint64x2) InterleaveOdd(y Uint64x2) Uint64x2
   995  
   996  /* LeadingSignBits */
   997  
   998  // LeadingSignBits counts the leading sign bits of each element in x.
   999  //
  1000  // Asm: VCLS, CPU Feature: NEON
  1001  func (x Int8x16) LeadingSignBits() Int8x16
  1002  
  1003  // LeadingSignBits counts the leading sign bits of each element in x.
  1004  //
  1005  // Asm: VCLS, CPU Feature: NEON
  1006  func (x Int16x8) LeadingSignBits() Int16x8
  1007  
  1008  // LeadingSignBits counts the leading sign bits of each element in x.
  1009  //
  1010  // Asm: VCLS, CPU Feature: NEON
  1011  func (x Int32x4) LeadingSignBits() Int32x4
  1012  
  1013  // LeadingSignBits counts the leading sign bits of each element in x.
  1014  //
  1015  // Asm: VCLS, CPU Feature: NEON
  1016  func (x Uint8x16) LeadingSignBits() Uint8x16
  1017  
  1018  // LeadingSignBits counts the leading sign bits of each element in x.
  1019  //
  1020  // Asm: VCLS, CPU Feature: NEON
  1021  func (x Uint16x8) LeadingSignBits() Uint16x8
  1022  
  1023  // LeadingSignBits counts the leading sign bits of each element in x.
  1024  //
  1025  // Asm: VCLS, CPU Feature: NEON
  1026  func (x Uint32x4) LeadingSignBits() Uint32x4
  1027  
  1028  /* LeadingZeros */
  1029  
  1030  // LeadingZeros counts the leading zeros of each element in x.
  1031  //
  1032  // Asm: VCLZ, CPU Feature: NEON
  1033  func (x Int8x16) LeadingZeros() Int8x16
  1034  
  1035  // LeadingZeros counts the leading zeros of each element in x.
  1036  //
  1037  // Asm: VCLZ, CPU Feature: NEON
  1038  func (x Int16x8) LeadingZeros() Int16x8
  1039  
  1040  // LeadingZeros counts the leading zeros of each element in x.
  1041  //
  1042  // Asm: VCLZ, CPU Feature: NEON
  1043  func (x Int32x4) LeadingZeros() Int32x4
  1044  
  1045  // LeadingZeros counts the leading zeros of each element in x.
  1046  //
  1047  // Asm: VCLZ, CPU Feature: NEON
  1048  func (x Uint8x16) LeadingZeros() Uint8x16
  1049  
  1050  // LeadingZeros counts the leading zeros of each element in x.
  1051  //
  1052  // Asm: VCLZ, CPU Feature: NEON
  1053  func (x Uint16x8) LeadingZeros() Uint16x8
  1054  
  1055  // LeadingZeros counts the leading zeros of each element in x.
  1056  //
  1057  // Asm: VCLZ, CPU Feature: NEON
  1058  func (x Uint32x4) LeadingZeros() Uint32x4
  1059  
  1060  /* LookupOrZero */
  1061  
  1062  // LookupOrZero looks up table. If an index is out of range, the result is 0.
  1063  //
  1064  //	if 0 <= indices[i] && indices[i] < len(table) {
  1065  //	    result[i] = table[indices[i]]
  1066  //	} else {
  1067  //	    result[i] = 0
  1068  //	}
  1069  //
  1070  // Asm: VTBL, CPU Feature: NEON
  1071  func (table Int8x16) LookupOrZero(indices Int8x16) Int8x16
  1072  
  1073  // LookupOrZero looks up table. If an index is out of range, the result is 0.
  1074  //
  1075  //	if 0 <= indices[i] && indices[i] < len(table) {
  1076  //	    result[i] = table[indices[i]]
  1077  //	} else {
  1078  //	    result[i] = 0
  1079  //	}
  1080  //
  1081  // Asm: VTBL, CPU Feature: NEON
  1082  func (table Uint8x16) LookupOrZero(indices Uint8x16) Uint8x16
  1083  
  1084  /* Max */
  1085  
  1086  // Max computes the maximum of each pair of corresponding elements in x and y.
  1087  //
  1088  // Asm: VFMAX, CPU Feature: NEON
  1089  func (x Float32x4) Max(y Float32x4) Float32x4
  1090  
  1091  // Max computes the maximum of each pair of corresponding elements in x and y.
  1092  //
  1093  // Asm: VFMAX, CPU Feature: NEON
  1094  func (x Float64x2) Max(y Float64x2) Float64x2
  1095  
  1096  // Max computes the maximum of each pair of corresponding elements in x and y.
  1097  //
  1098  // Asm: VSMAX, CPU Feature: NEON
  1099  func (x Int8x16) Max(y Int8x16) Int8x16
  1100  
  1101  // Max computes the maximum of each pair of corresponding elements in x and y.
  1102  //
  1103  // Asm: VSMAX, CPU Feature: NEON
  1104  func (x Int16x8) Max(y Int16x8) Int16x8
  1105  
  1106  // Max computes the maximum of each pair of corresponding elements in x and y.
  1107  //
  1108  // Asm: VSMAX, CPU Feature: NEON
  1109  func (x Int32x4) Max(y Int32x4) Int32x4
  1110  
  1111  // Max computes the maximum of each pair of corresponding elements in x and y.
  1112  //
  1113  // Asm: VUMAX, CPU Feature: NEON
  1114  func (x Uint8x16) Max(y Uint8x16) Uint8x16
  1115  
  1116  // Max computes the maximum of each pair of corresponding elements in x and y.
  1117  //
  1118  // Asm: VUMAX, CPU Feature: NEON
  1119  func (x Uint16x8) Max(y Uint16x8) Uint16x8
  1120  
  1121  // Max computes the maximum of each pair of corresponding elements in x and y.
  1122  //
  1123  // Asm: VUMAX, CPU Feature: NEON
  1124  func (x Uint32x4) Max(y Uint32x4) Uint32x4
  1125  
  1126  /* Min */
  1127  
  1128  // Min computes the minimum of each pair of corresponding elements in x and y.
  1129  //
  1130  // Asm: VFMIN, CPU Feature: NEON
  1131  func (x Float32x4) Min(y Float32x4) Float32x4
  1132  
  1133  // Min computes the minimum of each pair of corresponding elements in x and y.
  1134  //
  1135  // Asm: VFMIN, CPU Feature: NEON
  1136  func (x Float64x2) Min(y Float64x2) Float64x2
  1137  
  1138  // Min computes the minimum of each pair of corresponding elements in x and y.
  1139  //
  1140  // Asm: VSMIN, CPU Feature: NEON
  1141  func (x Int8x16) Min(y Int8x16) Int8x16
  1142  
  1143  // Min computes the minimum of each pair of corresponding elements in x and y.
  1144  //
  1145  // Asm: VSMIN, CPU Feature: NEON
  1146  func (x Int16x8) Min(y Int16x8) Int16x8
  1147  
  1148  // Min computes the minimum of each pair of corresponding elements in x and y.
  1149  //
  1150  // Asm: VSMIN, CPU Feature: NEON
  1151  func (x Int32x4) Min(y Int32x4) Int32x4
  1152  
  1153  // Min computes the minimum of each pair of corresponding elements in x and y.
  1154  //
  1155  // Asm: VUMIN, CPU Feature: NEON
  1156  func (x Uint8x16) Min(y Uint8x16) Uint8x16
  1157  
  1158  // Min computes the minimum of each pair of corresponding elements in x and y.
  1159  //
  1160  // Asm: VUMIN, CPU Feature: NEON
  1161  func (x Uint16x8) Min(y Uint16x8) Uint16x8
  1162  
  1163  // Min computes the minimum of each pair of corresponding elements in x and y.
  1164  //
  1165  // Asm: VUMIN, CPU Feature: NEON
  1166  func (x Uint32x4) Min(y Uint32x4) Uint32x4
  1167  
  1168  /* Mul */
  1169  
  1170  // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ.
  1171  //
  1172  // Asm: VFMUL, CPU Feature: NEON
  1173  func (x Float32x4) Mul(y Float32x4) Float32x4
  1174  
  1175  // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ.
  1176  //
  1177  // Asm: VFMUL, CPU Feature: NEON
  1178  func (x Float64x2) Mul(y Float64x2) Float64x2
  1179  
  1180  // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ.
  1181  //
  1182  // Asm: VMUL, CPU Feature: NEON
  1183  func (x Int8x16) Mul(y Int8x16) Int8x16
  1184  
  1185  // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ.
  1186  //
  1187  // Asm: VMUL, CPU Feature: NEON
  1188  func (x Int16x8) Mul(y Int16x8) Int16x8
  1189  
  1190  // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ.
  1191  //
  1192  // Asm: VMUL, CPU Feature: NEON
  1193  func (x Int32x4) Mul(y Int32x4) Int32x4
  1194  
  1195  // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ.
  1196  //
  1197  // Asm: VMUL, CPU Feature: NEON
  1198  func (x Uint8x16) Mul(y Uint8x16) Uint8x16
  1199  
  1200  // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ.
  1201  //
  1202  // Asm: VMUL, CPU Feature: NEON
  1203  func (x Uint16x8) Mul(y Uint16x8) Uint16x8
  1204  
  1205  // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ.
  1206  //
  1207  // Asm: VMUL, CPU Feature: NEON
  1208  func (x Uint32x4) Mul(y Uint32x4) Uint32x4
  1209  
  1210  /* MulAdd */
  1211  
  1212  // MulAdd performs a fused (x * y) + z.
  1213  //
  1214  // Asm: VFMLA, CPU Feature: NEON
  1215  func (x Float32x4) MulAdd(y Float32x4, z Float32x4) Float32x4
  1216  
  1217  // MulAdd performs a fused (x * y) + z.
  1218  //
  1219  // Asm: VFMLA, CPU Feature: NEON
  1220  func (x Float64x2) MulAdd(y Float64x2, z Float64x2) Float64x2
  1221  
  1222  // MulAdd computes (x * y) + z.
  1223  //
  1224  // Asm: VMLA, CPU Feature: NEON
  1225  func (x Int8x16) MulAdd(y Int8x16, z Int8x16) Int8x16
  1226  
  1227  // MulAdd computes (x * y) + z.
  1228  //
  1229  // Asm: VMLA, CPU Feature: NEON
  1230  func (x Int16x8) MulAdd(y Int16x8, z Int16x8) Int16x8
  1231  
  1232  // MulAdd computes (x * y) + z.
  1233  //
  1234  // Asm: VMLA, CPU Feature: NEON
  1235  func (x Int32x4) MulAdd(y Int32x4, z Int32x4) Int32x4
  1236  
  1237  // MulAdd computes (x * y) + z.
  1238  //
  1239  // Asm: VMLA, CPU Feature: NEON
  1240  func (x Uint8x16) MulAdd(y Uint8x16, z Uint8x16) Uint8x16
  1241  
  1242  // MulAdd computes (x * y) + z.
  1243  //
  1244  // Asm: VMLA, CPU Feature: NEON
  1245  func (x Uint16x8) MulAdd(y Uint16x8, z Uint16x8) Uint16x8
  1246  
  1247  // MulAdd computes (x * y) + z.
  1248  //
  1249  // Asm: VMLA, CPU Feature: NEON
  1250  func (x Uint32x4) MulAdd(y Uint32x4, z Uint32x4) Uint32x4
  1251  
  1252  /* MulWidenLo */
  1253  
  1254  // MulWidenLo multiplies corresponding low-indexed elements and produces a result with double the element width.
  1255  // For the high-indexed elements, use HiToLo:
  1256  //
  1257  //	x.HiToLo().MulWidenLo(y.HiToLo())
  1258  //
  1259  // Asm: VSMULL, CPU Feature: NEON
  1260  func (x Int8x16) MulWidenLo(y Int8x16) Int16x8
  1261  
  1262  // MulWidenLo multiplies corresponding low-indexed elements and produces a result with double the element width.
  1263  // For the high-indexed elements, use HiToLo:
  1264  //
  1265  //	x.HiToLo().MulWidenLo(y.HiToLo())
  1266  //
  1267  // Asm: VSMULL, CPU Feature: NEON
  1268  func (x Int16x8) MulWidenLo(y Int16x8) Int32x4
  1269  
  1270  // MulWidenLo multiplies corresponding low-indexed elements and produces a result with double the element width.
  1271  // For the high-indexed elements, use HiToLo:
  1272  //
  1273  //	x.HiToLo().MulWidenLo(y.HiToLo())
  1274  //
  1275  // Asm: VSMULL, CPU Feature: NEON
  1276  func (x Int32x4) MulWidenLo(y Int32x4) Int64x2
  1277  
  1278  // MulWidenLo multiplies corresponding low-indexed elements and produces a result with double the element width.
  1279  // For the high-indexed elements, use HiToLo:
  1280  //
  1281  //	x.HiToLo().MulWidenLo(y.HiToLo())
  1282  //
  1283  // Asm: VUMULL, CPU Feature: NEON
  1284  func (x Uint8x16) MulWidenLo(y Uint8x16) Uint16x8
  1285  
  1286  // MulWidenLo multiplies corresponding low-indexed elements and produces a result with double the element width.
  1287  // For the high-indexed elements, use HiToLo:
  1288  //
  1289  //	x.HiToLo().MulWidenLo(y.HiToLo())
  1290  //
  1291  // Asm: VUMULL, CPU Feature: NEON
  1292  func (x Uint16x8) MulWidenLo(y Uint16x8) Uint32x4
  1293  
  1294  // MulWidenLo multiplies corresponding low-indexed elements and produces a result with double the element width.
  1295  // For the high-indexed elements, use HiToLo:
  1296  //
  1297  //	x.HiToLo().MulWidenLo(y.HiToLo())
  1298  //
  1299  // Asm: VUMULL, CPU Feature: NEON
  1300  func (x Uint32x4) MulWidenLo(y Uint32x4) Uint64x2
  1301  
  1302  /* Neg */
  1303  
  1304  // Neg returns the elementwise negation of x.
  1305  //
  1306  // Asm: VFNEG, CPU Feature: NEON
  1307  func (x Float32x4) Neg() Float32x4
  1308  
  1309  // Neg returns the elementwise negation of x.
  1310  //
  1311  // Asm: VFNEG, CPU Feature: NEON
  1312  func (x Float64x2) Neg() Float64x2
  1313  
  1314  // Neg returns the elementwise negation of x.
  1315  //
  1316  // Asm: VNEG, CPU Feature: NEON
  1317  func (x Int8x16) Neg() Int8x16
  1318  
  1319  // Neg returns the elementwise negation of x.
  1320  //
  1321  // Asm: VNEG, CPU Feature: NEON
  1322  func (x Int16x8) Neg() Int16x8
  1323  
  1324  // Neg returns the elementwise negation of x.
  1325  //
  1326  // Asm: VNEG, CPU Feature: NEON
  1327  func (x Int32x4) Neg() Int32x4
  1328  
  1329  // Neg returns the elementwise negation of x.
  1330  //
  1331  // Asm: VNEG, CPU Feature: NEON
  1332  func (x Int64x2) Neg() Int64x2
  1333  
  1334  /* Not */
  1335  
  1336  // Not returns the bitwise complement of x.
  1337  //
  1338  // Asm: VNOT, CPU Feature: NEON
  1339  func (x Int8x16) Not() Int8x16
  1340  
  1341  // Not returns the bitwise complement of x.
  1342  //
  1343  // Asm: VNOT, CPU Feature: NEON
  1344  func (x Int16x8) Not() Int16x8
  1345  
  1346  // Not returns the bitwise complement of x.
  1347  //
  1348  // Asm: VNOT, CPU Feature: NEON
  1349  func (x Int32x4) Not() Int32x4
  1350  
  1351  // Not returns the bitwise complement of x.
  1352  //
  1353  // Asm: VNOT, CPU Feature: NEON
  1354  func (x Int64x2) Not() Int64x2
  1355  
  1356  // Not returns the bitwise complement of x.
  1357  //
  1358  // Asm: VNOT, CPU Feature: NEON
  1359  func (x Uint8x16) Not() Uint8x16
  1360  
  1361  // Not returns the bitwise complement of x.
  1362  //
  1363  // Asm: VNOT, CPU Feature: NEON
  1364  func (x Uint16x8) Not() Uint16x8
  1365  
  1366  // Not returns the bitwise complement of x.
  1367  //
  1368  // Asm: VNOT, CPU Feature: NEON
  1369  func (x Uint32x4) Not() Uint32x4
  1370  
  1371  // Not returns the bitwise complement of x.
  1372  //
  1373  // Asm: VNOT, CPU Feature: NEON
  1374  func (x Uint64x2) Not() Uint64x2
  1375  
  1376  /* OnesCount */
  1377  
  1378  // OnesCount counts the number of set bits in each element.
  1379  //
  1380  // Asm: VCNT, CPU Feature: NEON
  1381  func (x Int8x16) OnesCount() Int8x16
  1382  
  1383  // OnesCount counts the number of set bits in each element.
  1384  //
  1385  // Asm: VCNT, CPU Feature: NEON
  1386  func (x Uint8x16) OnesCount() Uint8x16
  1387  
  1388  /* Or */
  1389  
  1390  // Or performs a bitwise x | y.
  1391  //
  1392  // Asm: VORR, CPU Feature: NEON
  1393  func (x Int8x16) Or(y Int8x16) Int8x16
  1394  
  1395  // Or performs a bitwise x | y.
  1396  //
  1397  // Asm: VORR, CPU Feature: NEON
  1398  func (x Int16x8) Or(y Int16x8) Int16x8
  1399  
  1400  // Or performs a bitwise x | y.
  1401  //
  1402  // Asm: VORR, CPU Feature: NEON
  1403  func (x Int32x4) Or(y Int32x4) Int32x4
  1404  
  1405  // Or performs a bitwise x | y.
  1406  //
  1407  // Asm: VORR, CPU Feature: NEON
  1408  func (x Int64x2) Or(y Int64x2) Int64x2
  1409  
  1410  // Or performs a bitwise x | y.
  1411  //
  1412  // Asm: VORR, CPU Feature: NEON
  1413  func (x Uint8x16) Or(y Uint8x16) Uint8x16
  1414  
  1415  // Or performs a bitwise x | y.
  1416  //
  1417  // Asm: VORR, CPU Feature: NEON
  1418  func (x Uint16x8) Or(y Uint16x8) Uint16x8
  1419  
  1420  // Or performs a bitwise x | y.
  1421  //
  1422  // Asm: VORR, CPU Feature: NEON
  1423  func (x Uint32x4) Or(y Uint32x4) Uint32x4
  1424  
  1425  // Or performs a bitwise x | y.
  1426  //
  1427  // Asm: VORR, CPU Feature: NEON
  1428  func (x Uint64x2) Or(y Uint64x2) Uint64x2
  1429  
  1430  /* OrNot */
  1431  
  1432  // OrNot performs a bitwise x | ^y.
  1433  //
  1434  // Asm: VORN, CPU Feature: NEON
  1435  func (x Int8x16) OrNot(y Int8x16) Int8x16
  1436  
  1437  // OrNot performs a bitwise x | ^y.
  1438  //
  1439  // Asm: VORN, CPU Feature: NEON
  1440  func (x Int16x8) OrNot(y Int16x8) Int16x8
  1441  
  1442  // OrNot performs a bitwise x | ^y.
  1443  //
  1444  // Asm: VORN, CPU Feature: NEON
  1445  func (x Int32x4) OrNot(y Int32x4) Int32x4
  1446  
  1447  // OrNot performs a bitwise x | ^y.
  1448  //
  1449  // Asm: VORN, CPU Feature: NEON
  1450  func (x Int64x2) OrNot(y Int64x2) Int64x2
  1451  
  1452  // OrNot performs a bitwise x | ^y.
  1453  //
  1454  // Asm: VORN, CPU Feature: NEON
  1455  func (x Uint8x16) OrNot(y Uint8x16) Uint8x16
  1456  
  1457  // OrNot performs a bitwise x | ^y.
  1458  //
  1459  // Asm: VORN, CPU Feature: NEON
  1460  func (x Uint16x8) OrNot(y Uint16x8) Uint16x8
  1461  
  1462  // OrNot performs a bitwise x | ^y.
  1463  //
  1464  // Asm: VORN, CPU Feature: NEON
  1465  func (x Uint32x4) OrNot(y Uint32x4) Uint32x4
  1466  
  1467  // OrNot performs a bitwise x | ^y.
  1468  //
  1469  // Asm: VORN, CPU Feature: NEON
  1470  func (x Uint64x2) OrNot(y Uint64x2) Uint64x2
  1471  
  1472  /* Round */
  1473  
  1474  // Round rounds elements to the nearest integer, rounding ties to even.
  1475  //
  1476  // Asm: VFRINTN, CPU Feature: NEON
  1477  func (x Float32x4) Round() Float32x4
  1478  
  1479  // Round rounds elements to the nearest integer, rounding ties to even.
  1480  //
  1481  // Asm: VFRINTN, CPU Feature: NEON
  1482  func (x Float64x2) Round() Float64x2
  1483  
  1484  /* SaturateToInt8 */
  1485  
  1486  // SaturateToInt8 converts element values to int8 with signed saturation.
  1487  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  1488  //
  1489  // Asm: VSQXTN, CPU Feature: NEON
  1490  func (x Int16x8) SaturateToInt8() Int8x16
  1491  
  1492  /* SaturateToInt16 */
  1493  
  1494  // SaturateToInt16 converts element values to int16 with signed saturation.
  1495  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  1496  //
  1497  // Asm: VSQXTN, CPU Feature: NEON
  1498  func (x Int32x4) SaturateToInt16() Int16x8
  1499  
  1500  /* SaturateToInt32 */
  1501  
  1502  // SaturateToInt32 converts element values to int32 with signed saturation.
  1503  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  1504  //
  1505  // Asm: VSQXTN, CPU Feature: NEON
  1506  func (x Int64x2) SaturateToInt32() Int32x4
  1507  
  1508  /* SaturateToUint8 */
  1509  
  1510  // SaturateToUint8 converts element values to uint8 with unsigned saturation.
  1511  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  1512  //
  1513  // Asm: VSQXTUN, CPU Feature: NEON
  1514  func (x Int16x8) SaturateToUint8() Uint8x16
  1515  
  1516  // SaturateToUint8 converts element values to uint8 with unsigned saturation.
  1517  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  1518  //
  1519  // Asm: VUQXTN, CPU Feature: NEON
  1520  func (x Uint16x8) SaturateToUint8() Uint8x16
  1521  
  1522  /* SaturateToUint16 */
  1523  
  1524  // SaturateToUint16 converts element values to uint16 with unsigned saturation.
  1525  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  1526  //
  1527  // Asm: VSQXTUN, CPU Feature: NEON
  1528  func (x Int32x4) SaturateToUint16() Uint16x8
  1529  
  1530  // SaturateToUint16 converts element values to uint16 with unsigned saturation.
  1531  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  1532  //
  1533  // Asm: VUQXTN, CPU Feature: NEON
  1534  func (x Uint32x4) SaturateToUint16() Uint16x8
  1535  
  1536  /* SaturateToUint32 */
  1537  
  1538  // SaturateToUint32 converts element values to uint32 with unsigned saturation.
  1539  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  1540  //
  1541  // Asm: VSQXTUN, CPU Feature: NEON
  1542  func (x Int64x2) SaturateToUint32() Uint32x4
  1543  
  1544  // SaturateToUint32 converts element values to uint32 with unsigned saturation.
  1545  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  1546  //
  1547  // Asm: VUQXTN, CPU Feature: NEON
  1548  func (x Uint64x2) SaturateToUint32() Uint32x4
  1549  
  1550  /* SetElem */
  1551  
  1552  // SetElem returns x with the index'th element set to y.
  1553  //
  1554  // A non-constant value of index may result in significantly worse performance for this operation.
  1555  //
  1556  // Asm: VMOV, CPU Feature: NEON
  1557  func (x Int8x16) SetElem(index uint8, y int8) Int8x16
  1558  
  1559  // SetElem returns x with the index'th element set to y.
  1560  //
  1561  // A non-constant value of index may result in significantly worse performance for this operation.
  1562  //
  1563  // Asm: VMOV, CPU Feature: NEON
  1564  func (x Int16x8) SetElem(index uint8, y int16) Int16x8
  1565  
  1566  // SetElem returns x with the index'th element set to y.
  1567  //
  1568  // A non-constant value of index may result in significantly worse performance for this operation.
  1569  //
  1570  // Asm: VMOV, CPU Feature: NEON
  1571  func (x Int32x4) SetElem(index uint8, y int32) Int32x4
  1572  
  1573  // SetElem returns x with the index'th element set to y.
  1574  //
  1575  // A non-constant value of index may result in significantly worse performance for this operation.
  1576  //
  1577  // Asm: VMOV, CPU Feature: NEON
  1578  func (x Int64x2) SetElem(index uint8, y int64) Int64x2
  1579  
  1580  // SetElem returns x with the index'th element set to y.
  1581  //
  1582  // A non-constant value of index may result in significantly worse performance for this operation.
  1583  //
  1584  // Asm: VMOV, CPU Feature: NEON
  1585  func (x Uint8x16) SetElem(index uint8, y uint8) Uint8x16
  1586  
  1587  // SetElem returns x with the index'th element set to y.
  1588  //
  1589  // A non-constant value of index may result in significantly worse performance for this operation.
  1590  //
  1591  // Asm: VMOV, CPU Feature: NEON
  1592  func (x Uint16x8) SetElem(index uint8, y uint16) Uint16x8
  1593  
  1594  // SetElem returns x with the index'th element set to y.
  1595  //
  1596  // A non-constant value of index may result in significantly worse performance for this operation.
  1597  //
  1598  // Asm: VMOV, CPU Feature: NEON
  1599  func (x Uint32x4) SetElem(index uint8, y uint32) Uint32x4
  1600  
  1601  // SetElem returns x with the index'th element set to y.
  1602  //
  1603  // A non-constant value of index may result in significantly worse performance for this operation.
  1604  //
  1605  // Asm: VMOV, CPU Feature: NEON
  1606  func (x Uint64x2) SetElem(index uint8, y uint64) Uint64x2
  1607  
  1608  // SetElem returns x with the index'th element set to y.
  1609  //
  1610  // index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  1611  // Asm: VMOV, CPU Feature: NEON
  1612  func (x Float32x4) SetElem(index uint8, v float32) Float32x4
  1613  
  1614  // SetElem returns x with the index'th element set to y.
  1615  //
  1616  // index results in better performance when it's a constant, a non-constant value will be translated into a jump table.
  1617  // Asm: VMOV, CPU Feature: NEON
  1618  func (x Float64x2) SetElem(index uint8, v float64) Float64x2
  1619  
  1620  /* Shift */
  1621  
  1622  // Shift shifts each element in x by the signed value of the least significant byte
  1623  // of y's corresponding element: positive values shift left, negative values shift right.
  1624  //
  1625  // Asm: VSSHL, CPU Feature: NEON
  1626  func (x Int8x16) Shift(y Int8x16) Int8x16
  1627  
  1628  // Shift shifts each element in x by the signed value of the least significant byte
  1629  // of y's corresponding element: positive values shift left, negative values shift right.
  1630  //
  1631  // Asm: VSSHL, CPU Feature: NEON
  1632  func (x Int16x8) Shift(y Int16x8) Int16x8
  1633  
  1634  // Shift shifts each element in x by the signed value of the least significant byte
  1635  // of y's corresponding element: positive values shift left, negative values shift right.
  1636  //
  1637  // Asm: VSSHL, CPU Feature: NEON
  1638  func (x Int32x4) Shift(y Int32x4) Int32x4
  1639  
  1640  // Shift shifts each element in x by the signed value of the least significant byte
  1641  // of y's corresponding element: positive values shift left, negative values shift right.
  1642  //
  1643  // Asm: VSSHL, CPU Feature: NEON
  1644  func (x Int64x2) Shift(y Int64x2) Int64x2
  1645  
  1646  // Shift shifts each element in x by the signed value of the least significant byte
  1647  // of y's corresponding element: positive values shift left, negative values shift right.
  1648  //
  1649  // Asm: VUSHL, CPU Feature: NEON
  1650  func (x Uint8x16) Shift(y Int8x16) Uint8x16
  1651  
  1652  // Shift shifts each element in x by the signed value of the least significant byte
  1653  // of y's corresponding element: positive values shift left, negative values shift right.
  1654  //
  1655  // Asm: VUSHL, CPU Feature: NEON
  1656  func (x Uint16x8) Shift(y Int16x8) Uint16x8
  1657  
  1658  // Shift shifts each element in x by the signed value of the least significant byte
  1659  // of y's corresponding element: positive values shift left, negative values shift right.
  1660  //
  1661  // Asm: VUSHL, CPU Feature: NEON
  1662  func (x Uint32x4) Shift(y Int32x4) Uint32x4
  1663  
  1664  // Shift shifts each element in x by the signed value of the least significant byte
  1665  // of y's corresponding element: positive values shift left, negative values shift right.
  1666  //
  1667  // Asm: VUSHL, CPU Feature: NEON
  1668  func (x Uint64x2) Shift(y Int64x2) Uint64x2
  1669  
  1670  /* ShiftAllLeft */
  1671  
  1672  // ShiftAllLeft shifts each element of x left by y bits.
  1673  // If y is greater than the element width, the result is 0.
  1674  //
  1675  // Asm: VSSHL, CPU Feature: NEON
  1676  func (x Int8x16) ShiftAllLeft(y uint64) Int8x16
  1677  
  1678  // ShiftAllLeft shifts each element of x left by y bits.
  1679  // If y is greater than the element width, the result is 0.
  1680  //
  1681  // Asm: VSSHL, CPU Feature: NEON
  1682  func (x Int16x8) ShiftAllLeft(y uint64) Int16x8
  1683  
  1684  // ShiftAllLeft shifts each element of x left by y bits.
  1685  // If y is greater than the element width, the result is 0.
  1686  //
  1687  // Asm: VSSHL, CPU Feature: NEON
  1688  func (x Int32x4) ShiftAllLeft(y uint64) Int32x4
  1689  
  1690  // ShiftAllLeft shifts each element of x left by y bits.
  1691  // If y is greater than the element width, the result is 0.
  1692  //
  1693  // Asm: VSSHL, CPU Feature: NEON
  1694  func (x Int64x2) ShiftAllLeft(y uint64) Int64x2
  1695  
  1696  // ShiftAllLeft shifts each element of x left by y bits.
  1697  // If y is greater than the element width, the result is 0.
  1698  //
  1699  // Asm: VUSHL, CPU Feature: NEON
  1700  func (x Uint8x16) ShiftAllLeft(y uint64) Uint8x16
  1701  
  1702  // ShiftAllLeft shifts each element of x left by y bits.
  1703  // If y is greater than the element width, the result is 0.
  1704  //
  1705  // Asm: VUSHL, CPU Feature: NEON
  1706  func (x Uint16x8) ShiftAllLeft(y uint64) Uint16x8
  1707  
  1708  // ShiftAllLeft shifts each element of x left by y bits.
  1709  // If y is greater than the element width, the result is 0.
  1710  //
  1711  // Asm: VUSHL, CPU Feature: NEON
  1712  func (x Uint32x4) ShiftAllLeft(y uint64) Uint32x4
  1713  
  1714  // ShiftAllLeft shifts each element of x left by y bits.
  1715  // If y is greater than the element width, the result is 0.
  1716  //
  1717  // Asm: VUSHL, CPU Feature: NEON
  1718  func (x Uint64x2) ShiftAllLeft(y uint64) Uint64x2
  1719  
  1720  /* ShiftAllRight */
  1721  
  1722  // ShiftAllRight arithmetically shifts each element of x right by y bits.
  1723  // If y is greater than the element width, the result is 0 or -1.
  1724  //
  1725  // Asm: VSSHL, CPU Feature: NEON
  1726  func (x Int8x16) ShiftAllRight(y uint64) Int8x16
  1727  
  1728  // ShiftAllRight arithmetically shifts each element of x right by y bits.
  1729  // If y is greater than the element width, the result is 0 or -1.
  1730  //
  1731  // Asm: VSSHL, CPU Feature: NEON
  1732  func (x Int16x8) ShiftAllRight(y uint64) Int16x8
  1733  
  1734  // ShiftAllRight arithmetically shifts each element of x right by y bits.
  1735  // If y is greater than the element width, the result is 0 or -1.
  1736  //
  1737  // Asm: VSSHL, CPU Feature: NEON
  1738  func (x Int32x4) ShiftAllRight(y uint64) Int32x4
  1739  
  1740  // ShiftAllRight arithmetically shifts each element of x right by y bits.
  1741  // If y is greater than the element width, the result is 0 or -1.
  1742  //
  1743  // Asm: VSSHL, CPU Feature: NEON
  1744  func (x Int64x2) ShiftAllRight(y uint64) Int64x2
  1745  
  1746  // ShiftAllRight logically shifts each element of x right by y bits.
  1747  // If y is greater than the element width, the result is 0.
  1748  //
  1749  // Asm: VUSHL, CPU Feature: NEON
  1750  func (x Uint8x16) ShiftAllRight(y uint64) Uint8x16
  1751  
  1752  // ShiftAllRight logically shifts each element of x right by y bits.
  1753  // If y is greater than the element width, the result is 0.
  1754  //
  1755  // Asm: VUSHL, CPU Feature: NEON
  1756  func (x Uint16x8) ShiftAllRight(y uint64) Uint16x8
  1757  
  1758  // ShiftAllRight logically shifts each element of x right by y bits.
  1759  // If y is greater than the element width, the result is 0.
  1760  //
  1761  // Asm: VUSHL, CPU Feature: NEON
  1762  func (x Uint32x4) ShiftAllRight(y uint64) Uint32x4
  1763  
  1764  // ShiftAllRight logically shifts each element of x right by y bits.
  1765  // If y is greater than the element width, the result is 0.
  1766  //
  1767  // Asm: VUSHL, CPU Feature: NEON
  1768  func (x Uint64x2) ShiftAllRight(y uint64) Uint64x2
  1769  
  1770  /* ShiftSaturated */
  1771  
  1772  // ShiftSaturated shifts each element in x by the signed value of the least significant byte
  1773  // of y's corresponding element (positive shifts left, negative shifts right).
  1774  // Results are saturated to the signed range on overflow.
  1775  //
  1776  // Asm: VSQSHL, CPU Feature: NEON
  1777  func (x Int8x16) ShiftSaturated(y Int8x16) Int8x16
  1778  
  1779  // ShiftSaturated shifts each element in x by the signed value of the least significant byte
  1780  // of y's corresponding element (positive shifts left, negative shifts right).
  1781  // Results are saturated to the signed range on overflow.
  1782  //
  1783  // Asm: VSQSHL, CPU Feature: NEON
  1784  func (x Int16x8) ShiftSaturated(y Int16x8) Int16x8
  1785  
  1786  // ShiftSaturated shifts each element in x by the signed value of the least significant byte
  1787  // of y's corresponding element (positive shifts left, negative shifts right).
  1788  // Results are saturated to the signed range on overflow.
  1789  //
  1790  // Asm: VSQSHL, CPU Feature: NEON
  1791  func (x Int32x4) ShiftSaturated(y Int32x4) Int32x4
  1792  
  1793  // ShiftSaturated shifts each element in x by the signed value of the least significant byte
  1794  // of y's corresponding element (positive shifts left, negative shifts right).
  1795  // Results are saturated to the signed range on overflow.
  1796  //
  1797  // Asm: VSQSHL, CPU Feature: NEON
  1798  func (x Int64x2) ShiftSaturated(y Int64x2) Int64x2
  1799  
  1800  // ShiftSaturated shifts each element in x by the signed value of the least significant byte
  1801  // of y's corresponding element (positive shifts left, negative shifts right).
  1802  // Results are saturated to the unsigned range on overflow.
  1803  //
  1804  // Asm: VUQSHL, CPU Feature: NEON
  1805  func (x Uint8x16) ShiftSaturated(y Int8x16) Uint8x16
  1806  
  1807  // ShiftSaturated shifts each element in x by the signed value of the least significant byte
  1808  // of y's corresponding element (positive shifts left, negative shifts right).
  1809  // Results are saturated to the unsigned range on overflow.
  1810  //
  1811  // Asm: VUQSHL, CPU Feature: NEON
  1812  func (x Uint16x8) ShiftSaturated(y Int16x8) Uint16x8
  1813  
  1814  // ShiftSaturated shifts each element in x by the signed value of the least significant byte
  1815  // of y's corresponding element (positive shifts left, negative shifts right).
  1816  // Results are saturated to the unsigned range on overflow.
  1817  //
  1818  // Asm: VUQSHL, CPU Feature: NEON
  1819  func (x Uint32x4) ShiftSaturated(y Int32x4) Uint32x4
  1820  
  1821  // ShiftSaturated shifts each element in x by the signed value of the least significant byte
  1822  // of y's corresponding element (positive shifts left, negative shifts right).
  1823  // Results are saturated to the unsigned range on overflow.
  1824  //
  1825  // Asm: VUQSHL, CPU Feature: NEON
  1826  func (x Uint64x2) ShiftSaturated(y Int64x2) Uint64x2
  1827  
  1828  /* Sqrt */
  1829  
  1830  // Sqrt computes the square root of each element.
  1831  //
  1832  // Asm: VFSQRT, CPU Feature: NEON
  1833  func (x Float32x4) Sqrt() Float32x4
  1834  
  1835  // Sqrt computes the square root of each element.
  1836  //
  1837  // Asm: VFSQRT, CPU Feature: NEON
  1838  func (x Float64x2) Sqrt() Float64x2
  1839  
  1840  /* Sub */
  1841  
  1842  // Sub subtracts corresponding elements of two vectors.
  1843  //
  1844  // Asm: VFSUB, CPU Feature: NEON
  1845  func (x Float32x4) Sub(y Float32x4) Float32x4
  1846  
  1847  // Sub subtracts corresponding elements of two vectors.
  1848  //
  1849  // Asm: VFSUB, CPU Feature: NEON
  1850  func (x Float64x2) Sub(y Float64x2) Float64x2
  1851  
  1852  // Sub subtracts corresponding elements of two vectors.
  1853  //
  1854  // Asm: VSUB, CPU Feature: NEON
  1855  func (x Int8x16) Sub(y Int8x16) Int8x16
  1856  
  1857  // Sub subtracts corresponding elements of two vectors.
  1858  //
  1859  // Asm: VSUB, CPU Feature: NEON
  1860  func (x Int16x8) Sub(y Int16x8) Int16x8
  1861  
  1862  // Sub subtracts corresponding elements of two vectors.
  1863  //
  1864  // Asm: VSUB, CPU Feature: NEON
  1865  func (x Int32x4) Sub(y Int32x4) Int32x4
  1866  
  1867  // Sub subtracts corresponding elements of two vectors.
  1868  //
  1869  // Asm: VSUB, CPU Feature: NEON
  1870  func (x Int64x2) Sub(y Int64x2) Int64x2
  1871  
  1872  // Sub subtracts corresponding elements of two vectors.
  1873  //
  1874  // Asm: VSUB, CPU Feature: NEON
  1875  func (x Uint8x16) Sub(y Uint8x16) Uint8x16
  1876  
  1877  // Sub subtracts corresponding elements of two vectors.
  1878  //
  1879  // Asm: VSUB, CPU Feature: NEON
  1880  func (x Uint16x8) Sub(y Uint16x8) Uint16x8
  1881  
  1882  // Sub subtracts corresponding elements of two vectors.
  1883  //
  1884  // Asm: VSUB, CPU Feature: NEON
  1885  func (x Uint32x4) Sub(y Uint32x4) Uint32x4
  1886  
  1887  // Sub subtracts corresponding elements of two vectors.
  1888  //
  1889  // Asm: VSUB, CPU Feature: NEON
  1890  func (x Uint64x2) Sub(y Uint64x2) Uint64x2
  1891  
  1892  /* SubSaturated */
  1893  
  1894  // SubSaturated subtracts corresponding elements of two vectors with saturation.
  1895  //
  1896  // Asm: VSQSUB, CPU Feature: NEON
  1897  func (x Int8x16) SubSaturated(y Int8x16) Int8x16
  1898  
  1899  // SubSaturated subtracts corresponding elements of two vectors with saturation.
  1900  //
  1901  // Asm: VSQSUB, CPU Feature: NEON
  1902  func (x Int16x8) SubSaturated(y Int16x8) Int16x8
  1903  
  1904  // SubSaturated subtracts corresponding elements of two vectors with saturation.
  1905  //
  1906  // Asm: VSQSUB, CPU Feature: NEON
  1907  func (x Int32x4) SubSaturated(y Int32x4) Int32x4
  1908  
  1909  // SubSaturated subtracts corresponding elements of two vectors with saturation.
  1910  //
  1911  // Asm: VSQSUB, CPU Feature: NEON
  1912  func (x Int64x2) SubSaturated(y Int64x2) Int64x2
  1913  
  1914  // SubSaturated subtracts corresponding elements of two vectors with saturation.
  1915  //
  1916  // Asm: VUQSUB, CPU Feature: NEON
  1917  func (x Uint8x16) SubSaturated(y Uint8x16) Uint8x16
  1918  
  1919  // SubSaturated subtracts corresponding elements of two vectors with saturation.
  1920  //
  1921  // Asm: VUQSUB, CPU Feature: NEON
  1922  func (x Uint16x8) SubSaturated(y Uint16x8) Uint16x8
  1923  
  1924  // SubSaturated subtracts corresponding elements of two vectors with saturation.
  1925  //
  1926  // Asm: VUQSUB, CPU Feature: NEON
  1927  func (x Uint32x4) SubSaturated(y Uint32x4) Uint32x4
  1928  
  1929  // SubSaturated subtracts corresponding elements of two vectors with saturation.
  1930  //
  1931  // Asm: VUQSUB, CPU Feature: NEON
  1932  func (x Uint64x2) SubSaturated(y Uint64x2) Uint64x2
  1933  
  1934  /* Trunc */
  1935  
  1936  // Trunc truncates elements towards zero.
  1937  //
  1938  // Asm: VFRINTZ, CPU Feature: NEON
  1939  func (x Float32x4) Trunc() Float32x4
  1940  
  1941  // Trunc truncates elements towards zero.
  1942  //
  1943  // Asm: VFRINTZ, CPU Feature: NEON
  1944  func (x Float64x2) Trunc() Float64x2
  1945  
  1946  /* TruncToInt8 */
  1947  
  1948  // TruncToInt8 truncates element values to int8.
  1949  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  1950  //
  1951  // Asm: VXTN, CPU Feature: NEON
  1952  func (x Int16x8) TruncToInt8() Int8x16
  1953  
  1954  /* TruncToInt16 */
  1955  
  1956  // TruncToInt16 truncates element values to int16.
  1957  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  1958  //
  1959  // Asm: VXTN, CPU Feature: NEON
  1960  func (x Int32x4) TruncToInt16() Int16x8
  1961  
  1962  /* TruncToInt32 */
  1963  
  1964  // TruncToInt32 truncates element values to int32.
  1965  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  1966  //
  1967  // Asm: VXTN, CPU Feature: NEON
  1968  func (x Int64x2) TruncToInt32() Int32x4
  1969  
  1970  /* TruncToUint8 */
  1971  
  1972  // TruncToUint8 truncates element values to uint8.
  1973  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  1974  //
  1975  // Asm: VXTN, CPU Feature: NEON
  1976  func (x Uint16x8) TruncToUint8() Uint8x16
  1977  
  1978  /* TruncToUint16 */
  1979  
  1980  // TruncToUint16 truncates element values to uint16.
  1981  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  1982  //
  1983  // Asm: VXTN, CPU Feature: NEON
  1984  func (x Uint32x4) TruncToUint16() Uint16x8
  1985  
  1986  /* TruncToUint32 */
  1987  
  1988  // TruncToUint32 truncates element values to uint32.
  1989  // Results are packed to low elements in the returned vector, its upper elements are zeroed.
  1990  //
  1991  // Asm: VXTN, CPU Feature: NEON
  1992  func (x Uint64x2) TruncToUint32() Uint32x4
  1993  
  1994  /* Xor */
  1995  
  1996  // Xor performs a bitwise x ^ y.
  1997  //
  1998  // Asm: VEOR, CPU Feature: NEON
  1999  func (x Int8x16) Xor(y Int8x16) Int8x16
  2000  
  2001  // Xor performs a bitwise x ^ y.
  2002  //
  2003  // Asm: VEOR, CPU Feature: NEON
  2004  func (x Int16x8) Xor(y Int16x8) Int16x8
  2005  
  2006  // Xor performs a bitwise x ^ y.
  2007  //
  2008  // Asm: VEOR, CPU Feature: NEON
  2009  func (x Int32x4) Xor(y Int32x4) Int32x4
  2010  
  2011  // Xor performs a bitwise x ^ y.
  2012  //
  2013  // Asm: VEOR, CPU Feature: NEON
  2014  func (x Int64x2) Xor(y Int64x2) Int64x2
  2015  
  2016  // Xor performs a bitwise x ^ y.
  2017  //
  2018  // Asm: VEOR, CPU Feature: NEON
  2019  func (x Uint8x16) Xor(y Uint8x16) Uint8x16
  2020  
  2021  // Xor performs a bitwise x ^ y.
  2022  //
  2023  // Asm: VEOR, CPU Feature: NEON
  2024  func (x Uint16x8) Xor(y Uint16x8) Uint16x8
  2025  
  2026  // Xor performs a bitwise x ^ y.
  2027  //
  2028  // Asm: VEOR, CPU Feature: NEON
  2029  func (x Uint32x4) Xor(y Uint32x4) Uint32x4
  2030  
  2031  // Xor performs a bitwise x ^ y.
  2032  //
  2033  // Asm: VEOR, CPU Feature: NEON
  2034  func (x Uint64x2) Xor(y Uint64x2) Uint64x2
  2035  
  2036  // BitsToInt8 reinterprets the bits of a Uint8x16 vector as a Int8x16 vector
  2037  func (x Uint8x16) BitsToInt8() Int8x16
  2038  
  2039  // ConvertToInt8 converts a Uint8x16 vector to a Int8x16 vector
  2040  func (x Uint8x16) ConvertToInt8() Int8x16
  2041  
  2042  // ConvertToUint8 converts a Int8x16 vector to a Uint8x16 vector
  2043  func (x Int8x16) ConvertToUint8() Uint8x16
  2044  
  2045  // ToBits reinterprets the bits of a Int8x16 vector as a Uint8x16 vector
  2046  func (x Int8x16) ToBits() Uint8x16
  2047  
  2048  // ReshapeToUint16s reinterprets the bits of a Uint8x16 vector as a Uint16x8 vector
  2049  func (x Uint8x16) ReshapeToUint16s() Uint16x8
  2050  
  2051  // ReshapeToUint32s reinterprets the bits of a Uint8x16 vector as a Uint32x4 vector
  2052  func (x Uint8x16) ReshapeToUint32s() Uint32x4
  2053  
  2054  // ReshapeToUint64s reinterprets the bits of a Uint8x16 vector as a Uint64x2 vector
  2055  func (x Uint8x16) ReshapeToUint64s() Uint64x2
  2056  
  2057  // BitsToInt16 reinterprets the bits of a Uint16x8 vector as a Int16x8 vector
  2058  func (x Uint16x8) BitsToInt16() Int16x8
  2059  
  2060  // ConvertToInt16 converts a Uint16x8 vector to a Int16x8 vector
  2061  func (x Uint16x8) ConvertToInt16() Int16x8
  2062  
  2063  // ConvertToUint16 converts a Int16x8 vector to a Uint16x8 vector
  2064  func (x Int16x8) ConvertToUint16() Uint16x8
  2065  
  2066  // ToBits reinterprets the bits of a Int16x8 vector as a Uint16x8 vector
  2067  func (x Int16x8) ToBits() Uint16x8
  2068  
  2069  // ReshapeToUint8s reinterprets the bits of a Uint16x8 vector as a Uint8x16 vector
  2070  func (x Uint16x8) ReshapeToUint8s() Uint8x16
  2071  
  2072  // ReshapeToUint32s reinterprets the bits of a Uint16x8 vector as a Uint32x4 vector
  2073  func (x Uint16x8) ReshapeToUint32s() Uint32x4
  2074  
  2075  // ReshapeToUint64s reinterprets the bits of a Uint16x8 vector as a Uint64x2 vector
  2076  func (x Uint16x8) ReshapeToUint64s() Uint64x2
  2077  
  2078  // BitsToFloat32 reinterprets the bits of a Uint32x4 vector as a Float32x4 vector
  2079  func (x Uint32x4) BitsToFloat32() Float32x4
  2080  
  2081  // ToBits reinterprets the bits of a Float32x4 vector as a Uint32x4 vector
  2082  func (x Float32x4) ToBits() Uint32x4
  2083  
  2084  // BitsToInt32 reinterprets the bits of a Uint32x4 vector as a Int32x4 vector
  2085  func (x Uint32x4) BitsToInt32() Int32x4
  2086  
  2087  // ConvertToInt32 converts a Uint32x4 vector to a Int32x4 vector
  2088  func (x Uint32x4) ConvertToInt32() Int32x4
  2089  
  2090  // ConvertToUint32 converts a Int32x4 vector to a Uint32x4 vector
  2091  func (x Int32x4) ConvertToUint32() Uint32x4
  2092  
  2093  // ToBits reinterprets the bits of a Int32x4 vector as a Uint32x4 vector
  2094  func (x Int32x4) ToBits() Uint32x4
  2095  
  2096  // ReshapeToUint8s reinterprets the bits of a Uint32x4 vector as a Uint8x16 vector
  2097  func (x Uint32x4) ReshapeToUint8s() Uint8x16
  2098  
  2099  // ReshapeToUint16s reinterprets the bits of a Uint32x4 vector as a Uint16x8 vector
  2100  func (x Uint32x4) ReshapeToUint16s() Uint16x8
  2101  
  2102  // ReshapeToUint64s reinterprets the bits of a Uint32x4 vector as a Uint64x2 vector
  2103  func (x Uint32x4) ReshapeToUint64s() Uint64x2
  2104  
  2105  // BitsToFloat64 reinterprets the bits of a Uint64x2 vector as a Float64x2 vector
  2106  func (x Uint64x2) BitsToFloat64() Float64x2
  2107  
  2108  // ToBits reinterprets the bits of a Float64x2 vector as a Uint64x2 vector
  2109  func (x Float64x2) ToBits() Uint64x2
  2110  
  2111  // BitsToInt64 reinterprets the bits of a Uint64x2 vector as a Int64x2 vector
  2112  func (x Uint64x2) BitsToInt64() Int64x2
  2113  
  2114  // ConvertToInt64 converts a Uint64x2 vector to a Int64x2 vector
  2115  func (x Uint64x2) ConvertToInt64() Int64x2
  2116  
  2117  // ConvertToUint64 converts a Int64x2 vector to a Uint64x2 vector
  2118  func (x Int64x2) ConvertToUint64() Uint64x2
  2119  
  2120  // ToBits reinterprets the bits of a Int64x2 vector as a Uint64x2 vector
  2121  func (x Int64x2) ToBits() Uint64x2
  2122  
  2123  // ReshapeToUint8s reinterprets the bits of a Uint64x2 vector as a Uint8x16 vector
  2124  func (x Uint64x2) ReshapeToUint8s() Uint8x16
  2125  
  2126  // ReshapeToUint16s reinterprets the bits of a Uint64x2 vector as a Uint16x8 vector
  2127  func (x Uint64x2) ReshapeToUint16s() Uint16x8
  2128  
  2129  // ReshapeToUint32s reinterprets the bits of a Uint64x2 vector as a Uint32x4 vector
  2130  func (x Uint64x2) ReshapeToUint32s() Uint32x4
  2131  
  2132  // ToInt8x16 converts from Mask8x16 to Int8x16.
  2133  // If element i in the mask is "true", all bits in element i of the resulting
  2134  // vector will be set.
  2135  func (from Mask8x16) ToInt8x16() (to Int8x16)
  2136  
  2137  // asMask converts from Int8x16 to Mask8x16.
  2138  func (from Int8x16) asMask() (to Mask8x16)
  2139  
  2140  func (x Mask8x16) And(y Mask8x16) Mask8x16
  2141  
  2142  func (x Mask8x16) Or(y Mask8x16) Mask8x16
  2143  
  2144  func (x Mask8x16) Not() Mask8x16
  2145  
  2146  // ToInt16x8 converts from Mask16x8 to Int16x8.
  2147  // If element i in the mask is "true", all bits in element i of the resulting
  2148  // vector will be set.
  2149  func (from Mask16x8) ToInt16x8() (to Int16x8)
  2150  
  2151  // asMask converts from Int16x8 to Mask16x8.
  2152  func (from Int16x8) asMask() (to Mask16x8)
  2153  
  2154  func (x Mask16x8) And(y Mask16x8) Mask16x8
  2155  
  2156  func (x Mask16x8) Or(y Mask16x8) Mask16x8
  2157  
  2158  func (x Mask16x8) Not() Mask16x8
  2159  
  2160  // ToInt32x4 converts from Mask32x4 to Int32x4.
  2161  // If element i in the mask is "true", all bits in element i of the resulting
  2162  // vector will be set.
  2163  func (from Mask32x4) ToInt32x4() (to Int32x4)
  2164  
  2165  // asMask converts from Int32x4 to Mask32x4.
  2166  func (from Int32x4) asMask() (to Mask32x4)
  2167  
  2168  func (x Mask32x4) And(y Mask32x4) Mask32x4
  2169  
  2170  func (x Mask32x4) Or(y Mask32x4) Mask32x4
  2171  
  2172  func (x Mask32x4) Not() Mask32x4
  2173  
  2174  // ToInt64x2 converts from Mask64x2 to Int64x2.
  2175  // If element i in the mask is "true", all bits in element i of the resulting
  2176  // vector will be set.
  2177  func (from Mask64x2) ToInt64x2() (to Int64x2)
  2178  
  2179  // asMask converts from Int64x2 to Mask64x2.
  2180  func (from Int64x2) asMask() (to Mask64x2)
  2181  
  2182  func (x Mask64x2) And(y Mask64x2) Mask64x2
  2183  
  2184  func (x Mask64x2) Or(y Mask64x2) Mask64x2
  2185  
  2186  func (x Mask64x2) Not() Mask64x2
  2187  

View as plain text