summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/wasm/spec/relaxed-simd/relaxed_min_max.wast.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /js/src/jit-test/tests/wasm/spec/relaxed-simd/relaxed_min_max.wast.js
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/jit-test/tests/wasm/spec/relaxed-simd/relaxed_min_max.wast.js')
-rw-r--r--js/src/jit-test/tests/wasm/spec/relaxed-simd/relaxed_min_max.wast.js663
1 files changed, 663 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/wasm/spec/relaxed-simd/relaxed_min_max.wast.js b/js/src/jit-test/tests/wasm/spec/relaxed-simd/relaxed_min_max.wast.js
new file mode 100644
index 0000000000..9123d605d9
--- /dev/null
+++ b/js/src/jit-test/tests/wasm/spec/relaxed-simd/relaxed_min_max.wast.js
@@ -0,0 +1,663 @@
+/* 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_min_max.wast
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:4
+let $0 = instantiate(`(module
+ (func (export "f32x4.relaxed_min") (param v128 v128) (result v128) (f32x4.relaxed_min (local.get 0) (local.get 1)))
+ (func (export "f32x4.relaxed_max") (param v128 v128) (result v128) (f32x4.relaxed_max (local.get 0) (local.get 1)))
+ (func (export "f64x2.relaxed_min") (param v128 v128) (result v128) (f64x2.relaxed_min (local.get 0) (local.get 1)))
+ (func (export "f64x2.relaxed_max") (param v128 v128) (result v128) (f64x2.relaxed_max (local.get 0) (local.get 1)))
+
+ (func (export "f32x4.relaxed_min_cmp") (param v128 v128) (result v128)
+ (i32x4.eq
+ (f32x4.relaxed_min (local.get 0) (local.get 1))
+ (f32x4.relaxed_min (local.get 0) (local.get 1))))
+ (func (export "f32x4.relaxed_max_cmp") (param v128 v128) (result v128)
+ (i32x4.eq
+ (f32x4.relaxed_max (local.get 0) (local.get 1))
+ (f32x4.relaxed_max (local.get 0) (local.get 1))))
+ (func (export "f64x2.relaxed_min_cmp") (param v128 v128) (result v128)
+ (i64x2.eq
+ (f64x2.relaxed_min (local.get 0) (local.get 1))
+ (f64x2.relaxed_min (local.get 0) (local.get 1))))
+ (func (export "f64x2.relaxed_max_cmp") (param v128 v128) (result v128)
+ (i64x2.eq
+ (f64x2.relaxed_max (local.get 0) (local.get 1))
+ (f64x2.relaxed_max (local.get 0) (local.get 1))))
+)`);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:28
+assert_return(
+ () => invoke($0, `f32x4.relaxed_min`, [
+ bytes('v128', [
+ 0x0,
+ 0x0,
+ 0xc0,
+ 0xff,
+ 0x0,
+ 0x0,
+ 0xc0,
+ 0x7f,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ ]),
+ bytes('v128', [
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0xc0,
+ 0xff,
+ 0x0,
+ 0x0,
+ 0xc0,
+ 0x7f,
+ ]),
+ ]),
+ [
+ either(
+ new F32x4Pattern(
+ `canonical_nan`,
+ `canonical_nan`,
+ `canonical_nan`,
+ `canonical_nan`,
+ ),
+ new F32x4Pattern(
+ `canonical_nan`,
+ `canonical_nan`,
+ value("f32", 0),
+ value("f32", 0),
+ ),
+ new F32x4Pattern(
+ value("f32", 0),
+ value("f32", 0),
+ `canonical_nan`,
+ `canonical_nan`,
+ ),
+ new F32x4Pattern(
+ value("f32", 0),
+ value("f32", 0),
+ value("f32", 0),
+ value("f32", 0),
+ ),
+ ),
+ ],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:36
+assert_return(
+ () => invoke($0, `f32x4.relaxed_min`, [f32x4([0, -0, 0, -0]), f32x4([-0, 0, 0, -0])]),
+ [
+ either(
+ new F32x4Pattern(
+ value("f32", -0),
+ value("f32", -0),
+ value("f32", 0),
+ value("f32", -0),
+ ),
+ new F32x4Pattern(
+ value("f32", 0),
+ value("f32", -0),
+ value("f32", 0),
+ value("f32", -0),
+ ),
+ new F32x4Pattern(
+ value("f32", -0),
+ value("f32", 0),
+ value("f32", 0),
+ value("f32", -0),
+ ),
+ new F32x4Pattern(
+ value("f32", -0),
+ value("f32", -0),
+ value("f32", 0),
+ value("f32", -0),
+ ),
+ ),
+ ],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:44
+assert_return(
+ () => invoke($0, `f32x4.relaxed_max`, [
+ bytes('v128', [
+ 0x0,
+ 0x0,
+ 0xc0,
+ 0xff,
+ 0x0,
+ 0x0,
+ 0xc0,
+ 0x7f,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ ]),
+ bytes('v128', [
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0xc0,
+ 0xff,
+ 0x0,
+ 0x0,
+ 0xc0,
+ 0x7f,
+ ]),
+ ]),
+ [
+ either(
+ new F32x4Pattern(
+ `canonical_nan`,
+ `canonical_nan`,
+ `canonical_nan`,
+ `canonical_nan`,
+ ),
+ new F32x4Pattern(
+ `canonical_nan`,
+ `canonical_nan`,
+ value("f32", 0),
+ value("f32", 0),
+ ),
+ new F32x4Pattern(
+ value("f32", 0),
+ value("f32", 0),
+ `canonical_nan`,
+ `canonical_nan`,
+ ),
+ new F32x4Pattern(
+ value("f32", 0),
+ value("f32", 0),
+ value("f32", 0),
+ value("f32", 0),
+ ),
+ ),
+ ],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:52
+assert_return(
+ () => invoke($0, `f32x4.relaxed_max`, [f32x4([0, -0, 0, -0]), f32x4([-0, 0, 0, -0])]),
+ [
+ either(
+ new F32x4Pattern(
+ value("f32", 0),
+ value("f32", 0),
+ value("f32", 0),
+ value("f32", -0),
+ ),
+ new F32x4Pattern(
+ value("f32", 0),
+ value("f32", -0),
+ value("f32", 0),
+ value("f32", -0),
+ ),
+ new F32x4Pattern(
+ value("f32", -0),
+ value("f32", 0),
+ value("f32", 0),
+ value("f32", -0),
+ ),
+ new F32x4Pattern(
+ value("f32", -0),
+ value("f32", -0),
+ value("f32", 0),
+ value("f32", -0),
+ ),
+ ),
+ ],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:60
+assert_return(
+ () => invoke($0, `f64x2.relaxed_min`, [
+ bytes('v128', [
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0xf8,
+ 0xff,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0xf8,
+ 0x7f,
+ ]),
+ f64x2([0, 0]),
+ ]),
+ [
+ either(
+ new F64x2Pattern(`canonical_nan`, `canonical_nan`),
+ new F64x2Pattern(`canonical_nan`, `canonical_nan`),
+ new F64x2Pattern(value("f64", 0), value("f64", 0)),
+ new F64x2Pattern(value("f64", 0), value("f64", 0)),
+ ),
+ ],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:68
+assert_return(
+ () => invoke($0, `f64x2.relaxed_min`, [
+ f64x2([0, 0]),
+ bytes('v128', [
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0xf8,
+ 0xff,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0xf8,
+ 0x7f,
+ ]),
+ ]),
+ [
+ either(
+ new F64x2Pattern(`canonical_nan`, `canonical_nan`),
+ new F64x2Pattern(value("f64", 0), value("f64", 0)),
+ new F64x2Pattern(`canonical_nan`, `canonical_nan`),
+ new F64x2Pattern(value("f64", 0), value("f64", 0)),
+ ),
+ ],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:76
+assert_return(
+ () => invoke($0, `f64x2.relaxed_min`, [f64x2([0, -0]), f64x2([-0, 0])]),
+ [
+ either(
+ new F64x2Pattern(value("f64", -0), value("f64", -0)),
+ new F64x2Pattern(value("f64", 0), value("f64", -0)),
+ new F64x2Pattern(value("f64", -0), value("f64", 0)),
+ new F64x2Pattern(value("f64", -0), value("f64", -0)),
+ ),
+ ],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:84
+assert_return(
+ () => invoke($0, `f64x2.relaxed_min`, [f64x2([0, -0]), f64x2([0, -0])]),
+ [
+ either(
+ new F64x2Pattern(value("f64", 0), value("f64", -0)),
+ new F64x2Pattern(value("f64", 0), value("f64", -0)),
+ new F64x2Pattern(value("f64", 0), value("f64", -0)),
+ new F64x2Pattern(value("f64", 0), value("f64", -0)),
+ ),
+ ],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:92
+assert_return(
+ () => invoke($0, `f64x2.relaxed_max`, [
+ bytes('v128', [
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0xf8,
+ 0xff,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0xf8,
+ 0x7f,
+ ]),
+ f64x2([0, 0]),
+ ]),
+ [
+ either(
+ new F64x2Pattern(`canonical_nan`, `canonical_nan`),
+ new F64x2Pattern(`canonical_nan`, `canonical_nan`),
+ new F64x2Pattern(value("f64", 0), value("f64", 0)),
+ new F64x2Pattern(value("f64", 0), value("f64", 0)),
+ ),
+ ],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:100
+assert_return(
+ () => invoke($0, `f64x2.relaxed_max`, [
+ f64x2([0, 0]),
+ bytes('v128', [
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0xf8,
+ 0xff,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0xf8,
+ 0x7f,
+ ]),
+ ]),
+ [
+ either(
+ new F64x2Pattern(`canonical_nan`, `canonical_nan`),
+ new F64x2Pattern(value("f64", 0), value("f64", 0)),
+ new F64x2Pattern(`canonical_nan`, `canonical_nan`),
+ new F64x2Pattern(value("f64", 0), value("f64", 0)),
+ ),
+ ],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:108
+assert_return(
+ () => invoke($0, `f64x2.relaxed_max`, [f64x2([0, -0]), f64x2([-0, 0])]),
+ [
+ either(
+ new F64x2Pattern(value("f64", 0), value("f64", 0)),
+ new F64x2Pattern(value("f64", 0), value("f64", -0)),
+ new F64x2Pattern(value("f64", -0), value("f64", 0)),
+ new F64x2Pattern(value("f64", -0), value("f64", -0)),
+ ),
+ ],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:116
+assert_return(
+ () => invoke($0, `f64x2.relaxed_max`, [f64x2([0, -0]), f64x2([0, -0])]),
+ [
+ either(
+ new F64x2Pattern(value("f64", 0), value("f64", -0)),
+ new F64x2Pattern(value("f64", 0), value("f64", -0)),
+ new F64x2Pattern(value("f64", 0), value("f64", -0)),
+ new F64x2Pattern(value("f64", 0), value("f64", -0)),
+ ),
+ ],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:126
+assert_return(
+ () => invoke($0, `f32x4.relaxed_min_cmp`, [
+ bytes('v128', [
+ 0x0,
+ 0x0,
+ 0xc0,
+ 0xff,
+ 0x0,
+ 0x0,
+ 0xc0,
+ 0x7f,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ ]),
+ bytes('v128', [
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0xc0,
+ 0xff,
+ 0x0,
+ 0x0,
+ 0xc0,
+ 0x7f,
+ ]),
+ ]),
+ [i32x4([0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff])],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:131
+assert_return(
+ () => invoke($0, `f32x4.relaxed_min_cmp`, [
+ f32x4([0, -0, 0, -0]),
+ f32x4([-0, 0, 0, -0]),
+ ]),
+ [i32x4([0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff])],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:136
+assert_return(
+ () => invoke($0, `f32x4.relaxed_max_cmp`, [
+ bytes('v128', [
+ 0x0,
+ 0x0,
+ 0xc0,
+ 0xff,
+ 0x0,
+ 0x0,
+ 0xc0,
+ 0x7f,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ ]),
+ bytes('v128', [
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0xc0,
+ 0xff,
+ 0x0,
+ 0x0,
+ 0xc0,
+ 0x7f,
+ ]),
+ ]),
+ [i32x4([0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff])],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:141
+assert_return(
+ () => invoke($0, `f32x4.relaxed_max_cmp`, [
+ f32x4([0, -0, 0, -0]),
+ f32x4([-0, 0, 0, -0]),
+ ]),
+ [i32x4([0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff])],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:146
+assert_return(
+ () => invoke($0, `f64x2.relaxed_min_cmp`, [
+ bytes('v128', [
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0xf8,
+ 0xff,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0xf8,
+ 0x7f,
+ ]),
+ f64x2([0, 0]),
+ ]),
+ [i64x2([0xffffffffffffffffn, 0xffffffffffffffffn])],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:151
+assert_return(
+ () => invoke($0, `f64x2.relaxed_min_cmp`, [
+ f64x2([0, 0]),
+ bytes('v128', [
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0xf8,
+ 0xff,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0xf8,
+ 0x7f,
+ ]),
+ ]),
+ [i64x2([0xffffffffffffffffn, 0xffffffffffffffffn])],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:156
+assert_return(
+ () => invoke($0, `f64x2.relaxed_min_cmp`, [f64x2([0, -0]), f64x2([-0, 0])]),
+ [i64x2([0xffffffffffffffffn, 0xffffffffffffffffn])],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:161
+assert_return(
+ () => invoke($0, `f64x2.relaxed_min_cmp`, [f64x2([0, -0]), f64x2([0, -0])]),
+ [i64x2([0xffffffffffffffffn, 0xffffffffffffffffn])],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:166
+assert_return(
+ () => invoke($0, `f64x2.relaxed_max_cmp`, [
+ bytes('v128', [
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0xf8,
+ 0xff,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0xf8,
+ 0x7f,
+ ]),
+ f64x2([0, 0]),
+ ]),
+ [i64x2([0xffffffffffffffffn, 0xffffffffffffffffn])],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:171
+assert_return(
+ () => invoke($0, `f64x2.relaxed_max_cmp`, [
+ f64x2([0, 0]),
+ bytes('v128', [
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0xf8,
+ 0xff,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0x0,
+ 0xf8,
+ 0x7f,
+ ]),
+ ]),
+ [i64x2([0xffffffffffffffffn, 0xffffffffffffffffn])],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:176
+assert_return(
+ () => invoke($0, `f64x2.relaxed_max_cmp`, [f64x2([0, -0]), f64x2([-0, 0])]),
+ [i64x2([0xffffffffffffffffn, 0xffffffffffffffffn])],
+);
+
+// ./test/core/relaxed-simd/relaxed_min_max.wast:181
+assert_return(
+ () => invoke($0, `f64x2.relaxed_max_cmp`, [f64x2([0, -0]), f64x2([0, -0])]),
+ [i64x2([0xffffffffffffffffn, 0xffffffffffffffffn])],
+);