|
61 | 61 |
|
62 | 62 | ;; Swizzle and shuffle
|
63 | 63 | (func (export "v8x16_swizzle") (param v128 v128) (result v128)
|
64 |
| - (v8x16.swizzle (local.get 0) (local.get 1))) |
| 64 | + (i8x16.swizzle (local.get 0) (local.get 1))) |
65 | 65 | (func (export "v8x16_shuffle-1") (param v128 v128) (result v128)
|
66 |
| - (v8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (local.get 0) (local.get 1))) |
| 66 | + (i8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (local.get 0) (local.get 1))) |
67 | 67 | (func (export "v8x16_shuffle-2") (param v128 v128) (result v128)
|
68 |
| - (v8x16.shuffle 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 (local.get 0) (local.get 1))) |
| 68 | + (i8x16.shuffle 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 (local.get 0) (local.get 1))) |
69 | 69 | (func (export "v8x16_shuffle-3") (param v128 v128) (result v128)
|
70 |
| - (v8x16.shuffle 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 (local.get 0) (local.get 1))) |
| 70 | + (i8x16.shuffle 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 (local.get 0) (local.get 1))) |
71 | 71 | (func (export "v8x16_shuffle-4") (param v128 v128) (result v128)
|
72 |
| - (v8x16.shuffle 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 (local.get 0) (local.get 1))) |
| 72 | + (i8x16.shuffle 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 (local.get 0) (local.get 1))) |
73 | 73 | (func (export "v8x16_shuffle-5") (param v128 v128) (result v128)
|
74 |
| - (v8x16.shuffle 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (local.get 0) (local.get 1))) |
| 74 | + (i8x16.shuffle 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (local.get 0) (local.get 1))) |
75 | 75 | (func (export "v8x16_shuffle-6") (param v128 v128) (result v128)
|
76 |
| - (v8x16.shuffle 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 (local.get 0) (local.get 1))) |
| 76 | + (i8x16.shuffle 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 (local.get 0) (local.get 1))) |
77 | 77 | (func (export "v8x16_shuffle-7") (param v128 v128) (result v128)
|
78 |
| - (v8x16.shuffle 0 0 0 0 0 0 0 0 16 16 16 16 16 16 16 16 (local.get 0) (local.get 1))) |
| 78 | + (i8x16.shuffle 0 0 0 0 0 0 0 0 16 16 16 16 16 16 16 16 (local.get 0) (local.get 1))) |
79 | 79 | )
|
80 | 80 |
|
81 | 81 | (assert_return (invoke "i8x16_extract_lane_s-first" (v128.const i8x16 127 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) (i32.const 127))
|
|
501 | 501 |
|
502 | 502 | ;; Invalid types for swizzle and shuffle values
|
503 | 503 | (assert_invalid (module (func (result v128)
|
504 |
| - (v8x16.swizzle (i32.const 1) (v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)))) "type mismatch") |
| 504 | + (i8x16.swizzle (i32.const 1) (v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)))) "type mismatch") |
505 | 505 | (assert_invalid (module (func (result v128)
|
506 |
| - (v8x16.swizzle (v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0) (i32.const 2)))) "type mismatch") |
| 506 | + (i8x16.swizzle (v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0) (i32.const 2)))) "type mismatch") |
507 | 507 | (assert_invalid (module (func (result v128)
|
508 |
| - (v8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (f32.const 3.0) |
| 508 | + (i8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (f32.const 3.0) |
509 | 509 | (v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)))) "type mismatch")
|
510 | 510 | (assert_invalid (module (func (result v128)
|
511 |
| - (v8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
| 511 | + (i8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
512 | 512 | (v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0) (f32.const 4.0)))) "type mismatch")
|
513 | 513 |
|
514 |
| -;; v8x16.shuffle: the 1st argument must be 16-byte literals in 0..32 |
| 514 | +;; i8x16.shuffle: the 1st argument must be 16-byte literals in 0..32 |
515 | 515 | (assert_malformed (module quote "(func (param v128) (result v128)"
|
516 |
| - "(v8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 (local.get 0) (local.get 0)))") |
| 516 | + "(i8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 (local.get 0) (local.get 0)))") |
517 | 517 | "invalid lane length")
|
518 | 518 | (assert_malformed (module quote "(func (param v128) (result v128)"
|
519 |
| - "(v8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 (local.get 0) (local.get 0)))") |
| 519 | + "(i8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 (local.get 0) (local.get 0)))") |
520 | 520 | "invalid lane length")
|
521 | 521 | (assert_malformed (module quote "(func (result v128)"
|
522 |
| - "(v8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 -1" |
| 522 | + "(i8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 -1" |
523 | 523 | "(v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)"
|
524 | 524 | "(v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)))") "malformed lane index")
|
525 | 525 | (assert_malformed (module quote "(func (result v128)"
|
526 |
| - "(v8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 256" |
| 526 | + "(i8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 256" |
527 | 527 | "(v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)"
|
528 | 528 | "(v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)))") "malformed lane index")
|
529 | 529 | (assert_invalid (module (func (result v128)
|
530 |
| - (v8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 255 |
| 530 | + (i8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 255 |
531 | 531 | (v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)
|
532 | 532 | (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)))) "invalid lane index")
|
533 | 533 |
|
|
543 | 543 |
|
544 | 544 | ;; Old shuffle instruction names will not work
|
545 | 545 | (assert_malformed (module quote "(func (result v128) "
|
546 |
| - "(v8x16.shuffle1 (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) " |
| 546 | + "(i8x16.shuffle1 (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) " |
547 | 547 | "(v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)))")
|
548 | 548 | "unknown operator")
|
549 | 549 | (assert_malformed (module quote "(func (result v128) "
|
550 |
| - "(v8x16.shuffle2_imm 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 " |
| 550 | + "(i8x16.shuffle2_imm 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 " |
551 | 551 | "(v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) "
|
552 | 552 | "(v128.const i8x16 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31)))")
|
553 | 553 | "unknown operator")
|
554 |
| -;; v8x16 not i8x16 |
| 554 | +;; i8x16 not v8x16 |
555 | 555 | (assert_malformed (module quote "(func (result v128) "
|
556 |
| - "(i8x16.swizzle (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) " |
| 556 | + "(v8x16.swizzle (v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) " |
557 | 557 | "(v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)))")
|
558 | 558 | "unknown operator")
|
559 | 559 | (assert_malformed (module quote "(func (result v128) "
|
560 |
| - "(i8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 " |
| 560 | + "(v8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 " |
561 | 561 | "(v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) "
|
562 | 562 | "(v128.const i8x16 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31)))")
|
563 | 563 | "unknown operator")
|
|
596 | 596 | (assert_malformed (module quote "(func (result v128) (i32x4.replace_lane inf (v128.const i32x4 0 0 0 0) (i32.const 1)))") "unexpected token")
|
597 | 597 | (assert_malformed (module quote "(func (result v128) (f32x4.replace_lane -inf (v128.const f32x4 0 0 0 0) (f32.const 1.1)))") "unexpected token")
|
598 | 598 |
|
599 |
| -;; v8x16.shuffle expects a 16-byte literals as first argument |
| 599 | +;; i8x16.shuffle expects a 16-byte literals as first argument |
600 | 600 | (assert_malformed (module quote "(func (result v128) "
|
601 |
| - "(v8x16.shuffle (v128.const i8x16 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31) " |
| 601 | + "(i8x16.shuffle (v128.const i8x16 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31) " |
602 | 602 | "(v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0) "
|
603 | 603 | "(v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)))") "invalid lane length")
|
604 | 604 | (assert_malformed (module quote "(func (result v128) "
|
605 |
| - "(v8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15.0) " |
| 605 | + "(i8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15.0) " |
606 | 606 | "(v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0) "
|
607 | 607 | "(v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)))") "malformed lane index")
|
608 | 608 | (assert_malformed (module quote "(func (result v128) "
|
609 |
| - "(v8x16.shuffle 0.5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) " |
| 609 | + "(i8x16.shuffle 0.5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) " |
610 | 610 | "(v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0) "
|
611 | 611 | "(v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)))") "malformed lane index")
|
612 | 612 | (assert_malformed (module quote "(func (result v128) "
|
613 |
| - "(v8x16.shuffle -inf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) " |
| 613 | + "(i8x16.shuffle -inf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) " |
614 | 614 | "(v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0) "
|
615 | 615 | "(v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)))") "malformed lane index")
|
616 | 616 | (assert_malformed (module quote "(func (result v128) "
|
617 |
| - "(v8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 inf) " |
| 617 | + "(i8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 inf) " |
618 | 618 | "(v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0) "
|
619 | 619 | "(v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)))") "malformed lane index")
|
620 | 620 | (assert_malformed (module quote "(func (result v128) "
|
621 |
| - "(v8x16.shuffle nan 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) " |
| 621 | + "(i8x16.shuffle nan 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15) " |
622 | 622 | "(v128.const i8x16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0) "
|
623 | 623 | "(v128.const i8x16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)))") "malformed lane index")
|
624 | 624 |
|
|
664 | 664 |
|
665 | 665 | ;; i8x16.replace outputs as shuffle operand
|
666 | 666 | (func (export "as-v8x16_swizzle-operand") (param v128 i32 v128) (result v128)
|
667 |
| - (v8x16.swizzle (i8x16.replace_lane 0 (local.get 0) (local.get 1)) (local.get 2))) |
| 667 | + (i8x16.swizzle (i8x16.replace_lane 0 (local.get 0) (local.get 1)) (local.get 2))) |
668 | 668 | (func (export "as-v8x16_shuffle-operands") (param v128 i32 v128 i32) (result v128)
|
669 |
| - (v8x16.shuffle 16 1 18 3 20 5 22 7 24 9 26 11 28 13 30 15 |
| 669 | + (i8x16.shuffle 16 1 18 3 20 5 22 7 24 9 26 11 28 13 30 15 |
670 | 670 | (i8x16.replace_lane 0 (local.get 0) (local.get 1))
|
671 | 671 | (i8x16.replace_lane 15 (local.get 2) (local.get 3))))
|
672 | 672 | )
|
|
726 | 726 | (i64x2.add (i64x2.replace_lane 0 (local.get 0) (local.get 1)) (i64x2.replace_lane 1 (local.get 2) (local.get 3))))
|
727 | 727 |
|
728 | 728 | (func (export "swizzle-as-i8x16_add-operands") (param v128 v128 v128 v128) (result v128)
|
729 |
| - (i8x16.add (v8x16.swizzle (local.get 0) (local.get 1)) (v8x16.swizzle (local.get 2) (local.get 3)))) |
| 729 | + (i8x16.add (i8x16.swizzle (local.get 0) (local.get 1)) (i8x16.swizzle (local.get 2) (local.get 3)))) |
730 | 730 | (func (export "shuffle-as-i8x16_sub-operands") (param v128 v128 v128 v128) (result v128)
|
731 |
| - (i8x16.sub (v8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (local.get 0) (local.get 1)) |
732 |
| - (v8x16.shuffle 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 (local.get 2) (local.get 3)))) |
| 731 | + (i8x16.sub (i8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (local.get 0) (local.get 1)) |
| 732 | + (i8x16.shuffle 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 (local.get 2) (local.get 3)))) |
733 | 733 |
|
734 | 734 | ;; Boolean horizontal reductions
|
735 | 735 | (func (export "as-i8x16_any_true-operand") (param v128 i32) (result i32)
|
|
742 | 742 | (i32x4.any_true (i64x2.replace_lane 0 (local.get 0) (local.get 1))))
|
743 | 743 |
|
744 | 744 | (func (export "swizzle-as-i8x16_all_true-operands") (param v128 v128) (result i32)
|
745 |
| - (i8x16.all_true (v8x16.swizzle (local.get 0) (local.get 1)))) |
| 745 | + (i8x16.all_true (i8x16.swizzle (local.get 0) (local.get 1)))) |
746 | 746 | (func (export "shuffle-as-i8x16_any_true-operands") (param v128 v128) (result i32)
|
747 |
| - (i8x16.any_true (v8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (local.get 0) (local.get 1)))) |
| 747 | + (i8x16.any_true (i8x16.shuffle 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 (local.get 0) (local.get 1)))) |
748 | 748 | )
|
749 | 749 |
|
750 | 750 | (assert_return (invoke "as-i8x16_splat-operand" (v128.const i8x16 0xff 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1))
|
|
842 | 842 | (return (global.get $g)))
|
843 | 843 |
|
844 | 844 | (func (export "as-return-value-2") (param v128 v128) (result v128)
|
845 |
| - (return (v8x16.swizzle (local.get 0) (local.get 1)))) |
| 845 | + (return (i8x16.swizzle (local.get 0) (local.get 1)))) |
846 | 846 | (func (export "as-global_set-value-2") (param v128 v128) (result v128)
|
847 |
| - (global.set $h (v8x16.shuffle 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31 (local.get 0) (local.get 1))) |
| 847 | + (global.set $h (i8x16.shuffle 0 1 2 3 4 5 6 7 24 25 26 27 28 29 30 31 (local.get 0) (local.get 1))) |
848 | 848 | (return (global.get $h)))
|
849 | 849 |
|
850 | 850 | (func (export "as-local_set-value-1") (param v128) (result i64) (local i64)
|
|
1236 | 1236 | )
|
1237 | 1237 | (assert_malformed
|
1238 | 1238 | (module quote
|
1239 |
| - "(func $v8x16.shuffle-1st-arg-empty (result v128)" |
1240 |
| - " (v8x16.shuffle" |
| 1239 | + "(func $i8x16.shuffle-1st-arg-empty (result v128)" |
| 1240 | + " (i8x16.shuffle" |
1241 | 1241 | " (v128.const i8x16 0 1 2 3 5 6 6 7 8 9 10 11 12 13 14 15)"
|
1242 | 1242 | " (v128.const i8x16 1 2 3 5 6 6 7 8 9 10 11 12 13 14 15 16)"
|
1243 | 1243 | " )"
|
|
1247 | 1247 | )
|
1248 | 1248 | (assert_invalid
|
1249 | 1249 | (module
|
1250 |
| - (func $v8x16.shuffle-2nd-arg-empty (result v128) |
1251 |
| - (v8x16.shuffle 0 1 2 3 5 6 6 7 8 9 10 11 12 13 14 15 |
| 1250 | + (func $i8x16.shuffle-2nd-arg-empty (result v128) |
| 1251 | + (i8x16.shuffle 0 1 2 3 5 6 6 7 8 9 10 11 12 13 14 15 |
1252 | 1252 | (v128.const i8x16 1 2 3 5 6 6 7 8 9 10 11 12 13 14 15 16)
|
1253 | 1253 | )
|
1254 | 1254 | )
|
|
1257 | 1257 | )
|
1258 | 1258 | (assert_malformed
|
1259 | 1259 | (module quote
|
1260 |
| - "(func $v8x16.shuffle-arg-empty (result v128)" |
1261 |
| - " (v8x16.shuffle)" |
| 1260 | + "(func $i8x16.shuffle-arg-empty (result v128)" |
| 1261 | + " (i8x16.shuffle)" |
1262 | 1262 | ")"
|
1263 | 1263 | )
|
1264 | 1264 | "invalid lane length"
|
|
0 commit comments