Source file src/simd/archsimd/ops_wasm.go
1 // Code generated by 'wasmgen'; DO NOT EDIT. 2 3 //go:build goexperiment.simd && wasm 4 5 package archsimd 6 7 // Abs returns the elementwise absolute value of x. 8 // 9 // Asm: I8x16Abs 10 func (x Int8x16) Abs() Int8x16 11 12 // Abs returns the elementwise absolute value of x. 13 // 14 // Asm: I16x8Abs 15 func (x Int16x8) Abs() Int16x8 16 17 // Abs returns the elementwise absolute value of x. 18 // 19 // Asm: I32x4Abs 20 func (x Int32x4) Abs() Int32x4 21 22 // Abs returns the elementwise absolute value of x. 23 // 24 // Asm: F32x4Abs 25 func (x Float32x4) Abs() Float32x4 26 27 // Abs returns the elementwise absolute value of x. 28 // 29 // Asm: I64x2Abs 30 func (x Int64x2) Abs() Int64x2 31 32 // Abs returns the elementwise absolute value of x. 33 // 34 // Asm: F64x2Abs 35 func (x Float64x2) Abs() Float64x2 36 37 // Add returns the result of adding x and y, elementwise. 38 // 39 // Asm: I8x16Add 40 func (x Int8x16) Add(y Int8x16) Int8x16 41 42 // Add returns the result of adding x and y, elementwise. 43 // 44 // Asm: I8x16Add 45 func (x Uint8x16) Add(y Uint8x16) Uint8x16 46 47 // Add returns the result of adding x and y, elementwise. 48 // 49 // Asm: I16x8Add 50 func (x Int16x8) Add(y Int16x8) Int16x8 51 52 // Add returns the result of adding x and y, elementwise. 53 // 54 // Asm: I16x8Add 55 func (x Uint16x8) Add(y Uint16x8) Uint16x8 56 57 // Add returns the result of adding x and y, elementwise. 58 // 59 // Asm: I32x4Add 60 func (x Int32x4) Add(y Int32x4) Int32x4 61 62 // Add returns the result of adding x and y, elementwise. 63 // 64 // Asm: I32x4Add 65 func (x Uint32x4) Add(y Uint32x4) Uint32x4 66 67 // Add returns the result of adding x and y, elementwise. 68 // 69 // Asm: F32x4Add 70 func (x Float32x4) Add(y Float32x4) Float32x4 71 72 // Add returns the result of adding x and y, elementwise. 73 // 74 // Asm: I64x2Add 75 func (x Int64x2) Add(y Int64x2) Int64x2 76 77 // Add returns the result of adding x and y, elementwise. 78 // 79 // Asm: I64x2Add 80 func (x Uint64x2) Add(y Uint64x2) Uint64x2 81 82 // Add returns the result of adding x and y, elementwise. 83 // 84 // Asm: F64x2Add 85 func (x Float64x2) Add(y Float64x2) Float64x2 86 87 // AddSaturated returns the result of adding x and y, saturating instead of overflowing, elementwise. 88 // 89 // Asm: I8x16AddSatS 90 func (x Int8x16) AddSaturated(y Int8x16) Int8x16 91 92 // AddSaturated returns the result of adding x and y, saturating instead of overflowing, elementwise. 93 // 94 // Asm: I8x16AddSatU 95 func (x Uint8x16) AddSaturated(y Uint8x16) Uint8x16 96 97 // AddSaturated returns the result of adding x and y, saturating instead of overflowing, elementwise. 98 // 99 // Asm: I16x8AddSatS 100 func (x Int16x8) AddSaturated(y Int16x8) Int16x8 101 102 // AddSaturated returns the result of adding x and y, saturating instead of overflowing, elementwise. 103 // 104 // Asm: I16x8AddSatU 105 func (x Uint16x8) AddSaturated(y Uint16x8) Uint16x8 106 107 // And returns the bitwise AND of x and y. 108 // 109 // Asm: V128And 110 func (x Int8x16) And(y Int8x16) Int8x16 111 112 // And returns the bitwise AND of x and y. 113 // 114 // Asm: V128And 115 func (x Uint8x16) And(y Uint8x16) Uint8x16 116 117 // And returns the bitwise AND of x and y. 118 // 119 // Asm: V128And 120 func (x Mask8x16) And(y Mask8x16) Mask8x16 121 122 // And returns the bitwise AND of x and y. 123 // 124 // Asm: V128And 125 func (x Int16x8) And(y Int16x8) Int16x8 126 127 // And returns the bitwise AND of x and y. 128 // 129 // Asm: V128And 130 func (x Uint16x8) And(y Uint16x8) Uint16x8 131 132 // And returns the bitwise AND of x and y. 133 // 134 // Asm: V128And 135 func (x Mask16x8) And(y Mask16x8) Mask16x8 136 137 // And returns the bitwise AND of x and y. 138 // 139 // Asm: V128And 140 func (x Int32x4) And(y Int32x4) Int32x4 141 142 // And returns the bitwise AND of x and y. 143 // 144 // Asm: V128And 145 func (x Uint32x4) And(y Uint32x4) Uint32x4 146 147 // And returns the bitwise AND of x and y. 148 // 149 // Asm: V128And 150 func (x Mask32x4) And(y Mask32x4) Mask32x4 151 152 // And returns the bitwise AND of x and y. 153 // 154 // Asm: V128And 155 func (x Int64x2) And(y Int64x2) Int64x2 156 157 // And returns the bitwise AND of x and y. 158 // 159 // Asm: V128And 160 func (x Uint64x2) And(y Uint64x2) Uint64x2 161 162 // And returns the bitwise AND of x and y. 163 // 164 // Asm: V128And 165 func (x Mask64x2) And(y Mask64x2) Mask64x2 166 167 // AndNot returns the bitwise AND NOT of x and y (x & ^y). 168 // 169 // Asm: V128Andnot 170 func (x Int8x16) AndNot(y Int8x16) Int8x16 171 172 // AndNot returns the bitwise AND NOT of x and y (x & ^y). 173 // 174 // Asm: V128Andnot 175 func (x Uint8x16) AndNot(y Uint8x16) Uint8x16 176 177 // AndNot returns the bitwise AND NOT of x and y (x & ^y). 178 // 179 // Asm: V128Andnot 180 func (x Mask8x16) AndNot(y Mask8x16) Mask8x16 181 182 // AndNot returns the bitwise AND NOT of x and y (x & ^y). 183 // 184 // Asm: V128Andnot 185 func (x Int16x8) AndNot(y Int16x8) Int16x8 186 187 // AndNot returns the bitwise AND NOT of x and y (x & ^y). 188 // 189 // Asm: V128Andnot 190 func (x Uint16x8) AndNot(y Uint16x8) Uint16x8 191 192 // AndNot returns the bitwise AND NOT of x and y (x & ^y). 193 // 194 // Asm: V128Andnot 195 func (x Mask16x8) AndNot(y Mask16x8) Mask16x8 196 197 // AndNot returns the bitwise AND NOT of x and y (x & ^y). 198 // 199 // Asm: V128Andnot 200 func (x Int32x4) AndNot(y Int32x4) Int32x4 201 202 // AndNot returns the bitwise AND NOT of x and y (x & ^y). 203 // 204 // Asm: V128Andnot 205 func (x Uint32x4) AndNot(y Uint32x4) Uint32x4 206 207 // AndNot returns the bitwise AND NOT of x and y (x & ^y). 208 // 209 // Asm: V128Andnot 210 func (x Mask32x4) AndNot(y Mask32x4) Mask32x4 211 212 // AndNot returns the bitwise AND NOT of x and y (x & ^y). 213 // 214 // Asm: V128Andnot 215 func (x Int64x2) AndNot(y Int64x2) Int64x2 216 217 // AndNot returns the bitwise AND NOT of x and y (x & ^y). 218 // 219 // Asm: V128Andnot 220 func (x Uint64x2) AndNot(y Uint64x2) Uint64x2 221 222 // AndNot returns the bitwise AND NOT of x and y (x & ^y). 223 // 224 // Asm: V128Andnot 225 func (x Mask64x2) AndNot(y Mask64x2) Mask64x2 226 227 // Average returns the elementwise average of unsigned integers in x and y. 228 // 229 // Asm: I8x16AvgrU 230 func (x Uint8x16) Average(y Uint8x16) Uint8x16 231 232 // Average returns the elementwise average of unsigned integers in x and y. 233 // 234 // Asm: I16x8AvgrU 235 func (x Uint16x8) Average(y Uint16x8) Uint16x8 236 237 // BitSelect returns the bitwise selection if mask[i] then x[i] else y[i] 238 // 239 // Asm: V128Bitselect 240 func (x Int8x16) BitSelect(y Int8x16, cond Int8x16) Int8x16 241 242 // BitSelect returns the bitwise selection if mask[i] then x[i] else y[i] 243 // 244 // Asm: V128Bitselect 245 func (x Uint8x16) BitSelect(y Uint8x16, cond Uint8x16) Uint8x16 246 247 // BitSelect returns the bitwise selection if mask[i] then x[i] else y[i] 248 // 249 // Asm: V128Bitselect 250 func (x Int16x8) BitSelect(y Int16x8, cond Int16x8) Int16x8 251 252 // BitSelect returns the bitwise selection if mask[i] then x[i] else y[i] 253 // 254 // Asm: V128Bitselect 255 func (x Uint16x8) BitSelect(y Uint16x8, cond Uint16x8) Uint16x8 256 257 // BitSelect returns the bitwise selection if mask[i] then x[i] else y[i] 258 // 259 // Asm: V128Bitselect 260 func (x Int32x4) BitSelect(y Int32x4, cond Int32x4) Int32x4 261 262 // BitSelect returns the bitwise selection if mask[i] then x[i] else y[i] 263 // 264 // Asm: V128Bitselect 265 func (x Uint32x4) BitSelect(y Uint32x4, cond Uint32x4) Uint32x4 266 267 // BitSelect returns the bitwise selection if mask[i] then x[i] else y[i] 268 // 269 // Asm: V128Bitselect 270 func (x Int64x2) BitSelect(y Int64x2, cond Int64x2) Int64x2 271 272 // BitSelect returns the bitwise selection if mask[i] then x[i] else y[i] 273 // 274 // Asm: V128Bitselect 275 func (x Uint64x2) BitSelect(y Uint64x2, cond Uint64x2) Uint64x2 276 277 // Ceil returns the elementwise ceiling of x. 278 // 279 // Asm: F32x4Ceil 280 func (x Float32x4) Ceil() Float32x4 281 282 // Ceil returns the elementwise ceiling of x. 283 // 284 // Asm: F64x2Ceil 285 func (x Float64x2) Ceil() Float64x2 286 287 // ConvertLo2ToFloat64 converts the first two elements of x to Float64x2. 288 // 289 // Asm: F64x2ConvertLowI32x4S 290 func (x Int32x4) ConvertLo2ToFloat64() Float64x2 291 292 // ConvertLo2ToFloat64 converts the first two elements of x to Float64x2. 293 // 294 // Asm: F64x2ConvertLowI32x4U 295 func (x Uint32x4) ConvertLo2ToFloat64() Float64x2 296 297 // ConvertToFloat32 converts elements of x to Float32x4. 298 // 299 // Asm: F32x4ConvertI32x4S 300 func (x Int32x4) ConvertToFloat32() Float32x4 301 302 // ConvertToFloat32 converts elements of x to Float32x4. 303 // 304 // Asm: F32x4ConvertI32x4U 305 func (x Uint32x4) ConvertToFloat32() Float32x4 306 307 // ConvertToInt32 converts elements of x to Int32x4. 308 // 309 // Asm: I32x4TruncSatF32x4S 310 func (x Float32x4) ConvertToInt32() Int32x4 311 312 // ConvertToUint32 converts elements of x to Uint32x4. 313 // 314 // Asm: I32x4TruncSatF32x4U 315 func (x Float32x4) ConvertToUint32() Uint32x4 316 317 // Div returns the result of dividing x by y, elementwise. 318 // 319 // Asm: F32x4Div 320 func (x Float32x4) Div(y Float32x4) Float32x4 321 322 // Div returns the result of dividing x by y, elementwise. 323 // 324 // Asm: F64x2Div 325 func (x Float64x2) Div(y Float64x2) Float64x2 326 327 // Equal returns true if x equals y, elementwise. 328 // 329 // Asm: I8x16Eq 330 func (x Int8x16) Equal(y Int8x16) Mask8x16 331 332 // Equal returns true if x equals y, elementwise. 333 // 334 // Asm: I8x16Eq 335 func (x Uint8x16) Equal(y Uint8x16) Mask8x16 336 337 // Equal returns true if x equals y, elementwise. 338 // 339 // Asm: I16x8Eq 340 func (x Int16x8) Equal(y Int16x8) Mask16x8 341 342 // Equal returns true if x equals y, elementwise. 343 // 344 // Asm: I16x8Eq 345 func (x Uint16x8) Equal(y Uint16x8) Mask16x8 346 347 // Equal returns true if x equals y, elementwise. 348 // 349 // Asm: I32x4Eq 350 func (x Int32x4) Equal(y Int32x4) Mask32x4 351 352 // Equal returns true if x equals y, elementwise. 353 // 354 // Asm: I32x4Eq 355 func (x Uint32x4) Equal(y Uint32x4) Mask32x4 356 357 // Equal returns true if x equals y, elementwise. 358 // 359 // Asm: F32x4Eq 360 func (x Float32x4) Equal(y Float32x4) Mask32x4 361 362 // Equal returns true if x equals y, elementwise. 363 // 364 // Asm: I64x2Eq 365 func (x Int64x2) Equal(y Int64x2) Mask64x2 366 367 // Equal returns true if x equals y, elementwise. 368 // 369 // Asm: I64x2Eq 370 func (x Uint64x2) Equal(y Uint64x2) Mask64x2 371 372 // Equal returns true if x equals y, elementwise. 373 // 374 // Asm: F64x2Eq 375 func (x Float64x2) Equal(y Float64x2) Mask64x2 376 377 // ExtendHi2ToInt64 378 // 379 // Asm: I64x2ExtendHighI32x4S 380 func (x Int32x4) ExtendHi2ToInt64() Int64x2 381 382 // ExtendHi2ToUint64 383 // 384 // Asm: I64x2ExtendHighI32x4U 385 func (x Uint32x4) ExtendHi2ToUint64() Uint64x2 386 387 // ExtendHi4ToInt32 388 // 389 // Asm: I32x4ExtendHighI16x8S 390 func (x Int16x8) ExtendHi4ToInt32() Int32x4 391 392 // ExtendHi4ToUint32 393 // 394 // Asm: I32x4ExtendHighI16x8U 395 func (x Uint16x8) ExtendHi4ToUint32() Uint32x4 396 397 // ExtendHi8ToInt16 extends the higher 8 elements of x to 16-bit integers. 398 // 399 // Asm: I16x8ExtendHighI8x16S 400 func (x Int8x16) ExtendHi8ToInt16() Int16x8 401 402 // ExtendHi8ToUint16 extends the higher 8 elements of x to 16-bit unsigned integers. 403 // 404 // Asm: I16x8ExtendHighI8x16U 405 func (x Uint8x16) ExtendHi8ToUint16() Uint16x8 406 407 // ExtendLo2ToInt64 408 // 409 // Asm: I64x2ExtendLowI32x4S 410 func (x Int32x4) ExtendLo2ToInt64() Int64x2 411 412 // ExtendLo2ToUint64 413 // 414 // Asm: I64x2ExtendLowI32x4U 415 func (x Uint32x4) ExtendLo2ToUint64() Uint64x2 416 417 // ExtendLo4ToInt32 418 // 419 // Asm: I32x4ExtendLowI16x8S 420 func (x Int16x8) ExtendLo4ToInt32() Int32x4 421 422 // ExtendLo4ToUint32 423 // 424 // Asm: I32x4ExtendLowI16x8U 425 func (x Uint16x8) ExtendLo4ToUint32() Uint32x4 426 427 // ExtendLo8ToInt16 extends the lower 8 elements of x to 16-bit integers. 428 // 429 // Asm: I16x8ExtendLowI8x16S 430 func (x Int8x16) ExtendLo8ToInt16() Int16x8 431 432 // ExtendLo8ToUint16 extends the lower 8 elements of x to 16-bit unsigned integers. 433 // 434 // Asm: I16x8ExtendLowI8x16U 435 func (x Uint8x16) ExtendLo8ToUint16() Uint16x8 436 437 // Floor returns the elementwise floor of x. 438 // 439 // Asm: F32x4Floor 440 func (x Float32x4) Floor() Float32x4 441 442 // Floor returns the elementwise floor of x. 443 // 444 // Asm: F64x2Floor 445 func (x Float64x2) Floor() Float64x2 446 447 // GetElem gets the lane value at the given index. 448 // 449 // Asm: I8x16ExtractLaneS 450 func (x Int8x16) GetElem(index uint8) int8 451 452 // GetElem gets the lane value at the given index. 453 // 454 // Asm: I8x16ExtractLaneU 455 func (x Uint8x16) GetElem(index uint8) uint8 456 457 // GetElem gets the lane value at the given index. 458 // 459 // Asm: I16x8ExtractLaneS 460 func (x Int16x8) GetElem(index uint8) int16 461 462 // GetElem gets the lane value at the given index. 463 // 464 // Asm: I16x8ExtractLaneU 465 func (x Uint16x8) GetElem(index uint8) uint16 466 467 // GetElem gets the lane value at the given index. 468 // 469 // Asm: I32x4ExtractLane 470 func (x Int32x4) GetElem(index uint8) int32 471 472 // GetElem gets the lane value at the given index. 473 // 474 // Asm: I32x4ExtractLane 475 func (x Uint32x4) GetElem(index uint8) uint32 476 477 // GetElem gets the lane value at the given index. 478 // 479 // Asm: F32x4ExtractLane 480 func (x Float32x4) GetElem(index uint8) float32 481 482 // GetElem gets the lane value at the given index. 483 // 484 // Asm: I64x2ExtractLane 485 func (x Int64x2) GetElem(index uint8) int64 486 487 // GetElem gets the lane value at the given index. 488 // 489 // Asm: I64x2ExtractLane 490 func (x Uint64x2) GetElem(index uint8) uint64 491 492 // GetElem gets the lane value at the given index. 493 // 494 // Asm: F64x2ExtractLane 495 func (x Float64x2) GetElem(index uint8) float64 496 497 // Greater returns true if x is greater than y, elementwise. 498 // 499 // Asm: I8x16GtS 500 func (x Int8x16) Greater(y Int8x16) Mask8x16 501 502 // Greater returns true if x is greater than y, elementwise. 503 // 504 // Asm: I8x16GtU 505 func (x Uint8x16) Greater(y Uint8x16) Mask8x16 506 507 // Greater returns true if x is greater than y, elementwise. 508 // 509 // Asm: I16x8GtS 510 func (x Int16x8) Greater(y Int16x8) Mask16x8 511 512 // Greater returns true if x is greater than y, elementwise. 513 // 514 // Asm: I16x8GtU 515 func (x Uint16x8) Greater(y Uint16x8) Mask16x8 516 517 // Greater returns true if x is greater than y, elementwise. 518 // 519 // Asm: I32x4GtS 520 func (x Int32x4) Greater(y Int32x4) Mask32x4 521 522 // Greater returns true if x is greater than y, elementwise. 523 // 524 // Asm: I32x4GtU 525 func (x Uint32x4) Greater(y Uint32x4) Mask32x4 526 527 // Greater returns true if x is greater than y, elementwise. 528 // 529 // Asm: F32x4Gt 530 func (x Float32x4) Greater(y Float32x4) Mask32x4 531 532 // Greater returns true if x is greater than y, elementwise. 533 // 534 // Asm: I64x2GtS 535 func (x Int64x2) Greater(y Int64x2) Mask64x2 536 537 // Greater returns true if x is greater than y, elementwise. 538 // 539 // Asm: F64x2Gt 540 func (x Float64x2) Greater(y Float64x2) Mask64x2 541 542 // GreaterEqual returns true if x is greater than or equal to y, elementwise. 543 // 544 // Asm: I8x16GeS 545 func (x Int8x16) GreaterEqual(y Int8x16) Mask8x16 546 547 // GreaterEqual returns true if x is greater than or equal to y, elementwise. 548 // 549 // Asm: I8x16GeU 550 func (x Uint8x16) GreaterEqual(y Uint8x16) Mask8x16 551 552 // GreaterEqual returns true if x is greater than or equal to y, elementwise. 553 // 554 // Asm: I16x8GeS 555 func (x Int16x8) GreaterEqual(y Int16x8) Mask16x8 556 557 // GreaterEqual returns true if x is greater than or equal to y, elementwise. 558 // 559 // Asm: I16x8GeU 560 func (x Uint16x8) GreaterEqual(y Uint16x8) Mask16x8 561 562 // GreaterEqual returns true if x is greater than or equal to y, elementwise. 563 // 564 // Asm: I32x4GeS 565 func (x Int32x4) GreaterEqual(y Int32x4) Mask32x4 566 567 // GreaterEqual returns true if x is greater than or equal to y, elementwise. 568 // 569 // Asm: I32x4GeU 570 func (x Uint32x4) GreaterEqual(y Uint32x4) Mask32x4 571 572 // GreaterEqual returns true if x is greater than or equal to y, elementwise. 573 // 574 // Asm: F32x4Ge 575 func (x Float32x4) GreaterEqual(y Float32x4) Mask32x4 576 577 // GreaterEqual returns true if x is greater than or equal to y, elementwise. 578 // 579 // Asm: I64x2GeS 580 func (x Int64x2) GreaterEqual(y Int64x2) Mask64x2 581 582 // GreaterEqual returns true if x is greater than or equal to y, elementwise. 583 // 584 // Asm: F64x2Ge 585 func (x Float64x2) GreaterEqual(y Float64x2) Mask64x2 586 587 // Less returns true if x is less than y, elementwise. 588 // 589 // Asm: I8x16LtS 590 func (x Int8x16) Less(y Int8x16) Mask8x16 591 592 // Less returns true if x is less than y, elementwise. 593 // 594 // Asm: I8x16LtU 595 func (x Uint8x16) Less(y Uint8x16) Mask8x16 596 597 // Less returns true if x is less than y, elementwise. 598 // 599 // Asm: I16x8LtS 600 func (x Int16x8) Less(y Int16x8) Mask16x8 601 602 // Less returns true if x is less than y, elementwise. 603 // 604 // Asm: I16x8LtU 605 func (x Uint16x8) Less(y Uint16x8) Mask16x8 606 607 // Less returns true if x is less than y, elementwise. 608 // 609 // Asm: I32x4LtS 610 func (x Int32x4) Less(y Int32x4) Mask32x4 611 612 // Less returns true if x is less than y, elementwise. 613 // 614 // Asm: I32x4LtU 615 func (x Uint32x4) Less(y Uint32x4) Mask32x4 616 617 // Less returns true if x is less than y, elementwise. 618 // 619 // Asm: F32x4Lt 620 func (x Float32x4) Less(y Float32x4) Mask32x4 621 622 // Less returns true if x is less than y, elementwise. 623 // 624 // Asm: I64x2LtS 625 func (x Int64x2) Less(y Int64x2) Mask64x2 626 627 // Less returns true if x is less than y, elementwise. 628 // 629 // Asm: F64x2Lt 630 func (x Float64x2) Less(y Float64x2) Mask64x2 631 632 // LessEqual returns true if x is less than or equal to y, elementwise. 633 // 634 // Asm: I8x16LeS 635 func (x Int8x16) LessEqual(y Int8x16) Mask8x16 636 637 // LessEqual returns true if x is less than or equal to y, elementwise. 638 // 639 // Asm: I8x16LeU 640 func (x Uint8x16) LessEqual(y Uint8x16) Mask8x16 641 642 // LessEqual returns true if x is less than or equal to y, elementwise. 643 // 644 // Asm: I16x8LeS 645 func (x Int16x8) LessEqual(y Int16x8) Mask16x8 646 647 // LessEqual returns true if x is less than or equal to y, elementwise. 648 // 649 // Asm: I16x8LeU 650 func (x Uint16x8) LessEqual(y Uint16x8) Mask16x8 651 652 // LessEqual returns true if x is less than or equal to y, elementwise. 653 // 654 // Asm: I32x4LeS 655 func (x Int32x4) LessEqual(y Int32x4) Mask32x4 656 657 // LessEqual returns true if x is less than or equal to y, elementwise. 658 // 659 // Asm: I32x4LeU 660 func (x Uint32x4) LessEqual(y Uint32x4) Mask32x4 661 662 // LessEqual returns true if x is less than or equal to y, elementwise. 663 // 664 // Asm: F32x4Le 665 func (x Float32x4) LessEqual(y Float32x4) Mask32x4 666 667 // LessEqual returns true if x is less than or equal to y, elementwise. 668 // 669 // Asm: I64x2LeS 670 func (x Int64x2) LessEqual(y Int64x2) Mask64x2 671 672 // LessEqual returns true if x is less than or equal to y, elementwise. 673 // 674 // Asm: F64x2Le 675 func (x Float64x2) LessEqual(y Float64x2) Mask64x2 676 677 // LookupOrZero returns the elements of x as indexed by the elements of i. If an index is out of range, its result is 0. 678 // 679 // if 0 <= indices[i] && indices[i] < len(table) { 680 // result[i] = table[indices[i]] 681 // } else { 682 // result[i] = 0 683 // } 684 // 685 // Asm: I8x16Swizzle 686 func (x Int8x16) LookupOrZero(i Int8x16) Int8x16 687 688 // Max returns the elementwise maximum of x and y. 689 // 690 // Asm: I8x16MaxS 691 func (x Int8x16) Max(y Int8x16) Int8x16 692 693 // Max returns the elementwise maximum of x and y. 694 // 695 // Asm: I8x16MaxU 696 func (x Uint8x16) Max(y Uint8x16) Uint8x16 697 698 // Max returns the elementwise maximum of x and y. 699 // 700 // Asm: I16x8MaxS 701 func (x Int16x8) Max(y Int16x8) Int16x8 702 703 // Max returns the elementwise maximum of x and y. 704 // 705 // Asm: I16x8MaxU 706 func (x Uint16x8) Max(y Uint16x8) Uint16x8 707 708 // Max returns the elementwise maximum of x and y. 709 // 710 // Asm: I32x4MaxS 711 func (x Int32x4) Max(y Int32x4) Int32x4 712 713 // Max returns the elementwise maximum of x and y. 714 // 715 // Asm: I32x4MaxU 716 func (x Uint32x4) Max(y Uint32x4) Uint32x4 717 718 // Max returns the elementwise maximum of x and y. 719 // 720 // Asm: F32x4Max 721 func (x Float32x4) Max(y Float32x4) Float32x4 722 723 // Max returns the elementwise maximum of x and y. 724 // 725 // Asm: F64x2Max 726 func (x Float64x2) Max(y Float64x2) Float64x2 727 728 // Min returns the elementwise minimum of x and y. 729 // 730 // Asm: I8x16MinS 731 func (x Int8x16) Min(y Int8x16) Int8x16 732 733 // Min returns the elementwise minimum of x and y. 734 // 735 // Asm: I8x16MinU 736 func (x Uint8x16) Min(y Uint8x16) Uint8x16 737 738 // Min returns the elementwise minimum of x and y. 739 // 740 // Asm: I16x8MinS 741 func (x Int16x8) Min(y Int16x8) Int16x8 742 743 // Min returns the elementwise minimum of x and y. 744 // 745 // Asm: I16x8MinU 746 func (x Uint16x8) Min(y Uint16x8) Uint16x8 747 748 // Min returns the elementwise minimum of x and y. 749 // 750 // Asm: I32x4MinS 751 func (x Int32x4) Min(y Int32x4) Int32x4 752 753 // Min returns the elementwise minimum of x and y. 754 // 755 // Asm: I32x4MinU 756 func (x Uint32x4) Min(y Uint32x4) Uint32x4 757 758 // Min returns the elementwise minimum of x and y. 759 // 760 // Asm: F32x4Min 761 func (x Float32x4) Min(y Float32x4) Float32x4 762 763 // Min returns the elementwise minimum of x and y. 764 // 765 // Asm: F64x2Min 766 func (x Float64x2) Min(y Float64x2) Float64x2 767 768 // Mul returns the result of multiplying x and y, elementwise. 769 // 770 // Asm: I16x8Mul 771 func (x Int16x8) Mul(y Int16x8) Int16x8 772 773 // Mul returns the result of multiplying x and y, elementwise. 774 // 775 // Asm: I16x8Mul 776 func (x Uint16x8) Mul(y Uint16x8) Uint16x8 777 778 // Mul returns the result of multiplying x and y, elementwise. 779 // 780 // Asm: I32x4Mul 781 func (x Int32x4) Mul(y Int32x4) Int32x4 782 783 // Mul returns the result of multiplying x and y, elementwise. 784 // 785 // Asm: I32x4Mul 786 func (x Uint32x4) Mul(y Uint32x4) Uint32x4 787 788 // Mul returns the result of multiplying x and y, elementwise. 789 // 790 // Asm: F32x4Mul 791 func (x Float32x4) Mul(y Float32x4) Float32x4 792 793 // Mul returns the result of multiplying x and y, elementwise. 794 // 795 // Asm: I64x2Mul 796 func (x Int64x2) Mul(y Int64x2) Int64x2 797 798 // Mul returns the result of multiplying x and y, elementwise. 799 // 800 // Asm: I64x2Mul 801 func (x Uint64x2) Mul(y Uint64x2) Uint64x2 802 803 // Mul returns the result of multiplying x and y, elementwise. 804 // 805 // Asm: F64x2Mul 806 func (x Float64x2) Mul(y Float64x2) Float64x2 807 808 // MulAdd returns the elementwise multiply-add of x, y, and z. 809 // 810 // Asm: F32x4RelaxedMadd 811 func (x Float32x4) MulAdd(y Float32x4, z Float32x4) Float32x4 812 813 // MulAdd returns the elementwise multiply-add of x, y, and z. 814 // 815 // Asm: F64x2RelaxedMadd 816 func (x Float64x2) MulAdd(y Float64x2, z Float64x2) Float64x2 817 818 // MulWidenHi returns the doubled-width product of respective elements of the upper halves of x and y. 819 // 820 // Result[i] = x[i+8] * y[i+8], for 0 <= i < 8 == |x|/2. 821 // 822 // Asm: I16x8ExtmulHighI8x16S 823 func (x Int8x16) MulWidenHi(y Int8x16) Int16x8 824 825 // MulWidenHi returns the doubled-width product of respective elements of the upper halves of x and y. 826 // 827 // Result[i] = x[i+8] * y[i+8], for 0 <= i < 8 == |x|/2. 828 // 829 // Asm: I16x8ExtmulHighI8x16U 830 func (x Uint8x16) MulWidenHi(y Uint8x16) Uint16x8 831 832 // MulWidenHi returns the doubled-width product of respective elements of the upper halves of x and y. 833 // 834 // Result[i] = x[i+4] * y[i+4], for 0 <= i < 4 == |x|/2. 835 // 836 // Asm: I32x4ExtmulHighI16x8S 837 func (x Int16x8) MulWidenHi(y Int16x8) Int32x4 838 839 // MulWidenHi returns the doubled-width product of respective elements of the upper halves of x and y. 840 // 841 // Result[i] = x[i+4] * y[i+4], for 0 <= i < 4 == |x|/2. 842 // 843 // Asm: I32x4ExtmulHighI16x8U 844 func (x Uint16x8) MulWidenHi(y Uint16x8) Uint32x4 845 846 // MulWidenHi returns the doubled-width product of respective elements of the upper halves of x and y. 847 // 848 // Result[i] = x[i+2] * y[i+2], for 0 <= i < 2 == |x|/2. 849 // 850 // Asm: I64x2ExtmulHighI32x4S 851 func (x Int32x4) MulWidenHi(y Int32x4) Int64x2 852 853 // MulWidenHi returns the doubled-width product of respective elements of the upper halves of x and y. 854 // 855 // Result[i] = x[i+2] * y[i+2], for 0 <= i < 2 == |x|/2. 856 // 857 // Asm: I64x2ExtmulHighI32x4U 858 func (x Uint32x4) MulWidenHi(y Uint32x4) Uint64x2 859 860 // MulWidenLo returns the doubled-width product of respective elements of the lower halves of x and y. 861 // 862 // Result[i] = x[i] * y[i], for 0 <= i < 8 == |x|/2. 863 // 864 // Asm: I16x8ExtmulLowI8x16S 865 func (x Int8x16) MulWidenLo(y Int8x16) Int16x8 866 867 // MulWidenLo returns the doubled-width product of respective elements of the lower halves of x and y. 868 // 869 // Result[i] = x[i] * y[i], for 0 <= i < 8 == |x|/2. 870 // 871 // Asm: I16x8ExtmulLowI8x16U 872 func (x Uint8x16) MulWidenLo(y Uint8x16) Uint16x8 873 874 // MulWidenLo returns the doubled-width product of respective elements of the lower halves of x and y. 875 // 876 // Result[i] = x[i] * y[i], for 0 <= i < 4 == |x|/2. 877 // 878 // Asm: I32x4ExtmulLowI16x8S 879 func (x Int16x8) MulWidenLo(y Int16x8) Int32x4 880 881 // MulWidenLo returns the doubled-width product of respective elements of the lower halves of x and y. 882 // 883 // Result[i] = x[i] * y[i], for 0 <= i < 4 == |x|/2. 884 // 885 // Asm: I32x4ExtmulLowI16x8U 886 func (x Uint16x8) MulWidenLo(y Uint16x8) Uint32x4 887 888 // MulWidenLo returns the doubled-width product of respective elements of the lower halves of x and y. 889 // 890 // Result[i] = x[i] * y[i], for 0 <= i < 2 == |x|/2. 891 // 892 // Asm: I64x2ExtmulLowI32x4S 893 func (x Int32x4) MulWidenLo(y Int32x4) Int64x2 894 895 // MulWidenLo returns the doubled-width product of respective elements of the lower halves of x and y. 896 // 897 // Result[i] = x[i] * y[i], for 0 <= i < 2 == |x|/2. 898 // 899 // Asm: I64x2ExtmulLowI32x4U 900 func (x Uint32x4) MulWidenLo(y Uint32x4) Uint64x2 901 902 // Neg returns the elementwise negation of x. 903 // 904 // Asm: I8x16Neg 905 func (x Int8x16) Neg() Int8x16 906 907 // Neg returns the elementwise negation of x. 908 // 909 // Asm: I16x8Neg 910 func (x Int16x8) Neg() Int16x8 911 912 // Neg returns the elementwise negation of x. 913 // 914 // Asm: I32x4Neg 915 func (x Int32x4) Neg() Int32x4 916 917 // Neg returns the elementwise negation of x. 918 // 919 // Asm: F32x4Neg 920 func (x Float32x4) Neg() Float32x4 921 922 // Neg returns the elementwise negation of x. 923 // 924 // Asm: I64x2Neg 925 func (x Int64x2) Neg() Int64x2 926 927 // Neg returns the elementwise negation of x. 928 // 929 // Asm: F64x2Neg 930 func (x Float64x2) Neg() Float64x2 931 932 // Not returns the bitwise NOT of x. 933 // 934 // Asm: V128Not 935 func (x Int8x16) Not() Int8x16 936 937 // Not returns the bitwise NOT of x. 938 // 939 // Asm: V128Not 940 func (x Uint8x16) Not() Uint8x16 941 942 // Not returns the bitwise NOT of x. 943 // 944 // Asm: V128Not 945 func (x Int16x8) Not() Int16x8 946 947 // Not returns the bitwise NOT of x. 948 // 949 // Asm: V128Not 950 func (x Uint16x8) Not() Uint16x8 951 952 // Not returns the bitwise NOT of x. 953 // 954 // Asm: V128Not 955 func (x Int32x4) Not() Int32x4 956 957 // Not returns the bitwise NOT of x. 958 // 959 // Asm: V128Not 960 func (x Uint32x4) Not() Uint32x4 961 962 // Not returns the bitwise NOT of x. 963 // 964 // Asm: V128Not 965 func (x Int64x2) Not() Int64x2 966 967 // Not returns the bitwise NOT of x. 968 // 969 // Asm: V128Not 970 func (x Uint64x2) Not() Uint64x2 971 972 // NotEqual returns true if x does not equal y, elementwise. 973 // 974 // Asm: I8x16Ne 975 func (x Int8x16) NotEqual(y Int8x16) Mask8x16 976 977 // NotEqual returns true if x does not equal y, elementwise. 978 // 979 // Asm: I8x16Ne 980 func (x Uint8x16) NotEqual(y Uint8x16) Mask8x16 981 982 // NotEqual returns true if x does not equal y, elementwise. 983 // 984 // Asm: I16x8Ne 985 func (x Int16x8) NotEqual(y Int16x8) Mask16x8 986 987 // NotEqual returns true if x does not equal y, elementwise. 988 // 989 // Asm: I16x8Ne 990 func (x Uint16x8) NotEqual(y Uint16x8) Mask16x8 991 992 // NotEqual returns true if x does not equal y, elementwise. 993 // 994 // Asm: I32x4Ne 995 func (x Int32x4) NotEqual(y Int32x4) Mask32x4 996 997 // NotEqual returns true if x does not equal y, elementwise. 998 // 999 // Asm: I32x4Ne 1000 func (x Uint32x4) NotEqual(y Uint32x4) Mask32x4 1001 1002 // NotEqual returns true if x does not equal y, elementwise. 1003 // 1004 // Asm: F32x4Ne 1005 func (x Float32x4) NotEqual(y Float32x4) Mask32x4 1006 1007 // NotEqual returns true if x does not equal y, elementwise. 1008 // 1009 // Asm: I64x2Ne 1010 func (x Int64x2) NotEqual(y Int64x2) Mask64x2 1011 1012 // NotEqual returns true if x does not equal y, elementwise. 1013 // 1014 // Asm: I64x2Ne 1015 func (x Uint64x2) NotEqual(y Uint64x2) Mask64x2 1016 1017 // NotEqual returns true if x does not equal y, elementwise. 1018 // 1019 // Asm: F64x2Ne 1020 func (x Float64x2) NotEqual(y Float64x2) Mask64x2 1021 1022 // OnesCount returns the elementwise population count (number of bits set). 1023 // 1024 // Asm: I8x16Popcnt 1025 func (x Int8x16) OnesCount() Int8x16 1026 1027 // Or returns the bitwise OR of x and y. 1028 // 1029 // Asm: V128Or 1030 func (x Int8x16) Or(y Int8x16) Int8x16 1031 1032 // Or returns the bitwise OR of x and y. 1033 // 1034 // Asm: V128Or 1035 func (x Uint8x16) Or(y Uint8x16) Uint8x16 1036 1037 // Or returns the bitwise OR of x and y. 1038 // 1039 // Asm: V128Or 1040 func (x Mask8x16) Or(y Mask8x16) Mask8x16 1041 1042 // Or returns the bitwise OR of x and y. 1043 // 1044 // Asm: V128Or 1045 func (x Int16x8) Or(y Int16x8) Int16x8 1046 1047 // Or returns the bitwise OR of x and y. 1048 // 1049 // Asm: V128Or 1050 func (x Uint16x8) Or(y Uint16x8) Uint16x8 1051 1052 // Or returns the bitwise OR of x and y. 1053 // 1054 // Asm: V128Or 1055 func (x Mask16x8) Or(y Mask16x8) Mask16x8 1056 1057 // Or returns the bitwise OR of x and y. 1058 // 1059 // Asm: V128Or 1060 func (x Int32x4) Or(y Int32x4) Int32x4 1061 1062 // Or returns the bitwise OR of x and y. 1063 // 1064 // Asm: V128Or 1065 func (x Uint32x4) Or(y Uint32x4) Uint32x4 1066 1067 // Or returns the bitwise OR of x and y. 1068 // 1069 // Asm: V128Or 1070 func (x Mask32x4) Or(y Mask32x4) Mask32x4 1071 1072 // Or returns the bitwise OR of x and y. 1073 // 1074 // Asm: V128Or 1075 func (x Int64x2) Or(y Int64x2) Int64x2 1076 1077 // Or returns the bitwise OR of x and y. 1078 // 1079 // Asm: V128Or 1080 func (x Uint64x2) Or(y Uint64x2) Uint64x2 1081 1082 // Or returns the bitwise OR of x and y. 1083 // 1084 // Asm: V128Or 1085 func (x Mask64x2) Or(y Mask64x2) Mask64x2 1086 1087 // RotateAllLeft 1088 // 1089 // Asm: I8x16RotateAllLeft 1090 func (x Int8x16) RotateAllLeft(shift uint64) Int8x16 1091 1092 // RotateAllLeft 1093 // 1094 // Asm: I8x16RotateAllLeft 1095 func (x Uint8x16) RotateAllLeft(shift uint64) Uint8x16 1096 1097 // RotateAllLeft 1098 // 1099 // Asm: I16x8RotateAllLeft 1100 func (x Int16x8) RotateAllLeft(shift uint64) Int16x8 1101 1102 // RotateAllLeft 1103 // 1104 // Asm: I16x8RotateAllLeft 1105 func (x Uint16x8) RotateAllLeft(shift uint64) Uint16x8 1106 1107 // RotateAllLeft 1108 // 1109 // Asm: I32x4RotateAllLeft 1110 func (x Int32x4) RotateAllLeft(shift uint64) Int32x4 1111 1112 // RotateAllLeft 1113 // 1114 // Asm: I32x4RotateAllLeft 1115 func (x Uint32x4) RotateAllLeft(shift uint64) Uint32x4 1116 1117 // RotateAllLeft 1118 // 1119 // Asm: I64x2RotateAllLeft 1120 func (x Int64x2) RotateAllLeft(shift uint64) Int64x2 1121 1122 // RotateAllLeft 1123 // 1124 // Asm: I64x2RotateAllLeft 1125 func (x Uint64x2) RotateAllLeft(shift uint64) Uint64x2 1126 1127 // RotateAllRight 1128 // 1129 // Asm: I8x16RotateAllRight 1130 func (x Int8x16) RotateAllRight(shift uint64) Int8x16 1131 1132 // RotateAllRight 1133 // 1134 // Asm: I8x16RotateAllRight 1135 func (x Uint8x16) RotateAllRight(shift uint64) Uint8x16 1136 1137 // RotateAllRight 1138 // 1139 // Asm: I16x8RotateAllRight 1140 func (x Int16x8) RotateAllRight(shift uint64) Int16x8 1141 1142 // RotateAllRight 1143 // 1144 // Asm: I16x8RotateAllRight 1145 func (x Uint16x8) RotateAllRight(shift uint64) Uint16x8 1146 1147 // RotateAllRight 1148 // 1149 // Asm: I32x4RotateAllRight 1150 func (x Int32x4) RotateAllRight(shift uint64) Int32x4 1151 1152 // RotateAllRight 1153 // 1154 // Asm: I32x4RotateAllRight 1155 func (x Uint32x4) RotateAllRight(shift uint64) Uint32x4 1156 1157 // RotateAllRight 1158 // 1159 // Asm: I64x2RotateAllRight 1160 func (x Int64x2) RotateAllRight(shift uint64) Int64x2 1161 1162 // RotateAllRight 1163 // 1164 // Asm: I64x2RotateAllRight 1165 func (x Uint64x2) RotateAllRight(shift uint64) Uint64x2 1166 1167 // Round returns the elementwise nearest integer, rounding ties to even. 1168 // 1169 // Asm: F32x4Nearest 1170 func (x Float32x4) Round() Float32x4 1171 1172 // Round returns the elementwise nearest integer, rounding ties to even. 1173 // 1174 // Asm: F64x2Nearest 1175 func (x Float64x2) Round() Float64x2 1176 1177 // SetElem sets the lane at the given index to y. 1178 // 1179 // Asm: I8x16ReplaceLane 1180 func (x Int8x16) SetElem(index uint8, y int8) Int8x16 1181 1182 // SetElem sets the lane at the given index to y. 1183 // 1184 // Asm: I8x16ReplaceLane 1185 func (x Uint8x16) SetElem(index uint8, y uint8) Uint8x16 1186 1187 // SetElem sets the lane at the given index to y. 1188 // 1189 // Asm: I16x8ReplaceLane 1190 func (x Int16x8) SetElem(index uint8, y int16) Int16x8 1191 1192 // SetElem sets the lane at the given index to y. 1193 // 1194 // Asm: I16x8ReplaceLane 1195 func (x Uint16x8) SetElem(index uint8, y uint16) Uint16x8 1196 1197 // SetElem sets the lane at the given index to y. 1198 // 1199 // Asm: I32x4ReplaceLane 1200 func (x Int32x4) SetElem(index uint8, y int32) Int32x4 1201 1202 // SetElem sets the lane at the given index to y. 1203 // 1204 // Asm: I32x4ReplaceLane 1205 func (x Uint32x4) SetElem(index uint8, y uint32) Uint32x4 1206 1207 // SetElem sets the lane at the given index to y. 1208 // 1209 // Asm: F32x4ReplaceLane 1210 func (x Float32x4) SetElem(index uint8, y float32) Float32x4 1211 1212 // SetElem sets the lane at the given index to y. 1213 // 1214 // Asm: I64x2ReplaceLane 1215 func (x Int64x2) SetElem(index uint8, y int64) Int64x2 1216 1217 // SetElem sets the lane at the given index to y. 1218 // 1219 // Asm: I64x2ReplaceLane 1220 func (x Uint64x2) SetElem(index uint8, y uint64) Uint64x2 1221 1222 // SetElem sets the lane at the given index to y. 1223 // 1224 // Asm: F64x2ReplaceLane 1225 func (x Float64x2) SetElem(index uint8, y float64) Float64x2 1226 1227 // ShiftAllLeft returns the elementwise left shift of x by y bits. 1228 // 1229 // Asm: I8x16Shl 1230 func (x Int8x16) ShiftAllLeft(y uint64) Int8x16 1231 1232 // ShiftAllLeft returns the elementwise left shift of x by y bits. 1233 // 1234 // Asm: I8x16Shl 1235 func (x Uint8x16) ShiftAllLeft(y uint64) Uint8x16 1236 1237 // ShiftAllLeft returns the elementwise left shift of x by y bits. 1238 // 1239 // Asm: I16x8Shl 1240 func (x Int16x8) ShiftAllLeft(y uint64) Int16x8 1241 1242 // ShiftAllLeft returns the elementwise left shift of x by y bits. 1243 // 1244 // Asm: I16x8Shl 1245 func (x Uint16x8) ShiftAllLeft(y uint64) Uint16x8 1246 1247 // ShiftAllLeft returns the elementwise left shift of x by y bits. 1248 // 1249 // Asm: I32x4Shl 1250 func (x Int32x4) ShiftAllLeft(y uint64) Int32x4 1251 1252 // ShiftAllLeft returns the elementwise left shift of x by y bits. 1253 // 1254 // Asm: I32x4Shl 1255 func (x Uint32x4) ShiftAllLeft(y uint64) Uint32x4 1256 1257 // ShiftAllLeft returns the elementwise left shift of x by y bits. 1258 // 1259 // Asm: I64x2Shl 1260 func (x Int64x2) ShiftAllLeft(y uint64) Int64x2 1261 1262 // ShiftAllLeft returns the elementwise left shift of x by y bits. 1263 // 1264 // Asm: I64x2Shl 1265 func (x Uint64x2) ShiftAllLeft(y uint64) Uint64x2 1266 1267 // ShiftAllRight returns the elementwise right shift of x by y bits. 1268 // 1269 // Asm: I8x16ShrS 1270 func (x Int8x16) ShiftAllRight(y uint64) Int8x16 1271 1272 // ShiftAllRight returns the elementwise right shift of x by y bits. 1273 // 1274 // Asm: I8x16ShrU 1275 func (x Uint8x16) ShiftAllRight(y uint64) Uint8x16 1276 1277 // ShiftAllRight returns the elementwise right shift of x by y bits. 1278 // 1279 // Asm: I16x8ShrS 1280 func (x Int16x8) ShiftAllRight(y uint64) Int16x8 1281 1282 // ShiftAllRight returns the elementwise right shift of x by y bits. 1283 // 1284 // Asm: I16x8ShrU 1285 func (x Uint16x8) ShiftAllRight(y uint64) Uint16x8 1286 1287 // ShiftAllRight returns the elementwise right shift of x by y bits. 1288 // 1289 // Asm: I32x4ShrS 1290 func (x Int32x4) ShiftAllRight(y uint64) Int32x4 1291 1292 // ShiftAllRight returns the elementwise right shift of x by y bits. 1293 // 1294 // Asm: I32x4ShrU 1295 func (x Uint32x4) ShiftAllRight(y uint64) Uint32x4 1296 1297 // ShiftAllRight returns the elementwise right shift of x by y bits. 1298 // 1299 // Asm: I64x2ShrS 1300 func (x Int64x2) ShiftAllRight(y uint64) Int64x2 1301 1302 // ShiftAllRight returns the elementwise right shift of x by y bits. 1303 // 1304 // Asm: I64x2ShrU 1305 func (x Uint64x2) ShiftAllRight(y uint64) Uint64x2 1306 1307 // Sqrt returns the elementwise square root of x. 1308 // 1309 // Asm: F32x4Sqrt 1310 func (x Float32x4) Sqrt() Float32x4 1311 1312 // Sqrt returns the elementwise square root of x. 1313 // 1314 // Asm: F64x2Sqrt 1315 func (x Float64x2) Sqrt() Float64x2 1316 1317 // Sub returns the result of subtracting y from x, elementwise. 1318 // 1319 // Asm: I8x16Sub 1320 func (x Int8x16) Sub(y Int8x16) Int8x16 1321 1322 // Sub returns the result of subtracting y from x, elementwise. 1323 // 1324 // Asm: I8x16Sub 1325 func (x Uint8x16) Sub(y Uint8x16) Uint8x16 1326 1327 // Sub returns the result of subtracting y from x, elementwise. 1328 // 1329 // Asm: I16x8Sub 1330 func (x Int16x8) Sub(y Int16x8) Int16x8 1331 1332 // Sub returns the result of subtracting y from x, elementwise. 1333 // 1334 // Asm: I16x8Sub 1335 func (x Uint16x8) Sub(y Uint16x8) Uint16x8 1336 1337 // Sub returns the result of subtracting y from x, elementwise. 1338 // 1339 // Asm: I32x4Sub 1340 func (x Int32x4) Sub(y Int32x4) Int32x4 1341 1342 // Sub returns the result of subtracting y from x, elementwise. 1343 // 1344 // Asm: I32x4Sub 1345 func (x Uint32x4) Sub(y Uint32x4) Uint32x4 1346 1347 // Sub returns the result of subtracting y from x, elementwise. 1348 // 1349 // Asm: F32x4Sub 1350 func (x Float32x4) Sub(y Float32x4) Float32x4 1351 1352 // Sub returns the result of subtracting y from x, elementwise. 1353 // 1354 // Asm: I64x2Sub 1355 func (x Int64x2) Sub(y Int64x2) Int64x2 1356 1357 // Sub returns the result of subtracting y from x, elementwise. 1358 // 1359 // Asm: I64x2Sub 1360 func (x Uint64x2) Sub(y Uint64x2) Uint64x2 1361 1362 // Sub returns the result of subtracting y from x, elementwise. 1363 // 1364 // Asm: F64x2Sub 1365 func (x Float64x2) Sub(y Float64x2) Float64x2 1366 1367 // SubSaturated returns the result of subtracting x and y, saturating instead of overflowing, elementwise. 1368 // 1369 // Asm: I8x16SubSatS 1370 func (x Int8x16) SubSaturated(y Int8x16) Int8x16 1371 1372 // SubSaturated returns the result of subtracting x and y, saturating instead of overflowing, elementwise. 1373 // 1374 // Asm: I8x16SubSatU 1375 func (x Uint8x16) SubSaturated(y Uint8x16) Uint8x16 1376 1377 // SubSaturated returns the result of subtracting x and y, saturating instead of overflowing, elementwise. 1378 // 1379 // Asm: I16x8SubSatS 1380 func (x Int16x8) SubSaturated(y Int16x8) Int16x8 1381 1382 // SubSaturated returns the result of subtracting x and y, saturating instead of overflowing, elementwise. 1383 // 1384 // Asm: I16x8SubSatU 1385 func (x Uint16x8) SubSaturated(y Uint16x8) Uint16x8 1386 1387 // Trunc returns the elementwise truncation of x. 1388 // 1389 // Asm: F32x4Trunc 1390 func (x Float32x4) Trunc() Float32x4 1391 1392 // Trunc returns the elementwise truncation of x. 1393 // 1394 // Asm: F64x2Trunc 1395 func (x Float64x2) Trunc() Float64x2 1396 1397 // Xor returns the bitwise XOR of x and y. 1398 // 1399 // Asm: V128Xor 1400 func (x Int8x16) Xor(y Int8x16) Int8x16 1401 1402 // Xor returns the bitwise XOR of x and y. 1403 // 1404 // Asm: V128Xor 1405 func (x Uint8x16) Xor(y Uint8x16) Uint8x16 1406 1407 // Xor returns the bitwise XOR of x and y. 1408 // 1409 // Asm: V128Xor 1410 func (x Mask8x16) Xor(y Mask8x16) Mask8x16 1411 1412 // Xor returns the bitwise XOR of x and y. 1413 // 1414 // Asm: V128Xor 1415 func (x Int16x8) Xor(y Int16x8) Int16x8 1416 1417 // Xor returns the bitwise XOR of x and y. 1418 // 1419 // Asm: V128Xor 1420 func (x Uint16x8) Xor(y Uint16x8) Uint16x8 1421 1422 // Xor returns the bitwise XOR of x and y. 1423 // 1424 // Asm: V128Xor 1425 func (x Mask16x8) Xor(y Mask16x8) Mask16x8 1426 1427 // Xor returns the bitwise XOR of x and y. 1428 // 1429 // Asm: V128Xor 1430 func (x Int32x4) Xor(y Int32x4) Int32x4 1431 1432 // Xor returns the bitwise XOR of x and y. 1433 // 1434 // Asm: V128Xor 1435 func (x Uint32x4) Xor(y Uint32x4) Uint32x4 1436 1437 // Xor returns the bitwise XOR of x and y. 1438 // 1439 // Asm: V128Xor 1440 func (x Mask32x4) Xor(y Mask32x4) Mask32x4 1441 1442 // Xor returns the bitwise XOR of x and y. 1443 // 1444 // Asm: V128Xor 1445 func (x Int64x2) Xor(y Int64x2) Int64x2 1446 1447 // Xor returns the bitwise XOR of x and y. 1448 // 1449 // Asm: V128Xor 1450 func (x Uint64x2) Xor(y Uint64x2) Uint64x2 1451 1452 // Xor returns the bitwise XOR of x and y. 1453 // 1454 // Asm: V128Xor 1455 func (x Mask64x2) Xor(y Mask64x2) Mask64x2 1456 1457 // ToMask translates an Int8x16 vector to a Mask8x16 mask vector 1458 // zero becomes false, not-zero becomes true 1459 func (x Int8x16) ToMask() Mask8x16 1460 1461 // ToInt8x16 translates a Mask8x16 mask vector to an Int8x16 int vector 1462 // false becomes zero, true becomes -1 1463 func (x Mask8x16) ToInt8x16() Int8x16 1464 1465 // ToMask translates an Int16x8 vector to a Mask16x8 mask vector 1466 // zero becomes false, not-zero becomes true 1467 func (x Int16x8) ToMask() Mask16x8 1468 1469 // ToInt16x8 translates a Mask16x8 mask vector to an Int16x8 int vector 1470 // false becomes zero, true becomes -1 1471 func (x Mask16x8) ToInt16x8() Int16x8 1472 1473 // ToMask translates an Int32x4 vector to a Mask32x4 mask vector 1474 // zero becomes false, not-zero becomes true 1475 func (x Int32x4) ToMask() Mask32x4 1476 1477 // ToInt32x4 translates a Mask32x4 mask vector to an Int32x4 int vector 1478 // false becomes zero, true becomes -1 1479 func (x Mask32x4) ToInt32x4() Int32x4 1480 1481 // ToMask translates an Int64x2 vector to a Mask64x2 mask vector 1482 // zero becomes false, not-zero becomes true 1483 func (x Int64x2) ToMask() Mask64x2 1484 1485 // ToInt64x2 translates a Mask64x2 mask vector to an Int64x2 int vector 1486 // false becomes zero, true becomes -1 1487 func (x Mask64x2) ToInt64x2() Int64x2 1488 1489 // Masked returns x but with elements zeroed where mask is false. 1490 func (x Int8x16) Masked(mask Mask8x16) Int8x16 { 1491 im := mask.ToInt8x16() 1492 return im.And(x) 1493 } 1494 1495 // IfElse returns x but with elements set to y where mask is false. 1496 func (x Int8x16) IfElse(mask Mask8x16, y Int8x16) Int8x16 { 1497 im := mask.ToInt8x16() 1498 return x.BitSelect(y, im) 1499 } 1500 1501 // Masked returns x but with elements zeroed where mask is false. 1502 func (x Int16x8) Masked(mask Mask16x8) Int16x8 { 1503 im := mask.ToInt16x8() 1504 return im.And(x) 1505 } 1506 1507 // IfElse returns x but with elements set to y where mask is false. 1508 func (x Int16x8) IfElse(mask Mask16x8, y Int16x8) Int16x8 { 1509 im := mask.ToInt16x8() 1510 return x.BitSelect(y, im) 1511 } 1512 1513 // Masked returns x but with elements zeroed where mask is false. 1514 func (x Int32x4) Masked(mask Mask32x4) Int32x4 { 1515 im := mask.ToInt32x4() 1516 return im.And(x) 1517 } 1518 1519 // IfElse returns x but with elements set to y where mask is false. 1520 func (x Int32x4) IfElse(mask Mask32x4, y Int32x4) Int32x4 { 1521 im := mask.ToInt32x4() 1522 return x.BitSelect(y, im) 1523 } 1524 1525 // Masked returns x but with elements zeroed where mask is false. 1526 func (x Int64x2) Masked(mask Mask64x2) Int64x2 { 1527 im := mask.ToInt64x2() 1528 return im.And(x) 1529 } 1530 1531 // IfElse returns x but with elements set to y where mask is false. 1532 func (x Int64x2) IfElse(mask Mask64x2, y Int64x2) Int64x2 { 1533 im := mask.ToInt64x2() 1534 return x.BitSelect(y, im) 1535 } 1536 1537 // Masked returns x but with elements zeroed where mask is false. 1538 func (x Uint8x16) Masked(mask Mask8x16) Uint8x16 { 1539 im := mask.ToInt8x16().ToBits() 1540 return im.And(x) 1541 } 1542 1543 // IfElse returns x but with elements set to y where mask is false. 1544 func (x Uint8x16) IfElse(mask Mask8x16, y Uint8x16) Uint8x16 { 1545 im := mask.ToInt8x16().ToBits() 1546 return x.BitSelect(y, im) 1547 } 1548 1549 // Masked returns x but with elements zeroed where mask is false. 1550 func (x Uint16x8) Masked(mask Mask16x8) Uint16x8 { 1551 im := mask.ToInt16x8().ToBits() 1552 return im.And(x) 1553 } 1554 1555 // IfElse returns x but with elements set to y where mask is false. 1556 func (x Uint16x8) IfElse(mask Mask16x8, y Uint16x8) Uint16x8 { 1557 im := mask.ToInt16x8().ToBits() 1558 return x.BitSelect(y, im) 1559 } 1560 1561 // Masked returns x but with elements zeroed where mask is false. 1562 func (x Uint32x4) Masked(mask Mask32x4) Uint32x4 { 1563 im := mask.ToInt32x4().ToBits() 1564 return im.And(x) 1565 } 1566 1567 // IfElse returns x but with elements set to y where mask is false. 1568 func (x Uint32x4) IfElse(mask Mask32x4, y Uint32x4) Uint32x4 { 1569 im := mask.ToInt32x4().ToBits() 1570 return x.BitSelect(y, im) 1571 } 1572 1573 // Masked returns x but with elements zeroed where mask is false. 1574 func (x Uint64x2) Masked(mask Mask64x2) Uint64x2 { 1575 im := mask.ToInt64x2().ToBits() 1576 return im.And(x) 1577 } 1578 1579 // IfElse returns x but with elements set to y where mask is false. 1580 func (x Uint64x2) IfElse(mask Mask64x2, y Uint64x2) Uint64x2 { 1581 im := mask.ToInt64x2().ToBits() 1582 return x.BitSelect(y, im) 1583 } 1584 1585 // Masked returns x but with elements zeroed where mask is false. 1586 func (x Float32x4) Masked(mask Mask32x4) Float32x4 { 1587 im := mask.ToInt32x4().ToBits() 1588 return im.And(x.ToBits()).BitsToFloat32() 1589 } 1590 1591 // IfElse returns x but with elements set to y where mask is false. 1592 func (x Float32x4) IfElse(mask Mask32x4, y Float32x4) Float32x4 { 1593 im := mask.ToInt32x4().ToBits() 1594 ix := x.ToBits() 1595 iy := y.ToBits() 1596 return ix.BitSelect(iy, im).BitsToFloat32() 1597 } 1598 1599 // Masked returns x but with elements zeroed where mask is false. 1600 func (x Float64x2) Masked(mask Mask64x2) Float64x2 { 1601 im := mask.ToInt64x2().ToBits() 1602 return im.And(x.ToBits()).BitsToFloat64() 1603 } 1604 1605 // IfElse returns x but with elements set to y where mask is false. 1606 func (x Float64x2) IfElse(mask Mask64x2, y Float64x2) Float64x2 { 1607 im := mask.ToInt64x2().ToBits() 1608 ix := x.ToBits() 1609 iy := y.ToBits() 1610 return ix.BitSelect(iy, im).BitsToFloat64() 1611 } 1612 1613 // String returns a string representation of SIMD vector x. 1614 func (x Int8x16) String() string { 1615 var s [16]int8 1616 x.StoreArray(&s) 1617 return sliceToString(s[:]) 1618 } 1619 1620 // String returns a string representation of SIMD vector x. 1621 func (x Int16x8) String() string { 1622 var s [8]int16 1623 x.StoreArray(&s) 1624 return sliceToString(s[:]) 1625 } 1626 1627 // String returns a string representation of SIMD vector x. 1628 func (x Int32x4) String() string { 1629 var s [4]int32 1630 x.StoreArray(&s) 1631 return sliceToString(s[:]) 1632 } 1633 1634 // String returns a string representation of SIMD vector x. 1635 func (x Int64x2) String() string { 1636 var s [2]int64 1637 x.StoreArray(&s) 1638 return sliceToString(s[:]) 1639 } 1640 1641 // String returns a string representation of SIMD vector x. 1642 func (x Uint8x16) String() string { 1643 var s [16]uint8 1644 x.StoreArray(&s) 1645 return sliceToString(s[:]) 1646 } 1647 1648 // String returns a string representation of SIMD vector x. 1649 func (x Uint16x8) String() string { 1650 var s [8]uint16 1651 x.StoreArray(&s) 1652 return sliceToString(s[:]) 1653 } 1654 1655 // String returns a string representation of SIMD vector x. 1656 func (x Uint32x4) String() string { 1657 var s [4]uint32 1658 x.StoreArray(&s) 1659 return sliceToString(s[:]) 1660 } 1661 1662 // String returns a string representation of SIMD vector x. 1663 func (x Uint64x2) String() string { 1664 var s [2]uint64 1665 x.StoreArray(&s) 1666 return sliceToString(s[:]) 1667 } 1668 1669 // String returns a string representation of SIMD vector x. 1670 func (x Float32x4) String() string { 1671 var s [4]float32 1672 x.StoreArray(&s) 1673 return sliceToString(s[:]) 1674 } 1675 1676 // String returns a string representation of SIMD vector x. 1677 func (x Float64x2) String() string { 1678 var s [2]float64 1679 x.StoreArray(&s) 1680 return sliceToString(s[:]) 1681 } 1682 1683 // String returns a string representation of SIMD mask x. 1684 func (x Mask8x16) String() string { 1685 var s [16]int8 1686 x.ToInt8x16().Neg().StoreArray(&s) 1687 return sliceToString(s[:]) 1688 } 1689 1690 // String returns a string representation of SIMD mask x. 1691 func (x Mask16x8) String() string { 1692 var s [8]int16 1693 x.ToInt16x8().Neg().StoreArray(&s) 1694 return sliceToString(s[:]) 1695 } 1696 1697 // String returns a string representation of SIMD mask x. 1698 func (x Mask32x4) String() string { 1699 var s [4]int32 1700 x.ToInt32x4().Neg().StoreArray(&s) 1701 return sliceToString(s[:]) 1702 } 1703 1704 // String returns a string representation of SIMD mask x. 1705 func (x Mask64x2) String() string { 1706 var s [2]int64 1707 x.ToInt64x2().Neg().StoreArray(&s) 1708 return sliceToString(s[:]) 1709 } 1710 1711 // BitsToFloat32 reinterprets the bits of a Uint32x4 vector as a Float32x4 vector 1712 func (x Uint32x4) BitsToFloat32() Float32x4 1713 1714 // ToBits reinterprets the bits of a Float32x4 vector as a Uint32x4 vector 1715 func (x Float32x4) ToBits() Uint32x4 1716 1717 // BitsToFloat64 reinterprets the bits of a Uint64x2 vector as a Float64x2 vector 1718 func (x Uint64x2) BitsToFloat64() Float64x2 1719 1720 // ToBits reinterprets the bits of a Float64x2 vector as a Uint64x2 vector 1721 func (x Float64x2) ToBits() Uint64x2 1722 1723 // BitsToInt8 reinterprets the bits of a Uint8x16 vector as a Int8x16 vector 1724 func (x Uint8x16) BitsToInt8() Int8x16 1725 1726 // ConvertToInt8 converts a Uint8x16 vector to a Int8x16 vector 1727 func (x Uint8x16) ConvertToInt8() Int8x16 1728 1729 // ConvertToUint8 converts a Int8x16 vector to a Uint8x16 vector 1730 func (x Int8x16) ConvertToUint8() Uint8x16 1731 1732 // ToBits reinterprets the bits of a Int8x16 vector as a Uint8x16 vector 1733 func (x Int8x16) ToBits() Uint8x16 1734 1735 // BitsToInt16 reinterprets the bits of a Uint16x8 vector as a Int16x8 vector 1736 func (x Uint16x8) BitsToInt16() Int16x8 1737 1738 // ConvertToInt16 converts a Uint16x8 vector to a Int16x8 vector 1739 func (x Uint16x8) ConvertToInt16() Int16x8 1740 1741 // ConvertToUint16 converts a Int16x8 vector to a Uint16x8 vector 1742 func (x Int16x8) ConvertToUint16() Uint16x8 1743 1744 // ToBits reinterprets the bits of a Int16x8 vector as a Uint16x8 vector 1745 func (x Int16x8) ToBits() Uint16x8 1746 1747 // BitsToInt32 reinterprets the bits of a Uint32x4 vector as a Int32x4 vector 1748 func (x Uint32x4) BitsToInt32() Int32x4 1749 1750 // ConvertToInt32 converts a Uint32x4 vector to a Int32x4 vector 1751 func (x Uint32x4) ConvertToInt32() Int32x4 1752 1753 // ConvertToUint32 converts a Int32x4 vector to a Uint32x4 vector 1754 func (x Int32x4) ConvertToUint32() Uint32x4 1755 1756 // ToBits reinterprets the bits of a Int32x4 vector as a Uint32x4 vector 1757 func (x Int32x4) ToBits() Uint32x4 1758 1759 // BitsToInt64 reinterprets the bits of a Uint64x2 vector as a Int64x2 vector 1760 func (x Uint64x2) BitsToInt64() Int64x2 1761 1762 // ConvertToInt64 converts a Uint64x2 vector to a Int64x2 vector 1763 func (x Uint64x2) ConvertToInt64() Int64x2 1764 1765 // ConvertToUint64 converts a Int64x2 vector to a Uint64x2 vector 1766 func (x Int64x2) ConvertToUint64() Uint64x2 1767 1768 // ToBits reinterprets the bits of a Int64x2 vector as a Uint64x2 vector 1769 func (x Int64x2) ToBits() Uint64x2 1770 1771 // ReshapeToUint16s reinterprets the bits of a Uint8x16 vector as a Uint16x8 vector 1772 func (x Uint8x16) ReshapeToUint16s() Uint16x8 1773 1774 // ReshapeToUint32s reinterprets the bits of a Uint8x16 vector as a Uint32x4 vector 1775 func (x Uint8x16) ReshapeToUint32s() Uint32x4 1776 1777 // ReshapeToUint64s reinterprets the bits of a Uint8x16 vector as a Uint64x2 vector 1778 func (x Uint8x16) ReshapeToUint64s() Uint64x2 1779 1780 // ReshapeToUint8s reinterprets the bits of a Uint16x8 vector as a Uint8x16 vector 1781 func (x Uint16x8) ReshapeToUint8s() Uint8x16 1782 1783 // ReshapeToUint32s reinterprets the bits of a Uint16x8 vector as a Uint32x4 vector 1784 func (x Uint16x8) ReshapeToUint32s() Uint32x4 1785 1786 // ReshapeToUint64s reinterprets the bits of a Uint16x8 vector as a Uint64x2 vector 1787 func (x Uint16x8) ReshapeToUint64s() Uint64x2 1788 1789 // ReshapeToUint8s reinterprets the bits of a Uint32x4 vector as a Uint8x16 vector 1790 func (x Uint32x4) ReshapeToUint8s() Uint8x16 1791 1792 // ReshapeToUint16s reinterprets the bits of a Uint32x4 vector as a Uint16x8 vector 1793 func (x Uint32x4) ReshapeToUint16s() Uint16x8 1794 1795 // ReshapeToUint64s reinterprets the bits of a Uint32x4 vector as a Uint64x2 vector 1796 func (x Uint32x4) ReshapeToUint64s() Uint64x2 1797 1798 // ReshapeToUint8s reinterprets the bits of a Uint64x2 vector as a Uint8x16 vector 1799 func (x Uint64x2) ReshapeToUint8s() Uint8x16 1800 1801 // ReshapeToUint16s reinterprets the bits of a Uint64x2 vector as a Uint16x8 vector 1802 func (x Uint64x2) ReshapeToUint16s() Uint16x8 1803 1804 // ReshapeToUint32s reinterprets the bits of a Uint64x2 vector as a Uint32x4 vector 1805 func (x Uint64x2) ReshapeToUint32s() Uint32x4 1806