;; Web Assembly SIMD-related type conversion tests (module ;; Floating point to integer with saturation (func (export "i32x4.trunc_sat_f32x4_s") (param v128) (result v128) (i32x4.trunc_sat_f32x4_s (local.get 0))) (func (export "i32x4.trunc_sat_f32x4_u") (param v128) (result v128) (i32x4.trunc_sat_f32x4_u (local.get 0))) (func (export "i64x2.trunc_sat_f64x2_s") (param v128) (result v128) (i64x2.trunc_sat_f64x2_s (local.get 0))) (func (export "i64x2.trunc_sat_f64x2_u") (param v128) (result v128) (i64x2.trunc_sat_f64x2_u (local.get 0))) ;; Integer to floating point (func (export "f32x4.convert_i32x4_s") (param v128) (result v128) (f32x4.convert_i32x4_s (local.get 0))) (func (export "f32x4.convert_i32x4_u") (param v128) (result v128) (f32x4.convert_i32x4_u (local.get 0))) (func (export "f64x2.convert_i64x2_s") (param v128) (result v128) (f64x2.convert_i64x2_s (local.get 0))) (func (export "f64x2.convert_i64x2_u") (param v128) (result v128) (f64x2.convert_i64x2_u (local.get 0))) ;; Integer to integer narrowing (func (export "i8x16.narrow_i16x8_s") (param v128 v128) (result v128) (i8x16.narrow_i16x8_s (local.get 0) (local.get 1))) (func (export "i8x16.narrow_i16x8_u") (param v128 v128) (result v128) (i8x16.narrow_i16x8_u (local.get 0) (local.get 1))) (func (export "i16x8.narrow_i32x4_s") (param v128 v128) (result v128) (i16x8.narrow_i32x4_s (local.get 0) (local.get 1))) (func (export "i16x8.narrow_i32x4_u") (param v128 v128) (result v128) (i16x8.narrow_i32x4_u (local.get 0)(local.get 1))) ;; Integer to integer widening (func (export "i16x8.widen_high_i8x16_s") (param v128) (result v128) (i16x8.widen_high_i8x16_s (local.get 0))) (func (export "i16x8.widen_high_i8x16_u") (param v128) (result v128) (i16x8.widen_high_i8x16_u (local.get 0))) (func (export "i16x8.widen_low_i8x16_s") (param v128) (result v128) (i16x8.widen_low_i8x16_s (local.get 0))) (func (export "i16x8.widen_low_i8x16_u") (param v128) (result v128) (i16x8.widen_low_i8x16_u (local.get 0))) (func (export "i32x4.widen_high_i16x8_s") (param v128) (result v128) (i32x4.widen_high_i16x8_s (local.get 0))) (func (export "i32x4.widen_high_i16x8_u") (param v128) (result v128) (i32x4.widen_high_i16x8_u (local.get 0))) (func (export "i32x4.widen_low_i16x8_s") (param v128) (result v128) (i32x4.widen_low_i16x8_s (local.get 0))) (func (export "i32x4.widen_low_i16x8_u") (param v128) (result v128) (i32x4.widen_low_i16x8_u (local.get 0))) ) ;; Floating point to integer with saturation ;; i32x4.trunc_sat_f32x4_s (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0.0 0.0 0.0 0.0)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0.0 -0.0 -0.0 -0.0)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 1.5 1.5 1.5 1.5)) (v128.const i32x4 1 1 1 1)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -1.5 -1.5 -1.5 -1.5)) (v128.const i32x4 -1 -1 -1 -1)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 1.9 1.9 1.9 1.9)) (v128.const i32x4 1 1 1 1)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 2.0 2.0 2.0 2.0)) (v128.const i32x4 2 2 2 2)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -1.9 -1.9 -1.9 -1.9)) (v128.const i32x4 -1 -1 -1 -1)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -2.0 -2.0 -2.0 -2.0)) (v128.const i32x4 -2 -2 -2 -2)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 2147483520.0 2147483520.0 2147483520.0 2147483520.0)) (v128.const i32x4 2147483520 2147483520 2147483520 2147483520)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -2147483520.0 -2147483520.0 -2147483520.0 -2147483520.0)) (v128.const i32x4 -2147483520 -2147483520 -2147483520 -2147483520)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 2147483648.0 2147483648.0 2147483648.0 2147483648.0)) (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -2147483648.0 -2147483648.0 -2147483648.0 -2147483648.0)) (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 3000000000.0 3000000000.0 3000000000.0 3000000000.0)) (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -3000000000.0 -3000000000.0 -3000000000.0 -3000000000.0)) (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 2147483647.0 2147483647.0 2147483647.0 2147483647.0)) (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -2147483647.0 -2147483647.0 -2147483647.0 -2147483647.0)) (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) (v128.const i32x4 1 1 1 1)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) (v128.const i32x4 -1 -1 -1 -1)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1.19999ap+0 0x1.19999ap+0 0x1.19999ap+0 0x1.19999ap+0)) (v128.const i32x4 1 1 1 1)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1.19999ap+0 -0x1.19999ap+0 -0x1.19999ap+0 -0x1.19999ap+0)) (v128.const i32x4 -1 -1 -1 -1)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) (v128.const i32x4 6 6 6 6)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) (v128.const i32x4 -6 -6 -6 -6)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) (v128.const i32x4 0x7fffffff 0x7fffffff 0x7fffffff 0x7fffffff)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) (v128.const i32x4 0x80000000 0x80000000 0x80000000 0x80000000)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 +inf +inf +inf +inf)) (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -inf -inf -inf -inf)) (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 +nan +nan +nan +nan)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -nan -nan -nan -nan)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 nan:0x444444 nan:0x444444 nan:0x444444 nan:0x444444)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -nan:0x444444 -nan:0x444444 -nan:0x444444 -nan:0x444444)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 42 nan inf -inf)) (v128.const i32x4 42 0 2147483647 -2147483648)) (assert_return (invoke "i32x4.trunc_sat_f32x4_s" (v128.const f32x4 -42 3.14 nan inf)) (v128.const i32x4 -42 3 0 2147483647)) ;; i32x4.trunc_sat_f32x4_u (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0.0 0.0 0.0 0.0)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0.0 -0.0 -0.0 -0.0)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 1.5 1.5 1.5 1.5)) (v128.const i32x4 1 1 1 1)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -1.5 -1.5 -1.5 -1.5)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 1.9 1.9 1.9 1.9)) (v128.const i32x4 1 1 1 1)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 2.0 2.0 2.0 2.0)) (v128.const i32x4 2 2 2 2)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -1.9 -1.9 -1.9 -1.9)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -2.0 -2.0 -2.0 -2.0)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 2147483648.0 2147483648.0 2147483648.0 2147483648.0)) (v128.const i32x4 2147483648 2147483648 2147483648 2147483648)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -2147483648.0 -2147483648.0 -2147483648.0 -2147483648.0)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 3000000000.0 3000000000.0 3000000000.0 3000000000.0)) (v128.const i32x4 3000000000 3000000000 3000000000 3000000000)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -3000000000.0 -3000000000.0 -3000000000.0 -3000000000.0)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 2147483647.0 2147483647.0 2147483647.0 2147483647.0)) (v128.const i32x4 2147483648 2147483648 2147483648 2147483648)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 4294967295.0 4294967295.0 4294967295.0 4294967295.0)) (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 4294967296.0 4294967296.0 4294967296.0 4294967296.0)) (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 4294967040.0 4294967040.0 4294967040.0 4294967040.0)) (v128.const i32x4 -256 -256 -256 -256)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1p-149 0x1p-149 0x1p-149 0x1p-149)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1p-149 -0x1p-149 -0x1p-149 -0x1p-149)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1p-126 0x1p-126 0x1p-126 0x1p-126)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1p-126 -0x1p-126 -0x1p-126 -0x1p-126)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1p-1 0x1p-1 0x1p-1 0x1p-1)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1p-1 -0x1p-1 -0x1p-1 -0x1p-1)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1p+0 0x1p+0 0x1p+0 0x1p+0)) (v128.const i32x4 1 1 1 1)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1p+0 -0x1p+0 -0x1p+0 -0x1p+0)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1.19999ap+0 0x1.19999ap+0 0x1.19999ap+0 0x1.19999ap+0)) (v128.const i32x4 1 1 1 1)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1.19999ap+0 -0x1.19999ap+0 -0x1.19999ap+0 -0x1.19999ap+0)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1.ccccccp-1 0x1.ccccccp-1 0x1.ccccccp-1 0x1.ccccccp-1)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1.ccccccp-1 -0x1.ccccccp-1 -0x1.ccccccp-1 -0x1.ccccccp-1)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1.fffffep-1 0x1.fffffep-1 0x1.fffffep-1 0x1.fffffep-1)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1.fffffep-1 -0x1.fffffep-1 -0x1.fffffep-1 -0x1.fffffep-1)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2 0x1.921fb6p+2)) (v128.const i32x4 6 6 6 6)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2 -0x1.921fb6p+2)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127 0x1.fffffep+127)) (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127 -0x1.fffffep+127)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 +nan +nan +nan +nan)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -nan -nan -nan -nan)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 +inf +inf +inf +inf)) (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -inf -inf -inf -inf)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 nan:0x444444 nan:0x444444 nan:0x444444 nan:0x444444)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -nan:0x444444 -nan:0x444444 -nan:0x444444 -nan:0x444444)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 42 nan inf -inf)) (v128.const i32x4 42 0 0xffffffff 0)) (assert_return (invoke "i32x4.trunc_sat_f32x4_u" (v128.const f32x4 -42 3.14 nan inf)) (v128.const i32x4 0 3 0 0xffffffff)) ;; i64x2.trunc_sat_f64x2_s (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 0.0 0.0)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 -0.0 -0.0)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 1.0 1.0)) (v128.const i64x2 1 1)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 -1.0 -1.0)) (v128.const i64x2 -1 -1)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 1.5 1.5)) (v128.const i64x2 1 1)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 -1.5 -1.5)) (v128.const i64x2 -1 -1)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 1.9 1.9)) (v128.const i64x2 1 1)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 -1.9 -1.9)) (v128.const i64x2 -1 -1)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 2.0 2.0)) (v128.const i64x2 2 2)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 -2.0 -2.0)) (v128.const i64x2 -2 -2)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 4294967296.0 4294967296.0)) (v128.const i64x2 4294967296 4294967296)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 -4294967296.0 -4294967296.0)) (v128.const i64x2 -4294967296 -4294967296)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 9223372036854774784.0 9223372036854774784.0)) (v128.const i64x2 9223372036854774784 9223372036854774784)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 -9223372036854774784.0 -9223372036854774784.0)) (v128.const i64x2 -9223372036854774784 -9223372036854774784)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 9223372036854775808.0 9223372036854775808.0)) (v128.const i64x2 9223372036854775807 9223372036854775807)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 -9223372036854775808.0 -9223372036854775808.0)) (v128.const i64x2 -9223372036854775808 -9223372036854775808)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 10000000000000000000.0 10000000000000000000.0)) (v128.const i64x2 9223372036854775807 9223372036854775807)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 -10000000000000000000.0 -10000000000000000000.0)) (v128.const i64x2 -9223372036854775808 -9223372036854775808)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 9223372036854775807.0 9223372036854775807.0)) (v128.const i64x2 9223372036854775807 9223372036854775807)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 -9223372036854775807.0 -9223372036854775807.0)) (v128.const i64x2 -9223372036854775808 -9223372036854775808)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 0x1p-1022 0x1p-1022)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 -0x1p-1022 -0x1p-1022)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 0x1p-1 0x1p-1)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 -0x1p-1 -0x1p-1)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 0x1p+0 0x1p+0)) (v128.const i64x2 1 1)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 -0x1p+0 -0x1p+0)) (v128.const i64x2 -1 -1)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) (v128.const i64x2 6 6)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) (v128.const i64x2 -6 -6)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) (v128.const i64x2 0x7fffffffffffffff 0x7fffffffffffffff)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) (v128.const i64x2 -0x8000000000000000 -0x8000000000000000)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 inf inf)) (v128.const i64x2 0x7fffffffffffffff 0x7fffffffffffffff)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 -inf -inf)) (v128.const i64x2 -0x8000000000000000 -0x8000000000000000)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 nan nan)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 -nan -nan)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 3.14 nan)) (v128.const i64x2 3 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_s" (v128.const f64x2 -3.14 -inf)) (v128.const i64x2 -3 -0x8000000000000000)) ;; i64x2.trunc_sat_f64x2_u (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 0.0 0.0)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 -0.0 -0.0)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 1.0 1.0)) (v128.const i64x2 1 1)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 -1.0 -1.0)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 1.5 1.5)) (v128.const i64x2 1 1)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 -1.5 -1.5)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 1.9 1.9)) (v128.const i64x2 1 1)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 -1.9 -1.9)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 2.0 2.0)) (v128.const i64x2 2 2)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 -2.0 -2.0)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 4294967296.0 4294967296.0)) (v128.const i64x2 4294967296 4294967296)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 -4294967296.0 -4294967296.0)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 9223372036854774784.0 9223372036854774784.0)) (v128.const i64x2 9223372036854774784 9223372036854774784)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 -9223372036854774784.0 -9223372036854774784.0)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 9223372036854775808.0 9223372036854775808.0)) (v128.const i64x2 9223372036854775808 9223372036854775808)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 -9223372036854775808.0 -9223372036854775808.0)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 10000000000000000000.0 10000000000000000000.0)) (v128.const i64x2 10000000000000000000 10000000000000000000)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 -10000000000000000000.0 -10000000000000000000.0)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 18446744073709551615.0 18446744073709551615.0)) (v128.const i64x2 18446744073709551615 18446744073709551615)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 -18446744073709551615.0 -18446744073709551615.0)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 9223372036854775807.0 9223372036854775807.0)) (v128.const i64x2 9223372036854775808 9223372036854775808)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 -9223372036854775807.0 -9223372036854775807.0)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 0x0.0000000000001p-1022 0x0.0000000000001p-1022)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 -0x0.0000000000001p-1022 -0x0.0000000000001p-1022)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 0x1p-1022 0x1p-1022)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 -0x1p-1022 -0x1p-1022)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 0x1p-1 0x1p-1)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 -0x1p-1 -0x1p-1)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 0x1p+0 0x1p+0)) (v128.const i64x2 1 1)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 -0x1p+0 -0x1p+0)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 0x1.921fb54442d18p+2 0x1.921fb54442d18p+2)) (v128.const i64x2 6 6)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 -0x1.921fb54442d18p+2 -0x1.921fb54442d18p+2)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 0x1.fffffffffffffp+1023 0x1.fffffffffffffp+1023)) (v128.const i64x2 0xffffffffffffffff 0xffffffffffffffff)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 -0x1.fffffffffffffp+1023 -0x1.fffffffffffffp+1023)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 inf inf)) (v128.const i64x2 0xffffffffffffffff 0xffffffffffffffff)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 -inf -inf)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 nan nan)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 -nan -nan)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 nan:0x4000000000000 nan:0x4000000000000)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 -nan:0x4000000000000 -nan:0x4000000000000)) (v128.const i64x2 0 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 3.14 nan)) (v128.const i64x2 3 0)) (assert_return (invoke "i64x2.trunc_sat_f64x2_u" (v128.const f64x2 -3.14 -inf)) (v128.const i64x2 0 0)) ;; Integer to floating point ;; f32x4.convert_i32x4_s (assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 0 0 0 0)) (v128.const f32x4 0.0 0.0 0.0 0.0)) (assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 1 1 1 1)) (v128.const f32x4 1.0 1.0 1.0 1.0)) (assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 -1 -1 -1 -1)) (v128.const f32x4 -1.0 -1.0 -1.0 -1.0)) (assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) (v128.const f32x4 2147483647.0 2147483647.0 2147483647.0 2147483647.0)) (assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) (v128.const f32x4 -2147483648.0 -2147483648.0 -2147483648.0 -2147483648.0)) (assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 1234567890 1234567890 1234567890 1234567890)) (v128.const f32x4 0x1.26580cp+30 0x1.26580cp+30 0x1.26580cp+30 0x1.26580cp+30)) ;; Test rounding directions. (assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 16777217 16777217 16777217 16777217)) (v128.const f32x4 16777216.0 16777216.0 16777216.0 16777216.0)) (assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 -16777217 -16777217 -16777217 -16777217)) (v128.const f32x4 -16777216.0 -16777216.0 -16777216.0 -16777216.0)) (assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 16777219 16777219 16777219 16777219)) (v128.const f32x4 16777220.0 16777220.0 16777220.0 16777220.0)) (assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 -16777219 -16777219 -16777219 -16777219)) (v128.const f32x4 -16777220.0 -16777220.0 -16777220.0 -16777220.0)) (assert_return (invoke "f32x4.convert_i32x4_s" (v128.const i32x4 0 -1 0x7fffffff 0x80000000)) (v128.const f32x4 0.0 -1.0 2147483647.0 -2147483648.0)) ;; f64x2.convert_i64x2_s (assert_return (invoke "f64x2.convert_i64x2_s" (v128.const i64x2 0 0)) (v128.const f64x2 0.0 0.0)) (assert_return (invoke "f64x2.convert_i64x2_s" (v128.const i64x2 1 1)) (v128.const f64x2 1.0 1.0)) (assert_return (invoke "f64x2.convert_i64x2_s" (v128.const i64x2 -1 -1)) (v128.const f64x2 -1.0 -1.0)) (assert_return (invoke "f64x2.convert_i64x2_s" (v128.const i64x2 9223372036854775807 9223372036854775807)) (v128.const f64x2 9223372036854775807.0 9223372036854775807.0)) (assert_return (invoke "f64x2.convert_i64x2_s" (v128.const i64x2 -9223372036854775808 -9223372036854775808)) (v128.const f64x2 -9223372036854775808.0 -9223372036854775808.0)) (assert_return (invoke "f64x2.convert_i64x2_s" (v128.const i64x2 4669201609102990 4669201609102990)) (v128.const f64x2 4669201609102990.0 4669201609102990.0)) (assert_return (invoke "f64x2.convert_i64x2_s" (v128.const i64x2 9007199254740993 9007199254740993)) (v128.const f64x2 9007199254740992.0 9007199254740992.0)) (assert_return (invoke "f64x2.convert_i64x2_s" (v128.const i64x2 -9007199254740993 -9007199254740993)) (v128.const f64x2 -9007199254740992.0 -9007199254740992.0)) (assert_return (invoke "f64x2.convert_i64x2_s" (v128.const i64x2 9007199254740995 9007199254740995)) (v128.const f64x2 9007199254740996.0 9007199254740996.0)) (assert_return (invoke "f64x2.convert_i64x2_s" (v128.const i64x2 -9007199254740995 -9007199254740995)) (v128.const f64x2 -9007199254740996.0 -9007199254740996.0)) (assert_return (invoke "f64x2.convert_i64x2_s" (v128.const i64x2 0x7fffffffffffffff 0x8000000000000000)) (v128.const f64x2 9223372036854775807.0 -9223372036854775808.0)) ;; f32x4.convert_i32x4_u (assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 0 0 0 0)) (v128.const f32x4 0.0 0.0 0.0 0.0)) (assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 1 1 1 1)) (v128.const f32x4 1.0 1.0 1.0 1.0)) (assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 -1 -1 -1 -1)) (v128.const f32x4 4294967295.0 4294967295.0 4294967295.0 4294967295.0)) (assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 2147483647 2147483647 2147483647 2147483647)) (v128.const f32x4 2147483648.0 2147483648.0 2147483648.0 2147483648.0)) (assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 -2147483648 -2147483648 -2147483648 -2147483648)) (v128.const f32x4 2147483648.0 2147483648.0 2147483648.0 2147483648.0)) (assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 0x12345678 0x12345678 0x12345678 0x12345678)) (v128.const f32x4 0x1.234568p+28 0x1.234568p+28 0x1.234568p+28 0x1.234568p+28)) (assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 0x80000080 0x80000080 0x80000080 0x80000080)) (v128.const f32x4 0x1.000000p+31 0x1.000000p+31 0x1.000000p+31 0x1.000000p+31)) (assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 0x80000081 0x80000081 0x80000081 0x80000081)) (v128.const f32x4 0x1.000002p+31 0x1.000002p+31 0x1.000002p+31 0x1.000002p+31)) (assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 0x80000082 0x80000082 0x80000082 0x80000082)) (v128.const f32x4 0x1.000002p+31 0x1.000002p+31 0x1.000002p+31 0x1.000002p+31)) (assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 0xfffffe80 0xfffffe80 0xfffffe80 0xfffffe80)) (v128.const f32x4 0x1.fffffcp+31 0x1.fffffcp+31 0x1.fffffcp+31 0x1.fffffcp+31)) (assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 0xfffffe81 0xfffffe81 0xfffffe81 0xfffffe81)) (v128.const f32x4 0x1.fffffep+31 0x1.fffffep+31 0x1.fffffep+31 0x1.fffffep+31)) (assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 0xfffffe82 0xfffffe82 0xfffffe82 0xfffffe82)) (v128.const f32x4 0x1.fffffep+31 0x1.fffffep+31 0x1.fffffep+31 0x1.fffffep+31)) ;; Test rounding directions. (assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 16777217 16777217 16777217 16777217)) (v128.const f32x4 16777216.0 16777216.0 16777216.0 16777216.0)) (assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 16777219 16777219 16777219 16777219)) (v128.const f32x4 16777220.0 16777220.0 16777220.0 16777220.0)) (assert_return (invoke "f32x4.convert_i32x4_u" (v128.const i32x4 0 -1 0x7fffffff 0x80000000)) (v128.const f32x4 0.0 4294967295.0 2147483647.0 2147483648.0)) ;; f64x2.convert_i64x2_u (assert_return (invoke "f64x2.convert_i64x2_u" (v128.const i64x2 0 0)) (v128.const f64x2 0.0 0.0)) (assert_return (invoke "f64x2.convert_i64x2_u" (v128.const i64x2 1 1)) (v128.const f64x2 1.0 1.0)) (assert_return (invoke "f64x2.convert_i64x2_u" (v128.const i64x2 -1 -1)) (v128.const f64x2 18446744073709551615.0 18446744073709551615.0)) (assert_return (invoke "f64x2.convert_i64x2_u" (v128.const i64x2 9223372036854775807 9223372036854775807)) (v128.const f64x2 9223372036854775807.0 9223372036854775807.0)) (assert_return (invoke "f64x2.convert_i64x2_u" (v128.const i64x2 -9223372036854775808 -9223372036854775808)) (v128.const f64x2 9223372036854775808.0 9223372036854775808.0)) (assert_return (invoke "f64x2.convert_i64x2_u" (v128.const i64x2 0xffffffffffffffff 0xffffffffffffffff)) (v128.const f64x2 18446744073709551616.0 18446744073709551616.0)) (assert_return (invoke "f64x2.convert_i64x2_u" (v128.const i64x2 0x8000000000000400 0x8000000000000400)) (v128.const f64x2 0x1.0000000000000p+63 0x1.0000000000000p+63)) (assert_return (invoke "f64x2.convert_i64x2_u" (v128.const i64x2 0x8000000000000401 0x8000000000000401)) (v128.const f64x2 0x1.0000000000001p+63 0x1.0000000000001p+63)) (assert_return (invoke "f64x2.convert_i64x2_u" (v128.const i64x2 0x8000000000000402 0x8000000000000402)) (v128.const f64x2 0x1.0000000000001p+63 0x1.0000000000001p+63)) (assert_return (invoke "f64x2.convert_i64x2_u" (v128.const i64x2 0xfffffffffffff400 0xfffffffffffff400)) (v128.const f64x2 0x1.ffffffffffffep+63 0x1.ffffffffffffep+63)) (assert_return (invoke "f64x2.convert_i64x2_u" (v128.const i64x2 0xfffffffffffff401 0xfffffffffffff401)) (v128.const f64x2 0x1.fffffffffffffp+63 0x1.fffffffffffffp+63)) (assert_return (invoke "f64x2.convert_i64x2_u" (v128.const i64x2 0xfffffffffffff402 0xfffffffffffff402)) (v128.const f64x2 0x1.fffffffffffffp+63 0x1.fffffffffffffp+63)) (assert_return (invoke "f64x2.convert_i64x2_u" (v128.const i64x2 9007199254740993 9007199254740993)) (v128.const f64x2 9007199254740992.0 9007199254740992.0)) (assert_return (invoke "f64x2.convert_i64x2_u" (v128.const i64x2 9007199254740995 9007199254740995)) (v128.const f64x2 9007199254740996.0 9007199254740996.0)) (assert_return (invoke "f64x2.convert_i64x2_u" (v128.const i64x2 0x7fffffffffffffff 0x8000000000000000)) (v128.const f64x2 9223372036854775807.0 9223372036854775808.0)) ;; Integer to integer narrowing ;; i8x16.narrow_i16x8_s (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 0 0 0 0 0 0 0 0) (v128.const i16x8 0 0 0 0 0 0 0 0)) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 0 0 0 0 0 0 0 0) (v128.const i16x8 1 1 1 1 1 1 1 1)) (v128.const i8x16 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 1 1 1 1 1 1 1 1) (v128.const i16x8 0 0 0 0 0 0 0 0)) (v128.const i8x16 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 0 0 0 0 0 0 0 0) (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) (v128.const i8x16 0 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) (v128.const i16x8 0 0 0 0 0 0 0 0)) (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 1 1 1 1 1 1 1 1) (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) (v128.const i8x16 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) (v128.const i16x8 1 1 1 1 1 1 1 1)) (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i8x16 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) (v128.const i16x8 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f) (v128.const i16x8 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) (v128.const i8x16 0x81 0x81 0x81 0x81 0x81 0x81 0x81 0x81 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80) (v128.const i16x8 -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f)) (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x81 0x81 0x81 0x81 0x81 0x81 0x81 0x81)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80) (v128.const i16x8 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81) (v128.const i16x8 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81)) (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81) (v128.const i16x8 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80) (v128.const i16x8 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81)) (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80) (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80) (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81 -0x81) (v128.const i16x8 0x100 0x100 0x100 0x100 0x100 0x100 0x100 0x100)) (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i8x16.narrow_i16x8_s" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000) (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) ;; i8x16.narrow_i16x8_u (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0 0 0 0 0 0 0 0) (v128.const i16x8 0 0 0 0 0 0 0 0)) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0 0 0 0 0 0 0 0) (v128.const i16x8 1 1 1 1 1 1 1 1)) (v128.const i8x16 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 1 1 1 1 1 1 1 1) (v128.const i16x8 0 0 0 0 0 0 0 0)) (v128.const i8x16 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0 0 0 0 0 0 0 0) (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) (v128.const i16x8 0 0 0 0 0 0 0 0)) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 1 1 1 1 1 1 1 1) (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) (v128.const i8x16 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) (v128.const i16x8 1 1 1 1 1 1 1 1)) (v128.const i8x16 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i8x16 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) (v128.const i16x8 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f) (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe) (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (v128.const i8x16 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff) (v128.const i16x8 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe)) (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe 0xfe)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff) (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0x100 0x100 0x100 0x100 0x100 0x100 0x100 0x100) (v128.const i16x8 0x100 0x100 0x100 0x100 0x100 0x100 0x100 0x100)) (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff) (v128.const i16x8 0x100 0x100 0x100 0x100 0x100 0x100 0x100 0x100)) (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0x100 0x100 0x100 0x100 0x100 0x100 0x100 0x100) (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0 0 0 0 0 0 0 0) (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (v128.const i8x16 0 0 0 0 0 0 0 0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 0 0 0 0 0 0 0 0) (v128.const i16x8 0x100 0x100 0x100 0x100 0x100 0x100 0x100 0x100)) (v128.const i8x16 0 0 0 0 0 0 0 0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (v128.const i8x16 0 0 0 0 0 0 0 0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1) (v128.const i16x8 0x100 0x100 0x100 0x100 0x100 0x100 0x100 0x100)) (v128.const i8x16 0 0 0 0 0 0 0 0 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (assert_return (invoke "i8x16.narrow_i16x8_u" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000) (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) ;; i16x8.narrow_i32x4_s (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 0 0 0 0) (v128.const i32x4 0 0 0 0)) (v128.const i16x8 0 0 0 0 0 0 0 0)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 0 0 0 0) (v128.const i32x4 1 1 1 1)) (v128.const i16x8 0 0 0 0 1 1 1 1)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 1 1 1 1) (v128.const i32x4 0 0 0 0)) (v128.const i16x8 1 1 1 1 0 0 0 0)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 0 0 0 0) (v128.const i32x4 -1 -1 -1 -1)) (v128.const i16x8 0 0 0 0 -1 -1 -1 -1)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -1 -1 -1 -1) (v128.const i32x4 0 0 0 0)) (v128.const i16x8 -1 -1 -1 -1 0 0 0 0)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 1 1 1 1) (v128.const i32x4 -1 -1 -1 -1)) (v128.const i16x8 1 1 1 1 -1 -1 -1 -1)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -1 -1 -1 -1) (v128.const i32x4 1 1 1 1)) (v128.const i16x8 -1 -1 -1 -1 1 1 1 1)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 0x7ffe 0x7ffe 0x7ffe 0x7ffe) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i16x8 0x7ffe 0x7ffe 0x7ffe 0x7ffe 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff) (v128.const i32x4 0x7ffe 0x7ffe 0x7ffe 0x7ffe)) (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7ffe 0x7ffe 0x7ffe 0x7ffe)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 0x8000 0x8000 0x8000 0x8000) (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff) (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 0x8000 0x8000 0x8000 0x8000) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff) (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 0xffff 0xffff 0xffff 0xffff) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x7fff -0x7fff -0x7fff -0x7fff) (v128.const i32x4 -0x8000 -0x8000 -0x8000 -0x8000)) (v128.const i16x8 0x8001 0x8001 0x8001 0x8001 0x8000 0x8000 0x8000 0x8000)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x8000 -0x8000 -0x8000 -0x8000) (v128.const i32x4 -0x7fff -0x7fff -0x7fff -0x7fff)) (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8001 0x8001 0x8001 0x8001)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x8000 -0x8000 -0x8000 -0x8000) (v128.const i32x4 -0x8000 -0x8000 -0x8000 -0x8000)) (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x8001 -0x8001 -0x8001 -0x8001) (v128.const i32x4 -0x8001 -0x8001 -0x8001 -0x8001)) (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x8001 -0x8001 -0x8001 -0x8001) (v128.const i32x4 -0x8000 -0x8000 -0x8000 -0x8000)) (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x8000 -0x8000 -0x8000 -0x8000) (v128.const i32x4 -0x8001 -0x8001 -0x8001 -0x8001)) (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x8000 -0x8000 -0x8000 -0x8000) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x8000 -0x8000 -0x8000 -0x8000) (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x8001 -0x8001 -0x8001 -0x8001) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x8000 -0x8000 -0x8000 -0x8000) (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x8001 -0x8001 -0x8001 -0x8001) (v128.const i32x4 0x10000 0x10000 0x10000 0x10000)) (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i16x8.narrow_i32x4_s" (v128.const i32x4 -0x8000000 -0x8000000 -0x8000000 -0x8000000) (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0xffff 0xffff 0xffff 0xffff)) ;; i16x8.narrow_i32x4_u (assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 0 0 0 0) (v128.const i32x4 0 0 0 0)) (v128.const i16x8 0 0 0 0 0 0 0 0)) (assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 0 0 0 0) (v128.const i32x4 1 1 1 1)) (v128.const i16x8 0 0 0 0 1 1 1 1)) (assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 1 1 1 1) (v128.const i32x4 0 0 0 0)) (v128.const i16x8 1 1 1 1 0 0 0 0)) (assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 0 0 0 0) (v128.const i32x4 -1 -1 -1 -1)) (v128.const i16x8 0 0 0 0 0 0 0 0)) (assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 -1 -1 -1 -1) (v128.const i32x4 0 0 0 0)) (v128.const i16x8 0 0 0 0 0 0 0 0)) (assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 1 1 1 1) (v128.const i32x4 -1 -1 -1 -1)) (v128.const i16x8 1 1 1 1 0 0 0 0)) (assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 -1 -1 -1 -1) (v128.const i32x4 1 1 1 1)) (v128.const i16x8 0 0 0 0 1 1 1 1)) (assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 0xfffe 0xfffe 0xfffe 0xfffe) (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) (v128.const i16x8 0xfffe 0xfffe 0xfffe 0xfffe 0xffff 0xffff 0xffff 0xffff)) (assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 0xffff 0xffff 0xffff 0xffff) (v128.const i32x4 0xfffe 0xfffe 0xfffe 0xfffe)) (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xfffe 0xfffe 0xfffe 0xfffe)) (assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 0xffff 0xffff 0xffff 0xffff) (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) (assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 0x10000 0x10000 0x10000 0x10000) (v128.const i32x4 0x10000 0x10000 0x10000 0x10000)) (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) (assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 0xffff 0xffff 0xffff 0xffff) (v128.const i32x4 0x10000 0x10000 0x10000 0x10000)) (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) (assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 0x10000 0x10000 0x10000 0x10000) (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) (assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 0 0 0 0) (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) (v128.const i16x8 0 0 0 0 0xffff 0xffff 0xffff 0xffff)) (assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 0 0 0 0) (v128.const i32x4 0x10000 0x10000 0x10000 0x10000)) (v128.const i16x8 0 0 0 0 0xffff 0xffff 0xffff 0xffff)) (assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 -1 -1 -1 -1) (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) (v128.const i16x8 0 0 0 0 0xffff 0xffff 0xffff 0xffff)) (assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 -1 -1 -1 -1) (v128.const i32x4 0x10000 0x10000 0x10000 0x10000)) (v128.const i16x8 0 0 0 0 0xffff 0xffff 0xffff 0xffff)) (assert_return (invoke "i16x8.narrow_i32x4_u" (v128.const i32x4 -0x80000000 -0x80000000 -0x80000000 -0x80000000) (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) (v128.const i16x8 0 0 0 0 0 0 0 0)) ;; Integer to integer widening ;; i16x8.widen_low_i8x16_s (assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) (v128.const i16x8 0 0 0 0 0 0 0 0)) (assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1)) (v128.const i16x8 0 0 0 0 0 0 0 0)) (assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1)) (v128.const i16x8 0 0 0 0 0 0 0 0)) (assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0)) (v128.const i16x8 1 1 1 1 1 1 1 1)) (assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0)) (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) (assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1)) (v128.const i16x8 1 1 1 1 1 1 1 1)) (assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1)) (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) (assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i16x8 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) (assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) (assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) (assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) (assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) (v128.const i16x8 0xff81 0xff81 0xff81 0xff81 0xff81 0xff81 0xff81 0xff81)) (assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f)) (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) (assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) (assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) (assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) (assert_return (invoke "i16x8.widen_low_i8x16_s" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) ;; i16x8.widen_high_i8x16_s (assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) (v128.const i16x8 0 0 0 0 0 0 0 0)) (assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1)) (v128.const i16x8 1 1 1 1 1 1 1 1)) (assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 0 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1)) (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) (assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0)) (v128.const i16x8 0 0 0 0 0 0 0 0)) (assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0)) (v128.const i16x8 0 0 0 0 0 0 0 0)) (assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1)) (v128.const i16x8 -1 -1 -1 -1 -1 -1 -1 -1)) (assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1)) (v128.const i16x8 1 1 1 1 1 1 1 1)) (assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) (v128.const i16x8 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) (assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) (assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) (assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) (assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) (assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f)) (v128.const i16x8 0xff81 0xff81 0xff81 0xff81 0xff81 0xff81 0xff81 0xff81)) (assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) (assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (v128.const i16x8 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80 0xff80)) (assert_return (invoke "i16x8.widen_high_i8x16_s" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff 0xffff)) ;; i16x8.widen_low_i8x16_u (assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) (v128.const i16x8 0 0 0 0 0 0 0 0)) (assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1)) (v128.const i16x8 0 0 0 0 0 0 0 0)) (assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1)) (v128.const i16x8 0 0 0 0 0 0 0 0)) (assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0)) (v128.const i16x8 1 1 1 1 1 1 1 1)) (assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0)) (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1)) (v128.const i16x8 1 1 1 1 1 1 1 1)) (assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1)) (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i16x8 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) (assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) (v128.const i16x8 0x81 0x81 0x81 0x81 0x81 0x81 0x81 0x81)) (assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f)) (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (assert_return (invoke "i16x8.widen_low_i8x16_u" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) ;; i16x8.widen_high_i8x16_u (assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) (v128.const i16x8 0 0 0 0 0 0 0 0)) (assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1)) (v128.const i16x8 1 1 1 1 1 1 1 1)) (assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 0 0 0 0 0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1)) (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0)) (v128.const i16x8 0 0 0 0 0 0 0 0)) (assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0)) (v128.const i16x8 0 0 0 0 0 0 0 0)) (assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1)) (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1)) (v128.const i16x8 1 1 1 1 1 1 1 1)) (assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) (v128.const i16x8 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e 0x7e)) (assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f -0x7f)) (v128.const i16x8 0x81 0x81 0x81 0x81 0x81 0x81 0x81 0x81)) (assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80)) (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (v128.const i16x8 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f)) (assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (v128.const i16x8 0x80 0x80 0x80 0x80 0x80 0x80 0x80 0x80)) (assert_return (invoke "i16x8.widen_high_i8x16_u" (v128.const i8x16 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 -0x80 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) (v128.const i16x8 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff)) ;; i32x4.widen_low_i16x8_s (assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0 0 0 0 0 0 0 0)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0 0 0 0 1 1 1 1)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0 0 0 0 -1 -1 -1 -1)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 1 1 1 1 0 0 0 0)) (v128.const i32x4 1 1 1 1)) (assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 0 0 0 0)) (v128.const i32x4 -1 -1 -1 -1)) (assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 1 1 1 1 -1 -1 -1 -1)) (v128.const i32x4 1 1 1 1)) (assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 1 1 1 1)) (v128.const i32x4 -1 -1 -1 -1)) (assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0x7ffe 0x7ffe 0x7ffe 0x7ffe 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i32x4 0x7ffe 0x7ffe 0x7ffe 0x7ffe)) (assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7ffe 0x7ffe 0x7ffe 0x7ffe)) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) (assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x8000 0x8000 0x8000 0x8000)) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) (assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0xffff 0xffff 0xffff 0xffff)) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) (assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 -0x7fff -0x7fff -0x7fff -0x7fff -0x8000 -0x8000 -0x8000 -0x8000)) (v128.const i32x4 0xffff8001 0xffff8001 0xffff8001 0xffff8001)) (assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 -0x7fff -0x7fff -0x7fff -0x7fff)) (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) (assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000)) (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) (assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) (assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0x8000 0x8000 0x8000 0x8000)) (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) (assert_return (invoke "i32x4.widen_low_i16x8_s" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0xffff 0xffff 0xffff 0xffff)) (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) ;; i32x4.widen_high_i16x8_s (assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0 0 0 0 0 0 0 0)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0 0 0 0 1 1 1 1)) (v128.const i32x4 1 1 1 1)) (assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0 0 0 0 -1 -1 -1 -1)) (v128.const i32x4 -1 -1 -1 -1)) (assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 1 1 1 1 0 0 0 0)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 0 0 0 0)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 1 1 1 1 -1 -1 -1 -1)) (v128.const i32x4 -1 -1 -1 -1)) (assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 -1 -1 -1 -1 1 1 1 1)) (v128.const i32x4 1 1 1 1)) (assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0x7ffe 0x7ffe 0x7ffe 0x7ffe 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7ffe 0x7ffe 0x7ffe 0x7ffe)) (v128.const i32x4 0x7ffe 0x7ffe 0x7ffe 0x7ffe)) (assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) (assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x8000 0x8000 0x8000 0x8000)) (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) (assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0xffff 0xffff 0xffff 0xffff)) (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) (assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 -0x7fff -0x7fff -0x7fff -0x7fff -0x8000 -0x8000 -0x8000 -0x8000)) (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) (assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 -0x7fff -0x7fff -0x7fff -0x7fff)) (v128.const i32x4 0xffff8001 0xffff8001 0xffff8001 0xffff8001)) (assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000)) (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) (assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0x8000 0x8000 0x8000 0x8000)) (v128.const i32x4 0xffff8000 0xffff8000 0xffff8000 0xffff8000)) (assert_return (invoke "i32x4.widen_high_i16x8_s" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0xffff 0xffff 0xffff 0xffff)) (v128.const i32x4 0xffffffff 0xffffffff 0xffffffff 0xffffffff)) ;; i32x4.widen_low_i16x8_u (assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0 0 0 0 0 0 0 0)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0 0 0 0 1 1 1 1)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0 0 0 0 -1 -1 -1 -1)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 1 1 1 1 0 0 0 0)) (v128.const i32x4 1 1 1 1)) (assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 0 0 0 0)) (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) (assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 1 1 1 1 -1 -1 -1 -1)) (v128.const i32x4 1 1 1 1)) (assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 1 1 1 1)) (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) (assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0x7ffe 0x7ffe 0x7ffe 0x7ffe 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i32x4 0x7ffe 0x7ffe 0x7ffe 0x7ffe)) (assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7ffe 0x7ffe 0x7ffe 0x7ffe)) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) (assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x8000 0x8000 0x8000 0x8000)) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) (assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0xffff 0xffff 0xffff 0xffff)) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) (assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 -0x7fff -0x7fff -0x7fff -0x7fff -0x8000 -0x8000 -0x8000 -0x8000)) (v128.const i32x4 0x8001 0x8001 0x8001 0x8001)) (assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 -0x7fff -0x7fff -0x7fff -0x7fff)) (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) (assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000)) (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) (assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) (assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0x8000 0x8000 0x8000 0x8000)) (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) (assert_return (invoke "i32x4.widen_low_i16x8_u" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0xffff 0xffff 0xffff 0xffff)) (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) ;; i32x4.widen_high_i16x8_u (assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0 0 0 0 0 0 0 0)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0 0 0 0 1 1 1 1)) (v128.const i32x4 1 1 1 1)) (assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0 0 0 0 -1 -1 -1 -1)) (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) (assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 1 1 1 1 0 0 0 0)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 0 0 0 0)) (v128.const i32x4 0 0 0 0)) (assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 1 1 1 1 -1 -1 -1 -1)) (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) (assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 -1 -1 -1 -1 1 1 1 1)) (v128.const i32x4 1 1 1 1)) (assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0x7ffe 0x7ffe 0x7ffe 0x7ffe 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7ffe 0x7ffe 0x7ffe 0x7ffe)) (v128.const i32x4 0x7ffe 0x7ffe 0x7ffe 0x7ffe)) (assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000 0x8000)) (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) (assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0x8000 0x8000 0x8000 0x8000)) (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) (assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0x8000 0x8000 0x8000 0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0x7fff 0x7fff 0x7fff 0x7fff 0xffff 0xffff 0xffff 0xffff)) (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) (assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 0xffff 0xffff 0xffff 0xffff 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 -0x7fff -0x7fff -0x7fff -0x7fff -0x8000 -0x8000 -0x8000 -0x8000)) (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) (assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 -0x7fff -0x7fff -0x7fff -0x7fff)) (v128.const i32x4 0x8001 0x8001 0x8001 0x8001)) (assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000 -0x8000)) (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) (assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0x7fff 0x7fff 0x7fff 0x7fff)) (v128.const i32x4 0x7fff 0x7fff 0x7fff 0x7fff)) (assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0x8000 0x8000 0x8000 0x8000)) (v128.const i32x4 0x8000 0x8000 0x8000 0x8000)) (assert_return (invoke "i32x4.widen_high_i16x8_u" (v128.const i16x8 -0x8000 -0x8000 -0x8000 -0x8000 0xffff 0xffff 0xffff 0xffff)) (v128.const i32x4 0xffff 0xffff 0xffff 0xffff)) ;; Unknown operator (assert_malformed (module quote "(func (result v128) (i32x4.trunc_sat_f32x4 (v128.const f32x4 0.0 0.0 0.0 0.0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i32x4.trunc_s_sat_f32x4 (v128.const f32x4 -2.0 -1.0 1.0 2.0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i32x4.trunc_u_sat_f32x4 (v128.const f32x4 -2.0 -1.0 1.0 2.0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i32x4.convert_f32x4 (v128.const f32x4 -1 0 1 2)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i32x4.convert_s_f32x4 (v128.const f32x4 -1 0 1 2)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i32x4.convert_u_f32x4 (v128.const f32x4 -1 0 1 2)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i64x2.trunc_sat_f64x2 (v128.const f64x2 0.0 0.0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i64x2.trunc_s_sat_f64x2 (v128.const f64x2 -2.0 -1.0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i64x2.trunc_u_sat_f64x2 (v128.const f64x2 1.0 2.0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (f64x2.convert_i64x2 (v128.const i64x2 -1 0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (f64x2.convert_s_i64x2 (v128.const i64x2 1 2)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (f64x2.convert_u_i64x2 (v128.const i64x2 1 2)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i8x16.narrow_i16x8 (v128.const i16x8 0 0 0 0 0 0 0 0) (v128.const i16x8 0 0 0 0 0 0 0 0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i16x8.narrow_i8x16 (v128.const i16x8 0 0 0 0 0 0 0 0) (v128.const i16x8 0 0 0 0 0 0 0 0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i16x8.narrow_i8x16_s (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i16x8.narrow_i8x16_u (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i16x8.narrow_i32x4 (v128.const i16x8 0 0 0 0 0 0 0 0) (v128.const i16x8 0 0 0 0 0 0 0 0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i32x4.narrow_i16x8 (v128.const i16x8 0 0 0 0 0 0 0 0) (v128.const i16x8 0 0 0 0 0 0 0 0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i32x4.narrow_i16x8_s (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i32x4.narrow_i16x8_u (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i16x8.widen_low_i8x16 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i8x16.widen_low_i16x8_s (v128.const i16x8 0 0 0 0 0 0 0 0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i8x16.widen_low_i16x8_u (v128.const i16x8 0 0 0 0 0 0 0 0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i16x8.widen_high_i8x16 (v128.const i8x16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i8x16.widen_high_i16x8_s (v128.const i16x8 0 0 0 0 0 0 0 0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i8x16.widen_high_i16x8_u (v128.const i16x8 0 0 0 0 0 0 0 0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i32x4.widen_low_i16x8 (v128.const i16x8 0 0 0 0 0 0 0 0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i16x8.widen_low_i32x4_s (v128.const i32x4 0 0 0 0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i16x8.widen_low_i32x4_u (v128.const i32x4 0 0 0 0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i32x4.widen_high_i16x8 (v128.const i16x8 0 0 0 0 0 0 0 0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i16x8.widen_high_i32x4_s (v128.const i32x4 0 0 0 0)))") "unknown operator") (assert_malformed (module quote "(func (result v128) (i16x8.widen_high_i32x4_u (v128.const i32x4 0 0 0 0)))") "unknown operator") ;; Type mismatch (assert_invalid (module (func (result v128) (i32x4.trunc_sat_f32x4_s (i32.const 0)))) "type mismatch") (assert_invalid (module (func (result v128) (i32x4.trunc_sat_f32x4_s (i64.const 0)))) "type mismatch") (assert_invalid (module (func (result v128) (i32x4.trunc_sat_f32x4_u (i32.const 0)))) "type mismatch") (assert_invalid (module (func (result v128) (i32x4.trunc_sat_f32x4_u (i64.const 0)))) "type mismatch") (assert_invalid (module (func (result v128) (f32x4.convert_i32x4_s (i32.const 0)))) "type mismatch") (assert_invalid (module (func (result v128) (f32x4.convert_i32x4_s (i64.const 0)))) "type mismatch") (assert_invalid (module (func (result v128) (f32x4.convert_i32x4_u (i32.const 0)))) "type mismatch") (assert_invalid (module (func (result v128) (f32x4.convert_i32x4_u (i64.const 0)))) "type mismatch") (assert_invalid (module (func (result v128) (i64x2.trunc_sat_f64x2_s (i32.const 0)))) "type mismatch") (assert_invalid (module (func (result v128) (i64x2.trunc_sat_f64x2_s (i64.const 0)))) "type mismatch") (assert_invalid (module (func (result v128) (i64x2.trunc_sat_f64x2_u (i32.const 0)))) "type mismatch") (assert_invalid (module (func (result v128) (i64x2.trunc_sat_f64x2_u (i64.const 0)))) "type mismatch") (assert_invalid (module (func (result v128) (f64x2.convert_i64x2_s (i32.const 0)))) "type mismatch") (assert_invalid (module (func (result v128) (f64x2.convert_i64x2_s (i64.const 0)))) "type mismatch") (assert_invalid (module (func (result v128) (f64x2.convert_i64x2_u (i32.const 0)))) "type mismatch") (assert_invalid (module (func (result v128) (f64x2.convert_i64x2_u (i64.const 0)))) "type mismatch") (assert_invalid (module (func (result v128) (i8x16.narrow_i16x8_s (i32.const 0) (i64.const 0)))) "type mismatch") (assert_invalid (module (func (result v128) (i8x16.narrow_i16x8_u (i32.const 0) (i64.const 0)))) "type mismatch") (assert_invalid (module (func (result v128) (i16x8.narrow_i32x4_s (f32.const 0.0) (f64.const 0.0)))) "type mismatch") (assert_invalid (module (func (result v128) (i16x8.narrow_i32x4_s (f32.const 0.0) (f64.const 0.0)))) "type mismatch") (assert_invalid (module (func (result v128) (i16x8.widen_low_i8x16_s (f32.const 0.0)))) "type mismatch") (assert_invalid (module (func (result v128) (i16x8.widen_high_i8x16_s (f32.const 0.0)))) "type mismatch") (assert_invalid (module (func (result v128) (i16x8.widen_low_i8x16_u (f32.const 0.0)))) "type mismatch") (assert_invalid (module (func (result v128) (i16x8.widen_high_i8x16_u (f32.const 0.0)))) "type mismatch") (assert_invalid (module (func (result v128) (i32x4.widen_low_i16x8_s (f32.const 0.0)))) "type mismatch") (assert_invalid (module (func (result v128) (i32x4.widen_high_i16x8_s (f32.const 0.0)))) "type mismatch") (assert_invalid (module (func (result v128) (i32x4.widen_low_i16x8_u (f32.const 0.0)))) "type mismatch") (assert_invalid (module (func (result v128) (i32x4.widen_high_i16x8_u (f32.const 0.0)))) "type mismatch") ;; Combinations (module (func (export "f32x4_convert_i32x4_s_add") (param v128 v128) (result v128) (f32x4.convert_i32x4_s (i32x4.add (local.get 0) (local.get 1)))) (func (export "f32x4_convert_i32x4_s_sub") (param v128 v128) (result v128) (f32x4.convert_i32x4_s (i32x4.sub (local.get 0) (local.get 1)))) (func (export "f32x4_convert_i32x4_u_mul") (param v128 v128) (result v128) (f32x4.convert_i32x4_u (i32x4.mul (local.get 0) (local.get 1)))) (func (export "f64x2_convert_i64x2_s_add") (param v128 v128) (result v128) (f64x2.convert_i64x2_s (i64x2.add (local.get 0) (local.get 1)))) (func (export "f64x2_convert_i64x2_s_sub") (param v128 v128) (result v128) (f64x2.convert_i64x2_s (i64x2.sub (local.get 0) (local.get 1)))) (func (export "f64x2_convert_i64x2_u_mul") (param v128 v128) (result v128) (f64x2.convert_i64x2_u (i64x2.mul (local.get 0) (local.get 1)))) (func (export "i16x8_low_widen_narrow_ss") (param v128 v128) (result v128) (i16x8.widen_low_i8x16_s (i8x16.narrow_i16x8_s (local.get 0) (local.get 1)))) (func (export "i16x8_low_widen_narrow_su") (param v128 v128) (result v128) (i16x8.widen_low_i8x16_s (i8x16.narrow_i16x8_u (local.get 0) (local.get 1)))) (func (export "i16x8_high_widen_narrow_ss") (param v128 v128) (result v128) (i16x8.widen_low_i8x16_s (i8x16.narrow_i16x8_s (local.get 0) (local.get 1)))) (func (export "i16x8_high_widen_narrow_su") (param v128 v128) (result v128) (i16x8.widen_low_i8x16_s (i8x16.narrow_i16x8_u (local.get 0) (local.get 1)))) (func (export "i16x8_low_widen_narrow_uu") (param v128 v128) (result v128) (i16x8.widen_low_i8x16_u (i8x16.narrow_i16x8_u (local.get 0) (local.get 1)))) (func (export "i16x8_low_widen_narrow_us") (param v128 v128) (result v128) (i16x8.widen_low_i8x16_u (i8x16.narrow_i16x8_s (local.get 0) (local.get 1)))) (func (export "i16x8_high_widen_narrow_uu") (param v128 v128) (result v128) (i16x8.widen_low_i8x16_u (i8x16.narrow_i16x8_u (local.get 0) (local.get 1)))) (func (export "i16x8_high_widen_narrow_us") (param v128 v128) (result v128) (i16x8.widen_low_i8x16_u (i8x16.narrow_i16x8_s (local.get 0) (local.get 1)))) (func (export "i32x4_low_widen_narrow_ss") (param v128 v128) (result v128) (i32x4.widen_low_i16x8_s (i16x8.narrow_i32x4_s (local.get 0) (local.get 1)))) (func (export "i32x4_low_widen_narrow_su") (param v128 v128) (result v128) (i32x4.widen_low_i16x8_s (i16x8.narrow_i32x4_u (local.get 0) (local.get 1)))) (func (export "i32x4_high_widen_narrow_ss") (param v128 v128) (result v128) (i32x4.widen_low_i16x8_s (i16x8.narrow_i32x4_s (local.get 0) (local.get 1)))) (func (export "i32x4_high_widen_narrow_su") (param v128 v128) (result v128) (i32x4.widen_low_i16x8_s (i16x8.narrow_i32x4_u (local.get 0) (local.get 1)))) (func (export "i32x4_low_widen_narrow_uu") (param v128 v128) (result v128) (i32x4.widen_low_i16x8_u (i16x8.narrow_i32x4_u (local.get 0) (local.get 1)))) (func (export "i32x4_low_widen_narrow_us") (param v128 v128) (result v128) (i32x4.widen_low_i16x8_u (i16x8.narrow_i32x4_s (local.get 0) (local.get 1)))) (func (export "i32x4_high_widen_narrow_uu") (param v128 v128) (result v128) (i32x4.widen_low_i16x8_u (i16x8.narrow_i32x4_u (local.get 0) (local.get 1)))) (func (export "i32x4_high_widen_narrow_us") (param v128 v128) (result v128) (i32x4.widen_low_i16x8_u (i16x8.narrow_i32x4_s (local.get 0) (local.get 1)))) ) (assert_return (invoke "f32x4_convert_i32x4_s_add" (v128.const i32x4 1 2 3 4) (v128.const i32x4 2 3 4 5)) (v128.const f32x4 3.0 5.0 7.0 9.0)) (assert_return (invoke "f32x4_convert_i32x4_s_sub" (v128.const i32x4 0 1 2 3) (v128.const i32x4 1 1 1 1)) (v128.const f32x4 -1.0 0.0 1.0 2.0)) (assert_return (invoke "f32x4_convert_i32x4_u_mul" (v128.const i32x4 1 2 3 4) (v128.const i32x4 1 2 3 4)) (v128.const f32x4 1.0 4.0 9.0 16.0)) (assert_return (invoke "f64x2_convert_i64x2_s_add" (v128.const i64x2 0x7fffffffffffffff 0x7fffffffffffffff) (v128.const i64x2 0x8000000000000000 0x8000000000000000)) (v128.const f64x2 -1.0 -1.0)) (assert_return (invoke "f64x2_convert_i64x2_s_sub" (v128.const i64x2 0x7fffffffffffffff 0x7fffffffffffffff) (v128.const i64x2 0x8000000000000000 0x8000000000000000)) (v128.const f64x2 -1.0 -1.0)) (assert_return (invoke "f64x2_convert_i64x2_u_mul" (v128.const i64x2 0x7fffffff 0x7fffffff) (v128.const i64x2 0x80000000 0x80000000)) (v128.const f64x2 4611686016279904256.0 4611686016279904256.0)) (assert_return (invoke "i16x8_low_widen_narrow_ss" (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0x8000 -0x8000 -0x7fff 0x7fff 0x8000) (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0x8000 -0x8000 -0x7fff 0x7fff 0x8000)) (v128.const i16x8 0xff80 0xff80 0x7f 0xff80 0xff80 0xff80 0x7f 0xff80)) (assert_return (invoke "i16x8_low_widen_narrow_su" (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0xffff -0x8000 -0x7fff 0x7fff 0xffff) (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0xffff -0x8000 -0x7fff 0x7fff 0xffff)) (v128.const i16x8 0 0 0xffff 0 0 0 0xffff 0)) (assert_return (invoke "i16x8_high_widen_narrow_ss" (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0x8000 -0x8000 -0x7fff 0x7fff 0x8000) (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0x8000 -0x8000 -0x7fff 0x7fff 0x8000)) (v128.const i16x8 0xff80 0xff80 0x7f 0xff80 0xff80 0xff80 0x7f 0xff80)) (assert_return (invoke "i16x8_high_widen_narrow_su" (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0xffff -0x8000 -0x7fff 0x7fff 0xffff) (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0xffff -0x8000 -0x7fff 0x7fff 0xffff)) (v128.const i16x8 0 0 0xffff 0 0 0 0xffff 0)) (assert_return (invoke "i16x8_low_widen_narrow_uu" (v128.const i16x8 -0x8000 -0x7fff 0x8000 0xffff -0x8000 -0x7fff 0x8000 0xffff) (v128.const i16x8 -0x8000 -0x7fff 0x8000 0xffff -0x8000 -0x7fff 0x8000 0xffff)) (v128.const i16x8 0 0 0 0 0 0 0 0)) (assert_return (invoke "i16x8_low_widen_narrow_us" (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0x8000 -0x8000 -0x7fff 0x7fff 0x8000) (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0x8000 -0x8000 -0x7fff 0x7fff 0x8000)) (v128.const i16x8 0x80 0x80 0x7f 0x80 0x80 0x80 0x7f 0x80)) (assert_return (invoke "i16x8_high_widen_narrow_uu" (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0xffff -0x8000 -0x7fff 0x7fff 0xffff) (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0xffff -0x8000 -0x7fff 0x7fff 0xffff)) (v128.const i16x8 0 0 0xff 0 0 0 0xff 0)) (assert_return (invoke "i16x8_high_widen_narrow_us" (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0x8000 -0x8000 -0x7fff 0x7fff 0x8000) (v128.const i16x8 -0x8000 -0x7fff 0x7fff 0x8000 -0x8000 -0x7fff 0x7fff 0x8000)) (v128.const i16x8 0x80 0x80 0x7f 0x80 0x80 0x80 0x7f 0x80)) (assert_return (invoke "i32x4_low_widen_narrow_ss" (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0x8000000) (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0x8000000)) (v128.const i32x4 0xffff8000 0xffff8000 0x7fff 0x7fff)) (assert_return (invoke "i32x4_low_widen_narrow_su" (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0xffffffff) (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0xffffffff)) (v128.const i32x4 0 0 0xffffffff 0)) (assert_return (invoke "i32x4_high_widen_narrow_ss" (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0x8000000) (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0x8000000)) (v128.const i32x4 0xffff8000 0xffff8000 0x7fff 0x7fff)) (assert_return (invoke "i32x4_high_widen_narrow_su" (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0xffffffff) (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0xffffffff)) (v128.const i32x4 0 0 0xffffffff 0)) (assert_return (invoke "i32x4_low_widen_narrow_uu" (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0xffffffff) (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0xffffffff)) (v128.const i32x4 0 0 0xffff 0)) (assert_return (invoke "i32x4_low_widen_narrow_us" (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0x8000000) (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0x8000000)) (v128.const i32x4 0x8000 0x8000 0x7fff 0x7fff)) (assert_return (invoke "i32x4_high_widen_narrow_uu" (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0xffffffff) (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0xffffffff)) (v128.const i32x4 0 0 0xffff 0)) (assert_return (invoke "i32x4_high_widen_narrow_us" (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0x8000000) (v128.const i32x4 -0x80000000 -0x7fffffff 0x7fffffff 0x8000000)) (v128.const i32x4 0x8000 0x8000 0x7fff 0x7fff))