Source code

Revision control

Copy as Markdown

Other Tools

/* 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
*
*
* 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])],
);