summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/wasm/spec/relaxed-simd/relaxed_laneselect.wast.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/wasm/spec/relaxed-simd/relaxed_laneselect.wast.js')
-rw-r--r--js/src/jit-test/tests/wasm/spec/relaxed-simd/relaxed_laneselect.wast.js163
1 files changed, 163 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/wasm/spec/relaxed-simd/relaxed_laneselect.wast.js b/js/src/jit-test/tests/wasm/spec/relaxed-simd/relaxed_laneselect.wast.js
new file mode 100644
index 0000000000..2fa9b5fbae
--- /dev/null
+++ b/js/src/jit-test/tests/wasm/spec/relaxed-simd/relaxed_laneselect.wast.js
@@ -0,0 +1,163 @@
+/* Copyright 2021 Mozilla Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// ./test/core/relaxed-simd/relaxed_laneselect.wast
+
+// ./test/core/relaxed-simd/relaxed_laneselect.wast:3
+let $0 = instantiate(`(module
+ (func (export "i8x16.relaxed_laneselect") (param v128 v128 v128) (result v128) (i8x16.relaxed_laneselect (local.get 0) (local.get 1) (local.get 2)))
+ (func (export "i16x8.relaxed_laneselect") (param v128 v128 v128) (result v128) (i16x8.relaxed_laneselect (local.get 0) (local.get 1) (local.get 2)))
+ (func (export "i32x4.relaxed_laneselect") (param v128 v128 v128) (result v128) (i32x4.relaxed_laneselect (local.get 0) (local.get 1) (local.get 2)))
+ (func (export "i64x2.relaxed_laneselect") (param v128 v128 v128) (result v128) (i64x2.relaxed_laneselect (local.get 0) (local.get 1) (local.get 2)))
+
+ (func (export "i8x16.relaxed_laneselect_cmp") (param v128 v128 v128) (result v128)
+ (i8x16.eq
+ (i8x16.relaxed_laneselect (local.get 0) (local.get 1) (local.get 2))
+ (i8x16.relaxed_laneselect (local.get 0) (local.get 1) (local.get 2))))
+ (func (export "i16x8.relaxed_laneselect_cmp") (param v128 v128 v128) (result v128)
+ (i16x8.eq
+ (i16x8.relaxed_laneselect (local.get 0) (local.get 1) (local.get 2))
+ (i16x8.relaxed_laneselect (local.get 0) (local.get 1) (local.get 2))))
+ (func (export "i32x4.relaxed_laneselect_cmp") (param v128 v128 v128) (result v128)
+ (i32x4.eq
+ (i32x4.relaxed_laneselect (local.get 0) (local.get 1) (local.get 2))
+ (i32x4.relaxed_laneselect (local.get 0) (local.get 1) (local.get 2))))
+ (func (export "i64x2.relaxed_laneselect_cmp") (param v128 v128 v128) (result v128)
+ (i64x2.eq
+ (i64x2.relaxed_laneselect (local.get 0) (local.get 1) (local.get 2))
+ (i64x2.relaxed_laneselect (local.get 0) (local.get 1) (local.get 2))))
+)`);
+
+// ./test/core/relaxed-simd/relaxed_laneselect.wast:27
+assert_return(
+ () => invoke($0, `i8x16.relaxed_laneselect`, [
+ i8x16([0x0, 0x1, 0x12, 0x12, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf]),
+ i8x16([0x10, 0x11, 0x34, 0x34, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f]),
+ i8x16([0xff, 0x0, 0xf0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0]),
+ ]),
+ [
+ either(
+ i8x16([0x0, 0x11, 0x14, 0x32, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f]),
+ i8x16([0x0, 0x11, 0x12, 0x34, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f]),
+ ),
+ ],
+);
+
+// ./test/core/relaxed-simd/relaxed_laneselect.wast:34
+assert_return(
+ () => invoke($0, `i16x8.relaxed_laneselect`, [
+ i16x8([0x0, 0x1, 0x1234, 0x1234, 0x4, 0x5, 0x6, 0x7]),
+ i16x8([0x8, 0x9, 0x5678, 0x5678, 0xc, 0xd, 0xe, 0xf]),
+ i16x8([0xffff, 0x0, 0xff00, 0xff, 0x0, 0x0, 0x0, 0x0]),
+ ]),
+ [
+ either(
+ i16x8([0x0, 0x9, 0x1278, 0x5634, 0xc, 0xd, 0xe, 0xf]),
+ i16x8([0x0, 0x9, 0x1234, 0x5678, 0xc, 0xd, 0xe, 0xf]),
+ ),
+ ],
+);
+
+// ./test/core/relaxed-simd/relaxed_laneselect.wast:41
+assert_return(
+ () => invoke($0, `i32x4.relaxed_laneselect`, [
+ i32x4([0x0, 0x1, 0x12341234, 0x12341234]),
+ i32x4([0x4, 0x5, 0x56785678, 0x56785678]),
+ i32x4([0xffffffff, 0x0, 0xffff0000, 0xffff]),
+ ]),
+ [
+ either(
+ i32x4([0x0, 0x5, 0x12345678, 0x56781234]),
+ i32x4([0x0, 0x5, 0x12341234, 0x56785678]),
+ ),
+ ],
+);
+
+// ./test/core/relaxed-simd/relaxed_laneselect.wast:48
+assert_return(
+ () => invoke($0, `i64x2.relaxed_laneselect`, [
+ i64x2([0x0n, 0x1n]),
+ i64x2([0x2n, 0x3n]),
+ i64x2([0xffffffffffffffffn, 0x0n]),
+ ]),
+ [either(i64x2([0x0n, 0x3n]), i64x2([0x0n, 0x3n]))],
+);
+
+// ./test/core/relaxed-simd/relaxed_laneselect.wast:55
+assert_return(
+ () => invoke($0, `i64x2.relaxed_laneselect`, [
+ i64x2([0x1234123412341234n, 0x1234123412341234n]),
+ i64x2([0x5678567856785678n, 0x5678567856785678n]),
+ i64x2([0xffffffff00000000n, 0xffffffffn]),
+ ]),
+ [
+ either(
+ i64x2([0x1234123456785678n, 0x5678567812341234n]),
+ i64x2([0x1234123412341234n, 0x5678567856785678n]),
+ ),
+ ],
+);
+
+// ./test/core/relaxed-simd/relaxed_laneselect.wast:64
+assert_return(
+ () => invoke($0, `i8x16.relaxed_laneselect_cmp`, [
+ i8x16([0x0, 0x1, 0x12, 0x12, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf]),
+ i8x16([0x10, 0x11, 0x34, 0x34, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f]),
+ i8x16([0xff, 0x0, 0xf0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0]),
+ ]),
+ [
+ i8x16([0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff]),
+ ],
+);
+
+// ./test/core/relaxed-simd/relaxed_laneselect.wast:70
+assert_return(
+ () => invoke($0, `i16x8.relaxed_laneselect_cmp`, [
+ i16x8([0x0, 0x1, 0x1234, 0x1234, 0x4, 0x5, 0x6, 0x7]),
+ i16x8([0x8, 0x9, 0x5678, 0x5678, 0xc, 0xd, 0xe, 0xf]),
+ i16x8([0xffff, 0x0, 0xff00, 0xff, 0x0, 0x0, 0x0, 0x0]),
+ ]),
+ [i16x8([0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff])],
+);
+
+// ./test/core/relaxed-simd/relaxed_laneselect.wast:76
+assert_return(
+ () => invoke($0, `i32x4.relaxed_laneselect_cmp`, [
+ i32x4([0x0, 0x1, 0x12341234, 0x12341234]),
+ i32x4([0x4, 0x5, 0x56785678, 0x56785678]),
+ i32x4([0xffffffff, 0x0, 0xffff0000, 0xffff]),
+ ]),
+ [i32x4([0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff])],
+);
+
+// ./test/core/relaxed-simd/relaxed_laneselect.wast:82
+assert_return(
+ () => invoke($0, `i64x2.relaxed_laneselect_cmp`, [
+ i64x2([0x0n, 0x1n]),
+ i64x2([0x2n, 0x3n]),
+ i64x2([0xffffffffffffffffn, 0x0n]),
+ ]),
+ [i64x2([0xffffffffffffffffn, 0xffffffffffffffffn])],
+);
+
+// ./test/core/relaxed-simd/relaxed_laneselect.wast:88
+assert_return(
+ () => invoke($0, `i64x2.relaxed_laneselect_cmp`, [
+ i64x2([0x1234123412341234n, 0x1234123412341234n]),
+ i64x2([0x5678567856785678n, 0x5678567856785678n]),
+ i64x2([0xffffffff00000000n, 0xffffffffn]),
+ ]),
+ [i64x2([0xffffffffffffffffn, 0xffffffffffffffffn])],
+);