Source file src/simd/archsimd/ops_amd64.go
1 // Code generated by 'simdgen -o godefs -goroot $GOROOT -arch amd64 -xedPath $XED_PATH go_amd64.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: AVXAES 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: VAES 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: AVXAES 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: VAES 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: AVXAES 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: VAES 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: AVXAES 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: VAES 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: AVXAES 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 // A non-constant value of rconVal may result in significantly worse performance for this operation. 131 // 132 // Asm: VAESKEYGENASSIST, CPU Feature: AVXAES 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 /* AddOddSubEven */ 350 351 // AddOddSubEven subtracts even elements and adds odd elements of two vectors. 352 // 353 // Asm: VADDSUBPS, CPU Feature: AVX 354 func (x Float32x4) AddOddSubEven(y Float32x4) Float32x4 355 356 // AddOddSubEven subtracts even elements and adds odd elements of two vectors. 357 // 358 // Asm: VADDSUBPS, CPU Feature: AVX 359 func (x Float32x8) AddOddSubEven(y Float32x8) Float32x8 360 361 // AddOddSubEven subtracts even elements and adds odd elements of two vectors. 362 // 363 // Asm: VADDSUBPD, CPU Feature: AVX 364 func (x Float64x2) AddOddSubEven(y Float64x2) Float64x2 365 366 // AddOddSubEven subtracts even elements and adds odd elements of two vectors. 367 // 368 // Asm: VADDSUBPD, CPU Feature: AVX 369 func (x Float64x4) AddOddSubEven(y Float64x4) Float64x4 370 371 /* AddSaturated */ 372 373 // AddSaturated adds corresponding elements of two vectors with saturation. 374 // 375 // Asm: VPADDSB, CPU Feature: AVX 376 func (x Int8x16) AddSaturated(y Int8x16) Int8x16 377 378 // AddSaturated adds corresponding elements of two vectors with saturation. 379 // 380 // Asm: VPADDSB, CPU Feature: AVX2 381 func (x Int8x32) AddSaturated(y Int8x32) Int8x32 382 383 // AddSaturated adds corresponding elements of two vectors with saturation. 384 // 385 // Asm: VPADDSB, CPU Feature: AVX512 386 func (x Int8x64) AddSaturated(y Int8x64) Int8x64 387 388 // AddSaturated adds corresponding elements of two vectors with saturation. 389 // 390 // Asm: VPADDSW, CPU Feature: AVX 391 func (x Int16x8) AddSaturated(y Int16x8) Int16x8 392 393 // AddSaturated adds corresponding elements of two vectors with saturation. 394 // 395 // Asm: VPADDSW, CPU Feature: AVX2 396 func (x Int16x16) AddSaturated(y Int16x16) Int16x16 397 398 // AddSaturated adds corresponding elements of two vectors with saturation. 399 // 400 // Asm: VPADDSW, CPU Feature: AVX512 401 func (x Int16x32) AddSaturated(y Int16x32) Int16x32 402 403 // AddSaturated adds corresponding elements of two vectors with saturation. 404 // 405 // Asm: VPADDUSB, CPU Feature: AVX 406 func (x Uint8x16) AddSaturated(y Uint8x16) Uint8x16 407 408 // AddSaturated adds corresponding elements of two vectors with saturation. 409 // 410 // Asm: VPADDUSB, CPU Feature: AVX2 411 func (x Uint8x32) AddSaturated(y Uint8x32) Uint8x32 412 413 // AddSaturated adds corresponding elements of two vectors with saturation. 414 // 415 // Asm: VPADDUSB, CPU Feature: AVX512 416 func (x Uint8x64) AddSaturated(y Uint8x64) Uint8x64 417 418 // AddSaturated adds corresponding elements of two vectors with saturation. 419 // 420 // Asm: VPADDUSW, CPU Feature: AVX 421 func (x Uint16x8) AddSaturated(y Uint16x8) Uint16x8 422 423 // AddSaturated adds corresponding elements of two vectors with saturation. 424 // 425 // Asm: VPADDUSW, CPU Feature: AVX2 426 func (x Uint16x16) AddSaturated(y Uint16x16) Uint16x16 427 428 // AddSaturated adds corresponding elements of two vectors with saturation. 429 // 430 // Asm: VPADDUSW, CPU Feature: AVX512 431 func (x Uint16x32) AddSaturated(y Uint16x32) Uint16x32 432 433 /* And */ 434 435 // And performs a bitwise x & y. 436 // 437 // Asm: VPAND, CPU Feature: AVX 438 func (x Int8x16) And(y Int8x16) Int8x16 439 440 // And performs a bitwise x & y. 441 // 442 // Asm: VPAND, CPU Feature: AVX2 443 func (x Int8x32) And(y Int8x32) Int8x32 444 445 // And performs a bitwise x & y. 446 // 447 // Asm: VPANDD, CPU Feature: AVX512 448 func (x Int8x64) And(y Int8x64) Int8x64 449 450 // And performs a bitwise x & y. 451 // 452 // Asm: VPAND, CPU Feature: AVX 453 func (x Int16x8) And(y Int16x8) Int16x8 454 455 // And performs a bitwise x & y. 456 // 457 // Asm: VPAND, CPU Feature: AVX2 458 func (x Int16x16) And(y Int16x16) Int16x16 459 460 // And performs a bitwise x & y. 461 // 462 // Asm: VPANDD, CPU Feature: AVX512 463 func (x Int16x32) And(y Int16x32) Int16x32 464 465 // And performs a bitwise x & y. 466 // 467 // Asm: VPAND, CPU Feature: AVX 468 func (x Int32x4) And(y Int32x4) Int32x4 469 470 // And performs a bitwise x & y. 471 // 472 // Asm: VPAND, CPU Feature: AVX2 473 func (x Int32x8) And(y Int32x8) Int32x8 474 475 // And performs a bitwise x & y. 476 // 477 // Asm: VPANDD, CPU Feature: AVX512 478 func (x Int32x16) And(y Int32x16) Int32x16 479 480 // And performs a bitwise x & y. 481 // 482 // Asm: VPAND, CPU Feature: AVX 483 func (x Int64x2) And(y Int64x2) Int64x2 484 485 // And performs a bitwise x & y. 486 // 487 // Asm: VPAND, CPU Feature: AVX2 488 func (x Int64x4) And(y Int64x4) Int64x4 489 490 // And performs a bitwise x & y. 491 // 492 // Asm: VPANDQ, CPU Feature: AVX512 493 func (x Int64x8) And(y Int64x8) Int64x8 494 495 // And performs a bitwise x & y. 496 // 497 // Asm: VPAND, CPU Feature: AVX 498 func (x Uint8x16) And(y Uint8x16) Uint8x16 499 500 // And performs a bitwise x & y. 501 // 502 // Asm: VPAND, CPU Feature: AVX2 503 func (x Uint8x32) And(y Uint8x32) Uint8x32 504 505 // And performs a bitwise x & y. 506 // 507 // Asm: VPANDD, CPU Feature: AVX512 508 func (x Uint8x64) And(y Uint8x64) Uint8x64 509 510 // And performs a bitwise x & y. 511 // 512 // Asm: VPAND, CPU Feature: AVX 513 func (x Uint16x8) And(y Uint16x8) Uint16x8 514 515 // And performs a bitwise x & y. 516 // 517 // Asm: VPAND, CPU Feature: AVX2 518 func (x Uint16x16) And(y Uint16x16) Uint16x16 519 520 // And performs a bitwise x & y. 521 // 522 // Asm: VPANDD, CPU Feature: AVX512 523 func (x Uint16x32) And(y Uint16x32) Uint16x32 524 525 // And performs a bitwise x & y. 526 // 527 // Asm: VPAND, CPU Feature: AVX 528 func (x Uint32x4) And(y Uint32x4) Uint32x4 529 530 // And performs a bitwise x & y. 531 // 532 // Asm: VPAND, CPU Feature: AVX2 533 func (x Uint32x8) And(y Uint32x8) Uint32x8 534 535 // And performs a bitwise x & y. 536 // 537 // Asm: VPANDD, CPU Feature: AVX512 538 func (x Uint32x16) And(y Uint32x16) Uint32x16 539 540 // And performs a bitwise x & y. 541 // 542 // Asm: VPAND, CPU Feature: AVX2 543 func (x Uint64x4) And(y Uint64x4) Uint64x4 544 545 // And performs a bitwise x & y. 546 // 547 // Asm: VPANDQ, CPU Feature: AVX512 548 func (x Uint64x8) And(y Uint64x8) Uint64x8 549 550 // And performs a bitwise x & y. 551 // 552 // Asm: VPAND, CPU Feature: AVX 553 func (x Uint64x2) And(y Uint64x2) Uint64x2 554 555 /* AndNot */ 556 557 // AndNot performs a bitwise x &^ y. 558 // 559 // Asm: VPANDN, CPU Feature: AVX 560 func (x Int8x16) AndNot(y Int8x16) Int8x16 561 562 // AndNot performs a bitwise x &^ y. 563 // 564 // Asm: VPANDN, CPU Feature: AVX2 565 func (x Int8x32) AndNot(y Int8x32) Int8x32 566 567 // AndNot performs a bitwise x &^ y. 568 // 569 // Asm: VPANDND, CPU Feature: AVX512 570 func (x Int8x64) AndNot(y Int8x64) Int8x64 571 572 // AndNot performs a bitwise x &^ y. 573 // 574 // Asm: VPANDN, CPU Feature: AVX 575 func (x Int16x8) AndNot(y Int16x8) Int16x8 576 577 // AndNot performs a bitwise x &^ y. 578 // 579 // Asm: VPANDN, CPU Feature: AVX2 580 func (x Int16x16) AndNot(y Int16x16) Int16x16 581 582 // AndNot performs a bitwise x &^ y. 583 // 584 // Asm: VPANDND, CPU Feature: AVX512 585 func (x Int16x32) AndNot(y Int16x32) Int16x32 586 587 // AndNot performs a bitwise x &^ y. 588 // 589 // Asm: VPANDN, CPU Feature: AVX 590 func (x Int32x4) AndNot(y Int32x4) Int32x4 591 592 // AndNot performs a bitwise x &^ y. 593 // 594 // Asm: VPANDN, CPU Feature: AVX2 595 func (x Int32x8) AndNot(y Int32x8) Int32x8 596 597 // AndNot performs a bitwise x &^ y. 598 // 599 // Asm: VPANDND, CPU Feature: AVX512 600 func (x Int32x16) AndNot(y Int32x16) Int32x16 601 602 // AndNot performs a bitwise x &^ y. 603 // 604 // Asm: VPANDN, CPU Feature: AVX 605 func (x Int64x2) AndNot(y Int64x2) Int64x2 606 607 // AndNot performs a bitwise x &^ y. 608 // 609 // Asm: VPANDN, CPU Feature: AVX2 610 func (x Int64x4) AndNot(y Int64x4) Int64x4 611 612 // AndNot performs a bitwise x &^ y. 613 // 614 // Asm: VPANDNQ, CPU Feature: AVX512 615 func (x Int64x8) AndNot(y Int64x8) Int64x8 616 617 // AndNot performs a bitwise x &^ y. 618 // 619 // Asm: VPANDN, CPU Feature: AVX 620 func (x Uint8x16) AndNot(y Uint8x16) Uint8x16 621 622 // AndNot performs a bitwise x &^ y. 623 // 624 // Asm: VPANDN, CPU Feature: AVX2 625 func (x Uint8x32) AndNot(y Uint8x32) Uint8x32 626 627 // AndNot performs a bitwise x &^ y. 628 // 629 // Asm: VPANDND, CPU Feature: AVX512 630 func (x Uint8x64) AndNot(y Uint8x64) Uint8x64 631 632 // AndNot performs a bitwise x &^ y. 633 // 634 // Asm: VPANDN, CPU Feature: AVX 635 func (x Uint16x8) AndNot(y Uint16x8) Uint16x8 636 637 // AndNot performs a bitwise x &^ y. 638 // 639 // Asm: VPANDN, CPU Feature: AVX2 640 func (x Uint16x16) AndNot(y Uint16x16) Uint16x16 641 642 // AndNot performs a bitwise x &^ y. 643 // 644 // Asm: VPANDND, CPU Feature: AVX512 645 func (x Uint16x32) AndNot(y Uint16x32) Uint16x32 646 647 // AndNot performs a bitwise x &^ y. 648 // 649 // Asm: VPANDN, CPU Feature: AVX 650 func (x Uint32x4) AndNot(y Uint32x4) Uint32x4 651 652 // AndNot performs a bitwise x &^ y. 653 // 654 // Asm: VPANDN, CPU Feature: AVX2 655 func (x Uint32x8) AndNot(y Uint32x8) Uint32x8 656 657 // AndNot performs a bitwise x &^ y. 658 // 659 // Asm: VPANDND, CPU Feature: AVX512 660 func (x Uint32x16) AndNot(y Uint32x16) Uint32x16 661 662 // AndNot performs a bitwise x &^ y. 663 // 664 // Asm: VPANDN, CPU Feature: AVX2 665 func (x Uint64x4) AndNot(y Uint64x4) Uint64x4 666 667 // AndNot performs a bitwise x &^ y. 668 // 669 // Asm: VPANDNQ, CPU Feature: AVX512 670 func (x Uint64x8) AndNot(y Uint64x8) Uint64x8 671 672 // AndNot performs a bitwise x &^ y. 673 // 674 // Asm: VPANDN, CPU Feature: AVX 675 func (x Uint64x2) AndNot(y Uint64x2) Uint64x2 676 677 /* Average */ 678 679 // Average computes the rounded average of corresponding elements. 680 // 681 // Asm: VPAVGB, CPU Feature: AVX 682 func (x Uint8x16) Average(y Uint8x16) Uint8x16 683 684 // Average computes the rounded average of corresponding elements. 685 // 686 // Asm: VPAVGB, CPU Feature: AVX2 687 func (x Uint8x32) Average(y Uint8x32) Uint8x32 688 689 // Average computes the rounded average of corresponding elements. 690 // 691 // Asm: VPAVGB, CPU Feature: AVX512 692 func (x Uint8x64) Average(y Uint8x64) Uint8x64 693 694 // Average computes the rounded average of corresponding elements. 695 // 696 // Asm: VPAVGW, CPU Feature: AVX 697 func (x Uint16x8) Average(y Uint16x8) Uint16x8 698 699 // Average computes the rounded average of corresponding elements. 700 // 701 // Asm: VPAVGW, CPU Feature: AVX2 702 func (x Uint16x16) Average(y Uint16x16) Uint16x16 703 704 // Average computes the rounded average of corresponding elements. 705 // 706 // Asm: VPAVGW, CPU Feature: AVX512 707 func (x Uint16x32) Average(y Uint16x32) Uint16x32 708 709 /* Ceil */ 710 711 // Ceil rounds elements up to the nearest integer. 712 // 713 // Asm: VROUNDPS, CPU Feature: AVX 714 func (x Float32x4) Ceil() Float32x4 715 716 // Ceil rounds elements up to the nearest integer. 717 // 718 // Asm: VROUNDPS, CPU Feature: AVX 719 func (x Float32x8) Ceil() Float32x8 720 721 // Ceil rounds elements up to the nearest integer. 722 // 723 // Asm: VROUNDPD, CPU Feature: AVX 724 func (x Float64x2) Ceil() Float64x2 725 726 // Ceil rounds elements up to the nearest integer. 727 // 728 // Asm: VROUNDPD, CPU Feature: AVX 729 func (x Float64x4) Ceil() Float64x4 730 731 /* CeilScaled */ 732 733 // CeilScaled rounds elements up with specified precision. 734 // 735 // A non-constant value of prec may result in significantly worse performance for this operation. 736 // 737 // Asm: VRNDSCALEPS, CPU Feature: AVX512 738 func (x Float32x4) CeilScaled(prec uint8) Float32x4 739 740 // CeilScaled rounds elements up with specified precision. 741 // 742 // A non-constant value of prec may result in significantly worse performance for this operation. 743 // 744 // Asm: VRNDSCALEPS, CPU Feature: AVX512 745 func (x Float32x8) CeilScaled(prec uint8) Float32x8 746 747 // CeilScaled rounds elements up with specified precision. 748 // 749 // A non-constant value of prec may result in significantly worse performance for this operation. 750 // 751 // Asm: VRNDSCALEPS, CPU Feature: AVX512 752 func (x Float32x16) CeilScaled(prec uint8) Float32x16 753 754 // CeilScaled rounds elements up with specified precision. 755 // 756 // A non-constant value of prec may result in significantly worse performance for this operation. 757 // 758 // Asm: VRNDSCALEPD, CPU Feature: AVX512 759 func (x Float64x2) CeilScaled(prec uint8) Float64x2 760 761 // CeilScaled rounds elements up with specified precision. 762 // 763 // A non-constant value of prec may result in significantly worse performance for this operation. 764 // 765 // Asm: VRNDSCALEPD, CPU Feature: AVX512 766 func (x Float64x4) CeilScaled(prec uint8) Float64x4 767 768 // CeilScaled rounds elements up with specified precision. 769 // 770 // A non-constant value of prec may result in significantly worse performance for this operation. 771 // 772 // Asm: VRNDSCALEPD, CPU Feature: AVX512 773 func (x Float64x8) CeilScaled(prec uint8) Float64x8 774 775 /* CeilScaledResidue */ 776 777 // CeilScaledResidue computes the difference after ceiling with specified precision. 778 // 779 // A non-constant value of prec may result in significantly worse performance for this operation. 780 // 781 // Asm: VREDUCEPS, CPU Feature: AVX512 782 func (x Float32x4) CeilScaledResidue(prec uint8) Float32x4 783 784 // CeilScaledResidue computes the difference after ceiling with specified precision. 785 // 786 // A non-constant value of prec may result in significantly worse performance for this operation. 787 // 788 // Asm: VREDUCEPS, CPU Feature: AVX512 789 func (x Float32x8) CeilScaledResidue(prec uint8) Float32x8 790 791 // CeilScaledResidue computes the difference after ceiling with specified precision. 792 // 793 // A non-constant value of prec may result in significantly worse performance for this operation. 794 // 795 // Asm: VREDUCEPS, CPU Feature: AVX512 796 func (x Float32x16) CeilScaledResidue(prec uint8) Float32x16 797 798 // CeilScaledResidue computes the difference after ceiling with specified precision. 799 // 800 // A non-constant value of prec may result in significantly worse performance for this operation. 801 // 802 // Asm: VREDUCEPD, CPU Feature: AVX512 803 func (x Float64x2) CeilScaledResidue(prec uint8) Float64x2 804 805 // CeilScaledResidue computes the difference after ceiling with specified precision. 806 // 807 // A non-constant value of prec may result in significantly worse performance for this operation. 808 // 809 // Asm: VREDUCEPD, CPU Feature: AVX512 810 func (x Float64x4) CeilScaledResidue(prec uint8) Float64x4 811 812 // CeilScaledResidue computes the difference after ceiling with specified precision. 813 // 814 // A non-constant value of prec may result in significantly worse performance for this operation. 815 // 816 // Asm: VREDUCEPD, CPU Feature: AVX512 817 func (x Float64x8) CeilScaledResidue(prec uint8) Float64x8 818 819 /* Compress */ 820 821 // Compress packs the masked elements of x into the lower indexed elements of z, 822 // zeroing any remaining elements. 823 // 824 // Asm: VCOMPRESSPS, CPU Feature: AVX512 825 func (x Float32x4) Compress(mask Mask32x4) Float32x4 826 827 // Compress packs the masked elements of x into the lower indexed elements of z, 828 // zeroing any remaining elements. 829 // 830 // Asm: VCOMPRESSPS, CPU Feature: AVX512 831 func (x Float32x8) Compress(mask Mask32x8) Float32x8 832 833 // Compress packs the masked elements of x into the lower indexed elements of z, 834 // zeroing any remaining elements. 835 // 836 // Asm: VCOMPRESSPS, CPU Feature: AVX512 837 func (x Float32x16) Compress(mask Mask32x16) Float32x16 838 839 // Compress packs the masked elements of x into the lower indexed elements of z, 840 // zeroing any remaining elements. 841 // 842 // Asm: VCOMPRESSPD, CPU Feature: AVX512 843 func (x Float64x2) Compress(mask Mask64x2) Float64x2 844 845 // Compress packs the masked elements of x into the lower indexed elements of z, 846 // zeroing any remaining elements. 847 // 848 // Asm: VCOMPRESSPD, CPU Feature: AVX512 849 func (x Float64x4) Compress(mask Mask64x4) Float64x4 850 851 // Compress packs the masked elements of x into the lower indexed elements of z, 852 // zeroing any remaining elements. 853 // 854 // Asm: VCOMPRESSPD, CPU Feature: AVX512 855 func (x Float64x8) Compress(mask Mask64x8) Float64x8 856 857 // Compress packs the masked elements of x into the lower indexed elements of z, 858 // zeroing any remaining elements. 859 // 860 // Asm: VPCOMPRESSB, CPU Feature: AVX512VBMI2 861 func (x Int8x16) Compress(mask Mask8x16) Int8x16 862 863 // Compress packs the masked elements of x into the lower indexed elements of z, 864 // zeroing any remaining elements. 865 // 866 // Asm: VPCOMPRESSB, CPU Feature: AVX512VBMI2 867 func (x Int8x32) Compress(mask Mask8x32) Int8x32 868 869 // Compress packs the masked elements of x into the lower indexed elements of z, 870 // zeroing any remaining elements. 871 // 872 // Asm: VPCOMPRESSB, CPU Feature: AVX512VBMI2 873 func (x Int8x64) Compress(mask Mask8x64) Int8x64 874 875 // Compress packs the masked elements of x into the lower indexed elements of z, 876 // zeroing any remaining elements. 877 // 878 // Asm: VPCOMPRESSW, CPU Feature: AVX512VBMI2 879 func (x Int16x8) Compress(mask Mask16x8) Int16x8 880 881 // Compress packs the masked elements of x into the lower indexed elements of z, 882 // zeroing any remaining elements. 883 // 884 // Asm: VPCOMPRESSW, CPU Feature: AVX512VBMI2 885 func (x Int16x16) Compress(mask Mask16x16) Int16x16 886 887 // Compress packs the masked elements of x into the lower indexed elements of z, 888 // zeroing any remaining elements. 889 // 890 // Asm: VPCOMPRESSW, CPU Feature: AVX512VBMI2 891 func (x Int16x32) Compress(mask Mask16x32) Int16x32 892 893 // Compress packs the masked elements of x into the lower indexed elements of z, 894 // zeroing any remaining elements. 895 // 896 // Asm: VPCOMPRESSD, CPU Feature: AVX512 897 func (x Int32x4) Compress(mask Mask32x4) Int32x4 898 899 // Compress packs the masked elements of x into the lower indexed elements of z, 900 // zeroing any remaining elements. 901 // 902 // Asm: VPCOMPRESSD, CPU Feature: AVX512 903 func (x Int32x8) Compress(mask Mask32x8) Int32x8 904 905 // Compress packs the masked elements of x into the lower indexed elements of z, 906 // zeroing any remaining elements. 907 // 908 // Asm: VPCOMPRESSD, CPU Feature: AVX512 909 func (x Int32x16) Compress(mask Mask32x16) Int32x16 910 911 // Compress packs the masked elements of x into the lower indexed elements of z, 912 // zeroing any remaining elements. 913 // 914 // Asm: VPCOMPRESSQ, CPU Feature: AVX512 915 func (x Int64x2) Compress(mask Mask64x2) Int64x2 916 917 // Compress packs the masked elements of x into the lower indexed elements of z, 918 // zeroing any remaining elements. 919 // 920 // Asm: VPCOMPRESSQ, CPU Feature: AVX512 921 func (x Int64x4) Compress(mask Mask64x4) Int64x4 922 923 // Compress packs the masked elements of x into the lower indexed elements of z, 924 // zeroing any remaining elements. 925 // 926 // Asm: VPCOMPRESSQ, CPU Feature: AVX512 927 func (x Int64x8) Compress(mask Mask64x8) Int64x8 928 929 // Compress packs the masked elements of x into the lower indexed elements of z, 930 // zeroing any remaining elements. 931 // 932 // Asm: VPCOMPRESSB, CPU Feature: AVX512VBMI2 933 func (x Uint8x16) Compress(mask Mask8x16) Uint8x16 934 935 // Compress packs the masked elements of x into the lower indexed elements of z, 936 // zeroing any remaining elements. 937 // 938 // Asm: VPCOMPRESSB, CPU Feature: AVX512VBMI2 939 func (x Uint8x32) Compress(mask Mask8x32) Uint8x32 940 941 // Compress packs the masked elements of x into the lower indexed elements of z, 942 // zeroing any remaining elements. 943 // 944 // Asm: VPCOMPRESSB, CPU Feature: AVX512VBMI2 945 func (x Uint8x64) Compress(mask Mask8x64) Uint8x64 946 947 // Compress packs the masked elements of x into the lower indexed elements of z, 948 // zeroing any remaining elements. 949 // 950 // Asm: VPCOMPRESSW, CPU Feature: AVX512VBMI2 951 func (x Uint16x8) Compress(mask Mask16x8) Uint16x8 952 953 // Compress packs the masked elements of x into the lower indexed elements of z, 954 // zeroing any remaining elements. 955 // 956 // Asm: VPCOMPRESSW, CPU Feature: AVX512VBMI2 957 func (x Uint16x16) Compress(mask Mask16x16) Uint16x16 958 959 // Compress packs the masked elements of x into the lower indexed elements of z, 960 // zeroing any remaining elements. 961 // 962 // Asm: VPCOMPRESSW, CPU Feature: AVX512VBMI2 963 func (x Uint16x32) Compress(mask Mask16x32) Uint16x32 964 965 // Compress packs the masked elements of x into the lower indexed elements of z, 966 // zeroing any remaining elements. 967 // 968 // Asm: VPCOMPRESSD, CPU Feature: AVX512 969 func (x Uint32x4) Compress(mask Mask32x4) Uint32x4 970 971 // Compress packs the masked elements of x into the lower indexed elements of z, 972 // zeroing any remaining elements. 973 // 974 // Asm: VPCOMPRESSD, CPU Feature: AVX512 975 func (x Uint32x8) Compress(mask Mask32x8) Uint32x8 976 977 // Compress packs the masked elements of x into the lower indexed elements of z, 978 // zeroing any remaining elements. 979 // 980 // Asm: VPCOMPRESSD, CPU Feature: AVX512 981 func (x Uint32x16) Compress(mask Mask32x16) Uint32x16 982 983 // Compress packs the masked elements of x into the lower indexed elements of z, 984 // zeroing any remaining elements. 985 // 986 // Asm: VPCOMPRESSQ, CPU Feature: AVX512 987 func (x Uint64x2) Compress(mask Mask64x2) Uint64x2 988 989 // Compress packs the masked elements of x into the lower indexed elements of z, 990 // zeroing any remaining elements. 991 // 992 // Asm: VPCOMPRESSQ, CPU Feature: AVX512 993 func (x Uint64x4) Compress(mask Mask64x4) Uint64x4 994 995 // Compress packs the masked elements of x into the lower indexed elements of z, 996 // zeroing any remaining elements. 997 // 998 // Asm: VPCOMPRESSQ, CPU Feature: AVX512 999 func (x Uint64x8) Compress(mask Mask64x8) Uint64x8 1000 1001 /* ConcatAddPairs */ 1002 1003 // ConcatAddPairs horizontally adds adjacent pairs of elements. 1004 // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...]. 1005 // 1006 // Asm: VHADDPS, CPU Feature: AVX 1007 func (x Float32x4) ConcatAddPairs(y Float32x4) Float32x4 1008 1009 // ConcatAddPairs horizontally adds adjacent pairs of elements. 1010 // For x = [x0, x1] and y = [y0, y1], the result is [x0+x1, y0+y1]. 1011 // 1012 // Asm: VHADDPD, CPU Feature: AVX 1013 func (x Float64x2) ConcatAddPairs(y Float64x2) Float64x2 1014 1015 // ConcatAddPairs horizontally adds adjacent pairs of elements. 1016 // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...]. 1017 // 1018 // Asm: VPHADDW, CPU Feature: AVX 1019 func (x Int16x8) ConcatAddPairs(y Int16x8) Int16x8 1020 1021 // ConcatAddPairs horizontally adds adjacent pairs of elements. 1022 // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...]. 1023 // 1024 // Asm: VPHADDD, CPU Feature: AVX 1025 func (x Int32x4) ConcatAddPairs(y Int32x4) Int32x4 1026 1027 // ConcatAddPairs horizontally adds adjacent pairs of elements. 1028 // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...]. 1029 // 1030 // Asm: VPHADDW, CPU Feature: AVX 1031 func (x Uint16x8) ConcatAddPairs(y Uint16x8) Uint16x8 1032 1033 // ConcatAddPairs horizontally adds adjacent pairs of elements. 1034 // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...]. 1035 // 1036 // Asm: VPHADDD, CPU Feature: AVX 1037 func (x Uint32x4) ConcatAddPairs(y Uint32x4) Uint32x4 1038 1039 /* ConcatAddPairsGrouped */ 1040 1041 // ConcatAddPairsGrouped horizontally adds adjacent pairs of elements. 1042 // With each 128-bit as a group: 1043 // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...]. 1044 // 1045 // Asm: VHADDPS, CPU Feature: AVX 1046 func (x Float32x8) ConcatAddPairsGrouped(y Float32x8) Float32x8 1047 1048 // ConcatAddPairsGrouped horizontally adds adjacent pairs of elements. 1049 // With each 128-bit as a group: 1050 // for x = [x0, x1] and y = [y0, y1], the result is [x0+x1, y0+y1]. 1051 // 1052 // Asm: VHADDPD, CPU Feature: AVX 1053 func (x Float64x4) ConcatAddPairsGrouped(y Float64x4) Float64x4 1054 1055 // ConcatAddPairsGrouped horizontally adds adjacent pairs of elements. 1056 // With each 128-bit as a group: 1057 // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...]. 1058 // 1059 // Asm: VPHADDW, CPU Feature: AVX2 1060 func (x Int16x16) ConcatAddPairsGrouped(y Int16x16) Int16x16 1061 1062 // ConcatAddPairsGrouped horizontally adds adjacent pairs of elements. 1063 // With each 128-bit as a group: 1064 // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...]. 1065 // 1066 // Asm: VPHADDD, CPU Feature: AVX2 1067 func (x Int32x8) ConcatAddPairsGrouped(y Int32x8) Int32x8 1068 1069 // ConcatAddPairsGrouped horizontally adds adjacent pairs of elements. 1070 // With each 128-bit as a group: 1071 // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...]. 1072 // 1073 // Asm: VPHADDW, CPU Feature: AVX2 1074 func (x Uint16x16) ConcatAddPairsGrouped(y Uint16x16) Uint16x16 1075 1076 // ConcatAddPairsGrouped horizontally adds adjacent pairs of elements. 1077 // With each 128-bit as a group: 1078 // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...]. 1079 // 1080 // Asm: VPHADDD, CPU Feature: AVX2 1081 func (x Uint32x8) ConcatAddPairsGrouped(y Uint32x8) Uint32x8 1082 1083 /* ConcatAddPairsSaturated */ 1084 1085 // ConcatAddPairsSaturated horizontally adds adjacent pairs of elements with saturation. 1086 // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...]. 1087 // 1088 // Asm: VPHADDSW, CPU Feature: AVX 1089 func (x Int16x8) ConcatAddPairsSaturated(y Int16x8) Int16x8 1090 1091 /* ConcatAddPairsSaturatedGrouped */ 1092 1093 // ConcatAddPairsSaturatedGrouped horizontally adds adjacent pairs of elements with saturation. 1094 // With each 128-bit as a group: 1095 // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0+x1, x2+x3, ..., y0+y1, y2+y3, ...]. 1096 // 1097 // Asm: VPHADDSW, CPU Feature: AVX2 1098 func (x Int16x16) ConcatAddPairsSaturatedGrouped(y Int16x16) Int16x16 1099 1100 /* ConcatPermute */ 1101 1102 // ConcatPermute performs a full permutation of vector x, y using indices: 1103 // 1104 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1105 // 1106 // where xy is the concatenation of x (lower half) and y (upper half). 1107 // Only the needed bits to represent xy's index are used in indices' elements. 1108 // 1109 // Asm: VPERMI2B, CPU Feature: AVX512VBMI 1110 func (x Int8x16) ConcatPermute(y Int8x16, indices Uint8x16) Int8x16 1111 1112 // ConcatPermute performs a full permutation of vector x, y using indices: 1113 // 1114 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1115 // 1116 // where xy is the concatenation of x (lower half) and y (upper half). 1117 // Only the needed bits to represent xy's index are used in indices' elements. 1118 // 1119 // Asm: VPERMI2B, CPU Feature: AVX512VBMI 1120 func (x Uint8x16) ConcatPermute(y Uint8x16, indices Uint8x16) Uint8x16 1121 1122 // ConcatPermute performs a full permutation of vector x, y using indices: 1123 // 1124 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1125 // 1126 // where xy is the concatenation of x (lower half) and y (upper half). 1127 // Only the needed bits to represent xy's index are used in indices' elements. 1128 // 1129 // Asm: VPERMI2B, CPU Feature: AVX512VBMI 1130 func (x Int8x32) ConcatPermute(y Int8x32, indices Uint8x32) Int8x32 1131 1132 // ConcatPermute performs a full permutation of vector x, y using indices: 1133 // 1134 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1135 // 1136 // where xy is the concatenation of x (lower half) and y (upper half). 1137 // Only the needed bits to represent xy's index are used in indices' elements. 1138 // 1139 // Asm: VPERMI2B, CPU Feature: AVX512VBMI 1140 func (x Uint8x32) ConcatPermute(y Uint8x32, indices Uint8x32) Uint8x32 1141 1142 // ConcatPermute performs a full permutation of vector x, y using indices: 1143 // 1144 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1145 // 1146 // where xy is the concatenation of x (lower half) and y (upper half). 1147 // Only the needed bits to represent xy's index are used in indices' elements. 1148 // 1149 // Asm: VPERMI2B, CPU Feature: AVX512VBMI 1150 func (x Int8x64) ConcatPermute(y Int8x64, indices Uint8x64) Int8x64 1151 1152 // ConcatPermute performs a full permutation of vector x, y using indices: 1153 // 1154 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1155 // 1156 // where xy is the concatenation of x (lower half) and y (upper half). 1157 // Only the needed bits to represent xy's index are used in indices' elements. 1158 // 1159 // Asm: VPERMI2B, CPU Feature: AVX512VBMI 1160 func (x Uint8x64) ConcatPermute(y Uint8x64, indices Uint8x64) Uint8x64 1161 1162 // ConcatPermute performs a full permutation of vector x, y using indices: 1163 // 1164 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1165 // 1166 // where xy is the concatenation of x (lower half) and y (upper half). 1167 // Only the needed bits to represent xy's index are used in indices' elements. 1168 // 1169 // Asm: VPERMI2W, CPU Feature: AVX512 1170 func (x Int16x8) ConcatPermute(y Int16x8, indices Uint16x8) Int16x8 1171 1172 // ConcatPermute performs a full permutation of vector x, y using indices: 1173 // 1174 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1175 // 1176 // where xy is the concatenation of x (lower half) and y (upper half). 1177 // Only the needed bits to represent xy's index are used in indices' elements. 1178 // 1179 // Asm: VPERMI2W, CPU Feature: AVX512 1180 func (x Uint16x8) ConcatPermute(y Uint16x8, indices Uint16x8) Uint16x8 1181 1182 // ConcatPermute performs a full permutation of vector x, y using indices: 1183 // 1184 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1185 // 1186 // where xy is the concatenation of x (lower half) and y (upper half). 1187 // Only the needed bits to represent xy's index are used in indices' elements. 1188 // 1189 // Asm: VPERMI2W, CPU Feature: AVX512 1190 func (x Int16x16) ConcatPermute(y Int16x16, indices Uint16x16) Int16x16 1191 1192 // ConcatPermute performs a full permutation of vector x, y using indices: 1193 // 1194 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1195 // 1196 // where xy is the concatenation of x (lower half) and y (upper half). 1197 // Only the needed bits to represent xy's index are used in indices' elements. 1198 // 1199 // Asm: VPERMI2W, CPU Feature: AVX512 1200 func (x Uint16x16) ConcatPermute(y Uint16x16, indices Uint16x16) Uint16x16 1201 1202 // ConcatPermute performs a full permutation of vector x, y using indices: 1203 // 1204 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1205 // 1206 // where xy is the concatenation of x (lower half) and y (upper half). 1207 // Only the needed bits to represent xy's index are used in indices' elements. 1208 // 1209 // Asm: VPERMI2W, CPU Feature: AVX512 1210 func (x Int16x32) ConcatPermute(y Int16x32, indices Uint16x32) Int16x32 1211 1212 // ConcatPermute performs a full permutation of vector x, y using indices: 1213 // 1214 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1215 // 1216 // where xy is the concatenation of x (lower half) and y (upper half). 1217 // Only the needed bits to represent xy's index are used in indices' elements. 1218 // 1219 // Asm: VPERMI2W, CPU Feature: AVX512 1220 func (x Uint16x32) ConcatPermute(y Uint16x32, indices Uint16x32) Uint16x32 1221 1222 // ConcatPermute performs a full permutation of vector x, y using indices: 1223 // 1224 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1225 // 1226 // where xy is the concatenation of x (lower half) and y (upper half). 1227 // Only the needed bits to represent xy's index are used in indices' elements. 1228 // 1229 // Asm: VPERMI2PS, CPU Feature: AVX512 1230 func (x Float32x4) ConcatPermute(y Float32x4, indices Uint32x4) Float32x4 1231 1232 // ConcatPermute performs a full permutation of vector x, y using indices: 1233 // 1234 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1235 // 1236 // where xy is the concatenation of x (lower half) and y (upper half). 1237 // Only the needed bits to represent xy's index are used in indices' elements. 1238 // 1239 // Asm: VPERMI2D, CPU Feature: AVX512 1240 func (x Int32x4) ConcatPermute(y Int32x4, indices Uint32x4) Int32x4 1241 1242 // ConcatPermute performs a full permutation of vector x, y using indices: 1243 // 1244 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1245 // 1246 // where xy is the concatenation of x (lower half) and y (upper half). 1247 // Only the needed bits to represent xy's index are used in indices' elements. 1248 // 1249 // Asm: VPERMI2D, CPU Feature: AVX512 1250 func (x Uint32x4) ConcatPermute(y Uint32x4, indices Uint32x4) Uint32x4 1251 1252 // ConcatPermute performs a full permutation of vector x, y using indices: 1253 // 1254 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1255 // 1256 // where xy is the concatenation of x (lower half) and y (upper half). 1257 // Only the needed bits to represent xy's index are used in indices' elements. 1258 // 1259 // Asm: VPERMI2PS, CPU Feature: AVX512 1260 func (x Float32x8) ConcatPermute(y Float32x8, indices Uint32x8) Float32x8 1261 1262 // ConcatPermute performs a full permutation of vector x, y using indices: 1263 // 1264 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1265 // 1266 // where xy is the concatenation of x (lower half) and y (upper half). 1267 // Only the needed bits to represent xy's index are used in indices' elements. 1268 // 1269 // Asm: VPERMI2D, CPU Feature: AVX512 1270 func (x Int32x8) ConcatPermute(y Int32x8, indices Uint32x8) Int32x8 1271 1272 // ConcatPermute performs a full permutation of vector x, y using indices: 1273 // 1274 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1275 // 1276 // where xy is the concatenation of x (lower half) and y (upper half). 1277 // Only the needed bits to represent xy's index are used in indices' elements. 1278 // 1279 // Asm: VPERMI2D, CPU Feature: AVX512 1280 func (x Uint32x8) ConcatPermute(y Uint32x8, indices Uint32x8) Uint32x8 1281 1282 // ConcatPermute performs a full permutation of vector x, y using indices: 1283 // 1284 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1285 // 1286 // where xy is the concatenation of x (lower half) and y (upper half). 1287 // Only the needed bits to represent xy's index are used in indices' elements. 1288 // 1289 // Asm: VPERMI2PS, CPU Feature: AVX512 1290 func (x Float32x16) ConcatPermute(y Float32x16, indices Uint32x16) Float32x16 1291 1292 // ConcatPermute performs a full permutation of vector x, y using indices: 1293 // 1294 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1295 // 1296 // where xy is the concatenation of x (lower half) and y (upper half). 1297 // Only the needed bits to represent xy's index are used in indices' elements. 1298 // 1299 // Asm: VPERMI2D, CPU Feature: AVX512 1300 func (x Int32x16) ConcatPermute(y Int32x16, indices Uint32x16) Int32x16 1301 1302 // ConcatPermute performs a full permutation of vector x, y using indices: 1303 // 1304 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1305 // 1306 // where xy is the concatenation of x (lower half) and y (upper half). 1307 // Only the needed bits to represent xy's index are used in indices' elements. 1308 // 1309 // Asm: VPERMI2D, CPU Feature: AVX512 1310 func (x Uint32x16) ConcatPermute(y Uint32x16, indices Uint32x16) Uint32x16 1311 1312 // ConcatPermute performs a full permutation of vector x, y using indices: 1313 // 1314 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1315 // 1316 // where xy is the concatenation of x (lower half) and y (upper half). 1317 // Only the needed bits to represent xy's index are used in indices' elements. 1318 // 1319 // Asm: VPERMI2PD, CPU Feature: AVX512 1320 func (x Float64x2) ConcatPermute(y Float64x2, indices Uint64x2) Float64x2 1321 1322 // ConcatPermute performs a full permutation of vector x, y using indices: 1323 // 1324 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1325 // 1326 // where xy is the concatenation of x (lower half) and y (upper half). 1327 // Only the needed bits to represent xy's index are used in indices' elements. 1328 // 1329 // Asm: VPERMI2Q, CPU Feature: AVX512 1330 func (x Int64x2) ConcatPermute(y Int64x2, indices Uint64x2) Int64x2 1331 1332 // ConcatPermute performs a full permutation of vector x, y using indices: 1333 // 1334 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1335 // 1336 // where xy is the concatenation of x (lower half) and y (upper half). 1337 // Only the needed bits to represent xy's index are used in indices' elements. 1338 // 1339 // Asm: VPERMI2Q, CPU Feature: AVX512 1340 func (x Uint64x2) ConcatPermute(y Uint64x2, indices Uint64x2) Uint64x2 1341 1342 // ConcatPermute performs a full permutation of vector x, y using indices: 1343 // 1344 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1345 // 1346 // where xy is the concatenation of x (lower half) and y (upper half). 1347 // Only the needed bits to represent xy's index are used in indices' elements. 1348 // 1349 // Asm: VPERMI2PD, CPU Feature: AVX512 1350 func (x Float64x4) ConcatPermute(y Float64x4, indices Uint64x4) Float64x4 1351 1352 // ConcatPermute performs a full permutation of vector x, y using indices: 1353 // 1354 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1355 // 1356 // where xy is the concatenation of x (lower half) and y (upper half). 1357 // Only the needed bits to represent xy's index are used in indices' elements. 1358 // 1359 // Asm: VPERMI2Q, CPU Feature: AVX512 1360 func (x Int64x4) ConcatPermute(y Int64x4, indices Uint64x4) Int64x4 1361 1362 // ConcatPermute performs a full permutation of vector x, y using indices: 1363 // 1364 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1365 // 1366 // where xy is the concatenation of x (lower half) and y (upper half). 1367 // Only the needed bits to represent xy's index are used in indices' elements. 1368 // 1369 // Asm: VPERMI2Q, CPU Feature: AVX512 1370 func (x Uint64x4) ConcatPermute(y Uint64x4, indices Uint64x4) Uint64x4 1371 1372 // ConcatPermute performs a full permutation of vector x, y using indices: 1373 // 1374 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1375 // 1376 // where xy is the concatenation of x (lower half) and y (upper half). 1377 // Only the needed bits to represent xy's index are used in indices' elements. 1378 // 1379 // Asm: VPERMI2PD, CPU Feature: AVX512 1380 func (x Float64x8) ConcatPermute(y Float64x8, indices Uint64x8) Float64x8 1381 1382 // ConcatPermute performs a full permutation of vector x, y using indices: 1383 // 1384 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1385 // 1386 // where xy is the concatenation of x (lower half) and y (upper half). 1387 // Only the needed bits to represent xy's index are used in indices' elements. 1388 // 1389 // Asm: VPERMI2Q, CPU Feature: AVX512 1390 func (x Int64x8) ConcatPermute(y Int64x8, indices Uint64x8) Int64x8 1391 1392 // ConcatPermute performs a full permutation of vector x, y using indices: 1393 // 1394 // result = {xy[indices[0]], xy[indices[1]], ..., xy[indices[n]]} 1395 // 1396 // where xy is the concatenation of x (lower half) and y (upper half). 1397 // Only the needed bits to represent xy's index are used in indices' elements. 1398 // 1399 // Asm: VPERMI2Q, CPU Feature: AVX512 1400 func (x Uint64x8) ConcatPermute(y Uint64x8, indices Uint64x8) Uint64x8 1401 1402 /* ConcatPermute128Scalars */ 1403 1404 // ConcatPermute128Scalars treats the 256-bit vectors x and y as a single vector of four 1405 // 128-bit elements, and returns a 256-bit result formed by 1406 // concatenating the two elements specified by lo and hi. 1407 // For example, 1408 // 1409 // {40, 41, 42, 43, 50, 51, 52, 53}.ConcatPermute128Scalars(3, 0, {60, 61, 62, 63, 70, 71, 72, 73}) 1410 // 1411 // returns {70, 71, 72, 73, 40, 41, 42, 43}. 1412 // 1413 // lo, hi should be between 0 and 3, inclusive; other values may result in a runtime panic. 1414 // 1415 // A non-constant value of lo, hi may result in significantly worse performance for this operation. 1416 // 1417 // Asm: VPERM2F128, CPU Feature: AVX 1418 func (x Float32x8) ConcatPermute128Scalars(lo, hi uint8, y Float32x8) Float32x8 1419 1420 // ConcatPermute128Scalars treats the 256-bit vectors x and y as a single vector of four 1421 // 128-bit elements, and returns a 256-bit result formed by 1422 // concatenating the two elements specified by lo and hi. 1423 // For example, 1424 // 1425 // {40, 41, 50, 51}.ConcatPermute128Scalars(3, 0, {60, 61, 70, 71}) 1426 // 1427 // returns {70, 71, 40, 41}. 1428 // 1429 // lo, hi should be between 0 and 3, inclusive; other values may result in a runtime panic. 1430 // 1431 // A non-constant value of lo, hi may result in significantly worse performance for this operation. 1432 // 1433 // Asm: VPERM2F128, CPU Feature: AVX 1434 func (x Float64x4) ConcatPermute128Scalars(lo, hi uint8, y Float64x4) Float64x4 1435 1436 // ConcatPermute128Scalars treats the 256-bit vectors x and y as a single vector of four 1437 // 128-bit elements, and returns a 256-bit result formed by 1438 // concatenating the two elements specified by lo and hi. 1439 // For example, 1440 // 1441 // {0x40, 0x41, ..., 0x4f, 0x50, 0x51, ..., 0x5f}.ConcatPermute128Scalars(3, 0, 1442 // {0x60, 0x61, ..., 0x6f, 0x70, 0x71, ..., 0x7f}) 1443 // 1444 // returns {0x70, 0x71, ..., 0x7f, 0x40, 0x41, ..., 0x4f}. 1445 // 1446 // lo, hi should be between 0 and 3, inclusive; other values may result in a runtime panic. 1447 // 1448 // A non-constant value of lo, hi may result in significantly worse performance for this operation. 1449 // 1450 // Asm: VPERM2I128, CPU Feature: AVX2 1451 func (x Int8x32) ConcatPermute128Scalars(lo, hi uint8, y Int8x32) Int8x32 1452 1453 // ConcatPermute128Scalars treats the 256-bit vectors x and y as a single vector of four 1454 // 128-bit elements, and returns a 256-bit result formed by 1455 // concatenating the two elements specified by lo and hi. 1456 // For example, 1457 // 1458 // {40, 41, 42, 43, 44, 45, 46, 47, 50, 51, 52, 53, 54, 55, 56, 57}.ConcatPermute128Scalars(3, 0, 1459 // {60, 61, 62, 63, 64, 65, 66, 67, 70, 71, 72, 73, 74, 75, 76, 77}) 1460 // 1461 // returns {70, 71, 72, 73, 74, 75, 76, 77, 40, 41, 42, 43, 44, 45, 46, 47}. 1462 // 1463 // lo, hi should be between 0 and 3, inclusive; other values may result in a runtime panic. 1464 // 1465 // A non-constant value of lo, hi may result in significantly worse performance for this operation. 1466 // 1467 // Asm: VPERM2I128, CPU Feature: AVX2 1468 func (x Int16x16) ConcatPermute128Scalars(lo, hi uint8, y Int16x16) Int16x16 1469 1470 // ConcatPermute128Scalars treats the 256-bit vectors x and y as a single vector of four 1471 // 128-bit elements, and returns a 256-bit result formed by 1472 // concatenating the two elements specified by lo and hi. 1473 // For example, 1474 // 1475 // {40, 41, 42, 43, 50, 51, 52, 53}.ConcatPermute128Scalars(3, 0, {60, 61, 62, 63, 70, 71, 72, 73}) 1476 // 1477 // returns {70, 71, 72, 73, 40, 41, 42, 43}. 1478 // 1479 // lo, hi should be between 0 and 3, inclusive; other values may result in a runtime panic. 1480 // 1481 // A non-constant value of lo, hi may result in significantly worse performance for this operation. 1482 // 1483 // Asm: VPERM2I128, CPU Feature: AVX2 1484 func (x Int32x8) ConcatPermute128Scalars(lo, hi uint8, y Int32x8) Int32x8 1485 1486 // ConcatPermute128Scalars treats the 256-bit vectors x and y as a single vector of four 1487 // 128-bit elements, and returns a 256-bit result formed by 1488 // concatenating the two elements specified by lo and hi. 1489 // For example, 1490 // 1491 // {40, 41, 50, 51}.ConcatPermute128Scalars(3, 0, {60, 61, 70, 71}) 1492 // 1493 // returns {70, 71, 40, 41}. 1494 // 1495 // lo, hi should be between 0 and 3, inclusive; other values may result in a runtime panic. 1496 // 1497 // A non-constant value of lo, hi may result in significantly worse performance for this operation. 1498 // 1499 // Asm: VPERM2I128, CPU Feature: AVX2 1500 func (x Int64x4) ConcatPermute128Scalars(lo, hi uint8, y Int64x4) Int64x4 1501 1502 // ConcatPermute128Scalars treats the 256-bit vectors x and y as a single vector of four 1503 // 128-bit elements, and returns a 256-bit result formed by 1504 // concatenating the two elements specified by lo and hi. 1505 // For example, 1506 // 1507 // {0x40, 0x41, ..., 0x4f, 0x50, 0x51, ..., 0x5f}.ConcatPermute128Scalars(3, 0, 1508 // {0x60, 0x61, ..., 0x6f, 0x70, 0x71, ..., 0x7f}) 1509 // 1510 // returns {0x70, 0x71, ..., 0x7f, 0x40, 0x41, ..., 0x4f}. 1511 // 1512 // lo, hi should be between 0 and 3, inclusive; other values may result in a runtime panic. 1513 // 1514 // A non-constant value of lo, hi may result in significantly worse performance for this operation. 1515 // 1516 // Asm: VPERM2I128, CPU Feature: AVX2 1517 func (x Uint8x32) ConcatPermute128Scalars(lo, hi uint8, y Uint8x32) Uint8x32 1518 1519 // ConcatPermute128Scalars treats the 256-bit vectors x and y as a single vector of four 1520 // 128-bit elements, and returns a 256-bit result formed by 1521 // concatenating the two elements specified by lo and hi. 1522 // For example, 1523 // 1524 // {40, 41, 42, 43, 44, 45, 46, 47, 50, 51, 52, 53, 54, 55, 56, 57}.ConcatPermute128Scalars(3, 0, 1525 // {60, 61, 62, 63, 64, 65, 66, 67, 70, 71, 72, 73, 74, 75, 76, 77}) 1526 // 1527 // returns {70, 71, 72, 73, 74, 75, 76, 77, 40, 41, 42, 43, 44, 45, 46, 47}. 1528 // 1529 // lo, hi should be between 0 and 3, inclusive; other values may result in a runtime panic. 1530 // 1531 // A non-constant value of lo, hi may result in significantly worse performance for this operation. 1532 // 1533 // Asm: VPERM2I128, CPU Feature: AVX2 1534 func (x Uint16x16) ConcatPermute128Scalars(lo, hi uint8, y Uint16x16) Uint16x16 1535 1536 // ConcatPermute128Scalars treats the 256-bit vectors x and y as a single vector of four 1537 // 128-bit elements, and returns a 256-bit result formed by 1538 // concatenating the two elements specified by lo and hi. 1539 // For example, 1540 // 1541 // {40, 41, 42, 43, 50, 51, 52, 53}.ConcatPermute128Scalars(3, 0, {60, 61, 62, 63, 70, 71, 72, 73}) 1542 // 1543 // returns {70, 71, 72, 73, 40, 41, 42, 43}. 1544 // 1545 // lo, hi should be between 0 and 3, inclusive; other values may result in a runtime panic. 1546 // 1547 // A non-constant value of lo, hi may result in significantly worse performance for this operation. 1548 // 1549 // Asm: VPERM2I128, CPU Feature: AVX2 1550 func (x Uint32x8) ConcatPermute128Scalars(lo, hi uint8, y Uint32x8) Uint32x8 1551 1552 // ConcatPermute128Scalars treats the 256-bit vectors x and y as a single vector of four 1553 // 128-bit elements, and returns a 256-bit result formed by 1554 // concatenating the two elements specified by lo and hi. 1555 // For example, 1556 // 1557 // {40, 41, 50, 51}.ConcatPermute128Scalars(3, 0, {60, 61, 70, 71}) 1558 // 1559 // returns {70, 71, 40, 41}. 1560 // 1561 // lo, hi should be between 0 and 3, inclusive; other values may result in a runtime panic. 1562 // 1563 // A non-constant value of lo, hi may result in significantly worse performance for this operation. 1564 // 1565 // Asm: VPERM2I128, CPU Feature: AVX2 1566 func (x Uint64x4) ConcatPermute128Scalars(lo, hi uint8, y Uint64x4) Uint64x4 1567 1568 /* ConcatShiftBytesRight */ 1569 1570 // ConcatShiftBytesRight concatenates x and y and shifts it right by shift bytes. 1571 // The result vector will be the lower half of the concatenated vector. 1572 // 1573 // A non-constant value of shift may result in significantly worse performance for this operation. 1574 // 1575 // Asm: VPALIGNR, CPU Feature: AVX 1576 func (x Uint8x16) ConcatShiftBytesRight(y Uint8x16, shift uint64) Uint8x16 1577 1578 /* ConcatShiftBytesRightGrouped */ 1579 1580 // ConcatShiftBytesRightGrouped concatenates x and y and shifts it right by shift bytes. 1581 // The result vector will be the lower half of the concatenated vector. 1582 // This operation is performed grouped by each 16 byte. 1583 // 1584 // A non-constant value of shift may result in significantly worse performance for this operation. 1585 // 1586 // Asm: VPALIGNR, CPU Feature: AVX2 1587 func (x Uint8x32) ConcatShiftBytesRightGrouped(y Uint8x32, shift uint64) Uint8x32 1588 1589 // ConcatShiftBytesRightGrouped concatenates x and y and shifts it right by shift bytes. 1590 // The result vector will be the lower half of the concatenated vector. 1591 // This operation is performed grouped by each 16 byte. 1592 // 1593 // A non-constant value of shift may result in significantly worse performance for this operation. 1594 // 1595 // Asm: VPALIGNR, CPU Feature: AVX512 1596 func (x Uint8x64) ConcatShiftBytesRightGrouped(y Uint8x64, shift uint64) Uint8x64 1597 1598 /* ConcatSubPairs */ 1599 1600 // ConcatSubPairs horizontally subtracts adjacent pairs of elements. 1601 // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...]. 1602 // 1603 // Asm: VHSUBPS, CPU Feature: AVX 1604 func (x Float32x4) ConcatSubPairs(y Float32x4) Float32x4 1605 1606 // ConcatSubPairs horizontally subtracts adjacent pairs of elements. 1607 // For x = [x0, x1] and y = [y0, y1], the result is [x0-x1, y0-y1]. 1608 // 1609 // Asm: VHSUBPD, CPU Feature: AVX 1610 func (x Float64x2) ConcatSubPairs(y Float64x2) Float64x2 1611 1612 // ConcatSubPairs horizontally subtracts adjacent pairs of elements. 1613 // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...]. 1614 // 1615 // Asm: VPHSUBW, CPU Feature: AVX 1616 func (x Int16x8) ConcatSubPairs(y Int16x8) Int16x8 1617 1618 // ConcatSubPairs horizontally subtracts adjacent pairs of elements. 1619 // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...]. 1620 // 1621 // Asm: VPHSUBD, CPU Feature: AVX 1622 func (x Int32x4) ConcatSubPairs(y Int32x4) Int32x4 1623 1624 // ConcatSubPairs horizontally subtracts adjacent pairs of elements. 1625 // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...]. 1626 // 1627 // Asm: VPHSUBW, CPU Feature: AVX 1628 func (x Uint16x8) ConcatSubPairs(y Uint16x8) Uint16x8 1629 1630 // ConcatSubPairs horizontally subtracts adjacent pairs of elements. 1631 // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...]. 1632 // 1633 // Asm: VPHSUBD, CPU Feature: AVX 1634 func (x Uint32x4) ConcatSubPairs(y Uint32x4) Uint32x4 1635 1636 /* ConcatSubPairsGrouped */ 1637 1638 // ConcatSubPairsGrouped horizontally subtracts adjacent pairs of elements. 1639 // With each 128-bit as a group: 1640 // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...]. 1641 // 1642 // Asm: VHSUBPS, CPU Feature: AVX 1643 func (x Float32x8) ConcatSubPairsGrouped(y Float32x8) Float32x8 1644 1645 // ConcatSubPairsGrouped horizontally subtracts adjacent pairs of elements. 1646 // With each 128-bit as a group: 1647 // for x = [x0, x1] and y = [y0, y1], the result is [x0-x1, y0-y1]. 1648 // 1649 // Asm: VHSUBPD, CPU Feature: AVX 1650 func (x Float64x4) ConcatSubPairsGrouped(y Float64x4) Float64x4 1651 1652 // ConcatSubPairsGrouped horizontally subtracts adjacent pairs of elements. 1653 // With each 128-bit as a group: 1654 // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...]. 1655 // 1656 // Asm: VPHSUBW, CPU Feature: AVX2 1657 func (x Int16x16) ConcatSubPairsGrouped(y Int16x16) Int16x16 1658 1659 // ConcatSubPairsGrouped horizontally subtracts adjacent pairs of elements. 1660 // With each 128-bit as a group: 1661 // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...]. 1662 // 1663 // Asm: VPHSUBD, CPU Feature: AVX2 1664 func (x Int32x8) ConcatSubPairsGrouped(y Int32x8) Int32x8 1665 1666 // ConcatSubPairsGrouped horizontally subtracts adjacent pairs of elements. 1667 // With each 128-bit as a group: 1668 // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...]. 1669 // 1670 // Asm: VPHSUBW, CPU Feature: AVX2 1671 func (x Uint16x16) ConcatSubPairsGrouped(y Uint16x16) Uint16x16 1672 1673 // ConcatSubPairsGrouped horizontally subtracts adjacent pairs of elements. 1674 // With each 128-bit as a group: 1675 // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...]. 1676 // 1677 // Asm: VPHSUBD, CPU Feature: AVX2 1678 func (x Uint32x8) ConcatSubPairsGrouped(y Uint32x8) Uint32x8 1679 1680 /* ConcatSubPairsSaturated */ 1681 1682 // ConcatSubPairsSaturated horizontally subtracts adjacent pairs of elements with saturation. 1683 // For x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...]. 1684 // 1685 // Asm: VPHSUBSW, CPU Feature: AVX 1686 func (x Int16x8) ConcatSubPairsSaturated(y Int16x8) Int16x8 1687 1688 /* ConcatSubPairsSaturatedGrouped */ 1689 1690 // ConcatSubPairsSaturatedGrouped horizontally subtracts adjacent pairs of elements with saturation. 1691 // With each 128-bit as a group: 1692 // for x = [x0, x1, x2, x3, ...] and y = [y0, y1, y2, y3, ...], the result is [x0-x1, x2-x3, ..., y0-y1, y2-y3, ...]. 1693 // 1694 // Asm: VPHSUBSW, CPU Feature: AVX2 1695 func (x Int16x16) ConcatSubPairsSaturatedGrouped(y Int16x16) Int16x16 1696 1697 /* ConvertToFloat32 */ 1698 1699 // ConvertToFloat32 converts element values to float32. 1700 // The result vector's elements are rounded to the nearest value. 1701 // 1702 // Asm: VCVTPD2PSX, CPU Feature: AVX 1703 func (x Float64x2) ConvertToFloat32() Float32x4 1704 1705 // ConvertToFloat32 converts element values to float32. 1706 // The result vector's elements are rounded to the nearest value. 1707 // 1708 // Asm: VCVTPD2PSY, CPU Feature: AVX 1709 func (x Float64x4) ConvertToFloat32() Float32x4 1710 1711 // ConvertToFloat32 converts element values to float32. 1712 // The result vector's elements are rounded to the nearest value. 1713 // 1714 // Asm: VCVTPD2PS, CPU Feature: AVX512 1715 func (x Float64x8) ConvertToFloat32() Float32x8 1716 1717 // ConvertToFloat32 converts element values to float32. 1718 // 1719 // Asm: VCVTDQ2PS, CPU Feature: AVX 1720 func (x Int32x4) ConvertToFloat32() Float32x4 1721 1722 // ConvertToFloat32 converts element values to float32. 1723 // 1724 // Asm: VCVTDQ2PS, CPU Feature: AVX 1725 func (x Int32x8) ConvertToFloat32() Float32x8 1726 1727 // ConvertToFloat32 converts element values to float32. 1728 // 1729 // Asm: VCVTDQ2PS, CPU Feature: AVX512 1730 func (x Int32x16) ConvertToFloat32() Float32x16 1731 1732 // ConvertToFloat32 converts element values to float32. 1733 // 1734 // Asm: VCVTQQ2PSX, CPU Feature: AVX512 1735 func (x Int64x2) ConvertToFloat32() Float32x4 1736 1737 // ConvertToFloat32 converts element values to float32. 1738 // 1739 // Asm: VCVTQQ2PSY, CPU Feature: AVX512 1740 func (x Int64x4) ConvertToFloat32() Float32x4 1741 1742 // ConvertToFloat32 converts element values to float32. 1743 // 1744 // Asm: VCVTQQ2PS, CPU Feature: AVX512 1745 func (x Int64x8) ConvertToFloat32() Float32x8 1746 1747 // ConvertToFloat32 converts element values to float32. 1748 // 1749 // Asm: VCVTUDQ2PS, CPU Feature: AVX512 1750 func (x Uint32x4) ConvertToFloat32() Float32x4 1751 1752 // ConvertToFloat32 converts element values to float32. 1753 // 1754 // Asm: VCVTUDQ2PS, CPU Feature: AVX512 1755 func (x Uint32x8) ConvertToFloat32() Float32x8 1756 1757 // ConvertToFloat32 converts element values to float32. 1758 // 1759 // Asm: VCVTUDQ2PS, CPU Feature: AVX512 1760 func (x Uint32x16) ConvertToFloat32() Float32x16 1761 1762 // ConvertToFloat32 converts element values to float32. 1763 // 1764 // Asm: VCVTUQQ2PSX, CPU Feature: AVX512 1765 func (x Uint64x2) ConvertToFloat32() Float32x4 1766 1767 // ConvertToFloat32 converts element values to float32. 1768 // 1769 // Asm: VCVTUQQ2PSY, CPU Feature: AVX512 1770 func (x Uint64x4) ConvertToFloat32() Float32x4 1771 1772 // ConvertToFloat32 converts element values to float32. 1773 // 1774 // Asm: VCVTUQQ2PS, CPU Feature: AVX512 1775 func (x Uint64x8) ConvertToFloat32() Float32x8 1776 1777 /* ConvertToFloat64 */ 1778 1779 // ConvertToFloat64 converts element values to float64. 1780 // 1781 // Asm: VCVTPS2PD, CPU Feature: AVX 1782 func (x Float32x4) ConvertToFloat64() Float64x4 1783 1784 // ConvertToFloat64 converts element values to float64. 1785 // 1786 // Asm: VCVTPS2PD, CPU Feature: AVX512 1787 func (x Float32x8) ConvertToFloat64() Float64x8 1788 1789 // ConvertToFloat64 converts element values to float64. 1790 // 1791 // Asm: VCVTDQ2PD, CPU Feature: AVX 1792 func (x Int32x4) ConvertToFloat64() Float64x4 1793 1794 // ConvertToFloat64 converts element values to float64. 1795 // 1796 // Asm: VCVTDQ2PD, CPU Feature: AVX512 1797 func (x Int32x8) ConvertToFloat64() Float64x8 1798 1799 // ConvertToFloat64 converts element values to float64. 1800 // 1801 // Asm: VCVTQQ2PD, CPU Feature: AVX512 1802 func (x Int64x2) ConvertToFloat64() Float64x2 1803 1804 // ConvertToFloat64 converts element values to float64. 1805 // 1806 // Asm: VCVTQQ2PD, CPU Feature: AVX512 1807 func (x Int64x4) ConvertToFloat64() Float64x4 1808 1809 // ConvertToFloat64 converts element values to float64. 1810 // 1811 // Asm: VCVTQQ2PD, CPU Feature: AVX512 1812 func (x Int64x8) ConvertToFloat64() Float64x8 1813 1814 // ConvertToFloat64 converts element values to float64. 1815 // 1816 // Asm: VCVTUDQ2PD, CPU Feature: AVX512 1817 func (x Uint32x4) ConvertToFloat64() Float64x4 1818 1819 // ConvertToFloat64 converts element values to float64. 1820 // 1821 // Asm: VCVTUDQ2PD, CPU Feature: AVX512 1822 func (x Uint32x8) ConvertToFloat64() Float64x8 1823 1824 // ConvertToFloat64 converts element values to float64. 1825 // 1826 // Asm: VCVTUQQ2PD, CPU Feature: AVX512 1827 func (x Uint64x2) ConvertToFloat64() Float64x2 1828 1829 // ConvertToFloat64 converts element values to float64. 1830 // 1831 // Asm: VCVTUQQ2PD, CPU Feature: AVX512 1832 func (x Uint64x4) ConvertToFloat64() Float64x4 1833 1834 // ConvertToFloat64 converts element values to float64. 1835 // 1836 // Asm: VCVTUQQ2PD, CPU Feature: AVX512 1837 func (x Uint64x8) ConvertToFloat64() Float64x8 1838 1839 /* ConvertToInt32 */ 1840 1841 // ConvertToInt32 converts element values to int32. 1842 // When a conversion is inexact, a truncated (round toward zero) value is returned. 1843 // If a converted result cannot be represented in int32, an implementation-defined 1844 // architecture-specific value is returned. 1845 // 1846 // Asm: VCVTTPS2DQ, CPU Feature: AVX 1847 func (x Float32x4) ConvertToInt32() Int32x4 1848 1849 // ConvertToInt32 converts element values to int32. 1850 // When a conversion is inexact, a truncated (round toward zero) value is returned. 1851 // If a converted result cannot be represented in int32, an implementation-defined 1852 // architecture-specific value is returned. 1853 // 1854 // Asm: VCVTTPS2DQ, CPU Feature: AVX 1855 func (x Float32x8) ConvertToInt32() Int32x8 1856 1857 // ConvertToInt32 converts element values to int32. 1858 // When a conversion is inexact, a truncated (round toward zero) value is returned. 1859 // If a converted result cannot be represented in int32, an implementation-defined 1860 // architecture-specific value is returned. 1861 // 1862 // Asm: VCVTTPS2DQ, CPU Feature: AVX512 1863 func (x Float32x16) ConvertToInt32() Int32x16 1864 1865 // ConvertToInt32 converts element values to int32. 1866 // When a conversion is inexact, a truncated (round toward zero) value is returned. 1867 // If a converted result cannot be represented in int32, an implementation-defined 1868 // architecture-specific value is returned. 1869 // 1870 // Asm: VCVTTPD2DQX, CPU Feature: AVX 1871 func (x Float64x2) ConvertToInt32() Int32x4 1872 1873 // ConvertToInt32 converts element values to int32. 1874 // When a conversion is inexact, a truncated (round toward zero) value is returned. 1875 // If a converted result cannot be represented in int32, an implementation-defined 1876 // architecture-specific value is returned. 1877 // 1878 // Asm: VCVTTPD2DQY, CPU Feature: AVX 1879 func (x Float64x4) ConvertToInt32() Int32x4 1880 1881 // ConvertToInt32 converts element values to int32. 1882 // When a conversion is inexact, a truncated (round toward zero) value is returned. 1883 // If a converted result cannot be represented in int32, an implementation-defined 1884 // architecture-specific value is returned. 1885 // 1886 // Asm: VCVTTPD2DQ, CPU Feature: AVX512 1887 func (x Float64x8) ConvertToInt32() Int32x8 1888 1889 /* ConvertToInt64 */ 1890 1891 // ConvertToInt64 converts element values to int64. 1892 // When a conversion is inexact, a truncated (round toward zero) value is returned. 1893 // If a converted result cannot be represented in int64, an implementation-defined 1894 // architecture-specific value is returned. 1895 // 1896 // Asm: VCVTTPS2QQ, CPU Feature: AVX512 1897 func (x Float32x4) ConvertToInt64() Int64x4 1898 1899 // ConvertToInt64 converts element values to int64. 1900 // When a conversion is inexact, a truncated (round toward zero) value is returned. 1901 // If a converted result cannot be represented in int64, an implementation-defined 1902 // architecture-specific value is returned. 1903 // 1904 // Asm: VCVTTPS2QQ, CPU Feature: AVX512 1905 func (x Float32x8) ConvertToInt64() Int64x8 1906 1907 // ConvertToInt64 converts element values to int64. 1908 // When a conversion is inexact, a truncated (round toward zero) value is returned. 1909 // If a converted result cannot be represented in int64, an implementation-defined 1910 // architecture-specific value is returned. 1911 // 1912 // Asm: VCVTTPD2QQ, CPU Feature: AVX512 1913 func (x Float64x2) ConvertToInt64() Int64x2 1914 1915 // ConvertToInt64 converts element values to int64. 1916 // When a conversion is inexact, a truncated (round toward zero) value is returned. 1917 // If a converted result cannot be represented in int64, an implementation-defined 1918 // architecture-specific value is returned. 1919 // 1920 // Asm: VCVTTPD2QQ, CPU Feature: AVX512 1921 func (x Float64x4) ConvertToInt64() Int64x4 1922 1923 // ConvertToInt64 converts element values to int64. 1924 // When a conversion is inexact, a truncated (round toward zero) value is returned. 1925 // If a converted result cannot be represented in int64, an implementation-defined 1926 // architecture-specific value is returned. 1927 // 1928 // Asm: VCVTTPD2QQ, CPU Feature: AVX512 1929 func (x Float64x8) ConvertToInt64() Int64x8 1930 1931 /* ConvertToUint32 */ 1932 1933 // ConvertToUint32 converts element values to uint32. 1934 // When a conversion is inexact, a truncated (round toward zero) value is returned. 1935 // If a converted result cannot be represented in uint32, an implementation-defined 1936 // architecture-specific value is returned. 1937 // 1938 // Asm: VCVTTPS2UDQ, CPU Feature: AVX512 1939 func (x Float32x4) ConvertToUint32() Uint32x4 1940 1941 // ConvertToUint32 converts element values to uint32. 1942 // When a conversion is inexact, a truncated (round toward zero) value is returned. 1943 // If a converted result cannot be represented in uint32, an implementation-defined 1944 // architecture-specific value is returned. 1945 // 1946 // Asm: VCVTTPS2UDQ, CPU Feature: AVX512 1947 func (x Float32x8) ConvertToUint32() Uint32x8 1948 1949 // ConvertToUint32 converts element values to uint32. 1950 // When a conversion is inexact, a truncated (round toward zero) value is returned. 1951 // If a converted result cannot be represented in uint32, an implementation-defined 1952 // architecture-specific value is returned. 1953 // 1954 // Asm: VCVTTPS2UDQ, CPU Feature: AVX512 1955 func (x Float32x16) ConvertToUint32() Uint32x16 1956 1957 // ConvertToUint32 converts element values to uint32. 1958 // When a conversion is inexact, a truncated (round toward zero) value is returned. 1959 // If a converted result cannot be represented in uint32, an implementation-defined 1960 // architecture-specific value is returned. 1961 // 1962 // Asm: VCVTTPD2UDQX, CPU Feature: AVX512 1963 func (x Float64x2) ConvertToUint32() Uint32x4 1964 1965 // ConvertToUint32 converts element values to uint32. 1966 // When a conversion is inexact, a truncated (round toward zero) value is returned. 1967 // If a converted result cannot be represented in uint32, an implementation-defined 1968 // architecture-specific value is returned. 1969 // 1970 // Asm: VCVTTPD2UDQY, CPU Feature: AVX512 1971 func (x Float64x4) ConvertToUint32() Uint32x4 1972 1973 // ConvertToUint32 converts element values to uint32. 1974 // When a conversion is inexact, a truncated (round toward zero) value is returned. 1975 // If a converted result cannot be represented in uint32, an implementation-defined 1976 // architecture-specific value is returned. 1977 // 1978 // Asm: VCVTTPD2UDQ, CPU Feature: AVX512 1979 func (x Float64x8) ConvertToUint32() Uint32x8 1980 1981 /* ConvertToUint64 */ 1982 1983 // ConvertToUint64 converts element values to uint64. 1984 // When a conversion is inexact, a truncated (round toward zero) value is returned. 1985 // If a converted result cannot be represented in uint64, an implementation-defined 1986 // architecture-specific value is returned. 1987 // 1988 // Asm: VCVTTPS2UQQ, CPU Feature: AVX512 1989 func (x Float32x4) ConvertToUint64() Uint64x4 1990 1991 // ConvertToUint64 converts element values to uint64. 1992 // When a conversion is inexact, a truncated (round toward zero) value is returned. 1993 // If a converted result cannot be represented in uint64, an implementation-defined 1994 // architecture-specific value is returned. 1995 // 1996 // Asm: VCVTTPS2UQQ, CPU Feature: AVX512 1997 func (x Float32x8) ConvertToUint64() Uint64x8 1998 1999 // ConvertToUint64 converts element values to uint64. 2000 // When a conversion is inexact, a truncated (round toward zero) value is returned. 2001 // If a converted result cannot be represented in uint64, an implementation-defined 2002 // architecture-specific value is returned. 2003 // 2004 // Asm: VCVTTPD2UQQ, CPU Feature: AVX512 2005 func (x Float64x2) ConvertToUint64() Uint64x2 2006 2007 // ConvertToUint64 converts element values to uint64. 2008 // When a conversion is inexact, a truncated (round toward zero) value is returned. 2009 // If a converted result cannot be represented in uint64, an implementation-defined 2010 // architecture-specific value is returned. 2011 // 2012 // Asm: VCVTTPD2UQQ, CPU Feature: AVX512 2013 func (x Float64x4) ConvertToUint64() Uint64x4 2014 2015 // ConvertToUint64 converts element values to uint64. 2016 // When a conversion is inexact, a truncated (round toward zero) value is returned. 2017 // If a converted result cannot be represented in uint64, an implementation-defined 2018 // architecture-specific value is returned. 2019 // 2020 // Asm: VCVTTPD2UQQ, CPU Feature: AVX512 2021 func (x Float64x8) ConvertToUint64() Uint64x8 2022 2023 /* Div */ 2024 2025 // Div divides elements of two vectors. Division by zero follows IEEE 754 and does not panic. 2026 // 2027 // Asm: VDIVPS, CPU Feature: AVX 2028 func (x Float32x4) Div(y Float32x4) Float32x4 2029 2030 // Div divides elements of two vectors. Division by zero follows IEEE 754 and does not panic. 2031 // 2032 // Asm: VDIVPS, CPU Feature: AVX 2033 func (x Float32x8) Div(y Float32x8) Float32x8 2034 2035 // Div divides elements of two vectors. Division by zero follows IEEE 754 and does not panic. 2036 // 2037 // Asm: VDIVPS, CPU Feature: AVX512 2038 func (x Float32x16) Div(y Float32x16) Float32x16 2039 2040 // Div divides elements of two vectors. Division by zero follows IEEE 754 and does not panic. 2041 // 2042 // Asm: VDIVPD, CPU Feature: AVX 2043 func (x Float64x2) Div(y Float64x2) Float64x2 2044 2045 // Div divides elements of two vectors. Division by zero follows IEEE 754 and does not panic. 2046 // 2047 // Asm: VDIVPD, CPU Feature: AVX 2048 func (x Float64x4) Div(y Float64x4) Float64x4 2049 2050 // Div divides elements of two vectors. Division by zero follows IEEE 754 and does not panic. 2051 // 2052 // Asm: VDIVPD, CPU Feature: AVX512 2053 func (x Float64x8) Div(y Float64x8) Float64x8 2054 2055 /* DotProductPairs */ 2056 2057 // DotProductPairs multiplies the elements and add the pairs together, 2058 // yielding a vector of half as many elements with twice the input element size. 2059 // 2060 // Asm: VPMADDWD, CPU Feature: AVX 2061 func (x Int16x8) DotProductPairs(y Int16x8) Int32x4 2062 2063 // DotProductPairs multiplies the elements and add the pairs together, 2064 // yielding a vector of half as many elements with twice the input element size. 2065 // 2066 // Asm: VPMADDWD, CPU Feature: AVX2 2067 func (x Int16x16) DotProductPairs(y Int16x16) Int32x8 2068 2069 // DotProductPairs multiplies the elements and add the pairs together, 2070 // yielding a vector of half as many elements with twice the input element size. 2071 // 2072 // Asm: VPMADDWD, CPU Feature: AVX512 2073 func (x Int16x32) DotProductPairs(y Int16x32) Int32x16 2074 2075 /* DotProductPairsSaturated */ 2076 2077 // DotProductPairsSaturated multiplies the elements and add the pairs together with saturation, 2078 // yielding a vector of half as many elements with twice the input element size. 2079 // 2080 // Asm: VPMADDUBSW, CPU Feature: AVX 2081 func (x Uint8x16) DotProductPairsSaturated(y Int8x16) Int16x8 2082 2083 // DotProductPairsSaturated multiplies the elements and add the pairs together with saturation, 2084 // yielding a vector of half as many elements with twice the input element size. 2085 // 2086 // Asm: VPMADDUBSW, CPU Feature: AVX2 2087 func (x Uint8x32) DotProductPairsSaturated(y Int8x32) Int16x16 2088 2089 // DotProductPairsSaturated multiplies the elements and add the pairs together with saturation, 2090 // yielding a vector of half as many elements with twice the input element size. 2091 // 2092 // Asm: VPMADDUBSW, CPU Feature: AVX512 2093 func (x Uint8x64) DotProductPairsSaturated(y Int8x64) Int16x32 2094 2095 /* Equal */ 2096 2097 // Equal returns a mask whose elements indicate whether x == y. 2098 // 2099 // Asm: VPCMPEQB, CPU Feature: AVX 2100 func (x Int8x16) Equal(y Int8x16) Mask8x16 2101 2102 // Equal returns a mask whose elements indicate whether x == y. 2103 // 2104 // Asm: VPCMPEQB, CPU Feature: AVX2 2105 func (x Int8x32) Equal(y Int8x32) Mask8x32 2106 2107 // Equal returns a mask whose elements indicate whether x == y. 2108 // 2109 // Asm: VPCMPEQB, CPU Feature: AVX512 2110 func (x Int8x64) Equal(y Int8x64) Mask8x64 2111 2112 // Equal returns a mask whose elements indicate whether x == y. 2113 // 2114 // Asm: VPCMPEQW, CPU Feature: AVX 2115 func (x Int16x8) Equal(y Int16x8) Mask16x8 2116 2117 // Equal returns a mask whose elements indicate whether x == y. 2118 // 2119 // Asm: VPCMPEQW, CPU Feature: AVX2 2120 func (x Int16x16) Equal(y Int16x16) Mask16x16 2121 2122 // Equal returns a mask whose elements indicate whether x == y. 2123 // 2124 // Asm: VPCMPEQW, CPU Feature: AVX512 2125 func (x Int16x32) Equal(y Int16x32) Mask16x32 2126 2127 // Equal returns a mask whose elements indicate whether x == y. 2128 // 2129 // Asm: VPCMPEQD, CPU Feature: AVX 2130 func (x Int32x4) Equal(y Int32x4) Mask32x4 2131 2132 // Equal returns a mask whose elements indicate whether x == y. 2133 // 2134 // Asm: VPCMPEQD, CPU Feature: AVX2 2135 func (x Int32x8) Equal(y Int32x8) Mask32x8 2136 2137 // Equal returns a mask whose elements indicate whether x == y. 2138 // 2139 // Asm: VPCMPEQD, CPU Feature: AVX512 2140 func (x Int32x16) Equal(y Int32x16) Mask32x16 2141 2142 // Equal returns a mask whose elements indicate whether x == y. 2143 // 2144 // Asm: VPCMPEQQ, CPU Feature: AVX 2145 func (x Int64x2) Equal(y Int64x2) Mask64x2 2146 2147 // Equal returns a mask whose elements indicate whether x == y. 2148 // 2149 // Asm: VPCMPEQQ, CPU Feature: AVX2 2150 func (x Int64x4) Equal(y Int64x4) Mask64x4 2151 2152 // Equal returns a mask whose elements indicate whether x == y. 2153 // 2154 // Asm: VPCMPEQQ, CPU Feature: AVX512 2155 func (x Int64x8) Equal(y Int64x8) Mask64x8 2156 2157 // Equal returns a mask whose elements indicate whether x == y. 2158 // 2159 // Asm: VPCMPEQB, CPU Feature: AVX 2160 func (x Uint8x16) Equal(y Uint8x16) Mask8x16 2161 2162 // Equal returns a mask whose elements indicate whether x == y. 2163 // 2164 // Asm: VPCMPEQB, CPU Feature: AVX2 2165 func (x Uint8x32) Equal(y Uint8x32) Mask8x32 2166 2167 // Equal returns a mask whose elements indicate whether x == y. 2168 // 2169 // Asm: VPCMPEQB, CPU Feature: AVX512 2170 func (x Uint8x64) Equal(y Uint8x64) Mask8x64 2171 2172 // Equal returns a mask whose elements indicate whether x == y. 2173 // 2174 // Asm: VPCMPEQW, CPU Feature: AVX 2175 func (x Uint16x8) Equal(y Uint16x8) Mask16x8 2176 2177 // Equal returns a mask whose elements indicate whether x == y. 2178 // 2179 // Asm: VPCMPEQW, CPU Feature: AVX2 2180 func (x Uint16x16) Equal(y Uint16x16) Mask16x16 2181 2182 // Equal returns a mask whose elements indicate whether x == y. 2183 // 2184 // Asm: VPCMPEQW, CPU Feature: AVX512 2185 func (x Uint16x32) Equal(y Uint16x32) Mask16x32 2186 2187 // Equal returns a mask whose elements indicate whether x == y. 2188 // 2189 // Asm: VPCMPEQD, CPU Feature: AVX 2190 func (x Uint32x4) Equal(y Uint32x4) Mask32x4 2191 2192 // Equal returns a mask whose elements indicate whether x == y. 2193 // 2194 // Asm: VPCMPEQD, CPU Feature: AVX2 2195 func (x Uint32x8) Equal(y Uint32x8) Mask32x8 2196 2197 // Equal returns a mask whose elements indicate whether x == y. 2198 // 2199 // Asm: VPCMPEQD, CPU Feature: AVX512 2200 func (x Uint32x16) Equal(y Uint32x16) Mask32x16 2201 2202 // Equal returns a mask whose elements indicate whether x == y. 2203 // 2204 // Asm: VPCMPEQQ, CPU Feature: AVX 2205 func (x Uint64x2) Equal(y Uint64x2) Mask64x2 2206 2207 // Equal returns a mask whose elements indicate whether x == y. 2208 // 2209 // Asm: VPCMPEQQ, CPU Feature: AVX2 2210 func (x Uint64x4) Equal(y Uint64x4) Mask64x4 2211 2212 // Equal returns a mask whose elements indicate whether x == y. 2213 // 2214 // Asm: VPCMPEQQ, CPU Feature: AVX512 2215 func (x Uint64x8) Equal(y Uint64x8) Mask64x8 2216 2217 // Equal returns a mask whose elements indicate whether x == y. 2218 // 2219 // Asm: VCMPPS, CPU Feature: AVX 2220 func (x Float32x4) Equal(y Float32x4) Mask32x4 2221 2222 // Equal returns a mask whose elements indicate whether x == y. 2223 // 2224 // Asm: VCMPPS, CPU Feature: AVX 2225 func (x Float32x8) Equal(y Float32x8) Mask32x8 2226 2227 // Equal returns a mask whose elements indicate whether x == y. 2228 // 2229 // Asm: VCMPPS, CPU Feature: AVX512 2230 func (x Float32x16) Equal(y Float32x16) Mask32x16 2231 2232 // Equal returns a mask whose elements indicate whether x == y. 2233 // 2234 // Asm: VCMPPD, CPU Feature: AVX 2235 func (x Float64x2) Equal(y Float64x2) Mask64x2 2236 2237 // Equal returns a mask whose elements indicate whether x == y. 2238 // 2239 // Asm: VCMPPD, CPU Feature: AVX 2240 func (x Float64x4) Equal(y Float64x4) Mask64x4 2241 2242 // Equal returns a mask whose elements indicate whether x == y. 2243 // 2244 // Asm: VCMPPD, CPU Feature: AVX512 2245 func (x Float64x8) Equal(y Float64x8) Mask64x8 2246 2247 /* Expand */ 2248 2249 // Expand expands the lower elements of x into the masked elements of z. 2250 // 2251 // Asm: VEXPANDPS, CPU Feature: AVX512 2252 func (x Float32x4) Expand(mask Mask32x4) Float32x4 2253 2254 // Expand expands the lower elements of x into the masked elements of z. 2255 // 2256 // Asm: VEXPANDPS, CPU Feature: AVX512 2257 func (x Float32x8) Expand(mask Mask32x8) Float32x8 2258 2259 // Expand expands the lower elements of x into the masked elements of z. 2260 // 2261 // Asm: VEXPANDPS, CPU Feature: AVX512 2262 func (x Float32x16) Expand(mask Mask32x16) Float32x16 2263 2264 // Expand expands the lower elements of x into the masked elements of z. 2265 // 2266 // Asm: VEXPANDPD, CPU Feature: AVX512 2267 func (x Float64x2) Expand(mask Mask64x2) Float64x2 2268 2269 // Expand expands the lower elements of x into the masked elements of z. 2270 // 2271 // Asm: VEXPANDPD, CPU Feature: AVX512 2272 func (x Float64x4) Expand(mask Mask64x4) Float64x4 2273 2274 // Expand expands the lower elements of x into the masked elements of z. 2275 // 2276 // Asm: VEXPANDPD, CPU Feature: AVX512 2277 func (x Float64x8) Expand(mask Mask64x8) Float64x8 2278 2279 // Expand expands the lower elements of x into the masked elements of z. 2280 // 2281 // Asm: VPEXPANDB, CPU Feature: AVX512VBMI2 2282 func (x Int8x16) Expand(mask Mask8x16) Int8x16 2283 2284 // Expand expands the lower elements of x into the masked elements of z. 2285 // 2286 // Asm: VPEXPANDB, CPU Feature: AVX512VBMI2 2287 func (x Int8x32) Expand(mask Mask8x32) Int8x32 2288 2289 // Expand expands the lower elements of x into the masked elements of z. 2290 // 2291 // Asm: VPEXPANDB, CPU Feature: AVX512VBMI2 2292 func (x Int8x64) Expand(mask Mask8x64) Int8x64 2293 2294 // Expand expands the lower elements of x into the masked elements of z. 2295 // 2296 // Asm: VPEXPANDW, CPU Feature: AVX512VBMI2 2297 func (x Int16x8) Expand(mask Mask16x8) Int16x8 2298 2299 // Expand expands the lower elements of x into the masked elements of z. 2300 // 2301 // Asm: VPEXPANDW, CPU Feature: AVX512VBMI2 2302 func (x Int16x16) Expand(mask Mask16x16) Int16x16 2303 2304 // Expand expands the lower elements of x into the masked elements of z. 2305 // 2306 // Asm: VPEXPANDW, CPU Feature: AVX512VBMI2 2307 func (x Int16x32) Expand(mask Mask16x32) Int16x32 2308 2309 // Expand expands the lower elements of x into the masked elements of z. 2310 // 2311 // Asm: VPEXPANDD, CPU Feature: AVX512 2312 func (x Int32x4) Expand(mask Mask32x4) Int32x4 2313 2314 // Expand expands the lower elements of x into the masked elements of z. 2315 // 2316 // Asm: VPEXPANDD, CPU Feature: AVX512 2317 func (x Int32x8) Expand(mask Mask32x8) Int32x8 2318 2319 // Expand expands the lower elements of x into the masked elements of z. 2320 // 2321 // Asm: VPEXPANDD, CPU Feature: AVX512 2322 func (x Int32x16) Expand(mask Mask32x16) Int32x16 2323 2324 // Expand expands the lower elements of x into the masked elements of z. 2325 // 2326 // Asm: VPEXPANDQ, CPU Feature: AVX512 2327 func (x Int64x2) Expand(mask Mask64x2) Int64x2 2328 2329 // Expand expands the lower elements of x into the masked elements of z. 2330 // 2331 // Asm: VPEXPANDQ, CPU Feature: AVX512 2332 func (x Int64x4) Expand(mask Mask64x4) Int64x4 2333 2334 // Expand expands the lower elements of x into the masked elements of z. 2335 // 2336 // Asm: VPEXPANDQ, CPU Feature: AVX512 2337 func (x Int64x8) Expand(mask Mask64x8) Int64x8 2338 2339 // Expand expands the lower elements of x into the masked elements of z. 2340 // 2341 // Asm: VPEXPANDB, CPU Feature: AVX512VBMI2 2342 func (x Uint8x16) Expand(mask Mask8x16) Uint8x16 2343 2344 // Expand expands the lower elements of x into the masked elements of z. 2345 // 2346 // Asm: VPEXPANDB, CPU Feature: AVX512VBMI2 2347 func (x Uint8x32) Expand(mask Mask8x32) Uint8x32 2348 2349 // Expand expands the lower elements of x into the masked elements of z. 2350 // 2351 // Asm: VPEXPANDB, CPU Feature: AVX512VBMI2 2352 func (x Uint8x64) Expand(mask Mask8x64) Uint8x64 2353 2354 // Expand expands the lower elements of x into the masked elements of z. 2355 // 2356 // Asm: VPEXPANDW, CPU Feature: AVX512VBMI2 2357 func (x Uint16x8) Expand(mask Mask16x8) Uint16x8 2358 2359 // Expand expands the lower elements of x into the masked elements of z. 2360 // 2361 // Asm: VPEXPANDW, CPU Feature: AVX512VBMI2 2362 func (x Uint16x16) Expand(mask Mask16x16) Uint16x16 2363 2364 // Expand expands the lower elements of x into the masked elements of z. 2365 // 2366 // Asm: VPEXPANDW, CPU Feature: AVX512VBMI2 2367 func (x Uint16x32) Expand(mask Mask16x32) Uint16x32 2368 2369 // Expand expands the lower elements of x into the masked elements of z. 2370 // 2371 // Asm: VPEXPANDD, CPU Feature: AVX512 2372 func (x Uint32x4) Expand(mask Mask32x4) Uint32x4 2373 2374 // Expand expands the lower elements of x into the masked elements of z. 2375 // 2376 // Asm: VPEXPANDD, CPU Feature: AVX512 2377 func (x Uint32x8) Expand(mask Mask32x8) Uint32x8 2378 2379 // Expand expands the lower elements of x into the masked elements of z. 2380 // 2381 // Asm: VPEXPANDD, CPU Feature: AVX512 2382 func (x Uint32x16) Expand(mask Mask32x16) Uint32x16 2383 2384 // Expand expands the lower elements of x into the masked elements of z. 2385 // 2386 // Asm: VPEXPANDQ, CPU Feature: AVX512 2387 func (x Uint64x2) Expand(mask Mask64x2) Uint64x2 2388 2389 // Expand expands the lower elements of x into the masked elements of z. 2390 // 2391 // Asm: VPEXPANDQ, CPU Feature: AVX512 2392 func (x Uint64x4) Expand(mask Mask64x4) Uint64x4 2393 2394 // Expand expands the lower elements of x into the masked elements of z. 2395 // 2396 // Asm: VPEXPANDQ, CPU Feature: AVX512 2397 func (x Uint64x8) Expand(mask Mask64x8) Uint64x8 2398 2399 /* ExtendLo2ToInt64 */ 2400 2401 // ExtendLo2ToInt64 sign-extends 2 lowest vector element values to int64. 2402 // 2403 // Asm: VPMOVSXBQ, CPU Feature: AVX 2404 func (x Int8x16) ExtendLo2ToInt64() Int64x2 2405 2406 // ExtendLo2ToInt64 sign-extends 2 lowest vector element values to int64. 2407 // 2408 // Asm: VPMOVSXWQ, CPU Feature: AVX 2409 func (x Int16x8) ExtendLo2ToInt64() Int64x2 2410 2411 // ExtendLo2ToInt64 sign-extends 2 lowest vector element values to int64. 2412 // 2413 // Asm: VPMOVSXDQ, CPU Feature: AVX 2414 func (x Int32x4) ExtendLo2ToInt64() Int64x2 2415 2416 /* ExtendLo2ToUint64 */ 2417 2418 // ExtendLo2ToUint64 zero-extends 2 lowest vector element values to uint64. 2419 // 2420 // Asm: VPMOVZXBQ, CPU Feature: AVX 2421 func (x Uint8x16) ExtendLo2ToUint64() Uint64x2 2422 2423 // ExtendLo2ToUint64 zero-extends 2 lowest vector element values to uint64. 2424 // 2425 // Asm: VPMOVZXWQ, CPU Feature: AVX 2426 func (x Uint16x8) ExtendLo2ToUint64() Uint64x2 2427 2428 // ExtendLo2ToUint64 zero-extends 2 lowest vector element values to uint64. 2429 // 2430 // Asm: VPMOVZXDQ, CPU Feature: AVX 2431 func (x Uint32x4) ExtendLo2ToUint64() Uint64x2 2432 2433 /* ExtendLo4ToInt32 */ 2434 2435 // ExtendLo4ToInt32 sign-extends 4 lowest vector element values to int32. 2436 // 2437 // Asm: VPMOVSXBD, CPU Feature: AVX 2438 func (x Int8x16) ExtendLo4ToInt32() Int32x4 2439 2440 // ExtendLo4ToInt32 sign-extends 4 lowest vector element values to int32. 2441 // 2442 // Asm: VPMOVSXWD, CPU Feature: AVX 2443 func (x Int16x8) ExtendLo4ToInt32() Int32x4 2444 2445 /* ExtendLo4ToInt64 */ 2446 2447 // ExtendLo4ToInt64 sign-extends 4 lowest vector element values to int64. 2448 // 2449 // Asm: VPMOVSXBQ, CPU Feature: AVX2 2450 func (x Int8x16) ExtendLo4ToInt64() Int64x4 2451 2452 // ExtendLo4ToInt64 sign-extends 4 lowest vector element values to int64. 2453 // 2454 // Asm: VPMOVSXWQ, CPU Feature: AVX2 2455 func (x Int16x8) ExtendLo4ToInt64() Int64x4 2456 2457 /* ExtendLo4ToUint32 */ 2458 2459 // ExtendLo4ToUint32 zero-extends 4 lowest vector element values to uint32. 2460 // 2461 // Asm: VPMOVZXBD, CPU Feature: AVX 2462 func (x Uint8x16) ExtendLo4ToUint32() Uint32x4 2463 2464 // ExtendLo4ToUint32 zero-extends 4 lowest vector element values to uint32. 2465 // 2466 // Asm: VPMOVZXWD, CPU Feature: AVX 2467 func (x Uint16x8) ExtendLo4ToUint32() Uint32x4 2468 2469 /* ExtendLo4ToUint64 */ 2470 2471 // ExtendLo4ToUint64 zero-extends 4 lowest vector element values to uint64. 2472 // 2473 // Asm: VPMOVZXBQ, CPU Feature: AVX2 2474 func (x Uint8x16) ExtendLo4ToUint64() Uint64x4 2475 2476 // ExtendLo4ToUint64 zero-extends 4 lowest vector element values to uint64. 2477 // 2478 // Asm: VPMOVZXWQ, CPU Feature: AVX2 2479 func (x Uint16x8) ExtendLo4ToUint64() Uint64x4 2480 2481 /* ExtendLo8ToInt16 */ 2482 2483 // ExtendLo8ToInt16 sign-extends 8 lowest vector element values to int16. 2484 // 2485 // Asm: VPMOVSXBW, CPU Feature: AVX 2486 func (x Int8x16) ExtendLo8ToInt16() Int16x8 2487 2488 /* ExtendLo8ToInt32 */ 2489 2490 // ExtendLo8ToInt32 sign-extends 8 lowest vector element values to int32. 2491 // 2492 // Asm: VPMOVSXBD, CPU Feature: AVX2 2493 func (x Int8x16) ExtendLo8ToInt32() Int32x8 2494 2495 /* ExtendLo8ToInt64 */ 2496 2497 // ExtendLo8ToInt64 sign-extends 8 lowest vector element values to int64. 2498 // 2499 // Asm: VPMOVSXBQ, CPU Feature: AVX512 2500 func (x Int8x16) ExtendLo8ToInt64() Int64x8 2501 2502 /* ExtendLo8ToUint16 */ 2503 2504 // ExtendLo8ToUint16 zero-extends 8 lowest vector element values to uint16. 2505 // 2506 // Asm: VPMOVZXBW, CPU Feature: AVX 2507 func (x Uint8x16) ExtendLo8ToUint16() Uint16x8 2508 2509 /* ExtendLo8ToUint32 */ 2510 2511 // ExtendLo8ToUint32 zero-extends 8 lowest vector element values to uint32. 2512 // 2513 // Asm: VPMOVZXBD, CPU Feature: AVX2 2514 func (x Uint8x16) ExtendLo8ToUint32() Uint32x8 2515 2516 /* ExtendLo8ToUint64 */ 2517 2518 // ExtendLo8ToUint64 zero-extends 8 lowest vector element values to uint64. 2519 // 2520 // Asm: VPMOVZXBQ, CPU Feature: AVX512 2521 func (x Uint8x16) ExtendLo8ToUint64() Uint64x8 2522 2523 /* ExtendToInt16 */ 2524 2525 // ExtendToInt16 sign-extends element values to int16. 2526 // 2527 // Asm: VPMOVSXBW, CPU Feature: AVX2 2528 func (x Int8x16) ExtendToInt16() Int16x16 2529 2530 // ExtendToInt16 sign-extends element values to int16. 2531 // 2532 // Asm: VPMOVSXBW, CPU Feature: AVX512 2533 func (x Int8x32) ExtendToInt16() Int16x32 2534 2535 /* ExtendToInt32 */ 2536 2537 // ExtendToInt32 sign-extends element values to int32. 2538 // 2539 // Asm: VPMOVSXBD, CPU Feature: AVX512 2540 func (x Int8x16) ExtendToInt32() Int32x16 2541 2542 // ExtendToInt32 sign-extends element values to int32. 2543 // 2544 // Asm: VPMOVSXWD, CPU Feature: AVX2 2545 func (x Int16x8) ExtendToInt32() Int32x8 2546 2547 // ExtendToInt32 sign-extends element values to int32. 2548 // 2549 // Asm: VPMOVSXWD, CPU Feature: AVX512 2550 func (x Int16x16) ExtendToInt32() Int32x16 2551 2552 /* ExtendToInt64 */ 2553 2554 // ExtendToInt64 sign-extends element values to int64. 2555 // 2556 // Asm: VPMOVSXWQ, CPU Feature: AVX512 2557 func (x Int16x8) ExtendToInt64() Int64x8 2558 2559 // ExtendToInt64 sign-extends element values to int64. 2560 // 2561 // Asm: VPMOVSXDQ, CPU Feature: AVX2 2562 func (x Int32x4) ExtendToInt64() Int64x4 2563 2564 // ExtendToInt64 sign-extends element values to int64. 2565 // 2566 // Asm: VPMOVSXDQ, CPU Feature: AVX512 2567 func (x Int32x8) ExtendToInt64() Int64x8 2568 2569 /* ExtendToUint16 */ 2570 2571 // ExtendToUint16 zero-extends element values to uint16. 2572 // 2573 // Asm: VPMOVZXBW, CPU Feature: AVX2 2574 func (x Uint8x16) ExtendToUint16() Uint16x16 2575 2576 // ExtendToUint16 zero-extends element values to uint16. 2577 // 2578 // Asm: VPMOVZXBW, CPU Feature: AVX512 2579 func (x Uint8x32) ExtendToUint16() Uint16x32 2580 2581 /* ExtendToUint32 */ 2582 2583 // ExtendToUint32 zero-extends element values to uint32. 2584 // 2585 // Asm: VPMOVZXBD, CPU Feature: AVX512 2586 func (x Uint8x16) ExtendToUint32() Uint32x16 2587 2588 // ExtendToUint32 zero-extends element values to uint32. 2589 // 2590 // Asm: VPMOVZXWD, CPU Feature: AVX2 2591 func (x Uint16x8) ExtendToUint32() Uint32x8 2592 2593 // ExtendToUint32 zero-extends element values to uint32. 2594 // 2595 // Asm: VPMOVZXWD, CPU Feature: AVX512 2596 func (x Uint16x16) ExtendToUint32() Uint32x16 2597 2598 /* ExtendToUint64 */ 2599 2600 // ExtendToUint64 zero-extends element values to uint64. 2601 // 2602 // Asm: VPMOVZXWQ, CPU Feature: AVX512 2603 func (x Uint16x8) ExtendToUint64() Uint64x8 2604 2605 // ExtendToUint64 zero-extends element values to uint64. 2606 // 2607 // Asm: VPMOVZXDQ, CPU Feature: AVX2 2608 func (x Uint32x4) ExtendToUint64() Uint64x4 2609 2610 // ExtendToUint64 zero-extends element values to uint64. 2611 // 2612 // Asm: VPMOVZXDQ, CPU Feature: AVX512 2613 func (x Uint32x8) ExtendToUint64() Uint64x8 2614 2615 /* Floor */ 2616 2617 // Floor rounds elements down to the nearest integer. 2618 // 2619 // Asm: VROUNDPS, CPU Feature: AVX 2620 func (x Float32x4) Floor() Float32x4 2621 2622 // Floor rounds elements down to the nearest integer. 2623 // 2624 // Asm: VROUNDPS, CPU Feature: AVX 2625 func (x Float32x8) Floor() Float32x8 2626 2627 // Floor rounds elements down to the nearest integer. 2628 // 2629 // Asm: VROUNDPD, CPU Feature: AVX 2630 func (x Float64x2) Floor() Float64x2 2631 2632 // Floor rounds elements down to the nearest integer. 2633 // 2634 // Asm: VROUNDPD, CPU Feature: AVX 2635 func (x Float64x4) Floor() Float64x4 2636 2637 /* FloorScaled */ 2638 2639 // FloorScaled rounds elements down with specified precision. 2640 // 2641 // A non-constant value of prec may result in significantly worse performance for this operation. 2642 // 2643 // Asm: VRNDSCALEPS, CPU Feature: AVX512 2644 func (x Float32x4) FloorScaled(prec uint8) Float32x4 2645 2646 // FloorScaled rounds elements down with specified precision. 2647 // 2648 // A non-constant value of prec may result in significantly worse performance for this operation. 2649 // 2650 // Asm: VRNDSCALEPS, CPU Feature: AVX512 2651 func (x Float32x8) FloorScaled(prec uint8) Float32x8 2652 2653 // FloorScaled rounds elements down with specified precision. 2654 // 2655 // A non-constant value of prec may result in significantly worse performance for this operation. 2656 // 2657 // Asm: VRNDSCALEPS, CPU Feature: AVX512 2658 func (x Float32x16) FloorScaled(prec uint8) Float32x16 2659 2660 // FloorScaled rounds elements down with specified precision. 2661 // 2662 // A non-constant value of prec may result in significantly worse performance for this operation. 2663 // 2664 // Asm: VRNDSCALEPD, CPU Feature: AVX512 2665 func (x Float64x2) FloorScaled(prec uint8) Float64x2 2666 2667 // FloorScaled rounds elements down with specified precision. 2668 // 2669 // A non-constant value of prec may result in significantly worse performance for this operation. 2670 // 2671 // Asm: VRNDSCALEPD, CPU Feature: AVX512 2672 func (x Float64x4) FloorScaled(prec uint8) Float64x4 2673 2674 // FloorScaled rounds elements down with specified precision. 2675 // 2676 // A non-constant value of prec may result in significantly worse performance for this operation. 2677 // 2678 // Asm: VRNDSCALEPD, CPU Feature: AVX512 2679 func (x Float64x8) FloorScaled(prec uint8) Float64x8 2680 2681 /* FloorScaledResidue */ 2682 2683 // FloorScaledResidue computes the difference after flooring with specified precision. 2684 // 2685 // A non-constant value of prec may result in significantly worse performance for this operation. 2686 // 2687 // Asm: VREDUCEPS, CPU Feature: AVX512 2688 func (x Float32x4) FloorScaledResidue(prec uint8) Float32x4 2689 2690 // FloorScaledResidue computes the difference after flooring with specified precision. 2691 // 2692 // A non-constant value of prec may result in significantly worse performance for this operation. 2693 // 2694 // Asm: VREDUCEPS, CPU Feature: AVX512 2695 func (x Float32x8) FloorScaledResidue(prec uint8) Float32x8 2696 2697 // FloorScaledResidue computes the difference after flooring with specified precision. 2698 // 2699 // A non-constant value of prec may result in significantly worse performance for this operation. 2700 // 2701 // Asm: VREDUCEPS, CPU Feature: AVX512 2702 func (x Float32x16) FloorScaledResidue(prec uint8) Float32x16 2703 2704 // FloorScaledResidue computes the difference after flooring with specified precision. 2705 // 2706 // A non-constant value of prec may result in significantly worse performance for this operation. 2707 // 2708 // Asm: VREDUCEPD, CPU Feature: AVX512 2709 func (x Float64x2) FloorScaledResidue(prec uint8) Float64x2 2710 2711 // FloorScaledResidue computes the difference after flooring with specified precision. 2712 // 2713 // A non-constant value of prec may result in significantly worse performance for this operation. 2714 // 2715 // Asm: VREDUCEPD, CPU Feature: AVX512 2716 func (x Float64x4) FloorScaledResidue(prec uint8) Float64x4 2717 2718 // FloorScaledResidue computes the difference after flooring with specified precision. 2719 // 2720 // A non-constant value of prec may result in significantly worse performance for this operation. 2721 // 2722 // Asm: VREDUCEPD, CPU Feature: AVX512 2723 func (x Float64x8) FloorScaledResidue(prec uint8) Float64x8 2724 2725 /* GaloisFieldAffineTransform */ 2726 2727 // GaloisFieldAffineTransform returns the affine transformation A * x + b in GF(2^8). 2728 // Each element of A is interpreted as an 8x8 matrix of bits. 2729 // Each element of x is interpreted as an 8-element vector of bits. 2730 // The b argument is likewise an 8-element vector of bits. 2731 // The result is z[i] = A[i/8] * x[i] + b, where * and + are performed in GF2. 2732 // 2733 // A non-constant value of b may result in significantly worse performance for this operation. 2734 // 2735 // Asm: VGF2P8AFFINEQB, CPU Feature: AVX512GFNI 2736 func (x Uint8x16) GaloisFieldAffineTransform(A Uint64x2, b uint8) Uint8x16 2737 2738 // GaloisFieldAffineTransform returns the affine transformation A * x + b in GF(2^8). 2739 // Each element of A is interpreted as an 8x8 matrix of bits. 2740 // Each element of x is interpreted as an 8-element vector of bits. 2741 // The b argument is likewise an 8-element vector of bits. 2742 // The result is z[i] = A[i/8] * x[i] + b, where * and + are performed in GF2. 2743 // 2744 // A non-constant value of b may result in significantly worse performance for this operation. 2745 // 2746 // Asm: VGF2P8AFFINEQB, CPU Feature: AVX512GFNI 2747 func (x Uint8x32) GaloisFieldAffineTransform(A Uint64x4, b uint8) Uint8x32 2748 2749 // GaloisFieldAffineTransform returns the affine transformation A * x + b in GF(2^8). 2750 // Each element of A is interpreted as an 8x8 matrix of bits. 2751 // Each element of x is interpreted as an 8-element vector of bits. 2752 // The b argument is likewise an 8-element vector of bits. 2753 // The result is z[i] = A[i/8] * x[i] + b, where * and + are performed in GF2. 2754 // 2755 // A non-constant value of b may result in significantly worse performance for this operation. 2756 // 2757 // Asm: VGF2P8AFFINEQB, CPU Feature: AVX512GFNI 2758 func (x Uint8x64) GaloisFieldAffineTransform(A Uint64x8, b uint8) Uint8x64 2759 2760 /* GaloisFieldAffineTransformInverse */ 2761 2762 // GaloisFieldAffineTransformInverse returns the affine transformation A * (x⁻¹ mod P) + b in GF(2^8), 2763 // where the characteristic polynomial P is x^8 + x^4 + x^3 + x + 1. 2764 // Each element of A is interpreted as an 8x8 matrix of bits. 2765 // Each element of x is interpreted as an 8-element vector of bits. 2766 // The b argument is likewise an 8-element vector of bits. 2767 // The result is z[i] = A[i/8] * inv(x[i]) + b, where * and + are performed in GF2. 2768 // 2769 // A non-constant value of b may result in significantly worse performance for this operation. 2770 // 2771 // Asm: VGF2P8AFFINEINVQB, CPU Feature: AVX512GFNI 2772 func (x Uint8x16) GaloisFieldAffineTransformInverse(A Uint64x2, b uint8) Uint8x16 2773 2774 // GaloisFieldAffineTransformInverse returns the affine transformation A * (x⁻¹ mod P) + b in GF(2^8), 2775 // where the characteristic polynomial P is x^8 + x^4 + x^3 + x + 1. 2776 // Each element of A is interpreted as an 8x8 matrix of bits. 2777 // Each element of x is interpreted as an 8-element vector of bits. 2778 // The b argument is likewise an 8-element vector of bits. 2779 // The result is z[i] = A[i/8] * inv(x[i]) + b, where * and + are performed in GF2. 2780 // 2781 // A non-constant value of b may result in significantly worse performance for this operation. 2782 // 2783 // Asm: VGF2P8AFFINEINVQB, CPU Feature: AVX512GFNI 2784 func (x Uint8x32) GaloisFieldAffineTransformInverse(A Uint64x4, b uint8) Uint8x32 2785 2786 // GaloisFieldAffineTransformInverse returns the affine transformation A * (x⁻¹ mod P) + b in GF(2^8), 2787 // where the characteristic polynomial P is x^8 + x^4 + x^3 + x + 1. 2788 // Each element of A is interpreted as an 8x8 matrix of bits. 2789 // Each element of x is interpreted as an 8-element vector of bits. 2790 // The b argument is likewise an 8-element vector of bits. 2791 // The result is z[i] = A[i/8] * inv(x[i]) + b, where * and + are performed in GF2. 2792 // 2793 // A non-constant value of b may result in significantly worse performance for this operation. 2794 // 2795 // Asm: VGF2P8AFFINEINVQB, CPU Feature: AVX512GFNI 2796 func (x Uint8x64) GaloisFieldAffineTransformInverse(A Uint64x8, b uint8) Uint8x64 2797 2798 /* GaloisFieldMul */ 2799 2800 // GaloisFieldMul returns (x * y) mod P, performed in GF(2^8), 2801 // where the characteristic polynomial P is x^8 + x^4 + x^3 + x + 1. 2802 // 2803 // Asm: VGF2P8MULB, CPU Feature: AVX512GFNI 2804 func (x Uint8x16) GaloisFieldMul(y Uint8x16) Uint8x16 2805 2806 // GaloisFieldMul returns (x * y) mod P, performed in GF(2^8), 2807 // where the characteristic polynomial P is x^8 + x^4 + x^3 + x + 1. 2808 // 2809 // Asm: VGF2P8MULB, CPU Feature: AVX512GFNI 2810 func (x Uint8x32) GaloisFieldMul(y Uint8x32) Uint8x32 2811 2812 // GaloisFieldMul returns (x * y) mod P, performed in GF(2^8), 2813 // where the characteristic polynomial P is x^8 + x^4 + x^3 + x + 1. 2814 // 2815 // Asm: VGF2P8MULB, CPU Feature: AVX512GFNI 2816 func (x Uint8x64) GaloisFieldMul(y Uint8x64) Uint8x64 2817 2818 /* GetElem */ 2819 2820 // GetElem returns the index'th element of x. 2821 // 2822 // A non-constant value of index may result in significantly worse performance for this operation. 2823 // 2824 // Asm: VPEXTRD, CPU Feature: AVX 2825 func (x Float32x4) GetElem(index uint8) float32 2826 2827 // GetElem returns the index'th element of x. 2828 // 2829 // A non-constant value of index may result in significantly worse performance for this operation. 2830 // 2831 // Asm: VPEXTRQ, CPU Feature: AVX 2832 func (x Float64x2) GetElem(index uint8) float64 2833 2834 // GetElem returns the index'th element of x. 2835 // 2836 // A non-constant value of index may result in significantly worse performance for this operation. 2837 // 2838 // Asm: VPEXTRB, CPU Feature: AVX 2839 func (x Int8x16) GetElem(index uint8) int8 2840 2841 // GetElem returns the index'th element of x. 2842 // 2843 // A non-constant value of index may result in significantly worse performance for this operation. 2844 // 2845 // Asm: VPEXTRW, CPU Feature: AVX 2846 func (x Int16x8) GetElem(index uint8) int16 2847 2848 // GetElem returns the index'th element of x. 2849 // 2850 // A non-constant value of index may result in significantly worse performance for this operation. 2851 // 2852 // Asm: VPEXTRD, CPU Feature: AVX 2853 func (x Int32x4) GetElem(index uint8) int32 2854 2855 // GetElem returns the index'th element of x. 2856 // 2857 // A non-constant value of index may result in significantly worse performance for this operation. 2858 // 2859 // Asm: VPEXTRQ, CPU Feature: AVX 2860 func (x Int64x2) GetElem(index uint8) int64 2861 2862 // GetElem returns the index'th element of x. 2863 // 2864 // A non-constant value of index may result in significantly worse performance for this operation. 2865 // 2866 // Asm: VPEXTRB, CPU Feature: AVX 2867 func (x Uint8x16) GetElem(index uint8) uint8 2868 2869 // GetElem returns the index'th element of x. 2870 // 2871 // A non-constant value of index may result in significantly worse performance for this operation. 2872 // 2873 // Asm: VPEXTRW, CPU Feature: AVX 2874 func (x Uint16x8) GetElem(index uint8) uint16 2875 2876 // GetElem returns the index'th element of x. 2877 // 2878 // A non-constant value of index may result in significantly worse performance for this operation. 2879 // 2880 // Asm: VPEXTRD, CPU Feature: AVX 2881 func (x Uint32x4) GetElem(index uint8) uint32 2882 2883 // GetElem returns the index'th element of x. 2884 // 2885 // A non-constant value of index may result in significantly worse performance for this operation. 2886 // 2887 // Asm: VPEXTRQ, CPU Feature: AVX 2888 func (x Uint64x2) GetElem(index uint8) uint64 2889 2890 /* GetHi */ 2891 2892 // GetHi returns the upper half of x. 2893 // 2894 // Asm: VEXTRACTF128, CPU Feature: AVX 2895 func (x Float32x8) GetHi() Float32x4 2896 2897 // GetHi returns the upper half of x. 2898 // 2899 // Asm: VEXTRACTF64X4, CPU Feature: AVX512 2900 func (x Float32x16) GetHi() Float32x8 2901 2902 // GetHi returns the upper half of x. 2903 // 2904 // Asm: VEXTRACTF128, CPU Feature: AVX 2905 func (x Float64x4) GetHi() Float64x2 2906 2907 // GetHi returns the upper half of x. 2908 // 2909 // Asm: VEXTRACTF64X4, CPU Feature: AVX512 2910 func (x Float64x8) GetHi() Float64x4 2911 2912 // GetHi returns the upper half of x. 2913 // 2914 // Asm: VEXTRACTI128, CPU Feature: AVX2 2915 func (x Int8x32) GetHi() Int8x16 2916 2917 // GetHi returns the upper half of x. 2918 // 2919 // Asm: VEXTRACTI64X4, CPU Feature: AVX512 2920 func (x Int8x64) GetHi() Int8x32 2921 2922 // GetHi returns the upper half of x. 2923 // 2924 // Asm: VEXTRACTI128, CPU Feature: AVX2 2925 func (x Int16x16) GetHi() Int16x8 2926 2927 // GetHi returns the upper half of x. 2928 // 2929 // Asm: VEXTRACTI64X4, CPU Feature: AVX512 2930 func (x Int16x32) GetHi() Int16x16 2931 2932 // GetHi returns the upper half of x. 2933 // 2934 // Asm: VEXTRACTI128, CPU Feature: AVX2 2935 func (x Int32x8) GetHi() Int32x4 2936 2937 // GetHi returns the upper half of x. 2938 // 2939 // Asm: VEXTRACTI64X4, CPU Feature: AVX512 2940 func (x Int32x16) GetHi() Int32x8 2941 2942 // GetHi returns the upper half of x. 2943 // 2944 // Asm: VEXTRACTI128, CPU Feature: AVX2 2945 func (x Int64x4) GetHi() Int64x2 2946 2947 // GetHi returns the upper half of x. 2948 // 2949 // Asm: VEXTRACTI64X4, CPU Feature: AVX512 2950 func (x Int64x8) GetHi() Int64x4 2951 2952 // GetHi returns the upper half of x. 2953 // 2954 // Asm: VEXTRACTI128, CPU Feature: AVX2 2955 func (x Uint8x32) GetHi() Uint8x16 2956 2957 // GetHi returns the upper half of x. 2958 // 2959 // Asm: VEXTRACTI64X4, CPU Feature: AVX512 2960 func (x Uint8x64) GetHi() Uint8x32 2961 2962 // GetHi returns the upper half of x. 2963 // 2964 // Asm: VEXTRACTI128, CPU Feature: AVX2 2965 func (x Uint16x16) GetHi() Uint16x8 2966 2967 // GetHi returns the upper half of x. 2968 // 2969 // Asm: VEXTRACTI64X4, CPU Feature: AVX512 2970 func (x Uint16x32) GetHi() Uint16x16 2971 2972 // GetHi returns the upper half of x. 2973 // 2974 // Asm: VEXTRACTI128, CPU Feature: AVX2 2975 func (x Uint32x8) GetHi() Uint32x4 2976 2977 // GetHi returns the upper half of x. 2978 // 2979 // Asm: VEXTRACTI64X4, CPU Feature: AVX512 2980 func (x Uint32x16) GetHi() Uint32x8 2981 2982 // GetHi returns the upper half of x. 2983 // 2984 // Asm: VEXTRACTI128, CPU Feature: AVX2 2985 func (x Uint64x4) GetHi() Uint64x2 2986 2987 // GetHi returns the upper half of x. 2988 // 2989 // Asm: VEXTRACTI64X4, CPU Feature: AVX512 2990 func (x Uint64x8) GetHi() Uint64x4 2991 2992 /* GetLo */ 2993 2994 // GetLo returns the lower half of x. 2995 // 2996 // Asm: VEXTRACTF128, CPU Feature: AVX 2997 func (x Float32x8) GetLo() Float32x4 2998 2999 // GetLo returns the lower half of x. 3000 // 3001 // Asm: VEXTRACTF64X4, CPU Feature: AVX512 3002 func (x Float32x16) GetLo() Float32x8 3003 3004 // GetLo returns the lower half of x. 3005 // 3006 // Asm: VEXTRACTF128, CPU Feature: AVX 3007 func (x Float64x4) GetLo() Float64x2 3008 3009 // GetLo returns the lower half of x. 3010 // 3011 // Asm: VEXTRACTF64X4, CPU Feature: AVX512 3012 func (x Float64x8) GetLo() Float64x4 3013 3014 // GetLo returns the lower half of x. 3015 // 3016 // Asm: VEXTRACTI128, CPU Feature: AVX2 3017 func (x Int8x32) GetLo() Int8x16 3018 3019 // GetLo returns the lower half of x. 3020 // 3021 // Asm: VEXTRACTI64X4, CPU Feature: AVX512 3022 func (x Int8x64) GetLo() Int8x32 3023 3024 // GetLo returns the lower half of x. 3025 // 3026 // Asm: VEXTRACTI128, CPU Feature: AVX2 3027 func (x Int16x16) GetLo() Int16x8 3028 3029 // GetLo returns the lower half of x. 3030 // 3031 // Asm: VEXTRACTI64X4, CPU Feature: AVX512 3032 func (x Int16x32) GetLo() Int16x16 3033 3034 // GetLo returns the lower half of x. 3035 // 3036 // Asm: VEXTRACTI128, CPU Feature: AVX2 3037 func (x Int32x8) GetLo() Int32x4 3038 3039 // GetLo returns the lower half of x. 3040 // 3041 // Asm: VEXTRACTI64X4, CPU Feature: AVX512 3042 func (x Int32x16) GetLo() Int32x8 3043 3044 // GetLo returns the lower half of x. 3045 // 3046 // Asm: VEXTRACTI128, CPU Feature: AVX2 3047 func (x Int64x4) GetLo() Int64x2 3048 3049 // GetLo returns the lower half of x. 3050 // 3051 // Asm: VEXTRACTI64X4, CPU Feature: AVX512 3052 func (x Int64x8) GetLo() Int64x4 3053 3054 // GetLo returns the lower half of x. 3055 // 3056 // Asm: VEXTRACTI128, CPU Feature: AVX2 3057 func (x Uint8x32) GetLo() Uint8x16 3058 3059 // GetLo returns the lower half of x. 3060 // 3061 // Asm: VEXTRACTI64X4, CPU Feature: AVX512 3062 func (x Uint8x64) GetLo() Uint8x32 3063 3064 // GetLo returns the lower half of x. 3065 // 3066 // Asm: VEXTRACTI128, CPU Feature: AVX2 3067 func (x Uint16x16) GetLo() Uint16x8 3068 3069 // GetLo returns the lower half of x. 3070 // 3071 // Asm: VEXTRACTI64X4, CPU Feature: AVX512 3072 func (x Uint16x32) GetLo() Uint16x16 3073 3074 // GetLo returns the lower half of x. 3075 // 3076 // Asm: VEXTRACTI128, CPU Feature: AVX2 3077 func (x Uint32x8) GetLo() Uint32x4 3078 3079 // GetLo returns the lower half of x. 3080 // 3081 // Asm: VEXTRACTI64X4, CPU Feature: AVX512 3082 func (x Uint32x16) GetLo() Uint32x8 3083 3084 // GetLo returns the lower half of x. 3085 // 3086 // Asm: VEXTRACTI128, CPU Feature: AVX2 3087 func (x Uint64x4) GetLo() Uint64x2 3088 3089 // GetLo returns the lower half of x. 3090 // 3091 // Asm: VEXTRACTI64X4, CPU Feature: AVX512 3092 func (x Uint64x8) GetLo() Uint64x4 3093 3094 /* Greater */ 3095 3096 // Greater returns a mask whose elements indicate whether x > y. 3097 // 3098 // Asm: VPCMPGTB, CPU Feature: AVX 3099 func (x Int8x16) Greater(y Int8x16) Mask8x16 3100 3101 // Greater returns a mask whose elements indicate whether x > y. 3102 // 3103 // Asm: VPCMPGTB, CPU Feature: AVX2 3104 func (x Int8x32) Greater(y Int8x32) Mask8x32 3105 3106 // Greater returns a mask whose elements indicate whether x > y. 3107 // 3108 // Asm: VPCMPGTB, CPU Feature: AVX512 3109 func (x Int8x64) Greater(y Int8x64) Mask8x64 3110 3111 // Greater returns a mask whose elements indicate whether x > y. 3112 // 3113 // Asm: VPCMPGTW, CPU Feature: AVX 3114 func (x Int16x8) Greater(y Int16x8) Mask16x8 3115 3116 // Greater returns a mask whose elements indicate whether x > y. 3117 // 3118 // Asm: VPCMPGTW, CPU Feature: AVX2 3119 func (x Int16x16) Greater(y Int16x16) Mask16x16 3120 3121 // Greater returns a mask whose elements indicate whether x > y. 3122 // 3123 // Asm: VPCMPGTW, CPU Feature: AVX512 3124 func (x Int16x32) Greater(y Int16x32) Mask16x32 3125 3126 // Greater returns a mask whose elements indicate whether x > y. 3127 // 3128 // Asm: VPCMPGTD, CPU Feature: AVX 3129 func (x Int32x4) Greater(y Int32x4) Mask32x4 3130 3131 // Greater returns a mask whose elements indicate whether x > y. 3132 // 3133 // Asm: VPCMPGTD, CPU Feature: AVX2 3134 func (x Int32x8) Greater(y Int32x8) Mask32x8 3135 3136 // Greater returns a mask whose elements indicate whether x > y. 3137 // 3138 // Asm: VPCMPGTD, CPU Feature: AVX512 3139 func (x Int32x16) Greater(y Int32x16) Mask32x16 3140 3141 // Greater returns a mask whose elements indicate whether x > y. 3142 // 3143 // Asm: VPCMPGTQ, CPU Feature: AVX 3144 func (x Int64x2) Greater(y Int64x2) Mask64x2 3145 3146 // Greater returns a mask whose elements indicate whether x > y. 3147 // 3148 // Asm: VPCMPGTQ, CPU Feature: AVX2 3149 func (x Int64x4) Greater(y Int64x4) Mask64x4 3150 3151 // Greater returns a mask whose elements indicate whether x > y. 3152 // 3153 // Asm: VPCMPGTQ, CPU Feature: AVX512 3154 func (x Int64x8) Greater(y Int64x8) Mask64x8 3155 3156 // Greater returns a mask whose elements indicate whether x > y. 3157 // 3158 // Asm: VCMPPS, CPU Feature: AVX 3159 func (x Float32x4) Greater(y Float32x4) Mask32x4 3160 3161 // Greater returns a mask whose elements indicate whether x > y. 3162 // 3163 // Asm: VCMPPS, CPU Feature: AVX 3164 func (x Float32x8) Greater(y Float32x8) Mask32x8 3165 3166 // Greater returns a mask whose elements indicate whether x > y. 3167 // 3168 // Asm: VCMPPS, CPU Feature: AVX512 3169 func (x Float32x16) Greater(y Float32x16) Mask32x16 3170 3171 // Greater returns a mask whose elements indicate whether x > y. 3172 // 3173 // Asm: VCMPPD, CPU Feature: AVX 3174 func (x Float64x2) Greater(y Float64x2) Mask64x2 3175 3176 // Greater returns a mask whose elements indicate whether x > y. 3177 // 3178 // Asm: VCMPPD, CPU Feature: AVX 3179 func (x Float64x4) Greater(y Float64x4) Mask64x4 3180 3181 // Greater returns a mask whose elements indicate whether x > y. 3182 // 3183 // Asm: VCMPPD, CPU Feature: AVX512 3184 func (x Float64x8) Greater(y Float64x8) Mask64x8 3185 3186 // Greater returns a mask whose elements indicate whether x > y. 3187 // 3188 // Asm: VPCMPUB, CPU Feature: AVX512 3189 func (x Uint8x64) Greater(y Uint8x64) Mask8x64 3190 3191 // Greater returns a mask whose elements indicate whether x > y. 3192 // 3193 // Asm: VPCMPUW, CPU Feature: AVX512 3194 func (x Uint16x32) Greater(y Uint16x32) Mask16x32 3195 3196 // Greater returns a mask whose elements indicate whether x > y. 3197 // 3198 // Asm: VPCMPUD, CPU Feature: AVX512 3199 func (x Uint32x16) Greater(y Uint32x16) Mask32x16 3200 3201 // Greater returns a mask whose elements indicate whether x > y. 3202 // 3203 // Asm: VPCMPUQ, CPU Feature: AVX512 3204 func (x Uint64x8) Greater(y Uint64x8) Mask64x8 3205 3206 /* GreaterEqual */ 3207 3208 // GreaterEqual returns a mask whose elements indicate whether x >= y. 3209 // 3210 // Asm: VCMPPS, CPU Feature: AVX 3211 func (x Float32x4) GreaterEqual(y Float32x4) Mask32x4 3212 3213 // GreaterEqual returns a mask whose elements indicate whether x >= y. 3214 // 3215 // Asm: VCMPPS, CPU Feature: AVX 3216 func (x Float32x8) GreaterEqual(y Float32x8) Mask32x8 3217 3218 // GreaterEqual returns a mask whose elements indicate whether x >= y. 3219 // 3220 // Asm: VCMPPS, CPU Feature: AVX512 3221 func (x Float32x16) GreaterEqual(y Float32x16) Mask32x16 3222 3223 // GreaterEqual returns a mask whose elements indicate whether x >= y. 3224 // 3225 // Asm: VCMPPD, CPU Feature: AVX 3226 func (x Float64x2) GreaterEqual(y Float64x2) Mask64x2 3227 3228 // GreaterEqual returns a mask whose elements indicate whether x >= y. 3229 // 3230 // Asm: VCMPPD, CPU Feature: AVX 3231 func (x Float64x4) GreaterEqual(y Float64x4) Mask64x4 3232 3233 // GreaterEqual returns a mask whose elements indicate whether x >= y. 3234 // 3235 // Asm: VCMPPD, CPU Feature: AVX512 3236 func (x Float64x8) GreaterEqual(y Float64x8) Mask64x8 3237 3238 // GreaterEqual returns a mask whose elements indicate whether x >= y. 3239 // 3240 // Asm: VPCMPB, CPU Feature: AVX512 3241 func (x Int8x64) GreaterEqual(y Int8x64) Mask8x64 3242 3243 // GreaterEqual returns a mask whose elements indicate whether x >= y. 3244 // 3245 // Asm: VPCMPW, CPU Feature: AVX512 3246 func (x Int16x32) GreaterEqual(y Int16x32) Mask16x32 3247 3248 // GreaterEqual returns a mask whose elements indicate whether x >= y. 3249 // 3250 // Asm: VPCMPD, CPU Feature: AVX512 3251 func (x Int32x16) GreaterEqual(y Int32x16) Mask32x16 3252 3253 // GreaterEqual returns a mask whose elements indicate whether x >= y. 3254 // 3255 // Asm: VPCMPQ, CPU Feature: AVX512 3256 func (x Int64x8) GreaterEqual(y Int64x8) Mask64x8 3257 3258 // GreaterEqual returns a mask whose elements indicate whether x >= y. 3259 // 3260 // Asm: VPCMPUB, CPU Feature: AVX512 3261 func (x Uint8x64) GreaterEqual(y Uint8x64) Mask8x64 3262 3263 // GreaterEqual returns a mask whose elements indicate whether x >= y. 3264 // 3265 // Asm: VPCMPUW, CPU Feature: AVX512 3266 func (x Uint16x32) GreaterEqual(y Uint16x32) Mask16x32 3267 3268 // GreaterEqual returns a mask whose elements indicate whether x >= y. 3269 // 3270 // Asm: VPCMPUD, CPU Feature: AVX512 3271 func (x Uint32x16) GreaterEqual(y Uint32x16) Mask32x16 3272 3273 // GreaterEqual returns a mask whose elements indicate whether x >= y. 3274 // 3275 // Asm: VPCMPUQ, CPU Feature: AVX512 3276 func (x Uint64x8) GreaterEqual(y Uint64x8) Mask64x8 3277 3278 /* InterleaveHi */ 3279 3280 // InterleaveHi interleaves the elements of the high halves of x and y. 3281 // 3282 // Asm: VPUNPCKHWD, CPU Feature: AVX 3283 func (x Int16x8) InterleaveHi(y Int16x8) Int16x8 3284 3285 // InterleaveHi interleaves the elements of the high halves of x and y. 3286 // 3287 // Asm: VPUNPCKHDQ, CPU Feature: AVX 3288 func (x Int32x4) InterleaveHi(y Int32x4) Int32x4 3289 3290 // InterleaveHi interleaves the elements of the high halves of x and y. 3291 // 3292 // Asm: VPUNPCKHQDQ, CPU Feature: AVX 3293 func (x Int64x2) InterleaveHi(y Int64x2) Int64x2 3294 3295 // InterleaveHi interleaves the elements of the high halves of x and y. 3296 // 3297 // Asm: VPUNPCKHWD, CPU Feature: AVX 3298 func (x Uint16x8) InterleaveHi(y Uint16x8) Uint16x8 3299 3300 // InterleaveHi interleaves the elements of the high halves of x and y. 3301 // 3302 // Asm: VPUNPCKHDQ, CPU Feature: AVX 3303 func (x Uint32x4) InterleaveHi(y Uint32x4) Uint32x4 3304 3305 // InterleaveHi interleaves the elements of the high halves of x and y. 3306 // 3307 // Asm: VPUNPCKHQDQ, CPU Feature: AVX 3308 func (x Uint64x2) InterleaveHi(y Uint64x2) Uint64x2 3309 3310 /* InterleaveHiGrouped */ 3311 3312 // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y. 3313 // 3314 // Asm: VPUNPCKHWD, CPU Feature: AVX2 3315 func (x Int16x16) InterleaveHiGrouped(y Int16x16) Int16x16 3316 3317 // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y. 3318 // 3319 // Asm: VPUNPCKHWD, CPU Feature: AVX512 3320 func (x Int16x32) InterleaveHiGrouped(y Int16x32) Int16x32 3321 3322 // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y. 3323 // 3324 // Asm: VPUNPCKHDQ, CPU Feature: AVX2 3325 func (x Int32x8) InterleaveHiGrouped(y Int32x8) Int32x8 3326 3327 // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y. 3328 // 3329 // Asm: VPUNPCKHDQ, CPU Feature: AVX512 3330 func (x Int32x16) InterleaveHiGrouped(y Int32x16) Int32x16 3331 3332 // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y. 3333 // 3334 // Asm: VPUNPCKHQDQ, CPU Feature: AVX2 3335 func (x Int64x4) InterleaveHiGrouped(y Int64x4) Int64x4 3336 3337 // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y. 3338 // 3339 // Asm: VPUNPCKHQDQ, CPU Feature: AVX512 3340 func (x Int64x8) InterleaveHiGrouped(y Int64x8) Int64x8 3341 3342 // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y. 3343 // 3344 // Asm: VPUNPCKHWD, CPU Feature: AVX2 3345 func (x Uint16x16) InterleaveHiGrouped(y Uint16x16) Uint16x16 3346 3347 // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y. 3348 // 3349 // Asm: VPUNPCKHWD, CPU Feature: AVX512 3350 func (x Uint16x32) InterleaveHiGrouped(y Uint16x32) Uint16x32 3351 3352 // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y. 3353 // 3354 // Asm: VPUNPCKHDQ, CPU Feature: AVX2 3355 func (x Uint32x8) InterleaveHiGrouped(y Uint32x8) Uint32x8 3356 3357 // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y. 3358 // 3359 // Asm: VPUNPCKHDQ, CPU Feature: AVX512 3360 func (x Uint32x16) InterleaveHiGrouped(y Uint32x16) Uint32x16 3361 3362 // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y. 3363 // 3364 // Asm: VPUNPCKHQDQ, CPU Feature: AVX2 3365 func (x Uint64x4) InterleaveHiGrouped(y Uint64x4) Uint64x4 3366 3367 // InterleaveHiGrouped interleaves the elements of the high half of each 128-bit subvector of x and y. 3368 // 3369 // Asm: VPUNPCKHQDQ, CPU Feature: AVX512 3370 func (x Uint64x8) InterleaveHiGrouped(y Uint64x8) Uint64x8 3371 3372 /* InterleaveLo */ 3373 3374 // InterleaveLo interleaves the elements of the low halves of x and y. 3375 // 3376 // Asm: VPUNPCKLWD, CPU Feature: AVX 3377 func (x Int16x8) InterleaveLo(y Int16x8) Int16x8 3378 3379 // InterleaveLo interleaves the elements of the low halves of x and y. 3380 // 3381 // Asm: VPUNPCKLDQ, CPU Feature: AVX 3382 func (x Int32x4) InterleaveLo(y Int32x4) Int32x4 3383 3384 // InterleaveLo interleaves the elements of the low halves of x and y. 3385 // 3386 // Asm: VPUNPCKLQDQ, CPU Feature: AVX 3387 func (x Int64x2) InterleaveLo(y Int64x2) Int64x2 3388 3389 // InterleaveLo interleaves the elements of the low halves of x and y. 3390 // 3391 // Asm: VPUNPCKLWD, CPU Feature: AVX 3392 func (x Uint16x8) InterleaveLo(y Uint16x8) Uint16x8 3393 3394 // InterleaveLo interleaves the elements of the low halves of x and y. 3395 // 3396 // Asm: VPUNPCKLDQ, CPU Feature: AVX 3397 func (x Uint32x4) InterleaveLo(y Uint32x4) Uint32x4 3398 3399 // InterleaveLo interleaves the elements of the low halves of x and y. 3400 // 3401 // Asm: VPUNPCKLQDQ, CPU Feature: AVX 3402 func (x Uint64x2) InterleaveLo(y Uint64x2) Uint64x2 3403 3404 /* InterleaveLoGrouped */ 3405 3406 // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y. 3407 // 3408 // Asm: VPUNPCKLWD, CPU Feature: AVX2 3409 func (x Int16x16) InterleaveLoGrouped(y Int16x16) Int16x16 3410 3411 // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y. 3412 // 3413 // Asm: VPUNPCKLWD, CPU Feature: AVX512 3414 func (x Int16x32) InterleaveLoGrouped(y Int16x32) Int16x32 3415 3416 // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y. 3417 // 3418 // Asm: VPUNPCKLDQ, CPU Feature: AVX2 3419 func (x Int32x8) InterleaveLoGrouped(y Int32x8) Int32x8 3420 3421 // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y. 3422 // 3423 // Asm: VPUNPCKLDQ, CPU Feature: AVX512 3424 func (x Int32x16) InterleaveLoGrouped(y Int32x16) Int32x16 3425 3426 // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y. 3427 // 3428 // Asm: VPUNPCKLQDQ, CPU Feature: AVX2 3429 func (x Int64x4) InterleaveLoGrouped(y Int64x4) Int64x4 3430 3431 // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y. 3432 // 3433 // Asm: VPUNPCKLQDQ, CPU Feature: AVX512 3434 func (x Int64x8) InterleaveLoGrouped(y Int64x8) Int64x8 3435 3436 // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y. 3437 // 3438 // Asm: VPUNPCKLWD, CPU Feature: AVX2 3439 func (x Uint16x16) InterleaveLoGrouped(y Uint16x16) Uint16x16 3440 3441 // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y. 3442 // 3443 // Asm: VPUNPCKLWD, CPU Feature: AVX512 3444 func (x Uint16x32) InterleaveLoGrouped(y Uint16x32) Uint16x32 3445 3446 // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y. 3447 // 3448 // Asm: VPUNPCKLDQ, CPU Feature: AVX2 3449 func (x Uint32x8) InterleaveLoGrouped(y Uint32x8) Uint32x8 3450 3451 // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y. 3452 // 3453 // Asm: VPUNPCKLDQ, CPU Feature: AVX512 3454 func (x Uint32x16) InterleaveLoGrouped(y Uint32x16) Uint32x16 3455 3456 // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y. 3457 // 3458 // Asm: VPUNPCKLQDQ, CPU Feature: AVX2 3459 func (x Uint64x4) InterleaveLoGrouped(y Uint64x4) Uint64x4 3460 3461 // InterleaveLoGrouped interleaves the elements of the low half of each 128-bit subvector of x and y. 3462 // 3463 // Asm: VPUNPCKLQDQ, CPU Feature: AVX512 3464 func (x Uint64x8) InterleaveLoGrouped(y Uint64x8) Uint64x8 3465 3466 /* LeadingZeros */ 3467 3468 // LeadingZeros counts the leading zeros of each element in x. 3469 // 3470 // Asm: VPLZCNTD, CPU Feature: AVX512 3471 func (x Int32x4) LeadingZeros() Int32x4 3472 3473 // LeadingZeros counts the leading zeros of each element in x. 3474 // 3475 // Asm: VPLZCNTD, CPU Feature: AVX512 3476 func (x Int32x8) LeadingZeros() Int32x8 3477 3478 // LeadingZeros counts the leading zeros of each element in x. 3479 // 3480 // Asm: VPLZCNTD, CPU Feature: AVX512 3481 func (x Int32x16) LeadingZeros() Int32x16 3482 3483 // LeadingZeros counts the leading zeros of each element in x. 3484 // 3485 // Asm: VPLZCNTQ, CPU Feature: AVX512 3486 func (x Int64x2) LeadingZeros() Int64x2 3487 3488 // LeadingZeros counts the leading zeros of each element in x. 3489 // 3490 // Asm: VPLZCNTQ, CPU Feature: AVX512 3491 func (x Int64x4) LeadingZeros() Int64x4 3492 3493 // LeadingZeros counts the leading zeros of each element in x. 3494 // 3495 // Asm: VPLZCNTQ, CPU Feature: AVX512 3496 func (x Int64x8) LeadingZeros() Int64x8 3497 3498 // LeadingZeros counts the leading zeros of each element in x. 3499 // 3500 // Asm: VPLZCNTD, CPU Feature: AVX512 3501 func (x Uint32x4) LeadingZeros() Uint32x4 3502 3503 // LeadingZeros counts the leading zeros of each element in x. 3504 // 3505 // Asm: VPLZCNTD, CPU Feature: AVX512 3506 func (x Uint32x8) LeadingZeros() Uint32x8 3507 3508 // LeadingZeros counts the leading zeros of each element in x. 3509 // 3510 // Asm: VPLZCNTD, CPU Feature: AVX512 3511 func (x Uint32x16) LeadingZeros() Uint32x16 3512 3513 // LeadingZeros counts the leading zeros of each element in x. 3514 // 3515 // Asm: VPLZCNTQ, CPU Feature: AVX512 3516 func (x Uint64x2) LeadingZeros() Uint64x2 3517 3518 // LeadingZeros counts the leading zeros of each element in x. 3519 // 3520 // Asm: VPLZCNTQ, CPU Feature: AVX512 3521 func (x Uint64x4) LeadingZeros() Uint64x4 3522 3523 // LeadingZeros counts the leading zeros of each element in x. 3524 // 3525 // Asm: VPLZCNTQ, CPU Feature: AVX512 3526 func (x Uint64x8) LeadingZeros() Uint64x8 3527 3528 /* Less */ 3529 3530 // Less returns a mask whose elements indicate whether x < y. 3531 // 3532 // Asm: VCMPPS, CPU Feature: AVX 3533 func (x Float32x4) Less(y Float32x4) Mask32x4 3534 3535 // Less returns a mask whose elements indicate whether x < y. 3536 // 3537 // Asm: VCMPPS, CPU Feature: AVX 3538 func (x Float32x8) Less(y Float32x8) Mask32x8 3539 3540 // Less returns a mask whose elements indicate whether x < y. 3541 // 3542 // Asm: VCMPPS, CPU Feature: AVX512 3543 func (x Float32x16) Less(y Float32x16) Mask32x16 3544 3545 // Less returns a mask whose elements indicate whether x < y. 3546 // 3547 // Asm: VCMPPD, CPU Feature: AVX 3548 func (x Float64x2) Less(y Float64x2) Mask64x2 3549 3550 // Less returns a mask whose elements indicate whether x < y. 3551 // 3552 // Asm: VCMPPD, CPU Feature: AVX 3553 func (x Float64x4) Less(y Float64x4) Mask64x4 3554 3555 // Less returns a mask whose elements indicate whether x < y. 3556 // 3557 // Asm: VCMPPD, CPU Feature: AVX512 3558 func (x Float64x8) Less(y Float64x8) Mask64x8 3559 3560 // Less returns a mask whose elements indicate whether x < y. 3561 // 3562 // Asm: VPCMPB, CPU Feature: AVX512 3563 func (x Int8x64) Less(y Int8x64) Mask8x64 3564 3565 // Less returns a mask whose elements indicate whether x < y. 3566 // 3567 // Asm: VPCMPW, CPU Feature: AVX512 3568 func (x Int16x32) Less(y Int16x32) Mask16x32 3569 3570 // Less returns a mask whose elements indicate whether x < y. 3571 // 3572 // Asm: VPCMPD, CPU Feature: AVX512 3573 func (x Int32x16) Less(y Int32x16) Mask32x16 3574 3575 // Less returns a mask whose elements indicate whether x < y. 3576 // 3577 // Asm: VPCMPQ, CPU Feature: AVX512 3578 func (x Int64x8) Less(y Int64x8) Mask64x8 3579 3580 // Less returns a mask whose elements indicate whether x < y. 3581 // 3582 // Asm: VPCMPUB, CPU Feature: AVX512 3583 func (x Uint8x64) Less(y Uint8x64) Mask8x64 3584 3585 // Less returns a mask whose elements indicate whether x < y. 3586 // 3587 // Asm: VPCMPUW, CPU Feature: AVX512 3588 func (x Uint16x32) Less(y Uint16x32) Mask16x32 3589 3590 // Less returns a mask whose elements indicate whether x < y. 3591 // 3592 // Asm: VPCMPUD, CPU Feature: AVX512 3593 func (x Uint32x16) Less(y Uint32x16) Mask32x16 3594 3595 // Less returns a mask whose elements indicate whether x < y. 3596 // 3597 // Asm: VPCMPUQ, CPU Feature: AVX512 3598 func (x Uint64x8) Less(y Uint64x8) Mask64x8 3599 3600 /* LessEqual */ 3601 3602 // LessEqual returns a mask whose elements indicate whether x <= y. 3603 // 3604 // Asm: VCMPPS, CPU Feature: AVX 3605 func (x Float32x4) LessEqual(y Float32x4) Mask32x4 3606 3607 // LessEqual returns a mask whose elements indicate whether x <= y. 3608 // 3609 // Asm: VCMPPS, CPU Feature: AVX 3610 func (x Float32x8) LessEqual(y Float32x8) Mask32x8 3611 3612 // LessEqual returns a mask whose elements indicate whether x <= y. 3613 // 3614 // Asm: VCMPPS, CPU Feature: AVX512 3615 func (x Float32x16) LessEqual(y Float32x16) Mask32x16 3616 3617 // LessEqual returns a mask whose elements indicate whether x <= y. 3618 // 3619 // Asm: VCMPPD, CPU Feature: AVX 3620 func (x Float64x2) LessEqual(y Float64x2) Mask64x2 3621 3622 // LessEqual returns a mask whose elements indicate whether x <= y. 3623 // 3624 // Asm: VCMPPD, CPU Feature: AVX 3625 func (x Float64x4) LessEqual(y Float64x4) Mask64x4 3626 3627 // LessEqual returns a mask whose elements indicate whether x <= y. 3628 // 3629 // Asm: VCMPPD, CPU Feature: AVX512 3630 func (x Float64x8) LessEqual(y Float64x8) Mask64x8 3631 3632 // LessEqual returns a mask whose elements indicate whether x <= y. 3633 // 3634 // Asm: VPCMPB, CPU Feature: AVX512 3635 func (x Int8x64) LessEqual(y Int8x64) Mask8x64 3636 3637 // LessEqual returns a mask whose elements indicate whether x <= y. 3638 // 3639 // Asm: VPCMPW, CPU Feature: AVX512 3640 func (x Int16x32) LessEqual(y Int16x32) Mask16x32 3641 3642 // LessEqual returns a mask whose elements indicate whether x <= y. 3643 // 3644 // Asm: VPCMPD, CPU Feature: AVX512 3645 func (x Int32x16) LessEqual(y Int32x16) Mask32x16 3646 3647 // LessEqual returns a mask whose elements indicate whether x <= y. 3648 // 3649 // Asm: VPCMPQ, CPU Feature: AVX512 3650 func (x Int64x8) LessEqual(y Int64x8) Mask64x8 3651 3652 // LessEqual returns a mask whose elements indicate whether x <= y. 3653 // 3654 // Asm: VPCMPUB, CPU Feature: AVX512 3655 func (x Uint8x64) LessEqual(y Uint8x64) Mask8x64 3656 3657 // LessEqual returns a mask whose elements indicate whether x <= y. 3658 // 3659 // Asm: VPCMPUW, CPU Feature: AVX512 3660 func (x Uint16x32) LessEqual(y Uint16x32) Mask16x32 3661 3662 // LessEqual returns a mask whose elements indicate whether x <= y. 3663 // 3664 // Asm: VPCMPUD, CPU Feature: AVX512 3665 func (x Uint32x16) LessEqual(y Uint32x16) Mask32x16 3666 3667 // LessEqual returns a mask whose elements indicate whether x <= y. 3668 // 3669 // Asm: VPCMPUQ, CPU Feature: AVX512 3670 func (x Uint64x8) LessEqual(y Uint64x8) Mask64x8 3671 3672 /* Max */ 3673 3674 // Max computes the maximum of each pair of corresponding elements in x and y. 3675 // 3676 // Asm: VMAXPS, CPU Feature: AVX 3677 func (x Float32x4) Max(y Float32x4) Float32x4 3678 3679 // Max computes the maximum of each pair of corresponding elements in x and y. 3680 // 3681 // Asm: VMAXPS, CPU Feature: AVX 3682 func (x Float32x8) Max(y Float32x8) Float32x8 3683 3684 // Max computes the maximum of each pair of corresponding elements in x and y. 3685 // 3686 // Asm: VMAXPS, CPU Feature: AVX512 3687 func (x Float32x16) Max(y Float32x16) Float32x16 3688 3689 // Max computes the maximum of each pair of corresponding elements in x and y. 3690 // 3691 // Asm: VMAXPD, CPU Feature: AVX 3692 func (x Float64x2) Max(y Float64x2) Float64x2 3693 3694 // Max computes the maximum of each pair of corresponding elements in x and y. 3695 // 3696 // Asm: VMAXPD, CPU Feature: AVX 3697 func (x Float64x4) Max(y Float64x4) Float64x4 3698 3699 // Max computes the maximum of each pair of corresponding elements in x and y. 3700 // 3701 // Asm: VMAXPD, CPU Feature: AVX512 3702 func (x Float64x8) Max(y Float64x8) Float64x8 3703 3704 // Max computes the maximum of each pair of corresponding elements in x and y. 3705 // 3706 // Asm: VPMAXSB, CPU Feature: AVX 3707 func (x Int8x16) Max(y Int8x16) Int8x16 3708 3709 // Max computes the maximum of each pair of corresponding elements in x and y. 3710 // 3711 // Asm: VPMAXSB, CPU Feature: AVX2 3712 func (x Int8x32) Max(y Int8x32) Int8x32 3713 3714 // Max computes the maximum of each pair of corresponding elements in x and y. 3715 // 3716 // Asm: VPMAXSB, CPU Feature: AVX512 3717 func (x Int8x64) Max(y Int8x64) Int8x64 3718 3719 // Max computes the maximum of each pair of corresponding elements in x and y. 3720 // 3721 // Asm: VPMAXSW, CPU Feature: AVX 3722 func (x Int16x8) Max(y Int16x8) Int16x8 3723 3724 // Max computes the maximum of each pair of corresponding elements in x and y. 3725 // 3726 // Asm: VPMAXSW, CPU Feature: AVX2 3727 func (x Int16x16) Max(y Int16x16) Int16x16 3728 3729 // Max computes the maximum of each pair of corresponding elements in x and y. 3730 // 3731 // Asm: VPMAXSW, CPU Feature: AVX512 3732 func (x Int16x32) Max(y Int16x32) Int16x32 3733 3734 // Max computes the maximum of each pair of corresponding elements in x and y. 3735 // 3736 // Asm: VPMAXSD, CPU Feature: AVX 3737 func (x Int32x4) Max(y Int32x4) Int32x4 3738 3739 // Max computes the maximum of each pair of corresponding elements in x and y. 3740 // 3741 // Asm: VPMAXSD, CPU Feature: AVX2 3742 func (x Int32x8) Max(y Int32x8) Int32x8 3743 3744 // Max computes the maximum of each pair of corresponding elements in x and y. 3745 // 3746 // Asm: VPMAXSD, CPU Feature: AVX512 3747 func (x Int32x16) Max(y Int32x16) Int32x16 3748 3749 // Max computes the maximum of each pair of corresponding elements in x and y. 3750 // 3751 // Asm: VPMAXSQ, CPU Feature: AVX512 3752 func (x Int64x2) Max(y Int64x2) Int64x2 3753 3754 // Max computes the maximum of each pair of corresponding elements in x and y. 3755 // 3756 // Asm: VPMAXSQ, CPU Feature: AVX512 3757 func (x Int64x4) Max(y Int64x4) Int64x4 3758 3759 // Max computes the maximum of each pair of corresponding elements in x and y. 3760 // 3761 // Asm: VPMAXSQ, CPU Feature: AVX512 3762 func (x Int64x8) Max(y Int64x8) Int64x8 3763 3764 // Max computes the maximum of each pair of corresponding elements in x and y. 3765 // 3766 // Asm: VPMAXUB, CPU Feature: AVX 3767 func (x Uint8x16) Max(y Uint8x16) Uint8x16 3768 3769 // Max computes the maximum of each pair of corresponding elements in x and y. 3770 // 3771 // Asm: VPMAXUB, CPU Feature: AVX2 3772 func (x Uint8x32) Max(y Uint8x32) Uint8x32 3773 3774 // Max computes the maximum of each pair of corresponding elements in x and y. 3775 // 3776 // Asm: VPMAXUB, CPU Feature: AVX512 3777 func (x Uint8x64) Max(y Uint8x64) Uint8x64 3778 3779 // Max computes the maximum of each pair of corresponding elements in x and y. 3780 // 3781 // Asm: VPMAXUW, CPU Feature: AVX 3782 func (x Uint16x8) Max(y Uint16x8) Uint16x8 3783 3784 // Max computes the maximum of each pair of corresponding elements in x and y. 3785 // 3786 // Asm: VPMAXUW, CPU Feature: AVX2 3787 func (x Uint16x16) Max(y Uint16x16) Uint16x16 3788 3789 // Max computes the maximum of each pair of corresponding elements in x and y. 3790 // 3791 // Asm: VPMAXUW, CPU Feature: AVX512 3792 func (x Uint16x32) Max(y Uint16x32) Uint16x32 3793 3794 // Max computes the maximum of each pair of corresponding elements in x and y. 3795 // 3796 // Asm: VPMAXUD, CPU Feature: AVX 3797 func (x Uint32x4) Max(y Uint32x4) Uint32x4 3798 3799 // Max computes the maximum of each pair of corresponding elements in x and y. 3800 // 3801 // Asm: VPMAXUD, CPU Feature: AVX2 3802 func (x Uint32x8) Max(y Uint32x8) Uint32x8 3803 3804 // Max computes the maximum of each pair of corresponding elements in x and y. 3805 // 3806 // Asm: VPMAXUD, CPU Feature: AVX512 3807 func (x Uint32x16) Max(y Uint32x16) Uint32x16 3808 3809 // Max computes the maximum of each pair of corresponding elements in x and y. 3810 // 3811 // Asm: VPMAXUQ, CPU Feature: AVX512 3812 func (x Uint64x2) Max(y Uint64x2) Uint64x2 3813 3814 // Max computes the maximum of each pair of corresponding elements in x and y. 3815 // 3816 // Asm: VPMAXUQ, CPU Feature: AVX512 3817 func (x Uint64x4) Max(y Uint64x4) Uint64x4 3818 3819 // Max computes the maximum of each pair of corresponding elements in x and y. 3820 // 3821 // Asm: VPMAXUQ, CPU Feature: AVX512 3822 func (x Uint64x8) Max(y Uint64x8) Uint64x8 3823 3824 /* Min */ 3825 3826 // Min computes the minimum of each pair of corresponding elements in x and y. 3827 // 3828 // Asm: VMINPS, CPU Feature: AVX 3829 func (x Float32x4) Min(y Float32x4) Float32x4 3830 3831 // Min computes the minimum of each pair of corresponding elements in x and y. 3832 // 3833 // Asm: VMINPS, CPU Feature: AVX 3834 func (x Float32x8) Min(y Float32x8) Float32x8 3835 3836 // Min computes the minimum of each pair of corresponding elements in x and y. 3837 // 3838 // Asm: VMINPS, CPU Feature: AVX512 3839 func (x Float32x16) Min(y Float32x16) Float32x16 3840 3841 // Min computes the minimum of each pair of corresponding elements in x and y. 3842 // 3843 // Asm: VMINPD, CPU Feature: AVX 3844 func (x Float64x2) Min(y Float64x2) Float64x2 3845 3846 // Min computes the minimum of each pair of corresponding elements in x and y. 3847 // 3848 // Asm: VMINPD, CPU Feature: AVX 3849 func (x Float64x4) Min(y Float64x4) Float64x4 3850 3851 // Min computes the minimum of each pair of corresponding elements in x and y. 3852 // 3853 // Asm: VMINPD, CPU Feature: AVX512 3854 func (x Float64x8) Min(y Float64x8) Float64x8 3855 3856 // Min computes the minimum of each pair of corresponding elements in x and y. 3857 // 3858 // Asm: VPMINSB, CPU Feature: AVX 3859 func (x Int8x16) Min(y Int8x16) Int8x16 3860 3861 // Min computes the minimum of each pair of corresponding elements in x and y. 3862 // 3863 // Asm: VPMINSB, CPU Feature: AVX2 3864 func (x Int8x32) Min(y Int8x32) Int8x32 3865 3866 // Min computes the minimum of each pair of corresponding elements in x and y. 3867 // 3868 // Asm: VPMINSB, CPU Feature: AVX512 3869 func (x Int8x64) Min(y Int8x64) Int8x64 3870 3871 // Min computes the minimum of each pair of corresponding elements in x and y. 3872 // 3873 // Asm: VPMINSW, CPU Feature: AVX 3874 func (x Int16x8) Min(y Int16x8) Int16x8 3875 3876 // Min computes the minimum of each pair of corresponding elements in x and y. 3877 // 3878 // Asm: VPMINSW, CPU Feature: AVX2 3879 func (x Int16x16) Min(y Int16x16) Int16x16 3880 3881 // Min computes the minimum of each pair of corresponding elements in x and y. 3882 // 3883 // Asm: VPMINSW, CPU Feature: AVX512 3884 func (x Int16x32) Min(y Int16x32) Int16x32 3885 3886 // Min computes the minimum of each pair of corresponding elements in x and y. 3887 // 3888 // Asm: VPMINSD, CPU Feature: AVX 3889 func (x Int32x4) Min(y Int32x4) Int32x4 3890 3891 // Min computes the minimum of each pair of corresponding elements in x and y. 3892 // 3893 // Asm: VPMINSD, CPU Feature: AVX2 3894 func (x Int32x8) Min(y Int32x8) Int32x8 3895 3896 // Min computes the minimum of each pair of corresponding elements in x and y. 3897 // 3898 // Asm: VPMINSD, CPU Feature: AVX512 3899 func (x Int32x16) Min(y Int32x16) Int32x16 3900 3901 // Min computes the minimum of each pair of corresponding elements in x and y. 3902 // 3903 // Asm: VPMINSQ, CPU Feature: AVX512 3904 func (x Int64x2) Min(y Int64x2) Int64x2 3905 3906 // Min computes the minimum of each pair of corresponding elements in x and y. 3907 // 3908 // Asm: VPMINSQ, CPU Feature: AVX512 3909 func (x Int64x4) Min(y Int64x4) Int64x4 3910 3911 // Min computes the minimum of each pair of corresponding elements in x and y. 3912 // 3913 // Asm: VPMINSQ, CPU Feature: AVX512 3914 func (x Int64x8) Min(y Int64x8) Int64x8 3915 3916 // Min computes the minimum of each pair of corresponding elements in x and y. 3917 // 3918 // Asm: VPMINUB, CPU Feature: AVX 3919 func (x Uint8x16) Min(y Uint8x16) Uint8x16 3920 3921 // Min computes the minimum of each pair of corresponding elements in x and y. 3922 // 3923 // Asm: VPMINUB, CPU Feature: AVX2 3924 func (x Uint8x32) Min(y Uint8x32) Uint8x32 3925 3926 // Min computes the minimum of each pair of corresponding elements in x and y. 3927 // 3928 // Asm: VPMINUB, CPU Feature: AVX512 3929 func (x Uint8x64) Min(y Uint8x64) Uint8x64 3930 3931 // Min computes the minimum of each pair of corresponding elements in x and y. 3932 // 3933 // Asm: VPMINUW, CPU Feature: AVX 3934 func (x Uint16x8) Min(y Uint16x8) Uint16x8 3935 3936 // Min computes the minimum of each pair of corresponding elements in x and y. 3937 // 3938 // Asm: VPMINUW, CPU Feature: AVX2 3939 func (x Uint16x16) Min(y Uint16x16) Uint16x16 3940 3941 // Min computes the minimum of each pair of corresponding elements in x and y. 3942 // 3943 // Asm: VPMINUW, CPU Feature: AVX512 3944 func (x Uint16x32) Min(y Uint16x32) Uint16x32 3945 3946 // Min computes the minimum of each pair of corresponding elements in x and y. 3947 // 3948 // Asm: VPMINUD, CPU Feature: AVX 3949 func (x Uint32x4) Min(y Uint32x4) Uint32x4 3950 3951 // Min computes the minimum of each pair of corresponding elements in x and y. 3952 // 3953 // Asm: VPMINUD, CPU Feature: AVX2 3954 func (x Uint32x8) Min(y Uint32x8) Uint32x8 3955 3956 // Min computes the minimum of each pair of corresponding elements in x and y. 3957 // 3958 // Asm: VPMINUD, CPU Feature: AVX512 3959 func (x Uint32x16) Min(y Uint32x16) Uint32x16 3960 3961 // Min computes the minimum of each pair of corresponding elements in x and y. 3962 // 3963 // Asm: VPMINUQ, CPU Feature: AVX512 3964 func (x Uint64x2) Min(y Uint64x2) Uint64x2 3965 3966 // Min computes the minimum of each pair of corresponding elements in x and y. 3967 // 3968 // Asm: VPMINUQ, CPU Feature: AVX512 3969 func (x Uint64x4) Min(y Uint64x4) Uint64x4 3970 3971 // Min computes the minimum of each pair of corresponding elements in x and y. 3972 // 3973 // Asm: VPMINUQ, CPU Feature: AVX512 3974 func (x Uint64x8) Min(y Uint64x8) Uint64x8 3975 3976 /* Mul */ 3977 3978 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 3979 // 3980 // Asm: VMULPS, CPU Feature: AVX 3981 func (x Float32x4) Mul(y Float32x4) Float32x4 3982 3983 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 3984 // 3985 // Asm: VMULPS, CPU Feature: AVX 3986 func (x Float32x8) Mul(y Float32x8) Float32x8 3987 3988 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 3989 // 3990 // Asm: VMULPS, CPU Feature: AVX512 3991 func (x Float32x16) Mul(y Float32x16) Float32x16 3992 3993 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 3994 // 3995 // Asm: VMULPD, CPU Feature: AVX 3996 func (x Float64x2) Mul(y Float64x2) Float64x2 3997 3998 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 3999 // 4000 // Asm: VMULPD, CPU Feature: AVX 4001 func (x Float64x4) Mul(y Float64x4) Float64x4 4002 4003 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 4004 // 4005 // Asm: VMULPD, CPU Feature: AVX512 4006 func (x Float64x8) Mul(y Float64x8) Float64x8 4007 4008 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 4009 // 4010 // Asm: VPMULLW, CPU Feature: AVX 4011 func (x Int16x8) Mul(y Int16x8) Int16x8 4012 4013 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 4014 // 4015 // Asm: VPMULLW, CPU Feature: AVX2 4016 func (x Int16x16) Mul(y Int16x16) Int16x16 4017 4018 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 4019 // 4020 // Asm: VPMULLW, CPU Feature: AVX512 4021 func (x Int16x32) Mul(y Int16x32) Int16x32 4022 4023 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 4024 // 4025 // Asm: VPMULLD, CPU Feature: AVX 4026 func (x Int32x4) Mul(y Int32x4) Int32x4 4027 4028 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 4029 // 4030 // Asm: VPMULLD, CPU Feature: AVX2 4031 func (x Int32x8) Mul(y Int32x8) Int32x8 4032 4033 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 4034 // 4035 // Asm: VPMULLD, CPU Feature: AVX512 4036 func (x Int32x16) Mul(y Int32x16) Int32x16 4037 4038 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 4039 // 4040 // Asm: VPMULLQ, CPU Feature: AVX512 4041 func (x Int64x2) Mul(y Int64x2) Int64x2 4042 4043 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 4044 // 4045 // Asm: VPMULLQ, CPU Feature: AVX512 4046 func (x Int64x4) Mul(y Int64x4) Int64x4 4047 4048 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 4049 // 4050 // Asm: VPMULLQ, CPU Feature: AVX512 4051 func (x Int64x8) Mul(y Int64x8) Int64x8 4052 4053 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 4054 // 4055 // Asm: VPMULLW, CPU Feature: AVX 4056 func (x Uint16x8) Mul(y Uint16x8) Uint16x8 4057 4058 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 4059 // 4060 // Asm: VPMULLW, CPU Feature: AVX2 4061 func (x Uint16x16) Mul(y Uint16x16) Uint16x16 4062 4063 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 4064 // 4065 // Asm: VPMULLW, CPU Feature: AVX512 4066 func (x Uint16x32) Mul(y Uint16x32) Uint16x32 4067 4068 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 4069 // 4070 // Asm: VPMULLD, CPU Feature: AVX 4071 func (x Uint32x4) Mul(y Uint32x4) Uint32x4 4072 4073 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 4074 // 4075 // Asm: VPMULLD, CPU Feature: AVX2 4076 func (x Uint32x8) Mul(y Uint32x8) Uint32x8 4077 4078 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 4079 // 4080 // Asm: VPMULLD, CPU Feature: AVX512 4081 func (x Uint32x16) Mul(y Uint32x16) Uint32x16 4082 4083 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 4084 // 4085 // Asm: VPMULLQ, CPU Feature: AVX512 4086 func (x Uint64x2) Mul(y Uint64x2) Uint64x2 4087 4088 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 4089 // 4090 // Asm: VPMULLQ, CPU Feature: AVX512 4091 func (x Uint64x4) Mul(y Uint64x4) Uint64x4 4092 4093 // Mul multiplies corresponding elements of two vectors, modulo 2ⁿ. 4094 // 4095 // Asm: VPMULLQ, CPU Feature: AVX512 4096 func (x Uint64x8) Mul(y Uint64x8) Uint64x8 4097 4098 /* MulAdd */ 4099 4100 // MulAdd performs a fused (x * y) + z. 4101 // 4102 // Asm: VFMADD213PS, CPU Feature: FMA 4103 func (x Float32x4) MulAdd(y Float32x4, z Float32x4) Float32x4 4104 4105 // MulAdd performs a fused (x * y) + z. 4106 // 4107 // Asm: VFMADD213PS, CPU Feature: FMA 4108 func (x Float32x8) MulAdd(y Float32x8, z Float32x8) Float32x8 4109 4110 // MulAdd performs a fused (x * y) + z. 4111 // 4112 // Asm: VFMADD213PS, CPU Feature: AVX512 4113 func (x Float32x16) MulAdd(y Float32x16, z Float32x16) Float32x16 4114 4115 // MulAdd performs a fused (x * y) + z. 4116 // 4117 // Asm: VFMADD213PD, CPU Feature: FMA 4118 func (x Float64x2) MulAdd(y Float64x2, z Float64x2) Float64x2 4119 4120 // MulAdd performs a fused (x * y) + z. 4121 // 4122 // Asm: VFMADD213PD, CPU Feature: FMA 4123 func (x Float64x4) MulAdd(y Float64x4, z Float64x4) Float64x4 4124 4125 // MulAdd performs a fused (x * y) + z. 4126 // 4127 // Asm: VFMADD213PD, CPU Feature: AVX512 4128 func (x Float64x8) MulAdd(y Float64x8, z Float64x8) Float64x8 4129 4130 /* MulAddEvenSubOdd */ 4131 4132 // MulAddEvenSubOdd performs a fused (x * y) - z for odd-indexed elements, and (x * y) + z for even-indexed elements. 4133 // 4134 // Asm: VFMADDSUB213PS, CPU Feature: FMA 4135 func (x Float32x4) MulAddEvenSubOdd(y Float32x4, z Float32x4) Float32x4 4136 4137 // MulAddEvenSubOdd performs a fused (x * y) - z for odd-indexed elements, and (x * y) + z for even-indexed elements. 4138 // 4139 // Asm: VFMADDSUB213PS, CPU Feature: FMA 4140 func (x Float32x8) MulAddEvenSubOdd(y Float32x8, z Float32x8) Float32x8 4141 4142 // MulAddEvenSubOdd performs a fused (x * y) - z for odd-indexed elements, and (x * y) + z for even-indexed elements. 4143 // 4144 // Asm: VFMADDSUB213PS, CPU Feature: AVX512 4145 func (x Float32x16) MulAddEvenSubOdd(y Float32x16, z Float32x16) Float32x16 4146 4147 // MulAddEvenSubOdd performs a fused (x * y) - z for odd-indexed elements, and (x * y) + z for even-indexed elements. 4148 // 4149 // Asm: VFMADDSUB213PD, CPU Feature: FMA 4150 func (x Float64x2) MulAddEvenSubOdd(y Float64x2, z Float64x2) Float64x2 4151 4152 // MulAddEvenSubOdd performs a fused (x * y) - z for odd-indexed elements, and (x * y) + z for even-indexed elements. 4153 // 4154 // Asm: VFMADDSUB213PD, CPU Feature: FMA 4155 func (x Float64x4) MulAddEvenSubOdd(y Float64x4, z Float64x4) Float64x4 4156 4157 // MulAddEvenSubOdd performs a fused (x * y) - z for odd-indexed elements, and (x * y) + z for even-indexed elements. 4158 // 4159 // Asm: VFMADDSUB213PD, CPU Feature: AVX512 4160 func (x Float64x8) MulAddEvenSubOdd(y Float64x8, z Float64x8) Float64x8 4161 4162 /* MulAddOddSubEven */ 4163 4164 // MulAddOddSubEven performs a fused (x * y) + z for odd-indexed elements, and (x * y) - z for even-indexed elements. 4165 // 4166 // Asm: VFMSUBADD213PS, CPU Feature: FMA 4167 func (x Float32x4) MulAddOddSubEven(y Float32x4, z Float32x4) Float32x4 4168 4169 // MulAddOddSubEven performs a fused (x * y) + z for odd-indexed elements, and (x * y) - z for even-indexed elements. 4170 // 4171 // Asm: VFMSUBADD213PS, CPU Feature: FMA 4172 func (x Float32x8) MulAddOddSubEven(y Float32x8, z Float32x8) Float32x8 4173 4174 // MulAddOddSubEven performs a fused (x * y) + z for odd-indexed elements, and (x * y) - z for even-indexed elements. 4175 // 4176 // Asm: VFMSUBADD213PS, CPU Feature: AVX512 4177 func (x Float32x16) MulAddOddSubEven(y Float32x16, z Float32x16) Float32x16 4178 4179 // MulAddOddSubEven performs a fused (x * y) + z for odd-indexed elements, and (x * y) - z for even-indexed elements. 4180 // 4181 // Asm: VFMSUBADD213PD, CPU Feature: FMA 4182 func (x Float64x2) MulAddOddSubEven(y Float64x2, z Float64x2) Float64x2 4183 4184 // MulAddOddSubEven performs a fused (x * y) + z for odd-indexed elements, and (x * y) - z for even-indexed elements. 4185 // 4186 // Asm: VFMSUBADD213PD, CPU Feature: FMA 4187 func (x Float64x4) MulAddOddSubEven(y Float64x4, z Float64x4) Float64x4 4188 4189 // MulAddOddSubEven performs a fused (x * y) + z for odd-indexed elements, and (x * y) - z for even-indexed elements. 4190 // 4191 // Asm: VFMSUBADD213PD, CPU Feature: AVX512 4192 func (x Float64x8) MulAddOddSubEven(y Float64x8, z Float64x8) Float64x8 4193 4194 /* MulHigh */ 4195 4196 // MulHigh multiplies elements and stores the high part of the result. 4197 // 4198 // Asm: VPMULHW, CPU Feature: AVX 4199 func (x Int16x8) MulHigh(y Int16x8) Int16x8 4200 4201 // MulHigh multiplies elements and stores the high part of the result. 4202 // 4203 // Asm: VPMULHW, CPU Feature: AVX2 4204 func (x Int16x16) MulHigh(y Int16x16) Int16x16 4205 4206 // MulHigh multiplies elements and stores the high part of the result. 4207 // 4208 // Asm: VPMULHW, CPU Feature: AVX512 4209 func (x Int16x32) MulHigh(y Int16x32) Int16x32 4210 4211 // MulHigh multiplies elements and stores the high part of the result. 4212 // 4213 // Asm: VPMULHUW, CPU Feature: AVX 4214 func (x Uint16x8) MulHigh(y Uint16x8) Uint16x8 4215 4216 // MulHigh multiplies elements and stores the high part of the result. 4217 // 4218 // Asm: VPMULHUW, CPU Feature: AVX2 4219 func (x Uint16x16) MulHigh(y Uint16x16) Uint16x16 4220 4221 // MulHigh multiplies elements and stores the high part of the result. 4222 // 4223 // Asm: VPMULHUW, CPU Feature: AVX512 4224 func (x Uint16x32) MulHigh(y Uint16x32) Uint16x32 4225 4226 /* MulSign */ 4227 4228 // MulSign returns the product of x with the sign of y (-1, 0, or 1). 4229 // 4230 // Asm: VPSIGNB, CPU Feature: AVX 4231 func (x Int8x16) MulSign(y Int8x16) Int8x16 4232 4233 // MulSign returns the product of x with the sign of y (-1, 0, or 1). 4234 // 4235 // Asm: VPSIGNB, CPU Feature: AVX2 4236 func (x Int8x32) MulSign(y Int8x32) Int8x32 4237 4238 // MulSign returns the product of x with the sign of y (-1, 0, or 1). 4239 // 4240 // Asm: VPSIGNW, CPU Feature: AVX 4241 func (x Int16x8) MulSign(y Int16x8) Int16x8 4242 4243 // MulSign returns the product of x with the sign of y (-1, 0, or 1). 4244 // 4245 // Asm: VPSIGNW, CPU Feature: AVX2 4246 func (x Int16x16) MulSign(y Int16x16) Int16x16 4247 4248 // MulSign returns the product of x with the sign of y (-1, 0, or 1). 4249 // 4250 // Asm: VPSIGND, CPU Feature: AVX 4251 func (x Int32x4) MulSign(y Int32x4) Int32x4 4252 4253 // MulSign returns the product of x with the sign of y (-1, 0, or 1). 4254 // 4255 // Asm: VPSIGND, CPU Feature: AVX2 4256 func (x Int32x8) MulSign(y Int32x8) Int32x8 4257 4258 /* MulWidenEven */ 4259 4260 // MulWidenEven multiplies even-indexed elements, widening the result. 4261 // Result[i] = v1[2*i] * v2[2*i]. 4262 // 4263 // Asm: VPMULDQ, CPU Feature: AVX 4264 func (x Int32x4) MulWidenEven(y Int32x4) Int64x2 4265 4266 // MulWidenEven multiplies even-indexed elements, widening the result. 4267 // Result[i] = v1[2*i] * v2[2*i]. 4268 // 4269 // Asm: VPMULDQ, CPU Feature: AVX2 4270 func (x Int32x8) MulWidenEven(y Int32x8) Int64x4 4271 4272 // MulWidenEven multiplies even-indexed elements, widening the result. 4273 // Result[i] = v1[2*i] * v2[2*i]. 4274 // 4275 // Asm: VPMULUDQ, CPU Feature: AVX 4276 func (x Uint32x4) MulWidenEven(y Uint32x4) Uint64x2 4277 4278 // MulWidenEven multiplies even-indexed elements, widening the result. 4279 // Result[i] = v1[2*i] * v2[2*i]. 4280 // 4281 // Asm: VPMULUDQ, CPU Feature: AVX2 4282 func (x Uint32x8) MulWidenEven(y Uint32x8) Uint64x4 4283 4284 /* NotEqual */ 4285 4286 // NotEqual returns a mask whose elements indicate whether x != y. 4287 // 4288 // Asm: VCMPPS, CPU Feature: AVX 4289 func (x Float32x4) NotEqual(y Float32x4) Mask32x4 4290 4291 // NotEqual returns a mask whose elements indicate whether x != y. 4292 // 4293 // Asm: VCMPPS, CPU Feature: AVX 4294 func (x Float32x8) NotEqual(y Float32x8) Mask32x8 4295 4296 // NotEqual returns a mask whose elements indicate whether x != y. 4297 // 4298 // Asm: VCMPPS, CPU Feature: AVX512 4299 func (x Float32x16) NotEqual(y Float32x16) Mask32x16 4300 4301 // NotEqual returns a mask whose elements indicate whether x != y. 4302 // 4303 // Asm: VCMPPD, CPU Feature: AVX 4304 func (x Float64x2) NotEqual(y Float64x2) Mask64x2 4305 4306 // NotEqual returns a mask whose elements indicate whether x != y. 4307 // 4308 // Asm: VCMPPD, CPU Feature: AVX 4309 func (x Float64x4) NotEqual(y Float64x4) Mask64x4 4310 4311 // NotEqual returns a mask whose elements indicate whether x != y. 4312 // 4313 // Asm: VCMPPD, CPU Feature: AVX512 4314 func (x Float64x8) NotEqual(y Float64x8) Mask64x8 4315 4316 // NotEqual returns a mask whose elements indicate whether x != y. 4317 // 4318 // Asm: VPCMPB, CPU Feature: AVX512 4319 func (x Int8x64) NotEqual(y Int8x64) Mask8x64 4320 4321 // NotEqual returns a mask whose elements indicate whether x != y. 4322 // 4323 // Asm: VPCMPW, CPU Feature: AVX512 4324 func (x Int16x32) NotEqual(y Int16x32) Mask16x32 4325 4326 // NotEqual returns a mask whose elements indicate whether x != y. 4327 // 4328 // Asm: VPCMPD, CPU Feature: AVX512 4329 func (x Int32x16) NotEqual(y Int32x16) Mask32x16 4330 4331 // NotEqual returns a mask whose elements indicate whether x != y. 4332 // 4333 // Asm: VPCMPQ, CPU Feature: AVX512 4334 func (x Int64x8) NotEqual(y Int64x8) Mask64x8 4335 4336 // NotEqual returns a mask whose elements indicate whether x != y. 4337 // 4338 // Asm: VPCMPUB, CPU Feature: AVX512 4339 func (x Uint8x64) NotEqual(y Uint8x64) Mask8x64 4340 4341 // NotEqual returns a mask whose elements indicate whether x != y. 4342 // 4343 // Asm: VPCMPUW, CPU Feature: AVX512 4344 func (x Uint16x32) NotEqual(y Uint16x32) Mask16x32 4345 4346 // NotEqual returns a mask whose elements indicate whether x != y. 4347 // 4348 // Asm: VPCMPUD, CPU Feature: AVX512 4349 func (x Uint32x16) NotEqual(y Uint32x16) Mask32x16 4350 4351 // NotEqual returns a mask whose elements indicate whether x != y. 4352 // 4353 // Asm: VPCMPUQ, CPU Feature: AVX512 4354 func (x Uint64x8) NotEqual(y Uint64x8) Mask64x8 4355 4356 /* OnesCount */ 4357 4358 // OnesCount counts the number of set bits in each element. 4359 // 4360 // Asm: VPOPCNTB, CPU Feature: AVX512BITALG 4361 func (x Int8x16) OnesCount() Int8x16 4362 4363 // OnesCount counts the number of set bits in each element. 4364 // 4365 // Asm: VPOPCNTB, CPU Feature: AVX512BITALG 4366 func (x Int8x32) OnesCount() Int8x32 4367 4368 // OnesCount counts the number of set bits in each element. 4369 // 4370 // Asm: VPOPCNTB, CPU Feature: AVX512BITALG 4371 func (x Int8x64) OnesCount() Int8x64 4372 4373 // OnesCount counts the number of set bits in each element. 4374 // 4375 // Asm: VPOPCNTW, CPU Feature: AVX512BITALG 4376 func (x Int16x8) OnesCount() Int16x8 4377 4378 // OnesCount counts the number of set bits in each element. 4379 // 4380 // Asm: VPOPCNTW, CPU Feature: AVX512BITALG 4381 func (x Int16x16) OnesCount() Int16x16 4382 4383 // OnesCount counts the number of set bits in each element. 4384 // 4385 // Asm: VPOPCNTW, CPU Feature: AVX512BITALG 4386 func (x Int16x32) OnesCount() Int16x32 4387 4388 // OnesCount counts the number of set bits in each element. 4389 // 4390 // Asm: VPOPCNTD, CPU Feature: AVX512VPOPCNTDQ 4391 func (x Int32x4) OnesCount() Int32x4 4392 4393 // OnesCount counts the number of set bits in each element. 4394 // 4395 // Asm: VPOPCNTD, CPU Feature: AVX512VPOPCNTDQ 4396 func (x Int32x8) OnesCount() Int32x8 4397 4398 // OnesCount counts the number of set bits in each element. 4399 // 4400 // Asm: VPOPCNTD, CPU Feature: AVX512VPOPCNTDQ 4401 func (x Int32x16) OnesCount() Int32x16 4402 4403 // OnesCount counts the number of set bits in each element. 4404 // 4405 // Asm: VPOPCNTQ, CPU Feature: AVX512VPOPCNTDQ 4406 func (x Int64x2) OnesCount() Int64x2 4407 4408 // OnesCount counts the number of set bits in each element. 4409 // 4410 // Asm: VPOPCNTQ, CPU Feature: AVX512VPOPCNTDQ 4411 func (x Int64x4) OnesCount() Int64x4 4412 4413 // OnesCount counts the number of set bits in each element. 4414 // 4415 // Asm: VPOPCNTQ, CPU Feature: AVX512VPOPCNTDQ 4416 func (x Int64x8) OnesCount() Int64x8 4417 4418 // OnesCount counts the number of set bits in each element. 4419 // 4420 // Asm: VPOPCNTB, CPU Feature: AVX512BITALG 4421 func (x Uint8x16) OnesCount() Uint8x16 4422 4423 // OnesCount counts the number of set bits in each element. 4424 // 4425 // Asm: VPOPCNTB, CPU Feature: AVX512BITALG 4426 func (x Uint8x32) OnesCount() Uint8x32 4427 4428 // OnesCount counts the number of set bits in each element. 4429 // 4430 // Asm: VPOPCNTB, CPU Feature: AVX512BITALG 4431 func (x Uint8x64) OnesCount() Uint8x64 4432 4433 // OnesCount counts the number of set bits in each element. 4434 // 4435 // Asm: VPOPCNTW, CPU Feature: AVX512BITALG 4436 func (x Uint16x8) OnesCount() Uint16x8 4437 4438 // OnesCount counts the number of set bits in each element. 4439 // 4440 // Asm: VPOPCNTW, CPU Feature: AVX512BITALG 4441 func (x Uint16x16) OnesCount() Uint16x16 4442 4443 // OnesCount counts the number of set bits in each element. 4444 // 4445 // Asm: VPOPCNTW, CPU Feature: AVX512BITALG 4446 func (x Uint16x32) OnesCount() Uint16x32 4447 4448 // OnesCount counts the number of set bits in each element. 4449 // 4450 // Asm: VPOPCNTD, CPU Feature: AVX512VPOPCNTDQ 4451 func (x Uint32x4) OnesCount() Uint32x4 4452 4453 // OnesCount counts the number of set bits in each element. 4454 // 4455 // Asm: VPOPCNTD, CPU Feature: AVX512VPOPCNTDQ 4456 func (x Uint32x8) OnesCount() Uint32x8 4457 4458 // OnesCount counts the number of set bits in each element. 4459 // 4460 // Asm: VPOPCNTD, CPU Feature: AVX512VPOPCNTDQ 4461 func (x Uint32x16) OnesCount() Uint32x16 4462 4463 // OnesCount counts the number of set bits in each element. 4464 // 4465 // Asm: VPOPCNTQ, CPU Feature: AVX512VPOPCNTDQ 4466 func (x Uint64x2) OnesCount() Uint64x2 4467 4468 // OnesCount counts the number of set bits in each element. 4469 // 4470 // Asm: VPOPCNTQ, CPU Feature: AVX512VPOPCNTDQ 4471 func (x Uint64x4) OnesCount() Uint64x4 4472 4473 // OnesCount counts the number of set bits in each element. 4474 // 4475 // Asm: VPOPCNTQ, CPU Feature: AVX512VPOPCNTDQ 4476 func (x Uint64x8) OnesCount() Uint64x8 4477 4478 /* Or */ 4479 4480 // Or performs a bitwise x | y. 4481 // 4482 // Asm: VPOR, CPU Feature: AVX 4483 func (x Int8x16) Or(y Int8x16) Int8x16 4484 4485 // Or performs a bitwise x | y. 4486 // 4487 // Asm: VPOR, CPU Feature: AVX2 4488 func (x Int8x32) Or(y Int8x32) Int8x32 4489 4490 // Or performs a bitwise x | y. 4491 // 4492 // Asm: VPORD, CPU Feature: AVX512 4493 func (x Int8x64) Or(y Int8x64) Int8x64 4494 4495 // Or performs a bitwise x | y. 4496 // 4497 // Asm: VPOR, CPU Feature: AVX 4498 func (x Int16x8) Or(y Int16x8) Int16x8 4499 4500 // Or performs a bitwise x | y. 4501 // 4502 // Asm: VPOR, CPU Feature: AVX2 4503 func (x Int16x16) Or(y Int16x16) Int16x16 4504 4505 // Or performs a bitwise x | y. 4506 // 4507 // Asm: VPORD, CPU Feature: AVX512 4508 func (x Int16x32) Or(y Int16x32) Int16x32 4509 4510 // Or performs a bitwise x | y. 4511 // 4512 // Asm: VPOR, CPU Feature: AVX 4513 func (x Int32x4) Or(y Int32x4) Int32x4 4514 4515 // Or performs a bitwise x | y. 4516 // 4517 // Asm: VPOR, CPU Feature: AVX2 4518 func (x Int32x8) Or(y Int32x8) Int32x8 4519 4520 // Or performs a bitwise x | y. 4521 // 4522 // Asm: VPORD, CPU Feature: AVX512 4523 func (x Int32x16) Or(y Int32x16) Int32x16 4524 4525 // Or performs a bitwise x | y. 4526 // 4527 // Asm: VPOR, CPU Feature: AVX 4528 func (x Int64x2) Or(y Int64x2) Int64x2 4529 4530 // Or performs a bitwise x | y. 4531 // 4532 // Asm: VPOR, CPU Feature: AVX2 4533 func (x Int64x4) Or(y Int64x4) Int64x4 4534 4535 // Or performs a bitwise x | y. 4536 // 4537 // Asm: VPORQ, CPU Feature: AVX512 4538 func (x Int64x8) Or(y Int64x8) Int64x8 4539 4540 // Or performs a bitwise x | y. 4541 // 4542 // Asm: VPOR, CPU Feature: AVX 4543 func (x Uint8x16) Or(y Uint8x16) Uint8x16 4544 4545 // Or performs a bitwise x | y. 4546 // 4547 // Asm: VPOR, CPU Feature: AVX2 4548 func (x Uint8x32) Or(y Uint8x32) Uint8x32 4549 4550 // Or performs a bitwise x | y. 4551 // 4552 // Asm: VPORD, CPU Feature: AVX512 4553 func (x Uint8x64) Or(y Uint8x64) Uint8x64 4554 4555 // Or performs a bitwise x | y. 4556 // 4557 // Asm: VPOR, CPU Feature: AVX 4558 func (x Uint16x8) Or(y Uint16x8) Uint16x8 4559 4560 // Or performs a bitwise x | y. 4561 // 4562 // Asm: VPOR, CPU Feature: AVX2 4563 func (x Uint16x16) Or(y Uint16x16) Uint16x16 4564 4565 // Or performs a bitwise x | y. 4566 // 4567 // Asm: VPORD, CPU Feature: AVX512 4568 func (x Uint16x32) Or(y Uint16x32) Uint16x32 4569 4570 // Or performs a bitwise x | y. 4571 // 4572 // Asm: VPOR, CPU Feature: AVX 4573 func (x Uint32x4) Or(y Uint32x4) Uint32x4 4574 4575 // Or performs a bitwise x | y. 4576 // 4577 // Asm: VPOR, CPU Feature: AVX2 4578 func (x Uint32x8) Or(y Uint32x8) Uint32x8 4579 4580 // Or performs a bitwise x | y. 4581 // 4582 // Asm: VPORD, CPU Feature: AVX512 4583 func (x Uint32x16) Or(y Uint32x16) Uint32x16 4584 4585 // Or performs a bitwise x | y. 4586 // 4587 // Asm: VPOR, CPU Feature: AVX2 4588 func (x Uint64x4) Or(y Uint64x4) Uint64x4 4589 4590 // Or performs a bitwise x | y. 4591 // 4592 // Asm: VPORQ, CPU Feature: AVX512 4593 func (x Uint64x8) Or(y Uint64x8) Uint64x8 4594 4595 // Or performs a bitwise x | y. 4596 // 4597 // Asm: VPOR, CPU Feature: AVX 4598 func (x Uint64x2) Or(y Uint64x2) Uint64x2 4599 4600 /* Permute */ 4601 4602 // Permute permutes x. 4603 // 4604 // z[i] = x[indices[i] % len(x)] 4605 // 4606 // Asm: VPERMB, CPU Feature: AVX512VBMI 4607 func (x Int8x16) Permute(indices Uint8x16) Int8x16 4608 4609 // Permute permutes x. 4610 // 4611 // z[i] = x[indices[i] % len(x)] 4612 // 4613 // Asm: VPERMB, CPU Feature: AVX512VBMI 4614 func (x Uint8x16) Permute(indices Uint8x16) Uint8x16 4615 4616 // Permute permutes x. 4617 // 4618 // z[i] = x[indices[i] % len(x)] 4619 // 4620 // Asm: VPERMB, CPU Feature: AVX512VBMI 4621 func (x Int8x32) Permute(indices Uint8x32) Int8x32 4622 4623 // Permute permutes x. 4624 // 4625 // z[i] = x[indices[i] % len(x)] 4626 // 4627 // Asm: VPERMB, CPU Feature: AVX512VBMI 4628 func (x Uint8x32) Permute(indices Uint8x32) Uint8x32 4629 4630 // Permute permutes x. 4631 // 4632 // z[i] = x[indices[i] % len(x)] 4633 // 4634 // Asm: VPERMB, CPU Feature: AVX512VBMI 4635 func (x Int8x64) Permute(indices Uint8x64) Int8x64 4636 4637 // Permute permutes x. 4638 // 4639 // z[i] = x[indices[i] % len(x)] 4640 // 4641 // Asm: VPERMB, CPU Feature: AVX512VBMI 4642 func (x Uint8x64) Permute(indices Uint8x64) Uint8x64 4643 4644 // Permute permutes x. 4645 // 4646 // z[i] = x[indices[i] % len(x)] 4647 // 4648 // Asm: VPERMW, CPU Feature: AVX512 4649 func (x Int16x8) Permute(indices Uint16x8) Int16x8 4650 4651 // Permute permutes x. 4652 // 4653 // z[i] = x[indices[i] % len(x)] 4654 // 4655 // Asm: VPERMW, CPU Feature: AVX512 4656 func (x Uint16x8) Permute(indices Uint16x8) Uint16x8 4657 4658 // Permute permutes x. 4659 // 4660 // z[i] = x[indices[i] % len(x)] 4661 // 4662 // Asm: VPERMW, CPU Feature: AVX512 4663 func (x Int16x16) Permute(indices Uint16x16) Int16x16 4664 4665 // Permute permutes x. 4666 // 4667 // z[i] = x[indices[i] % len(x)] 4668 // 4669 // Asm: VPERMW, CPU Feature: AVX512 4670 func (x Uint16x16) Permute(indices Uint16x16) Uint16x16 4671 4672 // Permute permutes x. 4673 // 4674 // z[i] = x[indices[i] % len(x)] 4675 // 4676 // Asm: VPERMW, CPU Feature: AVX512 4677 func (x Int16x32) Permute(indices Uint16x32) Int16x32 4678 4679 // Permute permutes x. 4680 // 4681 // z[i] = x[indices[i] % len(x)] 4682 // 4683 // Asm: VPERMW, CPU Feature: AVX512 4684 func (x Uint16x32) Permute(indices Uint16x32) Uint16x32 4685 4686 // Permute permutes x. 4687 // 4688 // z[i] = x[indices[i] % len(x)] 4689 // 4690 // Asm: VPERMPS, CPU Feature: AVX2 4691 func (x Float32x8) Permute(indices Uint32x8) Float32x8 4692 4693 // Permute permutes x. 4694 // 4695 // z[i] = x[indices[i] % len(x)] 4696 // 4697 // Asm: VPERMD, CPU Feature: AVX2 4698 func (x Int32x8) Permute(indices Uint32x8) Int32x8 4699 4700 // Permute permutes x. 4701 // 4702 // z[i] = x[indices[i] % len(x)] 4703 // 4704 // Asm: VPERMD, CPU Feature: AVX2 4705 func (x Uint32x8) Permute(indices Uint32x8) Uint32x8 4706 4707 // Permute permutes x. 4708 // 4709 // z[i] = x[indices[i] % len(x)] 4710 // 4711 // Asm: VPERMPS, CPU Feature: AVX512 4712 func (x Float32x16) Permute(indices Uint32x16) Float32x16 4713 4714 // Permute permutes x. 4715 // 4716 // z[i] = x[indices[i] % len(x)] 4717 // 4718 // Asm: VPERMD, CPU Feature: AVX512 4719 func (x Int32x16) Permute(indices Uint32x16) Int32x16 4720 4721 // Permute permutes x. 4722 // 4723 // z[i] = x[indices[i] % len(x)] 4724 // 4725 // Asm: VPERMD, CPU Feature: AVX512 4726 func (x Uint32x16) Permute(indices Uint32x16) Uint32x16 4727 4728 // Permute permutes x. 4729 // 4730 // z[i] = x[indices[i] % len(x)] 4731 // 4732 // Asm: VPERMPD, CPU Feature: AVX512 4733 func (x Float64x4) Permute(indices Uint64x4) Float64x4 4734 4735 // Permute permutes x. 4736 // 4737 // z[i] = x[indices[i] % len(x)] 4738 // 4739 // Asm: VPERMQ, CPU Feature: AVX512 4740 func (x Int64x4) Permute(indices Uint64x4) Int64x4 4741 4742 // Permute permutes x. 4743 // 4744 // z[i] = x[indices[i] % len(x)] 4745 // 4746 // Asm: VPERMQ, CPU Feature: AVX512 4747 func (x Uint64x4) Permute(indices Uint64x4) Uint64x4 4748 4749 // Permute permutes x. 4750 // 4751 // z[i] = x[indices[i] % len(x)] 4752 // 4753 // Asm: VPERMPD, CPU Feature: AVX512 4754 func (x Float64x8) Permute(indices Uint64x8) Float64x8 4755 4756 // Permute permutes x. 4757 // 4758 // z[i] = x[indices[i] % len(x)] 4759 // 4760 // Asm: VPERMQ, CPU Feature: AVX512 4761 func (x Int64x8) Permute(indices Uint64x8) Int64x8 4762 4763 // Permute permutes x. 4764 // 4765 // z[i] = x[indices[i] % len(x)] 4766 // 4767 // Asm: VPERMQ, CPU Feature: AVX512 4768 func (x Uint64x8) Permute(indices Uint64x8) Uint64x8 4769 4770 /* PermuteOrZero */ 4771 4772 // PermuteOrZero permutes x. If an index is negative, the result is 0. 4773 // 4774 // if indices[i] >= 0 { 4775 // z[i] = x[indices[i] % len(x)] 4776 // } else { 4777 // z[i] = 0 4778 // } 4779 // 4780 // Asm: VPSHUFB, CPU Feature: AVX 4781 func (x Int8x16) PermuteOrZero(indices Int8x16) Int8x16 4782 4783 // PermuteOrZero permutes x. If an index is negative, the result is 0. 4784 // 4785 // if indices[i] >= 0 { 4786 // z[i] = x[indices[i] % len(x)] 4787 // } else { 4788 // z[i] = 0 4789 // } 4790 // 4791 // Asm: VPSHUFB, CPU Feature: AVX 4792 func (x Uint8x16) PermuteOrZero(indices Int8x16) Uint8x16 4793 4794 /* PermuteOrZeroGrouped */ 4795 4796 // PermuteOrZeroGrouped permutes x within each 128-bit group. If an index is negative, the result is 0. 4797 // 4798 // let vₙ be the n'th 128-bit group of vector v 4799 // if indicesₙ[i] >= 0 { 4800 // zₙ[i] = xₙ[indicesₙ[i] % len(xₙ)] 4801 // } else { 4802 // zₙ[i] = 0 4803 // } 4804 // 4805 // Asm: VPSHUFB, CPU Feature: AVX2 4806 func (x Int8x32) PermuteOrZeroGrouped(indices Int8x32) Int8x32 4807 4808 // PermuteOrZeroGrouped permutes x within each 128-bit group. If an index is negative, the result is 0. 4809 // 4810 // let vₙ be the n'th 128-bit group of vector v 4811 // if indicesₙ[i] >= 0 { 4812 // zₙ[i] = xₙ[indicesₙ[i] % len(xₙ)] 4813 // } else { 4814 // zₙ[i] = 0 4815 // } 4816 // 4817 // Asm: VPSHUFB, CPU Feature: AVX512 4818 func (x Int8x64) PermuteOrZeroGrouped(indices Int8x64) Int8x64 4819 4820 // PermuteOrZeroGrouped permutes x within each 128-bit group. If an index is negative, the result is 0. 4821 // 4822 // let vₙ be the n'th 128-bit group of vector v 4823 // if indicesₙ[i] >= 0 { 4824 // zₙ[i] = xₙ[indicesₙ[i] % len(xₙ)] 4825 // } else { 4826 // zₙ[i] = 0 4827 // } 4828 // 4829 // Asm: VPSHUFB, CPU Feature: AVX2 4830 func (x Uint8x32) PermuteOrZeroGrouped(indices Int8x32) Uint8x32 4831 4832 // PermuteOrZeroGrouped permutes x within each 128-bit group. If an index is negative, the result is 0. 4833 // 4834 // let vₙ be the n'th 128-bit group of vector v 4835 // if indicesₙ[i] >= 0 { 4836 // zₙ[i] = xₙ[indicesₙ[i] % len(xₙ)] 4837 // } else { 4838 // zₙ[i] = 0 4839 // } 4840 // 4841 // Asm: VPSHUFB, CPU Feature: AVX512 4842 func (x Uint8x64) PermuteOrZeroGrouped(indices Int8x64) Uint8x64 4843 4844 /* Reciprocal */ 4845 4846 // Reciprocal computes an approximate reciprocal of each element. 4847 // 4848 // Asm: VRCPPS, CPU Feature: AVX 4849 func (x Float32x4) Reciprocal() Float32x4 4850 4851 // Reciprocal computes an approximate reciprocal of each element. 4852 // 4853 // Asm: VRCPPS, CPU Feature: AVX 4854 func (x Float32x8) Reciprocal() Float32x8 4855 4856 // Reciprocal computes an approximate reciprocal of each element. 4857 // 4858 // Asm: VRCP14PS, CPU Feature: AVX512 4859 func (x Float32x16) Reciprocal() Float32x16 4860 4861 // Reciprocal computes an approximate reciprocal of each element. 4862 // 4863 // Asm: VRCP14PD, CPU Feature: AVX512 4864 func (x Float64x2) Reciprocal() Float64x2 4865 4866 // Reciprocal computes an approximate reciprocal of each element. 4867 // 4868 // Asm: VRCP14PD, CPU Feature: AVX512 4869 func (x Float64x4) Reciprocal() Float64x4 4870 4871 // Reciprocal computes an approximate reciprocal of each element. 4872 // 4873 // Asm: VRCP14PD, CPU Feature: AVX512 4874 func (x Float64x8) Reciprocal() Float64x8 4875 4876 /* ReciprocalSqrt */ 4877 4878 // ReciprocalSqrt computes an approximate reciprocal of the square root of each element. 4879 // 4880 // Asm: VRSQRTPS, CPU Feature: AVX 4881 func (x Float32x4) ReciprocalSqrt() Float32x4 4882 4883 // ReciprocalSqrt computes an approximate reciprocal of the square root of each element. 4884 // 4885 // Asm: VRSQRTPS, CPU Feature: AVX 4886 func (x Float32x8) ReciprocalSqrt() Float32x8 4887 4888 // ReciprocalSqrt computes an approximate reciprocal of the square root of each element. 4889 // 4890 // Asm: VRSQRT14PS, CPU Feature: AVX512 4891 func (x Float32x16) ReciprocalSqrt() Float32x16 4892 4893 // ReciprocalSqrt computes an approximate reciprocal of the square root of each element. 4894 // 4895 // Asm: VRSQRT14PD, CPU Feature: AVX512 4896 func (x Float64x2) ReciprocalSqrt() Float64x2 4897 4898 // ReciprocalSqrt computes an approximate reciprocal of the square root of each element. 4899 // 4900 // Asm: VRSQRT14PD, CPU Feature: AVX512 4901 func (x Float64x4) ReciprocalSqrt() Float64x4 4902 4903 // ReciprocalSqrt computes an approximate reciprocal of the square root of each element. 4904 // 4905 // Asm: VRSQRT14PD, CPU Feature: AVX512 4906 func (x Float64x8) ReciprocalSqrt() Float64x8 4907 4908 /* RotateLeft */ 4909 4910 // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements. 4911 // 4912 // Asm: VPROLVD, CPU Feature: AVX512 4913 func (x Int32x4) RotateLeft(y Int32x4) Int32x4 4914 4915 // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements. 4916 // 4917 // Asm: VPROLVD, CPU Feature: AVX512 4918 func (x Int32x8) RotateLeft(y Int32x8) Int32x8 4919 4920 // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements. 4921 // 4922 // Asm: VPROLVD, CPU Feature: AVX512 4923 func (x Int32x16) RotateLeft(y Int32x16) Int32x16 4924 4925 // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements. 4926 // 4927 // Asm: VPROLVQ, CPU Feature: AVX512 4928 func (x Int64x2) RotateLeft(y Int64x2) Int64x2 4929 4930 // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements. 4931 // 4932 // Asm: VPROLVQ, CPU Feature: AVX512 4933 func (x Int64x4) RotateLeft(y Int64x4) Int64x4 4934 4935 // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements. 4936 // 4937 // Asm: VPROLVQ, CPU Feature: AVX512 4938 func (x Int64x8) RotateLeft(y Int64x8) Int64x8 4939 4940 // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements. 4941 // 4942 // Asm: VPROLVD, CPU Feature: AVX512 4943 func (x Uint32x4) RotateLeft(y Uint32x4) Uint32x4 4944 4945 // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements. 4946 // 4947 // Asm: VPROLVD, CPU Feature: AVX512 4948 func (x Uint32x8) RotateLeft(y Uint32x8) Uint32x8 4949 4950 // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements. 4951 // 4952 // Asm: VPROLVD, CPU Feature: AVX512 4953 func (x Uint32x16) RotateLeft(y Uint32x16) Uint32x16 4954 4955 // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements. 4956 // 4957 // Asm: VPROLVQ, CPU Feature: AVX512 4958 func (x Uint64x2) RotateLeft(y Uint64x2) Uint64x2 4959 4960 // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements. 4961 // 4962 // Asm: VPROLVQ, CPU Feature: AVX512 4963 func (x Uint64x4) RotateLeft(y Uint64x4) Uint64x4 4964 4965 // RotateLeft rotates each element in x to the left by the number of bits specified by y's corresponding elements. 4966 // 4967 // Asm: VPROLVQ, CPU Feature: AVX512 4968 func (x Uint64x8) RotateLeft(y Uint64x8) Uint64x8 4969 4970 /* RotateRight */ 4971 4972 // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements. 4973 // 4974 // Asm: VPRORVD, CPU Feature: AVX512 4975 func (x Int32x4) RotateRight(y Int32x4) Int32x4 4976 4977 // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements. 4978 // 4979 // Asm: VPRORVD, CPU Feature: AVX512 4980 func (x Int32x8) RotateRight(y Int32x8) Int32x8 4981 4982 // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements. 4983 // 4984 // Asm: VPRORVD, CPU Feature: AVX512 4985 func (x Int32x16) RotateRight(y Int32x16) Int32x16 4986 4987 // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements. 4988 // 4989 // Asm: VPRORVQ, CPU Feature: AVX512 4990 func (x Int64x2) RotateRight(y Int64x2) Int64x2 4991 4992 // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements. 4993 // 4994 // Asm: VPRORVQ, CPU Feature: AVX512 4995 func (x Int64x4) RotateRight(y Int64x4) Int64x4 4996 4997 // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements. 4998 // 4999 // Asm: VPRORVQ, CPU Feature: AVX512 5000 func (x Int64x8) RotateRight(y Int64x8) Int64x8 5001 5002 // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements. 5003 // 5004 // Asm: VPRORVD, CPU Feature: AVX512 5005 func (x Uint32x4) RotateRight(y Uint32x4) Uint32x4 5006 5007 // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements. 5008 // 5009 // Asm: VPRORVD, CPU Feature: AVX512 5010 func (x Uint32x8) RotateRight(y Uint32x8) Uint32x8 5011 5012 // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements. 5013 // 5014 // Asm: VPRORVD, CPU Feature: AVX512 5015 func (x Uint32x16) RotateRight(y Uint32x16) Uint32x16 5016 5017 // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements. 5018 // 5019 // Asm: VPRORVQ, CPU Feature: AVX512 5020 func (x Uint64x2) RotateRight(y Uint64x2) Uint64x2 5021 5022 // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements. 5023 // 5024 // Asm: VPRORVQ, CPU Feature: AVX512 5025 func (x Uint64x4) RotateRight(y Uint64x4) Uint64x4 5026 5027 // RotateRight rotates each element in x to the right by the number of bits specified by y's corresponding elements. 5028 // 5029 // Asm: VPRORVQ, CPU Feature: AVX512 5030 func (x Uint64x8) RotateRight(y Uint64x8) Uint64x8 5031 5032 /* Round */ 5033 5034 // Round rounds elements to the nearest integer, rounding ties to even. 5035 // 5036 // Asm: VROUNDPS, CPU Feature: AVX 5037 func (x Float32x4) Round() Float32x4 5038 5039 // Round rounds elements to the nearest integer, rounding ties to even. 5040 // 5041 // Asm: VROUNDPS, CPU Feature: AVX 5042 func (x Float32x8) Round() Float32x8 5043 5044 // Round rounds elements to the nearest integer, rounding ties to even. 5045 // 5046 // Asm: VROUNDPD, CPU Feature: AVX 5047 func (x Float64x2) Round() Float64x2 5048 5049 // Round rounds elements to the nearest integer, rounding ties to even. 5050 // 5051 // Asm: VROUNDPD, CPU Feature: AVX 5052 func (x Float64x4) Round() Float64x4 5053 5054 /* RoundScaled */ 5055 5056 // RoundScaled rounds elements with specified precision. 5057 // 5058 // A non-constant value of prec may result in significantly worse performance for this operation. 5059 // 5060 // Asm: VRNDSCALEPS, CPU Feature: AVX512 5061 func (x Float32x4) RoundScaled(prec uint8) Float32x4 5062 5063 // RoundScaled rounds elements with specified precision. 5064 // 5065 // A non-constant value of prec may result in significantly worse performance for this operation. 5066 // 5067 // Asm: VRNDSCALEPS, CPU Feature: AVX512 5068 func (x Float32x8) RoundScaled(prec uint8) Float32x8 5069 5070 // RoundScaled rounds elements with specified precision. 5071 // 5072 // A non-constant value of prec may result in significantly worse performance for this operation. 5073 // 5074 // Asm: VRNDSCALEPS, CPU Feature: AVX512 5075 func (x Float32x16) RoundScaled(prec uint8) Float32x16 5076 5077 // RoundScaled rounds elements with specified precision. 5078 // 5079 // A non-constant value of prec may result in significantly worse performance for this operation. 5080 // 5081 // Asm: VRNDSCALEPD, CPU Feature: AVX512 5082 func (x Float64x2) RoundScaled(prec uint8) Float64x2 5083 5084 // RoundScaled rounds elements with specified precision. 5085 // 5086 // A non-constant value of prec may result in significantly worse performance for this operation. 5087 // 5088 // Asm: VRNDSCALEPD, CPU Feature: AVX512 5089 func (x Float64x4) RoundScaled(prec uint8) Float64x4 5090 5091 // RoundScaled rounds elements with specified precision. 5092 // 5093 // A non-constant value of prec may result in significantly worse performance for this operation. 5094 // 5095 // Asm: VRNDSCALEPD, CPU Feature: AVX512 5096 func (x Float64x8) RoundScaled(prec uint8) Float64x8 5097 5098 /* RoundScaledResidue */ 5099 5100 // RoundScaledResidue computes the difference after rounding with specified precision. 5101 // 5102 // A non-constant value of prec may result in significantly worse performance for this operation. 5103 // 5104 // Asm: VREDUCEPS, CPU Feature: AVX512 5105 func (x Float32x4) RoundScaledResidue(prec uint8) Float32x4 5106 5107 // RoundScaledResidue computes the difference after rounding with specified precision. 5108 // 5109 // A non-constant value of prec may result in significantly worse performance for this operation. 5110 // 5111 // Asm: VREDUCEPS, CPU Feature: AVX512 5112 func (x Float32x8) RoundScaledResidue(prec uint8) Float32x8 5113 5114 // RoundScaledResidue computes the difference after rounding with specified precision. 5115 // 5116 // A non-constant value of prec may result in significantly worse performance for this operation. 5117 // 5118 // Asm: VREDUCEPS, CPU Feature: AVX512 5119 func (x Float32x16) RoundScaledResidue(prec uint8) Float32x16 5120 5121 // RoundScaledResidue computes the difference after rounding with specified precision. 5122 // 5123 // A non-constant value of prec may result in significantly worse performance for this operation. 5124 // 5125 // Asm: VREDUCEPD, CPU Feature: AVX512 5126 func (x Float64x2) RoundScaledResidue(prec uint8) Float64x2 5127 5128 // RoundScaledResidue computes the difference after rounding with specified precision. 5129 // 5130 // A non-constant value of prec may result in significantly worse performance for this operation. 5131 // 5132 // Asm: VREDUCEPD, CPU Feature: AVX512 5133 func (x Float64x4) RoundScaledResidue(prec uint8) Float64x4 5134 5135 // RoundScaledResidue computes the difference after rounding with specified precision. 5136 // 5137 // A non-constant value of prec may result in significantly worse performance for this operation. 5138 // 5139 // Asm: VREDUCEPD, CPU Feature: AVX512 5140 func (x Float64x8) RoundScaledResidue(prec uint8) Float64x8 5141 5142 /* SHA1FourRounds */ 5143 5144 // SHA1FourRounds performs 4 rounds of B loop in SHA1 algorithm defined in FIPS 180-4. 5145 // x contains the state variables a, b, c and d from upper to lower order. 5146 // y contains the W array elements (with the state variable e added to the upper element) from upper to lower order. 5147 // result = the state variables a', b', c', d' updated after 4 rounds. 5148 // 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. 5149 // 5150 // A non-constant value of constant may result in significantly worse performance for this operation. 5151 // 5152 // Asm: SHA1RNDS4, CPU Feature: SHA 5153 func (x Uint32x4) SHA1FourRounds(constant uint8, y Uint32x4) Uint32x4 5154 5155 /* SHA1Message1 */ 5156 5157 // SHA1Message1 does the XORing of 1 in SHA1 algorithm defined in FIPS 180-4. 5158 // x = {W3, W2, W1, W0} 5159 // y = {0, 0, W5, W4} 5160 // result = {W3^W5, W2^W4, W1^W3, W0^W2}. 5161 // 5162 // Asm: SHA1MSG1, CPU Feature: SHA 5163 func (x Uint32x4) SHA1Message1(y Uint32x4) Uint32x4 5164 5165 /* SHA1Message2 */ 5166 5167 // SHA1Message2 does the calculation of 3 and 4 in SHA1 algorithm defined in FIPS 180-4. 5168 // x = result of 2. 5169 // y = {W15, W14, W13} 5170 // result = {W19, W18, W17, W16} 5171 // 5172 // Asm: SHA1MSG2, CPU Feature: SHA 5173 func (x Uint32x4) SHA1Message2(y Uint32x4) Uint32x4 5174 5175 /* SHA1NextE */ 5176 5177 // SHA1NextE calculates the state variable e' updated after 4 rounds in SHA1 algorithm defined in FIPS 180-4. 5178 // x contains the state variable a (before the 4 rounds), placed in the upper element. 5179 // y is the elements of W array for next 4 rounds from upper to lower order. 5180 // result = the elements of the W array for the next 4 rounds, with the updated state variable e' added to the upper element, 5181 // from upper to lower order. 5182 // 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 5183 // 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 5184 // computation of the value of e'.) 5185 // 5186 // Asm: SHA1NEXTE, CPU Feature: SHA 5187 func (x Uint32x4) SHA1NextE(y Uint32x4) Uint32x4 5188 5189 /* SHA256Message1 */ 5190 5191 // SHA256Message1 does the sigma and addition of 1 in SHA256 algorithm defined in FIPS 180-4. 5192 // x = {W0, W1, W2, W3} 5193 // y = {W4, 0, 0, 0} 5194 // result = {W0+σ(W1), W1+σ(W2), W2+σ(W3), W3+σ(W4)} 5195 // 5196 // Asm: SHA256MSG1, CPU Feature: SHA 5197 func (x Uint32x4) SHA256Message1(y Uint32x4) Uint32x4 5198 5199 /* SHA256Message2 */ 5200 5201 // SHA256Message2 does the sigma and addition of 3 in SHA256 algorithm defined in FIPS 180-4. 5202 // x = result of 2 5203 // y = {0, 0, W14, W15} 5204 // result = {W16, W17, W18, W19} 5205 // 5206 // Asm: SHA256MSG2, CPU Feature: SHA 5207 func (x Uint32x4) SHA256Message2(y Uint32x4) Uint32x4 5208 5209 /* SHA256TwoRounds */ 5210 5211 // SHA256TwoRounds does 2 rounds of B loop to calculate updated state variables in SHA256 algorithm defined in FIPS 180-4. 5212 // x = {h, g, d, c} 5213 // y = {f, e, b, a} 5214 // z = {W0+K0, W1+K1} 5215 // result = {f', e', b', a'} 5216 // 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 5217 // the corresponding element of the W array to make the input data z. 5218 // The updated state variables c', d', g', h' are not returned by this instruction, because they are equal to the input data 5219 // y (the state variables a, b, e, f before the 2 rounds). 5220 // 5221 // Asm: SHA256RNDS2, CPU Feature: SHA 5222 func (x Uint32x4) SHA256TwoRounds(y Uint32x4, z Uint32x4) Uint32x4 5223 5224 /* SaturateToInt8 */ 5225 5226 // SaturateToInt8 converts element values to int8 with signed saturation. 5227 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 5228 // 5229 // Asm: VPMOVSWB, CPU Feature: AVX512 5230 func (x Int16x8) SaturateToInt8() Int8x16 5231 5232 // SaturateToInt8 converts element values to int8 with signed saturation. 5233 // 5234 // Asm: VPMOVSWB, CPU Feature: AVX512 5235 func (x Int16x16) SaturateToInt8() Int8x16 5236 5237 // SaturateToInt8 converts element values to int8 with signed saturation. 5238 // 5239 // Asm: VPMOVSWB, CPU Feature: AVX512 5240 func (x Int16x32) SaturateToInt8() Int8x32 5241 5242 // SaturateToInt8 converts element values to int8 with signed saturation. 5243 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 5244 // 5245 // Asm: VPMOVSDB, CPU Feature: AVX512 5246 func (x Int32x4) SaturateToInt8() Int8x16 5247 5248 // SaturateToInt8 converts element values to int8 with signed saturation. 5249 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 5250 // 5251 // Asm: VPMOVSDB, CPU Feature: AVX512 5252 func (x Int32x8) SaturateToInt8() Int8x16 5253 5254 // SaturateToInt8 converts element values to int8 with signed saturation. 5255 // 5256 // Asm: VPMOVSDB, CPU Feature: AVX512 5257 func (x Int32x16) SaturateToInt8() Int8x16 5258 5259 // SaturateToInt8 converts element values to int8 with signed saturation. 5260 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 5261 // 5262 // Asm: VPMOVSQB, CPU Feature: AVX512 5263 func (x Int64x2) SaturateToInt8() Int8x16 5264 5265 // SaturateToInt8 converts element values to int8 with signed saturation. 5266 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 5267 // 5268 // Asm: VPMOVSQB, CPU Feature: AVX512 5269 func (x Int64x4) SaturateToInt8() Int8x16 5270 5271 // SaturateToInt8 converts element values to int8 with signed saturation. 5272 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 5273 // 5274 // Asm: VPMOVSQB, CPU Feature: AVX512 5275 func (x Int64x8) SaturateToInt8() Int8x16 5276 5277 /* SaturateToInt16 */ 5278 5279 // SaturateToInt16 converts element values to int16 with signed saturation. 5280 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 5281 // 5282 // Asm: VPMOVSDW, CPU Feature: AVX512 5283 func (x Int32x4) SaturateToInt16() Int16x8 5284 5285 // SaturateToInt16 converts element values to int16 with signed saturation. 5286 // 5287 // Asm: VPMOVSDW, CPU Feature: AVX512 5288 func (x Int32x8) SaturateToInt16() Int16x8 5289 5290 // SaturateToInt16 converts element values to int16 with signed saturation. 5291 // 5292 // Asm: VPMOVSDW, CPU Feature: AVX512 5293 func (x Int32x16) SaturateToInt16() Int16x16 5294 5295 // SaturateToInt16 converts element values to int16 with signed saturation. 5296 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 5297 // 5298 // Asm: VPMOVSQW, CPU Feature: AVX512 5299 func (x Int64x2) SaturateToInt16() Int16x8 5300 5301 // SaturateToInt16 converts element values to int16 with signed saturation. 5302 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 5303 // 5304 // Asm: VPMOVSQW, CPU Feature: AVX512 5305 func (x Int64x4) SaturateToInt16() Int16x8 5306 5307 // SaturateToInt16 converts element values to int16 with signed saturation. 5308 // 5309 // Asm: VPMOVSQW, CPU Feature: AVX512 5310 func (x Int64x8) SaturateToInt16() Int16x8 5311 5312 /* SaturateToInt16Concat */ 5313 5314 // SaturateToInt16Concat converts element values to int16 with signed saturation. 5315 // The converted elements from x will be packed to the lower part of the result vector, 5316 // the converted elements from y will be packed to the upper part of the result vector. 5317 // 5318 // Asm: VPACKSSDW, CPU Feature: AVX 5319 func (x Int32x4) SaturateToInt16Concat(y Int32x4) Int16x8 5320 5321 /* SaturateToInt16ConcatGrouped */ 5322 5323 // SaturateToInt16ConcatGrouped converts element values to int16 with signed saturation. 5324 // With each 128-bit as a group: 5325 // The converted elements from x will be packed to the lower part of the group in the result vector, 5326 // the converted elements from y will be packed to the upper part of the group in the result vector. 5327 // 5328 // Asm: VPACKSSDW, CPU Feature: AVX2 5329 func (x Int32x8) SaturateToInt16ConcatGrouped(y Int32x8) Int16x16 5330 5331 // SaturateToInt16ConcatGrouped converts element values to int16 with signed saturation. 5332 // With each 128-bit as a group: 5333 // The converted elements from x will be packed to the lower part of the group in the result vector, 5334 // the converted elements from y will be packed to the upper part of the group in the result vector. 5335 // 5336 // Asm: VPACKSSDW, CPU Feature: AVX512 5337 func (x Int32x16) SaturateToInt16ConcatGrouped(y Int32x16) Int16x32 5338 5339 /* SaturateToInt32 */ 5340 5341 // SaturateToInt32 converts element values to int32 with signed saturation. 5342 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 5343 // 5344 // Asm: VPMOVSQD, CPU Feature: AVX512 5345 func (x Int64x2) SaturateToInt32() Int32x4 5346 5347 // SaturateToInt32 converts element values to int32 with signed saturation. 5348 // 5349 // Asm: VPMOVSQD, CPU Feature: AVX512 5350 func (x Int64x4) SaturateToInt32() Int32x4 5351 5352 // SaturateToInt32 converts element values to int32 with signed saturation. 5353 // 5354 // Asm: VPMOVSQD, CPU Feature: AVX512 5355 func (x Int64x8) SaturateToInt32() Int32x8 5356 5357 /* SaturateToUint8 */ 5358 5359 // SaturateToUint8 converts element values to uint8 with unsigned saturation. 5360 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 5361 // 5362 // Asm: VPMOVUSWB, CPU Feature: AVX512 5363 func (x Uint16x8) SaturateToUint8() Uint8x16 5364 5365 // SaturateToUint8 converts element values to uint8 with unsigned saturation. 5366 // 5367 // Asm: VPMOVUSWB, CPU Feature: AVX512 5368 func (x Uint16x16) SaturateToUint8() Uint8x16 5369 5370 // SaturateToUint8 converts element values to uint8 with unsigned saturation. 5371 // 5372 // Asm: VPMOVUSWB, CPU Feature: AVX512 5373 func (x Uint16x32) SaturateToUint8() Uint8x32 5374 5375 // SaturateToUint8 converts element values to uint8 with unsigned saturation. 5376 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 5377 // 5378 // Asm: VPMOVUSDB, CPU Feature: AVX512 5379 func (x Uint32x4) SaturateToUint8() Uint8x16 5380 5381 // SaturateToUint8 converts element values to uint8 with unsigned saturation. 5382 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 5383 // 5384 // Asm: VPMOVUSDB, CPU Feature: AVX512 5385 func (x Uint32x8) SaturateToUint8() Uint8x16 5386 5387 // SaturateToUint8 converts element values to uint8 with unsigned saturation. 5388 // 5389 // Asm: VPMOVUSDB, CPU Feature: AVX512 5390 func (x Uint32x16) SaturateToUint8() Uint8x16 5391 5392 // SaturateToUint8 converts element values to uint8 with unsigned saturation. 5393 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 5394 // 5395 // Asm: VPMOVUSQB, CPU Feature: AVX512 5396 func (x Uint64x2) SaturateToUint8() Uint8x16 5397 5398 // SaturateToUint8 converts element values to uint8 with unsigned saturation. 5399 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 5400 // 5401 // Asm: VPMOVUSQB, CPU Feature: AVX512 5402 func (x Uint64x4) SaturateToUint8() Uint8x16 5403 5404 // SaturateToUint8 converts element values to uint8 with unsigned saturation. 5405 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 5406 // 5407 // Asm: VPMOVUSQB, CPU Feature: AVX512 5408 func (x Uint64x8) SaturateToUint8() Uint8x16 5409 5410 /* SaturateToUint16 */ 5411 5412 // SaturateToUint16 converts element values to uint16 with unsigned saturation. 5413 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 5414 // 5415 // Asm: VPMOVUSDW, CPU Feature: AVX512 5416 func (x Uint32x4) SaturateToUint16() Uint16x8 5417 5418 // SaturateToUint16 converts element values to uint16 with unsigned saturation. 5419 // 5420 // Asm: VPMOVUSDW, CPU Feature: AVX512 5421 func (x Uint32x8) SaturateToUint16() Uint16x8 5422 5423 // SaturateToUint16 converts element values to uint16 with unsigned saturation. 5424 // 5425 // Asm: VPMOVUSDW, CPU Feature: AVX512 5426 func (x Uint32x16) SaturateToUint16() Uint16x16 5427 5428 // SaturateToUint16 converts element values to uint16 with unsigned saturation. 5429 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 5430 // 5431 // Asm: VPMOVUSQW, CPU Feature: AVX512 5432 func (x Uint64x2) SaturateToUint16() Uint16x8 5433 5434 // SaturateToUint16 converts element values to uint16 with unsigned saturation. 5435 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 5436 // 5437 // Asm: VPMOVUSQW, CPU Feature: AVX512 5438 func (x Uint64x4) SaturateToUint16() Uint16x8 5439 5440 // SaturateToUint16 converts element values to uint16 with unsigned saturation. 5441 // 5442 // Asm: VPMOVUSQW, CPU Feature: AVX512 5443 func (x Uint64x8) SaturateToUint16() Uint16x8 5444 5445 /* SaturateToUint16Concat */ 5446 5447 // SaturateToUint16Concat converts element values to uint16 with unsigned saturation. 5448 // The converted elements from x will be packed to the lower part of the result vector, 5449 // the converted elements from y will be packed to the upper part of the result vector. 5450 // 5451 // Asm: VPACKUSDW, CPU Feature: AVX 5452 func (x Int32x4) SaturateToUint16Concat(y Int32x4) Uint16x8 5453 5454 /* SaturateToUint16ConcatGrouped */ 5455 5456 // SaturateToUint16ConcatGrouped converts element values to uint16 with unsigned saturation. 5457 // With each 128-bit as a group: 5458 // The converted elements from x will be packed to the lower part of the group in the result vector, 5459 // the converted elements from y will be packed to the upper part of the group in the result vector. 5460 // 5461 // Asm: VPACKUSDW, CPU Feature: AVX2 5462 func (x Int32x8) SaturateToUint16ConcatGrouped(y Int32x8) Uint16x16 5463 5464 // SaturateToUint16ConcatGrouped converts element values to uint16 with unsigned saturation. 5465 // With each 128-bit as a group: 5466 // The converted elements from x will be packed to the lower part of the group in the result vector, 5467 // the converted elements from y will be packed to the upper part of the group in the result vector. 5468 // 5469 // Asm: VPACKUSDW, CPU Feature: AVX512 5470 func (x Int32x16) SaturateToUint16ConcatGrouped(y Int32x16) Uint16x32 5471 5472 /* SaturateToUint32 */ 5473 5474 // SaturateToUint32 converts element values to uint32 with unsigned saturation. 5475 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 5476 // 5477 // Asm: VPMOVUSQD, CPU Feature: AVX512 5478 func (x Uint64x2) SaturateToUint32() Uint32x4 5479 5480 // SaturateToUint32 converts element values to uint32 with unsigned saturation. 5481 // 5482 // Asm: VPMOVUSQD, CPU Feature: AVX512 5483 func (x Uint64x4) SaturateToUint32() Uint32x4 5484 5485 // SaturateToUint32 converts element values to uint32 with unsigned saturation. 5486 // 5487 // Asm: VPMOVUSQD, CPU Feature: AVX512 5488 func (x Uint64x8) SaturateToUint32() Uint32x8 5489 5490 /* Scale */ 5491 5492 // Scale multiplies each element of x by 2 raised to the power of the 5493 // floor of the corresponding element in y. 5494 // 5495 // Asm: VSCALEFPS, CPU Feature: AVX512 5496 func (x Float32x4) Scale(y Float32x4) Float32x4 5497 5498 // Scale multiplies each element of x by 2 raised to the power of the 5499 // floor of the corresponding element in y. 5500 // 5501 // Asm: VSCALEFPS, CPU Feature: AVX512 5502 func (x Float32x8) Scale(y Float32x8) Float32x8 5503 5504 // Scale multiplies each element of x by 2 raised to the power of the 5505 // floor of the corresponding element in y. 5506 // 5507 // Asm: VSCALEFPS, CPU Feature: AVX512 5508 func (x Float32x16) Scale(y Float32x16) Float32x16 5509 5510 // Scale multiplies each element of x by 2 raised to the power of the 5511 // floor of the corresponding element in y. 5512 // 5513 // Asm: VSCALEFPD, CPU Feature: AVX512 5514 func (x Float64x2) Scale(y Float64x2) Float64x2 5515 5516 // Scale multiplies each element of x by 2 raised to the power of the 5517 // floor of the corresponding element in y. 5518 // 5519 // Asm: VSCALEFPD, CPU Feature: AVX512 5520 func (x Float64x4) Scale(y Float64x4) Float64x4 5521 5522 // Scale multiplies each element of x by 2 raised to the power of the 5523 // floor of the corresponding element in y. 5524 // 5525 // Asm: VSCALEFPD, CPU Feature: AVX512 5526 func (x Float64x8) Scale(y Float64x8) Float64x8 5527 5528 /* SetElem */ 5529 5530 // SetElem returns x with the index'th element set to y. 5531 // 5532 // A non-constant value of index may result in significantly worse performance for this operation. 5533 // 5534 // Asm: VPINSRD, CPU Feature: AVX 5535 func (x Float32x4) SetElem(index uint8, y float32) Float32x4 5536 5537 // SetElem returns x with the index'th element set to y. 5538 // 5539 // A non-constant value of index may result in significantly worse performance for this operation. 5540 // 5541 // Asm: VPINSRQ, CPU Feature: AVX 5542 func (x Float64x2) SetElem(index uint8, y float64) Float64x2 5543 5544 // SetElem returns x with the index'th element set to y. 5545 // 5546 // A non-constant value of index may result in significantly worse performance for this operation. 5547 // 5548 // Asm: VPINSRB, CPU Feature: AVX 5549 func (x Int8x16) SetElem(index uint8, y int8) Int8x16 5550 5551 // SetElem returns x with the index'th element set to y. 5552 // 5553 // A non-constant value of index may result in significantly worse performance for this operation. 5554 // 5555 // Asm: VPINSRW, CPU Feature: AVX 5556 func (x Int16x8) SetElem(index uint8, y int16) Int16x8 5557 5558 // SetElem returns x with the index'th element set to y. 5559 // 5560 // A non-constant value of index may result in significantly worse performance for this operation. 5561 // 5562 // Asm: VPINSRD, CPU Feature: AVX 5563 func (x Int32x4) SetElem(index uint8, y int32) Int32x4 5564 5565 // SetElem returns x with the index'th element set to y. 5566 // 5567 // A non-constant value of index may result in significantly worse performance for this operation. 5568 // 5569 // Asm: VPINSRQ, CPU Feature: AVX 5570 func (x Int64x2) SetElem(index uint8, y int64) Int64x2 5571 5572 // SetElem returns x with the index'th element set to y. 5573 // 5574 // A non-constant value of index may result in significantly worse performance for this operation. 5575 // 5576 // Asm: VPINSRB, CPU Feature: AVX 5577 func (x Uint8x16) SetElem(index uint8, y uint8) Uint8x16 5578 5579 // SetElem returns x with the index'th element set to y. 5580 // 5581 // A non-constant value of index may result in significantly worse performance for this operation. 5582 // 5583 // Asm: VPINSRW, CPU Feature: AVX 5584 func (x Uint16x8) SetElem(index uint8, y uint16) Uint16x8 5585 5586 // SetElem returns x with the index'th element set to y. 5587 // 5588 // A non-constant value of index may result in significantly worse performance for this operation. 5589 // 5590 // Asm: VPINSRD, CPU Feature: AVX 5591 func (x Uint32x4) SetElem(index uint8, y uint32) Uint32x4 5592 5593 // SetElem returns x with the index'th element set to y. 5594 // 5595 // A non-constant value of index may result in significantly worse performance for this operation. 5596 // 5597 // Asm: VPINSRQ, CPU Feature: AVX 5598 func (x Uint64x2) SetElem(index uint8, y uint64) Uint64x2 5599 5600 /* SetHi */ 5601 5602 // SetHi returns x with its upper half set to y. 5603 // 5604 // Asm: VINSERTF128, CPU Feature: AVX 5605 func (x Float32x8) SetHi(y Float32x4) Float32x8 5606 5607 // SetHi returns x with its upper half set to y. 5608 // 5609 // Asm: VINSERTF64X4, CPU Feature: AVX512 5610 func (x Float32x16) SetHi(y Float32x8) Float32x16 5611 5612 // SetHi returns x with its upper half set to y. 5613 // 5614 // Asm: VINSERTF128, CPU Feature: AVX 5615 func (x Float64x4) SetHi(y Float64x2) Float64x4 5616 5617 // SetHi returns x with its upper half set to y. 5618 // 5619 // Asm: VINSERTF64X4, CPU Feature: AVX512 5620 func (x Float64x8) SetHi(y Float64x4) Float64x8 5621 5622 // SetHi returns x with its upper half set to y. 5623 // 5624 // Asm: VINSERTI128, CPU Feature: AVX2 5625 func (x Int8x32) SetHi(y Int8x16) Int8x32 5626 5627 // SetHi returns x with its upper half set to y. 5628 // 5629 // Asm: VINSERTI64X4, CPU Feature: AVX512 5630 func (x Int8x64) SetHi(y Int8x32) Int8x64 5631 5632 // SetHi returns x with its upper half set to y. 5633 // 5634 // Asm: VINSERTI128, CPU Feature: AVX2 5635 func (x Int16x16) SetHi(y Int16x8) Int16x16 5636 5637 // SetHi returns x with its upper half set to y. 5638 // 5639 // Asm: VINSERTI64X4, CPU Feature: AVX512 5640 func (x Int16x32) SetHi(y Int16x16) Int16x32 5641 5642 // SetHi returns x with its upper half set to y. 5643 // 5644 // Asm: VINSERTI128, CPU Feature: AVX2 5645 func (x Int32x8) SetHi(y Int32x4) Int32x8 5646 5647 // SetHi returns x with its upper half set to y. 5648 // 5649 // Asm: VINSERTI64X4, CPU Feature: AVX512 5650 func (x Int32x16) SetHi(y Int32x8) Int32x16 5651 5652 // SetHi returns x with its upper half set to y. 5653 // 5654 // Asm: VINSERTI128, CPU Feature: AVX2 5655 func (x Int64x4) SetHi(y Int64x2) Int64x4 5656 5657 // SetHi returns x with its upper half set to y. 5658 // 5659 // Asm: VINSERTI64X4, CPU Feature: AVX512 5660 func (x Int64x8) SetHi(y Int64x4) Int64x8 5661 5662 // SetHi returns x with its upper half set to y. 5663 // 5664 // Asm: VINSERTI128, CPU Feature: AVX2 5665 func (x Uint8x32) SetHi(y Uint8x16) Uint8x32 5666 5667 // SetHi returns x with its upper half set to y. 5668 // 5669 // Asm: VINSERTI64X4, CPU Feature: AVX512 5670 func (x Uint8x64) SetHi(y Uint8x32) Uint8x64 5671 5672 // SetHi returns x with its upper half set to y. 5673 // 5674 // Asm: VINSERTI128, CPU Feature: AVX2 5675 func (x Uint16x16) SetHi(y Uint16x8) Uint16x16 5676 5677 // SetHi returns x with its upper half set to y. 5678 // 5679 // Asm: VINSERTI64X4, CPU Feature: AVX512 5680 func (x Uint16x32) SetHi(y Uint16x16) Uint16x32 5681 5682 // SetHi returns x with its upper half set to y. 5683 // 5684 // Asm: VINSERTI128, CPU Feature: AVX2 5685 func (x Uint32x8) SetHi(y Uint32x4) Uint32x8 5686 5687 // SetHi returns x with its upper half set to y. 5688 // 5689 // Asm: VINSERTI64X4, CPU Feature: AVX512 5690 func (x Uint32x16) SetHi(y Uint32x8) Uint32x16 5691 5692 // SetHi returns x with its upper half set to y. 5693 // 5694 // Asm: VINSERTI128, CPU Feature: AVX2 5695 func (x Uint64x4) SetHi(y Uint64x2) Uint64x4 5696 5697 // SetHi returns x with its upper half set to y. 5698 // 5699 // Asm: VINSERTI64X4, CPU Feature: AVX512 5700 func (x Uint64x8) SetHi(y Uint64x4) Uint64x8 5701 5702 /* SetLo */ 5703 5704 // SetLo returns x with its lower half set to y. 5705 // 5706 // Asm: VINSERTF128, CPU Feature: AVX 5707 func (x Float32x8) SetLo(y Float32x4) Float32x8 5708 5709 // SetLo returns x with its lower half set to y. 5710 // 5711 // Asm: VINSERTF64X4, CPU Feature: AVX512 5712 func (x Float32x16) SetLo(y Float32x8) Float32x16 5713 5714 // SetLo returns x with its lower half set to y. 5715 // 5716 // Asm: VINSERTF128, CPU Feature: AVX 5717 func (x Float64x4) SetLo(y Float64x2) Float64x4 5718 5719 // SetLo returns x with its lower half set to y. 5720 // 5721 // Asm: VINSERTF64X4, CPU Feature: AVX512 5722 func (x Float64x8) SetLo(y Float64x4) Float64x8 5723 5724 // SetLo returns x with its lower half set to y. 5725 // 5726 // Asm: VINSERTI128, CPU Feature: AVX2 5727 func (x Int8x32) SetLo(y Int8x16) Int8x32 5728 5729 // SetLo returns x with its lower half set to y. 5730 // 5731 // Asm: VINSERTI64X4, CPU Feature: AVX512 5732 func (x Int8x64) SetLo(y Int8x32) Int8x64 5733 5734 // SetLo returns x with its lower half set to y. 5735 // 5736 // Asm: VINSERTI128, CPU Feature: AVX2 5737 func (x Int16x16) SetLo(y Int16x8) Int16x16 5738 5739 // SetLo returns x with its lower half set to y. 5740 // 5741 // Asm: VINSERTI64X4, CPU Feature: AVX512 5742 func (x Int16x32) SetLo(y Int16x16) Int16x32 5743 5744 // SetLo returns x with its lower half set to y. 5745 // 5746 // Asm: VINSERTI128, CPU Feature: AVX2 5747 func (x Int32x8) SetLo(y Int32x4) Int32x8 5748 5749 // SetLo returns x with its lower half set to y. 5750 // 5751 // Asm: VINSERTI64X4, CPU Feature: AVX512 5752 func (x Int32x16) SetLo(y Int32x8) Int32x16 5753 5754 // SetLo returns x with its lower half set to y. 5755 // 5756 // Asm: VINSERTI128, CPU Feature: AVX2 5757 func (x Int64x4) SetLo(y Int64x2) Int64x4 5758 5759 // SetLo returns x with its lower half set to y. 5760 // 5761 // Asm: VINSERTI64X4, CPU Feature: AVX512 5762 func (x Int64x8) SetLo(y Int64x4) Int64x8 5763 5764 // SetLo returns x with its lower half set to y. 5765 // 5766 // Asm: VINSERTI128, CPU Feature: AVX2 5767 func (x Uint8x32) SetLo(y Uint8x16) Uint8x32 5768 5769 // SetLo returns x with its lower half set to y. 5770 // 5771 // Asm: VINSERTI64X4, CPU Feature: AVX512 5772 func (x Uint8x64) SetLo(y Uint8x32) Uint8x64 5773 5774 // SetLo returns x with its lower half set to y. 5775 // 5776 // Asm: VINSERTI128, CPU Feature: AVX2 5777 func (x Uint16x16) SetLo(y Uint16x8) Uint16x16 5778 5779 // SetLo returns x with its lower half set to y. 5780 // 5781 // Asm: VINSERTI64X4, CPU Feature: AVX512 5782 func (x Uint16x32) SetLo(y Uint16x16) Uint16x32 5783 5784 // SetLo returns x with its lower half set to y. 5785 // 5786 // Asm: VINSERTI128, CPU Feature: AVX2 5787 func (x Uint32x8) SetLo(y Uint32x4) Uint32x8 5788 5789 // SetLo returns x with its lower half set to y. 5790 // 5791 // Asm: VINSERTI64X4, CPU Feature: AVX512 5792 func (x Uint32x16) SetLo(y Uint32x8) Uint32x16 5793 5794 // SetLo returns x with its lower half set to y. 5795 // 5796 // Asm: VINSERTI128, CPU Feature: AVX2 5797 func (x Uint64x4) SetLo(y Uint64x2) Uint64x4 5798 5799 // SetLo returns x with its lower half set to y. 5800 // 5801 // Asm: VINSERTI64X4, CPU Feature: AVX512 5802 func (x Uint64x8) SetLo(y Uint64x4) Uint64x8 5803 5804 /* ShiftAllLeft */ 5805 5806 // ShiftAllLeft shifts each element of x left by y bits. 5807 // If y is greater than the element width, the result is 0. 5808 // 5809 // Asm: VPSLLW, CPU Feature: AVX 5810 func (x Int16x8) ShiftAllLeft(shift uint64) Int16x8 5811 5812 // ShiftAllLeft shifts each element of x left by y bits. 5813 // If y is greater than the element width, the result is 0. 5814 // 5815 // Asm: VPSLLW, CPU Feature: AVX2 5816 func (x Int16x16) ShiftAllLeft(shift uint64) Int16x16 5817 5818 // ShiftAllLeft shifts each element of x left by y bits. 5819 // If y is greater than the element width, the result is 0. 5820 // 5821 // Asm: VPSLLW, CPU Feature: AVX512 5822 func (x Int16x32) ShiftAllLeft(shift uint64) Int16x32 5823 5824 // ShiftAllLeft shifts each element of x left by y bits. 5825 // If y is greater than the element width, the result is 0. 5826 // 5827 // Asm: VPSLLD, CPU Feature: AVX 5828 func (x Int32x4) ShiftAllLeft(shift uint64) Int32x4 5829 5830 // ShiftAllLeft shifts each element of x left by y bits. 5831 // If y is greater than the element width, the result is 0. 5832 // 5833 // Asm: VPSLLD, CPU Feature: AVX2 5834 func (x Int32x8) ShiftAllLeft(shift uint64) Int32x8 5835 5836 // ShiftAllLeft shifts each element of x left by y bits. 5837 // If y is greater than the element width, the result is 0. 5838 // 5839 // Asm: VPSLLD, CPU Feature: AVX512 5840 func (x Int32x16) ShiftAllLeft(shift uint64) Int32x16 5841 5842 // ShiftAllLeft shifts each element of x left by y bits. 5843 // If y is greater than the element width, the result is 0. 5844 // 5845 // Asm: VPSLLQ, CPU Feature: AVX 5846 func (x Int64x2) ShiftAllLeft(shift uint64) Int64x2 5847 5848 // ShiftAllLeft shifts each element of x left by y bits. 5849 // If y is greater than the element width, the result is 0. 5850 // 5851 // Asm: VPSLLQ, CPU Feature: AVX2 5852 func (x Int64x4) ShiftAllLeft(shift uint64) Int64x4 5853 5854 // ShiftAllLeft shifts each element of x left by y bits. 5855 // If y is greater than the element width, the result is 0. 5856 // 5857 // Asm: VPSLLQ, CPU Feature: AVX512 5858 func (x Int64x8) ShiftAllLeft(shift uint64) Int64x8 5859 5860 // ShiftAllLeft shifts each element of x left by y bits. 5861 // If y is greater than the element width, the result is 0. 5862 // 5863 // Asm: VPSLLW, CPU Feature: AVX 5864 func (x Uint16x8) ShiftAllLeft(shift uint64) Uint16x8 5865 5866 // ShiftAllLeft shifts each element of x left by y bits. 5867 // If y is greater than the element width, the result is 0. 5868 // 5869 // Asm: VPSLLW, CPU Feature: AVX2 5870 func (x Uint16x16) ShiftAllLeft(shift uint64) Uint16x16 5871 5872 // ShiftAllLeft shifts each element of x left by y bits. 5873 // If y is greater than the element width, the result is 0. 5874 // 5875 // Asm: VPSLLW, CPU Feature: AVX512 5876 func (x Uint16x32) ShiftAllLeft(shift uint64) Uint16x32 5877 5878 // ShiftAllLeft shifts each element of x left by y bits. 5879 // If y is greater than the element width, the result is 0. 5880 // 5881 // Asm: VPSLLD, CPU Feature: AVX 5882 func (x Uint32x4) ShiftAllLeft(shift uint64) Uint32x4 5883 5884 // ShiftAllLeft shifts each element of x left by y bits. 5885 // If y is greater than the element width, the result is 0. 5886 // 5887 // Asm: VPSLLD, CPU Feature: AVX2 5888 func (x Uint32x8) ShiftAllLeft(shift uint64) Uint32x8 5889 5890 // ShiftAllLeft shifts each element of x left by y bits. 5891 // If y is greater than the element width, the result is 0. 5892 // 5893 // Asm: VPSLLD, CPU Feature: AVX512 5894 func (x Uint32x16) ShiftAllLeft(shift uint64) Uint32x16 5895 5896 // ShiftAllLeft shifts each element of x left by y bits. 5897 // If y is greater than the element width, the result is 0. 5898 // 5899 // Asm: VPSLLQ, CPU Feature: AVX 5900 func (x Uint64x2) ShiftAllLeft(shift uint64) Uint64x2 5901 5902 // ShiftAllLeft shifts each element of x left by y bits. 5903 // If y is greater than the element width, the result is 0. 5904 // 5905 // Asm: VPSLLQ, CPU Feature: AVX2 5906 func (x Uint64x4) ShiftAllLeft(shift uint64) Uint64x4 5907 5908 // ShiftAllLeft shifts each element of x left by y bits. 5909 // If y is greater than the element width, the result is 0. 5910 // 5911 // Asm: VPSLLQ, CPU Feature: AVX512 5912 func (x Uint64x8) ShiftAllLeft(shift uint64) Uint64x8 5913 5914 /* ShiftAllLeftConcatMod16 */ 5915 5916 // ShiftAllLeftConcatMod16 shifts x[i] left by shift%16, filing any empted lower bits 5917 // with the high bits of y[i]. 5918 // 5919 // z[i] = concat(x[i], y[i]) << (shift%16) 5920 // 5921 // A non-constant value of shift may result in significantly worse performance for this operation. 5922 // 5923 // Asm: VPSHLDW, CPU Feature: AVX512VBMI2 5924 func (x Int16x8) ShiftAllLeftConcatMod16(y Int16x8, shift uint64) Int16x8 5925 5926 // ShiftAllLeftConcatMod16 shifts x[i] left by shift%16, filing any empted lower bits 5927 // with the high bits of y[i]. 5928 // 5929 // z[i] = concat(x[i], y[i]) << (shift%16) 5930 // 5931 // A non-constant value of shift may result in significantly worse performance for this operation. 5932 // 5933 // Asm: VPSHLDW, CPU Feature: AVX512VBMI2 5934 func (x Int16x16) ShiftAllLeftConcatMod16(y Int16x16, shift uint64) Int16x16 5935 5936 // ShiftAllLeftConcatMod16 shifts x[i] left by shift%16, filing any empted lower bits 5937 // with the high bits of y[i]. 5938 // 5939 // z[i] = concat(x[i], y[i]) << (shift%16) 5940 // 5941 // A non-constant value of shift may result in significantly worse performance for this operation. 5942 // 5943 // Asm: VPSHLDW, CPU Feature: AVX512VBMI2 5944 func (x Int16x32) ShiftAllLeftConcatMod16(y Int16x32, shift uint64) Int16x32 5945 5946 // ShiftAllLeftConcatMod16 shifts x[i] left by shift%16, filing any empted lower bits 5947 // with the high bits of y[i]. 5948 // 5949 // z[i] = concat(x[i], y[i]) << (shift%16) 5950 // 5951 // A non-constant value of shift may result in significantly worse performance for this operation. 5952 // 5953 // Asm: VPSHLDW, CPU Feature: AVX512VBMI2 5954 func (x Uint16x8) ShiftAllLeftConcatMod16(y Uint16x8, shift uint64) Uint16x8 5955 5956 // ShiftAllLeftConcatMod16 shifts x[i] left by shift%16, filing any empted lower bits 5957 // with the high bits of y[i]. 5958 // 5959 // z[i] = concat(x[i], y[i]) << (shift%16) 5960 // 5961 // A non-constant value of shift may result in significantly worse performance for this operation. 5962 // 5963 // Asm: VPSHLDW, CPU Feature: AVX512VBMI2 5964 func (x Uint16x16) ShiftAllLeftConcatMod16(y Uint16x16, shift uint64) Uint16x16 5965 5966 // ShiftAllLeftConcatMod16 shifts x[i] left by shift%16, filing any empted lower bits 5967 // with the high bits of y[i]. 5968 // 5969 // z[i] = concat(x[i], y[i]) << (shift%16) 5970 // 5971 // A non-constant value of shift may result in significantly worse performance for this operation. 5972 // 5973 // Asm: VPSHLDW, CPU Feature: AVX512VBMI2 5974 func (x Uint16x32) ShiftAllLeftConcatMod16(y Uint16x32, shift uint64) Uint16x32 5975 5976 /* ShiftAllLeftConcatMod32 */ 5977 5978 // ShiftAllLeftConcatMod32 shifts x[i] left by shift%32, filing any empted lower bits 5979 // with the high bits of y[i]. 5980 // 5981 // z[i] = concat(x[i], y[i]) << (shift%32) 5982 // 5983 // A non-constant value of shift may result in significantly worse performance for this operation. 5984 // 5985 // Asm: VPSHLDD, CPU Feature: AVX512VBMI2 5986 func (x Int32x4) ShiftAllLeftConcatMod32(y Int32x4, shift uint64) Int32x4 5987 5988 // ShiftAllLeftConcatMod32 shifts x[i] left by shift%32, filing any empted lower bits 5989 // with the high bits of y[i]. 5990 // 5991 // z[i] = concat(x[i], y[i]) << (shift%32) 5992 // 5993 // A non-constant value of shift may result in significantly worse performance for this operation. 5994 // 5995 // Asm: VPSHLDD, CPU Feature: AVX512VBMI2 5996 func (x Int32x8) ShiftAllLeftConcatMod32(y Int32x8, shift uint64) Int32x8 5997 5998 // ShiftAllLeftConcatMod32 shifts x[i] left by shift%32, filing any empted lower bits 5999 // with the high bits of y[i]. 6000 // 6001 // z[i] = concat(x[i], y[i]) << (shift%32) 6002 // 6003 // A non-constant value of shift may result in significantly worse performance for this operation. 6004 // 6005 // Asm: VPSHLDD, CPU Feature: AVX512VBMI2 6006 func (x Int32x16) ShiftAllLeftConcatMod32(y Int32x16, shift uint64) Int32x16 6007 6008 // ShiftAllLeftConcatMod32 shifts x[i] left by shift%32, filing any empted lower bits 6009 // with the high bits of y[i]. 6010 // 6011 // z[i] = concat(x[i], y[i]) << (shift%32) 6012 // 6013 // A non-constant value of shift may result in significantly worse performance for this operation. 6014 // 6015 // Asm: VPSHLDD, CPU Feature: AVX512VBMI2 6016 func (x Uint32x4) ShiftAllLeftConcatMod32(y Uint32x4, shift uint64) Uint32x4 6017 6018 // ShiftAllLeftConcatMod32 shifts x[i] left by shift%32, filing any empted lower bits 6019 // with the high bits of y[i]. 6020 // 6021 // z[i] = concat(x[i], y[i]) << (shift%32) 6022 // 6023 // A non-constant value of shift may result in significantly worse performance for this operation. 6024 // 6025 // Asm: VPSHLDD, CPU Feature: AVX512VBMI2 6026 func (x Uint32x8) ShiftAllLeftConcatMod32(y Uint32x8, shift uint64) Uint32x8 6027 6028 // ShiftAllLeftConcatMod32 shifts x[i] left by shift%32, filing any empted lower bits 6029 // with the high bits of y[i]. 6030 // 6031 // z[i] = concat(x[i], y[i]) << (shift%32) 6032 // 6033 // A non-constant value of shift may result in significantly worse performance for this operation. 6034 // 6035 // Asm: VPSHLDD, CPU Feature: AVX512VBMI2 6036 func (x Uint32x16) ShiftAllLeftConcatMod32(y Uint32x16, shift uint64) Uint32x16 6037 6038 /* ShiftAllLeftConcatMod64 */ 6039 6040 // ShiftAllLeftConcatMod64 shifts x[i] left by shift%64, filing any empted lower bits 6041 // with the high bits of y[i]. 6042 // 6043 // z[i] = concat(x[i], y[i]) << (shift%64) 6044 // 6045 // A non-constant value of shift may result in significantly worse performance for this operation. 6046 // 6047 // Asm: VPSHLDQ, CPU Feature: AVX512VBMI2 6048 func (x Int64x2) ShiftAllLeftConcatMod64(y Int64x2, shift uint64) Int64x2 6049 6050 // ShiftAllLeftConcatMod64 shifts x[i] left by shift%64, filing any empted lower bits 6051 // with the high bits of y[i]. 6052 // 6053 // z[i] = concat(x[i], y[i]) << (shift%64) 6054 // 6055 // A non-constant value of shift may result in significantly worse performance for this operation. 6056 // 6057 // Asm: VPSHLDQ, CPU Feature: AVX512VBMI2 6058 func (x Int64x4) ShiftAllLeftConcatMod64(y Int64x4, shift uint64) Int64x4 6059 6060 // ShiftAllLeftConcatMod64 shifts x[i] left by shift%64, filing any empted lower bits 6061 // with the high bits of y[i]. 6062 // 6063 // z[i] = concat(x[i], y[i]) << (shift%64) 6064 // 6065 // A non-constant value of shift may result in significantly worse performance for this operation. 6066 // 6067 // Asm: VPSHLDQ, CPU Feature: AVX512VBMI2 6068 func (x Int64x8) ShiftAllLeftConcatMod64(y Int64x8, shift uint64) Int64x8 6069 6070 // ShiftAllLeftConcatMod64 shifts x[i] left by shift%64, filing any empted lower bits 6071 // with the high bits of y[i]. 6072 // 6073 // z[i] = concat(x[i], y[i]) << (shift%64) 6074 // 6075 // A non-constant value of shift may result in significantly worse performance for this operation. 6076 // 6077 // Asm: VPSHLDQ, CPU Feature: AVX512VBMI2 6078 func (x Uint64x2) ShiftAllLeftConcatMod64(y Uint64x2, shift uint64) Uint64x2 6079 6080 // ShiftAllLeftConcatMod64 shifts x[i] left by shift%64, filing any empted lower bits 6081 // with the high bits of y[i]. 6082 // 6083 // z[i] = concat(x[i], y[i]) << (shift%64) 6084 // 6085 // A non-constant value of shift may result in significantly worse performance for this operation. 6086 // 6087 // Asm: VPSHLDQ, CPU Feature: AVX512VBMI2 6088 func (x Uint64x4) ShiftAllLeftConcatMod64(y Uint64x4, shift uint64) Uint64x4 6089 6090 // ShiftAllLeftConcatMod64 shifts x[i] left by shift%64, filing any empted lower bits 6091 // with the high bits of y[i]. 6092 // 6093 // z[i] = concat(x[i], y[i]) << (shift%64) 6094 // 6095 // A non-constant value of shift may result in significantly worse performance for this operation. 6096 // 6097 // Asm: VPSHLDQ, CPU Feature: AVX512VBMI2 6098 func (x Uint64x8) ShiftAllLeftConcatMod64(y Uint64x8, shift uint64) Uint64x8 6099 6100 /* ShiftAllRight */ 6101 6102 // ShiftAllRight arithmetically shifts each element of x right by y bits. 6103 // If y is greater than the element width, the result is 0 or -1. 6104 // 6105 // Asm: VPSRAW, CPU Feature: AVX 6106 func (x Int16x8) ShiftAllRight(shift uint64) Int16x8 6107 6108 // ShiftAllRight arithmetically shifts each element of x right by y bits. 6109 // If y is greater than the element width, the result is 0 or -1. 6110 // 6111 // Asm: VPSRAW, CPU Feature: AVX2 6112 func (x Int16x16) ShiftAllRight(shift uint64) Int16x16 6113 6114 // ShiftAllRight arithmetically shifts each element of x right by y bits. 6115 // If y is greater than the element width, the result is 0 or -1. 6116 // 6117 // Asm: VPSRAW, CPU Feature: AVX512 6118 func (x Int16x32) ShiftAllRight(shift uint64) Int16x32 6119 6120 // ShiftAllRight arithmetically shifts each element of x right by y bits. 6121 // If y is greater than the element width, the result is 0 or -1. 6122 // 6123 // Asm: VPSRAD, CPU Feature: AVX 6124 func (x Int32x4) ShiftAllRight(shift uint64) Int32x4 6125 6126 // ShiftAllRight arithmetically shifts each element of x right by y bits. 6127 // If y is greater than the element width, the result is 0 or -1. 6128 // 6129 // Asm: VPSRAD, CPU Feature: AVX2 6130 func (x Int32x8) ShiftAllRight(shift uint64) Int32x8 6131 6132 // ShiftAllRight arithmetically shifts each element of x right by y bits. 6133 // If y is greater than the element width, the result is 0 or -1. 6134 // 6135 // Asm: VPSRAD, CPU Feature: AVX512 6136 func (x Int32x16) ShiftAllRight(shift uint64) Int32x16 6137 6138 // ShiftAllRight arithmetically shifts each element of x right by y bits. 6139 // If y is greater than the element width, the result is 0 or -1. 6140 // 6141 // Asm: VPSRAQ, CPU Feature: AVX512 6142 func (x Int64x2) ShiftAllRight(shift uint64) Int64x2 6143 6144 // ShiftAllRight arithmetically shifts each element of x right by y bits. 6145 // If y is greater than the element width, the result is 0 or -1. 6146 // 6147 // Asm: VPSRAQ, CPU Feature: AVX512 6148 func (x Int64x4) ShiftAllRight(shift uint64) Int64x4 6149 6150 // ShiftAllRight arithmetically shifts each element of x right by y bits. 6151 // If y is greater than the element width, the result is 0 or -1. 6152 // 6153 // Asm: VPSRAQ, CPU Feature: AVX512 6154 func (x Int64x8) ShiftAllRight(shift uint64) Int64x8 6155 6156 // ShiftAllRight logically shifts each element of x right by y bits. 6157 // If y is greater than the element width, the result is 0. 6158 // 6159 // Asm: VPSRLW, CPU Feature: AVX 6160 func (x Uint16x8) ShiftAllRight(shift uint64) Uint16x8 6161 6162 // ShiftAllRight logically shifts each element of x right by y bits. 6163 // If y is greater than the element width, the result is 0. 6164 // 6165 // Asm: VPSRLW, CPU Feature: AVX2 6166 func (x Uint16x16) ShiftAllRight(shift uint64) Uint16x16 6167 6168 // ShiftAllRight logically shifts each element of x right by y bits. 6169 // If y is greater than the element width, the result is 0. 6170 // 6171 // Asm: VPSRLW, CPU Feature: AVX512 6172 func (x Uint16x32) ShiftAllRight(shift uint64) Uint16x32 6173 6174 // ShiftAllRight logically shifts each element of x right by y bits. 6175 // If y is greater than the element width, the result is 0. 6176 // 6177 // Asm: VPSRLD, CPU Feature: AVX 6178 func (x Uint32x4) ShiftAllRight(shift uint64) Uint32x4 6179 6180 // ShiftAllRight logically shifts each element of x right by y bits. 6181 // If y is greater than the element width, the result is 0. 6182 // 6183 // Asm: VPSRLD, CPU Feature: AVX2 6184 func (x Uint32x8) ShiftAllRight(shift uint64) Uint32x8 6185 6186 // ShiftAllRight logically shifts each element of x right by y bits. 6187 // If y is greater than the element width, the result is 0. 6188 // 6189 // Asm: VPSRLD, CPU Feature: AVX512 6190 func (x Uint32x16) ShiftAllRight(shift uint64) Uint32x16 6191 6192 // ShiftAllRight logically shifts each element of x right by y bits. 6193 // If y is greater than the element width, the result is 0. 6194 // 6195 // Asm: VPSRLQ, CPU Feature: AVX 6196 func (x Uint64x2) ShiftAllRight(shift uint64) Uint64x2 6197 6198 // ShiftAllRight logically shifts each element of x right by y bits. 6199 // If y is greater than the element width, the result is 0. 6200 // 6201 // Asm: VPSRLQ, CPU Feature: AVX2 6202 func (x Uint64x4) ShiftAllRight(shift uint64) Uint64x4 6203 6204 // ShiftAllRight logically shifts each element of x right by y bits. 6205 // If y is greater than the element width, the result is 0. 6206 // 6207 // Asm: VPSRLQ, CPU Feature: AVX512 6208 func (x Uint64x8) ShiftAllRight(shift uint64) Uint64x8 6209 6210 /* ShiftAllRightConcatMod16 */ 6211 6212 // ShiftAllRightConcatMod16 shifts x[i] right by shift%16, filling any emptied upper bits 6213 // with the low bits of y[i]. 6214 // 6215 // z[i] = concat(y[i], x[i]) >> (shift%16) 6216 // 6217 // A non-constant value of shift may result in significantly worse performance for this operation. 6218 // 6219 // Asm: VPSHRDW, CPU Feature: AVX512VBMI2 6220 func (x Int16x8) ShiftAllRightConcatMod16(y Int16x8, shift uint64) Int16x8 6221 6222 // ShiftAllRightConcatMod16 shifts x[i] right by shift%16, filling any emptied upper bits 6223 // with the low bits of y[i]. 6224 // 6225 // z[i] = concat(y[i], x[i]) >> (shift%16) 6226 // 6227 // A non-constant value of shift may result in significantly worse performance for this operation. 6228 // 6229 // Asm: VPSHRDW, CPU Feature: AVX512VBMI2 6230 func (x Int16x16) ShiftAllRightConcatMod16(y Int16x16, shift uint64) Int16x16 6231 6232 // ShiftAllRightConcatMod16 shifts x[i] right by shift%16, filling any emptied upper bits 6233 // with the low bits of y[i]. 6234 // 6235 // z[i] = concat(y[i], x[i]) >> (shift%16) 6236 // 6237 // A non-constant value of shift may result in significantly worse performance for this operation. 6238 // 6239 // Asm: VPSHRDW, CPU Feature: AVX512VBMI2 6240 func (x Int16x32) ShiftAllRightConcatMod16(y Int16x32, shift uint64) Int16x32 6241 6242 // ShiftAllRightConcatMod16 shifts x[i] right by shift%16, filling any emptied upper bits 6243 // with the low bits of y[i]. 6244 // 6245 // z[i] = concat(y[i], x[i]) >> (shift%16) 6246 // 6247 // A non-constant value of shift may result in significantly worse performance for this operation. 6248 // 6249 // Asm: VPSHRDW, CPU Feature: AVX512VBMI2 6250 func (x Uint16x8) ShiftAllRightConcatMod16(y Uint16x8, shift uint64) Uint16x8 6251 6252 // ShiftAllRightConcatMod16 shifts x[i] right by shift%16, filling any emptied upper bits 6253 // with the low bits of y[i]. 6254 // 6255 // z[i] = concat(y[i], x[i]) >> (shift%16) 6256 // 6257 // A non-constant value of shift may result in significantly worse performance for this operation. 6258 // 6259 // Asm: VPSHRDW, CPU Feature: AVX512VBMI2 6260 func (x Uint16x16) ShiftAllRightConcatMod16(y Uint16x16, shift uint64) Uint16x16 6261 6262 // ShiftAllRightConcatMod16 shifts x[i] right by shift%16, filling any emptied upper bits 6263 // with the low bits of y[i]. 6264 // 6265 // z[i] = concat(y[i], x[i]) >> (shift%16) 6266 // 6267 // A non-constant value of shift may result in significantly worse performance for this operation. 6268 // 6269 // Asm: VPSHRDW, CPU Feature: AVX512VBMI2 6270 func (x Uint16x32) ShiftAllRightConcatMod16(y Uint16x32, shift uint64) Uint16x32 6271 6272 /* ShiftAllRightConcatMod32 */ 6273 6274 // ShiftAllRightConcatMod32 shifts x[i] right by shift%32, filling any emptied upper bits 6275 // with the low bits of y[i]. 6276 // 6277 // z[i] = concat(y[i], x[i]) >> (shift%32) 6278 // 6279 // A non-constant value of shift may result in significantly worse performance for this operation. 6280 // 6281 // Asm: VPSHRDD, CPU Feature: AVX512VBMI2 6282 func (x Int32x4) ShiftAllRightConcatMod32(y Int32x4, shift uint64) Int32x4 6283 6284 // ShiftAllRightConcatMod32 shifts x[i] right by shift%32, filling any emptied upper bits 6285 // with the low bits of y[i]. 6286 // 6287 // z[i] = concat(y[i], x[i]) >> (shift%32) 6288 // 6289 // A non-constant value of shift may result in significantly worse performance for this operation. 6290 // 6291 // Asm: VPSHRDD, CPU Feature: AVX512VBMI2 6292 func (x Int32x8) ShiftAllRightConcatMod32(y Int32x8, shift uint64) Int32x8 6293 6294 // ShiftAllRightConcatMod32 shifts x[i] right by shift%32, filling any emptied upper bits 6295 // with the low bits of y[i]. 6296 // 6297 // z[i] = concat(y[i], x[i]) >> (shift%32) 6298 // 6299 // A non-constant value of shift may result in significantly worse performance for this operation. 6300 // 6301 // Asm: VPSHRDD, CPU Feature: AVX512VBMI2 6302 func (x Int32x16) ShiftAllRightConcatMod32(y Int32x16, shift uint64) Int32x16 6303 6304 // ShiftAllRightConcatMod32 shifts x[i] right by shift%32, filling any emptied upper bits 6305 // with the low bits of y[i]. 6306 // 6307 // z[i] = concat(y[i], x[i]) >> (shift%32) 6308 // 6309 // A non-constant value of shift may result in significantly worse performance for this operation. 6310 // 6311 // Asm: VPSHRDD, CPU Feature: AVX512VBMI2 6312 func (x Uint32x4) ShiftAllRightConcatMod32(y Uint32x4, shift uint64) Uint32x4 6313 6314 // ShiftAllRightConcatMod32 shifts x[i] right by shift%32, filling any emptied upper bits 6315 // with the low bits of y[i]. 6316 // 6317 // z[i] = concat(y[i], x[i]) >> (shift%32) 6318 // 6319 // A non-constant value of shift may result in significantly worse performance for this operation. 6320 // 6321 // Asm: VPSHRDD, CPU Feature: AVX512VBMI2 6322 func (x Uint32x8) ShiftAllRightConcatMod32(y Uint32x8, shift uint64) Uint32x8 6323 6324 // ShiftAllRightConcatMod32 shifts x[i] right by shift%32, filling any emptied upper bits 6325 // with the low bits of y[i]. 6326 // 6327 // z[i] = concat(y[i], x[i]) >> (shift%32) 6328 // 6329 // A non-constant value of shift may result in significantly worse performance for this operation. 6330 // 6331 // Asm: VPSHRDD, CPU Feature: AVX512VBMI2 6332 func (x Uint32x16) ShiftAllRightConcatMod32(y Uint32x16, shift uint64) Uint32x16 6333 6334 /* ShiftAllRightConcatMod64 */ 6335 6336 // ShiftAllRightConcatMod64 shifts x[i] right by shift%64, filling any emptied upper bits 6337 // with the low bits of y[i]. 6338 // 6339 // z[i] = concat(y[i], x[i]) >> (shift%64) 6340 // 6341 // A non-constant value of shift may result in significantly worse performance for this operation. 6342 // 6343 // Asm: VPSHRDQ, CPU Feature: AVX512VBMI2 6344 func (x Int64x2) ShiftAllRightConcatMod64(y Int64x2, shift uint64) Int64x2 6345 6346 // ShiftAllRightConcatMod64 shifts x[i] right by shift%64, filling any emptied upper bits 6347 // with the low bits of y[i]. 6348 // 6349 // z[i] = concat(y[i], x[i]) >> (shift%64) 6350 // 6351 // A non-constant value of shift may result in significantly worse performance for this operation. 6352 // 6353 // Asm: VPSHRDQ, CPU Feature: AVX512VBMI2 6354 func (x Int64x4) ShiftAllRightConcatMod64(y Int64x4, shift uint64) Int64x4 6355 6356 // ShiftAllRightConcatMod64 shifts x[i] right by shift%64, filling any emptied upper bits 6357 // with the low bits of y[i]. 6358 // 6359 // z[i] = concat(y[i], x[i]) >> (shift%64) 6360 // 6361 // A non-constant value of shift may result in significantly worse performance for this operation. 6362 // 6363 // Asm: VPSHRDQ, CPU Feature: AVX512VBMI2 6364 func (x Int64x8) ShiftAllRightConcatMod64(y Int64x8, shift uint64) Int64x8 6365 6366 // ShiftAllRightConcatMod64 shifts x[i] right by shift%64, filling any emptied upper bits 6367 // with the low bits of y[i]. 6368 // 6369 // z[i] = concat(y[i], x[i]) >> (shift%64) 6370 // 6371 // A non-constant value of shift may result in significantly worse performance for this operation. 6372 // 6373 // Asm: VPSHRDQ, CPU Feature: AVX512VBMI2 6374 func (x Uint64x2) ShiftAllRightConcatMod64(y Uint64x2, shift uint64) Uint64x2 6375 6376 // ShiftAllRightConcatMod64 shifts x[i] right by shift%64, filling any emptied upper bits 6377 // with the low bits of y[i]. 6378 // 6379 // z[i] = concat(y[i], x[i]) >> (shift%64) 6380 // 6381 // A non-constant value of shift may result in significantly worse performance for this operation. 6382 // 6383 // Asm: VPSHRDQ, CPU Feature: AVX512VBMI2 6384 func (x Uint64x4) ShiftAllRightConcatMod64(y Uint64x4, shift uint64) Uint64x4 6385 6386 // ShiftAllRightConcatMod64 shifts x[i] right by shift%64, filling any emptied upper bits 6387 // with the low bits of y[i]. 6388 // 6389 // z[i] = concat(y[i], x[i]) >> (shift%64) 6390 // 6391 // A non-constant value of shift may result in significantly worse performance for this operation. 6392 // 6393 // Asm: VPSHRDQ, CPU Feature: AVX512VBMI2 6394 func (x Uint64x8) ShiftAllRightConcatMod64(y Uint64x8, shift uint64) Uint64x8 6395 6396 /* ShiftLeft */ 6397 6398 // ShiftLeft shifts x[i] left by y[i] bits. 6399 // If y[i] is greater than the element width, the result is 0. 6400 // 6401 // Asm: VPSLLVW, CPU Feature: AVX512 6402 func (x Int16x8) ShiftLeft(shift Uint16x8) Int16x8 6403 6404 // ShiftLeft shifts x[i] left by y[i] bits. 6405 // If y[i] is greater than the element width, the result is 0. 6406 // 6407 // Asm: VPSLLVW, CPU Feature: AVX512 6408 func (x Int16x16) ShiftLeft(shift Uint16x16) Int16x16 6409 6410 // ShiftLeft shifts x[i] left by y[i] bits. 6411 // If y[i] is greater than the element width, the result is 0. 6412 // 6413 // Asm: VPSLLVW, CPU Feature: AVX512 6414 func (x Int16x32) ShiftLeft(shift Uint16x32) Int16x32 6415 6416 // ShiftLeft shifts x[i] left by y[i] bits. 6417 // If y[i] is greater than the element width, the result is 0. 6418 // 6419 // Asm: VPSLLVD, CPU Feature: AVX2 6420 func (x Int32x4) ShiftLeft(shift Uint32x4) Int32x4 6421 6422 // ShiftLeft shifts x[i] left by y[i] bits. 6423 // If y[i] is greater than the element width, the result is 0. 6424 // 6425 // Asm: VPSLLVD, CPU Feature: AVX2 6426 func (x Int32x8) ShiftLeft(shift Uint32x8) Int32x8 6427 6428 // ShiftLeft shifts x[i] left by y[i] bits. 6429 // If y[i] is greater than the element width, the result is 0. 6430 // 6431 // Asm: VPSLLVD, CPU Feature: AVX512 6432 func (x Int32x16) ShiftLeft(shift Uint32x16) Int32x16 6433 6434 // ShiftLeft shifts x[i] left by y[i] bits. 6435 // If y[i] is greater than the element width, the result is 0. 6436 // 6437 // Asm: VPSLLVQ, CPU Feature: AVX2 6438 func (x Int64x2) ShiftLeft(shift Uint64x2) Int64x2 6439 6440 // ShiftLeft shifts x[i] left by y[i] bits. 6441 // If y[i] is greater than the element width, the result is 0. 6442 // 6443 // Asm: VPSLLVQ, CPU Feature: AVX2 6444 func (x Int64x4) ShiftLeft(shift Uint64x4) Int64x4 6445 6446 // ShiftLeft shifts x[i] left by y[i] bits. 6447 // If y[i] is greater than the element width, the result is 0. 6448 // 6449 // Asm: VPSLLVQ, CPU Feature: AVX512 6450 func (x Int64x8) ShiftLeft(shift Uint64x8) Int64x8 6451 6452 // ShiftLeft shifts x[i] left by y[i] bits. 6453 // If y[i] is greater than the element width, the result is 0. 6454 // 6455 // Asm: VPSLLVW, CPU Feature: AVX512 6456 func (x Uint16x8) ShiftLeft(shift Uint16x8) Uint16x8 6457 6458 // ShiftLeft shifts x[i] left by y[i] bits. 6459 // If y[i] is greater than the element width, the result is 0. 6460 // 6461 // Asm: VPSLLVW, CPU Feature: AVX512 6462 func (x Uint16x16) ShiftLeft(shift Uint16x16) Uint16x16 6463 6464 // ShiftLeft shifts x[i] left by y[i] bits. 6465 // If y[i] is greater than the element width, the result is 0. 6466 // 6467 // Asm: VPSLLVW, CPU Feature: AVX512 6468 func (x Uint16x32) ShiftLeft(shift Uint16x32) Uint16x32 6469 6470 // ShiftLeft shifts x[i] left by y[i] bits. 6471 // If y[i] is greater than the element width, the result is 0. 6472 // 6473 // Asm: VPSLLVD, CPU Feature: AVX2 6474 func (x Uint32x4) ShiftLeft(shift Uint32x4) Uint32x4 6475 6476 // ShiftLeft shifts x[i] left by y[i] bits. 6477 // If y[i] is greater than the element width, the result is 0. 6478 // 6479 // Asm: VPSLLVD, CPU Feature: AVX2 6480 func (x Uint32x8) ShiftLeft(shift Uint32x8) Uint32x8 6481 6482 // ShiftLeft shifts x[i] left by y[i] bits. 6483 // If y[i] is greater than the element width, the result is 0. 6484 // 6485 // Asm: VPSLLVD, CPU Feature: AVX512 6486 func (x Uint32x16) ShiftLeft(shift Uint32x16) Uint32x16 6487 6488 // ShiftLeft shifts x[i] left by y[i] bits. 6489 // If y[i] is greater than the element width, the result is 0. 6490 // 6491 // Asm: VPSLLVQ, CPU Feature: AVX2 6492 func (x Uint64x2) ShiftLeft(shift Uint64x2) Uint64x2 6493 6494 // ShiftLeft shifts x[i] left by y[i] bits. 6495 // If y[i] is greater than the element width, the result is 0. 6496 // 6497 // Asm: VPSLLVQ, CPU Feature: AVX2 6498 func (x Uint64x4) ShiftLeft(shift Uint64x4) Uint64x4 6499 6500 // ShiftLeft shifts x[i] left by y[i] bits. 6501 // If y[i] is greater than the element width, the result is 0. 6502 // 6503 // Asm: VPSLLVQ, CPU Feature: AVX512 6504 func (x Uint64x8) ShiftLeft(shift Uint64x8) Uint64x8 6505 6506 /* ShiftLeftConcatMod16 */ 6507 6508 // ShiftLeftConcatMod16 shifts x[i] left by shift[i]%16, filing any empted lower bits 6509 // with the high bits of y[i]. 6510 // 6511 // z[i] = concat(x[i], y[i]) << (shift[i]%16) 6512 // 6513 // Asm: VPSHLDVW, CPU Feature: AVX512VBMI2 6514 func (x Int16x8) ShiftLeftConcatMod16(y Int16x8, shift Uint16x8) Int16x8 6515 6516 // ShiftLeftConcatMod16 shifts x[i] left by shift[i]%16, filing any empted lower bits 6517 // with the high bits of y[i]. 6518 // 6519 // z[i] = concat(x[i], y[i]) << (shift[i]%16) 6520 // 6521 // Asm: VPSHLDVW, CPU Feature: AVX512VBMI2 6522 func (x Int16x16) ShiftLeftConcatMod16(y Int16x16, shift Uint16x16) Int16x16 6523 6524 // ShiftLeftConcatMod16 shifts x[i] left by shift[i]%16, filing any empted lower bits 6525 // with the high bits of y[i]. 6526 // 6527 // z[i] = concat(x[i], y[i]) << (shift[i]%16) 6528 // 6529 // Asm: VPSHLDVW, CPU Feature: AVX512VBMI2 6530 func (x Int16x32) ShiftLeftConcatMod16(y Int16x32, shift Uint16x32) Int16x32 6531 6532 // ShiftLeftConcatMod16 shifts x[i] left by shift[i]%16, filing any empted lower bits 6533 // with the high bits of y[i]. 6534 // 6535 // z[i] = concat(x[i], y[i]) << (shift[i]%16) 6536 // 6537 // Asm: VPSHLDVW, CPU Feature: AVX512VBMI2 6538 func (x Uint16x8) ShiftLeftConcatMod16(y Uint16x8, shift Uint16x8) Uint16x8 6539 6540 // ShiftLeftConcatMod16 shifts x[i] left by shift[i]%16, filing any empted lower bits 6541 // with the high bits of y[i]. 6542 // 6543 // z[i] = concat(x[i], y[i]) << (shift[i]%16) 6544 // 6545 // Asm: VPSHLDVW, CPU Feature: AVX512VBMI2 6546 func (x Uint16x16) ShiftLeftConcatMod16(y Uint16x16, shift Uint16x16) Uint16x16 6547 6548 // ShiftLeftConcatMod16 shifts x[i] left by shift[i]%16, filing any empted lower bits 6549 // with the high bits of y[i]. 6550 // 6551 // z[i] = concat(x[i], y[i]) << (shift[i]%16) 6552 // 6553 // Asm: VPSHLDVW, CPU Feature: AVX512VBMI2 6554 func (x Uint16x32) ShiftLeftConcatMod16(y Uint16x32, shift Uint16x32) Uint16x32 6555 6556 /* ShiftLeftConcatMod32 */ 6557 6558 // ShiftLeftConcatMod32 shifts x[i] left by shift[i]%32, filing any empted lower bits 6559 // with the high bits of y[i]. 6560 // 6561 // z[i] = concat(x[i], y[i]) << (shift[i]%32) 6562 // 6563 // Asm: VPSHLDVD, CPU Feature: AVX512VBMI2 6564 func (x Int32x4) ShiftLeftConcatMod32(y Int32x4, shift Uint32x4) Int32x4 6565 6566 // ShiftLeftConcatMod32 shifts x[i] left by shift[i]%32, filing any empted lower bits 6567 // with the high bits of y[i]. 6568 // 6569 // z[i] = concat(x[i], y[i]) << (shift[i]%32) 6570 // 6571 // Asm: VPSHLDVD, CPU Feature: AVX512VBMI2 6572 func (x Int32x8) ShiftLeftConcatMod32(y Int32x8, shift Uint32x8) Int32x8 6573 6574 // ShiftLeftConcatMod32 shifts x[i] left by shift[i]%32, filing any empted lower bits 6575 // with the high bits of y[i]. 6576 // 6577 // z[i] = concat(x[i], y[i]) << (shift[i]%32) 6578 // 6579 // Asm: VPSHLDVD, CPU Feature: AVX512VBMI2 6580 func (x Int32x16) ShiftLeftConcatMod32(y Int32x16, shift Uint32x16) Int32x16 6581 6582 // ShiftLeftConcatMod32 shifts x[i] left by shift[i]%32, filing any empted lower bits 6583 // with the high bits of y[i]. 6584 // 6585 // z[i] = concat(x[i], y[i]) << (shift[i]%32) 6586 // 6587 // Asm: VPSHLDVD, CPU Feature: AVX512VBMI2 6588 func (x Uint32x4) ShiftLeftConcatMod32(y Uint32x4, shift Uint32x4) Uint32x4 6589 6590 // ShiftLeftConcatMod32 shifts x[i] left by shift[i]%32, filing any empted lower bits 6591 // with the high bits of y[i]. 6592 // 6593 // z[i] = concat(x[i], y[i]) << (shift[i]%32) 6594 // 6595 // Asm: VPSHLDVD, CPU Feature: AVX512VBMI2 6596 func (x Uint32x8) ShiftLeftConcatMod32(y Uint32x8, shift Uint32x8) Uint32x8 6597 6598 // ShiftLeftConcatMod32 shifts x[i] left by shift[i]%32, filing any empted lower bits 6599 // with the high bits of y[i]. 6600 // 6601 // z[i] = concat(x[i], y[i]) << (shift[i]%32) 6602 // 6603 // Asm: VPSHLDVD, CPU Feature: AVX512VBMI2 6604 func (x Uint32x16) ShiftLeftConcatMod32(y Uint32x16, shift Uint32x16) Uint32x16 6605 6606 /* ShiftLeftConcatMod64 */ 6607 6608 // ShiftLeftConcatMod64 shifts x[i] left by shift[i]%64, filing any empted lower bits 6609 // with the high bits of y[i]. 6610 // 6611 // z[i] = concat(x[i], y[i]) << (shift[i]%64) 6612 // 6613 // Asm: VPSHLDVQ, CPU Feature: AVX512VBMI2 6614 func (x Int64x2) ShiftLeftConcatMod64(y Int64x2, shift Uint64x2) Int64x2 6615 6616 // ShiftLeftConcatMod64 shifts x[i] left by shift[i]%64, filing any empted lower bits 6617 // with the high bits of y[i]. 6618 // 6619 // z[i] = concat(x[i], y[i]) << (shift[i]%64) 6620 // 6621 // Asm: VPSHLDVQ, CPU Feature: AVX512VBMI2 6622 func (x Int64x4) ShiftLeftConcatMod64(y Int64x4, shift Uint64x4) Int64x4 6623 6624 // ShiftLeftConcatMod64 shifts x[i] left by shift[i]%64, filing any empted lower bits 6625 // with the high bits of y[i]. 6626 // 6627 // z[i] = concat(x[i], y[i]) << (shift[i]%64) 6628 // 6629 // Asm: VPSHLDVQ, CPU Feature: AVX512VBMI2 6630 func (x Int64x8) ShiftLeftConcatMod64(y Int64x8, shift Uint64x8) Int64x8 6631 6632 // ShiftLeftConcatMod64 shifts x[i] left by shift[i]%64, filing any empted lower bits 6633 // with the high bits of y[i]. 6634 // 6635 // z[i] = concat(x[i], y[i]) << (shift[i]%64) 6636 // 6637 // Asm: VPSHLDVQ, CPU Feature: AVX512VBMI2 6638 func (x Uint64x2) ShiftLeftConcatMod64(y Uint64x2, shift Uint64x2) Uint64x2 6639 6640 // ShiftLeftConcatMod64 shifts x[i] left by shift[i]%64, filing any empted lower bits 6641 // with the high bits of y[i]. 6642 // 6643 // z[i] = concat(x[i], y[i]) << (shift[i]%64) 6644 // 6645 // Asm: VPSHLDVQ, CPU Feature: AVX512VBMI2 6646 func (x Uint64x4) ShiftLeftConcatMod64(y Uint64x4, shift Uint64x4) Uint64x4 6647 6648 // ShiftLeftConcatMod64 shifts x[i] left by shift[i]%64, filing any empted lower bits 6649 // with the high bits of y[i]. 6650 // 6651 // z[i] = concat(x[i], y[i]) << (shift[i]%64) 6652 // 6653 // Asm: VPSHLDVQ, CPU Feature: AVX512VBMI2 6654 func (x Uint64x8) ShiftLeftConcatMod64(y Uint64x8, shift Uint64x8) Uint64x8 6655 6656 /* ShiftRight */ 6657 6658 // ShiftRight arithmetically shifts x[i] right by y[i] bits. 6659 // If y[i] is greater than the element width, the result is 0 or -1. 6660 // 6661 // Asm: VPSRAVW, CPU Feature: AVX512 6662 func (x Int16x8) ShiftRight(shift Uint16x8) Int16x8 6663 6664 // ShiftRight arithmetically shifts x[i] right by y[i] bits. 6665 // If y[i] is greater than the element width, the result is 0 or -1. 6666 // 6667 // Asm: VPSRAVW, CPU Feature: AVX512 6668 func (x Int16x16) ShiftRight(shift Uint16x16) Int16x16 6669 6670 // ShiftRight arithmetically shifts x[i] right by y[i] bits. 6671 // If y[i] is greater than the element width, the result is 0 or -1. 6672 // 6673 // Asm: VPSRAVW, CPU Feature: AVX512 6674 func (x Int16x32) ShiftRight(shift Uint16x32) Int16x32 6675 6676 // ShiftRight arithmetically shifts x[i] right by y[i] bits. 6677 // If y[i] is greater than the element width, the result is 0 or -1. 6678 // 6679 // Asm: VPSRAVD, CPU Feature: AVX2 6680 func (x Int32x4) ShiftRight(shift Uint32x4) Int32x4 6681 6682 // ShiftRight arithmetically shifts x[i] right by y[i] bits. 6683 // If y[i] is greater than the element width, the result is 0 or -1. 6684 // 6685 // Asm: VPSRAVD, CPU Feature: AVX2 6686 func (x Int32x8) ShiftRight(shift Uint32x8) Int32x8 6687 6688 // ShiftRight arithmetically shifts x[i] right by y[i] bits. 6689 // If y[i] is greater than the element width, the result is 0 or -1. 6690 // 6691 // Asm: VPSRAVD, CPU Feature: AVX512 6692 func (x Int32x16) ShiftRight(shift Uint32x16) Int32x16 6693 6694 // ShiftRight arithmetically shifts x[i] right by y[i] bits. 6695 // If y[i] is greater than the element width, the result is 0 or -1. 6696 // 6697 // Asm: VPSRAVQ, CPU Feature: AVX512 6698 func (x Int64x2) ShiftRight(shift Uint64x2) Int64x2 6699 6700 // ShiftRight arithmetically shifts x[i] right by y[i] bits. 6701 // If y[i] is greater than the element width, the result is 0 or -1. 6702 // 6703 // Asm: VPSRAVQ, CPU Feature: AVX512 6704 func (x Int64x4) ShiftRight(shift Uint64x4) Int64x4 6705 6706 // ShiftRight arithmetically shifts x[i] right by y[i] bits. 6707 // If y[i] is greater than the element width, the result is 0 or -1. 6708 // 6709 // Asm: VPSRAVQ, CPU Feature: AVX512 6710 func (x Int64x8) ShiftRight(shift Uint64x8) Int64x8 6711 6712 // ShiftRight logically shifts x[i] right by y[i] bits. 6713 // If y[i] is greater than the element width, the result is 0. 6714 // 6715 // Asm: VPSRLVW, CPU Feature: AVX512 6716 func (x Uint16x8) ShiftRight(shift Uint16x8) Uint16x8 6717 6718 // ShiftRight logically shifts x[i] right by y[i] bits. 6719 // If y[i] is greater than the element width, the result is 0. 6720 // 6721 // Asm: VPSRLVW, CPU Feature: AVX512 6722 func (x Uint16x16) ShiftRight(shift Uint16x16) Uint16x16 6723 6724 // ShiftRight logically shifts x[i] right by y[i] bits. 6725 // If y[i] is greater than the element width, the result is 0. 6726 // 6727 // Asm: VPSRLVW, CPU Feature: AVX512 6728 func (x Uint16x32) ShiftRight(shift Uint16x32) Uint16x32 6729 6730 // ShiftRight logically shifts x[i] right by y[i] bits. 6731 // If y[i] is greater than the element width, the result is 0. 6732 // 6733 // Asm: VPSRLVD, CPU Feature: AVX2 6734 func (x Uint32x4) ShiftRight(shift Uint32x4) Uint32x4 6735 6736 // ShiftRight logically shifts x[i] right by y[i] bits. 6737 // If y[i] is greater than the element width, the result is 0. 6738 // 6739 // Asm: VPSRLVD, CPU Feature: AVX2 6740 func (x Uint32x8) ShiftRight(shift Uint32x8) Uint32x8 6741 6742 // ShiftRight logically shifts x[i] right by y[i] bits. 6743 // If y[i] is greater than the element width, the result is 0. 6744 // 6745 // Asm: VPSRLVD, CPU Feature: AVX512 6746 func (x Uint32x16) ShiftRight(shift Uint32x16) Uint32x16 6747 6748 // ShiftRight logically shifts x[i] right by y[i] bits. 6749 // If y[i] is greater than the element width, the result is 0. 6750 // 6751 // Asm: VPSRLVQ, CPU Feature: AVX2 6752 func (x Uint64x2) ShiftRight(shift Uint64x2) Uint64x2 6753 6754 // ShiftRight logically shifts x[i] right by y[i] bits. 6755 // If y[i] is greater than the element width, the result is 0. 6756 // 6757 // Asm: VPSRLVQ, CPU Feature: AVX2 6758 func (x Uint64x4) ShiftRight(shift Uint64x4) Uint64x4 6759 6760 // ShiftRight logically shifts x[i] right by y[i] bits. 6761 // If y[i] is greater than the element width, the result is 0. 6762 // 6763 // Asm: VPSRLVQ, CPU Feature: AVX512 6764 func (x Uint64x8) ShiftRight(shift Uint64x8) Uint64x8 6765 6766 /* ShiftRightConcatMod16 */ 6767 6768 // ShiftRightConcatMod16 shifts x[i] right by shift[i]%16, filling any emptied upper bits 6769 // with the low bits of y[i]. 6770 // 6771 // z[i] = concat(y[i], x[i]) >> (shift[i]%16) 6772 // 6773 // Asm: VPSHRDVW, CPU Feature: AVX512VBMI2 6774 func (x Int16x8) ShiftRightConcatMod16(y Int16x8, shift Uint16x8) Int16x8 6775 6776 // ShiftRightConcatMod16 shifts x[i] right by shift[i]%16, filling any emptied upper bits 6777 // with the low bits of y[i]. 6778 // 6779 // z[i] = concat(y[i], x[i]) >> (shift[i]%16) 6780 // 6781 // Asm: VPSHRDVW, CPU Feature: AVX512VBMI2 6782 func (x Int16x16) ShiftRightConcatMod16(y Int16x16, shift Uint16x16) Int16x16 6783 6784 // ShiftRightConcatMod16 shifts x[i] right by shift[i]%16, filling any emptied upper bits 6785 // with the low bits of y[i]. 6786 // 6787 // z[i] = concat(y[i], x[i]) >> (shift[i]%16) 6788 // 6789 // Asm: VPSHRDVW, CPU Feature: AVX512VBMI2 6790 func (x Int16x32) ShiftRightConcatMod16(y Int16x32, shift Uint16x32) Int16x32 6791 6792 // ShiftRightConcatMod16 shifts x[i] right by shift[i]%16, filling any emptied upper bits 6793 // with the low bits of y[i]. 6794 // 6795 // z[i] = concat(y[i], x[i]) >> (shift[i]%16) 6796 // 6797 // Asm: VPSHRDVW, CPU Feature: AVX512VBMI2 6798 func (x Uint16x8) ShiftRightConcatMod16(y Uint16x8, shift Uint16x8) Uint16x8 6799 6800 // ShiftRightConcatMod16 shifts x[i] right by shift[i]%16, filling any emptied upper bits 6801 // with the low bits of y[i]. 6802 // 6803 // z[i] = concat(y[i], x[i]) >> (shift[i]%16) 6804 // 6805 // Asm: VPSHRDVW, CPU Feature: AVX512VBMI2 6806 func (x Uint16x16) ShiftRightConcatMod16(y Uint16x16, shift Uint16x16) Uint16x16 6807 6808 // ShiftRightConcatMod16 shifts x[i] right by shift[i]%16, filling any emptied upper bits 6809 // with the low bits of y[i]. 6810 // 6811 // z[i] = concat(y[i], x[i]) >> (shift[i]%16) 6812 // 6813 // Asm: VPSHRDVW, CPU Feature: AVX512VBMI2 6814 func (x Uint16x32) ShiftRightConcatMod16(y Uint16x32, shift Uint16x32) Uint16x32 6815 6816 /* ShiftRightConcatMod32 */ 6817 6818 // ShiftRightConcatMod32 shifts x[i] right by shift[i]%32, filling any emptied upper bits 6819 // with the low bits of y[i]. 6820 // 6821 // z[i] = concat(y[i], x[i]) >> (shift[i]%32) 6822 // 6823 // Asm: VPSHRDVD, CPU Feature: AVX512VBMI2 6824 func (x Int32x4) ShiftRightConcatMod32(y Int32x4, shift Uint32x4) Int32x4 6825 6826 // ShiftRightConcatMod32 shifts x[i] right by shift[i]%32, filling any emptied upper bits 6827 // with the low bits of y[i]. 6828 // 6829 // z[i] = concat(y[i], x[i]) >> (shift[i]%32) 6830 // 6831 // Asm: VPSHRDVD, CPU Feature: AVX512VBMI2 6832 func (x Int32x8) ShiftRightConcatMod32(y Int32x8, shift Uint32x8) Int32x8 6833 6834 // ShiftRightConcatMod32 shifts x[i] right by shift[i]%32, filling any emptied upper bits 6835 // with the low bits of y[i]. 6836 // 6837 // z[i] = concat(y[i], x[i]) >> (shift[i]%32) 6838 // 6839 // Asm: VPSHRDVD, CPU Feature: AVX512VBMI2 6840 func (x Int32x16) ShiftRightConcatMod32(y Int32x16, shift Uint32x16) Int32x16 6841 6842 // ShiftRightConcatMod32 shifts x[i] right by shift[i]%32, filling any emptied upper bits 6843 // with the low bits of y[i]. 6844 // 6845 // z[i] = concat(y[i], x[i]) >> (shift[i]%32) 6846 // 6847 // Asm: VPSHRDVD, CPU Feature: AVX512VBMI2 6848 func (x Uint32x4) ShiftRightConcatMod32(y Uint32x4, shift Uint32x4) Uint32x4 6849 6850 // ShiftRightConcatMod32 shifts x[i] right by shift[i]%32, filling any emptied upper bits 6851 // with the low bits of y[i]. 6852 // 6853 // z[i] = concat(y[i], x[i]) >> (shift[i]%32) 6854 // 6855 // Asm: VPSHRDVD, CPU Feature: AVX512VBMI2 6856 func (x Uint32x8) ShiftRightConcatMod32(y Uint32x8, shift Uint32x8) Uint32x8 6857 6858 // ShiftRightConcatMod32 shifts x[i] right by shift[i]%32, filling any emptied upper bits 6859 // with the low bits of y[i]. 6860 // 6861 // z[i] = concat(y[i], x[i]) >> (shift[i]%32) 6862 // 6863 // Asm: VPSHRDVD, CPU Feature: AVX512VBMI2 6864 func (x Uint32x16) ShiftRightConcatMod32(y Uint32x16, shift Uint32x16) Uint32x16 6865 6866 /* ShiftRightConcatMod64 */ 6867 6868 // ShiftRightConcatMod64 shifts x[i] right by shift[i]%64, filling any emptied upper bits 6869 // with the low bits of y[i]. 6870 // 6871 // z[i] = concat(y[i], x[i]) >> (shift[i]%64) 6872 // 6873 // Asm: VPSHRDVQ, CPU Feature: AVX512VBMI2 6874 func (x Int64x2) ShiftRightConcatMod64(y Int64x2, shift Uint64x2) Int64x2 6875 6876 // ShiftRightConcatMod64 shifts x[i] right by shift[i]%64, filling any emptied upper bits 6877 // with the low bits of y[i]. 6878 // 6879 // z[i] = concat(y[i], x[i]) >> (shift[i]%64) 6880 // 6881 // Asm: VPSHRDVQ, CPU Feature: AVX512VBMI2 6882 func (x Int64x4) ShiftRightConcatMod64(y Int64x4, shift Uint64x4) Int64x4 6883 6884 // ShiftRightConcatMod64 shifts x[i] right by shift[i]%64, filling any emptied upper bits 6885 // with the low bits of y[i]. 6886 // 6887 // z[i] = concat(y[i], x[i]) >> (shift[i]%64) 6888 // 6889 // Asm: VPSHRDVQ, CPU Feature: AVX512VBMI2 6890 func (x Int64x8) ShiftRightConcatMod64(y Int64x8, shift Uint64x8) Int64x8 6891 6892 // ShiftRightConcatMod64 shifts x[i] right by shift[i]%64, filling any emptied upper bits 6893 // with the low bits of y[i]. 6894 // 6895 // z[i] = concat(y[i], x[i]) >> (shift[i]%64) 6896 // 6897 // Asm: VPSHRDVQ, CPU Feature: AVX512VBMI2 6898 func (x Uint64x2) ShiftRightConcatMod64(y Uint64x2, shift Uint64x2) Uint64x2 6899 6900 // ShiftRightConcatMod64 shifts x[i] right by shift[i]%64, filling any emptied upper bits 6901 // with the low bits of y[i]. 6902 // 6903 // z[i] = concat(y[i], x[i]) >> (shift[i]%64) 6904 // 6905 // Asm: VPSHRDVQ, CPU Feature: AVX512VBMI2 6906 func (x Uint64x4) ShiftRightConcatMod64(y Uint64x4, shift Uint64x4) Uint64x4 6907 6908 // ShiftRightConcatMod64 shifts x[i] right by shift[i]%64, filling any emptied upper bits 6909 // with the low bits of y[i]. 6910 // 6911 // z[i] = concat(y[i], x[i]) >> (shift[i]%64) 6912 // 6913 // Asm: VPSHRDVQ, CPU Feature: AVX512VBMI2 6914 func (x Uint64x8) ShiftRightConcatMod64(y Uint64x8, shift Uint64x8) Uint64x8 6915 6916 /* Sqrt */ 6917 6918 // Sqrt computes the square root of each element. 6919 // 6920 // Asm: VSQRTPS, CPU Feature: AVX 6921 func (x Float32x4) Sqrt() Float32x4 6922 6923 // Sqrt computes the square root of each element. 6924 // 6925 // Asm: VSQRTPS, CPU Feature: AVX 6926 func (x Float32x8) Sqrt() Float32x8 6927 6928 // Sqrt computes the square root of each element. 6929 // 6930 // Asm: VSQRTPS, CPU Feature: AVX512 6931 func (x Float32x16) Sqrt() Float32x16 6932 6933 // Sqrt computes the square root of each element. 6934 // 6935 // Asm: VSQRTPD, CPU Feature: AVX 6936 func (x Float64x2) Sqrt() Float64x2 6937 6938 // Sqrt computes the square root of each element. 6939 // 6940 // Asm: VSQRTPD, CPU Feature: AVX 6941 func (x Float64x4) Sqrt() Float64x4 6942 6943 // Sqrt computes the square root of each element. 6944 // 6945 // Asm: VSQRTPD, CPU Feature: AVX512 6946 func (x Float64x8) Sqrt() Float64x8 6947 6948 /* Sub */ 6949 6950 // Sub subtracts corresponding elements of two vectors. 6951 // 6952 // Asm: VSUBPS, CPU Feature: AVX 6953 func (x Float32x4) Sub(y Float32x4) Float32x4 6954 6955 // Sub subtracts corresponding elements of two vectors. 6956 // 6957 // Asm: VSUBPS, CPU Feature: AVX 6958 func (x Float32x8) Sub(y Float32x8) Float32x8 6959 6960 // Sub subtracts corresponding elements of two vectors. 6961 // 6962 // Asm: VSUBPS, CPU Feature: AVX512 6963 func (x Float32x16) Sub(y Float32x16) Float32x16 6964 6965 // Sub subtracts corresponding elements of two vectors. 6966 // 6967 // Asm: VSUBPD, CPU Feature: AVX 6968 func (x Float64x2) Sub(y Float64x2) Float64x2 6969 6970 // Sub subtracts corresponding elements of two vectors. 6971 // 6972 // Asm: VSUBPD, CPU Feature: AVX 6973 func (x Float64x4) Sub(y Float64x4) Float64x4 6974 6975 // Sub subtracts corresponding elements of two vectors. 6976 // 6977 // Asm: VSUBPD, CPU Feature: AVX512 6978 func (x Float64x8) Sub(y Float64x8) Float64x8 6979 6980 // Sub subtracts corresponding elements of two vectors. 6981 // 6982 // Asm: VPSUBB, CPU Feature: AVX 6983 func (x Int8x16) Sub(y Int8x16) Int8x16 6984 6985 // Sub subtracts corresponding elements of two vectors. 6986 // 6987 // Asm: VPSUBB, CPU Feature: AVX2 6988 func (x Int8x32) Sub(y Int8x32) Int8x32 6989 6990 // Sub subtracts corresponding elements of two vectors. 6991 // 6992 // Asm: VPSUBB, CPU Feature: AVX512 6993 func (x Int8x64) Sub(y Int8x64) Int8x64 6994 6995 // Sub subtracts corresponding elements of two vectors. 6996 // 6997 // Asm: VPSUBW, CPU Feature: AVX 6998 func (x Int16x8) Sub(y Int16x8) Int16x8 6999 7000 // Sub subtracts corresponding elements of two vectors. 7001 // 7002 // Asm: VPSUBW, CPU Feature: AVX2 7003 func (x Int16x16) Sub(y Int16x16) Int16x16 7004 7005 // Sub subtracts corresponding elements of two vectors. 7006 // 7007 // Asm: VPSUBW, CPU Feature: AVX512 7008 func (x Int16x32) Sub(y Int16x32) Int16x32 7009 7010 // Sub subtracts corresponding elements of two vectors. 7011 // 7012 // Asm: VPSUBD, CPU Feature: AVX 7013 func (x Int32x4) Sub(y Int32x4) Int32x4 7014 7015 // Sub subtracts corresponding elements of two vectors. 7016 // 7017 // Asm: VPSUBD, CPU Feature: AVX2 7018 func (x Int32x8) Sub(y Int32x8) Int32x8 7019 7020 // Sub subtracts corresponding elements of two vectors. 7021 // 7022 // Asm: VPSUBD, CPU Feature: AVX512 7023 func (x Int32x16) Sub(y Int32x16) Int32x16 7024 7025 // Sub subtracts corresponding elements of two vectors. 7026 // 7027 // Asm: VPSUBQ, CPU Feature: AVX 7028 func (x Int64x2) Sub(y Int64x2) Int64x2 7029 7030 // Sub subtracts corresponding elements of two vectors. 7031 // 7032 // Asm: VPSUBQ, CPU Feature: AVX2 7033 func (x Int64x4) Sub(y Int64x4) Int64x4 7034 7035 // Sub subtracts corresponding elements of two vectors. 7036 // 7037 // Asm: VPSUBQ, CPU Feature: AVX512 7038 func (x Int64x8) Sub(y Int64x8) Int64x8 7039 7040 // Sub subtracts corresponding elements of two vectors. 7041 // 7042 // Asm: VPSUBB, CPU Feature: AVX 7043 func (x Uint8x16) Sub(y Uint8x16) Uint8x16 7044 7045 // Sub subtracts corresponding elements of two vectors. 7046 // 7047 // Asm: VPSUBB, CPU Feature: AVX2 7048 func (x Uint8x32) Sub(y Uint8x32) Uint8x32 7049 7050 // Sub subtracts corresponding elements of two vectors. 7051 // 7052 // Asm: VPSUBB, CPU Feature: AVX512 7053 func (x Uint8x64) Sub(y Uint8x64) Uint8x64 7054 7055 // Sub subtracts corresponding elements of two vectors. 7056 // 7057 // Asm: VPSUBW, CPU Feature: AVX 7058 func (x Uint16x8) Sub(y Uint16x8) Uint16x8 7059 7060 // Sub subtracts corresponding elements of two vectors. 7061 // 7062 // Asm: VPSUBW, CPU Feature: AVX2 7063 func (x Uint16x16) Sub(y Uint16x16) Uint16x16 7064 7065 // Sub subtracts corresponding elements of two vectors. 7066 // 7067 // Asm: VPSUBW, CPU Feature: AVX512 7068 func (x Uint16x32) Sub(y Uint16x32) Uint16x32 7069 7070 // Sub subtracts corresponding elements of two vectors. 7071 // 7072 // Asm: VPSUBD, CPU Feature: AVX 7073 func (x Uint32x4) Sub(y Uint32x4) Uint32x4 7074 7075 // Sub subtracts corresponding elements of two vectors. 7076 // 7077 // Asm: VPSUBD, CPU Feature: AVX2 7078 func (x Uint32x8) Sub(y Uint32x8) Uint32x8 7079 7080 // Sub subtracts corresponding elements of two vectors. 7081 // 7082 // Asm: VPSUBD, CPU Feature: AVX512 7083 func (x Uint32x16) Sub(y Uint32x16) Uint32x16 7084 7085 // Sub subtracts corresponding elements of two vectors. 7086 // 7087 // Asm: VPSUBQ, CPU Feature: AVX 7088 func (x Uint64x2) Sub(y Uint64x2) Uint64x2 7089 7090 // Sub subtracts corresponding elements of two vectors. 7091 // 7092 // Asm: VPSUBQ, CPU Feature: AVX2 7093 func (x Uint64x4) Sub(y Uint64x4) Uint64x4 7094 7095 // Sub subtracts corresponding elements of two vectors. 7096 // 7097 // Asm: VPSUBQ, CPU Feature: AVX512 7098 func (x Uint64x8) Sub(y Uint64x8) Uint64x8 7099 7100 /* SubSaturated */ 7101 7102 // SubSaturated subtracts corresponding elements of two vectors with saturation. 7103 // 7104 // Asm: VPSUBSB, CPU Feature: AVX 7105 func (x Int8x16) SubSaturated(y Int8x16) Int8x16 7106 7107 // SubSaturated subtracts corresponding elements of two vectors with saturation. 7108 // 7109 // Asm: VPSUBSB, CPU Feature: AVX2 7110 func (x Int8x32) SubSaturated(y Int8x32) Int8x32 7111 7112 // SubSaturated subtracts corresponding elements of two vectors with saturation. 7113 // 7114 // Asm: VPSUBSB, CPU Feature: AVX512 7115 func (x Int8x64) SubSaturated(y Int8x64) Int8x64 7116 7117 // SubSaturated subtracts corresponding elements of two vectors with saturation. 7118 // 7119 // Asm: VPSUBSW, CPU Feature: AVX 7120 func (x Int16x8) SubSaturated(y Int16x8) Int16x8 7121 7122 // SubSaturated subtracts corresponding elements of two vectors with saturation. 7123 // 7124 // Asm: VPSUBSW, CPU Feature: AVX2 7125 func (x Int16x16) SubSaturated(y Int16x16) Int16x16 7126 7127 // SubSaturated subtracts corresponding elements of two vectors with saturation. 7128 // 7129 // Asm: VPSUBSW, CPU Feature: AVX512 7130 func (x Int16x32) SubSaturated(y Int16x32) Int16x32 7131 7132 // SubSaturated subtracts corresponding elements of two vectors with saturation. 7133 // 7134 // Asm: VPSUBUSB, CPU Feature: AVX 7135 func (x Uint8x16) SubSaturated(y Uint8x16) Uint8x16 7136 7137 // SubSaturated subtracts corresponding elements of two vectors with saturation. 7138 // 7139 // Asm: VPSUBUSB, CPU Feature: AVX2 7140 func (x Uint8x32) SubSaturated(y Uint8x32) Uint8x32 7141 7142 // SubSaturated subtracts corresponding elements of two vectors with saturation. 7143 // 7144 // Asm: VPSUBUSB, CPU Feature: AVX512 7145 func (x Uint8x64) SubSaturated(y Uint8x64) Uint8x64 7146 7147 // SubSaturated subtracts corresponding elements of two vectors with saturation. 7148 // 7149 // Asm: VPSUBUSW, CPU Feature: AVX 7150 func (x Uint16x8) SubSaturated(y Uint16x8) Uint16x8 7151 7152 // SubSaturated subtracts corresponding elements of two vectors with saturation. 7153 // 7154 // Asm: VPSUBUSW, CPU Feature: AVX2 7155 func (x Uint16x16) SubSaturated(y Uint16x16) Uint16x16 7156 7157 // SubSaturated subtracts corresponding elements of two vectors with saturation. 7158 // 7159 // Asm: VPSUBUSW, CPU Feature: AVX512 7160 func (x Uint16x32) SubSaturated(y Uint16x32) Uint16x32 7161 7162 /* SumOf8AbsDiff */ 7163 7164 // SumOf8AbsDiff computes the absolute difference of x and y and sums each group of 8 results. 7165 // This method could be seen as the norm of the L1 distance of each 8-element group of the two input vectors. 7166 // 7167 // Asm: VPSADBW, CPU Feature: AVX 7168 func (x Uint8x16) SumOf8AbsDiff(y Uint8x16) Uint64x2 7169 7170 // SumOf8AbsDiff computes the absolute difference of x and y and sums each group of 8 results. 7171 // This method could be seen as the norm of the L1 distance of each 8-element group of the two input vectors. 7172 // 7173 // Asm: VPSADBW, CPU Feature: AVX2 7174 func (x Uint8x32) SumOf8AbsDiff(y Uint8x32) Uint64x4 7175 7176 // SumOf8AbsDiff computes the absolute difference of x and y and sums each group of 8 results. 7177 // This method could be seen as the norm of the L1 distance of each 8-element group of the two input vectors. 7178 // 7179 // Asm: VPSADBW, CPU Feature: AVX512 7180 func (x Uint8x64) SumOf8AbsDiff(y Uint8x64) Uint64x8 7181 7182 /* Trunc */ 7183 7184 // Trunc truncates elements towards zero. 7185 // 7186 // Asm: VROUNDPS, CPU Feature: AVX 7187 func (x Float32x4) Trunc() Float32x4 7188 7189 // Trunc truncates elements towards zero. 7190 // 7191 // Asm: VROUNDPS, CPU Feature: AVX 7192 func (x Float32x8) Trunc() Float32x8 7193 7194 // Trunc truncates elements towards zero. 7195 // 7196 // Asm: VROUNDPD, CPU Feature: AVX 7197 func (x Float64x2) Trunc() Float64x2 7198 7199 // Trunc truncates elements towards zero. 7200 // 7201 // Asm: VROUNDPD, CPU Feature: AVX 7202 func (x Float64x4) Trunc() Float64x4 7203 7204 /* TruncScaled */ 7205 7206 // TruncScaled truncates elements with specified precision. 7207 // 7208 // A non-constant value of prec may result in significantly worse performance for this operation. 7209 // 7210 // Asm: VRNDSCALEPS, CPU Feature: AVX512 7211 func (x Float32x4) TruncScaled(prec uint8) Float32x4 7212 7213 // TruncScaled truncates elements with specified precision. 7214 // 7215 // A non-constant value of prec may result in significantly worse performance for this operation. 7216 // 7217 // Asm: VRNDSCALEPS, CPU Feature: AVX512 7218 func (x Float32x8) TruncScaled(prec uint8) Float32x8 7219 7220 // TruncScaled truncates elements with specified precision. 7221 // 7222 // A non-constant value of prec may result in significantly worse performance for this operation. 7223 // 7224 // Asm: VRNDSCALEPS, CPU Feature: AVX512 7225 func (x Float32x16) TruncScaled(prec uint8) Float32x16 7226 7227 // TruncScaled truncates elements with specified precision. 7228 // 7229 // A non-constant value of prec may result in significantly worse performance for this operation. 7230 // 7231 // Asm: VRNDSCALEPD, CPU Feature: AVX512 7232 func (x Float64x2) TruncScaled(prec uint8) Float64x2 7233 7234 // TruncScaled truncates elements with specified precision. 7235 // 7236 // A non-constant value of prec may result in significantly worse performance for this operation. 7237 // 7238 // Asm: VRNDSCALEPD, CPU Feature: AVX512 7239 func (x Float64x4) TruncScaled(prec uint8) Float64x4 7240 7241 // TruncScaled truncates elements with specified precision. 7242 // 7243 // A non-constant value of prec may result in significantly worse performance for this operation. 7244 // 7245 // Asm: VRNDSCALEPD, CPU Feature: AVX512 7246 func (x Float64x8) TruncScaled(prec uint8) Float64x8 7247 7248 /* TruncScaledResidue */ 7249 7250 // TruncScaledResidue computes the difference after truncating with specified precision. 7251 // 7252 // A non-constant value of prec may result in significantly worse performance for this operation. 7253 // 7254 // Asm: VREDUCEPS, CPU Feature: AVX512 7255 func (x Float32x4) TruncScaledResidue(prec uint8) Float32x4 7256 7257 // TruncScaledResidue computes the difference after truncating with specified precision. 7258 // 7259 // A non-constant value of prec may result in significantly worse performance for this operation. 7260 // 7261 // Asm: VREDUCEPS, CPU Feature: AVX512 7262 func (x Float32x8) TruncScaledResidue(prec uint8) Float32x8 7263 7264 // TruncScaledResidue computes the difference after truncating with specified precision. 7265 // 7266 // A non-constant value of prec may result in significantly worse performance for this operation. 7267 // 7268 // Asm: VREDUCEPS, CPU Feature: AVX512 7269 func (x Float32x16) TruncScaledResidue(prec uint8) Float32x16 7270 7271 // TruncScaledResidue computes the difference after truncating with specified precision. 7272 // 7273 // A non-constant value of prec may result in significantly worse performance for this operation. 7274 // 7275 // Asm: VREDUCEPD, CPU Feature: AVX512 7276 func (x Float64x2) TruncScaledResidue(prec uint8) Float64x2 7277 7278 // TruncScaledResidue computes the difference after truncating with specified precision. 7279 // 7280 // A non-constant value of prec may result in significantly worse performance for this operation. 7281 // 7282 // Asm: VREDUCEPD, CPU Feature: AVX512 7283 func (x Float64x4) TruncScaledResidue(prec uint8) Float64x4 7284 7285 // TruncScaledResidue computes the difference after truncating with specified precision. 7286 // 7287 // A non-constant value of prec may result in significantly worse performance for this operation. 7288 // 7289 // Asm: VREDUCEPD, CPU Feature: AVX512 7290 func (x Float64x8) TruncScaledResidue(prec uint8) Float64x8 7291 7292 /* TruncToInt8 */ 7293 7294 // TruncToInt8 truncates element values to int8. 7295 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 7296 // 7297 // Asm: VPMOVWB, CPU Feature: AVX512 7298 func (x Int16x8) TruncToInt8() Int8x16 7299 7300 // TruncToInt8 truncates element values to int8. 7301 // 7302 // Asm: VPMOVWB, CPU Feature: AVX512 7303 func (x Int16x16) TruncToInt8() Int8x16 7304 7305 // TruncToInt8 truncates element values to int8. 7306 // 7307 // Asm: VPMOVWB, CPU Feature: AVX512 7308 func (x Int16x32) TruncToInt8() Int8x32 7309 7310 // TruncToInt8 truncates element values to int8. 7311 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 7312 // 7313 // Asm: VPMOVDB, CPU Feature: AVX512 7314 func (x Int32x4) TruncToInt8() Int8x16 7315 7316 // TruncToInt8 truncates element values to int8. 7317 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 7318 // 7319 // Asm: VPMOVDB, CPU Feature: AVX512 7320 func (x Int32x8) TruncToInt8() Int8x16 7321 7322 // TruncToInt8 truncates element values to int8. 7323 // 7324 // Asm: VPMOVDB, CPU Feature: AVX512 7325 func (x Int32x16) TruncToInt8() Int8x16 7326 7327 // TruncToInt8 truncates element values to int8. 7328 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 7329 // 7330 // Asm: VPMOVQB, CPU Feature: AVX512 7331 func (x Int64x2) TruncToInt8() Int8x16 7332 7333 // TruncToInt8 truncates element values to int8. 7334 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 7335 // 7336 // Asm: VPMOVQB, CPU Feature: AVX512 7337 func (x Int64x4) TruncToInt8() Int8x16 7338 7339 // TruncToInt8 truncates element values to int8. 7340 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 7341 // 7342 // Asm: VPMOVQB, CPU Feature: AVX512 7343 func (x Int64x8) TruncToInt8() Int8x16 7344 7345 /* TruncToInt16 */ 7346 7347 // TruncToInt16 truncates element values to int16. 7348 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 7349 // 7350 // Asm: VPMOVDW, CPU Feature: AVX512 7351 func (x Int32x4) TruncToInt16() Int16x8 7352 7353 // TruncToInt16 truncates element values to int16. 7354 // 7355 // Asm: VPMOVDW, CPU Feature: AVX512 7356 func (x Int32x8) TruncToInt16() Int16x8 7357 7358 // TruncToInt16 truncates element values to int16. 7359 // 7360 // Asm: VPMOVDW, CPU Feature: AVX512 7361 func (x Int32x16) TruncToInt16() Int16x16 7362 7363 // TruncToInt16 truncates element values to int16. 7364 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 7365 // 7366 // Asm: VPMOVQW, CPU Feature: AVX512 7367 func (x Int64x2) TruncToInt16() Int16x8 7368 7369 // TruncToInt16 truncates element values to int16. 7370 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 7371 // 7372 // Asm: VPMOVQW, CPU Feature: AVX512 7373 func (x Int64x4) TruncToInt16() Int16x8 7374 7375 // TruncToInt16 truncates element values to int16. 7376 // 7377 // Asm: VPMOVQW, CPU Feature: AVX512 7378 func (x Int64x8) TruncToInt16() Int16x8 7379 7380 /* TruncToInt32 */ 7381 7382 // TruncToInt32 truncates element values to int32. 7383 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 7384 // 7385 // Asm: VPMOVQD, CPU Feature: AVX512 7386 func (x Int64x2) TruncToInt32() Int32x4 7387 7388 // TruncToInt32 truncates element values to int32. 7389 // 7390 // Asm: VPMOVQD, CPU Feature: AVX512 7391 func (x Int64x4) TruncToInt32() Int32x4 7392 7393 // TruncToInt32 truncates element values to int32. 7394 // 7395 // Asm: VPMOVQD, CPU Feature: AVX512 7396 func (x Int64x8) TruncToInt32() Int32x8 7397 7398 /* TruncToUint8 */ 7399 7400 // TruncToUint8 truncates element values to uint8. 7401 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 7402 // 7403 // Asm: VPMOVWB, CPU Feature: AVX512 7404 func (x Uint16x8) TruncToUint8() Uint8x16 7405 7406 // TruncToUint8 truncates element values to uint8. 7407 // 7408 // Asm: VPMOVWB, CPU Feature: AVX512 7409 func (x Uint16x16) TruncToUint8() Uint8x16 7410 7411 // TruncToUint8 truncates element values to uint8. 7412 // 7413 // Asm: VPMOVWB, CPU Feature: AVX512 7414 func (x Uint16x32) TruncToUint8() Uint8x32 7415 7416 // TruncToUint8 truncates element values to uint8. 7417 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 7418 // 7419 // Asm: VPMOVDB, CPU Feature: AVX512 7420 func (x Uint32x4) TruncToUint8() Uint8x16 7421 7422 // TruncToUint8 truncates element values to uint8. 7423 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 7424 // 7425 // Asm: VPMOVDB, CPU Feature: AVX512 7426 func (x Uint32x8) TruncToUint8() Uint8x16 7427 7428 // TruncToUint8 truncates element values to uint8. 7429 // 7430 // Asm: VPMOVDB, CPU Feature: AVX512 7431 func (x Uint32x16) TruncToUint8() Uint8x16 7432 7433 // TruncToUint8 truncates element values to uint8. 7434 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 7435 // 7436 // Asm: VPMOVQB, CPU Feature: AVX512 7437 func (x Uint64x2) TruncToUint8() Uint8x16 7438 7439 // TruncToUint8 truncates element values to uint8. 7440 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 7441 // 7442 // Asm: VPMOVQB, CPU Feature: AVX512 7443 func (x Uint64x4) TruncToUint8() Uint8x16 7444 7445 // TruncToUint8 truncates element values to uint8. 7446 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 7447 // 7448 // Asm: VPMOVQB, CPU Feature: AVX512 7449 func (x Uint64x8) TruncToUint8() Uint8x16 7450 7451 /* TruncToUint16 */ 7452 7453 // TruncToUint16 truncates element values to uint16. 7454 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 7455 // 7456 // Asm: VPMOVDW, CPU Feature: AVX512 7457 func (x Uint32x4) TruncToUint16() Uint16x8 7458 7459 // TruncToUint16 truncates element values to uint16. 7460 // 7461 // Asm: VPMOVDW, CPU Feature: AVX512 7462 func (x Uint32x8) TruncToUint16() Uint16x8 7463 7464 // TruncToUint16 truncates element values to uint16. 7465 // 7466 // Asm: VPMOVDW, CPU Feature: AVX512 7467 func (x Uint32x16) TruncToUint16() Uint16x16 7468 7469 // TruncToUint16 truncates element values to uint16. 7470 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 7471 // 7472 // Asm: VPMOVQW, CPU Feature: AVX512 7473 func (x Uint64x2) TruncToUint16() Uint16x8 7474 7475 // TruncToUint16 truncates element values to uint16. 7476 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 7477 // 7478 // Asm: VPMOVQW, CPU Feature: AVX512 7479 func (x Uint64x4) TruncToUint16() Uint16x8 7480 7481 // TruncToUint16 truncates element values to uint16. 7482 // 7483 // Asm: VPMOVQW, CPU Feature: AVX512 7484 func (x Uint64x8) TruncToUint16() Uint16x8 7485 7486 /* TruncToUint32 */ 7487 7488 // TruncToUint32 truncates element values to uint32. 7489 // Results are packed to low elements in the returned vector, its upper elements are zeroed. 7490 // 7491 // Asm: VPMOVQD, CPU Feature: AVX512 7492 func (x Uint64x2) TruncToUint32() Uint32x4 7493 7494 // TruncToUint32 truncates element values to uint32. 7495 // 7496 // Asm: VPMOVQD, CPU Feature: AVX512 7497 func (x Uint64x4) TruncToUint32() Uint32x4 7498 7499 // TruncToUint32 truncates element values to uint32. 7500 // 7501 // Asm: VPMOVQD, CPU Feature: AVX512 7502 func (x Uint64x8) TruncToUint32() Uint32x8 7503 7504 /* Xor */ 7505 7506 // Xor performs a bitwise x ^ y. 7507 // 7508 // Asm: VPXOR, CPU Feature: AVX 7509 func (x Int8x16) Xor(y Int8x16) Int8x16 7510 7511 // Xor performs a bitwise x ^ y. 7512 // 7513 // Asm: VPXOR, CPU Feature: AVX2 7514 func (x Int8x32) Xor(y Int8x32) Int8x32 7515 7516 // Xor performs a bitwise x ^ y. 7517 // 7518 // Asm: VPXORD, CPU Feature: AVX512 7519 func (x Int8x64) Xor(y Int8x64) Int8x64 7520 7521 // Xor performs a bitwise x ^ y. 7522 // 7523 // Asm: VPXOR, CPU Feature: AVX 7524 func (x Int16x8) Xor(y Int16x8) Int16x8 7525 7526 // Xor performs a bitwise x ^ y. 7527 // 7528 // Asm: VPXOR, CPU Feature: AVX2 7529 func (x Int16x16) Xor(y Int16x16) Int16x16 7530 7531 // Xor performs a bitwise x ^ y. 7532 // 7533 // Asm: VPXORD, CPU Feature: AVX512 7534 func (x Int16x32) Xor(y Int16x32) Int16x32 7535 7536 // Xor performs a bitwise x ^ y. 7537 // 7538 // Asm: VPXOR, CPU Feature: AVX 7539 func (x Int32x4) Xor(y Int32x4) Int32x4 7540 7541 // Xor performs a bitwise x ^ y. 7542 // 7543 // Asm: VPXOR, CPU Feature: AVX2 7544 func (x Int32x8) Xor(y Int32x8) Int32x8 7545 7546 // Xor performs a bitwise x ^ y. 7547 // 7548 // Asm: VPXORD, CPU Feature: AVX512 7549 func (x Int32x16) Xor(y Int32x16) Int32x16 7550 7551 // Xor performs a bitwise x ^ y. 7552 // 7553 // Asm: VPXOR, CPU Feature: AVX 7554 func (x Int64x2) Xor(y Int64x2) Int64x2 7555 7556 // Xor performs a bitwise x ^ y. 7557 // 7558 // Asm: VPXOR, CPU Feature: AVX2 7559 func (x Int64x4) Xor(y Int64x4) Int64x4 7560 7561 // Xor performs a bitwise x ^ y. 7562 // 7563 // Asm: VPXORQ, CPU Feature: AVX512 7564 func (x Int64x8) Xor(y Int64x8) Int64x8 7565 7566 // Xor performs a bitwise x ^ y. 7567 // 7568 // Asm: VPXOR, CPU Feature: AVX 7569 func (x Uint8x16) Xor(y Uint8x16) Uint8x16 7570 7571 // Xor performs a bitwise x ^ y. 7572 // 7573 // Asm: VPXOR, CPU Feature: AVX2 7574 func (x Uint8x32) Xor(y Uint8x32) Uint8x32 7575 7576 // Xor performs a bitwise x ^ y. 7577 // 7578 // Asm: VPXORD, CPU Feature: AVX512 7579 func (x Uint8x64) Xor(y Uint8x64) Uint8x64 7580 7581 // Xor performs a bitwise x ^ y. 7582 // 7583 // Asm: VPXOR, CPU Feature: AVX 7584 func (x Uint16x8) Xor(y Uint16x8) Uint16x8 7585 7586 // Xor performs a bitwise x ^ y. 7587 // 7588 // Asm: VPXOR, CPU Feature: AVX2 7589 func (x Uint16x16) Xor(y Uint16x16) Uint16x16 7590 7591 // Xor performs a bitwise x ^ y. 7592 // 7593 // Asm: VPXORD, CPU Feature: AVX512 7594 func (x Uint16x32) Xor(y Uint16x32) Uint16x32 7595 7596 // Xor performs a bitwise x ^ y. 7597 // 7598 // Asm: VPXOR, CPU Feature: AVX 7599 func (x Uint32x4) Xor(y Uint32x4) Uint32x4 7600 7601 // Xor performs a bitwise x ^ y. 7602 // 7603 // Asm: VPXOR, CPU Feature: AVX2 7604 func (x Uint32x8) Xor(y Uint32x8) Uint32x8 7605 7606 // Xor performs a bitwise x ^ y. 7607 // 7608 // Asm: VPXORD, CPU Feature: AVX512 7609 func (x Uint32x16) Xor(y Uint32x16) Uint32x16 7610 7611 // Xor performs a bitwise x ^ y. 7612 // 7613 // Asm: VPXOR, CPU Feature: AVX2 7614 func (x Uint64x4) Xor(y Uint64x4) Uint64x4 7615 7616 // Xor performs a bitwise x ^ y. 7617 // 7618 // Asm: VPXORQ, CPU Feature: AVX512 7619 func (x Uint64x8) Xor(y Uint64x8) Uint64x8 7620 7621 // Xor performs a bitwise x ^ y. 7622 // 7623 // Asm: VPXOR, CPU Feature: AVX 7624 func (x Uint64x2) Xor(y Uint64x2) Uint64x2 7625 7626 // AsFloat64x2 reinterprets the bits of a Float32x4 vector as a Float64x2 vector 7627 // 7628 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7629 // 7630 //go:fix inline 7631 func (x Float32x4) AsFloat64x2() Float64x2 { 7632 return x.ToBits().ReshapeToUint64s().BitsToFloat64() 7633 } 7634 7635 // AsInt8x16 reinterprets the bits of a Float32x4 vector as a Int8x16 vector 7636 // 7637 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7638 // 7639 //go:fix inline 7640 func (x Float32x4) AsInt8x16() Int8x16 { 7641 return x.ToBits().ReshapeToUint8s().BitsToInt8() 7642 } 7643 7644 // AsInt16x8 reinterprets the bits of a Float32x4 vector as a Int16x8 vector 7645 // 7646 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7647 // 7648 //go:fix inline 7649 func (x Float32x4) AsInt16x8() Int16x8 { 7650 return x.ToBits().ReshapeToUint16s().BitsToInt16() 7651 } 7652 7653 // AsInt32x4 reinterprets the bits of a Float32x4 vector as a Int32x4 vector 7654 // 7655 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7656 // 7657 //go:fix inline 7658 func (x Float32x4) AsInt32x4() Int32x4 { 7659 return x.ToBits().BitsToInt32() 7660 } 7661 7662 // AsInt64x2 reinterprets the bits of a Float32x4 vector as a Int64x2 vector 7663 // 7664 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7665 // 7666 //go:fix inline 7667 func (x Float32x4) AsInt64x2() Int64x2 { 7668 return x.ToBits().ReshapeToUint64s().BitsToInt64() 7669 } 7670 7671 // AsUint8x16 reinterprets the bits of a Float32x4 vector as a Uint8x16 vector 7672 // 7673 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7674 // 7675 //go:fix inline 7676 func (x Float32x4) AsUint8x16() Uint8x16 { 7677 return x.ToBits().ReshapeToUint8s() 7678 } 7679 7680 // AsUint16x8 reinterprets the bits of a Float32x4 vector as a Uint16x8 vector 7681 // 7682 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7683 // 7684 //go:fix inline 7685 func (x Float32x4) AsUint16x8() Uint16x8 { 7686 return x.ToBits().ReshapeToUint16s() 7687 } 7688 7689 // AsUint32x4 reinterprets the bits of a Float32x4 vector as a Uint32x4 vector 7690 // 7691 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7692 // 7693 //go:fix inline 7694 func (x Float32x4) AsUint32x4() Uint32x4 { 7695 return x.ToBits() 7696 } 7697 7698 // AsUint64x2 reinterprets the bits of a Float32x4 vector as a Uint64x2 vector 7699 // 7700 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7701 // 7702 //go:fix inline 7703 func (x Float32x4) AsUint64x2() Uint64x2 { 7704 return x.ToBits().ReshapeToUint64s() 7705 } 7706 7707 // AsFloat64x4 reinterprets the bits of a Float32x8 vector as a Float64x4 vector 7708 // 7709 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7710 // 7711 //go:fix inline 7712 func (x Float32x8) AsFloat64x4() Float64x4 { 7713 return x.ToBits().ReshapeToUint64s().BitsToFloat64() 7714 } 7715 7716 // AsInt8x32 reinterprets the bits of a Float32x8 vector as a Int8x32 vector 7717 // 7718 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7719 // 7720 //go:fix inline 7721 func (x Float32x8) AsInt8x32() Int8x32 { 7722 return x.ToBits().ReshapeToUint8s().BitsToInt8() 7723 } 7724 7725 // AsInt16x16 reinterprets the bits of a Float32x8 vector as a Int16x16 vector 7726 // 7727 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7728 // 7729 //go:fix inline 7730 func (x Float32x8) AsInt16x16() Int16x16 { 7731 return x.ToBits().ReshapeToUint16s().BitsToInt16() 7732 } 7733 7734 // AsInt32x8 reinterprets the bits of a Float32x8 vector as a Int32x8 vector 7735 // 7736 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7737 // 7738 //go:fix inline 7739 func (x Float32x8) AsInt32x8() Int32x8 { 7740 return x.ToBits().BitsToInt32() 7741 } 7742 7743 // AsInt64x4 reinterprets the bits of a Float32x8 vector as a Int64x4 vector 7744 // 7745 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7746 // 7747 //go:fix inline 7748 func (x Float32x8) AsInt64x4() Int64x4 { 7749 return x.ToBits().ReshapeToUint64s().BitsToInt64() 7750 } 7751 7752 // AsUint8x32 reinterprets the bits of a Float32x8 vector as a Uint8x32 vector 7753 // 7754 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7755 // 7756 //go:fix inline 7757 func (x Float32x8) AsUint8x32() Uint8x32 { 7758 return x.ToBits().ReshapeToUint8s() 7759 } 7760 7761 // AsUint16x16 reinterprets the bits of a Float32x8 vector as a Uint16x16 vector 7762 // 7763 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7764 // 7765 //go:fix inline 7766 func (x Float32x8) AsUint16x16() Uint16x16 { 7767 return x.ToBits().ReshapeToUint16s() 7768 } 7769 7770 // AsUint32x8 reinterprets the bits of a Float32x8 vector as a Uint32x8 vector 7771 // 7772 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7773 // 7774 //go:fix inline 7775 func (x Float32x8) AsUint32x8() Uint32x8 { 7776 return x.ToBits() 7777 } 7778 7779 // AsUint64x4 reinterprets the bits of a Float32x8 vector as a Uint64x4 vector 7780 // 7781 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7782 // 7783 //go:fix inline 7784 func (x Float32x8) AsUint64x4() Uint64x4 { 7785 return x.ToBits().ReshapeToUint64s() 7786 } 7787 7788 // AsFloat64x8 reinterprets the bits of a Float32x16 vector as a Float64x8 vector 7789 // 7790 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7791 // 7792 //go:fix inline 7793 func (x Float32x16) AsFloat64x8() Float64x8 { 7794 return x.ToBits().ReshapeToUint64s().BitsToFloat64() 7795 } 7796 7797 // AsInt8x64 reinterprets the bits of a Float32x16 vector as a Int8x64 vector 7798 // 7799 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7800 // 7801 //go:fix inline 7802 func (x Float32x16) AsInt8x64() Int8x64 { 7803 return x.ToBits().ReshapeToUint8s().BitsToInt8() 7804 } 7805 7806 // AsInt16x32 reinterprets the bits of a Float32x16 vector as a Int16x32 vector 7807 // 7808 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7809 // 7810 //go:fix inline 7811 func (x Float32x16) AsInt16x32() Int16x32 { 7812 return x.ToBits().ReshapeToUint16s().BitsToInt16() 7813 } 7814 7815 // AsInt32x16 reinterprets the bits of a Float32x16 vector as a Int32x16 vector 7816 // 7817 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7818 // 7819 //go:fix inline 7820 func (x Float32x16) AsInt32x16() Int32x16 { 7821 return x.ToBits().BitsToInt32() 7822 } 7823 7824 // AsInt64x8 reinterprets the bits of a Float32x16 vector as a Int64x8 vector 7825 // 7826 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7827 // 7828 //go:fix inline 7829 func (x Float32x16) AsInt64x8() Int64x8 { 7830 return x.ToBits().ReshapeToUint64s().BitsToInt64() 7831 } 7832 7833 // AsUint8x64 reinterprets the bits of a Float32x16 vector as a Uint8x64 vector 7834 // 7835 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7836 // 7837 //go:fix inline 7838 func (x Float32x16) AsUint8x64() Uint8x64 { 7839 return x.ToBits().ReshapeToUint8s() 7840 } 7841 7842 // AsUint16x32 reinterprets the bits of a Float32x16 vector as a Uint16x32 vector 7843 // 7844 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7845 // 7846 //go:fix inline 7847 func (x Float32x16) AsUint16x32() Uint16x32 { 7848 return x.ToBits().ReshapeToUint16s() 7849 } 7850 7851 // AsUint32x16 reinterprets the bits of a Float32x16 vector as a Uint32x16 vector 7852 // 7853 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7854 // 7855 //go:fix inline 7856 func (x Float32x16) AsUint32x16() Uint32x16 { 7857 return x.ToBits() 7858 } 7859 7860 // AsUint64x8 reinterprets the bits of a Float32x16 vector as a Uint64x8 vector 7861 // 7862 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7863 // 7864 //go:fix inline 7865 func (x Float32x16) AsUint64x8() Uint64x8 { 7866 return x.ToBits().ReshapeToUint64s() 7867 } 7868 7869 // AsFloat32x4 reinterprets the bits of a Float64x2 vector as a Float32x4 vector 7870 // 7871 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7872 // 7873 //go:fix inline 7874 func (x Float64x2) AsFloat32x4() Float32x4 { 7875 return x.ToBits().ReshapeToUint32s().BitsToFloat32() 7876 } 7877 7878 // AsInt8x16 reinterprets the bits of a Float64x2 vector as a Int8x16 vector 7879 // 7880 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7881 // 7882 //go:fix inline 7883 func (x Float64x2) AsInt8x16() Int8x16 { 7884 return x.ToBits().ReshapeToUint8s().BitsToInt8() 7885 } 7886 7887 // AsInt16x8 reinterprets the bits of a Float64x2 vector as a Int16x8 vector 7888 // 7889 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7890 // 7891 //go:fix inline 7892 func (x Float64x2) AsInt16x8() Int16x8 { 7893 return x.ToBits().ReshapeToUint16s().BitsToInt16() 7894 } 7895 7896 // AsInt32x4 reinterprets the bits of a Float64x2 vector as a Int32x4 vector 7897 // 7898 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7899 // 7900 //go:fix inline 7901 func (x Float64x2) AsInt32x4() Int32x4 { 7902 return x.ToBits().ReshapeToUint32s().BitsToInt32() 7903 } 7904 7905 // AsInt64x2 reinterprets the bits of a Float64x2 vector as a Int64x2 vector 7906 // 7907 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7908 // 7909 //go:fix inline 7910 func (x Float64x2) AsInt64x2() Int64x2 { 7911 return x.ToBits().BitsToInt64() 7912 } 7913 7914 // AsUint8x16 reinterprets the bits of a Float64x2 vector as a Uint8x16 vector 7915 // 7916 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7917 // 7918 //go:fix inline 7919 func (x Float64x2) AsUint8x16() Uint8x16 { 7920 return x.ToBits().ReshapeToUint8s() 7921 } 7922 7923 // AsUint16x8 reinterprets the bits of a Float64x2 vector as a Uint16x8 vector 7924 // 7925 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7926 // 7927 //go:fix inline 7928 func (x Float64x2) AsUint16x8() Uint16x8 { 7929 return x.ToBits().ReshapeToUint16s() 7930 } 7931 7932 // AsUint32x4 reinterprets the bits of a Float64x2 vector as a Uint32x4 vector 7933 // 7934 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7935 // 7936 //go:fix inline 7937 func (x Float64x2) AsUint32x4() Uint32x4 { 7938 return x.ToBits().ReshapeToUint32s() 7939 } 7940 7941 // AsUint64x2 reinterprets the bits of a Float64x2 vector as a Uint64x2 vector 7942 // 7943 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7944 // 7945 //go:fix inline 7946 func (x Float64x2) AsUint64x2() Uint64x2 { 7947 return x.ToBits() 7948 } 7949 7950 // AsFloat32x8 reinterprets the bits of a Float64x4 vector as a Float32x8 vector 7951 // 7952 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7953 // 7954 //go:fix inline 7955 func (x Float64x4) AsFloat32x8() Float32x8 { 7956 return x.ToBits().ReshapeToUint32s().BitsToFloat32() 7957 } 7958 7959 // AsInt8x32 reinterprets the bits of a Float64x4 vector as a Int8x32 vector 7960 // 7961 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7962 // 7963 //go:fix inline 7964 func (x Float64x4) AsInt8x32() Int8x32 { 7965 return x.ToBits().ReshapeToUint8s().BitsToInt8() 7966 } 7967 7968 // AsInt16x16 reinterprets the bits of a Float64x4 vector as a Int16x16 vector 7969 // 7970 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7971 // 7972 //go:fix inline 7973 func (x Float64x4) AsInt16x16() Int16x16 { 7974 return x.ToBits().ReshapeToUint16s().BitsToInt16() 7975 } 7976 7977 // AsInt32x8 reinterprets the bits of a Float64x4 vector as a Int32x8 vector 7978 // 7979 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7980 // 7981 //go:fix inline 7982 func (x Float64x4) AsInt32x8() Int32x8 { 7983 return x.ToBits().ReshapeToUint32s().BitsToInt32() 7984 } 7985 7986 // AsInt64x4 reinterprets the bits of a Float64x4 vector as a Int64x4 vector 7987 // 7988 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7989 // 7990 //go:fix inline 7991 func (x Float64x4) AsInt64x4() Int64x4 { 7992 return x.ToBits().BitsToInt64() 7993 } 7994 7995 // AsUint8x32 reinterprets the bits of a Float64x4 vector as a Uint8x32 vector 7996 // 7997 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 7998 // 7999 //go:fix inline 8000 func (x Float64x4) AsUint8x32() Uint8x32 { 8001 return x.ToBits().ReshapeToUint8s() 8002 } 8003 8004 // AsUint16x16 reinterprets the bits of a Float64x4 vector as a Uint16x16 vector 8005 // 8006 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8007 // 8008 //go:fix inline 8009 func (x Float64x4) AsUint16x16() Uint16x16 { 8010 return x.ToBits().ReshapeToUint16s() 8011 } 8012 8013 // AsUint32x8 reinterprets the bits of a Float64x4 vector as a Uint32x8 vector 8014 // 8015 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8016 // 8017 //go:fix inline 8018 func (x Float64x4) AsUint32x8() Uint32x8 { 8019 return x.ToBits().ReshapeToUint32s() 8020 } 8021 8022 // AsUint64x4 reinterprets the bits of a Float64x4 vector as a Uint64x4 vector 8023 // 8024 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8025 // 8026 //go:fix inline 8027 func (x Float64x4) AsUint64x4() Uint64x4 { 8028 return x.ToBits() 8029 } 8030 8031 // AsFloat32x16 reinterprets the bits of a Float64x8 vector as a Float32x16 vector 8032 // 8033 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8034 // 8035 //go:fix inline 8036 func (x Float64x8) AsFloat32x16() Float32x16 { 8037 return x.ToBits().ReshapeToUint32s().BitsToFloat32() 8038 } 8039 8040 // AsInt8x64 reinterprets the bits of a Float64x8 vector as a Int8x64 vector 8041 // 8042 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8043 // 8044 //go:fix inline 8045 func (x Float64x8) AsInt8x64() Int8x64 { 8046 return x.ToBits().ReshapeToUint8s().BitsToInt8() 8047 } 8048 8049 // AsInt16x32 reinterprets the bits of a Float64x8 vector as a Int16x32 vector 8050 // 8051 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8052 // 8053 //go:fix inline 8054 func (x Float64x8) AsInt16x32() Int16x32 { 8055 return x.ToBits().ReshapeToUint16s().BitsToInt16() 8056 } 8057 8058 // AsInt32x16 reinterprets the bits of a Float64x8 vector as a Int32x16 vector 8059 // 8060 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8061 // 8062 //go:fix inline 8063 func (x Float64x8) AsInt32x16() Int32x16 { 8064 return x.ToBits().ReshapeToUint32s().BitsToInt32() 8065 } 8066 8067 // AsInt64x8 reinterprets the bits of a Float64x8 vector as a Int64x8 vector 8068 // 8069 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8070 // 8071 //go:fix inline 8072 func (x Float64x8) AsInt64x8() Int64x8 { 8073 return x.ToBits().BitsToInt64() 8074 } 8075 8076 // AsUint8x64 reinterprets the bits of a Float64x8 vector as a Uint8x64 vector 8077 // 8078 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8079 // 8080 //go:fix inline 8081 func (x Float64x8) AsUint8x64() Uint8x64 { 8082 return x.ToBits().ReshapeToUint8s() 8083 } 8084 8085 // AsUint16x32 reinterprets the bits of a Float64x8 vector as a Uint16x32 vector 8086 // 8087 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8088 // 8089 //go:fix inline 8090 func (x Float64x8) AsUint16x32() Uint16x32 { 8091 return x.ToBits().ReshapeToUint16s() 8092 } 8093 8094 // AsUint32x16 reinterprets the bits of a Float64x8 vector as a Uint32x16 vector 8095 // 8096 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8097 // 8098 //go:fix inline 8099 func (x Float64x8) AsUint32x16() Uint32x16 { 8100 return x.ToBits().ReshapeToUint32s() 8101 } 8102 8103 // AsUint64x8 reinterprets the bits of a Float64x8 vector as a Uint64x8 vector 8104 // 8105 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8106 // 8107 //go:fix inline 8108 func (x Float64x8) AsUint64x8() Uint64x8 { 8109 return x.ToBits() 8110 } 8111 8112 // AsFloat32x4 reinterprets the bits of a Int8x16 vector as a Float32x4 vector 8113 // 8114 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8115 // 8116 //go:fix inline 8117 func (x Int8x16) AsFloat32x4() Float32x4 { 8118 return x.ToBits().ReshapeToUint32s().BitsToFloat32() 8119 } 8120 8121 // AsFloat64x2 reinterprets the bits of a Int8x16 vector as a Float64x2 vector 8122 // 8123 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8124 // 8125 //go:fix inline 8126 func (x Int8x16) AsFloat64x2() Float64x2 { 8127 return x.ToBits().ReshapeToUint64s().BitsToFloat64() 8128 } 8129 8130 // AsInt16x8 reinterprets the bits of a Int8x16 vector as a Int16x8 vector 8131 // 8132 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8133 // 8134 //go:fix inline 8135 func (x Int8x16) AsInt16x8() Int16x8 { 8136 return x.ToBits().ReshapeToUint16s().BitsToInt16() 8137 } 8138 8139 // AsInt32x4 reinterprets the bits of a Int8x16 vector as a Int32x4 vector 8140 // 8141 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8142 // 8143 //go:fix inline 8144 func (x Int8x16) AsInt32x4() Int32x4 { 8145 return x.ToBits().ReshapeToUint32s().BitsToInt32() 8146 } 8147 8148 // AsInt64x2 reinterprets the bits of a Int8x16 vector as a Int64x2 vector 8149 // 8150 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8151 // 8152 //go:fix inline 8153 func (x Int8x16) AsInt64x2() Int64x2 { 8154 return x.ToBits().ReshapeToUint64s().BitsToInt64() 8155 } 8156 8157 // AsUint8x16 reinterprets the bits of a Int8x16 vector as a Uint8x16 vector 8158 // 8159 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8160 // 8161 //go:fix inline 8162 func (x Int8x16) AsUint8x16() Uint8x16 { 8163 return x.ToBits() 8164 } 8165 8166 // AsUint16x8 reinterprets the bits of a Int8x16 vector as a Uint16x8 vector 8167 // 8168 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8169 // 8170 //go:fix inline 8171 func (x Int8x16) AsUint16x8() Uint16x8 { 8172 return x.ToBits().ReshapeToUint16s() 8173 } 8174 8175 // AsUint32x4 reinterprets the bits of a Int8x16 vector as a Uint32x4 vector 8176 // 8177 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8178 // 8179 //go:fix inline 8180 func (x Int8x16) AsUint32x4() Uint32x4 { 8181 return x.ToBits().ReshapeToUint32s() 8182 } 8183 8184 // AsUint64x2 reinterprets the bits of a Int8x16 vector as a Uint64x2 vector 8185 // 8186 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8187 // 8188 //go:fix inline 8189 func (x Int8x16) AsUint64x2() Uint64x2 { 8190 return x.ToBits().ReshapeToUint64s() 8191 } 8192 8193 // AsFloat32x8 reinterprets the bits of a Int8x32 vector as a Float32x8 vector 8194 // 8195 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8196 // 8197 //go:fix inline 8198 func (x Int8x32) AsFloat32x8() Float32x8 { 8199 return x.ToBits().ReshapeToUint32s().BitsToFloat32() 8200 } 8201 8202 // AsFloat64x4 reinterprets the bits of a Int8x32 vector as a Float64x4 vector 8203 // 8204 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8205 // 8206 //go:fix inline 8207 func (x Int8x32) AsFloat64x4() Float64x4 { 8208 return x.ToBits().ReshapeToUint64s().BitsToFloat64() 8209 } 8210 8211 // AsInt16x16 reinterprets the bits of a Int8x32 vector as a Int16x16 vector 8212 // 8213 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8214 // 8215 //go:fix inline 8216 func (x Int8x32) AsInt16x16() Int16x16 { 8217 return x.ToBits().ReshapeToUint16s().BitsToInt16() 8218 } 8219 8220 // AsInt32x8 reinterprets the bits of a Int8x32 vector as a Int32x8 vector 8221 // 8222 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8223 // 8224 //go:fix inline 8225 func (x Int8x32) AsInt32x8() Int32x8 { 8226 return x.ToBits().ReshapeToUint32s().BitsToInt32() 8227 } 8228 8229 // AsInt64x4 reinterprets the bits of a Int8x32 vector as a Int64x4 vector 8230 // 8231 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8232 // 8233 //go:fix inline 8234 func (x Int8x32) AsInt64x4() Int64x4 { 8235 return x.ToBits().ReshapeToUint64s().BitsToInt64() 8236 } 8237 8238 // AsUint8x32 reinterprets the bits of a Int8x32 vector as a Uint8x32 vector 8239 // 8240 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8241 // 8242 //go:fix inline 8243 func (x Int8x32) AsUint8x32() Uint8x32 { 8244 return x.ToBits() 8245 } 8246 8247 // AsUint16x16 reinterprets the bits of a Int8x32 vector as a Uint16x16 vector 8248 // 8249 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8250 // 8251 //go:fix inline 8252 func (x Int8x32) AsUint16x16() Uint16x16 { 8253 return x.ToBits().ReshapeToUint16s() 8254 } 8255 8256 // AsUint32x8 reinterprets the bits of a Int8x32 vector as a Uint32x8 vector 8257 // 8258 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8259 // 8260 //go:fix inline 8261 func (x Int8x32) AsUint32x8() Uint32x8 { 8262 return x.ToBits().ReshapeToUint32s() 8263 } 8264 8265 // AsUint64x4 reinterprets the bits of a Int8x32 vector as a Uint64x4 vector 8266 // 8267 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8268 // 8269 //go:fix inline 8270 func (x Int8x32) AsUint64x4() Uint64x4 { 8271 return x.ToBits().ReshapeToUint64s() 8272 } 8273 8274 // AsFloat32x16 reinterprets the bits of a Int8x64 vector as a Float32x16 vector 8275 // 8276 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8277 // 8278 //go:fix inline 8279 func (x Int8x64) AsFloat32x16() Float32x16 { 8280 return x.ToBits().ReshapeToUint32s().BitsToFloat32() 8281 } 8282 8283 // AsFloat64x8 reinterprets the bits of a Int8x64 vector as a Float64x8 vector 8284 // 8285 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8286 // 8287 //go:fix inline 8288 func (x Int8x64) AsFloat64x8() Float64x8 { 8289 return x.ToBits().ReshapeToUint64s().BitsToFloat64() 8290 } 8291 8292 // AsInt16x32 reinterprets the bits of a Int8x64 vector as a Int16x32 vector 8293 // 8294 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8295 // 8296 //go:fix inline 8297 func (x Int8x64) AsInt16x32() Int16x32 { 8298 return x.ToBits().ReshapeToUint16s().BitsToInt16() 8299 } 8300 8301 // AsInt32x16 reinterprets the bits of a Int8x64 vector as a Int32x16 vector 8302 // 8303 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8304 // 8305 //go:fix inline 8306 func (x Int8x64) AsInt32x16() Int32x16 { 8307 return x.ToBits().ReshapeToUint32s().BitsToInt32() 8308 } 8309 8310 // AsInt64x8 reinterprets the bits of a Int8x64 vector as a Int64x8 vector 8311 // 8312 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8313 // 8314 //go:fix inline 8315 func (x Int8x64) AsInt64x8() Int64x8 { 8316 return x.ToBits().ReshapeToUint64s().BitsToInt64() 8317 } 8318 8319 // AsUint8x64 reinterprets the bits of a Int8x64 vector as a Uint8x64 vector 8320 // 8321 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8322 // 8323 //go:fix inline 8324 func (x Int8x64) AsUint8x64() Uint8x64 { 8325 return x.ToBits() 8326 } 8327 8328 // AsUint16x32 reinterprets the bits of a Int8x64 vector as a Uint16x32 vector 8329 // 8330 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8331 // 8332 //go:fix inline 8333 func (x Int8x64) AsUint16x32() Uint16x32 { 8334 return x.ToBits().ReshapeToUint16s() 8335 } 8336 8337 // AsUint32x16 reinterprets the bits of a Int8x64 vector as a Uint32x16 vector 8338 // 8339 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8340 // 8341 //go:fix inline 8342 func (x Int8x64) AsUint32x16() Uint32x16 { 8343 return x.ToBits().ReshapeToUint32s() 8344 } 8345 8346 // AsUint64x8 reinterprets the bits of a Int8x64 vector as a Uint64x8 vector 8347 // 8348 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8349 // 8350 //go:fix inline 8351 func (x Int8x64) AsUint64x8() Uint64x8 { 8352 return x.ToBits().ReshapeToUint64s() 8353 } 8354 8355 // AsFloat32x4 reinterprets the bits of a Int16x8 vector as a Float32x4 vector 8356 // 8357 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8358 // 8359 //go:fix inline 8360 func (x Int16x8) AsFloat32x4() Float32x4 { 8361 return x.ToBits().ReshapeToUint32s().BitsToFloat32() 8362 } 8363 8364 // AsFloat64x2 reinterprets the bits of a Int16x8 vector as a Float64x2 vector 8365 // 8366 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8367 // 8368 //go:fix inline 8369 func (x Int16x8) AsFloat64x2() Float64x2 { 8370 return x.ToBits().ReshapeToUint64s().BitsToFloat64() 8371 } 8372 8373 // AsInt8x16 reinterprets the bits of a Int16x8 vector as a Int8x16 vector 8374 // 8375 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8376 // 8377 //go:fix inline 8378 func (x Int16x8) AsInt8x16() Int8x16 { 8379 return x.ToBits().ReshapeToUint8s().BitsToInt8() 8380 } 8381 8382 // AsInt32x4 reinterprets the bits of a Int16x8 vector as a Int32x4 vector 8383 // 8384 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8385 // 8386 //go:fix inline 8387 func (x Int16x8) AsInt32x4() Int32x4 { 8388 return x.ToBits().ReshapeToUint32s().BitsToInt32() 8389 } 8390 8391 // AsInt64x2 reinterprets the bits of a Int16x8 vector as a Int64x2 vector 8392 // 8393 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8394 // 8395 //go:fix inline 8396 func (x Int16x8) AsInt64x2() Int64x2 { 8397 return x.ToBits().ReshapeToUint64s().BitsToInt64() 8398 } 8399 8400 // AsUint8x16 reinterprets the bits of a Int16x8 vector as a Uint8x16 vector 8401 // 8402 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8403 // 8404 //go:fix inline 8405 func (x Int16x8) AsUint8x16() Uint8x16 { 8406 return x.ToBits().ReshapeToUint8s() 8407 } 8408 8409 // AsUint16x8 reinterprets the bits of a Int16x8 vector as a Uint16x8 vector 8410 // 8411 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8412 // 8413 //go:fix inline 8414 func (x Int16x8) AsUint16x8() Uint16x8 { 8415 return x.ToBits() 8416 } 8417 8418 // AsUint32x4 reinterprets the bits of a Int16x8 vector as a Uint32x4 vector 8419 // 8420 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8421 // 8422 //go:fix inline 8423 func (x Int16x8) AsUint32x4() Uint32x4 { 8424 return x.ToBits().ReshapeToUint32s() 8425 } 8426 8427 // AsUint64x2 reinterprets the bits of a Int16x8 vector as a Uint64x2 vector 8428 // 8429 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8430 // 8431 //go:fix inline 8432 func (x Int16x8) AsUint64x2() Uint64x2 { 8433 return x.ToBits().ReshapeToUint64s() 8434 } 8435 8436 // AsFloat32x8 reinterprets the bits of a Int16x16 vector as a Float32x8 vector 8437 // 8438 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8439 // 8440 //go:fix inline 8441 func (x Int16x16) AsFloat32x8() Float32x8 { 8442 return x.ToBits().ReshapeToUint32s().BitsToFloat32() 8443 } 8444 8445 // AsFloat64x4 reinterprets the bits of a Int16x16 vector as a Float64x4 vector 8446 // 8447 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8448 // 8449 //go:fix inline 8450 func (x Int16x16) AsFloat64x4() Float64x4 { 8451 return x.ToBits().ReshapeToUint64s().BitsToFloat64() 8452 } 8453 8454 // AsInt8x32 reinterprets the bits of a Int16x16 vector as a Int8x32 vector 8455 // 8456 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8457 // 8458 //go:fix inline 8459 func (x Int16x16) AsInt8x32() Int8x32 { 8460 return x.ToBits().ReshapeToUint8s().BitsToInt8() 8461 } 8462 8463 // AsInt32x8 reinterprets the bits of a Int16x16 vector as a Int32x8 vector 8464 // 8465 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8466 // 8467 //go:fix inline 8468 func (x Int16x16) AsInt32x8() Int32x8 { 8469 return x.ToBits().ReshapeToUint32s().BitsToInt32() 8470 } 8471 8472 // AsInt64x4 reinterprets the bits of a Int16x16 vector as a Int64x4 vector 8473 // 8474 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8475 // 8476 //go:fix inline 8477 func (x Int16x16) AsInt64x4() Int64x4 { 8478 return x.ToBits().ReshapeToUint64s().BitsToInt64() 8479 } 8480 8481 // AsUint8x32 reinterprets the bits of a Int16x16 vector as a Uint8x32 vector 8482 // 8483 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8484 // 8485 //go:fix inline 8486 func (x Int16x16) AsUint8x32() Uint8x32 { 8487 return x.ToBits().ReshapeToUint8s() 8488 } 8489 8490 // AsUint16x16 reinterprets the bits of a Int16x16 vector as a Uint16x16 vector 8491 // 8492 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8493 // 8494 //go:fix inline 8495 func (x Int16x16) AsUint16x16() Uint16x16 { 8496 return x.ToBits() 8497 } 8498 8499 // AsUint32x8 reinterprets the bits of a Int16x16 vector as a Uint32x8 vector 8500 // 8501 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8502 // 8503 //go:fix inline 8504 func (x Int16x16) AsUint32x8() Uint32x8 { 8505 return x.ToBits().ReshapeToUint32s() 8506 } 8507 8508 // AsUint64x4 reinterprets the bits of a Int16x16 vector as a Uint64x4 vector 8509 // 8510 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8511 // 8512 //go:fix inline 8513 func (x Int16x16) AsUint64x4() Uint64x4 { 8514 return x.ToBits().ReshapeToUint64s() 8515 } 8516 8517 // AsFloat32x16 reinterprets the bits of a Int16x32 vector as a Float32x16 vector 8518 // 8519 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8520 // 8521 //go:fix inline 8522 func (x Int16x32) AsFloat32x16() Float32x16 { 8523 return x.ToBits().ReshapeToUint32s().BitsToFloat32() 8524 } 8525 8526 // AsFloat64x8 reinterprets the bits of a Int16x32 vector as a Float64x8 vector 8527 // 8528 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8529 // 8530 //go:fix inline 8531 func (x Int16x32) AsFloat64x8() Float64x8 { 8532 return x.ToBits().ReshapeToUint64s().BitsToFloat64() 8533 } 8534 8535 // AsInt8x64 reinterprets the bits of a Int16x32 vector as a Int8x64 vector 8536 // 8537 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8538 // 8539 //go:fix inline 8540 func (x Int16x32) AsInt8x64() Int8x64 { 8541 return x.ToBits().ReshapeToUint8s().BitsToInt8() 8542 } 8543 8544 // AsInt32x16 reinterprets the bits of a Int16x32 vector as a Int32x16 vector 8545 // 8546 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8547 // 8548 //go:fix inline 8549 func (x Int16x32) AsInt32x16() Int32x16 { 8550 return x.ToBits().ReshapeToUint32s().BitsToInt32() 8551 } 8552 8553 // AsInt64x8 reinterprets the bits of a Int16x32 vector as a Int64x8 vector 8554 // 8555 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8556 // 8557 //go:fix inline 8558 func (x Int16x32) AsInt64x8() Int64x8 { 8559 return x.ToBits().ReshapeToUint64s().BitsToInt64() 8560 } 8561 8562 // AsUint8x64 reinterprets the bits of a Int16x32 vector as a Uint8x64 vector 8563 // 8564 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8565 // 8566 //go:fix inline 8567 func (x Int16x32) AsUint8x64() Uint8x64 { 8568 return x.ToBits().ReshapeToUint8s() 8569 } 8570 8571 // AsUint16x32 reinterprets the bits of a Int16x32 vector as a Uint16x32 vector 8572 // 8573 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8574 // 8575 //go:fix inline 8576 func (x Int16x32) AsUint16x32() Uint16x32 { 8577 return x.ToBits() 8578 } 8579 8580 // AsUint32x16 reinterprets the bits of a Int16x32 vector as a Uint32x16 vector 8581 // 8582 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8583 // 8584 //go:fix inline 8585 func (x Int16x32) AsUint32x16() Uint32x16 { 8586 return x.ToBits().ReshapeToUint32s() 8587 } 8588 8589 // AsUint64x8 reinterprets the bits of a Int16x32 vector as a Uint64x8 vector 8590 // 8591 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8592 // 8593 //go:fix inline 8594 func (x Int16x32) AsUint64x8() Uint64x8 { 8595 return x.ToBits().ReshapeToUint64s() 8596 } 8597 8598 // AsFloat32x4 reinterprets the bits of a Int32x4 vector as a Float32x4 vector 8599 // 8600 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8601 // 8602 //go:fix inline 8603 func (x Int32x4) AsFloat32x4() Float32x4 { 8604 return x.ToBits().BitsToFloat32() 8605 } 8606 8607 // AsFloat64x2 reinterprets the bits of a Int32x4 vector as a Float64x2 vector 8608 // 8609 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8610 // 8611 //go:fix inline 8612 func (x Int32x4) AsFloat64x2() Float64x2 { 8613 return x.ToBits().ReshapeToUint64s().BitsToFloat64() 8614 } 8615 8616 // AsInt8x16 reinterprets the bits of a Int32x4 vector as a Int8x16 vector 8617 // 8618 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8619 // 8620 //go:fix inline 8621 func (x Int32x4) AsInt8x16() Int8x16 { 8622 return x.ToBits().ReshapeToUint8s().BitsToInt8() 8623 } 8624 8625 // AsInt16x8 reinterprets the bits of a Int32x4 vector as a Int16x8 vector 8626 // 8627 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8628 // 8629 //go:fix inline 8630 func (x Int32x4) AsInt16x8() Int16x8 { 8631 return x.ToBits().ReshapeToUint16s().BitsToInt16() 8632 } 8633 8634 // AsInt64x2 reinterprets the bits of a Int32x4 vector as a Int64x2 vector 8635 // 8636 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8637 // 8638 //go:fix inline 8639 func (x Int32x4) AsInt64x2() Int64x2 { 8640 return x.ToBits().ReshapeToUint64s().BitsToInt64() 8641 } 8642 8643 // AsUint8x16 reinterprets the bits of a Int32x4 vector as a Uint8x16 vector 8644 // 8645 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8646 // 8647 //go:fix inline 8648 func (x Int32x4) AsUint8x16() Uint8x16 { 8649 return x.ToBits().ReshapeToUint8s() 8650 } 8651 8652 // AsUint16x8 reinterprets the bits of a Int32x4 vector as a Uint16x8 vector 8653 // 8654 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8655 // 8656 //go:fix inline 8657 func (x Int32x4) AsUint16x8() Uint16x8 { 8658 return x.ToBits().ReshapeToUint16s() 8659 } 8660 8661 // AsUint32x4 reinterprets the bits of a Int32x4 vector as a Uint32x4 vector 8662 // 8663 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8664 // 8665 //go:fix inline 8666 func (x Int32x4) AsUint32x4() Uint32x4 { 8667 return x.ToBits() 8668 } 8669 8670 // AsUint64x2 reinterprets the bits of a Int32x4 vector as a Uint64x2 vector 8671 // 8672 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8673 // 8674 //go:fix inline 8675 func (x Int32x4) AsUint64x2() Uint64x2 { 8676 return x.ToBits().ReshapeToUint64s() 8677 } 8678 8679 // AsFloat32x8 reinterprets the bits of a Int32x8 vector as a Float32x8 vector 8680 // 8681 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8682 // 8683 //go:fix inline 8684 func (x Int32x8) AsFloat32x8() Float32x8 { 8685 return x.ToBits().BitsToFloat32() 8686 } 8687 8688 // AsFloat64x4 reinterprets the bits of a Int32x8 vector as a Float64x4 vector 8689 // 8690 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8691 // 8692 //go:fix inline 8693 func (x Int32x8) AsFloat64x4() Float64x4 { 8694 return x.ToBits().ReshapeToUint64s().BitsToFloat64() 8695 } 8696 8697 // AsInt8x32 reinterprets the bits of a Int32x8 vector as a Int8x32 vector 8698 // 8699 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8700 // 8701 //go:fix inline 8702 func (x Int32x8) AsInt8x32() Int8x32 { 8703 return x.ToBits().ReshapeToUint8s().BitsToInt8() 8704 } 8705 8706 // AsInt16x16 reinterprets the bits of a Int32x8 vector as a Int16x16 vector 8707 // 8708 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8709 // 8710 //go:fix inline 8711 func (x Int32x8) AsInt16x16() Int16x16 { 8712 return x.ToBits().ReshapeToUint16s().BitsToInt16() 8713 } 8714 8715 // AsInt64x4 reinterprets the bits of a Int32x8 vector as a Int64x4 vector 8716 // 8717 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8718 // 8719 //go:fix inline 8720 func (x Int32x8) AsInt64x4() Int64x4 { 8721 return x.ToBits().ReshapeToUint64s().BitsToInt64() 8722 } 8723 8724 // AsUint8x32 reinterprets the bits of a Int32x8 vector as a Uint8x32 vector 8725 // 8726 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8727 // 8728 //go:fix inline 8729 func (x Int32x8) AsUint8x32() Uint8x32 { 8730 return x.ToBits().ReshapeToUint8s() 8731 } 8732 8733 // AsUint16x16 reinterprets the bits of a Int32x8 vector as a Uint16x16 vector 8734 // 8735 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8736 // 8737 //go:fix inline 8738 func (x Int32x8) AsUint16x16() Uint16x16 { 8739 return x.ToBits().ReshapeToUint16s() 8740 } 8741 8742 // AsUint32x8 reinterprets the bits of a Int32x8 vector as a Uint32x8 vector 8743 // 8744 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8745 // 8746 //go:fix inline 8747 func (x Int32x8) AsUint32x8() Uint32x8 { 8748 return x.ToBits() 8749 } 8750 8751 // AsUint64x4 reinterprets the bits of a Int32x8 vector as a Uint64x4 vector 8752 // 8753 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8754 // 8755 //go:fix inline 8756 func (x Int32x8) AsUint64x4() Uint64x4 { 8757 return x.ToBits().ReshapeToUint64s() 8758 } 8759 8760 // AsFloat32x16 reinterprets the bits of a Int32x16 vector as a Float32x16 vector 8761 // 8762 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8763 // 8764 //go:fix inline 8765 func (x Int32x16) AsFloat32x16() Float32x16 { 8766 return x.ToBits().BitsToFloat32() 8767 } 8768 8769 // AsFloat64x8 reinterprets the bits of a Int32x16 vector as a Float64x8 vector 8770 // 8771 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8772 // 8773 //go:fix inline 8774 func (x Int32x16) AsFloat64x8() Float64x8 { 8775 return x.ToBits().ReshapeToUint64s().BitsToFloat64() 8776 } 8777 8778 // AsInt8x64 reinterprets the bits of a Int32x16 vector as a Int8x64 vector 8779 // 8780 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8781 // 8782 //go:fix inline 8783 func (x Int32x16) AsInt8x64() Int8x64 { 8784 return x.ToBits().ReshapeToUint8s().BitsToInt8() 8785 } 8786 8787 // AsInt16x32 reinterprets the bits of a Int32x16 vector as a Int16x32 vector 8788 // 8789 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8790 // 8791 //go:fix inline 8792 func (x Int32x16) AsInt16x32() Int16x32 { 8793 return x.ToBits().ReshapeToUint16s().BitsToInt16() 8794 } 8795 8796 // AsInt64x8 reinterprets the bits of a Int32x16 vector as a Int64x8 vector 8797 // 8798 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8799 // 8800 //go:fix inline 8801 func (x Int32x16) AsInt64x8() Int64x8 { 8802 return x.ToBits().ReshapeToUint64s().BitsToInt64() 8803 } 8804 8805 // AsUint8x64 reinterprets the bits of a Int32x16 vector as a Uint8x64 vector 8806 // 8807 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8808 // 8809 //go:fix inline 8810 func (x Int32x16) AsUint8x64() Uint8x64 { 8811 return x.ToBits().ReshapeToUint8s() 8812 } 8813 8814 // AsUint16x32 reinterprets the bits of a Int32x16 vector as a Uint16x32 vector 8815 // 8816 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8817 // 8818 //go:fix inline 8819 func (x Int32x16) AsUint16x32() Uint16x32 { 8820 return x.ToBits().ReshapeToUint16s() 8821 } 8822 8823 // AsUint32x16 reinterprets the bits of a Int32x16 vector as a Uint32x16 vector 8824 // 8825 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8826 // 8827 //go:fix inline 8828 func (x Int32x16) AsUint32x16() Uint32x16 { 8829 return x.ToBits() 8830 } 8831 8832 // AsUint64x8 reinterprets the bits of a Int32x16 vector as a Uint64x8 vector 8833 // 8834 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8835 // 8836 //go:fix inline 8837 func (x Int32x16) AsUint64x8() Uint64x8 { 8838 return x.ToBits().ReshapeToUint64s() 8839 } 8840 8841 // AsFloat32x4 reinterprets the bits of a Int64x2 vector as a Float32x4 vector 8842 // 8843 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8844 // 8845 //go:fix inline 8846 func (x Int64x2) AsFloat32x4() Float32x4 { 8847 return x.ToBits().ReshapeToUint32s().BitsToFloat32() 8848 } 8849 8850 // AsFloat64x2 reinterprets the bits of a Int64x2 vector as a Float64x2 vector 8851 // 8852 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8853 // 8854 //go:fix inline 8855 func (x Int64x2) AsFloat64x2() Float64x2 { 8856 return x.ToBits().BitsToFloat64() 8857 } 8858 8859 // AsInt8x16 reinterprets the bits of a Int64x2 vector as a Int8x16 vector 8860 // 8861 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8862 // 8863 //go:fix inline 8864 func (x Int64x2) AsInt8x16() Int8x16 { 8865 return x.ToBits().ReshapeToUint8s().BitsToInt8() 8866 } 8867 8868 // AsInt16x8 reinterprets the bits of a Int64x2 vector as a Int16x8 vector 8869 // 8870 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8871 // 8872 //go:fix inline 8873 func (x Int64x2) AsInt16x8() Int16x8 { 8874 return x.ToBits().ReshapeToUint16s().BitsToInt16() 8875 } 8876 8877 // AsInt32x4 reinterprets the bits of a Int64x2 vector as a Int32x4 vector 8878 // 8879 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8880 // 8881 //go:fix inline 8882 func (x Int64x2) AsInt32x4() Int32x4 { 8883 return x.ToBits().ReshapeToUint32s().BitsToInt32() 8884 } 8885 8886 // AsUint8x16 reinterprets the bits of a Int64x2 vector as a Uint8x16 vector 8887 // 8888 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8889 // 8890 //go:fix inline 8891 func (x Int64x2) AsUint8x16() Uint8x16 { 8892 return x.ToBits().ReshapeToUint8s() 8893 } 8894 8895 // AsUint16x8 reinterprets the bits of a Int64x2 vector as a Uint16x8 vector 8896 // 8897 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8898 // 8899 //go:fix inline 8900 func (x Int64x2) AsUint16x8() Uint16x8 { 8901 return x.ToBits().ReshapeToUint16s() 8902 } 8903 8904 // AsUint32x4 reinterprets the bits of a Int64x2 vector as a Uint32x4 vector 8905 // 8906 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8907 // 8908 //go:fix inline 8909 func (x Int64x2) AsUint32x4() Uint32x4 { 8910 return x.ToBits().ReshapeToUint32s() 8911 } 8912 8913 // AsUint64x2 reinterprets the bits of a Int64x2 vector as a Uint64x2 vector 8914 // 8915 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8916 // 8917 //go:fix inline 8918 func (x Int64x2) AsUint64x2() Uint64x2 { 8919 return x.ToBits() 8920 } 8921 8922 // AsFloat32x8 reinterprets the bits of a Int64x4 vector as a Float32x8 vector 8923 // 8924 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8925 // 8926 //go:fix inline 8927 func (x Int64x4) AsFloat32x8() Float32x8 { 8928 return x.ToBits().ReshapeToUint32s().BitsToFloat32() 8929 } 8930 8931 // AsFloat64x4 reinterprets the bits of a Int64x4 vector as a Float64x4 vector 8932 // 8933 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8934 // 8935 //go:fix inline 8936 func (x Int64x4) AsFloat64x4() Float64x4 { 8937 return x.ToBits().BitsToFloat64() 8938 } 8939 8940 // AsInt8x32 reinterprets the bits of a Int64x4 vector as a Int8x32 vector 8941 // 8942 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8943 // 8944 //go:fix inline 8945 func (x Int64x4) AsInt8x32() Int8x32 { 8946 return x.ToBits().ReshapeToUint8s().BitsToInt8() 8947 } 8948 8949 // AsInt16x16 reinterprets the bits of a Int64x4 vector as a Int16x16 vector 8950 // 8951 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8952 // 8953 //go:fix inline 8954 func (x Int64x4) AsInt16x16() Int16x16 { 8955 return x.ToBits().ReshapeToUint16s().BitsToInt16() 8956 } 8957 8958 // AsInt32x8 reinterprets the bits of a Int64x4 vector as a Int32x8 vector 8959 // 8960 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8961 // 8962 //go:fix inline 8963 func (x Int64x4) AsInt32x8() Int32x8 { 8964 return x.ToBits().ReshapeToUint32s().BitsToInt32() 8965 } 8966 8967 // AsUint8x32 reinterprets the bits of a Int64x4 vector as a Uint8x32 vector 8968 // 8969 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8970 // 8971 //go:fix inline 8972 func (x Int64x4) AsUint8x32() Uint8x32 { 8973 return x.ToBits().ReshapeToUint8s() 8974 } 8975 8976 // AsUint16x16 reinterprets the bits of a Int64x4 vector as a Uint16x16 vector 8977 // 8978 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8979 // 8980 //go:fix inline 8981 func (x Int64x4) AsUint16x16() Uint16x16 { 8982 return x.ToBits().ReshapeToUint16s() 8983 } 8984 8985 // AsUint32x8 reinterprets the bits of a Int64x4 vector as a Uint32x8 vector 8986 // 8987 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8988 // 8989 //go:fix inline 8990 func (x Int64x4) AsUint32x8() Uint32x8 { 8991 return x.ToBits().ReshapeToUint32s() 8992 } 8993 8994 // AsUint64x4 reinterprets the bits of a Int64x4 vector as a Uint64x4 vector 8995 // 8996 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 8997 // 8998 //go:fix inline 8999 func (x Int64x4) AsUint64x4() Uint64x4 { 9000 return x.ToBits() 9001 } 9002 9003 // AsFloat32x16 reinterprets the bits of a Int64x8 vector as a Float32x16 vector 9004 // 9005 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9006 // 9007 //go:fix inline 9008 func (x Int64x8) AsFloat32x16() Float32x16 { 9009 return x.ToBits().ReshapeToUint32s().BitsToFloat32() 9010 } 9011 9012 // AsFloat64x8 reinterprets the bits of a Int64x8 vector as a Float64x8 vector 9013 // 9014 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9015 // 9016 //go:fix inline 9017 func (x Int64x8) AsFloat64x8() Float64x8 { 9018 return x.ToBits().BitsToFloat64() 9019 } 9020 9021 // AsInt8x64 reinterprets the bits of a Int64x8 vector as a Int8x64 vector 9022 // 9023 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9024 // 9025 //go:fix inline 9026 func (x Int64x8) AsInt8x64() Int8x64 { 9027 return x.ToBits().ReshapeToUint8s().BitsToInt8() 9028 } 9029 9030 // AsInt16x32 reinterprets the bits of a Int64x8 vector as a Int16x32 vector 9031 // 9032 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9033 // 9034 //go:fix inline 9035 func (x Int64x8) AsInt16x32() Int16x32 { 9036 return x.ToBits().ReshapeToUint16s().BitsToInt16() 9037 } 9038 9039 // AsInt32x16 reinterprets the bits of a Int64x8 vector as a Int32x16 vector 9040 // 9041 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9042 // 9043 //go:fix inline 9044 func (x Int64x8) AsInt32x16() Int32x16 { 9045 return x.ToBits().ReshapeToUint32s().BitsToInt32() 9046 } 9047 9048 // AsUint8x64 reinterprets the bits of a Int64x8 vector as a Uint8x64 vector 9049 // 9050 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9051 // 9052 //go:fix inline 9053 func (x Int64x8) AsUint8x64() Uint8x64 { 9054 return x.ToBits().ReshapeToUint8s() 9055 } 9056 9057 // AsUint16x32 reinterprets the bits of a Int64x8 vector as a Uint16x32 vector 9058 // 9059 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9060 // 9061 //go:fix inline 9062 func (x Int64x8) AsUint16x32() Uint16x32 { 9063 return x.ToBits().ReshapeToUint16s() 9064 } 9065 9066 // AsUint32x16 reinterprets the bits of a Int64x8 vector as a Uint32x16 vector 9067 // 9068 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9069 // 9070 //go:fix inline 9071 func (x Int64x8) AsUint32x16() Uint32x16 { 9072 return x.ToBits().ReshapeToUint32s() 9073 } 9074 9075 // AsUint64x8 reinterprets the bits of a Int64x8 vector as a Uint64x8 vector 9076 // 9077 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9078 // 9079 //go:fix inline 9080 func (x Int64x8) AsUint64x8() Uint64x8 { 9081 return x.ToBits() 9082 } 9083 9084 // AsFloat32x4 reinterprets the bits of a Uint8x16 vector as a Float32x4 vector 9085 // 9086 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9087 // 9088 //go:fix inline 9089 func (x Uint8x16) AsFloat32x4() Float32x4 { 9090 return x.ReshapeToUint32s().BitsToFloat32() 9091 } 9092 9093 // AsFloat64x2 reinterprets the bits of a Uint8x16 vector as a Float64x2 vector 9094 // 9095 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9096 // 9097 //go:fix inline 9098 func (x Uint8x16) AsFloat64x2() Float64x2 { 9099 return x.ReshapeToUint64s().BitsToFloat64() 9100 } 9101 9102 // AsInt8x16 reinterprets the bits of a Uint8x16 vector as a Int8x16 vector 9103 // 9104 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9105 // 9106 //go:fix inline 9107 func (x Uint8x16) AsInt8x16() Int8x16 { 9108 return x.BitsToInt8() 9109 } 9110 9111 // BitsToInt8 reinterprets the bits of a Uint8x16 vector as a Int8x16 vector 9112 func (x Uint8x16) BitsToInt8() Int8x16 9113 9114 // ConvertToInt8 converts a Uint8x16 vector to a Int8x16 vector 9115 func (x Uint8x16) ConvertToInt8() Int8x16 9116 9117 // ConvertToUint8 converts a Int8x16 vector to a Uint8x16 vector 9118 func (x Int8x16) ConvertToUint8() Uint8x16 9119 9120 // ToBits reinterprets the bits of a Int8x16 vector as a Uint8x16 vector 9121 func (x Int8x16) ToBits() Uint8x16 9122 9123 // AsInt16x8 reinterprets the bits of a Uint8x16 vector as a Int16x8 vector 9124 // 9125 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9126 // 9127 //go:fix inline 9128 func (x Uint8x16) AsInt16x8() Int16x8 { 9129 return x.ReshapeToUint16s().BitsToInt16() 9130 } 9131 9132 // AsInt32x4 reinterprets the bits of a Uint8x16 vector as a Int32x4 vector 9133 // 9134 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9135 // 9136 //go:fix inline 9137 func (x Uint8x16) AsInt32x4() Int32x4 { 9138 return x.ReshapeToUint32s().BitsToInt32() 9139 } 9140 9141 // AsInt64x2 reinterprets the bits of a Uint8x16 vector as a Int64x2 vector 9142 // 9143 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9144 // 9145 //go:fix inline 9146 func (x Uint8x16) AsInt64x2() Int64x2 { 9147 return x.ReshapeToUint64s().BitsToInt64() 9148 } 9149 9150 // AsUint16x8 reinterprets the bits of a Uint8x16 vector as a Uint16x8 vector 9151 // 9152 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9153 // 9154 //go:fix inline 9155 func (x Uint8x16) AsUint16x8() Uint16x8 { 9156 return x.ReshapeToUint16s() 9157 } 9158 9159 // ReshapeToUint16s reinterprets the bits of a Uint8x16 vector as a Uint16x8 vector 9160 func (x Uint8x16) ReshapeToUint16s() Uint16x8 9161 9162 // AsUint32x4 reinterprets the bits of a Uint8x16 vector as a Uint32x4 vector 9163 // 9164 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9165 // 9166 //go:fix inline 9167 func (x Uint8x16) AsUint32x4() Uint32x4 { 9168 return x.ReshapeToUint32s() 9169 } 9170 9171 // ReshapeToUint32s reinterprets the bits of a Uint8x16 vector as a Uint32x4 vector 9172 func (x Uint8x16) ReshapeToUint32s() Uint32x4 9173 9174 // AsUint64x2 reinterprets the bits of a Uint8x16 vector as a Uint64x2 vector 9175 // 9176 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9177 // 9178 //go:fix inline 9179 func (x Uint8x16) AsUint64x2() Uint64x2 { 9180 return x.ReshapeToUint64s() 9181 } 9182 9183 // ReshapeToUint64s reinterprets the bits of a Uint8x16 vector as a Uint64x2 vector 9184 func (x Uint8x16) ReshapeToUint64s() Uint64x2 9185 9186 // AsFloat32x8 reinterprets the bits of a Uint8x32 vector as a Float32x8 vector 9187 // 9188 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9189 // 9190 //go:fix inline 9191 func (x Uint8x32) AsFloat32x8() Float32x8 { 9192 return x.ReshapeToUint32s().BitsToFloat32() 9193 } 9194 9195 // AsFloat64x4 reinterprets the bits of a Uint8x32 vector as a Float64x4 vector 9196 // 9197 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9198 // 9199 //go:fix inline 9200 func (x Uint8x32) AsFloat64x4() Float64x4 { 9201 return x.ReshapeToUint64s().BitsToFloat64() 9202 } 9203 9204 // AsInt8x32 reinterprets the bits of a Uint8x32 vector as a Int8x32 vector 9205 // 9206 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9207 // 9208 //go:fix inline 9209 func (x Uint8x32) AsInt8x32() Int8x32 { 9210 return x.BitsToInt8() 9211 } 9212 9213 // BitsToInt8 reinterprets the bits of a Uint8x32 vector as a Int8x32 vector 9214 func (x Uint8x32) BitsToInt8() Int8x32 9215 9216 // ConvertToInt8 converts a Uint8x32 vector to a Int8x32 vector 9217 func (x Uint8x32) ConvertToInt8() Int8x32 9218 9219 // ConvertToUint8 converts a Int8x32 vector to a Uint8x32 vector 9220 func (x Int8x32) ConvertToUint8() Uint8x32 9221 9222 // ToBits reinterprets the bits of a Int8x32 vector as a Uint8x32 vector 9223 func (x Int8x32) ToBits() Uint8x32 9224 9225 // AsInt16x16 reinterprets the bits of a Uint8x32 vector as a Int16x16 vector 9226 // 9227 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9228 // 9229 //go:fix inline 9230 func (x Uint8x32) AsInt16x16() Int16x16 { 9231 return x.ReshapeToUint16s().BitsToInt16() 9232 } 9233 9234 // AsInt32x8 reinterprets the bits of a Uint8x32 vector as a Int32x8 vector 9235 // 9236 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9237 // 9238 //go:fix inline 9239 func (x Uint8x32) AsInt32x8() Int32x8 { 9240 return x.ReshapeToUint32s().BitsToInt32() 9241 } 9242 9243 // AsInt64x4 reinterprets the bits of a Uint8x32 vector as a Int64x4 vector 9244 // 9245 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9246 // 9247 //go:fix inline 9248 func (x Uint8x32) AsInt64x4() Int64x4 { 9249 return x.ReshapeToUint64s().BitsToInt64() 9250 } 9251 9252 // AsUint16x16 reinterprets the bits of a Uint8x32 vector as a Uint16x16 vector 9253 // 9254 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9255 // 9256 //go:fix inline 9257 func (x Uint8x32) AsUint16x16() Uint16x16 { 9258 return x.ReshapeToUint16s() 9259 } 9260 9261 // ReshapeToUint16s reinterprets the bits of a Uint8x32 vector as a Uint16x16 vector 9262 func (x Uint8x32) ReshapeToUint16s() Uint16x16 9263 9264 // AsUint32x8 reinterprets the bits of a Uint8x32 vector as a Uint32x8 vector 9265 // 9266 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9267 // 9268 //go:fix inline 9269 func (x Uint8x32) AsUint32x8() Uint32x8 { 9270 return x.ReshapeToUint32s() 9271 } 9272 9273 // ReshapeToUint32s reinterprets the bits of a Uint8x32 vector as a Uint32x8 vector 9274 func (x Uint8x32) ReshapeToUint32s() Uint32x8 9275 9276 // AsUint64x4 reinterprets the bits of a Uint8x32 vector as a Uint64x4 vector 9277 // 9278 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9279 // 9280 //go:fix inline 9281 func (x Uint8x32) AsUint64x4() Uint64x4 { 9282 return x.ReshapeToUint64s() 9283 } 9284 9285 // ReshapeToUint64s reinterprets the bits of a Uint8x32 vector as a Uint64x4 vector 9286 func (x Uint8x32) ReshapeToUint64s() Uint64x4 9287 9288 // AsFloat32x16 reinterprets the bits of a Uint8x64 vector as a Float32x16 vector 9289 // 9290 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9291 // 9292 //go:fix inline 9293 func (x Uint8x64) AsFloat32x16() Float32x16 { 9294 return x.ReshapeToUint32s().BitsToFloat32() 9295 } 9296 9297 // AsFloat64x8 reinterprets the bits of a Uint8x64 vector as a Float64x8 vector 9298 // 9299 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9300 // 9301 //go:fix inline 9302 func (x Uint8x64) AsFloat64x8() Float64x8 { 9303 return x.ReshapeToUint64s().BitsToFloat64() 9304 } 9305 9306 // AsInt8x64 reinterprets the bits of a Uint8x64 vector as a Int8x64 vector 9307 // 9308 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9309 // 9310 //go:fix inline 9311 func (x Uint8x64) AsInt8x64() Int8x64 { 9312 return x.BitsToInt8() 9313 } 9314 9315 // BitsToInt8 reinterprets the bits of a Uint8x64 vector as a Int8x64 vector 9316 func (x Uint8x64) BitsToInt8() Int8x64 9317 9318 // ConvertToInt8 converts a Uint8x64 vector to a Int8x64 vector 9319 func (x Uint8x64) ConvertToInt8() Int8x64 9320 9321 // ConvertToUint8 converts a Int8x64 vector to a Uint8x64 vector 9322 func (x Int8x64) ConvertToUint8() Uint8x64 9323 9324 // ToBits reinterprets the bits of a Int8x64 vector as a Uint8x64 vector 9325 func (x Int8x64) ToBits() Uint8x64 9326 9327 // AsInt16x32 reinterprets the bits of a Uint8x64 vector as a Int16x32 vector 9328 // 9329 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9330 // 9331 //go:fix inline 9332 func (x Uint8x64) AsInt16x32() Int16x32 { 9333 return x.ReshapeToUint16s().BitsToInt16() 9334 } 9335 9336 // AsInt32x16 reinterprets the bits of a Uint8x64 vector as a Int32x16 vector 9337 // 9338 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9339 // 9340 //go:fix inline 9341 func (x Uint8x64) AsInt32x16() Int32x16 { 9342 return x.ReshapeToUint32s().BitsToInt32() 9343 } 9344 9345 // AsInt64x8 reinterprets the bits of a Uint8x64 vector as a Int64x8 vector 9346 // 9347 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9348 // 9349 //go:fix inline 9350 func (x Uint8x64) AsInt64x8() Int64x8 { 9351 return x.ReshapeToUint64s().BitsToInt64() 9352 } 9353 9354 // AsUint16x32 reinterprets the bits of a Uint8x64 vector as a Uint16x32 vector 9355 // 9356 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9357 // 9358 //go:fix inline 9359 func (x Uint8x64) AsUint16x32() Uint16x32 { 9360 return x.ReshapeToUint16s() 9361 } 9362 9363 // ReshapeToUint16s reinterprets the bits of a Uint8x64 vector as a Uint16x32 vector 9364 func (x Uint8x64) ReshapeToUint16s() Uint16x32 9365 9366 // AsUint32x16 reinterprets the bits of a Uint8x64 vector as a Uint32x16 vector 9367 // 9368 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9369 // 9370 //go:fix inline 9371 func (x Uint8x64) AsUint32x16() Uint32x16 { 9372 return x.ReshapeToUint32s() 9373 } 9374 9375 // ReshapeToUint32s reinterprets the bits of a Uint8x64 vector as a Uint32x16 vector 9376 func (x Uint8x64) ReshapeToUint32s() Uint32x16 9377 9378 // AsUint64x8 reinterprets the bits of a Uint8x64 vector as a Uint64x8 vector 9379 // 9380 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9381 // 9382 //go:fix inline 9383 func (x Uint8x64) AsUint64x8() Uint64x8 { 9384 return x.ReshapeToUint64s() 9385 } 9386 9387 // ReshapeToUint64s reinterprets the bits of a Uint8x64 vector as a Uint64x8 vector 9388 func (x Uint8x64) ReshapeToUint64s() Uint64x8 9389 9390 // AsFloat32x4 reinterprets the bits of a Uint16x8 vector as a Float32x4 vector 9391 // 9392 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9393 // 9394 //go:fix inline 9395 func (x Uint16x8) AsFloat32x4() Float32x4 { 9396 return x.ReshapeToUint32s().BitsToFloat32() 9397 } 9398 9399 // AsFloat64x2 reinterprets the bits of a Uint16x8 vector as a Float64x2 vector 9400 // 9401 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9402 // 9403 //go:fix inline 9404 func (x Uint16x8) AsFloat64x2() Float64x2 { 9405 return x.ReshapeToUint64s().BitsToFloat64() 9406 } 9407 9408 // AsInt8x16 reinterprets the bits of a Uint16x8 vector as a Int8x16 vector 9409 // 9410 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9411 // 9412 //go:fix inline 9413 func (x Uint16x8) AsInt8x16() Int8x16 { 9414 return x.ReshapeToUint8s().BitsToInt8() 9415 } 9416 9417 // AsInt16x8 reinterprets the bits of a Uint16x8 vector as a Int16x8 vector 9418 // 9419 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9420 // 9421 //go:fix inline 9422 func (x Uint16x8) AsInt16x8() Int16x8 { 9423 return x.BitsToInt16() 9424 } 9425 9426 // BitsToInt16 reinterprets the bits of a Uint16x8 vector as a Int16x8 vector 9427 func (x Uint16x8) BitsToInt16() Int16x8 9428 9429 // ConvertToInt16 converts a Uint16x8 vector to a Int16x8 vector 9430 func (x Uint16x8) ConvertToInt16() Int16x8 9431 9432 // ConvertToUint16 converts a Int16x8 vector to a Uint16x8 vector 9433 func (x Int16x8) ConvertToUint16() Uint16x8 9434 9435 // ToBits reinterprets the bits of a Int16x8 vector as a Uint16x8 vector 9436 func (x Int16x8) ToBits() Uint16x8 9437 9438 // AsInt32x4 reinterprets the bits of a Uint16x8 vector as a Int32x4 vector 9439 // 9440 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9441 // 9442 //go:fix inline 9443 func (x Uint16x8) AsInt32x4() Int32x4 { 9444 return x.ReshapeToUint32s().BitsToInt32() 9445 } 9446 9447 // AsInt64x2 reinterprets the bits of a Uint16x8 vector as a Int64x2 vector 9448 // 9449 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9450 // 9451 //go:fix inline 9452 func (x Uint16x8) AsInt64x2() Int64x2 { 9453 return x.ReshapeToUint64s().BitsToInt64() 9454 } 9455 9456 // AsUint8x16 reinterprets the bits of a Uint16x8 vector as a Uint8x16 vector 9457 // 9458 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9459 // 9460 //go:fix inline 9461 func (x Uint16x8) AsUint8x16() Uint8x16 { 9462 return x.ReshapeToUint8s() 9463 } 9464 9465 // ReshapeToUint8s reinterprets the bits of a Uint16x8 vector as a Uint8x16 vector 9466 func (x Uint16x8) ReshapeToUint8s() Uint8x16 9467 9468 // AsUint32x4 reinterprets the bits of a Uint16x8 vector as a Uint32x4 vector 9469 // 9470 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9471 // 9472 //go:fix inline 9473 func (x Uint16x8) AsUint32x4() Uint32x4 { 9474 return x.ReshapeToUint32s() 9475 } 9476 9477 // ReshapeToUint32s reinterprets the bits of a Uint16x8 vector as a Uint32x4 vector 9478 func (x Uint16x8) ReshapeToUint32s() Uint32x4 9479 9480 // AsUint64x2 reinterprets the bits of a Uint16x8 vector as a Uint64x2 vector 9481 // 9482 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9483 // 9484 //go:fix inline 9485 func (x Uint16x8) AsUint64x2() Uint64x2 { 9486 return x.ReshapeToUint64s() 9487 } 9488 9489 // ReshapeToUint64s reinterprets the bits of a Uint16x8 vector as a Uint64x2 vector 9490 func (x Uint16x8) ReshapeToUint64s() Uint64x2 9491 9492 // AsFloat32x8 reinterprets the bits of a Uint16x16 vector as a Float32x8 vector 9493 // 9494 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9495 // 9496 //go:fix inline 9497 func (x Uint16x16) AsFloat32x8() Float32x8 { 9498 return x.ReshapeToUint32s().BitsToFloat32() 9499 } 9500 9501 // AsFloat64x4 reinterprets the bits of a Uint16x16 vector as a Float64x4 vector 9502 // 9503 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9504 // 9505 //go:fix inline 9506 func (x Uint16x16) AsFloat64x4() Float64x4 { 9507 return x.ReshapeToUint64s().BitsToFloat64() 9508 } 9509 9510 // AsInt8x32 reinterprets the bits of a Uint16x16 vector as a Int8x32 vector 9511 // 9512 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9513 // 9514 //go:fix inline 9515 func (x Uint16x16) AsInt8x32() Int8x32 { 9516 return x.ReshapeToUint8s().BitsToInt8() 9517 } 9518 9519 // AsInt16x16 reinterprets the bits of a Uint16x16 vector as a Int16x16 vector 9520 // 9521 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9522 // 9523 //go:fix inline 9524 func (x Uint16x16) AsInt16x16() Int16x16 { 9525 return x.BitsToInt16() 9526 } 9527 9528 // BitsToInt16 reinterprets the bits of a Uint16x16 vector as a Int16x16 vector 9529 func (x Uint16x16) BitsToInt16() Int16x16 9530 9531 // ConvertToInt16 converts a Uint16x16 vector to a Int16x16 vector 9532 func (x Uint16x16) ConvertToInt16() Int16x16 9533 9534 // ConvertToUint16 converts a Int16x16 vector to a Uint16x16 vector 9535 func (x Int16x16) ConvertToUint16() Uint16x16 9536 9537 // ToBits reinterprets the bits of a Int16x16 vector as a Uint16x16 vector 9538 func (x Int16x16) ToBits() Uint16x16 9539 9540 // AsInt32x8 reinterprets the bits of a Uint16x16 vector as a Int32x8 vector 9541 // 9542 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9543 // 9544 //go:fix inline 9545 func (x Uint16x16) AsInt32x8() Int32x8 { 9546 return x.ReshapeToUint32s().BitsToInt32() 9547 } 9548 9549 // AsInt64x4 reinterprets the bits of a Uint16x16 vector as a Int64x4 vector 9550 // 9551 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9552 // 9553 //go:fix inline 9554 func (x Uint16x16) AsInt64x4() Int64x4 { 9555 return x.ReshapeToUint64s().BitsToInt64() 9556 } 9557 9558 // AsUint8x32 reinterprets the bits of a Uint16x16 vector as a Uint8x32 vector 9559 // 9560 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9561 // 9562 //go:fix inline 9563 func (x Uint16x16) AsUint8x32() Uint8x32 { 9564 return x.ReshapeToUint8s() 9565 } 9566 9567 // ReshapeToUint8s reinterprets the bits of a Uint16x16 vector as a Uint8x32 vector 9568 func (x Uint16x16) ReshapeToUint8s() Uint8x32 9569 9570 // AsUint32x8 reinterprets the bits of a Uint16x16 vector as a Uint32x8 vector 9571 // 9572 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9573 // 9574 //go:fix inline 9575 func (x Uint16x16) AsUint32x8() Uint32x8 { 9576 return x.ReshapeToUint32s() 9577 } 9578 9579 // ReshapeToUint32s reinterprets the bits of a Uint16x16 vector as a Uint32x8 vector 9580 func (x Uint16x16) ReshapeToUint32s() Uint32x8 9581 9582 // AsUint64x4 reinterprets the bits of a Uint16x16 vector as a Uint64x4 vector 9583 // 9584 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9585 // 9586 //go:fix inline 9587 func (x Uint16x16) AsUint64x4() Uint64x4 { 9588 return x.ReshapeToUint64s() 9589 } 9590 9591 // ReshapeToUint64s reinterprets the bits of a Uint16x16 vector as a Uint64x4 vector 9592 func (x Uint16x16) ReshapeToUint64s() Uint64x4 9593 9594 // AsFloat32x16 reinterprets the bits of a Uint16x32 vector as a Float32x16 vector 9595 // 9596 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9597 // 9598 //go:fix inline 9599 func (x Uint16x32) AsFloat32x16() Float32x16 { 9600 return x.ReshapeToUint32s().BitsToFloat32() 9601 } 9602 9603 // AsFloat64x8 reinterprets the bits of a Uint16x32 vector as a Float64x8 vector 9604 // 9605 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9606 // 9607 //go:fix inline 9608 func (x Uint16x32) AsFloat64x8() Float64x8 { 9609 return x.ReshapeToUint64s().BitsToFloat64() 9610 } 9611 9612 // AsInt8x64 reinterprets the bits of a Uint16x32 vector as a Int8x64 vector 9613 // 9614 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9615 // 9616 //go:fix inline 9617 func (x Uint16x32) AsInt8x64() Int8x64 { 9618 return x.ReshapeToUint8s().BitsToInt8() 9619 } 9620 9621 // AsInt16x32 reinterprets the bits of a Uint16x32 vector as a Int16x32 vector 9622 // 9623 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9624 // 9625 //go:fix inline 9626 func (x Uint16x32) AsInt16x32() Int16x32 { 9627 return x.BitsToInt16() 9628 } 9629 9630 // BitsToInt16 reinterprets the bits of a Uint16x32 vector as a Int16x32 vector 9631 func (x Uint16x32) BitsToInt16() Int16x32 9632 9633 // ConvertToInt16 converts a Uint16x32 vector to a Int16x32 vector 9634 func (x Uint16x32) ConvertToInt16() Int16x32 9635 9636 // ConvertToUint16 converts a Int16x32 vector to a Uint16x32 vector 9637 func (x Int16x32) ConvertToUint16() Uint16x32 9638 9639 // ToBits reinterprets the bits of a Int16x32 vector as a Uint16x32 vector 9640 func (x Int16x32) ToBits() Uint16x32 9641 9642 // AsInt32x16 reinterprets the bits of a Uint16x32 vector as a Int32x16 vector 9643 // 9644 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9645 // 9646 //go:fix inline 9647 func (x Uint16x32) AsInt32x16() Int32x16 { 9648 return x.ReshapeToUint32s().BitsToInt32() 9649 } 9650 9651 // AsInt64x8 reinterprets the bits of a Uint16x32 vector as a Int64x8 vector 9652 // 9653 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9654 // 9655 //go:fix inline 9656 func (x Uint16x32) AsInt64x8() Int64x8 { 9657 return x.ReshapeToUint64s().BitsToInt64() 9658 } 9659 9660 // AsUint8x64 reinterprets the bits of a Uint16x32 vector as a Uint8x64 vector 9661 // 9662 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9663 // 9664 //go:fix inline 9665 func (x Uint16x32) AsUint8x64() Uint8x64 { 9666 return x.ReshapeToUint8s() 9667 } 9668 9669 // ReshapeToUint8s reinterprets the bits of a Uint16x32 vector as a Uint8x64 vector 9670 func (x Uint16x32) ReshapeToUint8s() Uint8x64 9671 9672 // AsUint32x16 reinterprets the bits of a Uint16x32 vector as a Uint32x16 vector 9673 // 9674 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9675 // 9676 //go:fix inline 9677 func (x Uint16x32) AsUint32x16() Uint32x16 { 9678 return x.ReshapeToUint32s() 9679 } 9680 9681 // ReshapeToUint32s reinterprets the bits of a Uint16x32 vector as a Uint32x16 vector 9682 func (x Uint16x32) ReshapeToUint32s() Uint32x16 9683 9684 // AsUint64x8 reinterprets the bits of a Uint16x32 vector as a Uint64x8 vector 9685 // 9686 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9687 // 9688 //go:fix inline 9689 func (x Uint16x32) AsUint64x8() Uint64x8 { 9690 return x.ReshapeToUint64s() 9691 } 9692 9693 // ReshapeToUint64s reinterprets the bits of a Uint16x32 vector as a Uint64x8 vector 9694 func (x Uint16x32) ReshapeToUint64s() Uint64x8 9695 9696 // AsFloat32x4 reinterprets the bits of a Uint32x4 vector as a Float32x4 vector 9697 // 9698 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9699 // 9700 //go:fix inline 9701 func (x Uint32x4) AsFloat32x4() Float32x4 { 9702 return x.BitsToFloat32() 9703 } 9704 9705 // BitsToFloat32 reinterprets the bits of a Uint32x4 vector as a Float32x4 vector 9706 func (x Uint32x4) BitsToFloat32() Float32x4 9707 9708 // ToBits reinterprets the bits of a Float32x4 vector as a Uint32x4 vector 9709 func (x Float32x4) ToBits() Uint32x4 9710 9711 // AsFloat64x2 reinterprets the bits of a Uint32x4 vector as a Float64x2 vector 9712 // 9713 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9714 // 9715 //go:fix inline 9716 func (x Uint32x4) AsFloat64x2() Float64x2 { 9717 return x.ReshapeToUint64s().BitsToFloat64() 9718 } 9719 9720 // AsInt8x16 reinterprets the bits of a Uint32x4 vector as a Int8x16 vector 9721 // 9722 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9723 // 9724 //go:fix inline 9725 func (x Uint32x4) AsInt8x16() Int8x16 { 9726 return x.ReshapeToUint8s().BitsToInt8() 9727 } 9728 9729 // AsInt16x8 reinterprets the bits of a Uint32x4 vector as a Int16x8 vector 9730 // 9731 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9732 // 9733 //go:fix inline 9734 func (x Uint32x4) AsInt16x8() Int16x8 { 9735 return x.ReshapeToUint16s().BitsToInt16() 9736 } 9737 9738 // AsInt32x4 reinterprets the bits of a Uint32x4 vector as a Int32x4 vector 9739 // 9740 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9741 // 9742 //go:fix inline 9743 func (x Uint32x4) AsInt32x4() Int32x4 { 9744 return x.BitsToInt32() 9745 } 9746 9747 // BitsToInt32 reinterprets the bits of a Uint32x4 vector as a Int32x4 vector 9748 func (x Uint32x4) BitsToInt32() Int32x4 9749 9750 // ConvertToInt32 converts a Uint32x4 vector to a Int32x4 vector 9751 func (x Uint32x4) ConvertToInt32() Int32x4 9752 9753 // ConvertToUint32 converts a Int32x4 vector to a Uint32x4 vector 9754 func (x Int32x4) ConvertToUint32() Uint32x4 9755 9756 // ToBits reinterprets the bits of a Int32x4 vector as a Uint32x4 vector 9757 func (x Int32x4) ToBits() Uint32x4 9758 9759 // AsInt64x2 reinterprets the bits of a Uint32x4 vector as a Int64x2 vector 9760 // 9761 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9762 // 9763 //go:fix inline 9764 func (x Uint32x4) AsInt64x2() Int64x2 { 9765 return x.ReshapeToUint64s().BitsToInt64() 9766 } 9767 9768 // AsUint8x16 reinterprets the bits of a Uint32x4 vector as a Uint8x16 vector 9769 // 9770 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9771 // 9772 //go:fix inline 9773 func (x Uint32x4) AsUint8x16() Uint8x16 { 9774 return x.ReshapeToUint8s() 9775 } 9776 9777 // ReshapeToUint8s reinterprets the bits of a Uint32x4 vector as a Uint8x16 vector 9778 func (x Uint32x4) ReshapeToUint8s() Uint8x16 9779 9780 // AsUint16x8 reinterprets the bits of a Uint32x4 vector as a Uint16x8 vector 9781 // 9782 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9783 // 9784 //go:fix inline 9785 func (x Uint32x4) AsUint16x8() Uint16x8 { 9786 return x.ReshapeToUint16s() 9787 } 9788 9789 // ReshapeToUint16s reinterprets the bits of a Uint32x4 vector as a Uint16x8 vector 9790 func (x Uint32x4) ReshapeToUint16s() Uint16x8 9791 9792 // AsUint64x2 reinterprets the bits of a Uint32x4 vector as a Uint64x2 vector 9793 // 9794 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9795 // 9796 //go:fix inline 9797 func (x Uint32x4) AsUint64x2() Uint64x2 { 9798 return x.ReshapeToUint64s() 9799 } 9800 9801 // ReshapeToUint64s reinterprets the bits of a Uint32x4 vector as a Uint64x2 vector 9802 func (x Uint32x4) ReshapeToUint64s() Uint64x2 9803 9804 // AsFloat32x8 reinterprets the bits of a Uint32x8 vector as a Float32x8 vector 9805 // 9806 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9807 // 9808 //go:fix inline 9809 func (x Uint32x8) AsFloat32x8() Float32x8 { 9810 return x.BitsToFloat32() 9811 } 9812 9813 // BitsToFloat32 reinterprets the bits of a Uint32x8 vector as a Float32x8 vector 9814 func (x Uint32x8) BitsToFloat32() Float32x8 9815 9816 // ToBits reinterprets the bits of a Float32x8 vector as a Uint32x8 vector 9817 func (x Float32x8) ToBits() Uint32x8 9818 9819 // AsFloat64x4 reinterprets the bits of a Uint32x8 vector as a Float64x4 vector 9820 // 9821 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9822 // 9823 //go:fix inline 9824 func (x Uint32x8) AsFloat64x4() Float64x4 { 9825 return x.ReshapeToUint64s().BitsToFloat64() 9826 } 9827 9828 // AsInt8x32 reinterprets the bits of a Uint32x8 vector as a Int8x32 vector 9829 // 9830 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9831 // 9832 //go:fix inline 9833 func (x Uint32x8) AsInt8x32() Int8x32 { 9834 return x.ReshapeToUint8s().BitsToInt8() 9835 } 9836 9837 // AsInt16x16 reinterprets the bits of a Uint32x8 vector as a Int16x16 vector 9838 // 9839 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9840 // 9841 //go:fix inline 9842 func (x Uint32x8) AsInt16x16() Int16x16 { 9843 return x.ReshapeToUint16s().BitsToInt16() 9844 } 9845 9846 // AsInt32x8 reinterprets the bits of a Uint32x8 vector as a Int32x8 vector 9847 // 9848 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9849 // 9850 //go:fix inline 9851 func (x Uint32x8) AsInt32x8() Int32x8 { 9852 return x.BitsToInt32() 9853 } 9854 9855 // BitsToInt32 reinterprets the bits of a Uint32x8 vector as a Int32x8 vector 9856 func (x Uint32x8) BitsToInt32() Int32x8 9857 9858 // ConvertToInt32 converts a Uint32x8 vector to a Int32x8 vector 9859 func (x Uint32x8) ConvertToInt32() Int32x8 9860 9861 // ConvertToUint32 converts a Int32x8 vector to a Uint32x8 vector 9862 func (x Int32x8) ConvertToUint32() Uint32x8 9863 9864 // ToBits reinterprets the bits of a Int32x8 vector as a Uint32x8 vector 9865 func (x Int32x8) ToBits() Uint32x8 9866 9867 // AsInt64x4 reinterprets the bits of a Uint32x8 vector as a Int64x4 vector 9868 // 9869 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9870 // 9871 //go:fix inline 9872 func (x Uint32x8) AsInt64x4() Int64x4 { 9873 return x.ReshapeToUint64s().BitsToInt64() 9874 } 9875 9876 // AsUint8x32 reinterprets the bits of a Uint32x8 vector as a Uint8x32 vector 9877 // 9878 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9879 // 9880 //go:fix inline 9881 func (x Uint32x8) AsUint8x32() Uint8x32 { 9882 return x.ReshapeToUint8s() 9883 } 9884 9885 // ReshapeToUint8s reinterprets the bits of a Uint32x8 vector as a Uint8x32 vector 9886 func (x Uint32x8) ReshapeToUint8s() Uint8x32 9887 9888 // AsUint16x16 reinterprets the bits of a Uint32x8 vector as a Uint16x16 vector 9889 // 9890 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9891 // 9892 //go:fix inline 9893 func (x Uint32x8) AsUint16x16() Uint16x16 { 9894 return x.ReshapeToUint16s() 9895 } 9896 9897 // ReshapeToUint16s reinterprets the bits of a Uint32x8 vector as a Uint16x16 vector 9898 func (x Uint32x8) ReshapeToUint16s() Uint16x16 9899 9900 // AsUint64x4 reinterprets the bits of a Uint32x8 vector as a Uint64x4 vector 9901 // 9902 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9903 // 9904 //go:fix inline 9905 func (x Uint32x8) AsUint64x4() Uint64x4 { 9906 return x.ReshapeToUint64s() 9907 } 9908 9909 // ReshapeToUint64s reinterprets the bits of a Uint32x8 vector as a Uint64x4 vector 9910 func (x Uint32x8) ReshapeToUint64s() Uint64x4 9911 9912 // AsFloat32x16 reinterprets the bits of a Uint32x16 vector as a Float32x16 vector 9913 // 9914 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9915 // 9916 //go:fix inline 9917 func (x Uint32x16) AsFloat32x16() Float32x16 { 9918 return x.BitsToFloat32() 9919 } 9920 9921 // BitsToFloat32 reinterprets the bits of a Uint32x16 vector as a Float32x16 vector 9922 func (x Uint32x16) BitsToFloat32() Float32x16 9923 9924 // ToBits reinterprets the bits of a Float32x16 vector as a Uint32x16 vector 9925 func (x Float32x16) ToBits() Uint32x16 9926 9927 // AsFloat64x8 reinterprets the bits of a Uint32x16 vector as a Float64x8 vector 9928 // 9929 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9930 // 9931 //go:fix inline 9932 func (x Uint32x16) AsFloat64x8() Float64x8 { 9933 return x.ReshapeToUint64s().BitsToFloat64() 9934 } 9935 9936 // AsInt8x64 reinterprets the bits of a Uint32x16 vector as a Int8x64 vector 9937 // 9938 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9939 // 9940 //go:fix inline 9941 func (x Uint32x16) AsInt8x64() Int8x64 { 9942 return x.ReshapeToUint8s().BitsToInt8() 9943 } 9944 9945 // AsInt16x32 reinterprets the bits of a Uint32x16 vector as a Int16x32 vector 9946 // 9947 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9948 // 9949 //go:fix inline 9950 func (x Uint32x16) AsInt16x32() Int16x32 { 9951 return x.ReshapeToUint16s().BitsToInt16() 9952 } 9953 9954 // AsInt32x16 reinterprets the bits of a Uint32x16 vector as a Int32x16 vector 9955 // 9956 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9957 // 9958 //go:fix inline 9959 func (x Uint32x16) AsInt32x16() Int32x16 { 9960 return x.BitsToInt32() 9961 } 9962 9963 // BitsToInt32 reinterprets the bits of a Uint32x16 vector as a Int32x16 vector 9964 func (x Uint32x16) BitsToInt32() Int32x16 9965 9966 // ConvertToInt32 converts a Uint32x16 vector to a Int32x16 vector 9967 func (x Uint32x16) ConvertToInt32() Int32x16 9968 9969 // ConvertToUint32 converts a Int32x16 vector to a Uint32x16 vector 9970 func (x Int32x16) ConvertToUint32() Uint32x16 9971 9972 // ToBits reinterprets the bits of a Int32x16 vector as a Uint32x16 vector 9973 func (x Int32x16) ToBits() Uint32x16 9974 9975 // AsInt64x8 reinterprets the bits of a Uint32x16 vector as a Int64x8 vector 9976 // 9977 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9978 // 9979 //go:fix inline 9980 func (x Uint32x16) AsInt64x8() Int64x8 { 9981 return x.ReshapeToUint64s().BitsToInt64() 9982 } 9983 9984 // AsUint8x64 reinterprets the bits of a Uint32x16 vector as a Uint8x64 vector 9985 // 9986 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9987 // 9988 //go:fix inline 9989 func (x Uint32x16) AsUint8x64() Uint8x64 { 9990 return x.ReshapeToUint8s() 9991 } 9992 9993 // ReshapeToUint8s reinterprets the bits of a Uint32x16 vector as a Uint8x64 vector 9994 func (x Uint32x16) ReshapeToUint8s() Uint8x64 9995 9996 // AsUint16x32 reinterprets the bits of a Uint32x16 vector as a Uint16x32 vector 9997 // 9998 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 9999 // 10000 //go:fix inline 10001 func (x Uint32x16) AsUint16x32() Uint16x32 { 10002 return x.ReshapeToUint16s() 10003 } 10004 10005 // ReshapeToUint16s reinterprets the bits of a Uint32x16 vector as a Uint16x32 vector 10006 func (x Uint32x16) ReshapeToUint16s() Uint16x32 10007 10008 // AsUint64x8 reinterprets the bits of a Uint32x16 vector as a Uint64x8 vector 10009 // 10010 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10011 // 10012 //go:fix inline 10013 func (x Uint32x16) AsUint64x8() Uint64x8 { 10014 return x.ReshapeToUint64s() 10015 } 10016 10017 // ReshapeToUint64s reinterprets the bits of a Uint32x16 vector as a Uint64x8 vector 10018 func (x Uint32x16) ReshapeToUint64s() Uint64x8 10019 10020 // AsFloat32x4 reinterprets the bits of a Uint64x2 vector as a Float32x4 vector 10021 // 10022 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10023 // 10024 //go:fix inline 10025 func (x Uint64x2) AsFloat32x4() Float32x4 { 10026 return x.ReshapeToUint32s().BitsToFloat32() 10027 } 10028 10029 // AsFloat64x2 reinterprets the bits of a Uint64x2 vector as a Float64x2 vector 10030 // 10031 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10032 // 10033 //go:fix inline 10034 func (x Uint64x2) AsFloat64x2() Float64x2 { 10035 return x.BitsToFloat64() 10036 } 10037 10038 // BitsToFloat64 reinterprets the bits of a Uint64x2 vector as a Float64x2 vector 10039 func (x Uint64x2) BitsToFloat64() Float64x2 10040 10041 // ToBits reinterprets the bits of a Float64x2 vector as a Uint64x2 vector 10042 func (x Float64x2) ToBits() Uint64x2 10043 10044 // AsInt8x16 reinterprets the bits of a Uint64x2 vector as a Int8x16 vector 10045 // 10046 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10047 // 10048 //go:fix inline 10049 func (x Uint64x2) AsInt8x16() Int8x16 { 10050 return x.ReshapeToUint8s().BitsToInt8() 10051 } 10052 10053 // AsInt16x8 reinterprets the bits of a Uint64x2 vector as a Int16x8 vector 10054 // 10055 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10056 // 10057 //go:fix inline 10058 func (x Uint64x2) AsInt16x8() Int16x8 { 10059 return x.ReshapeToUint16s().BitsToInt16() 10060 } 10061 10062 // AsInt32x4 reinterprets the bits of a Uint64x2 vector as a Int32x4 vector 10063 // 10064 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10065 // 10066 //go:fix inline 10067 func (x Uint64x2) AsInt32x4() Int32x4 { 10068 return x.ReshapeToUint32s().BitsToInt32() 10069 } 10070 10071 // AsInt64x2 reinterprets the bits of a Uint64x2 vector as a Int64x2 vector 10072 // 10073 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10074 // 10075 //go:fix inline 10076 func (x Uint64x2) AsInt64x2() Int64x2 { 10077 return x.BitsToInt64() 10078 } 10079 10080 // BitsToInt64 reinterprets the bits of a Uint64x2 vector as a Int64x2 vector 10081 func (x Uint64x2) BitsToInt64() Int64x2 10082 10083 // ConvertToInt64 converts a Uint64x2 vector to a Int64x2 vector 10084 func (x Uint64x2) ConvertToInt64() Int64x2 10085 10086 // ConvertToUint64 converts a Int64x2 vector to a Uint64x2 vector 10087 func (x Int64x2) ConvertToUint64() Uint64x2 10088 10089 // ToBits reinterprets the bits of a Int64x2 vector as a Uint64x2 vector 10090 func (x Int64x2) ToBits() Uint64x2 10091 10092 // AsUint8x16 reinterprets the bits of a Uint64x2 vector as a Uint8x16 vector 10093 // 10094 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10095 // 10096 //go:fix inline 10097 func (x Uint64x2) AsUint8x16() Uint8x16 { 10098 return x.ReshapeToUint8s() 10099 } 10100 10101 // ReshapeToUint8s reinterprets the bits of a Uint64x2 vector as a Uint8x16 vector 10102 func (x Uint64x2) ReshapeToUint8s() Uint8x16 10103 10104 // AsUint16x8 reinterprets the bits of a Uint64x2 vector as a Uint16x8 vector 10105 // 10106 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10107 // 10108 //go:fix inline 10109 func (x Uint64x2) AsUint16x8() Uint16x8 { 10110 return x.ReshapeToUint16s() 10111 } 10112 10113 // ReshapeToUint16s reinterprets the bits of a Uint64x2 vector as a Uint16x8 vector 10114 func (x Uint64x2) ReshapeToUint16s() Uint16x8 10115 10116 // AsUint32x4 reinterprets the bits of a Uint64x2 vector as a Uint32x4 vector 10117 // 10118 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10119 // 10120 //go:fix inline 10121 func (x Uint64x2) AsUint32x4() Uint32x4 { 10122 return x.ReshapeToUint32s() 10123 } 10124 10125 // ReshapeToUint32s reinterprets the bits of a Uint64x2 vector as a Uint32x4 vector 10126 func (x Uint64x2) ReshapeToUint32s() Uint32x4 10127 10128 // AsFloat32x8 reinterprets the bits of a Uint64x4 vector as a Float32x8 vector 10129 // 10130 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10131 // 10132 //go:fix inline 10133 func (x Uint64x4) AsFloat32x8() Float32x8 { 10134 return x.ReshapeToUint32s().BitsToFloat32() 10135 } 10136 10137 // AsFloat64x4 reinterprets the bits of a Uint64x4 vector as a Float64x4 vector 10138 // 10139 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10140 // 10141 //go:fix inline 10142 func (x Uint64x4) AsFloat64x4() Float64x4 { 10143 return x.BitsToFloat64() 10144 } 10145 10146 // BitsToFloat64 reinterprets the bits of a Uint64x4 vector as a Float64x4 vector 10147 func (x Uint64x4) BitsToFloat64() Float64x4 10148 10149 // ToBits reinterprets the bits of a Float64x4 vector as a Uint64x4 vector 10150 func (x Float64x4) ToBits() Uint64x4 10151 10152 // AsInt8x32 reinterprets the bits of a Uint64x4 vector as a Int8x32 vector 10153 // 10154 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10155 // 10156 //go:fix inline 10157 func (x Uint64x4) AsInt8x32() Int8x32 { 10158 return x.ReshapeToUint8s().BitsToInt8() 10159 } 10160 10161 // AsInt16x16 reinterprets the bits of a Uint64x4 vector as a Int16x16 vector 10162 // 10163 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10164 // 10165 //go:fix inline 10166 func (x Uint64x4) AsInt16x16() Int16x16 { 10167 return x.ReshapeToUint16s().BitsToInt16() 10168 } 10169 10170 // AsInt32x8 reinterprets the bits of a Uint64x4 vector as a Int32x8 vector 10171 // 10172 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10173 // 10174 //go:fix inline 10175 func (x Uint64x4) AsInt32x8() Int32x8 { 10176 return x.ReshapeToUint32s().BitsToInt32() 10177 } 10178 10179 // AsInt64x4 reinterprets the bits of a Uint64x4 vector as a Int64x4 vector 10180 // 10181 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10182 // 10183 //go:fix inline 10184 func (x Uint64x4) AsInt64x4() Int64x4 { 10185 return x.BitsToInt64() 10186 } 10187 10188 // BitsToInt64 reinterprets the bits of a Uint64x4 vector as a Int64x4 vector 10189 func (x Uint64x4) BitsToInt64() Int64x4 10190 10191 // ConvertToInt64 converts a Uint64x4 vector to a Int64x4 vector 10192 func (x Uint64x4) ConvertToInt64() Int64x4 10193 10194 // ConvertToUint64 converts a Int64x4 vector to a Uint64x4 vector 10195 func (x Int64x4) ConvertToUint64() Uint64x4 10196 10197 // ToBits reinterprets the bits of a Int64x4 vector as a Uint64x4 vector 10198 func (x Int64x4) ToBits() Uint64x4 10199 10200 // AsUint8x32 reinterprets the bits of a Uint64x4 vector as a Uint8x32 vector 10201 // 10202 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10203 // 10204 //go:fix inline 10205 func (x Uint64x4) AsUint8x32() Uint8x32 { 10206 return x.ReshapeToUint8s() 10207 } 10208 10209 // ReshapeToUint8s reinterprets the bits of a Uint64x4 vector as a Uint8x32 vector 10210 func (x Uint64x4) ReshapeToUint8s() Uint8x32 10211 10212 // AsUint16x16 reinterprets the bits of a Uint64x4 vector as a Uint16x16 vector 10213 // 10214 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10215 // 10216 //go:fix inline 10217 func (x Uint64x4) AsUint16x16() Uint16x16 { 10218 return x.ReshapeToUint16s() 10219 } 10220 10221 // ReshapeToUint16s reinterprets the bits of a Uint64x4 vector as a Uint16x16 vector 10222 func (x Uint64x4) ReshapeToUint16s() Uint16x16 10223 10224 // AsUint32x8 reinterprets the bits of a Uint64x4 vector as a Uint32x8 vector 10225 // 10226 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10227 // 10228 //go:fix inline 10229 func (x Uint64x4) AsUint32x8() Uint32x8 { 10230 return x.ReshapeToUint32s() 10231 } 10232 10233 // ReshapeToUint32s reinterprets the bits of a Uint64x4 vector as a Uint32x8 vector 10234 func (x Uint64x4) ReshapeToUint32s() Uint32x8 10235 10236 // AsFloat32x16 reinterprets the bits of a Uint64x8 vector as a Float32x16 vector 10237 // 10238 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10239 // 10240 //go:fix inline 10241 func (x Uint64x8) AsFloat32x16() Float32x16 { 10242 return x.ReshapeToUint32s().BitsToFloat32() 10243 } 10244 10245 // AsFloat64x8 reinterprets the bits of a Uint64x8 vector as a Float64x8 vector 10246 // 10247 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10248 // 10249 //go:fix inline 10250 func (x Uint64x8) AsFloat64x8() Float64x8 { 10251 return x.BitsToFloat64() 10252 } 10253 10254 // BitsToFloat64 reinterprets the bits of a Uint64x8 vector as a Float64x8 vector 10255 func (x Uint64x8) BitsToFloat64() Float64x8 10256 10257 // ToBits reinterprets the bits of a Float64x8 vector as a Uint64x8 vector 10258 func (x Float64x8) ToBits() Uint64x8 10259 10260 // AsInt8x64 reinterprets the bits of a Uint64x8 vector as a Int8x64 vector 10261 // 10262 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10263 // 10264 //go:fix inline 10265 func (x Uint64x8) AsInt8x64() Int8x64 { 10266 return x.ReshapeToUint8s().BitsToInt8() 10267 } 10268 10269 // AsInt16x32 reinterprets the bits of a Uint64x8 vector as a Int16x32 vector 10270 // 10271 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10272 // 10273 //go:fix inline 10274 func (x Uint64x8) AsInt16x32() Int16x32 { 10275 return x.ReshapeToUint16s().BitsToInt16() 10276 } 10277 10278 // AsInt32x16 reinterprets the bits of a Uint64x8 vector as a Int32x16 vector 10279 // 10280 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10281 // 10282 //go:fix inline 10283 func (x Uint64x8) AsInt32x16() Int32x16 { 10284 return x.ReshapeToUint32s().BitsToInt32() 10285 } 10286 10287 // AsInt64x8 reinterprets the bits of a Uint64x8 vector as a Int64x8 vector 10288 // 10289 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10290 // 10291 //go:fix inline 10292 func (x Uint64x8) AsInt64x8() Int64x8 { 10293 return x.BitsToInt64() 10294 } 10295 10296 // BitsToInt64 reinterprets the bits of a Uint64x8 vector as a Int64x8 vector 10297 func (x Uint64x8) BitsToInt64() Int64x8 10298 10299 // ConvertToInt64 converts a Uint64x8 vector to a Int64x8 vector 10300 func (x Uint64x8) ConvertToInt64() Int64x8 10301 10302 // ConvertToUint64 converts a Int64x8 vector to a Uint64x8 vector 10303 func (x Int64x8) ConvertToUint64() Uint64x8 10304 10305 // ToBits reinterprets the bits of a Int64x8 vector as a Uint64x8 vector 10306 func (x Int64x8) ToBits() Uint64x8 10307 10308 // AsUint8x64 reinterprets the bits of a Uint64x8 vector as a Uint8x64 vector 10309 // 10310 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10311 // 10312 //go:fix inline 10313 func (x Uint64x8) AsUint8x64() Uint8x64 { 10314 return x.ReshapeToUint8s() 10315 } 10316 10317 // ReshapeToUint8s reinterprets the bits of a Uint64x8 vector as a Uint8x64 vector 10318 func (x Uint64x8) ReshapeToUint8s() Uint8x64 10319 10320 // AsUint16x32 reinterprets the bits of a Uint64x8 vector as a Uint16x32 vector 10321 // 10322 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10323 // 10324 //go:fix inline 10325 func (x Uint64x8) AsUint16x32() Uint16x32 { 10326 return x.ReshapeToUint16s() 10327 } 10328 10329 // ReshapeToUint16s reinterprets the bits of a Uint64x8 vector as a Uint16x32 vector 10330 func (x Uint64x8) ReshapeToUint16s() Uint16x32 10331 10332 // AsUint32x16 reinterprets the bits of a Uint64x8 vector as a Uint32x16 vector 10333 // 10334 // Deprecated: use combinations of ToBits, BitsTo{Int<N>,Float<N>}, ReshapeToUint<N> 10335 // 10336 //go:fix inline 10337 func (x Uint64x8) AsUint32x16() Uint32x16 { 10338 return x.ReshapeToUint32s() 10339 } 10340 10341 // ReshapeToUint32s reinterprets the bits of a Uint64x8 vector as a Uint32x16 vector 10342 func (x Uint64x8) ReshapeToUint32s() Uint32x16 10343 10344 // ToInt8x16 converts from Mask8x16 to Int8x16. 10345 // If element i in the mask is "true", all bits in element i of the resulting 10346 // vector will be set. 10347 func (from Mask8x16) ToInt8x16() (to Int8x16) 10348 10349 // asMask converts from Int8x16 to Mask8x16. 10350 func (from Int8x16) asMask() (to Mask8x16) 10351 10352 func (x Mask8x16) And(y Mask8x16) Mask8x16 10353 10354 func (x Mask8x16) Or(y Mask8x16) Mask8x16 10355 10356 // ToInt8x32 converts from Mask8x32 to Int8x32. 10357 // If element i in the mask is "true", all bits in element i of the resulting 10358 // vector will be set. 10359 func (from Mask8x32) ToInt8x32() (to Int8x32) 10360 10361 // asMask converts from Int8x32 to Mask8x32. 10362 func (from Int8x32) asMask() (to Mask8x32) 10363 10364 func (x Mask8x32) And(y Mask8x32) Mask8x32 10365 10366 func (x Mask8x32) Or(y Mask8x32) Mask8x32 10367 10368 // ToInt8x64 converts from Mask8x64 to Int8x64. 10369 // If element i in the mask is "true", all bits in element i of the resulting 10370 // vector will be set. 10371 func (from Mask8x64) ToInt8x64() (to Int8x64) 10372 10373 // asMask converts from Int8x64 to Mask8x64. 10374 func (from Int8x64) asMask() (to Mask8x64) 10375 10376 func (x Mask8x64) And(y Mask8x64) Mask8x64 10377 10378 func (x Mask8x64) Or(y Mask8x64) Mask8x64 10379 10380 // ToInt16x8 converts from Mask16x8 to Int16x8. 10381 // If element i in the mask is "true", all bits in element i of the resulting 10382 // vector will be set. 10383 func (from Mask16x8) ToInt16x8() (to Int16x8) 10384 10385 // asMask converts from Int16x8 to Mask16x8. 10386 func (from Int16x8) asMask() (to Mask16x8) 10387 10388 func (x Mask16x8) And(y Mask16x8) Mask16x8 10389 10390 func (x Mask16x8) Or(y Mask16x8) Mask16x8 10391 10392 // ToInt16x16 converts from Mask16x16 to Int16x16. 10393 // If element i in the mask is "true", all bits in element i of the resulting 10394 // vector will be set. 10395 func (from Mask16x16) ToInt16x16() (to Int16x16) 10396 10397 // asMask converts from Int16x16 to Mask16x16. 10398 func (from Int16x16) asMask() (to Mask16x16) 10399 10400 func (x Mask16x16) And(y Mask16x16) Mask16x16 10401 10402 func (x Mask16x16) Or(y Mask16x16) Mask16x16 10403 10404 // ToInt16x32 converts from Mask16x32 to Int16x32. 10405 // If element i in the mask is "true", all bits in element i of the resulting 10406 // vector will be set. 10407 func (from Mask16x32) ToInt16x32() (to Int16x32) 10408 10409 // asMask converts from Int16x32 to Mask16x32. 10410 func (from Int16x32) asMask() (to Mask16x32) 10411 10412 func (x Mask16x32) And(y Mask16x32) Mask16x32 10413 10414 func (x Mask16x32) Or(y Mask16x32) Mask16x32 10415 10416 // ToInt32x4 converts from Mask32x4 to Int32x4. 10417 // If element i in the mask is "true", all bits in element i of the resulting 10418 // vector will be set. 10419 func (from Mask32x4) ToInt32x4() (to Int32x4) 10420 10421 // asMask converts from Int32x4 to Mask32x4. 10422 func (from Int32x4) asMask() (to Mask32x4) 10423 10424 func (x Mask32x4) And(y Mask32x4) Mask32x4 10425 10426 func (x Mask32x4) Or(y Mask32x4) Mask32x4 10427 10428 // ToInt32x8 converts from Mask32x8 to Int32x8. 10429 // If element i in the mask is "true", all bits in element i of the resulting 10430 // vector will be set. 10431 func (from Mask32x8) ToInt32x8() (to Int32x8) 10432 10433 // asMask converts from Int32x8 to Mask32x8. 10434 func (from Int32x8) asMask() (to Mask32x8) 10435 10436 func (x Mask32x8) And(y Mask32x8) Mask32x8 10437 10438 func (x Mask32x8) Or(y Mask32x8) Mask32x8 10439 10440 // ToInt32x16 converts from Mask32x16 to Int32x16. 10441 // If element i in the mask is "true", all bits in element i of the resulting 10442 // vector will be set. 10443 func (from Mask32x16) ToInt32x16() (to Int32x16) 10444 10445 // asMask converts from Int32x16 to Mask32x16. 10446 func (from Int32x16) asMask() (to Mask32x16) 10447 10448 func (x Mask32x16) And(y Mask32x16) Mask32x16 10449 10450 func (x Mask32x16) Or(y Mask32x16) Mask32x16 10451 10452 // ToInt64x2 converts from Mask64x2 to Int64x2. 10453 // If element i in the mask is "true", all bits in element i of the resulting 10454 // vector will be set. 10455 func (from Mask64x2) ToInt64x2() (to Int64x2) 10456 10457 // asMask converts from Int64x2 to Mask64x2. 10458 func (from Int64x2) asMask() (to Mask64x2) 10459 10460 func (x Mask64x2) And(y Mask64x2) Mask64x2 10461 10462 func (x Mask64x2) Or(y Mask64x2) Mask64x2 10463 10464 // ToInt64x4 converts from Mask64x4 to Int64x4. 10465 // If element i in the mask is "true", all bits in element i of the resulting 10466 // vector will be set. 10467 func (from Mask64x4) ToInt64x4() (to Int64x4) 10468 10469 // asMask converts from Int64x4 to Mask64x4. 10470 func (from Int64x4) asMask() (to Mask64x4) 10471 10472 func (x Mask64x4) And(y Mask64x4) Mask64x4 10473 10474 func (x Mask64x4) Or(y Mask64x4) Mask64x4 10475 10476 // ToInt64x8 converts from Mask64x8 to Int64x8. 10477 // If element i in the mask is "true", all bits in element i of the resulting 10478 // vector will be set. 10479 func (from Mask64x8) ToInt64x8() (to Int64x8) 10480 10481 // asMask converts from Int64x8 to Mask64x8. 10482 func (from Int64x8) asMask() (to Mask64x8) 10483 10484 func (x Mask64x8) And(y Mask64x8) Mask64x8 10485 10486 func (x Mask64x8) Or(y Mask64x8) Mask64x8 10487