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